Main Content

Singular values plot of dynamic system

`sigma(sys)`

sigma(sys,w)

sigma(sys,[],type)

sigma(sys,w,type)

sigma(sys1,sys2,...,sysN,w,type)

sigma(sys1,'PlotStyle1',...,sysN,'PlotStyleN',w,type)

sv = sigma(sys,w)

[sv,w]
= sigma(sys)

`sigma `

calculates the singular values of the
frequency response of a dynamic system `sys`

.
For an FRD model, `sigma`

computes the singular values
of `sys.Response`

at the frequencies, `sys.frequency`

.
For continuous-time TF, SS, or ZPK models with transfer function *H*(*s*), `sigma`

computes
the singular values of *H*(*j*ω)
as a function of the frequency ω. For discrete-time TF, SS,
or ZPK models with transfer function *H*(*z*)
and sample time *T _{s}*,

`sigma`

computes
the singular values of$$H\left({e}^{j\omega {T}_{s}}\right)$$

for frequencies ω between 0 and the Nyquist frequency
ω* _{N}* = π/

The singular values of the frequency response extend the Bode
magnitude response for MIMO systems and are useful in robustness analysis.
The singular value response of a SISO system is identical to its Bode
magnitude response. When invoked without output arguments, `sigma`

produces
a singular value plot on the screen.

`sigma(sys)`

plots the singular
values of the frequency response of a model `sys`

.
This model can be continuous or discrete, and SISO or MIMO. The frequency
points are chosen automatically based on the system poles and zeros,
or from `sys.frequency`

if `sys`

is
an FRD.

`sigma(sys,w)`

explicitly
specifies the frequency range or frequency points to be used for the
plot. To focus on a particular frequency interval `[wmin,wmax]`

,
set `w = {wmin,wmax}`

. To use particular frequency
points, set `w`

to the corresponding vector of frequencies.
Use `logspace`

to generate logarithmically spaced
frequency vectors. Frequencies must be in `rad/TimeUnit`

,
where `TimeUnit`

is the time units of the input dynamic
system, specified in the `TimeUnit`

property
of `sys`

.

`sigma(sys,[],type)`

or `sigma(sys,w,type)`

plots
the following modified singular value responses:

| Singular values of the frequency response |

| Singular values of the frequency response |

| Singular values of the frequency response |

These options are available only for square systems, that is, with the same number of inputs and outputs.

`sigma(sys1,sys2,...,sysN,w,type)`

plots
the singular value plots of several LTI models on a single figure.
The arguments `w`

and `type`

are
optional. The models `sys1,sys2,...,sysN `

need not
have the same number of inputs and outputs. Each model can be either
continuous- or discrete-time.

`sigma(sys1,'PlotStyle1',...,sysN,'PlotStyleN',w,type)`

specifies
a distinctive color, linestyle, and/or marker for each system plot.
See `bode`

for an example.

`sv = sigma(sys,w)`

and ```
[sv,w]
= sigma(sys)
```

return the singular values `sv`

of
the frequency response at the frequencies `w`

. For
a system with `Nu`

input and `Ny`

outputs,
the array `sv`

has `min(Nu,Ny)`

rows
and as many columns as frequency points (length of `w`

).
The singular values at the frequency `w(k)`

are given
by `sv(:,k)`

.

You can change the properties of your plot, for example the units. For information on the ways to change properties of your plots, see Ways to Customize Plots.

`sigma`

uses the MATLAB^{®} function `svd`

to
compute the singular values of a complex matrix.

For TF, ZPK, and SS models, `sigma`

computes
the frequency response using the `freqresp`

algorithms.
As a result, small discrepancies may exist between the `sigma`

responses
for equivalent TF, ZPK, and SS representations of a given model.