File: feedback.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 (37 lines) | stat: -rw-r--r-- 1,147 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
abcd             Scilab Group             Scilab Function              abcd
NAME
   feedback - feedback operation
  
CALLING SEQUENCE
 Sl=Sl1/.Sl2
PARAMETERS
 Sl1,Sl2  : linear systems (syslin list) in state-space or transfer form,
          or ordinary gain matrices.
          
 Sl       : linear system (syslin list) in state-space or transfer form
          
DESCRIPTION
   The feedback operation is denoted by  /.  (slashdot). This command
  returns Sl=Sl1*(I+Sl2*Sl1)^-1, i.e the (negative)  feedback of Sl1 and
  Sl2. Sl is the transfer  v -> y  for  y = Sl1 u , u = v - Sl2 y.
  
   The result is the same as Sl=LFT([0,I;I,-Sl2],Sl1).
  
   Caution: do not use with decimal point (e.g. 1/.1 is ambiguous!)
  
EXAMPLE
 S1=ssrand(2,2,3);S2=ssrand(2,2,2);
 W=S1/.S2;
 ss2tf(S1/.S2)
 //Same operation by LFT:
 ss2tf(lft([zeros(2,2),eye(2,2);eye(2,2),-S2],S1))
 //Other approach: with constant feedback
 BigS=sysdiag(S1,S2); F=[zeros(2,2),eye(2,2);-eye(2,2),zeros(2,2)];
 Bigclosed=BigS/.F;
 W1=Bigclosed(1:2,1:2);   //W1=W (in state-space).
 ss2tf(W1)
 //Inverting
 ss2tf(S1*inv(eye()+S2*S1))
SEE ALSO
   lft, sysdiag, augment, obscont