File: feedback.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 (41 lines) | stat: -rw-r--r-- 1,126 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

abcd(1)                        Scilab Function                        abcd(1)
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