脉冲系统中,在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。
本人学识浅薄,如有疑问可以在下方提问,欢迎互相学习讨论。