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

Plot the Nyquist response of the system

$$H(s)=\frac{2{s}^{2}+5s+1}{{s}^{2}+2s+3}$$

H = tf([2 5 1],[1 2 3]); nyquist(H)

The nyquist function has support for M-circles, which are the contours of the constant closed-loop magnitude. M-circles are defined as the locus of complex numbers where

$$T(j\omega )=\left|\frac{G(j\omega )}{1+G(j\omega )}\right|$$

is a constant value. In this equation, ω is the frequency
in radians/TimeUnit, where `TimeUnit`

is the system
time units, and *G* is the collection of complex
numbers that satisfy the constant magnitude requirement.

To activate the grid, select **Grid** from
the right-click menu or type

grid

at the MATLAB^{®} prompt. This figure shows the M circles for
transfer function *H*.

You have two zoom options available from the right-click menu that apply specifically to Nyquist plots:

**Tight**—Clips unbounded branches of the Nyquist plot, but still includes the critical point (-1, 0)**On (-1,0)**— Zooms around the critical point (-1,0)

Also, click anywhere on the curve to activate data markers that display the real and imaginary values at a given frequency. This figure shows the nyquist plot with a data marker.

Compute the standard deviation of the real and imaginary parts of frequency response of an identified model. Use this data to create a 3σ plot of the response uncertainty. (Identified models require System Identification Toolbox™.)

Identify a transfer function model based on data. Obtain the standard deviation data for the real and imaginary parts of the frequency response.

load iddata2 z2; sys_p = tfest(z2,2); w = linspace(-10*pi,10*pi,512); [re, im, ~, sdre, sdim] = nyquist(sys_p,w);

`sys_p`

is an identified transfer function
model. `sdre`

and `sdim`

contain `1-std`

standard
deviation uncertainty values in `re`

and `im`

respectively.

Create a `Nyquist`

plot showing the response
and its *3σ* uncertainty:

re = squeeze(re); im = squeeze(im); sdre = squeeze(sdre); sdim = squeeze(sdim); plot(re,im,'b', re+3*sdre, im+3*sdim, 'k:', re-3*sdre, im-3*sdim, 'k:')

Was this topic helpful?