跳轉到內容

控制中的 LMI/頁面/H 無限飛機最佳化

來自華夏公益教科書
LMIs in Control/pages/H inf Aircraft Optimization


穩健 飛機動力學

最佳化問題

[編輯 | 編輯原始碼]

此最佳化問題涉及使用調節器框架最佳化飛機動力學,並使用以下飛機動力學集最佳化給定的飛機引數。 這些飛機動力學由正在測試的飛機的各種引數定義了無量綱特性。 透過使這些特性無量綱,它允許問題擴充套件到更大的比例。 例如,飛機系統的縱向動力學定義如下:

該最佳化問題涉及與全反饋控制設計中相同的流程;然而,它不是最佳化最佳輸出反饋控制設計的全輸出反饋設計,而是透過定義 9 矩陣系統如下進行: , , , , , , , 。這種型別的最佳化允許對 LMI 進行堆疊以實現魯棒 最佳化的控制器綜合。

資料取決於 9 矩陣工廠狀態空間表示的型別;因此,為了計算該 LMI,必須知道以下內容:

LMI: 魯棒 最優飛機動力學控制

[編輯 | 編輯原始碼]

存在標量,,以及矩陣 ,其中

其中,最佳化後的控制器矩陣定義如下:

其中

這個LMI的結果給出了一個魯棒的 ,最佳化可以穩定各種飛機動力學。

%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;
[編輯 | 編輯原始碼]


返回主頁

[編輯 | 編輯原始碼]
華夏公益教科書