1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
repfreq(1) Scilab Function repfreq(1)
NAME
repfreq - frequency response
CALLING SEQUENCE
[ [frq,] repf]=repfreq(sys,fmin,fmax [,step])
[ [frq,] repf]=repfreq(sys [,frq])
[ frq,repf,splitf]=repfreq(sys,fmin,fmax [,step])
[ frq,repf,splitf]=repfreq(sys [,frq])
PARAMETERS
sys : syslin list : SIMO linear system
fmin,fmax : two real numbers (lower and upper frequency bounds)
frq : real vector of frequencies (Hz)
step : logarithmic discretization step
splitf : vector of indexes of critical frequencies.
repf : vector of the complex frequency response
DESCRIPTION
repfreq returns the frequency response calculation of a linear system. If
sys(s) is the transfer function of Sys, repf(k) equals sys(s) evaluated at
s= %i*frq(k)*2*%pi for continuous time systems and at
exp(2*%i*%pi*dt*frq(k)) for discrete time systems (dt is the sampling
period).
db(k) is the magnitude of repf(k) expressed in dB i.e.
db(k)=20*log10(abs(repf(k))) and phi(k) is the phase of repf(k) expressed
in degrees.
If fmin,fmax,step are input parameters, the response is calculated for the
vector of frequencies frq given by:
frq=[10.^((log10(fmin)):step:(log10(fmax))) fmax];
If step is not given, the output parameter frq is calculated by
frq=calfrq(sys,fmin,fmax).
Vector frq is splitted into regular parts with the split vector.
frq(splitf(k):splitf(k+1)-1) has no critical frequency. sys has a pole in
the range [frq(splitf(k)),frq(splitf(k)+1)] and no poles outside.
EXAMPLE
A=diag([-1,-2]);B=[1;1];C=[1,1];
Sys=syslin('c',A,B,C);
frq=0:0.02:5;w=frq*2*%pi; //frq=frequencies in Hz ;w=frequencies in rad/sec;
[frq1,rep] =repfreq(Sys,frq);
[db,phi]=dbphi(rep);
Systf=ss2tf(Sys) //Transfer function of Sys
x=horner(Systf,w(2)*sqrt(-1)) // x is Systf(s) evaluated at s = i w(2)
rep=20*log(abs(x))/log(10) //magnitude of x in dB
db(2) // same as rep
ang=atan(imag(x),real(x)); //in rad.
ang=ang*180/%pi //in degrees
phi(2)
repf=repfreq(Sys,frq);
repf(2)-x
SEE ALSO
bode, freq, calfrq, horner, nyquist, dbphi
AUTHOR
S. S.
|