Function: SOB_PROJPurpose. Computes a full state observer with Kalman filter structure by projection of the open-loop left eigenstructure. Synopsis. [g,U,T,Pi,Q] = sob_proj(sys,Tr,Damp,key,O_ratio); Description. The observer poles are automatically chosen form the design parameters which are the minimum damping ratio (Damp) and the settling time (Tr). The left eigenvectors corresponding to eigenvalues satisfying the settling time and damping ratio requirements are considered for elementary observations. For other open-loop poles that need to be shifted, elementary observations correspond to the projection of open-loop left eigenvectors. Input arguments.
Output arguments.
See also: ob_gene, add_obs, sfb_proj Example. Design of a full state observer with observation dynamics corresponding to damping ratio larger than 0.6 and settling time less than 20 seconds.
rand('seed',0);
sys = ssrand(3,2,6);
[g,U,T,Pi,Q] = sob_proj(sys,20,0.6,'m');
This observer is connected to the system
sysobs = add_obs(sys,U,T,Q);A state feedback is computed, it can be implemented as an output feedback of the system sysobs. For example: k=sfb_proj(sys,20,0.6,'m');From the separation principle we must have eig_fb(sysobs,k) equal to the union of spec(sys.a+sys.b*k) and spec(sys.a+g*sys.c) (right hand side vector below). [eig_fb(sysobs,k) [spec(sys.a+sys.b*k);spec(sys.a+g*sys.c)]] ! - 2.6052177 + 3.4736236i - 2.6052177 + 3.4736236i ! ! - 2.6052177 - 3.4736236i - 2.6052177 - 3.4736236i ! ! - 2.5247992 + 3.3663989i - 0.6930914 + 0.9241219i ! ! - 2.5247992 - 3.3663989i - 0.6930914 - 0.9241219i ! ! - 1.0233442 + 1.0792412i - 1.0233442 + 1.0792412i ! ! - 1.0233442 - 1.0792412i - 1.0233442 - 1.0792412i ! ! - 1.0188898 + 1.0745435i - 2.5247992 + 3.3663989i ! ! - 1.0188898 - 1.0745435i - 2.5247992 - 3.3663989i ! ! - 0.6992130 + 0.9322840i - 1.0188898 + 1.0745435i ! ! - 0.6992130 - 0.9322840i - 1.0188898 - 1.0745435i ! ! - 0.6930914 + 0.9241219i - 0.6992130 + 0.9322840i ! ! - 0.6930914 - 0.9241219i - 0.6992130 - 0.9322840i ! |