跳转到内容

控制中的 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]
华夏公益教科书