MATLAB——LMI工具箱学习笔记

用LMI工具箱描述一个线性矩阵不等式系统

1、标准格式

代码注解
setlmis([])定义一个矩阵不等式系统
X=lmivar(type,struct)定义一个矩阵变量
lmiterm([1 1 1 X], 1, 1)描述某个LMI不等式的某一项
lmisys=getlmis矩阵不等式系统定义完毕

2、lmivar函数用法

X=lmivar(type,struct)用于定义矩阵变量

①type=1----------定义对称块对角结构矩阵变量

就是形如: X = ( D 1 0 ⋯ 0 0 D 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ D r ) X= \begin{pmatrix} D_{1} & 0 & \cdots & 0\\ 0 & D_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & D_{r} \end{pmatrix} X=D1000D2000Dr
如果 D 1 D_{1} D1是一个满的5x5对称矩阵, D 2 D_{2} D2 D r D_{r} Dr分别是一个1x1、3x3数量矩阵,则需要定义为: X = l m i v a r ( 1 , [ 5    1 ; 1    0 ; . . . ; 3    0 ] ) X=lmivar(1,[5~~1;1~~0; ...;3~~0]) X=lmivar(1,[5  1;1  0;...;3  0])
其中,1代表 D 1 D_{1} D1是一个满的对称矩阵,0代表 D 2 D_{2} D2 D r D_{r} Dr是数量矩阵,-1代表是一个零矩阵,前面的数字则代表维度是几x几

②type=2----------定义长方形结构矩阵变量

struct=[m,n]表示矩阵的维度。
例如 X = l m i v a r ( 2 , [ 2    4 ] ) X=lmivar(2,[2~~4]) X=lmivar(2,[2  4])定义了一个2x4的矩阵变量X

③type=3----------定义其它结构矩阵变量

当我们的矩阵不等式中存在 T r a c e ( Z ) < γ Trace(Z)<\gamma Trace(Z)<γ时,常采用这种定义结构来表示Z矩阵。

[Z11,~,sZ11]=lmivar(1,[1 1]);              % Z11
[Z12,~,sZ12]=lmivar(1,[1 1]);              % Z12
[Z13,~,sZ13]=lmivar(1,[1 1]);              % Z13
[Z22,~,sZ22]=lmivar(1,[1 1]);              % Z22
[Z23,~,sZ23]=lmivar(1,[1 1]);              % Z23
[Z33,~,sZ33]=lmivar(1,[1 1]);              % Z33
Z=lmivar(3,[sZ11, sZ12, sZ13;
            sZ12, sZ22, sZ23;
            sZ13, sZ23, sZ33;]);

我们将Z矩阵的每个元素定义为决策变量,并利用type=3类型定义Z矩阵,其中sZ11代表Z11是第几个决策变量,Z矩阵相应的元素是哪个决策变量就输入决策变量的编号,0则输入0。

3、lmiterm函数用法

举例: X = ( A T X + X A + C T S C X B B T X − S ) < 0 X= \begin{pmatrix} A^TX+XA+C^TSC & XB\\ B^TX & -S\end{pmatrix}<0 X=(ATX+XA+CTSCBTXXBS)<0 X > 0 X>0 X>0 S > I S>I S>I
以上有三个LMI不等式,需要分别描述。

①第一个不等式描述为:

l m i t e r m ( [ 1    1    1    X ] ,   1 ,   A ,   ′ s ′ ) lmiterm([1~~1~~1~~X],~1,~A,~'s') lmiterm([1  1  1  X], 1, A, s) l m i t e r m ( [ 1    1    1    S ] ,   C ′ ,   C ) lmiterm([1~~1~~1~~S],~C',~C) lmiterm([1  1  1  S], C, C) l m i t e r m ( [ 1    1    2    X ] ,   1 ,   B ) lmiterm([1~~1~~2~~X],~1,~B) lmiterm([1  1  2  X], 1, B) l m i t e r m ( [ 1    2    2    S ] ,   − 1 ,   1 ) lmiterm([1~~2~~2~~S],~-1,~1) lmiterm([1  2  2  S], 1, 1)
中括号里第一个数字代表第几个LMI不等式,正代表在不等式的小于号左边,负代表在不等式的小于号右边;第二、三个数字代表矩阵的第几行第几列,第四个变量代表所描述的变量,中括号后面的两个数字或矩阵代表变量的左系数和右系数,最后一个s代表转置的意思,是可选项

因此,第一句代码代表:第一个LMI不等式第一行第一列的XA+(XA)’;第二句代码代表:第一个LMI不等式第一行第一列的C’SC;第三句代码代表:第一个LMI不等式第一行第二列的XB;第四句代码代表:第一个LMI不等式第二行第二列的-S。注意一般只描述上三角或下三角即可

②第二个不等式描述为:

l m i t e r m ( [ − 2    1    1    X ] ,   1 ,   1 ) lmiterm([-2~~1~~1~~X],~1,~1) lmiterm([2  1  1  X], 1, 1)
这是第二个不等式,所以中括号第一个数字是2,同时由于X在小于号的右边,所以用-2。

③第三个不等式描述为:

l m i t e r m ( [ − 3    1    1    S ] ,   1 ,   1 ) lmiterm([-3~~1~~1~~S],~1,~1) lmiterm([3  1  1  S], 1, 1) l m i t e r m ( [ 3    1    1    0 ] ,   1 ) lmiterm([3~~1~~1~~0],~1) lmiterm([3  1  1  0], 1)
这是第三个不等式,所以中括号第一个数字是3,同时由于S在小于号的右边,所以用-3。因此,第一句代码代表:第三个LMI不等式小于号右边的S;第二句代码代表:第三个LMI不等式小于号左边的单位矩阵。

本文是作者在日常学习生活中所作,难免有遗漏或错误,遇到问题的读者请点击给我写信向我的邮箱反馈,不胜感激。

  • 28
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值