File: repfreq.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (67 lines) | stat: -rw-r--r-- 2,213 bytes parent folder | download
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
repfreq           Scilab Group           Scilab Function            repfreq
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.