跳轉到內容

控制中的 LMI/頁面/峰峰值範數

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

控制中的 LMI/頁面/峰峰值範數


系統的峰峰值範數效能


考慮以下系統


其中 是狀態訊號, 是輸入訊號,而 是輸出。 給定初始條件 ,該系統可以定義為將輸出和輸入訊號對映到峰峰值效能。

矩陣 是此最佳化問題所需的唯一資料集。

最佳化問題

[編輯 | 編輯原始碼]

考慮一個連續時間 LTI 系統,,假設:,和 ,和 。假設矩陣 是 Hurwitz, 的峰峰值範數表示為:

LMI: 峰峰值範數

[編輯 | 編輯原始碼]

存在一個矩陣 , , ,其中使用了以下約束條件:


由於此最佳化在約束條件中包含 ,因此它是一個雙線性最佳化。除非對變數 進行某種替換,否則無法解決此 LMI。

結論

[edit | edit source]

此 LMI 的結果將給出系統的峰峰值範數

實現

[edit | edit source]
% Peak-to-Peak Norm
% -- EXAMPLE --

%Clears all variables
clear; clc; close all;

%Example Matrices
A  = [ 1  1  0  1  0  1;
      -1  0 -1  0  0  1;
       1  0  0 -1  1  1;
      -1  1 -1  0  0  0;
      -1 -1  1  1 -1 -1;
       0 -1  0  0 -1  0];
  
B =  [ 0 -1 -1;
       0  0  0;
      -1 -1  1;
      -1  0  0;
       0  0  1;
      -1  1  1];
  
C = [ 0  1  0 -1 -1 -1;
      0  0  0 -1  0  0;
      1  0  0  0 -1  0];
  
D = [ 0  1  1;
      0  0  0;
      1  1  1];

%SDPVAR variables
gam = sdpvar(1);
eps = sdpvar(1);
up  = sdpvar(1);

%SDPVAR MATRIX
P = sdpvar(size(A,1),size(A,1),'symmetric');

%Constraint matrices
M1 = [A'*P+P*A+gam*P  P*B       ; 
      B'*P           -eps*eye(3)];

M2 = [gam*P       zeros(6,3)     C'        ;
      zeros(3,6) (up-eps)*eye(3) D'        ;
      C           D              up*eye(3)];

%Constraints
Fc = (P >= 0);
Fc = [Fc; gam >= 0];
Fc = [Fc; eps >= 0];
Fc = [Fc; M1  <= 0];
Fc = [Fc; M2  >= 0];

%Objective function
obj = up;

%Settings for YALMIP
opt = sdpsettings('solver','sedumi');

%Optimization
optimize(Fc,obj,opt)

fprintf('\nRepresentation of what occurs when attempting to solve \n')
fprintf('problem without considering bilinearity\n\n')

fprintf('setting gamma to a certain value\n eg: 0.5')
gam = 0.5;

eps = sdpvar(1);
up  = sdpvar(1);

%SDPVAR MATRIX
P = sdpvar(size(A,1),size(A,1),'symmetric');

%Constraint matrices
M1 = [A'*P+P*A+gam*P  P*B       ; 
      B'*P           -eps*eye(3)];

M2 = [gam*P       zeros(6,3)     C'        ;
      zeros(3,6) (up-eps)*eye(3) D'        ;
      C           D              up*eye(3)];

%Constraints
Fc = (P >= 0);
Fc = [Fc; eps >= 0];
Fc = [Fc; M1  <= 0];
Fc = [Fc; M2  >= 0];

%Objective function
obj = up;

%Optimization
optimize(Fc,obj,opt)

fprintf('mu value: ')
disp(value(up))
[edit | edit source]

返回主頁

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