File: sensi.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 (48 lines) | stat: -rw-r--r-- 1,323 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

sensi(5)                       Scilab Function                       sensi(5)
NAME
  sensi - sensitivity functions

CALLING SEQUENCE
  [Se,Re,Te]=sensi(G,K)
  [Si,Ri,Ti]=sensi(G,K,flag)

PARAMETERS

  G         : standard plant (syslin list)

  K         : compensator (syslin list)

  flag      : character string 'o' (default value) or 'i'

  Se        : output sensitivity function (I+G*K)^-1

  Re        : K*Se

  Te        : G*K*Se (output complementary sensitivity function)

DESCRIPTION
  sensi computes sensitivity functions. If G and K are given in state-space
  form, the systems returned are generically minimal. Calculation is made by
  lft, e.g., Se can be given by the commands
   P = augment(G,'S'), Se=lft(P,K).  If flag = 'i', [Si,Ri,Ti]=sensi(G,K,'i')
  returns the input sensitivity functions.

  [Se;Re;Te]= [inv(eye+G*K);K*inv(eye+G*K);G*K*inv(eye+G*K)];
  [Si;Ri;Ti]= [inv(eye+K*G);G*inv(eye+K*G);K*G*inv(eye+K*G)];

EXAMPLE
  G=ssrand(1,1,3);K=ssrand(1,1,3);
  [Se,Re,Te]=sensi(G,K);
  Se1=inv(eye+G*K);  //Other way to compute
  ss2tf(Se)    //Se seen in transfer form
  ss2tf(Se1)
  ss2tf(Te)
  ss2tf(G*K*Se1)
  [Si,Ri,Ti]=sensi(G,K,'i');
  w1=[ss2tf(Si);ss2tf(Ri);ss2tf(Ti)]
  w2=[ss2tf(inv(eye+K*G));ss2tf(G*inv(eye+K*G));ss2tf(K*G*inv(eye+K*G))];
  clean(w1-w2)

SEE ALSO
  augment, lft, h_cl