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. -------------------------------------------------------------------------

s = {'longitudinal hover' ...
     'lateral/directional hover' ...
     'longitudinal transition' ...
     'lateral/directional transition'};

i      = 1:4;
lambda = {};
vD     = {};
fC     = {};
x      = {};

Desired eigenstructures

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

Longitudinal Hover

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

vD{1}     = [ 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 1 0 0; 0 0 0 1 1];

x{1}      = [1;0;0;0;0;0;0];

Lateral Hover

%--------------
lambda{2} = [ -1.5+j*2;-1.5-j*2;-.667;-4;-1];

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

fC{2}     = [1 1 1 0 0; 0 0 0 1 1];

x{2}      = [1;0;0;0;0;0;0];

Longitudinal transition

%------------------------
lambda{3} = [ -1.25+j; -1.25-j; -7.5; -1.4];

vD{3}     = [ 1   nan 0   0;...
              nan 1   0   0;...
              0   0   nan 1;...
              0   0   1   nan;...
              nan*ones(3,4)];

fC{3}     = [1 1 0 0; 0 0 1 0; 0 0 0 1];
x{3}      = [1;0;0;0;0;0;0];

r         = [];

Lateral transition

%-------------------
lambda{4} = [ -1.4+j*1.43; -1.4-j*1.43; -2.1+j*2.14; -2.1-j*2.14];

vD{4}     = [0   0   1   nan;...
             1   nan 0   0;...
		     nan 1   0   0;...
		     0   0   nan 1;...
		     nan*ones(3,4)];

fC{4}     = [1 1 0 0;0 0 1 1];
x{4}      = [1;0;0;0;0;0;0];

for k = i

  disp(' ')
  disp('========================================')
  disp(s{k})
  disp('========================================')

  % System
  %-------
  g = STOVL( s{k}) ;

  disp(' ')
  disp('----------------------')
  disp('Open loop eigenvalues')
  disp('----------------------')
  eig(g)

  % Compute the gain and the achieved eigenvectors
  %-----------------------------------------------
  f = ESAssign( g, lambda{k}, vD{k},fC{k});

  disp(' ')
  disp('-----------------------')
  disp('Gain')
  disp('-----------------------')
  disp(f)

  % Create the closed loop system
  %------------------------------
  [a, b, c] = getabcd( g );
  aCL       = a - b*f*c;

  disp(' ')
  disp('-----------------------')
  disp('Closed loop eigenvalues')
  disp('-----------------------')
  eig(aCL)

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

  IC( g, x{k}, 0.01, 1000 );
end


%--------------------------------------
 
========================================
longitudinal hover
========================================
 
----------------------
Open loop eigenvalues
----------------------
ans =
            0 +          0i
       -0.014 +          0i
      0.30556 +          0i
     -0.21428 +    0.29724i
     -0.21428 -    0.29724i
          -50 +          0i
           -4 +          0i
 
-----------------------
Gain
-----------------------
     -0.54281      0.31936      0.69081            0            0
            0            0            0       1.0326        0.441
 
-----------------------
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
 
========================================
lateral/directional hover
========================================
 
----------------------
Open loop eigenvalues
----------------------
ans =
            0 +          0i
       -0.013 +          0i
      0.65401 +          0i
       -0.379 +    0.59485i
       -0.379 -    0.59485i
          -50 +          0i
          -50 +          0i
 
-----------------------
Gain
-----------------------
     0.067459      0.04815     0.092453            0            0
            0            0            0     -0.44616     -0.34769
 
-----------------------
Closed loop eigenvalues
-----------------------
ans =
      -46.743 +          0i
      -44.933 +          0i
      -3.9913 +          0i
       -1.386 +      1.791i
       -1.386 -      1.791i
      -1.0655 +          0i
     -0.61269 +          0i
 
========================================
longitudinal transition
========================================
 
----------------------
Open loop eigenvalues
----------------------
ans =
      -2.5144 +          0i
       1.8883 +          0i
    -0.024921 +     0.1597i
    -0.024921 -     0.1597i
          -50 +          0i
          -50 +          0i
           -4 +          0i
Warning: The selected eigenvector for eigenvalue 2 leads to an ill-conditioned inverse.
Warning: The selected eigenvector for eigenvalue 4 leads to an ill-conditioned inverse.
 
-----------------------
Gain
-----------------------
       1.0955       2.0764            0            0
            0            0      -1.8914            0
            0            0            0      0.53071
 
-----------------------
Closed loop eigenvalues
-----------------------
ans =
      -45.069 +          0i
      -49.471 +          0i
      -4.0474 +    0.29163i
      -4.0474 -    0.29163i
     -0.77002 +     1.0853i
     -0.77002 -     1.0853i
     -0.50182 +          0i
 
========================================
lateral/directional transition
========================================
 
----------------------
Open loop eigenvalues
----------------------
ans =
         -0.5 +          0i
     0.068541 +     1.5783i
     0.068541 -     1.5783i
     -0.89017 +          0i
    -0.059012 +          0i
          -50 +          0i
          -50 +          0i
 
-----------------------
Gain
-----------------------
       1.2904       2.0104            0            0
            0            0       6.1928      -3.5525
 
-----------------------
Closed loop eigenvalues
-----------------------
ans =
      -47.974 +          0i
      -42.818 +          0i
      -5.3652 +          0i
      -2.3756 +          0i
      -1.1369 +     1.5463i
      -1.1369 -     1.5463i
     -0.50548 +          0i