matlab-LMI工具箱

本文介绍了在H无穷控制问题中如何使用MATLAB的LMI工具箱来解决线性矩阵不等式。通过设置LMI系统、定义矩阵变量、构建不等式和封装LMI,最后调用求解器如feasp、mincx或gevp来求解控制律。具体步骤包括初始化LMI系统、定义对角块对称和任意矩阵变量、构建不等式关系,并展示了一个实际的例子来解释这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

H无穷控制中,常常需要利用线性矩阵不等式(LMI)去求解最后的控制律,本篇主要介绍matlab中关于LMI工具箱的一些常见用法。


LMI工具箱

1.首先初始化一个LMI系统

setlmis([]);

2.LMI中,矩阵变量由lmivar来定义,设一矩阵X

X=lmivar(type, struct);

- type = 1 为对角块对称矩阵

例: 
X = lmivar(1, [2 1]);  X为2x2的满阵
X = lmivar(1, [1 0]);  X为1x1的标量

- type = 2 为 m*n 的任意矩阵

例:
X = lmivar(2, [2 6]);  X为2x6的矩阵

3.LMI中,不等式由lmiterm来描述

lmiterm(termID, A, B, flag);
 termID为四位整数向量,即termID=[a b c d]
 termID(a):
 termID(b, c):表示[b, c],第b行第c列
 termID(d):“0” 对应外部量
		    “X”对应AXB,X是矩阵变量,A和B是已知设定好的矩阵
		    “-X”对应AYB,Y表示X的转置
 flag通常是“1”,当表示AXB + (AXB的转置)时,flag = ‘ s ’

例子:
在这里插入图片描述
图中,A,B1,B2,C1,D11,D12为已知矩阵,X和Y是未知矩阵,γ为我们最终想求解的量。代码中以“r1”表示

X = lmivar(1,[6 1]);
Y = lmivar(2,[2 6]);
r1= lmivar(1,[1 0]);
lmiterm([1 1 1 X],A,1,'s');
lmiterm([1 1 1 Y],B2,1,'s');
lmiterm([1 2 1 0],B1');
lmiterm([1 2 2 0],-1);
lmiterm([1 3 1 X],C1,1);
lmiterm([1 3 1 Y],D12,1);
lmiterm([1 3 2 0],D11);
lmiterm([1 3 3 r1],-1,1);%r1=γ
lmiterm([-2 1 1 X],1,1);

ps:对于LMI,只需要写一个上三角或者下三角,因为它是转置对称的。

4.最后一步,封装好需要求解的LMI

lmisys = getlmis;

LMI的求解器(solver)有feasp、mincx和gevp

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值