Demonstrate eigenvector assignment using an STOVL Model

The example is taken from:

Lee, H. P., Jr., Yousseff, H.M. and R.P. Habek, "Application of Eigenstructure Assignment to the Design of STOVL Flight Control Systems," AIAA 88-4140-CP.

------------------------------------------------------------------------
See also STOVL, ESAssign, IC
------------------------------------------------------------------------

Contents

%--------------------------------------------------------------------------
%   Copyright (c) 2003 Princeton Satellite Systems, Inc.
%   All rights reserved.
%--------------------------------------------------------------------------

System

%-------
g = STOVL('longitudinal hover');

eig(g)
ans =
            0 +          0i
       -0.014 +          0i
      0.30556 +          0i
     -0.21428 +    0.29724i
     -0.21428 -    0.29724i
          -50 +          0i
           -4 +          0i

Desired eigenvalues

%--------------------
j = sqrt(-1);
lambda = [ -1.5 + j*2;...
           -1.5 - j*2;...
		   -0.667;...
		   -1.0;...
		   -1.25];

vD = [0   0   1   0   0;...
      0   0   0   1   nan;...
	  1   nan 0   0   0;...
	  nan 1   nan nan nan;...
	  nan nan nan nan 1;...
	  nan*ones(2,5)];

fC = [1 1 1 0 0;...
      0 0 0 1 1];

Compute the gain and the achieved eigenvectors

%-----------------------------------------------
disp(' ')
disp('----')
disp('Gain')
disp('----')
k = ESAssign( g, lambda, vD, fC );
disp(k);
 
----
Gain
----
     -0.54281      0.31936      0.69081            0            0
            0            0            0       1.0326        0.441

Create the closed loop system

%------------------------------
[a, b, c] = getabcd( g );
aCL       = a - b*k*c;

disp(' ')
disp('-----------------------')
disp('Closed loop eigenvalues')
disp('-----------------------')
eig(aCL)
 
-----------------------
Closed loop eigenvalues
-----------------------
ans =
      -46.456 +          0i
      -1.5001 +          2i
      -1.5001 -          2i
     -0.66639 +          0i
      -1.7657 +          0i
      -1.0047 +          0i
       -1.244 +          0i

Digitize the closed loop system using a zero order hold

%--------------------------------------------------------

% Simulate
%---------
g = set( g, aCL, 'a' );

x = [0;0;0;0;0;pi/180;0];
IC( g, x, 0.01, 1000 );



%--------------------------------------