File: gfrancis.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 (51 lines) | stat: -rw-r--r-- 1,302 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
gfrancis          Scilab Group          Scilab Function            gfrancis
NAME
   gfrancis - Francis equations for tracking
  
CALLING SEQUENCE
 [L,M,T]=gfrancis(Plant,Model)
PARAMETERS
 Plant           : syslin list
                 
 Model           : syslin list
                 
 L,M,T           : real matrices
                 
DESCRIPTION
   Given the the linear plant:
  
     x'= F*x + G*u 
     y = H*x + J*u
   and the linear model
  
     xm'= A*xm + B*um
     ym = C*xm + D*um
   the goal is for the plant to track the model i.e. e = y - ym ---> 0 while
  keeping stable the state x(t) of the plant.  u is given by feedforward
  and feedback
  
  u = L*xm + M*um + K*(x-T*xm) = [K , L-K*T] *(x,xm) + M*um
   The matrices T,L,M satisfy generalized Francis equations
  
     F*T + G*L = T*A
     H*T + J*L = C
           G*M = T*B
           J*M = D
   The matrix K must be chosen as stabilizing the pair (F,G) See example of
  use in directory demos/tracking.
  
EXAMPLE
 Plant=ssrand(1,3,5);
 [F,G,H,J]=abcd(Plant);
 nw=4;nuu=2;A=rand(nw,nw);
 st=maxi(real(spec(A)));A=A-st*eye(A);
 B=rand(nw,nuu);C=2*rand(1,nw);D=0*rand(C*B);
 Model=syslin('c',A,B,C,D);
 [L,M,T]=gfrancis(Plant,Model);
 norm(F*T+G*L-T*A,1)
 norm(H*T+J*L-C,1)
 norm(G*M-T*B,1)
 norm(J*M-D,1)
SEE ALSO
   lqg, ppol