|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
<P>在做输出反馈控制器设计时,对于Xdot=AX+BU<br> Y=CX<br>设计一个静态输出反馈控制器U=kY时,得到的k是个常数,而需要的k是个1×2的才满足状态模型,怎样得到1×2维的k值呢?<br>程序如下:<br>a=[0 0 0 0;0 -0.088317 0.625 0;0 0 0 1;0 -0.002725 0.3283625 0];<br>b=[0;-0.883167;0;2.356553];<br>c=[1 0 0 0;0 0 1 0];<br></P>
<P> setlmis([]);<br> x=lmivar(1,[4 1]);<br> y=lmivar(1,[1 1]);<br> ew=lmivar(2,[1 1]);<br> <br> lmiterm([1 1 1 x],1,a','s'); % LMI #1: x*a'+a*x<br> lmiterm([1 2 1 0],b'); % LMI #1: b'<br> lmiterm([1 2 2 y],1,-1); % LMI #1: -y<br> lmiterm([1 3 1 x],c,1); % LMI #1: c*x<br> lmiterm([1 3 3 0],-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> [lp kp]=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编辑过]
|
|