next up previous
Next: Frequency response Up: Control examples Previous: Control examples

LQG

Simple example of SISO LQG Design Demo is in file /usr/local/lib/scilab/demos/control/lqg.dem Computes the LQG compensator and plots response

\fbox{\epsfig{file=foo0_100.eps,width=3.75in}}

-->  s=poly(0,'s');
-->  str='(s-1)/(s^2-5*s+1)';
-->  rep=x_dialog('Nominal plant?',str)
 rep  =
 (s-1)/(s^2-5*s+1)
-->  if rep==[] then return,end
-->  Plant=evstr(rep);
-->  Plant=syslin('c',Plant);
-->  
-->//Nominal Plant
-->P22=tf2ss(Plant);    //...in state-space form
-->[ny,nu,nx]=size(P22);
-->x_message('Now enter weighting matrices');
Now enter weighting matrices
-->rep=x_matrix('x-weighting matrix',eye(nx,nx))
 rep  =
!   1.    0. !
!   0.    1. !
-->if rep==[] then return,end
-->Qx=evstr(rep);
-->rep=x_matrix('u-weighting matrix',eye(nu,nu));
-->if rep==[] then return,end
-->Qu=evstr(rep);
-->bigQ=sysdiag(Qx,Qu);
-->rep=x_matrix('x-noise covariance matrix',eye(nx,nx))
 rep  =
!   1.    0. !
!   0.    1. !
-->if rep==[] then return,end
-->Rx=evstr(rep);
-->rep=x_matrix('y-noise covariance matrix',eye(ny,ny))
 rep  =
    1.
-->if rep==[] then return,end
-->Ry=evstr(rep);
-->bigR=sysdiag(Rx,Ry);
-->[Plqg,r]=lqg2stan(P22,bigQ,bigR);     //LQG pb as a standard problem
-->Klqg=lqg(Plqg,r);                     //LQG compensator
-->disp(spec(h_cl(Plqg,r,Klqg)),'closed loop eigenvalues:');    //Check internal stability
 closed loop eigenvalues:
! - 4.9879273 !
! - 4.8577169 !
! - 0.6344970 !
! - 0.3472486 !
-->[Slqg,Rlqg,Tlqg]=sensi(P22,Klqg);  //Sensitivity functions
-->disp(clean(ss2tf(Slqg)),'Sensitivity function');
 Sensitivity function
                                       2           3   4
  - 42.573731 + 228.69605s - 120.71068s + 10.82739s + s
    ---------------------------------------------------
                                      2           3   4
    5.3385391 + 25.95691s + 34.116185s + 10.82739s + s
-->disp(clean(ss2tf(Tlqg)),'Complementary sensitivity function');
 Complementary sensitivity function
                                              2
            47.91227 - 202.73914s + 154.82687s
    --------------------------------------------------
                                      2           3   4
    5.3385391 + 25.95691s + 34.116185s + 10.82739s + s
-->
Closed-loop response


 

Scilab group