augmented plant
[P,r]=augment(G)
[P,r]=augment(G,flag1)
[P,r]=augment(G,flag1,flag2)
:G linear system ( syslin list), the nominal plant : :flag1 one of the following (upper case) character string: ‘S’,
‘R’, ‘T’ ‘SR’, ‘ST’, ‘RT’ ‘SRT’
: :P linear system ( syslin list), the ``augmented’’ plant : :r 1x2 row vector, dimension of P22 = G :
If flag1=’SRT’ (default value), returns the “full” augmented plant
[ I | -G] -->'S'
[ 0 | I] -->'R'
P = [ 0 | G] -->'T'
[-------]
[ I | -G]
‘S’, ‘R’, ‘T’ refer to the first three (block) rows of P respectively.
If one of these letters is absent in flag1, the corresponding row in P is missing.
If G is given in state-space form, the returned P is minimal. P is calculated by: [I,0,0;0,I,0;-I,0,I;I,0,0]*[I,-G;0,I;I,0].
The augmented plant associated with input sensitivity functions, namely
[ I | -I] -->'S' (`input`_ sensitivity)
[ G | -G] -->'R' (G*`input`_ sensitivity)
P = [ 0 | I] -->'T' (K*G*`input`_ sensitivity)
[-------]
[ G | -G]
is obtained by the command [P,r]=augment(G,flag,’i’). For state- space G, this P is calculated by: [I,-I;0,0;0,I;0,0]+[0;I;0;I]*G*[I,-I] and is thus generically minimal.
Note that weighting functions can be introduced by left-multiplying P by a diagonal system of appropriate dimension, e.g., P = sysdiag(W1,W2,W3,eye(G))*P.
Sensitivity functions can be calculated by lft. One has:
For output sensitivity functions [P,r]=augment(P,’SRT’): lft(P,r,K)=[inv(eye()+G*K);K*inv(eye()+G*K);G*K*inv(eye()+G*K)];
For input sensitivity functions [P,r]=augment(P,’SRT’,’i’): lft(P,r,K)=[inv(eye()+K*G);G*inv(eye()+K*G);K*G*inv(eye()+G*K)];
G=`ssrand`_(2,3,2); //Plant
K=`ssrand`_(3,2,2); //Compensator
[P,r]=augment(G,'T');
T=`lft`_(P,r,K); //Complementary sensitivity function
Ktf=`ss2tf`_(K);Gtf=`ss2tf`_(G);
Ttf=`ss2tf`_(T);T11=Ttf(1,1);
Oloop=Gtf*Ktf;
Tn=Oloop*`inv`_(`eye`_(Oloop)+Oloop);
`clean`_(T11-Tn(1,1));
//
[Pi,r]=augment(G,'T','i');
T1=`lft`_(Pi,r,K);T1tf=`ss2tf`_(T1); //Input Complementary sensitivity function
Oloop=Ktf*Gtf;
T1n=Oloop*`inv`_(`eye`_(Oloop)+Oloop);
`clean`_(T1tf(1,1)-T1n(1,1))