跳转到内容

控制中的 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;
[编辑 | 编辑源代码]


返回主页

[编辑 | 编辑源代码]
华夏公益教科书