首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

最优控制理论笔记总结(17)——一般最优控制仿真举例(含Matlab实现代码)

本次笔记总结:

一般最优控制仿真举例(含代码)

 采用如下例题作为仿真分析。

该例题是一个初端给定终端自由的系统,其中控制受约束。在上述条件中,求满足给定性能指标的最优控制和对应的最优轨迹。

利用前面几期内容的结论,构造汉密尔顿方程来求解系统的协态方程、控制方程,即可得到对应解。

其中:

控制切换时间为0.307s;

协态表达式为exp(1-t)-1;

控制表达式为:39*exp(t) + 1(切换时间前)、exp(t-ts)*(切换时间-0.5)+0.5(切换时间后)

具体代码如下

syms H lmd x u t

H = x+u+lmd*(x-u) ;

Dlmd = -diff(H,'x') ;

lmd = dsolve('Dlmd==-1-lmd','lmd(1)=0')

ts = double(solve(lmd==1))

x = dsolve('Dx=x-1','x(0)=40') ;

xchange = 3*exp(ts) + 1 ;

x1 = dsolve('Dx1=x1-0.5','x1(ts)=xchange') ;

tplot = 0:0.001:1 ;

for i = 1:length(tplot)

  if tplot(i)<=ts

      xplot(i) = 3*exp(tplot(i)) + 1 ;

      uplot(i) = 1 ;

  else

      xplot(i) = exp(-0.307)*exp(tplot(i))*(xchange - 1/2) + 1/2 ;

      uplot(i) = 0.5 ;

  end

  lmdplot(i) = exp(-tplot(i))*exp(1) - 1 ;

end

figure(1)

plot(tplot,xplot,'b','linewidth',2) ;

grid on

title('状态量')

figure(2)

plot(tplot,uplot,'b','linewidth',2) ;

grid on

title('控制量')

公众号内还有:

【经典控制理论】全套笔记

【现代控制理论】全套笔记

【非线性控制理论】全套笔记

【车辆动力学】全套笔记

期待您的关注、留言、讨论!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O4MjQ4ZuDjlYcgQIykHvGAIQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券