[求助]LMI求解中,若k×k'=y,已知y,怎样求k?
<P>在做输出反馈控制器设计时,对于Xdot=AX+BU<br> Y=CX<br>设计一个静态输出反馈控制器U=kY时,得到的k是个常数,而需要的k是个1×2的才满足状态模型,怎样得到1×2维的k值呢?<br>程序如下:<br>a=;<br>b=;<br>c=;<br></P><P>setlmis([]);<br>x=lmivar(1,);<br>y=lmivar(1,);<br>ew=lmivar(2,);<br> <br>lmiterm(,1,a','s'); % LMI #1: x*a'+a*x<br>lmiterm(,b'); % LMI #1: b'<br>lmiterm(,1,-1); % LMI #1: -y<br>lmiterm(,c,1); % LMI #1: c*x<br>lmiterm(,-inv(ew)); % LMI #1: -inv(ew)<br> <br>lmiterm([-2 1 1 x],1,1); % LMI #2: x 即令正定x>0,默认为<0,所以用-2表示第二个LMI大于0<br>lmiterm([-3 1 1 ew],1,1); % LMI #3: ew 即令α>0,是正实数,此处将α用ew表示,-3表示第三个LMI大于0<br>s1=getlmis;<br><br>=feasp(s1) %此处用来求s1的可行解,返回的lp<0,则该LMI可行。<br><br> x=dec2mat(s1,kp,x)<br> y=dec2mat(s1,kp,y);<br> ew=dec2mat(s1,kp,ew)<br> p=inv(x) % 到此已求出了x,y,ew,p的值,以下要用正交补求k<br> <br> <br> y=y/ew; %由ew×inv(y)除以.ew得到inv(y)<br> y=inv(y) %再求逆得到所求的y此处y=0.1505<br><FONT color=#ff0000> z=orth(y);<br> t=chol(y);<br> k=(z*t)' %此处得到k=0.3879,我想得到一个1×2的k,怎样修改程序呢?</FONT></P><br>
[此贴子已经被作者于2006-6-23 16:42:51编辑过]
共同关注ing (楼主的意思是y已知(y为一常数),且k*k'=y,如何求一个维数为1x2的k)
[此贴子已经被作者于2006-6-23 22:42:11编辑过]
页:
[1]