superstones 发表于 2007-9-28 00:03

[求助]请问LIM(线性矩阵不等式)的一个程序问题

各位高人,看到篇关于LMI的论文,想仿真结果,发现和论文的结果相差很多,请教高人我的程序中是否出现什么问题
,多谢!
已知:q=[       p*k1+a                   -0.5*(p*a-a+c+Mz)         -0.5My
               -0.5*(p*a-a+c+Mz)            k2-c                            0
                   -0.5My                              0                           k3+b   ]         >0
其中 a=35b=3,c=28,Mz=53,My=32, p=My^2/(a*b), 求解k1,k2,k3

程序如下:
clear,clc
a=35;
b=3;
c=28;
mcy=32;
mcz=53;
p=mcy^2/(a*b);
setlmis([])
K1=lmivar(1,);
K2=lmivar(1,);
K3=lmivar(1,);
lmiterm([-1 1 1 K1],p,1);
lmiterm([-1 1 1 0],p*a);
lmiterm([-1 1 2 0],-1/2*(p*a-a+c+mcz));
lmiterm([-1 1 3 0],-1/2*mcy);
lmiterm([-1 2 2 K2],1,1);
lmiterm([-1 2 2 0],-c);
lmiterm([-1 3 3 K3],1,1);
lmiterm([-1 3 3 0],b);
lmisys=getlmis;
=feasp(lmisys);
KK1=dec2mat(lmisys,xfeas,K1)
KK2=dec2mat(lmisys,xfeas,K2)
KK3=dec2mat(lmisys,xfeas,K3)

程序运行的结果和原论文有很多的差别,竟然相差10^3左右,望高人指导!!!
多谢多谢!!

[ 本帖最后由 xmwhit 于 2007-9-28 08:42 编辑 ]

superstones 发表于 2007-9-28 09:33

晕,是LMI,竟然打成LIM,抱歉抱歉

zyj_030 发表于 2007-9-29 11:11

第二个lmiterm项怎么是lmiterm([-1 1 1 0],p*a),而不是lmiterm([-1 1 1 0],a)

superstones 发表于 2007-9-29 23:10

不好意思啊,原矩阵应该是
q=[       p*(k1+a)       -0.5*(p*a-a+c+Mz)   -0.5My
               -0.5*(p*a-a+c+Mz)            k2-c                            0
                   -0.5My                                  0                           k3+b   ]         >0

麻烦你们看看那里出了问题,怎么结果相差很大啊。
多谢多谢!!

zhengbc 发表于 2007-12-13 20:12

,结果是
KK1 =

5.2473e+007


KK2 =

5.1174e+008


KK3 =

5.1174e+008
不对吗?:@)
页: [1]
查看完整版本: [求助]请问LIM(线性矩阵不等式)的一个程序问题