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

6 篇文章 3 订阅
5 篇文章 3 订阅

已知线段长度 s s s,起点速度 v 0 v_0 v0,利用加速度S形算法(滤波方式)计算能达到的最大终点速度和最小终点速度。其中,系统最大速度为 v m v_m vm,系统最大加速度为 a m a_m am,系统最大加加速度为 J m J_m Jm,插补周期为 T T T

计算能达到的最大终点速度 v m ′ v'_m vm

(1)假设实际最大加速度为 a m ′ a'_m am,则
n = v m ′ − v 0 a m ′ T , L = π a m ′ 2 J m T . \begin{aligned} &n=\dfrac{v'_m-v_0}{a'_mT}, \\ &L=\dfrac{\pi a'_m}{2J_mT}. \\ \end{aligned} n=amTvmv0,L=2JmTπam.
其中, n n n为直线加速度加速的整周期数, L L L为速度滤波器的长度。

实际运动的距离 s s s s = 1 2 ( v 0 + v m ′ ) ( n + L ) T = 1 2 ( v 0 + v m ′ ) ( v m ′ − v 0 a m ′ + π a m ′ 2 J m ) 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{\pi a_m'}{2J_m}\right) s=21(v0+vm)(n+L)T=21(v0+vm)(amvmv0+2Jmπam)

若使运动时间最短,令 v m ′ − v 0 a m ′ = π a m ′ 2 J m \dfrac{v_m'-v_0}{a_m'}=\dfrac{\pi a_m'}{2J_m} amvmv0=2Jmπam a m ′ = 2 J m ( v m ′ − v 0 ) π a_m'=\sqrt{\dfrac{2J_m(v_m'-v_0)}{\pi}} am=π2Jm(vmv0)

于是有
s = 1 2 ( v 0 + v m ′ ) ⋅ 2 ⋅ v m ′ − v 0 a m ′ = ( v m ′ + v 0 ) ( v m ′ − v 0 ) a m ′ , ( v m ′ + v 0 ) ( v m ′ − v 0 ) = a m ′ s = 2 J m ( v m ′ − v 0 ) π ⋅ s , ( v m ′ + v 0 ) ⋅ v m ′ − v 0 = 2 J m π ⋅ s , ( v m ′ + v 0 ) 2 ( v m ′ − v 0 ) = 2 J m π s 2 , v m ′ 3 + v 0 v m ′ 2 − v 0 2 v m ′ − v 0 3 − 2 J m s 2 π = 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_m's=\sqrt{\dfrac{2J_m(v_m'-v_0)}{\pi}}\cdot s, \\ &(v_m'+v_0)\cdot\sqrt{v_m'-v_0}=\sqrt{\dfrac{2J_m}{\pi}}\cdot s, \\ &(v_m'+v_0)^2(v_m'-v_0)=\dfrac{2J_m}{\pi}s^2, \\ &v_m'^3+v_0v_m'^2-v_0^2v_m'-v_0^3-\dfrac{2J_ms^2}{\pi} = 0. \\ \end{aligned} s=21(v0+vm)2amvmv0=am(vm+v0)(vmv0),(vm+v0)(vmv0)=ams=π2Jm(vmv0) s,(vm+v0)vmv0 =π2Jm s,(vm+v0)2(vmv0)=π2Jms2,vm3+v0vm2v02vmv03π2Jms2=0.
(2)求解一元三次方程: v m ′ 3 + v 0 v m ′ 2 − v 0 2 v m ′ − v 0 3 − 2 J m s 2 π = 0 v_m'^3+v_0v_m'^2-v_0^2v_m'-v_0^3-\dfrac{2J_ms^2}{\pi}=0 vm3+v0vm2v02vmv03π2Jms2=0

得到实际的最大终点速度 v m ′ ( v m ′ > v 0 ) v_m'(v_m'>v_0) vm(vm>v0)

(3)检验 a m ′ = v m ′ 2 − v 0 2 s a_m'=\dfrac{v_m'^2-v_0^2}{s} am=svm2v02是否满足系统最大加速度的要求。

a m ′ a_m' am不大于系统最大加速度,则 m i n ( v m ′ ,   v m ) min(v_m',\ v_m) min(vm, vm)即为能达到的最大终点速度。

