LMIs in Control/pages/H inf Aircraft Optimization

From testwiki
Jump to navigation Jump to search
LMIs in Control/pages/H inf Aircraft Optimization


Robust H Aircraft Dynamics

The Optimization Problem

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ː

Ap=[XuXw0g0cos(ϑ0)Zu1Zw˙Zw1Zw˙u0+Zq1Zw˙g0sin(ϑ0)1ZdotwMu+Mw˙Zu1Zw˙Mw+Mw˙Zw1Zw˙Mw+(u0+Zq)Mw˙1ZdotwMw˙g0sin(ϑ0)1Zdotw0010]Bp=[XδeXδTZδe1Zw˙ZδT1Zw˙Mδe+Mw˙Zδe1Zw˙MδT+Mw˙ZδT1Zw˙00]Cp=IDp=0

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: Am×m, B1m×n, B2m×p, C1n×m, D11n×n, D12n×p, C2=I, D21=0, and D22=0. Using this type of optimization allows for stacking of optimization LMIs in order to achieve the controller synthesis for both a robust H optimization.

The Data

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: Am×m, B1m×n, B2m×p, C1n×m, D11n×n, D12n×p, C2=I, D21=0, and D22=0.

The LMI: Robust H Optimal Aircraft Dynamics Control

There exists the scalar, γ, along with the matrices S>0, and R where:

[NR00I]T[AR+RATRC1TB1C1RγID11B1TD11TγI][NR00I]<0[NS00I]T[ATS+SASB1C1TB1TSγID11TC1D11γI][NS00I]<0[RIIS]0

Where the optimized controller matrices are defined as followsː

AK=N[AT+S(A+B2F+LC2)R+1/γS(B1+LD21)B1T+1/γC1T(C1+D12F)R]MTBK=N1SLCK=FRMTDK=0;

Where:

N=SM=S1RF=(D12TD12)1(γB2TR1+D12TC1)L=(γS1C2T+B1D21T)(D21D21T)1

Conclusion:

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

Implementation

%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;


Return to Main Page:

Template:BookCat