I want to use systune to tune gains for my Simulink model, using the slTuner interface. I am trying to set up a non-smooth, multi-objective optimization problem that can be solved by systune. However, I am having a difficult time figuring out how to set up two of the hard constraints.
The optimization problem is stated as follows:
minimize ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1775315/image.png)
subject to
< ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1775325/image.png)
< ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1775335/image.png)
> ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1775345/image.png)
> 0.3
I think I have the soft constraints and first two hard constraints correctly implemented now, using TuningGoal.Variance. However, I have no idea how to properly set up the last two hard constraints. These are the dynamic margin (generalized delay margin) at δ and the multivarible module margin of δ. Where
is the complementary sensitivity function and
is the sensitivity function. mdl = "TestVehicleModel";
st0 = slTuner(mdl,"TuneGain");
Softreq1 = TuningGoal.Variance("u1","y1",1);
Softreq2 = TuningGoal.Variance("u2","y1",1);
Softreq3 = TuningGoal.Variance("u1","y2",1);
Softreq4 = TuningGoal.Variance("u2","y2",1);
Hardreq1 = TuningGoal.Variance("u1","y3",0.5);
Hardreq2 = TuningGoal.Variance("u2","y3",0.5);
[st, fSoft, gHard] = systune(st0,[Softreq1,Softreq2,Softreq3,Softreq4],[Hardreq1,Hardreq2]);
Can anyone help me with this? I know that it should be possible, as some researches have done it before in previous versions of MATLAB, probably 2018a.