Main Content

Nyquist plot of frequency response

`nyquist(sys)`

nyquist(sys,w)

nyquist(sys1,sys2,...,sysN)

nyquist(sys1,sys2,...,sysN,w)

nyquist(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

[re,im,w] = nyquist(sys)

[re,im]
= nyquist(sys,w)

[re,im,w,sdre,sdim] = nyquist(sys)

`nyquist`

creates a Nyquist
plot of the frequency response of a dynamic
system model. When invoked without left-hand arguments, `nyquist`

produces
a Nyquist plot on the screen. Nyquist plots are used to analyze system
properties including gain margin, phase margin, and stability.

`nyquist(sys)`

creates a Nyquist
plot of a dynamic system `sys`

. This model can be
continuous or discrete, and SISO or MIMO. In the MIMO case, `nyquist`

produces
an array of Nyquist plots, each plot showing the response of one particular
I/O channel. The frequency points are chosen automatically based on
the system poles and zeros.

`nyquist(sys,w)`

explicitly
specifies the frequency range or frequency points to be used for the
plot. To focus on a particular frequency interval, set ```
w
= {wmin,wmax}
```

. To use particular frequency points, set `w`

to
the vector of desired 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`

.

`nyquist(sys1,sys2,...,sysN)`

or `nyquist(sys1,sys2,...,sysN,w)`

superimposes
the Nyquist plots of several LTI models on a single figure. All systems
must have the same number of inputs and outputs, but may otherwise
be a mix of continuous- and discrete-time systems. You can also specify
a distinctive color, linestyle, and/or marker for each system plot
with the syntax `nyquist(sys1,'PlotStyle1',...,sysN,'PlotStyleN')`

.

`[re,im,w] = nyquist(sys)`

and ```
[re,im]
= nyquist(sys,w)
```

return the real and imaginary parts of
the frequency response at the frequencies `w`

(in `rad/TimeUnit`

). `re`

and `im`

are
3-D arrays (see "Arguments" below for details).

`[re,im,w,sdre,sdim] = nyquist(sys)`

also
returns the standard deviations of `re`

and `im`

for
the identified system `sys`

.

The output arguments `re`

and `im`

are
3-D arrays with dimensions

$$(\text{numberofoutputs)}\times \text{(numberofinputs)}\times \text{(lengthofw)}$$

For SISO systems, the scalars `re(1,1,k)`

and `im(1,1,k)`

are
the real and imaginary parts of the response at the frequency ω* _{k}* =
w(k).

$$\begin{array}{l}\text{re}(1,1,k)=\mathrm{Re}\left(h(j{\omega}_{k})\right)\\ \text{im}(1,1,k)=\mathrm{Im}\left(h(j{w}_{k})\right)\end{array}$$

For MIMO systems with transfer function *H*(*s*), `re(:,:,k)`

and `im(:,:,k)`

give
the real and imaginary parts of *H*(*jω _{k}*)
(both arrays with as many rows as outputs and as many columns as inputs).
Thus,

$$\begin{array}{l}\text{re}\text{\hspace{0.17em}}\text{(i,}\text{\hspace{0.17em}}\text{j,}\text{\hspace{0.17em}}\text{k)}=\mathrm{Re}\left({h}_{ij}(j{\omega}_{k})\right)\\ \text{im}\text{\hspace{0.17em}}\text{(i,}\text{\hspace{0.17em}}\text{j,}\text{\hspace{0.17em}}\text{k)}=\mathrm{Im}\left({h}_{ij}(j{\omega}_{k})\right)\end{array}$$

where *h _{ij}* is the transfer
function from input

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. For the most flexibility in customizing plot properties, use the

`nyquistplot`

command instead of`nyquist`

.There are two zoom options available from the right-click menu that apply specifically to Nyquist plots:

**Full View**— Clips unbounded branches of the Nyquist plot, but still includes the critical point (–1, 0).**Zoom on (-1,0)**— Zooms around the critical point (–1,0). (To access critical-point zoom programmatically, use`nyquistplot`

instead.)

To activate data markers that display the real and imaginary values at a given frequency, click anywhere on the curve. The following figure shows a

`nyquist`

plot with a data marker.

See `bode`

.