Chinaunix首页 | 论坛 | 博客
  • 博客访问: 670558
  • 博文数量: 90
  • 博客积分: 1631
  • 博客等级: 上尉
  • 技术积分: 1413
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-15 22:43
文章分类
文章存档

2017年(8)

2016年(9)

2015年(11)

2014年(10)

2013年(9)

2012年(9)

2010年(2)

2009年(10)

2008年(22)

我的朋友

分类:

2008-08-08 22:49:26

   苦恼了很多天,今天终于把矩阵不等式求解出来了,虽然结果保守性是否理想还需要验证,但起码算是有了一点点的成就感.
   MATLAB的LMI工具箱其实是比较简单的,命令少,很容易上手.我在仿真中遇到了这样的问题,下面是我自己编的一段代码
A=[0.201 -0.502;0 0.502]
B=[-0.0315;0.8903]
R=[1 0;0 1]
setlmis([])
S=lmivar(1,[2 1])
M=lmivar(2,[1 2])
lmiterm([-1 1 1 S],1,1)
lmiterm([-1 1 1 0],-R)
lmiterm([-1 1 2 S],1,A')
lmiterm([-1 2 2 S],0.5,1)
lmiterm([-2 1 1 0],R)
lmiterm([-2 1 2 -M],1,B')
lmiterm([-2 2 2 S],0.5,1)
lmis=getlmis
[tmin,xfeas]=feasp(lmis)
S=dec2mat(lmis,xfeas,S)
M=dec2mat(lmis,xfeas,M)
 
(矩阵不等式来自Huajing Fang老师IEEE检索的一篇论文Quasi T-S Fuzzy models and stable controller for networked control systems,论文只有结论没有仿真.)

仿真结果:
tmin =
   -0.9969
xfeas =
   27.5100
   -4.2712
   14.8661
         0
         0
S =
   27.5100   -4.2712
   -4.2712   14.8661
M =
     0     0 
  
   求解出的控制器出现了全0的情况,这让我百思不得其解,起初我觉得是论文中结论的推导有问题,这篇论文也没有附仿真.心想还是自己做自己推证的结果算了,但是不幸的是我做出的结果好多都出现了类似的情形,好几天过去了,不停的检查自己的结果,一行一行的检查程序,实在不知道哪里出现了错误,真有种抓狂的感觉.发在论坛上的帖子也只是有人看没人回,真是郁闷无比.
   今天奥运要开幕了,无意间网上看到了无间的博客提到了矩阵不等式的求解,就加他QQ和他聊了会,他让我换个工具箱试试,给我推荐了YALMIP工具箱.我想实在也没办法了,也不知道这个到底对求解有没有用,算了忍了,硬着头皮学吧.官网上的教程都是英文的,且看了半天都觉得和我做的有差别,网速也慢的出奇,只好看工具箱里的demos.教程中这样一句话让我豁然开朗:

To avoid the zero solution or an unbounded solution, we constrain the trace of the matrix (Of course, this is not the only way. We could have used, e.g., the constraint P>I instead)

    教程在求解过程中加入了(P) == 1或者(P) >= 1的条件,以此来避免0解和无界解,这不正是我需要的么.但这样的条件是否会让结果更加保守,有待验证,但我现在的目的只是一个可行解,我想应该是可以的 .看完demos,仿照例子就上题编完程序,运行后控制器仍然为0,不过当我加入控制器的限制条件以后结果就比较好了.

     PS.下午遇到一个非常郁闷的问题,编写代码在定义变量是总是有这样的问题

>> P = sdpvar(3,4);
??? Too many outputs requested for assignment.

     这样一个问题花费了我一个多小时的检查,结果是我在添加工具箱的时候没有把子文件夹添加到路径,真是要撞墙了~

      矩阵不等式的求解其实有很多工具箱都可以解决,当遇到牛角尖的时候也许新的道路也未尝不能尝试~

      很多问题其实都是时间问题,时间花到成果自然就有了,这是我最大的体会~

阅读(7105) | 评论(3) | 转发(0) |
0

上一篇:小小的打击

下一篇:奥运来了

给主人留下些什么吧!~~

bmdlz20092009-07-01 22:51:29

我在作lmi仿真时,出现问题,找不到出错的地方,望高手指点一下,谢谢! A=[-0.8 -0.01;1 0.1]; B=[0.4;0.1]; % Initial a LMI system setlmis([]); % Define Variables % X is a symmetric matrix, has a block size of 2 and this block is symmetric X = lmivar(1, [2 1]); % R1 a symmeric matrix, size 2 R1 = lmivar(1, [2 1]); % S2 is 1 by 1 matrix R2 = lmivar(1, [2 1]); Q = lmivar(1, [2 1]); % Q, S1, S2 > 0 Y = lmivar(2, [2 1]) TOL=0.4; % pos in (1, 1) lmiterm([1 1 1 X], A./TOL, A','s'); lmiterm([1 1 1 Y], B./TOL, 1,'s'

bmdlz20092009-07-01 00:32:51

我正在学习矩阵不等式,遇到问题,希望高手能到我的博客看看,指点一下。 bmdlz2009.cublog.cn 我的qq:894539341,希望能与你交流一下!谢谢!

chenmw20002008-08-13 12:30:43

http://blog.chinaunix.net/u2/75884/ 您好 上面是我的網頁 我有求lmi的問題想麻煩妳 可否請您有空時 能去我的網頁幫我解答 謝謝