Matlab工具箱之-------LMI系统工具箱

function [Q1,K]=LMI_01
%{
程序功能:
1:使用Matlab工具箱/LMI工具箱求解线性矩阵不等式的可行解
2:

date: 2022.10.07
by  : Lxy

%}

%% 程序参数初始化
clc;
clear;
A=[ -1,3.5; -0.8,-0.5];
B=[-1,1;-2,-1];
C=[1,-1;1,-1];
D=[-0.12,0.2;0.1,-0.1];
E=[-0.21,2.5;0.2,-0.3];
rho=0.9;
delta=0.0526;
alpha=0.2;


t=1;
Ft=diag([sin(t),cos(t)]);

M1=D*Ft*E;
M2=B-D*Ft*E;

n=2;

y=alpha*(1-alpha);
v=(1-alpha)*(1-rho);
beta=sqrt(y);
q=beta*(1-beta);
u=-beta*(1-beta);

%% 描述矩阵不等式
setlmis([]);

Q1=lmivar(1,[n,1]); % 1 是一个满快矩阵:
K=lmivar(1,[n,1]);  % 1 是一个满块矩阵

lmiterm([1,1,1,Q1],1,-1);  %描述矩阵里面的内容
lmiterm([1,1,3,0],A');     %外部变量
lmiterm([1,1,3,-K],y,M1'); %-K标识K的转置;

lmiterm([1,1,4,-K],u,M1');

lmiterm([1,2,2,0],-1);
lmiterm([1,2,3,-K],v,M2'); %-K标识K的转置;
lmiterm([1,2,4,-K],q,M2'); %-K标识K的转置;

lmiterm([1,3,3,inv(Q1)],-1,1);
lmiterm([1,4,4,inv(Q1)],-1,1);

%% 约定正定矩阵
lmiterm([-2,1,1,Q1],1,1);
lmiterm([-3,1,1,K],1,1);


%% 结尾
lmisys=getlmis; %获取lmi信息

%%求解LMI
[tmin,xfeas]=feasp(lmisys); %求出可行解

if (tmin<0)
    disp('Feasible');
    Q1=dec2mat(lmisys,xfeas,Q1);% 转成正常的double类型
    K= dec2mat(lmisys,xfeas,K);
    
else 
     Q1=nan;
     K=nan;
end
    
    
end

代码运行结果图:

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值