使用 Matlab 进行轨迹优化

问题描述

我正在尝试创建一个轨迹规划器。我正在研究论文。这个想法是最小化jerk(acc导数)。目标函数

J= int(t0 -> tf) 0.5*j_lat^2*dt.

哈密顿量是

H=0.5*j_lat^2+ p1*v_lat+p2*a_lat+p3*j_lat.
syms t
syms l v_lat a_lat j_lat p1 p2 p3 H C1 C2 C3 C4 C5 C6
%% relation
dl=v_lat;
dv_lat=a_lat;
da_lat=j_lat;

g=1/2*j_lat^2;
%% Hamiltonian
H=g+p1*v_lat+p2*a_lat+p3*j_lat;

%costate equations
Dp1= -diff(H,l); %differential of a symbolic equation
Dp2= -diff(H,v_lat);
Dp3= -diff(H,a_lat);

%solve for control j
dj= diff(H,j_lat); 
sol_j= solve(dj,j_lat); %solution of dH/dj_lat=0

%substitute j to state equations
da_lat=subs(da_lat,j_lat,sol_j);

p1=C1;
p2=-C1*t+C2;
p3=0.5*C1*t^2-C2*t+C3;

l=-1/120*C1*t^5+1/24*C2*t^4-1/6*C3*t^3+1/2*C4*t^2+C5*t+C6;
v_lat=-1/24*C1*t^4+1/6*C2*t^3-1/2*C3*t^2+C4*t+C5;
a_lat=-1/6*C1*t^3+1/2*C2*t^2-C3*t+C4;
j_lat=-1/2*C1*t^2+C2*t-C3;

%% solution 

%convert symbolic objs to strings for using "dsolve"
eq1= strcat('dl=',char(dl));
eq2= strcat('dv_lat=',char(dv_lat));
eq3= strcat('da_lat=',char(da_lat));
eq4= strcat('Dp1=',char(Dp1));
eq5= strcat('Dp2=',char(Dp2));
eq6= strcat('Dp3=',char(Dp3));
eq7= strcat('p1=',char(p1));
eq8= strcat('p2=',char(p2));
eq9= strcat('p3=',char(p3));
eq10= strcat('l=',char(l));
eq11= strcat('v_lat=',char(v_lat));
eq12= strcat('a_lat=',char(a_lat));

sol_h= dsolve(eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11,eq12);

我不知道为什么会出现此错误

**Error using mupadengine/feval_internal**
**Invalid equation or initial condition.**

**Error in dsolve>mupadDsolve (line 334)**
**T = feval_internal(symengine,'symobj::dsolve',sys,x,options);**

**Error in dsolve (line 203)**
**sol = mupadDsolve(args,options);**

**Error in Untitled4 (line 61)**
**sol_h=dsolve(eq1,eq12);** 

有人可以帮我吗?我有点绝望! 最好的,艾丽卡

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)