Disk margins quantify the stability of a closed-loop system against variations in loop
gain or phase at any frequency. The `diskmargin`

command models such variations as multiplicative plant
uncertainty on the open-loop transfer function *L*. The *disk
margin* measures how much uncertainty the loop can tolerate before going
unstable. From that uncertainty amount, `diskmargin`

derives minimum
gain and phase margins. The disk-based gain margin *GM* is the amount
by which the loop gain can increase or decrease without loss of stability, in absolute
units. The disk-based phase margin *PM* is the amount by which the loop
phase can increase or decrease without loss of stability, in degrees. These disk-based
margins take into account all frequency and loop interactions. Therefore, disk-based
margin analysis provides a stronger guarantee of stability than the classical gain and
phase margins, computed with `allmargin`

.

For MIMO feedback loops, you can compute:

*Loop-at-a-time*margins — Maximum tolerable gain variations (or phase variations) in each feedback channel, computed with all other loops closed.*Multiloop margins*— Maximum tolerable gain variations (or phase variations) across all feedback channels. Multiloop margins allow for independent and concurrent variations in all feedback channels. Multiloop margins capture loop interactions and typically yield smaller margins.

For instance, consider the 2-channel MIMO system of the following illustration.

For this system, you can compute:

Maximum tolerable gain variations (or phase variations) in the first channel (first system input to first system output)

Maximum tolerable gain variations (or phase variations) in the second channel (second system input to second system output)

Maximum tolerable independent gain variations (or phase variations) in both channels at the same time.

In general, gain and phase margins vary across frequency. Thus, for example, For example, a gain margin of 5dB at 2 rad/s in a particular loop channel indicates that closed-loop stability is maintained when the loop gain increases or decreases by as much as 5dB at that frequency.

For details and examples of how to obtain disk-based stability margins, see
`diskmargin`

.

In some cases, the stability margins can vary depending on whether gain and phase
variations are applied at the plant input or the plant output.
`diskmargin`

lets you compute margins for variations at the
input, output, or both simultaneously. In general, the margins for simultaneous
input and output variations are smaller than those for input or output only, and
provide a more conservative guarantee of stability. Consider the SISO or MIMO
closed-loop system of the following diagram.

You can compute the disk margins at the plant inputs and outputs as follows.

`[DM,MM] = diskmargin(P*C)`

returns the margins for variations at the plant outputs.`[DM,MM] = diskmargin(C*P)`

returns the margins for variations at the plant inputs.`MMIO = diskmargin(P,C)`

returns the margins for simultaneous variations at the plant outputs and inputs.

For details and examples of how to get these margins, see `diskmargin`

.

The gain margins you obtain from `diskmargin`

assume no phase
variation, and vice versa. In practice, your system can experience simultaneous gain
and phase variations. The following plot can help you assess robustness to changes
in both gain and phase.

For instance, suppose that a feedback loop in your system has a 10 dB margin at a
particular frequency. The contour starting at ```
(Gain,Phase) =
(10,0)
```

shows how a given amount of phase variation reduces the
allowable gain variation at that frequency. For instance, if the phase varies by 30
degrees, then the gain margin drops to about 8.4 dB (red mark).

The disk margin is computed by applying an uncertainty to the nominal loop
transfer *L* and computing how large that uncertainty can be while
preserving closed-loop stability (see How Disk Margins are Computed). If the loop
transfer *L* is itself an uncertain system, then the disk margin
also varies as a function of system uncertainty. The *worst-case disk
margin * is the smallest disk margin that occurs within the specified
uncertainty range. It is also the minimum guaranteed margin over the uncertainty
range. You can compute worst-case disk margins of an uncertain system using
`wcdiskmargin`

. This function estimates the worst-case disk margins
and corresponding worst-case gain and phase margins for both loop-at-a-time and
multiloop variations. The function also returns the worst-case perturbation, the
combination of uncertain elements in *L* that yields the weakest
margins.

Consider the following closed-loop system, with nominal loop transfer
*L* and unit feedback.

For SISO *L*, disk-margin analysis incorporates a multiplicative
complex uncertainty Δ into the loop transfer function as follows:

$$L\to {L}_{\Delta}=L\frac{1+\Delta \left(1-E\right)/2}{1-\Delta \left(1+E\right)/2}=L\left(1+{\delta}_{L}\right),\text{\hspace{1em}}\left|\Delta \right|<\alpha .$$

For Δ = 0, the multiplicative factor is 1, corresponding to the nominal
*L*. As Δ varies in the ball |Δ| < *α*, The
factor (1+ *δ _{L}*) varies in a disk. The gain
and phase of the factor are a model for gain and phase variation in

From this *α* value, `diskmargin`

computes the
minimum guaranteed gain and phase margins. The shaded region in the following
illustration shows the range of (1+ *δ _{L}*)
values in the complex plane for |Δ| <

With this uncertainty applied to *L*, the closed-loop system
remains stable for all |Δ| < *α* when, for all frequencies
*ω*,

$$\left|S\left(j\omega \right)+\frac{E-1}{2}I\right|<\frac{1}{\alpha},$$

