第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt

第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt

  1. 1、本文档共128页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt

综上所述可得结论:Q=diag(1,0,0),R=2时,系统各方面响应较好。 矩阵Q变大时,反馈矩阵变大; 当Q的对角线上第1个元素变大时,各曲线波动幅值变大,达到稳态所需时间变短; 当Q的对角线上第2个元素变大时,各曲线波动幅值变小;达到稳态所需时间,状态x1,x2增长,状态x3,控制输入u变短; 当R变大时,反馈矩阵变小;各曲线波动幅值变小;达到稳态所需时间变长。 所以根据实际的系统允许,我们应该适当选择Q和R。 %***************MATLAB程序***************% a=[0 1 0;0 0 1;0 0 -1/2];b=[0;0;1/2];c=[1 0 0;0 1 0;0 0 1];d=[0;0;0]; figure(1) q=[1 0 0;0 0 0;0 0 0]; r=2; [k,p,e]=lqr(a,b,q,r) x0=[10;0;0]; a1=a-b*k; [y,x]=initial(a1,b,c,d,x0,20); n=length(x(:,3)); T=0:20/n:20-20/n; plot(T,x(:,1),black,T,x(:,2),red,T,x(:,3),green); xlabel(time-s);ylabel(response); title(图(1.a) Q=diag(1,0,0),R=2时状态响应曲线) grid,hold on for j=1:n u(j,:)=-k*(x(j,:)); end figure(2) plot(T,u);xlabel(time-s);ylabel(response); title(图(1.b) Q=diag(1,0,0),R=2时控制输入u的响应曲线) grid,hold on %************************** figure(3) qa=[1 0 0;0 0 0;0 0 0]; ra=2000; [ka,pa,ea]=lqr(a,b,qa,ra) x0=[10;0;0]; aa1=a-b*ka; [ya,xa]=initial(aa1,b,c,d,x0,60); na=length(xa(:,3)); Ta=0:60/na:60-60/na; plot(Ta,xa(:,1),black,Ta,xa(:,2),red,Ta,xa(:,3),green); xlabel(time-s);ylabel(response); title(图(2.a) Q=diag(1,0,0),R=2000时状态响应曲线) grid,hold on for j=1:na ua(j,:)=-ka*(xa(j,:)); end figure(4) plot(Ta,ua);xlabel(time-s);ylabel(response); title(图(2.b) Q=diag(1,0,0),R=2000时控制输入u的响应曲线) grid,hold on %%%******************************* figure(5) qb=[10 0 0;0 0 0;0 0 0]; rb=2; [kb,pb,eb]=lqr(a,b,qb,rb) x0=[10;0;0]; ab1=a-b*kb; [yb,xb]=initial(ab1,b,c,d,x0,20); nb=length(xb(:,3)); Tb=0:20/nb:20-20/nb; plot(Tb,xb(:,1),black,Tb,xb(:,2),red,Tb,xb(:,3),green); xlabel(time-s);ylabel(response); title(图(3.a) Q=diag(10,0,0),R=2时状态响应曲线) grid,hold on for j=1:nb ub(j,:)=-kb*(xb(j,:)); end figure(6) plot(Tb,ub);xlabel(time-s);ylabel(response); title(图(3.b) Q=diag(10,0,0),R=2时控制输入u的响应曲线) grid,hold on %%%************* figure(7) qc=[1 0 0;0 100 0;0 0 0]; rc=2; [kc,pc,ec]=lqr(a,b,qc,rc) x0=[10;0;0]; ac1=a-b*kc; [yc,xc]=initial(ac1,b,c,d,x0,50); nc=length(xc(:,3)); Tc=0:50/nc:50-50/nc; plot(Tc,xc(:,1),black,Tc,xc(:,2),red,Tc,xc(:,3

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档