Enforce specified gain and phase margins when using Control System Tuner.
Margins Goal uses the notion of disk margin to enforce specified gain and phase margins on SISO or MIMO feedback loops. Disk margins provide a more complete picture of robust stability as they take into account all frequency and loop interactions. Therefore, disk-based margins provide a stronger guarantee of stability than the classical gain and phase margins.
For SISO feedback loops, the disk-based gain and phase margins are typically smaller but similar to the classical gain and phase margins.
For MIMO feedback loops, the disk-based margins account for loop interactions and can be much smaller than classical loop-at-a-time gain and phase margins. The disk-based margins guarantee stability against gain or phase variations across all feedback channels. The gain or phase can change in all channels simultaneously, and by a different amount in each channel.
For information about disk margins, see Stability Analysis Using Disk Margins (Robust Control Toolbox).
In Control System Tuner, the shaded area on the plot represents the region in the frequency domain where the margins goal is not met. For more information about interpreting this plot, see Stability Margins in Control System Tuning.
In the Tuning tab of Control System Tuner, select New Goal > Minimum stability margins to create a Margins Goal.
When tuning control systems at the command line, use
specify a stability margin goal.
Use this section of the dialog box to specify the signal locations at which to measure stability margins. You can also specify additional loop-opening locations for evaluating the tuning goal.
Measure stability margins at the following locations
Select one or more signal locations in your model at which to compute and constrain the
stability margins. To constrain a SISO loop, select a single-valued location. For
example, to constrain the stability margins at a location named
Add signal to list and select
'y'. To constrain
a MIMO loop, select multiple signals or a vector-valued signal.
Measure stability margins with the following loops open
Select one or more signal locations in your model at which to
open a feedback loop for the purpose of evaluating this tuning goal. The tuning goal is
evaluated against the open-loop configuration created by opening feedback loops at the locations
you identify. For example, to evaluate the tuning goal with an opening at a location named
Add signal to list and select
To highlight any selected signal in the Simulink® model, click . To remove a signal from the input or output list, click . When you have selected multiple signals, you can reorder them using and . For more information on how to specify signal locations for a tuning goal, see Specify Goals for Interactive Tuning.
Use this section of the dialog box to specify the minimum gain and phase margins for the feedback loop.
Gain margin (dB)
Enter the required minimum gain margin for the feedback loop as a scalar value expressed in dB.
Phase margin (degrees)
Enter the required minimum phase margin for the feedback loop as a scalar value expressed in degrees.
Use this section of the dialog box to specify additional characteristics of the stability margin goal.
Enforce goal in frequency range
Limit the enforcement of the tuning goal to a particular frequency
band. Specify the frequency band as a row vector of the form
expressed in frequency units of your model. For example, to create
a tuning goal that applies only between 1 and 100 rad/s, enter
By default, the tuning goal applies at all frequencies for continuous
time, and up to the Nyquist frequency for discrete time.
For best results with stability margin requirements, pick a frequency band extending about one decade on each side of the gain crossover frequencies.
D scaling order
This value controls the order (number of states) of the scalings involved in computing MIMO stability margins. Static scalings (scaling order 0) are used by default. Increasing the order may improve results at the expense of increased computations. If the stability margin plot shows a large gap between the optimized and actual margins, consider increasing the scaling order. See Stability Margins in Control System Tuning.
Apply goal to
Use this option when tuning multiple models at once, such as
an array of models obtained by linearizing a Simulink model at
different operating points or block-parameter values. By default,
active tuning goals are enforced for all models. To enforce a tuning
requirement for a subset of models in an array, select Only
Models. Then, enter the array indices of the models for
which the goal is enforced. For example, suppose you want to apply
the tuning goal to the second, third, and fourth models in a model
array. To restrict enforcement of the requirement, enter
the Only Models text box.
For more information about tuning for multiple models, see Robust Tuning Approaches (Robust Control Toolbox).
When you tune a control system, the software converts each tuning goal into a normalized scalar value f(x). Here, x is the vector of free (tunable) parameters in the control system. The software then adjusts the parameter values to minimize f(x) or to drive f(x) below 1 if the tuning goal is a hard constraint.
For Margins Goal, f(x) is given by:
S = D–1[I – L(s,x)]–1D is the scaled sensitivity function.
L(s,x) is the open-loop response being shaped.
D is an automatically-computed loop scaling factor.
α is a scalar parameter computed from the specified gain and phase margin.
This tuning goal imposes an implicit stability constraint on the closed-loop sensitivity function measured at the specified, evaluated with loops opened at the specified loop-opening locations. The dynamics affected by this implicit constraint are the stabilized dynamics for this tuning goal. The Minimum decay rate and Maximum natural frequency tuning options control the lower and upper bounds on these implicitly constrained dynamics. If the optimization fails to meet the default bounds, or if the default bounds conflict with other requirements, on the Tuning tab, use Tuning Options to change the defaults.