Jump to content

LMIs in Control/pages/H inf Aircraft Optimization

From Wikibooks, open books for an open world
LMIs in Control/pages/H inf Aircraft Optimization


Robust Aircraft Dynamics

The Optimization Problem

[edit | edit source]

This Optimization problem involves the use of optimizing aircraft dynamics using the regulator framework, and optimizing the given aircraft parameters using the following set of aircraft dynamics. these aircraft dynamics are given non-dimensional characteristics defined by various parameters of the aircraft being tested. By making these characteristics non-dimensional, it allows for the problem to be scaled to larger porportions. For instance the longitudinal dynamics for an aircraft system are defined as suchː

This Optimization problem involves the same process used on the full-feedback control design; however, instead of optimizing the full output-feedback design of the Optimal output-feedback control design. This is done by defining the 9-matrix plant as such: , , , , , , , , and . Using this type of optimization allows for stacking of optimization LMIs in order to achieve the controller synthesis for both a robust optimization.

The Data

[edit | edit source]

The data is dependent on the type the state-space representation of the 9-matrix plant; therefore the following must be known for this LMI to be calculated: , , , , , , , , and .

The LMI: Robust Optimal Aircraft Dynamics Control

[edit | edit source]

There exists the scalar, , along with the matrices , and where:

Where the optimized controller matrices are defined as followsː

Where:

Conclusion:

[edit | edit source]

The results from this LMI give a controller that is a robust , optimization which would be capable of stabilizing various aircraft Dynamics.

Implementation

[edit | edit source]
%clears all variables
clear; clc; close all;

%Time interval end (20 s)
time = 20;

%Error term
eta = 1E-5;

%NOTE: THE F16 DOES INCLUDE A POW TERM IN THE EQUATION
%THRUST IS A PART OF THE DYNAMICS OF AIRCRAFT
Ac = [-0.0829 -23.6803 -4.6523 -32.1740  0.3440;
     -0.0014  -0.3303  0.0168  -0.0000 -0.0007;
      0.0000  -0.6972 -0.5711   0.0     0.0   ;
      0.0      0.0     1.0      0.0     0.0   ;
      0.0      0.0     0.0      0.0    -1.0   ];

Bc =  [ 0.0  -0.0606;
       1.0  -0.0008;
       0.0  -0.0295;
       0.0   0.0   ;
      64.94  0.0   ];
 
Cc = eye(2,5);

Dc = zeros(2,2);

%PLACING INTO TRACKING FRAMEWORK
% Making zero matrices
Zb= zeros(5,2);
Zc= zeros(2,5);
Zd= zeros(2,2);

%Making Identity Matrices
I = eye(5,5);
Ie= eye(2,2);
Id= eye(2,2);

%creation of plant
Po = [Ac Bc; Cc Dc];

%9 Matrix representation
%9 Matrix representation
A   = Ac;
B1  = [Bc Zb];
B2  = Bc;
C1  = [Cc; Zc];
C2  = Cc;
D11 = [Zd Zd; Zd Zd];
D12 = [Dc; Id];
D21 = [Dc  Id];
D22 = Dc;

P = [A B1 B2; C1 D11 D12; C2 D21 D22];


%Finding Nr and Ns
Nr = null([B2' D12']);
Ns = null([C2 D21]);

%Creating LMI
R = sdpvar(5,5);
S = sdpvar(5,5);
gamma = sdpvar(1);

%Matrices for LMI
M1 = [A*R + R*A' R*C1'        B1           ;
      C1*R      -gamma*eye(4) D11          ;
      B1'        D11'        -gamma*eye(4)];

Mr = [Nr zeros(9,6); zeros(4,7) eye(4,6)];

M2 = [A'*S + S*A  S*B1          C1'         ;
      B1'*S      -gamma*eye(4)  D11'        ;
      C1          D11          -gamma*eye(4)];
 
Ms = [Ns zeros(9,6); zeros(4,7) eye(4,6)];

M3 = [R eye(5); eye(5) S];

%objective function
obj = gamma;

%Constraints
Fc = (M3 >= eta*eye(10));
Fc = [Fc; Ms'*M2*Ms <= 0];
Fc = [Fc; Mr'*M1*Mr <= 0];

opt = sdpsettings('solver','sedumi');

%Optimization
optimize(Fc,obj,opt)

fprintf('\n\nHinf for Robust Hinf optimal state-feedback problem is: ')
display(value(gamma))

%Stuff that needs to be calculated for
S = value(S);
R = value(R);
gamma = value(gamma);
N = S;
M = S^(-1) - R;
F = -(D12'*D12)^(-1)*(gamma*B2'*R^(-1)+D12'*C1);
L = -(gamma*S^(-1)*C2'+B1*D21')*(D21*D21')^(-1);

%Calculated stuff
Ak = -N*(A'+S*(A+B2*F+L*C2)*R+1/gamma*S*(B1+L*D21)*B1'...
      +1/gamma*C1'*(C1+D12*F)*R)*M';

Bk = N^(-1)*S*L;
Ck = F*R*(M')^(-1);
Dk = 0;
[edit | edit source]


Return to Main Page:

[edit | edit source]