加速度梯形算法:滤波方式下的速度规划

已知线段长度ss,起点速度v0v_0,利用加速度梯形算法(滤波方式)计算能达到的最大终点速度和最小终点速度。其中,系统最大速度为vmv_m,系统最大加速度为ama_m,系统最大加加速度为JmJ_m,插补周期为TT

计算能达到的最大终点速度vmv'_m

(1)假设实际运动的最大加速度为ama'_m,则
n=vmv0amT,L=amJmT. \begin{aligned} &n=\dfrac{v'_m-v_0}{a'_mT}, \\ &L=\dfrac{a'_m}{J_mT}. \end{aligned}
其中,nn为直线加速度加速的整周期数,LL为速度滤波器的长度。

实际运动的距离sss=12(v0+vm)(n+L)T=12(v0+vm)(vmv0am+amJm)s=\dfrac{1}{2}(v_0+v'_m)(n+L)T=\dfrac{1}{2}(v_0+v'_m) \left(\dfrac{v'_m-v_0}{a'_m}+\dfrac{a'_m}{J_m}\right)

若使运动时间最短,令vmv0am=amJm\dfrac{v'_m-v_0}{a'_m}=\dfrac{a'_m}{J_m}am=Jm(vmv0)a'_m=\sqrt{J_m(v'_m-v_0)}

于是有
s=12(v0+vm)2vmv0am=(vm+v0)(vmv0)am,(vm+v0)(vmv0)=ams=Jm(vmv0)s,(vm+v0)vmv0=Jms,(vm+v0)2(vmv0)=Jms2,vm3+v0vm2v02vmv03Jms2=0. \begin{aligned} &s=\dfrac{1}{2}(v_0+v'_m)\cdot 2\cdot\dfrac{v'_m-v_0}{a'_m}=\dfrac{(v'_m+v_0)(v'_m-v_0)}{a'_m}, \\ &(v'_m+v_0)(v'_m-v_0)=a'_ms=\sqrt{J_m(v'_m-v_0)}\cdot s, \\ &(v'_m+v_0)\cdot \sqrt{v'_m-v_0}=\sqrt{J_m}\cdot s, \\ &(v'_m+v_0)^2(v'_m-v_0)=J_ms^2, \\ &v^{'3}_m+v_0v^{'2}_m-v_0^2v'_m-v_0^3-J_ms^2=0. \end{aligned}
(2)求解一元三次方程:vm3+v0vm2v02vmv03Jms2=0v^{'3}_m+v_0v^{'2}_m-v_0^2v'_m-v_0^3-J_ms^2=0

得到实际的最大终点速度vm(vm>v0)v'_m(v'_m>v_0)

(3)检验am=vm2v02sa'_m=\dfrac{v^{'2}_m-v_0^2}{s}是否满足系统最大加速度的要求。

ama'_m不大于系统最大加速度,则min(vm, vm)min(v'_m,\ v_m)即为能达到的最大终点速度。

