Demonstrate eigenvector assignment using an STOVL Model for transition.
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, EVAssgnC, IC ------------------------------------------------------------------------
Contents
%--------------------------------------------------------------------------- % Copyright (c) 2003 Princeton Satellite Systems, Inc. % All rights reserved. %---------------------------------------------------------------------------
System
%------- g = STOVL('longitudinal transition'); disp(' ') disp('---------------------') disp('Open loop eigenvalues') disp('---------------------') eig(g)
--------------------- Open loop eigenvalues --------------------- ans = -2.5144 + 0i 1.8883 + 0i -0.024921 + 0.1597i -0.024921 - 0.1597i -50 + 0i -50 + 0i -4 + 0i
Desired eigenvalues
%-------------------- j = sqrt(-1); lambda = [ -1.25 + j;... -1.25 - j;... -7.5;... -1.4];
Desired eigenvectors
%--------------------- vD = [ 1+j 1-j 0 0;... -1-j -1+j 0 0;... 0 0 1 1;... 0 0 0 0]; % Each row relates vD to the plant matrix % For example vD(1,1) applies to state 1 % based on row 1 of d. VD(2,1) applies to % state 2 based on row 2 of d. %---------------------------------------- d = [1 0 0 0 0 0 0;... % vD(1,1) 0 1 0 0 0 0 0;... % vD(2,1) 0 0 1 0 0 0 0;... % vD(3,1) 0 0 0 1 0 0 0;... % vD(3,1) 1 0 0 0 0 0 0;... % vD(1,2) 0 1 0 0 0 0 0;... % vD(2,2) 0 0 1 0 0 0 0;... % vD(3,2) 0 0 0 1 0 0 0;... % vD(3,2) 1 0 0 0 0 0 0;... % vD(1,3) 0 1 0 0 0 0 0;... % vD(2,3) 0 0 0 1 0 0 0;... % vD(3,3) 1 0 0 0 0 0 0;... % vD(1,4) 0 1 0 0 0 0 0;... % vD(2,4) 0 0 1 0 0 0 0]; % vD(3,4) % Rows in d per eigenvalue % Each column is for one eigenvalue % i.e. column one means that the first three rows of % d relate to eigenvalue 1 %--------------------------------------------------- rD = [4,4,3,3];
Compute the gain and the achieved eigenvectors
%----------------------------------------------- disp(' ') disp('----') disp('Gain') disp('----') [k, v] = EVAssgnC( g, lambda, vD, d, rD ); disp(k);
---- Gain ---- Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.313862e-18. 1.0531 5.0562 0.028705 0.14225 -12.72 60.78 -0.11421 45.489 1.909 3.2217 0.1626 0.23258
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 = -49.444 + 0i -41.523 + 0i -7.5 + 0i -1.25 + 1i -1.25 - 1i -2.3094 + 0i -1.4 + 0i
Digitize the closed loop system using a zero order hold
%-------------------------------------------------------- % Simulate %--------- x = [0;0;0;0;0;pi/180;0]; IC( g, x, 0.01, 1000 ); g = set( g, aCL, 'a' ); x = [0;0;0;0;0;pi/180;0]; IC( g, x, 0.01, 1000 ); %--------------------------------------