跳轉到內容

控制中的 LMI / pages / 切換系統 H2 最佳化

來自華夏公益教科書,開放的書籍,開放的世界

控制中的 LMI / pages / 切換系統 H2 最佳化


切換系統 最佳化

最佳化問題

[編輯 | 編輯原始碼]

這個最佳化問題涉及使用狀態反饋系統設計,不同之處在於在最佳化過程中使用具有“切換”屬性的系統矩陣來最佳化系統。這類似於考慮具有可變不確定性的系統;例如,矩陣中的多面體不確定性。無論哪個矩陣正在切換狀態,都必須使用相同的變數對兩種情況進行最佳化。

首先,將 9 矩陣系統定義如下:, , , , , , , ,以及。使用這種型別的最佳化允許堆疊不同的 LMI 矩陣狀態,以實現 的控制器綜合。

資料取決於 9 矩陣工廠的狀態空間表示型別;因此,必須瞭解以下內容才能計算此 LMI:,以及 。還必須考慮的是,在最佳化過程中哪些矩陣將被“切換”。這可以用 表示。

LMI: 切換系統 最佳化

[編輯 | 編輯原始碼]

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


其中 為控制器矩陣。這還假設唯一切換矩陣為 ;然而,其他矩陣可以在狀態中切換,以使控制器更具魯棒性。


結論

[edit | edit source]

來自該 LMI 的結果給出了一個控制器增益,它是對切換系統最佳化的 的最佳化。


實施

[edit | edit source]
% Switched System H2 example
% -- 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];

B21= [ 0  0  0;
      -1  0  1;
      -1  1  0;
       1 -1  0;
      -1  0 -1;
       0  1  1];

B22= [ 0   0   0;
      -1   0   1;
      -1   1   0;
       1   1   0;
       1   0   1;
       0  -3  -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(B21,2);  %actuators
numb1 = size(B1,2);   %external inputs
numc1 = size(C1,1);   %regulated outputs

%variables
gam = sdpvar(1);
Y   = sdpvar(numa);
Z   = sdpvar(numb2,numa,'full');
W   = sdpvar(numc1);

%Matrix for LMI optimization
M11 = Y*A'+A*Y+B21*Z+Z'*B21'+B1*B1';
M12 = Y*A'+A*Y+B22*Z+Z'*B22'+B1*B1';
M2  = [Y            (C1*Y+D12*Z)'  ;
       C1*Y+D12*Z   W              ];

%Constraints
Fc = (M11 <= 0);
Fc = [Fc; M12 <= 0];
Fc = [Fc; trace(W) <= gam];
Fc = [Fc; M2 >= zeros(numa+numc1)];

opt = sdpsettings('solver','sedumi');

%Objective function
obj = gam;

%Optimizing given constraints
optimize(Fc,obj,opt);

%Displays output Hinf gain
fprintf('\n\nHinf for H2 optimal state-feedback problem is: ')
display(value(gam))

F = value(Z)*inv(value(Y)); %#ok<MINV>

fprintf('\n\nState-Feedback controller F matrix')
display(F)
[edit | edit source]


返回主頁面

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