脉冲系统中,在matlab中用LMI线性矩阵不等式相关语句解读

LMI线性矩阵不等式相关解读:(个人学习总结,仅供参考,不喜勿喷)

1、在运用LMI时首先建立LMI系统初始化     setlmis([ ]) 

2、建立相关变量X,X=lmivar(1,[6 1])  %这个意思是建立一个6*6的对称矩阵

其中,第一个参数1表示对称矩阵,2表示多维矩阵,比如lmivar(2,【2 4】)建立一个2*4的矩阵,也可以为n,表示其他矩阵

【6 1】表示6*6的对称矩阵,同理【2 1】表示2*2对称矩阵。

还有其他矩阵写法,简单列一个,例如2*2对角矩阵Q=lmivar(1,【1 0;1 0】)

3.对于LMI内部的矩阵描述

对于如上图的矩阵可以这样描述:(LMI矩阵的描述只描述上半部分或者下半部分)

1) lmiterm([1 1 1 X],1,A,’s’) %A‘*X+X*A

2)  lmiterm([1 1 1 S],C’,C) %C'*S*C

3)  lmiterm([1 1 2 X],1,B) %X*B

4)  lmiterm([1 2 2 S],-1,1) %-S

对于lmiterm中[1 1 1 X]各表示什么意思,我这里仔细讲解每一个参数,

第一个1表示命名,代表第一个LMI式子,也可以通过newlmi命令自己设置LMI的名,然后把1换掉即可。

第二个1和第三个1表示位置,(1 1)表示第一行第一列,

第四个X表示变量名,如果这个位置是变量就是变量名,是常数就是0

对于第一个式子1)中括号后面的参数1,A,分别是变量X的左右系数,’s‘表示A的转置*X+X*A的和。

式子2),3),4)类似中括号后面表示左右系数。

特别注意:如果描述是0这变量位置为0,后面也为0,例:lmiterm([1 1 2 0],0)%表示0;

其余写法类似,如有不懂可以在下面提问。

4、LMI矩阵不等式描述完毕后,写lmisys=getlmis 表示获取LMI的内部结构,

5、调用feasp、mincx、gevp这个三个求解器中的相应求解即可完成。

最后用disp()在控制台输出P。

本人学识浅薄,如有疑问可以在下方提问,欢迎互相学习讨论。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务