File: repfreq.cat

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (68 lines) | stat: -rw-r--r-- 2,206 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
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.