跳轉到內容

控制中的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]


返回主頁

[edit | edit source]
華夏公益教科書