where *S* is the sensitivity function (*I* +
*L*)^{–1}. In other words, *α* can be computed from the
peak gain of a shifted sensitivity function,

$$S+\frac{\left(E-1\right)I}{2}.$$

In the Nyquist plane, the requirement of robust stability for |Δ| <
*α* is equivalent to:

$$L\left(j\omega \right)\ne -\frac{1-\Delta \left(1+E\right)/2}{1+\Delta \left(1-E\right)/2},\text{\hspace{0.17em}}\text{forall}\omega \text{\hspace{0.17em}}\text{andforall}\text{\hspace{0.17em}}\left|\Delta \right|\alpha .$$

The left-hand side of this expression is the Nyquist curve of the loop transfer.
The right-hand side is –(1+
*δ _{L}*)

Varying the eccentricity parameter *E* amounts to changing the shape of the uncertainty disk $\left(1+\delta \right)\text{\hspace{0.17em}}$from which the gain and phase margins are derived. Disks of different shapes give more or less conservative estimates of the margins. Thus, you can examine the margins resulting from different *E* values to get the least conservative estimate for your system.

To see how the disk margins change with the eccentricity parameter for a particular open-loop transfer function *L*, vary *E* between large negative and large positive values. Plot the resulting gain and phase margins.

L = tf(25,[1 10 10 10]); % Generate vector of E values E = [linspace(0,1,10) logspace(0,2,10)]; E = unique([E -E]); % Compute disk margins for ct=1:numel(E) DM(ct) = diskmargin(ss(L),E(ct)); end % Extract and plot gain and phase margin values against E GM = cat(1,DM.GainMargin); PM = cat(1,DM.PhaseMargin); subplot(211) plot(E,GM(:,1),E,GM(:,2)) title('GM'), grid subplot(212) plot(E,PM(:,1),E,PM(:,2)) title('PM'), grid

Consider the gain-margin plot. For this system, large negative values of *E* give a very conservative estimate for the upper margin, but a much less conservative estimate of the lower margin. The reverse is true for large positive values of *E*. The true margins of the system must encompass all these estimates. Therefore, you can conclude that the loop remains stable for variations in loop gain within the complete range between the lowest lower margin and the highest upper margin, or factors of about 0.08–1.9.

For phase margins, the least conservative estimate of about ±25° occurs closer to *E* = 0.

To see how variation in *E* values corresponds to different disk shapes, examine the Nyquist plot of the system and the disks corresponding to a few of the *E* values. You can find the disk for a particular value of E by setting $\Delta =\alpha {\mathit{e}}^{\mathit{i}\theta}$ and varying $\theta $ between 0 and $\pi $. The disk margin $\alpha $ is returned by `diskmargin`

in the `DiskMargin`

field of `DM`

.

figure nyquist(L,'b') hold on Evalues = [-3,0,3]; disk = []; for k = 1:length(Evalues) E = Evalues(k); DM = diskmargin(L,E); theta = 0:0.01:2*pi; delta = DM.DiskMargin * exp(1i*theta); ExcludeRegion = (delta*(1+E)/2-1) ./ (1+delta*(1-E)/2); disk(:,k) = ExcludeRegion'; end plot(disk) axis equal legend('L','E = -3','E = 0','E = 3')

For visibility, the plot shows only three *E* values, –3, 0, and 3. The plot shows how the shape of the disk, and thus the resulting disk margins, vary as *E* changes.

For MIMO systems, the disk margin computation is analogous. The uncertainty model is:

$$L\to {L}_{\Delta}=L\left(I+\Delta \frac{1-E}{2}\right){\left(I-\Delta \frac{1+E}{2}\right)}^{-1}.$$

Here, Δ is a diagonal matrix, to model gain or phase variation independently in each feedback channel.

$$\Delta =\left(\begin{array}{ccc}{\delta}_{1}& 0& 0\\ 0& \ddots & 0\\ 0& 0& {\delta}_{N}\end{array}\right),\text{\hspace{1em}}\left|{\delta}_{j}\right|<\alpha .$$

The robust stability condition is then:

$${\mu}_{\Delta}\left(S+\frac{E-1}{2}I\right)<\frac{1}{\alpha}.$$

The disk margin *α* can be obtained by a *μ*
structured singular value (`mussv`

) computation.

The control system tuning tools in Control System
Toolbox™ let you specify target gain and phase margins for loops in your tuned
system. The margin goals `TuningGoal.Margins`

(for command-line
tuning) and Margins Goal (for tuning with Control System Tuner) use disk-based
margins. Thus, when you specify independent gain and phase margins
*GM* and *PM* for tuning, the software chooses
the smallest *α* that enforces both values. This
*α* is given by:

$$\alpha =\mathrm{max}\left[\frac{GM-1}{GM+1},\text{\hspace{0.17em}}\mathrm{tan}\left(PM/2\right)\right].$$

In applying this value of *α*, the tuning software assumes
*E* = 0.

[1] Blight, J.D., R.L. Dailey,
and D. Gangsaas. "Practical Control Law Design for Aircraft Using Multivariable
Techniques." *International Journal of Control*. Vol. 59,
Number 1, 1994, pp. 93–137.