Demonstrate eigenvector assignment using an L1011 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 L1011, ESAssign, IC, PrintEigenvalues
------------------------------------------------------------------------

Contents

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

System

%-------
g = L1011;

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

eig(g)
 
---------------------
Open loop eigenvalues
---------------------
ans =
         -0.5 +          0i
     -0.08819 +     1.2695i
     -0.08819 -     1.2695i
      -1.0855 +          0i
   -0.0091648 +          0i
          -20 +          0i
          -25 +          0i

Desired eigenvalues

%--------------------
j      = sqrt(-1);
lambda = [ -1.5 + j*1.5;...
           -1.5 - j*1.5;...
		   -2.0 + j*1.5;...
		   -2.0 - j*1.5];

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

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

r      = [0 0 0 0;...
          0 0 0 0;...
          1 1 1 0;...
          1 0 1 1;...
          1 1 0 1;...
          0 1 1 1;...
          0 0 1 1];

Compute the gain and the achieved eigenvectors

%-----------------------------------------------
f = {};
f{1} = ESAssign( g, lambda, vD );
f{2} = ESAssign( g, lambda, vD, [1 0 1 0;1 1 1 1] );
f{3} = ESAssign( g, lambda, vD, [1 0 1 0;0 1 1 1] );
f{4} = ESAssign( g, lambda, vD, [1 0 1 0;0 1 0 1] );

[a, b, c]    = getabcd( g );

x            = [.1;0;0;0;0;0;0];

for k = 1:4
  fprintf('------------------\nCase %i\n------------------',k);
  gCL = g;
  aCL = a - b*f{k}*c;
  gainMatrix = f{k};
  disp(gainMatrix);
  PrintEigenvalues( aCL, '%7.3f', 'Closed Loop Eigenstructure' )
  disp(' ')
  PrintEigenvalues( struct('lambda',lambda,'vD',vD), '%7.3f', 'Desired Eigenstructure' );
  gCL = set( gCL, aCL, 'a' );
  IC( gCL, x, 0.01, 1000 );
end



%--------------------------------------
------------------
Case 1
------------------      -3.3463      0.14974       4.8827      0.37556
       -1.416      -2.4265       6.3571      -4.7824
Closed Loop Eigenstructure
 
-22.012    -17.060     -0.699     -1.500 + j  1.500     -1.500 - j  1.500     -2.000 + j  1.500     -2.000 - j  1.500    
-------------------------------------------------------------------------------------------------------------------------
  0.011     -0.997      0.538      0.762 + j  0.000      0.762 + j  0.000     -0.043 - j  0.000     -0.043 + j  0.000    
  0.999     -0.058     -0.743      0.129 - j  0.551      0.129 + j  0.551      0.829 + j  0.000      0.829 + j  0.000    
 -0.002     -0.001     -0.026     -0.000 - j  0.000     -0.000 + j  0.000      0.014 - j  0.207      0.014 + j  0.207    
  0.002     -0.044      0.127      0.249 + j  0.122      0.249 - j  0.122     -0.000 - j  0.001     -0.000 + j  0.001    
  0.053      0.017      0.018      0.000 - j  0.000      0.000 + j  0.000      0.282 + j  0.435      0.282 - j  0.435    
  0.000     -0.001      0.200      0.034 + j  0.125      0.034 - j  0.125     -0.002 + j  0.002     -0.002 - j  0.002    
 -0.000      0.001     -0.318     -0.010 - j  0.076     -0.010 + j  0.076     -0.000 + j  0.000     -0.000 - j  0.000    
 
Desired Eigenstructure
 
 -1.500 + j  1.500     -1.500 - j  1.500     -2.000 + j  1.500     -2.000 - j  1.500    
----------------------------------------------------------------------------------------
    NaN + j  0.000        NaN + j  0.000        NaN + j  0.000        NaN + j  0.000    
    NaN + j  0.000        NaN + j  0.000        NaN + j  0.000        NaN + j  0.000    
  0.000 + j  0.000      0.000 + j  0.000      1.000 + j  0.000        NaN + j  0.000    
  1.000 + j  0.000        NaN + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
  0.000 + j  0.000      0.000 + j  0.000        NaN + j  0.000      1.000 + j  0.000    
    NaN + j  0.000      1.000 + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
    NaN + j  0.000        NaN + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
------------------
Case 2
------------------      -3.3414            0       4.8713            0
       -1.416      -2.4265       6.3571      -4.7824
Closed Loop Eigenstructure
 
-22.020    -17.118     -0.697     -1.497 + j  1.500     -1.497 - j  1.500     -1.971 + j  1.485     -1.971 - j  1.485    
-------------------------------------------------------------------------------------------------------------------------
 -0.022     -0.997      0.537      0.761 + j  0.000      0.761 + j  0.000      0.236 + j  0.039      0.236 - j  0.039    
  0.998     -0.058     -0.743      0.128 - j  0.551      0.128 + j  0.551      0.813 + j  0.000      0.813 + j  0.000    
 -0.002     -0.001     -0.027      0.000 + j  0.000      0.000 - j  0.000      0.047 - j  0.191      0.047 + j  0.191    
  0.001     -0.044      0.126      0.250 + j  0.122      0.250 - j  0.122      0.069 + j  0.045      0.069 - j  0.045    
  0.054      0.017      0.019     -0.001 - j  0.000     -0.001 + j  0.000      0.192 + j  0.446      0.192 - j  0.446    
  0.000     -0.001      0.200      0.034 + j  0.125      0.034 - j  0.125      0.007 + j  0.033      0.007 - j  0.033    
 -0.000      0.001     -0.320     -0.010 - j  0.077     -0.010 + j  0.077     -0.004 - j  0.019     -0.004 + j  0.019    
 
