Loop Shape and Stability Margin Specifications
This example shows how to specify loop shapes and stability margins when tuning control
systems with systune or looptune.
Background
The systune and looptune commands tune the parameters of fixed-structure control
systems subject to a variety of time- and frequency-domain requirements. The
TuningGoal package is the repository for such design requirements.
Loop Shape
The TuningGoal.LoopShape requirement is used to shape the open-loop response
gain(s), a design approach known as loop shaping. For example,
s = tf('s');
R1 = TuningGoal.LoopShape('u',1/s);
specifies that the open-loop response measured at the location "u" should look like a pure
integrator (as far as its gain is concerned). In MATLAB, use an AnalysisPoint block to
mark the location "u", see the "Building Tunable Models" example for details. In Simulink,
use the addPoint method of the slTuner interface to mark "u" as a point of interest.
As with other gain specifications, you can just specify the asymptotes of the desired loop
shape using a few frequency points. For example, to specify a loop shape with gain
crossover at 1 rad/s, -20 dB/decade slope before 1 rad/s, and -40 dB/decade slope after 1
rad/s, just specify that the gain at the frequencies 0.1,1,10 should be 10,1,0.01,
respectively.
LS = frd([10,1,0.01],[0.1,1,10]);
R2 = TuningGoal.LoopShape('u',LS);
bodemag(LS,R2.LoopGain)
legend('Specified','Interpolated')
13 Control System Tuning Examples