控制中的 LMI / pages / 切换系统 H2 优化
外观
控制中的 LMI / pages / 切换系统 H2 优化
切换系统 优化
这个优化问题涉及使用状态反馈系统设计,不同之处在于在优化过程中使用具有“切换”属性的系统矩阵来优化系统。这类似于考虑具有可变不确定性的系统;例如,矩阵中的多面体不确定性。无论哪个矩阵正在切换状态,都必须使用相同的变量对两种情况进行优化。
首先,将 9 矩阵系统定义如下:, , , , , , , ,以及。使用这种类型的优化允许堆叠不同的 LMI 矩阵状态,以实现 的控制器综合。
数据取决于 9 矩阵工厂的状态空间表示类型;因此,必须了解以下内容才能计算此 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]- 最佳和鲁棒控制中的 LMI 方法 - Matthew Peet 关于控制中 LMI 的课程。