(4)若 a m ′ a_m' am大于系统最大加速度,则取 a m a_m am为实际加工的最大加速度,重新计算能达到的最大终点速度。
L = π a m 2 J m T , n = v m ′ − v 0 a m T , s = 1 2 ( v 0 + v m ′ ) ( L + n ) T = 1 2 ( v 0 + v m ′ ) ( π a m 2 J m + v m ′ − v 0 a m ) , 2 J m v m ′ 2 + π a m 2 v m ′ + π a m 2 v 0 − 2 J m v 0 2 − 4 a m J m s = 0. \begin{aligned} &L=\dfrac{\pi a_m}{2J_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{\pi a_m}{2J_m}+\dfrac{v_m'-v_0}{a_m}\right), \\ &2J_mv_m'^2+\pi a_m^2v_m'+\pi a_m^2v_0-2J_mv_0^2-4a_mJ_ms=0. \end{aligned} L=2JmTπam,n=amTvmv0,s=21(v0+vm)(L+n)T=21(v0+vm)(2Jmπam+amvmv0),2Jmvm2+πam2vm+πam2v02Jmv024amJms=0.
由此求得最大终点速度 v m ′ v_m' vm,并且要求 v m ′ > v 0 v_m'>v_0 vm>v0。若不满足要求,则令 v m ′ = v 0 v_m'=v_0 vm=v0

计算能达到的最小终点速度 v m ′ v_m' vm

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

(2)如果不能减速到零,则假设实际最大加速度为 a m ′ a_m' am,于是有
n = v 0 − v m ′ a m ′ T , L = π a m ′ 2 J m T . \begin{aligned} &n=\dfrac{v_0-v_m'}{a_m'T}, \\ &L=\dfrac{\pi a_m'}{2J_mT}. \\ \end{aligned} n=amTv0vm,L=2JmTπam.
其中, n n n为直线加速度减速的整周期数, L L L为速度滤波器的长度。

实际运动的距离 s s s s = 1 2 ( v 0 + v m ′ ) ( n + L ) T = 1 2 ( v 0 + v m ′ ) ( v 0 − v m ′ a m ′ + π a m ′ 2 J m ) 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{\pi a_m'}{2J_m}\right) s=21(v0+vm)(n+L)T=21(v0+vm)(amv0vm+2Jmπam)

若使运动时间最短,令 v 0 − v m ′ a m ′ = π a m ′ 2 J m \dfrac{v_0-v_m'}{a_m'}=\dfrac{\pi a_m'}{2J_m} amv0vm=2Jmπam a m ′ = 2 J m ( v 0 − v m ′ ) π a_m'=\sqrt{\dfrac{2J_m(v_0-v_m')}{\pi}} am=π2Jm(v0vm)

于是有
s = 1 2 ( v 0 + v m ′ ) ⋅ 2 ⋅ v 0 − v m ′ a m ′ = ( v 0 + v m ′ ) ( v 0 − v m ′ ) a m ′ , ( v 0 + v m ′ ) ( v 0 − v m ′ ) = a m ′ s = 2 J m ( v 0 − v m ′ ) π ⋅ s , ( v 0 + v m ′ ) ⋅ v 0 − v m ′ = 2 J m π ⋅ s , ( v 0 + v m ′ ) 2 ( v 0 − v m ′ ) = 2 J m s 2 π , v m ′ 3 + v 0 v m ′ 2 − v 0 2 v m ′ − v 0 3 + 2 J m s 2 π = 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_m's=\sqrt{\dfrac{2J_m(v_0-v_m')}{\pi}}\cdot s, \\ &(v_0+v_m')\cdot\sqrt{v_0-v_m'}=\sqrt{\dfrac{2J_m}{\pi}}\cdot s, \\ &(v_0+v_m')^2(v_0-v_m')=\dfrac{2J_ms^2}{\pi}, \\ &v_m'^3+v_0v_m'^2-v_0^2v_m'-v_0^3+\dfrac{2J_ms^2}{\pi}=0. \\ \end{aligned} s=21(v0+vm)2amv0vm=am(v0+vm)(v0vm),(v0+vm)(v0vm)=ams=π2Jm(v0vm) s,(v0+vm)v0vm =π2Jm s,(v0+vm)2(v0vm)=π2Jms2,vm3+v0vm2v02vmv03+π2Jms2=0.
(3)求解一元三次方程: v m ′ 3 + v 0 v m ′ 2 − v 0 2 v m ′ − v 0 3 + 2 J m s 2 π = 0 v_m'^3+v_0v_m'^2-v_0^2v_m'-v_0^3+\dfrac{2J_ms^2}{\pi}=0 vm3+v0vm2v02vmv03+π2Jms2=0

得到实际的最小终点速度 v m ′ v_m' vm v m ′ > 0 v_m'>0 vm>0并且 v m ′ < v 0 v_m'<v_0 vm<v0)。

(4)检验 a m ′ = v 0 2 − v m ′ 2 s a_m'=\dfrac{v_0^2-v_m'^2}{s} am=sv02vm2是否满足系统最大加速度的要求。

a m ′ a_m' am不大于系统最大加速度,则 v m ′ v_m' vm即为能达到的最小终点速度。

(5)若 a m ′ a_m' am大于系统最大加速度,则取 a m a_m am为实际加工的最大加速度,重新计算能达到的最小终点速度。
L = π a m 2 J m T , n = v 0 − v m ′ a m T , s = 1 2 ( v 0 + v m ′ ) ( L + n ) T = 1 2 ( v 0 + v m ′ ) ( π a m 2 J m + v 0 − v m ′ a m ) , 2 J m v m ′ 2 − π a m 2 v m ′ − π a m 2 v 0 − 2 J m v 0 2 + 4 a m J m s = 0. \begin{aligned} &L=\dfrac{\pi a_m}{2J_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{\pi a_m}{2J_m}+\dfrac{v_0-v_m'}{a_m}\right), \\ &2J_mv_m'^2-\pi a_m^2v_m'-\pi a_m^2v_0-2J_mv_0^2+4a_mJ_ms=0. \\ \end{aligned} L=2JmTπam,n=amTv0vm,s=21(v0+vm)(L+n)T=21(v0+vm)(2Jmπam+amv0vm),2Jmvm2πam2vmπam2v02Jmv02+4amJms=0.
由此求得最小终点速度 v m ′ v_m' vm,并且要求 v m ′ > 0 v_m'>0 vm>0并且 v m ′ < v 0 v_m'<v_0 vm<v0。若不满足要求,则令 v m ′ = v 0 v_m'=v_0 vm=v0

插补

已知起始速度 v s v_s vs,终止速度 v e v_e ve,系统最大速度为 v m v_m vm,系统最大加速度为 a m a_m am,系统最大加加速度为 J m J_m Jm

粗插补计算能加速到的最大速度 v m ′ ( v m ′ ⩽ v m ) v_m'(v_m'\leqslant v_m) vm(vmvm),正向最大加速度 a m ′ a_m' am,反向最大加速度 a m ′ ′ a_m'' am
a m ′ = 2 J m ( v m ′ − v s ) π , a m ′ ′ = 2 J m ( v m ′ − v e ) π , a m ′ = m i n ( a m ′ ,   a m ) , a m ′ ′ = m i n ( a m ′ ′ ,   a m ) . \begin{aligned} &a_m'=\sqrt{\dfrac{2J_m(v_m'-v_s)}{\pi}},\quad a_m''=\sqrt{\dfrac{2J_m(v_m'-v_e)}{\pi}}, \\ &a_m'=min(a_m',\ a_m),\quad a_m''=min(a_m'',\ a_m). \\ \end{aligned} am=π2Jm(vmvs) ,am=π2Jm(vmve) ,am=min(am, am),am=min(am, am).
正向运动距离: s ′ = 1 2 ( v s + v m ′ ) ( L ′ + n ′ ) T s'=\dfrac{1}{2}(v_s+v_m')(L'+n')T s=21(vs+vm)(L+n)T,其中 L ′ = π a m ′ 2 J m T L'=\dfrac{\pi a_m'}{2J_mT} L=2JmTπam n ′ = v m ′ − v s a m ′ T n'=\dfrac{v_m'-v_s}{a_m'T} n=amTvmvs

反向运动距离: s ′ ′ = 1 2 ( v e + v m ′ ) ( L ′ ′ + n ′ ′ ) T s''=\dfrac{1}{2}(v_e+v_m')(L''+n'')T s=21(ve+vm)(L+n)T,其中 L ′ ′ = π a m ′ ′ 2 J m T L''=\dfrac{\pi a_m''}{2J_mT} L=2JmTπam n ′ ′ = v m ′ − v e a m ′ ′ T n''=\dfrac{v_m'-v_e}{a_m''T} n=amTvmve

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值