Scilab Function
nyquist - nyquist plot
sl : syslin list (SIMO linear system in continuous or discrete time).
fmin,fmax : real scalars (frequency bounds).
step : real (logarithmic discretization step).
comments : string vector (captions).
frq : vector or matrix of frequencies (one row for each output of sl).
db,phi : real matrices of modulus (in dB) and phases (in degrees) (one row for each output of sl).
repf : matrix of complex numbers. Frequency response (one row for aech output of sl)
f_unit : desired frequency unit.
Nyquist plot, i.e., Imaginary part versus Real part of the frequency response of sl.
For continous time systems sl(%i*w) is plotted (w is the frequency in rad/s). For discrete-time systems or discretized systems sl(exp(%i*w*dt)) is used (dt=1 for discrete-time systems and dt=sl('dt') is the sampling period for discretized systems).
sl can be a continuous-time or a discrete-time SIMO system (see syslin). In case of multi-output the outputs are plotted with different symbols.
The frequencies are given by the bounds fmin,fmax or by a row-vector (or a matrix for multi-output) frq.
f_unit selects the desired unit for frequencies: 'h' for Hz or 'r' for rad/s. The default frequency unit is Hz.
step is the (logarithmic ) discretization step. (see calfrq for the choice of default value).
comments is a vector of character strings (captions).
db,phi are the matrices of modulus (in dB) and phases (in degrees). (One row for each response).
repf is a matrix of complex numbers. One row for each response.
Default values for fmin and fmax are 1.d-3, 1.d+3 if sl is continuous-time or 1.d-3, 0.5 if sl is discrete-time.
Automatic discretization of frequencies is made by calfrq.
xbasc(); s=poly(0,'s'); h=syslin('c',(s^2+2*0.9*10*s+100)/(s^2+2*0.3*10.1*s+102.01)); comm='(s^2+2*0.9*10*s+100)/(s^2+2*0.3*10.1*s+102.01)'; nyquist(h,0.01,100,comm); h1=h*syslin('c',(s^2+2*0.1*15.1*s+228.01)/(s^2+2*0.9*15*s+225)) xbasc(); nyquist([h1;h],0.01,100,['h1';'h']) xbasc();nyquist([h1;h])