1
augment Scilab Group Scilab Function augment
3
augment - augmented plant
8
[P,r]=augment(G,flag1,flag2)
10
G : linear system (syslin list), the nominal plant
13
: one of the following (upper case) character string: 'S' , 'R' , 'T'
14
'SR' , 'ST' , 'RT' 'SRT'
17
: one of the following character string: 'o' (stands for 'output', this
18
is the default value) or 'i' (stands for 'input').
20
P : linear system (syslin list), the ``augmented'' plant
22
r : 1x2 row vector, dimension of P22 = G
25
If flag1='SRT' (default value), returns the "full" augmented plant
32
'S' , 'R' , 'T' refer to the first three (block) rows of P
35
If one of these letters is absent in flag1, the corresponding row in P is
38
If G is given in state-space form, the returned P is minimal. P is
39
calculated by: [I,0,0;0,I,0;-I,0,I;I,0,0]*[I,-G;0,I;I,0].
41
The augmented plant associated with input sensitivity functions, namely
43
[ I | -I] -->'S' (input sensitivity)
44
[ G | -G] -->'R' (G*input sensitivity)
45
P = [ 0 | I] -->'T' (K*G*input sensitivity)
48
is obtained by the command [P,r]=augment(G,flag,'i'). For state-space G,
49
this P is calculated by: [I,-I;0,0;0,I;0,0]+[0;I;0;I]*G*[I,-I] and is
50
thus generically minimal.
52
Note that weighting functions can be introduced by left-multiplying P by
53
a diagonal system of appropriate dimension, e.g., P =
54
sysdiag(W1,W2,W3,eye(G))*P.
56
Sensitivity functions can be calculated by lft. One has:
58
For output sensitivity functions [P,r]=augment(P,'SRT'):
59
lft(P,r,K)=[inv(eye()+G*K);K*inv(eye()+G*K);G*K*inv(eye()+G*K)];
61
For input sensitivity functions [P,r]=augment(P,'SRT','i'):
62
lft(P,r,K)=[inv(eye()+K*G);G*inv(eye()+K*G);K*G*inv(eye()+G*K)];
65
G=ssrand(2,3,2); //Plant
66
K=ssrand(3,2,2); //Compensator
68
T=lft(P,r,K); //Complementary sensitivity function
69
Ktf=ss2tf(K);Gtf=ss2tf(G);
70
Ttf=ss2tf(T);T11=Ttf(1,1);
72
Tn=Oloop*inv(eye(Oloop)+Oloop);
75
[Pi,r]=augment(G,'T','i');
76
T1=lft(Pi,r,K);T1tf=ss2tf(T1); //Input Complementary sensitivity function
78
T1n=Oloop*inv(eye(Oloop)+Oloop);
79
clean(T1tf(1,1)-T1n(1,1))