(4)若ama'_m大于系统最大加速度,则取ama_m为实际运动的最大加速度,重新计算能达到的最大终点速度。
L=amJmT,n=vmv0amT,s=12(v0+vm)(L+n)T=12(v0+vm)(amJm+vmv0am),Jmvm2+am2vm+am2v0Jmv022amJms=0. \begin{aligned} &L=\dfrac{a_m}{J_mT},\quad n=\dfrac{v'_m-v_0}{a_mT}, \\ &s=\dfrac{1}{2}(v_0+v'_m)(L+n)T=\dfrac{1}{2}(v_0+v'_m)\left(\dfrac{a_m}{J_m} +\dfrac{v'_m-v_0}{a_m}\right), \\ &J_mv^{'2}_m+a_m^2v'_m+a_m^2v_0-J_mv_0^2-2a_mJ_ms=0. \end{aligned}
由此求得最大终点速度vmv'_m,并且要求vm>v0v'_m>v_0。若不满足要求,则令vm=v0v'_m=v_0

计算能达到的最小终点速度vmv'_m

(1)首先判断能否减速到零,如果能减速到零,则vm=0v'_m=0

(2)如果不能减速到零,则假设实际运动的最大加速度为ama'_m,于是有
n=v0vmamT,L=amJmT. \begin{aligned} &n=\dfrac{v_0-v'_m}{a'_mT}, \\ &L=\dfrac{a'_m}{J_mT}. \end{aligned}
其中,nn为直线加速度减速的整周期数,LL为速度滤波器的长度。

实际运动的距离sss=12(v0+vm)(n+L)T=12(v0+vm)(v0vmam+amJm)s=\dfrac{1}{2}(v_0+v'_m)(n+L)T=\dfrac{1}{2}(v_0+v'_m)\left(\dfrac{v_0-v'_m}{a'_m} +\dfrac{a'_m}{J_m}\right)

若使运动时间最短,令v0vmam=amJm\dfrac{v_0-v'_m}{a'_m}=\dfrac{a'_m}{J_m}am=Jm(v0vm)a'_m=\sqrt{J_m(v_0-v'_m)}

于是有
s=12(v0+vm)2v0vmam=(v0+vm)(v0vm)am,(v0+vm)(v0vm)=ams=Jm(v0vm)s,(v0+vm)v0vm=Jms,(v0+vm)2(v0vm)=Jms2,vm3+v0vm2v02vmv03+Jms2=0. \begin{aligned} &s=\dfrac{1}{2}(v_0+v'_m)\cdot 2\cdot\dfrac{v_0-v'_m}{a'_m}=\dfrac{(v_0+v'_m)(v_0-v'_m)}{a'_m}, \\ &(v_0+v'_m)(v_0-v'_m)=a'_ms=\sqrt{J_m(v_0-v'_m)}\cdot s, \\ &(v_0+v'_m)\cdot \sqrt{v_0-v'_m}=\sqrt{J_m}\cdot s, \\ &(v_0+v'_m)^2(v_0-v'_m)=J_ms^2, \\ &v^{'3}_m+v_0v^{'2}_m-v_0^2v'_m-v_0^3+J_ms^2=0. \end{aligned}
(3)求解一元三次方程:vm3+v0vm2v02vmv03+Jms2=0v^{'3}_m+v_0v^{'2}_m-v_0^2v'_m-v_0^3+J_ms^2=0

得到实际的最小终点速度vm(vm>0v'_m(v'_m>0并且vm<v0)v'_m<v_0)

(4)检验am=v02vm2sa'_m=\dfrac{v_0^2-v^{'2}_m}{s}是否满足系统最大加速度的要求。

ama'_m不大于系统最大加速度,则vmv'_m即为能达到的最小终点速度。

(5)若ama'_m大于系统最大加速度,则取ama_m为实际运动的最大加速度,重新计算能达到的最小终点速度。
L=amJmT,n=v0vmamT,s=12(v0+vm)(L+n)T=12(v0+vm)(amJm+v0vmam),Jmvm2am2vmam2v0Jmv02+2amJms=0. \begin{aligned} &L=\dfrac{a_m}{J_mT},\quad n=\dfrac{v_0-v'_m}{a_mT}, \\ &s=\dfrac{1}{2}(v_0+v'_m)(L+n)T=\dfrac{1}{2}(v_0+v'_m)\left(\dfrac{a_m}{J_m} +\dfrac{v_0-v'_m}{a_m}\right), \\ &J_mv^{'2}_m-a_m^2v'_m-a_m^2v_0-J_mv_0^2+2a_mJ_ms=0. \end{aligned}
由此求得最小终点速度vmv'_m,并且要求vm>0v'_m>0并且vm<v0v'_m<v_0。若不满足要求,则令vm=v0v'_m=v_0

插补

已知起始速度vsv_s,终止速度vev_e,系统最大速度为vmv_m,系统最大加速度为ama_m,系统最大加加速度为JmJ_m

粗插补计算能加速到的最大速度vm(vmvm)v_m'(v_m'\leqslant v_m),正向最大加速度ama_m',反向最大加速度ama_m''
am=Jm(vmvs),am=Jm(vmve),am=min(am, am),am=min(am, am). \begin{aligned} &a_m'=\sqrt{J_m(v_m'-v_s)},\quad a_m''=\sqrt{J_m(v_m'-v_e)}, \\ &a_m'=min(a_m',\ a_m),\quad a_m''=min(a_m'',\ a_m). \\ \end{aligned}
正向运动距离:s=12(vs+vm)(L+n)Ts'=\dfrac{1}{2}(v_s+v_m')(L'+n')T,其中L=amJmTL'=\dfrac{a_m'}{J_mT}n=vmvsamTn'=\dfrac{v_m'-v_s}{a_m'T}

反向运动距离:s=12(ve+vm)(L+n)Ts''=\dfrac{1}{2}(v_e+v_m')(L''+n'')T,其中L=amJmTL''=\dfrac{a_m''}{J_mT}n=vmveamTn''=\dfrac{v_m'-v_e}{a_m''T}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章