速度曲线规划之S形曲线
前言
S形曲线重要特征是其加速度/减速度曲线形如字母S。S形加减速的速度曲线平滑,从而能够减少对控制过程中的冲击,并使插补过程具有柔性。
由于T形曲线在加速到匀速的切换过程中,实际中存在较大过冲,因此这里对比一下T曲线和7段S曲线的实际过程:
-
T形速度曲线包括匀加速、匀速和匀减速,类似于上一节中带有抛物线过渡的线性函数
-
S形:加加速->匀加速->减加速->匀速->加减速->匀减速->减减速
理论分析
引入==加加速度==的概念,表示加速度的变化,用 J J J表示, J = d a d t J=\frac{da}{dt} J=dtda
在上图中7段S速度曲线中,规定最大加速为 a m a x a_{max} amax,最小加速度为 − a m a x -a_{max} −amax,加速度的关系为:
- 加加速( T 1 T_1 T1):a逐渐增大,此时 a = J t a=Jt a=Jt, 0 < t ≤ t 1 0<t≤t_1 0<t≤t1
- 匀加速( T 2 T_2 T2):a达到最大,此时 a = a m a x a=a_{max} a=amax, t 1 < t ≤ t 2 t_1<t≤t_2 t1<t≤t2
- 减加速( T 3 T_3 T3):a逐渐减小,此时 a = a m a x − J ( t − t 2 ) a=a_{max}-J(t-t_2) a=amax−J(t−t2), t 2 < t ≤ t 3 t_2<t≤t_3 t2<t≤t3
- 匀速( T 4 T_4 T4):a保持不变,此时 a = 0 a=0 a=0, t 3 < t ≤ t 4 t_3<t≤t_4 t3<t≤t4
- 加减速( T 5 T_5 T5): ∣ a ∣ |a| ∣a∣逐渐增大,此时 a = − J ( t − t 4 ) a=-J(t-t_4) a=−J(t−t4),t_4<t≤t_5$
- 匀减速( T 6 T_6 T6):a达到最小,此时 a = − a m a x a=-a_{max} a=−amax, t 5 < t ≤ t 6 t_5<t≤t_6 t5<t≤t6
- 减减速( T 7 T_7 T7): ∣ a ∣ |a| ∣a∣逐渐增大,此时 a = − a m a x + J ( t − t 6 ) a=-a_{max}+J(t-t_6) a=−amax+J(t−t6), t 6 < t ≤ t 7 t_6<t≤t_7 t6<t≤t7
其中 ∣ a ∣ |a| ∣a∣是加速度的绝对值, T k = t k − t k − 1 , k = 1.2 , . . . , 7 T_k=t_k-t_{k-1},k=1.2,...,7 Tk=tk−tk−1,k=1.2,...,7
确定整个运动过程需要确定三个最基本的系统参数:系统最大速度 v m a x v_{max} vmax,最大加速度 a m a x a_{max} amax,加加速度 J J J
- 最大速度:反映了系统的最大运行能力;
- 最大加速度:反映了系统的最大加减速能力
- 加加速度:反映了系统的柔性;
- 柔性越大,过冲越大,运行时间越短;
- 柔性越小,过冲越小,运行时间越长;
加速度时间关系方程
整个加速度变化的过程具体如下图所示:
a ( t ) = { J t , 0 < t ≤ t 1 a max = J T 1 , t 1 < t ≤ t 2 a max − J ( t − t 2 ) , t 2 < t ≤ t 3 0 , t 3 < t ≤ t 4 − J ( t − t 4 ) , t 4 < t ≤ t 5 − a max = − J T 5 , t 5 < t ≤ t 6 − a max + J ( t − t 6 ) , t 6 < t ≤ t 7 \mathrm{a(t)=}\begin{cases}\mathrm{Jt,} & \mathrm{0<t\leq t_1} \\ \mathrm{a_{\max}=JT_1,} & \mathrm{t_1<t\leq t_2} \\ \mathrm{a_{\max}-J\left(t-t_2\right),} & \mathrm{t_2<t\leq t_3} \\ \mathrm{0,} & \mathrm{t_3<t\leq t_4} \\ \mathrm{-J\left(t-t_4\right),} & \mathrm{t_4<t\leq t_5} \\ \mathrm{-a_{\max}=-JT_5,} & \mathrm{t_5<t\leq t_6} \\ \mathrm{-a_{\max}}+\mathrm{J\left(t-t_6\right),} & \mathrm{t_6<t\leq t_7} \end{cases} a(t)=⎩ ⎨ ⎧Jt,amax=JT1,amax−J(t−t2),0,−J(t−t4),−amax=−JT5,−amax+J(t−t6),0<t≤t1t1<t≤t2t2<t≤t3t3<t≤t4t4<t≤t5t5<t≤t6t6<t≤t7
上式中, J > 0 J>0 J>0,引入变量 τ \tau τ,令 τ k = t − t k − 1 \tau_k=t-t_{k-1} τk=t−tk−1,上式可写为
a ( t ) = { J τ 1 , 0 < τ 1 ≤ t 1 a max , t 1 < t ≤ t 2 a max − J τ 3 , 0 < t ≤ t 3 − t 2 0 , t 3 < t ≤ t 4 − J τ 5 , 0 < t ≤ t 5 − t 4 − a max , t 5 < t ≤ t 6 − a max + J τ 7 , 0 < t ≤ t 7 − t 6 \mathrm{a(t)=}\begin{cases}\mathrm{J\tau_1,} & \mathrm{0<\tau_1\leq t_1} \\ \mathrm{a_{\max},} & \mathrm{t_1<t\leq t_2} \\ \mathrm{a_{\max}-J\tau_3,} & \mathrm{0<t\leq t_3-t_2} \\ \mathrm{0,} & \mathrm{t_3<t\leq t_4} \\ \mathrm{-J\tau_5,} & \mathrm{0<t\leq t_5-t_4} \\ \mathrm{-a_{\max},} & \mathrm{t_5<t\leq t_6} \\ \mathrm{-a_{\max}}+\mathrm{J\tau_7,} & \mathrm{0<t\leq t_7-t_6} \end{cases} a(t)=⎩ ⎨ ⎧Jτ1,amax,amax−Jτ3,0,−Jτ5,−amax,−amax+Jτ7,0<τ1≤t1t1<t≤t20<t≤t3−t2t3<t≤t40<t≤t5−t4t5<t≤t60<t≤t7−t6
速度时间关系方程
速度和加速度满足 v = a t v=at v=at,加加速度和速度的关系满足 v = 1 2 J t 2 v=\frac{1}{2}Jt^2 v=21Jt2;由匀加速直线运动位移为 x = v 0 t + 1 2 a t 2 x=v_0t+\frac{1}{2}at^2 x=v0t+21at2,类比推导出恒定加加速度的运动,其速度变化为 v = a 0 t + 1 2 J t 2 v=a_0t+\frac{1}{2}Jt^2 v=a0t+21Jt2
速度与时间的关系如下:
KaTeX parse error: Undefined control sequence: \placeholder at position 120: …frac12JT_1^2 & \̲p̲l̲a̲c̲e̲h̲o̲l̲d̲e̲r̲{} \\ & & \pl…
进一步化简得到( v S = 0 v_S=0 vS=0):
v ( t ) = { 1 2 J τ 1 2 0 ≤ t < t 1 J T 1 ( T 1 + 2 τ 2 ) t 1 ≤ t < t 2 J ( T 1 T 2 + 1 2 T 1 2 + T 1 τ 3 − 1 2 τ 3 2 ) t 2 ≤ t < t 3 J T 1 ( T 1 + T 2 ) t 3 ≤ t < t 4 J ( T 1 2 + T 1 T 2 − 1 2 τ 3 2 ) t 4 ≤ t < t 5 J T 1 ( T 2 + 1 2 T 1 − t 6 ) t 5 ≤ t < t 6 J ( T 1 T 2 + 1 2 T 1 2 − T 1 τ 7 + 1 2 τ 7 2 ) t 6 ≤ t < t 7 \left.v\left(t\right)=\left\{\begin{array}{lll}\frac{1}{2}J\tau_1^2 & 0\leq t<t_1 & \\ & & \\ JT_1\left(T_1+2\tau_2\right) & t_1\leq t<t_2 & \\ & & \\ J(T_1T_2+\frac{1}{2}T_1^2+T_1\tau_3-\frac{1}{2}\tau_3^2) & t_2\leq t<t_3 & \\ & & \\ JT_1\left(T_1+T_2\right) & t_3\leq t<t_4 & \\ & & \\ J(T_1^2+T_1T_2-\frac{1}{2}\tau_3^2) & t_4\leq t<t_5 & \\ & \ & \\ JT_1\left(T_2+\frac{1}{2}T_1-t_6\right) & t_5\leq t<t_6 & \\ & & \\ J(T_1T_2+\frac{1}{2}T_1^2-T_1\tau_7+\frac{1}{2}\tau_7^2) & t_6\leq t<t_7 & \end{array}\right.\right. v(t)=⎩ ⎨ ⎧21Jτ12JT1(T1+2τ2)J(T1T2+21T12+T1τ3−21τ32)JT1(T1+T2)J(T12+T1T2−21τ32)JT1(T2+21T1−t6)J(T1T2+21T12−T1τ7+21τ72)0≤t<t1t1≤t<t2t2≤t<t3t3≤t<t4t4≤t<t5 t5≤t<t6t6≤t<t7
位移时间关系方程
位移 S S S和加加速度 J J J直接满足关系 S = ∫ t 1 t 2 1 2 J t 2 d t = 1 6 J t 3 ∣ t 1 t 2 \mathrm{S=\int_{t_1}^{t_2}\frac12Jt^2dt=\frac16Jt^3|_{t_1}^{t_2}} S=∫t1t221Jt2dt=61Jt3∣t1t2
位移方程如下
S ( t ) = { v s τ 1 + J τ 1 3 / 6 0 ≤ t < t 1 S 1 + v 1 τ 2 + J T 1 τ 2 2 / 2 t 1 ≤ t < t 2 S 2 + v 2 τ 3 + J T 1 τ 3 2 / 2 − J τ 3 3 / 6 t 2 ≤ t < t 3 S 3 + v 3 τ 4 t 3 ≤ t < t 4 S 4 + v 4 τ 5 − J τ 3 3 / 6 t 4 ≤ t < t 5 S 8 + v 5 τ 6 − J T 1 τ 6 2 / 2 t 5 ≤ t < t 6 S 6 + v 6 τ 7 − J T 1 τ 7 2 / 2 + J τ 7 3 / 6 t 6 ≤ t < t 7 \left.S\left(t\right)=\left\{\begin{array}{llll}v_s\tau_1+J\tau_1^3/6&0\leq t<t_1\\S_1+v_1\tau_2+JT_1\tau_2^2/2&t_1\leq t<t_2\\S_2+v_2\tau_3+JT_1\tau_3^2/2-J\tau_3^3/6&t_2\leq t<t_3\\S_3+v_3\tau_4&t_3\leq t<t_4\\S_4+v_4\tau_5-J\tau_3^3/6&t_4\leq t<t_5\\S_8+v_5\tau_6-JT_1\tau_6^2/2&t_5\leq t<t_6\\S_6+v_6\tau_7-JT_1\tau_7^2/2+J\tau_7^3/6&t_6\leq t<t_7\end{array}\right.\right. S(t)=⎩ ⎨ ⎧vsτ1+Jτ13/6S1+v1τ2+JT1τ22/2S2+v2τ3+JT1τ32/2−Jτ33/6S3+v3τ4S4+v4τ5−Jτ33/6S8+v5τ6−JT1τ62/2S6+v6τ7−JT1τ72/2+Jτ73/60≤t<t1t1≤t<t2t2≤t<t3t3≤t<t4t4≤t<t5t5≤t<t6t6≤t<t7
程序实现
S曲线规划需要确定三个最基本的系统参数:系统最大速度 v m a x v_{max} vmax,最大加速度 a m a x a_{max} amax,加加速度 J J J,在运行的过程中达到最大速度才是完整的7段S曲线。
- t m = v m a x a m a x t_m=\frac{v_{max}}{a_{max}} tm=amaxvmax,变加速度的每一段时间相同, T 1 = T 3 = T 5 = T 7 = a m a x J = v m a x − v s a m a x T_1=T_3=T_5=T_7=\frac{a_{max}}J=\frac{v_{max}-v_s}{a_{max}} T1=T3=T5=T7=Jamax=amaxvmax−vs;
- 加加速度恒定 J = J 1 = J 3 = J 5 = J 7 = a max t m {J}=\mathrm{J}_1=\mathrm{J}_3=\mathrm{J}_5=\mathrm{J}_7=\frac{\mathrm{a}_{\max}}{\mathrm{t}_{\mathrm{m}}} J=J1=J3=J5=J7=tmamax;
- 匀加速运动时间相等, T 2 = T 6 T_2=T_6 T2=T6;
- 匀速运动时间 T 4 = T f − 2 T 2 − 4 T 4 T_4=T_f-2T_2-4T_4 T4=Tf−2T2−4T4
- T f T_f Tf是用户给定整个运动过程所需要的时间
T k T_k Tk推导
理想状态下假设存在匀加速运动过程,即存在 T 2 T_2 T2和 T 6 T_6 T6
- T 2 = T 6 = v m a x − v s a m a x − T 1 T_2=T_6=\frac{v_{max}-v_s}{a_{max}}-T_1 T2=T6=amaxvmax−vs−T1, v s v_s vs为 t 0 t_0 t0时刻初始速度;
- T 4 = T f − 2 v m a x − v s a m a x − 2 a m a x J \mathrm T_4=\mathrm T_\mathrm{f}-2\frac{v_\mathrm{max}-v_s}{a_\mathrm{max}}-2\frac{\mathrm a_\mathrm{max}}{\mathrm J} T4=Tf−2amaxvmax−vs−2Jamax
J J J推导
利用v-t时间图像计算
位移关系满足: S r e f = S a + S 4 + S d S_{ref}=S_a+S_4+S_d Sref=Sa+S4+Sd,其中 S r e f S_{ref} Sref是总位移, S a S_a Sa为加速区位移, S b S_b Sb为减速区位移。
当 v s = 0 v_s=0 vs=0时,即从静止开始运动,可得:
J = a m a x 2 v m a x v max a max T f − v max 2 − S r e f a max \mathrm J=\frac{\mathrm a_{\mathrm {max}}^2\mathrm v_{\mathrm{max}}}{\mathrm v_{\max}\mathrm a_{\max}\mathrm T_{\mathrm f}-\mathrm v_{\max}^2-\mathrm S_{\mathrm {ref}}\mathrm a_{\max}} J=vmaxamaxTf−vmax2−Srefamaxamax2vmax