声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 10653|回复: 22

[其他相关] LMI编程描述一个变量的平方及矩阵变量的逆矩阵?

[复制链接]
发表于 2009-4-24 21:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如何在LMI编程中描述一个变量的平方?
我在程序中定义了这样一个变量gammar=lmivar(1,[1 0]),请问在程序中我该如何描述gammar^2这一项,我是这样描述的lmiterm([x x x 0],gammar^2),对吗?

如何在LMI编程中描述一个矩阵变量的逆矩阵?
请问在LMI中如何描述一个矩阵变量的逆矩阵啊? 比如R是2*2维矩阵变量 该如何描述 h*R^(-1)这一项
这样描述——lmiterm([x x x 0],h*R^(-1))对吗?
回复
分享到:

使用道具 举报

发表于 2009-4-26 12:16 | 显示全部楼层
矩阵变量的逆矩阵h*R^(-1)是用lmiterm([x x x -R],h,1)描述的
矩阵变量的平方不知道啊
 楼主| 发表于 2009-4-26 20:40 | 显示全部楼层

回复 沙发 zyj_030 的帖子

似乎矩阵变量的转置才是像你说的那样描述的吧 难道我搞错了?
发表于 2009-4-30 16:16 | 显示全部楼层

答复

1、变量的平方无法表示,看你用gamma表示,应该是H_infinity控制中的指标数gamma最优值问题(一般式中只出现gamma的平方),这个可以随意定义一个变量alpha来代替gamma的平方,最后对alpha开方就是gamma了。
2、矩阵变量的逆矩阵无法表示,只有转化成其他矩阵。譬如将矩阵分别左乘右乘diag([I I R I……]),即对此项所在行和列做变换,即可解决。
发表于 2009-4-30 16:17 | 显示全部楼层

答复

另外,二楼所说的lmiterm([x x x -R],h,1)表示的是R的转置矩阵,而不是逆矩阵。
发表于 2009-5-2 11:25 | 显示全部楼层
受教了
多谢
 楼主| 发表于 2009-5-2 12:24 | 显示全部楼层

回复 地板 blueking1985 的帖子

非常感谢您的答复, 我处理的正是H_infinity控制中的指标数gamma最优值问题.
另外,请问:对矩阵左乘、右乘另一个矩阵,似乎是将原来的矩阵进行放缩,那么应该可以只左乘或者只右乘的吧?
发表于 2009-5-2 14:49 | 显示全部楼层

答复

不是矩阵左乘和右乘,而是整个LMI左乘和右乘,因为一般LMI的右式为0,所以相当于只给左式的矩阵左乘和右乘,整个LMI是没有放缩的,是等价于左乘和右乘之前的LMI的
 楼主| 发表于 2009-5-2 19:25 | 显示全部楼层

回复 地板 blueking1985 的帖子

哦 只是运用了不等式的性质 谢谢啦!   请问左乘和右乘都是必须的吗?应该可以只左乘或只右乘的吧?
还有个矩阵变量相乘的问题向您请教:
矩阵中的第一行第一列(PAk+Ak'P+Q+N1+N1')中有两个变量相乘,Ak=A+BK,我该如何化简解决PAk+Ak'P+Q+N1+N1'这一项呢?其中的P,K,\Q、N1都是矩阵变量。我试过用您上面提到的左乘和右乘P^(-1),得到的结果是AP^(-1)+BKP^(-1)+P^(-1)A'+P^(-1)K'B',如果将
KP^(-1)定义成另一个变量,那么就不知道该如何描述P^(-1)K'B'这一项了。
发表于 2009-5-3 21:21 | 显示全部楼层

回复

这个问题的变换关键在于PAk和Ak‘P的变换,一般是这样解决的:
1、首先对LMI相应的左乘和右乘,令X=P^(-1),则处理项变换成AkX和XAk’,即(A+BK)X及其转置;
2、令Y=K*X,则(A+BK)X=AX+BY;
3、对整个LMI求解,其中X、Y是变量(注意:加入X和Y后,LMI内就不能包含有P和K);
4、K=Y*inv(X);
 楼主| 发表于 2009-5-3 22:55 | 显示全部楼层

回复 10楼 blueking1985 的帖子

谢谢您的回复,但似乎这样解决不了XAk'这一项,您看X(A+BK)'=XA'+XK'B',XK'B'就没法描述了。
发表于 2009-5-3 23:18 | 显示全部楼层

mincx

哪位大侠会用标题的命令
 楼主| 发表于 2009-5-4 09:46 | 显示全部楼层

回复 12楼 zxq_19800126 的帖子

matlab lmi mincx 单变量优化 2009-04-09 17:36
分类:技术文章 字号: 大大  中中  小小 对于一个LMI,如果定义了多个变量:

x1=lmivar(1,[4 1]);

x2=lmivar(3,[2 4]);

x3=lmivar(1,[1 0]);



那么,如果想求解x3的最小值,利用Mincx时的变量c应该如下设定:

c=mat2dec(lmis,zeros(4,4),zeros(2,4),eye(1));

zeros(4,4)与第一个变量对应,类推
一般会求c,其它的应该就没问题了吧

[ 本帖最后由 ylfighter 于 2009-5-4 09:54 编辑 ]
发表于 2009-5-4 13:37 | 显示全部楼层

回11楼

无语了,问题都解决了啊,难道是我的表达不够清楚?
你详细看看过程:令Y=KX,那么XK‘B就可以化为Y’B
发表于 2009-5-4 17:10 | 显示全部楼层
blueking1985的方法应该没问题
建议楼主看一下俞立的《鲁棒控制——线性矩阵不等式处理方法》附录部分,然后自己再编程试一试。许多编程的问题自己试一试就能解决的。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 01:39 , Processed in 0.071372 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表