1 问题描述
2 控制器设计
3 仿真算例
4 计算程序
function [ X, Y, epsilon, delta, eta] = LMI_Calculate()
%{
1、线性矩阵不等式的求解
2、连续时间线性系统的事件触发机制, 韩俊先. 东北大学硕士毕业论文
%}
%% 变量初始化
clear,clc
setlmis([]); %初始化LMI系统
n=2;
m=1;% 确定矩阵维数
%常数声明
A=[0, 1; 2, -3];
B1=[0.5; 0.8];
B2=[1; 1];
C=[0, 0.1; 0.1, 0];
D=[0.1; 0.2];
G=[0.2, 0; 0.1, 0];
E=[0.2, 0; 1, 0];
lambda=0.2;
gamma=0.4;
%% 矩阵声明
X=lmivar(1,[n, 1]) ; %2阶对称矩阵满块
Y=lmivar(2,[m, n]); % m*n的矩阵
epsilon=lmivar(1,[1, 1]) ; %表示一个标量
delta=lmivar(1,[1, 1]) ; %表示一个标量
eta=lmivar(1,[1, 1]) ; %表示一个标量
%% 描述线性矩阵不等式
%第一组:标量为正
lmiterm([-1, 1, 1, epsilon], 1, 1); %epsilon>0
%第二组:标量为正
lmiterm([-2, 1, 1, delta], 1, 1); %delta>0
%第三组:标量为正
lmiterm([-3, 1, 1, eta], 1, 1); %eta>0
%第四组 eta*I<=X
lmiterm([-4, 1,1, X], 1, 1);
lmiterm([4, 1,1, eta], 1, 1);
%第五组:大的矩阵不等式
% N=X*A'+A*X+Y'*B2'+B2*Y+epsilon*(G*G')+lambda*X;
% lmiterm([5, 1, 1, 0], N); %该写法错误
%% 以下正确写法
lmiterm([5, 1, 1, X], 1, A', 's');
lmiterm([5, 1, 1, Y], B2, 1, 's');
lmiterm([5, 1, 1, epsilon], G, G');
lmiterm([5, 1, 1, X], lambda, 1);
%%
lmiterm([5, 1, 2, Y], B2, 1);
lmiterm([5, 1, 3, 0], B1);
lmiterm([5, 1, 3, X], C', D);
lmiterm([5, 1, 4, X], 1, C');
lmiterm([5, 1, 5, X], 1, 1);
lmiterm([5, 1, 6, X], 1, E');
lmiterm([5, 2, 2, delta], -1, 1); %-delta*I
lmiterm([5, 3, 3, 0], -gamma^2);
lmiterm([5, 3, 3, 0], D'*D); %该行程序原文中错写为D*D'
lmiterm([5, 4, 4, 0], -1);
lmiterm([5, 5, 5, 0], -1);
lmiterm([5, 6, 6, epsilon], -1, 1);
%% 第六组:对称矩阵X>0,这儿文中没有要求
% lmiterm([-6,1,1, X],1,1); %没有要求X为正定矩阵
lmisys=getlmis; %求解结束
%% 求解可行解X,Y
[tmin, xfeas]=feasp(lmisys);
if(tmin<0)
disp('Feasible');
else
return
disp('No Feasible');
end
%%求解参数
X=dec2mat(lmisys, xfeas, X)
Y=dec2mat(lmisys, xfeas, Y)
epsilon=dec2mat(lmisys, xfeas, epsilon)
delta=dec2mat(lmisys, xfeas, delta)
eta=dec2mat(lmisys, xfeas, eta)
%%求解控制器增益
K=Y*inv(X)
end
5 程序计算结果
Solver for LMI feasibility problems L(x) < R(x)
This solver minimizes t subject to L(x) < R(x) + t*I
The best value of t should be negative for feasibility
Iteration : Best value of t so far
1 0.635835
2 0.421111
3 0.235576
4 0.056788
5 -0.049501
Result: best value of t: -0.049501
f-radius saturation: 0.000% of R = 1.00e+09
Feasible
X =
3.7669 0.1223
0.1223 5.0548
Y =
-20.7679 -10.8085
epsilon =
57.4172
delta =
54.8695
eta =
1.5342
K =
-5.4481 -2.0065
6 原文结果
文 献
[1]韩俊先. 连续时间线性系统的事件触发控制[D].东北大学,2014.
_____________END______________