stabil — stabilization
F=stabil(A,B,alfa) K=stabil(Sys,alfa,beta)
square real matrix (nx x nx)
real matrix (nx x nu)
real or complex vector (in conjugate pairs) or real number.
real matrix (nx x nu)
linear system (syslin list) (m inputs, p outputs).
linear system (p inputs, m outputs)
F=stabil(A,B,alfa) returns a gain matrix F such that
A+B*F is stable if pair (A,B) is stabilizable.
Assignable poles are set to alfa(1),alfa(2),....
If (A,B) is not stabilizable a warning is given
and assignable poles are set to alfa(1),alfa(2),....
If alfa is a number all eigenvalues are set to this
alfa (default value is alfa=-1).
K=stabil(Sys,alfa,beta) returns K, a compensator for Sys
such that (A,B)-controllable eigenvalues are set to
alfa and (C,A)-observable eigenvalues are set to beta.
All assignable closed loop poles (which are given by the
eigenvalues of Aclosed=h_cl(Sys,K) are set to alfa(i)'s
and beta(j)'s.
// Gain:
Sys=ssrand(0,2,5,list('st',2,3,3));
A=Sys('A');B=Sys('B');F=stabil(A,B);
spec(A) //2 controllable modes 2 unstable uncontrollable modes
//and one stable uncontrollable mode
spec(A+B*F) //the two controllable modes are set to -1.
// Compensator:
Sys=ssrand(3,2,5,list('st',2,3,3)); //3 outputs, 2 inputs, 5 states
//2 controllables modes, 3 controllable or stabilizable modes.
K=stabil(Sys,-2,-3); //Compensator for Sys.
spec(Sys('A'))
spec(h_cl(Sys,K)) //K Stabilizes what can be stabilized.