控制中的LMI/頁面/混合H2 Hinf最優狀態反饋控制
外觀
控制中的LMI/頁面/混合H2 Hinf最優狀態反饋控制
混合 最優狀態反饋控制
這個最佳化問題涉及到與全反饋控制設計中使用的相同過程;然而,它不是最佳化最優輸出反饋控制設計的全輸出反饋設計,而是透過定義9矩陣工廠來完成的: , , , , , , , , 以及 。使用這種型別的最佳化允許堆疊最佳化LMI,以實現 和 的控制器綜合。
資料依賴於 9 矩陣工廠的狀態空間表示型別,因此要計算此 LMI,必須知道以下內容:,,,,,,, 和 .
LMI:混合 最優狀態反饋控制
[edit | edit source]存在標量 ,,以及矩陣 , 和 ,其中
其中 是控制器矩陣。
結論
[edit | edit source]來自這個LMI的結果給出了一個控制器,它對 和 最佳化進行了混合最佳化。
實現
[edit | edit source]% Mixed Hinf/H2 state feedback optimization
% -- EXAMPLE --
clear; clc; close all;
%Given
A = [ 1 1 0 1 0 1;
-1 -1 -1 0 0 1;
1 0 1 -1 1 1;
-1 1 -1 -1 0 0;
-1 -1 1 1 1 -1;
0 -1 0 0 -1 -1];
B1 = [ 0 -1 -1;
0 0 0;
-1 1 1;
-1 0 0;
0 0 1;
-1 1 1];
B2 = [ 0 0 0;
-1 0 1;
-1 1 0;
1 -1 0;
-1 0 -1;
0 1 1];
C1 = [ 0 1 0 -1 -1 -1;
0 0 0 -1 0 0;
1 0 0 0 -1 0];
D12= [ 1 1 1;
0 0 0;
0.1 0.2 0.4];
D11= [ 1 2 3;
0 0 0;
0 0 0];
%Error
eta = 1E-4;
%sizes of matrices
numa = size(A,1); %states
numb2 = size(B2,2); %actuators
numb1 = size(B1,2); %external inputs
numc1 = size(C1,1); %regulated outputs
%variables
gam1= sdpvar(1);
gam2= sdpvar(1);
Y = sdpvar(numa);
Z = sdpvar(numb2,numa,'full');
W = sdpvar(numc1);
%Matrix for LMI optimization
M1 = Y*A'+A*Y+B2*Z+Z'*B2'+B1*B1';
M2 = [Y (C1*Y+D12*Z)' ;
C1*Y+D12*Z W ];
M3 = [Y*A'+A*Y+Z'*B2'+B2*Z B1 Y*C1'+Z'*D12';
B1' -eye(numb1) D11';
C1*Y+D12*Z D11 -gam1*eye(numc1)];
%Constraints
Fc = (M1 <= 0);
Fc = [Fc; M3 <= 0];
Fc = [Fc; trace(W) <= gam2];
Fc = [Fc; Y >= eta*eye(numa)];
Fc = [Fc; M2 >= zeros(numa+numc1)];
opt = sdpsettings('solver','sedumi');
%Objective function
obj = gam1 + gam2;
%Optimizing given constraints
optimize(Fc,obj,opt);
F = value(Z)*inv(value(Y)); %#ok<MINV>
fprintf('\n\nState-Feedback controller F matrix')
display(F)
外部連結
[edit | edit source]- 最優魯棒控制中的LMI方法 - 馬修·皮特的關於控制中LMI的課程。