obscont(1)

NAME
obscont - observer based controller

CALLING SEQUENCE
[K]=obscont(P,Kc,Kf)
[J,r]=obscont(P,Kc,Kf)

PARAMETERS

P   : syslin list (nominal plant) in state-space form, continuous or discrete time

Kc  : real matrix, (full state) controller gain

Kf  : real matrix, filter gain

K   : syslin list (controller)

J   : syslin list (extended controller)

r   : 1x2 row vector

DESCRIPTION
obscont returns the observer-based controller associated with a nominal plant P=[A,B,C,D].

The full-state control gain is Kc and the filter gain is Kf. These gain can be computed, for example, by pole placement.

A+B*Kc and A+C*Kf are (usually) assumed stable.

K is calculated by: K=[A+B*Kc+Kf*C+Kf*D*Kc,Kf,-Kc].

Invoked with two output arguments obscont returns a (square) linear system K which parametrizes all the stabilizing feedbacks via a LFT.

Let Q an arbitrary stable linear system of dimension r(2)xr(1) i.e. number of inputs x number of outputs in P. Then any stabilizing controller K for P can be expressed as K=lft(J,r,Q). The controller which corresponds to Q=0 is K=J(1:ny,1:nu) (this K is returned by K=obscont(P,Kc,Kf)). r is size(P) i.e the vector [number of outputs, number of inputs];

EXAMPLE
ny=2;nu=3;nx=4;P=ssrand(ny,nu,nx);[A,B,C,D]=abcd(P);
Kc=-ppol(A,B,[-1,-1,-1,-1]);Kf=-ppol(A',C',[-2,-2,-2,-2]);Kf=Kf';
[J,r]=obscont(P,Kc,Kf);
Q=ssrand(nu,ny,3);Q(2)=Q(2)-(maxi(real(spec(Q(2))))+0.5)*eye(Q(2))
//Q is a stable parameter
K=lft(J,r,Q);
spec(h_cl(P,K))  // closed-loop A matrix (should be stable);

SEE ALSO
ppol, lqg, lqr, lqe, h_inf, lft

AUTHOR
F.D.