加速度梯形算法:濾波方式下的速度規劃

已知線段長度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}

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