最优控制问题matlab编程实例,matlab实现解决最优控制中的内点约束问题

该博客介绍了如何使用MATLAB解决带有内点约束的最优控制问题。通过具体的编程实例,展示了如何添加内点约束条件并求解,包括符号解法和内点约束条件的设置与求解过程,最后讨论了将等式约束转换为不等式约束的情况。
摘要由CSDN通过智能技术生成

问题 此问题出自Solving optimal control problems with MATLAB.pdf

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

此问题matlab实现程序

function er3OC_sym

%EG3OC_sym Example 3 of optimal control tutorial.

% This example is from D.S.Naidu, "Optimal contorl systems"

% page 77-80, Example 2.14

% Symbolic toolbox is used to get the analytical solution

sol = dsolve('Dx1 = x2, Dx2 = -p2, Dp1 = 0, Dp2 = -p1',...

'x1(0) = 1, x2(0) = 2, x1(tf) = 3, p2(tf) = 0');

eq1 = subs(sol.x1) - 'x1tf';

eq2 = subs(sol.x2) - 'x2tf';

eq3 = subs(sol.p1) - 'p1tf';

eq4 = subs(sol.p2) - 'p2tf';

eq5 = sym('p1tf*x2tf - 0.5*p2tf^2');

%%

sol_2 = solve(eq1, eq2, eq3, eq4, eq5);

tf = sol_2.tf;

x1tf = sol_2.x1tf;

x2tf = sol_2.x2tf;

x1 = subs(sol.x1);

x2 = subs(sol.x2);

p1 = subs(sol.p1);

p2 = subs(sol.p2);

%%

sol_book = {@(t)((4/54).*t.^3-(2/3)*t.^2+2.*t+1),...

@(t)((4/18).*t.^2-(4/3).*t+2)};

u = @(t)((4/9).*t-(4/3));

t = double(tf);

time = linspace(0,t,20);

s_book = [sol_book{1}(time);sol_book{2}(time)];

ut = u(time);

figure(1);

ezplot(x1,[0 t]); hold on;

ezplot(x2,[0 t]);

plot(time, s_book,'*');

plot(time, ut, 'k:');

axis([0

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值