速度曲线规划之S形曲线

本文聚焦速度曲线规划中的S形曲线,对比了T形曲线和7段S曲线。阐述S形曲线特征及优势,进行理论分析,给出加速度、速度、位移与时间的关系方程。还介绍程序实现,需确定系统最大速度、最大加速度、加加速度三个参数,并给出Tk和J的推导过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

速度曲线规划之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<tt1
  • 匀加速( 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<tt2
  • 减加速( T 3 T_3 T3):a逐渐减小,此时 a = a m a x − J ( t − t 2 ) a=a_{max}-J(t-t_2) a=amaxJ(tt2) t 2 < t ≤ t 3 t_2<t≤t_3 t2<tt3
  • 匀速( T 4 T_4 T4):a保持不变,此时 a = 0 a=0 a=0 t 3 < t ≤ t 4 t_3<t≤t_4 t3<tt4
  • 加减速( T 5 T_5 T5): ∣ a ∣ |a| a逐渐增大,此时 a = − J ( t − t 4 ) a=-J(t-t_4) a=J(tt4),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<tt6
  • 减减速( 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(tt6) t 6 < t ≤ t 7 t_6<t≤t_7 t6<tt7

其中 ∣ 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=tktk1,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,amaxJ(tt2),0,J(tt4),amax=JT5,amax+J(tt6),0<tt1t1<tt2t2<tt3t3<tt4t4<tt5t5<tt6t6<tt7

上式中, J > 0 J>0 J>0,引入变量 τ \tau τ,令 τ k = t − t k − 1 \tau_k=t-t_{k-1} τk=ttk1,上式可写为

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,amaxJτ3,0,Jτ5,amax,amax+Jτ7,0<τ1t1t1<tt20<tt3t2t3<tt40<tt5t4t5<tt60<tt7t6

速度时间关系方程

速度和加速度满足 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τ321τ32)JT1(T1+T2)J(T12+T1T221τ32)JT1(T2+21T1t6)J(T1T2+21T12T1τ7+21τ72)0t<t1t1t<t2t2t<t3t3t<t4t4t<t5 t5t<t6t6t<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=61Jt3t1t2

位移方程如下

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/2Jτ33/6S3+v3τ4S4+v4τ5Jτ33/6S8+v5τ6JT1τ62/2S6+v6τ7JT1τ72/2+Jτ73/60t<t1t1t<t2t2t<t3t3t<t4t4t<t5t5t<t6t6t<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=amaxvmaxvs
  • 加加速度恒定 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=Tf2T24T4
  • 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=amaxvmaxvsT1 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=Tf2amaxvmaxvs2Jamax

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=vmaxamaxTfvmax2Srefamaxamax2vmax

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值