Desired Eigenstructure
 
 -1.500 + j  1.500     -1.500 - j  1.500     -2.000 + j  1.500     -2.000 - j  1.500    
----------------------------------------------------------------------------------------
    NaN + j  0.000        NaN + j  0.000        NaN + j  0.000        NaN + j  0.000    
    NaN + j  0.000        NaN + j  0.000        NaN + j  0.000        NaN + j  0.000    
  0.000 + j  0.000      0.000 + j  0.000      1.000 + j  0.000        NaN + j  0.000    
  1.000 + j  0.000        NaN + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
  0.000 + j  0.000      0.000 + j  0.000        NaN + j  0.000      1.000 + j  0.000    
    NaN + j  0.000      1.000 + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
    NaN + j  0.000        NaN + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
------------------
Case 3
------------------      -3.3414            0       4.8713            0
            0      -2.4407       3.5084      -4.8536
Closed Loop Eigenstructure
 
-22.029    -17.169     -1.628 + j  1.675     -1.628 - j  1.675     -1.809 + j  1.334     -1.809 - j  1.334     -0.700    
-------------------------------------------------------------------------------------------------------------------------
 -0.022     -0.955      0.157 + j  0.342      0.157 - j  0.342      0.339 - j  0.054      0.339 + j  0.054     -0.541    
  0.998      0.292      0.828 + j  0.000      0.828 + j  0.000      0.718 + j  0.000      0.718 + j  0.000      0.741    
 -0.002     -0.002      0.073 - j  0.134      0.073 + j  0.134      0.090 - j  0.222      0.090 + j  0.222      0.005    
  0.001     -0.041     -0.004 + j  0.132     -0.004 - j  0.132      0.117 + j  0.030      0.117 - j  0.030     -0.128    
  0.054      0.040      0.107 + j  0.341      0.107 - j  0.341      0.133 + j  0.522      0.133 - j  0.522     -0.004    
  0.000     -0.001     -0.046 + j  0.035     -0.046 - j  0.035      0.027 + j  0.045      0.027 - j  0.045     -0.200    
 -0.000      0.001      0.028 - j  0.017      0.028 + j  0.017     -0.016 - j  0.028     -0.016 + j  0.028      0.320    
 
Desired Eigenstructure
 
 -1.500 + j  1.500     -1.500 - j  1.500     -2.000 + j  1.500     -2.000 - j  1.500    
----------------------------------------------------------------------------------------
    NaN + j  0.000        NaN + j  0.000        NaN + j  0.000        NaN + j  0.000    
    NaN + j  0.000        NaN + j  0.000        NaN + j  0.000        NaN + j  0.000    
  0.000 + j  0.000      0.000 + j  0.000      1.000 + j  0.000        NaN + j  0.000    
  1.000 + j  0.000        NaN + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
  0.000 + j  0.000      0.000 + j  0.000        NaN + j  0.000      1.000 + j  0.000    
    NaN + j  0.000      1.000 + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
    NaN + j  0.000        NaN + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
------------------
Case 4
------------------      -3.3414            0       4.8713            0
            0      -2.4582            0      -4.9307
Closed Loop Eigenstructure
 
-22.001    -17.165     -1.432 + j  1.738     -1.432 - j  1.738     -2.035 + j  1.280     -2.035 - j  1.280     -0.670    
-------------------------------------------------------------------------------------------------------------------------
  0.022     -0.961     -0.086 + j  0.341     -0.086 - j  0.341      0.200 - j  0.060      0.200 + j  0.060     -0.491    
 -0.998      0.270      0.822 + j  0.000      0.822 + j  0.000      0.775 + j  0.000      0.775 + j  0.000      0.740    
  0.002     -0.002      0.066 - j  0.160      0.066 + j  0.160      0.007 - j  0.227      0.007 + j  0.227      0.219    
 -0.001     -0.041     -0.085 + j  0.091     -0.085 - j  0.091      0.072 + j  0.008      0.072 - j  0.008     -0.105    
 -0.054      0.039      0.183 + j  0.343      0.183 - j  0.343      0.275 + j  0.471      0.275 - j  0.471     -0.147    
 -0.000     -0.001     -0.057 - j  0.006     -0.057 + j  0.006      0.020 + j  0.022      0.020 - j  0.022     -0.187    
  0.000      0.001      0.031 + j  0.008      0.031 - j  0.008     -0.013 - j  0.013     -0.013 + j  0.013      0.309    
 
Desired Eigenstructure
 
 -1.500 + j  1.500     -1.500 - j  1.500     -2.000 + j  1.500     -2.000 - j  1.500    
----------------------------------------------------------------------------------------
    NaN + j  0.000        NaN + j  0.000        NaN + j  0.000        NaN + j  0.000    
    NaN + j  0.000        NaN + j  0.000        NaN + j  0.000        NaN + j  0.000    
  0.000 + j  0.000      0.000 + j  0.000      1.000 + j  0.000        NaN + j  0.000    
  1.000 + j  0.000        NaN + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
  0.000 + j  0.000      0.000 + j  0.000        NaN + j  0.000      1.000 + j  0.000    
    NaN + j  0.000      1.000 + j  0.000      0.000 + j  0.000      0.000 + j  0.000    
    NaN + j  0.000        NaN + j  0.000      0.000 + j  0.000      0.000 + j  0.000