| 查看: 1402 | 回复: 0 | ||
[求助]
matlab解时间最优控制使用bvp4c解哈密顿方程组时出现错误
|
|
由于末端时刻未知,我将时间变换成末端固定时刻的问题时间区间(0,T)变换成(0,1),相应的状态方程乘以T 代码如下: T=22;%猜测最优时间 x=linspace(0,1,10); solinit=bvpinit(x,[0 0 0 0 0 -1/4] ,T); sol=bvp4c(@ode,@bc,solinit); %状态方程 function dydt=ode(t,y,T); b=400; v0=3; a=4; dydt=[T*y(3)*y(4)/sqrt(y(4)^2+y(5)^2) T*4/b^2*y(1)*(b-y(1))*v0+T*y(3)*y(5)/sqrt(y(4)^2+y(5)^2) T*sign(y(6))*-1*a; T*-1*4*y(5)/b^2*v0*(-2*y(1)+b) 0 T*-1*sqrt(y(4)^2+y(5)^2)] %边界条件 function res=bc(ya,yb,T); res=[ ya(1) ya(2) ya(3) yb(1)-400 yb(2) yb(3)]; %%%%%%%%%%%%%% 运行后发现错误为:Error using bvparguments (line 112) Error in calling BVP4C(ODEFUN,BCFUN,SOLINIT): The boundary condition function BCFUN should return a column vector of length 7. 大致意思是说需要返回7个边界条件,如何解决。 |
» 猜你喜欢
有没有人能给点建议
已经有5人回复
假如你的研究生提出不合理要求
已经有12人回复
实验室接单子
已经有7人回复
全日制(定向)博士
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
对氯苯硼酸纯化
已经有3人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复












回复此楼