速度规划之:起点速度和终点速度不为零的非对称梯形速度规划

起点速度和终点速度不为零的非对称梯形速度规划

    • 一、引言
    • 二、理论基础
      • 1. 梯形速度规划概述
      • 2.数学建模
        • - 变量定义
        • - 约束关系
        • - 公式推导
    • 三、计算过程
      • 1.只存在减速段
      • 2.只存在加速段
      • 3.存在加速段和减速段
      • 4.存在加速度段、匀速段和减速段
    • 四、仿真实现
    • 五、优缺点
      • 优点
      • 缺点
    • 六、总结

一、引言

在工业自动化和控制系统设计中,速度规划是确保运动平滑、高效和精确的关键环节。梯形速度规划作为一种简单而常用的速度控制策略,广泛应用于各类伺服系统和控制系统中。然而,传统的梯形速度规划通常假设初速度和末速度为零,且加速和减速过程对称。在实际应用中,往往需要处理起点速度和终点速度不为零,且加速与减速过程非对称的情况,因此起点速度和终点速度不为零且加速与减速过程非对称的梯形速度规划更为通用。

二、理论基础

1. 梯形速度规划概述

梯形速度规划是一种分段的速度控制策略,如图所示,包括加速、匀速和减速三个阶段。在非对称情况下,加速和减速阶段的加速度、时间长度以及最大速度可能不同。
在这里插入图片描述

2.数学建模

- 变量定义
  • v s v_s vs:初速度
  • v m a x v_{max} vmax:匀速阶段速度(最大速度限制)
  • t t t: 时刻
  • t 1 t_1 t1: 加速结束时间点
  • t 2 t_2 t2: 匀速结束时间点
  • t a l l t_{all} tall:总时间
  • a a a: 加速阶段加速度
  • d d d: 减速阶段加速度
  • S a S_a Sa : 加速阶段路程
  • S v S_v Sv: 匀速阶段路程
  • S d S_d Sd: 减速阶段路程
  • S S S : 总路程
- 约束关系
  • 运动过程中速度不能超过 v m a x v_{max} vmax即:
    { v ( t ) ≤ v m a x v s ≤ v m a x v e ≤ v m a x \begin{cases} v(t) ≤ v_{max} \\ v_s ≤ v_{max} \\ v_e ≤ v_{max} \end{cases} v(t)vmaxvsvmaxvevmax
  • 运动过程中加速度不能超过 a a a,减速度不能超过 d d d
    { a ( t ) ≤ a , 加速时间段 f a b s ( a ( t ) ) ≤ f a b s ( d ) , 减速时间段 \begin{cases} a(t) ≤ a,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad 加速时间段 \\ fabs(a(t)) ≤ fabs(d),\quad\quad\quad\quad\ \ 减速时间段 \end{cases} {a(t)a,加速时间段fabs(a(t))fabs(d),  减速时间段
- 公式推导
  • 位移表达式
    S ( t ) = { v s t + 1 2 a t 2 , 0 ≤ t < t 1 S a + v m a x ( t − t 1 ) , t 1 ≤ t < t 2 S a + S v + v m a x ( t − t 2 ) − 1 2 d ( t − t 2 ) 2 , t 2 ≤ t < t a l l S(t)= \begin{cases} v_st + \frac{1}{2}at^2,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad0≤t<t_1 \\ S_a + v_{max}(t - t_1),\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad t_1≤t<t_2 \\ S_a + S_v + v_{max}(t-t_2) - \frac{1}{2}d(t-t_2)^2,\quad\ \ t_2≤t<t_{all} \end{cases} S(t)= vst+21at2,0t<t1Sa+vmax(tt1),t1t<t2Sa+Sv+vmax(tt2)21d(tt2)2,  t2t<tall
    其中, t t t表示整个规划过程的时刻, v s v_s vs表示起始速度, S a 和 S v S_a 和 S_v SaSv分别表示加速距离和匀速运动距离, a a a d d d分别表示减速度和减速度。

  • 速度表达式
    v ( t ) = { v s + a t , 0 ≤ t < t 1 v m a x , t 1 ≤ t < t 2 v m a x − d ( t − t 2 ) , t 2 ≤ t < t a l l v(t)= \begin{cases} v_s + at,\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ v_{max},\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ v_{max} - d(t-t_2),\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} v(t)= vs+at, 0t<t1vmax, t1t<t2vmaxd(tt2), t2t<tall
    t = t a l l t = t_{all} t=tall时, v e = v m a x − d ( t a l l − t 2 ) v_e = v_{max} - d(t_{all}-t_2) ve=vmaxd(tallt2)

  • 加速度表达式
    a ( t ) = { a , 0 ≤ t < t 1 0 , t 1 ≤ t < t 2 d , t 2 ≤ t < t a l l a(t)= \begin{cases} a,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ d,\quad\quad\quad\quad\quad\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} a(t)= a, 0t<t10, t1t<t2d, t2t<tall
    其中,位置、速度和加速度满足关系
    { v ( t ) = S ′ ( t ) a ( t ) = v ′ ( t ) = S ′ ′ ( t ) \begin{cases} v(t) = S'(t) \\ a(t) = v'(t) = S''(t) \end{cases} {v(t)=S(t)a(t)=v(t)=S′′(t)
    即速度是位置的一阶导数,加速度是速度的一阶导数,位置的二阶导数。

三、计算过程

在实际的规划过程中,由于距离和起止速度的关系,整个速度变化过程很难像想象中那种先加速、再匀速再减速走完全程。这是我们需要在满足约束的条件下,根据一些临界条件来判断规划过程可能存在的速度段。
具体的流程如图所示:
在这里插入图片描述
存在4种阶段:

  • 注意:当起点速度等于终点速度( V s = V e V_s = V_e Vs=Ve)时,可以考虑直接进入是否存在匀速段的判断

1.只存在减速段

当起点速度大于终点速度( V s > V e V_s > V_e Vs>Ve)时,先计算以减速度 d d d直接从起点速度 V s V_s Vs减速到终点速度 V e V_e Ve所需的减速距离 S d S_d Sd:
S d = ( V s 2 − V e 2 ) 2 d S_d = \frac{(V_s^2- V_e^2)}{2d} Sd=2d(Vs2Ve2)
减速距离 S d S_d Sd和规划路径总长度 S S S比较,
如果:
S d ≤ S S_d ≤S SdS
说明在路径总长度 S S S范围内,不足于或者刚好以减速度 d d d直接从起点速度 V s V_s Vs减速到终点速度 V e V_e Ve,则规划过程只存在减速段,为了保证安全,一般情况下选择重算起点速度 V s ′ V'_s Vs
V s ′ = 2 d S + V e 2 V'_s = \sqrt{2dS + V_e^2} Vs=2dS+Ve2
此时:
S ( t ) = { 0 , 0 ≤ t < t 1 0 , t 1 ≤ t < t 2 v s ′ t − 1 2 d ( t ) 2 , t 2 ≤ t < t a l l S(t)= \begin{cases} 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad0≤t<t_1 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad t_1≤t<t_2 \\ v'_st - \frac{1}{2}d(t)^2,\quad\quad\quad\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} S(t)= 0,0t<t10,t1t<t2vst21d(t)2, t2t<tall
v ( t ) = { v s ′ , 0 ≤ t < t 1 v s ′ , t 1 ≤ t < t 2 v s ′ − d t , t 2 ≤ t < t a l l v(t)= \begin{cases} v'_s,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ v'_s,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ v'_s - dt,\quad\quad\quad\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} v(t)= vs, 0t<t1vs, t1t<t2vsdt, t2t<tall
a ( t ) = { 0 , 0 ≤ t < t 1 0 , t 1 ≤ t < t 2 d , t 2 ≤ t < t a l l a(t)= \begin{cases} 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ d,\quad\quad\quad\quad\quad\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} a(t)= 0, 0t<t10, t1t<t2d, t2t<tall
其中:
{ t 1 = t 2 = 0 t a l l = ( v s ′ − v e ) d \begin{cases} t_1 = t_2 = 0 \\ t_{all} =\frac{ (v'_s - v_e)}{d} \end{cases} {t1=t2=0tall=d(vsve)
相反。如果:
S d > S S_d >S Sd>S
则至少存在加速段和减速段,需要进一步判断是否存在匀速段。

2.只存在加速段

当起点速度小于终点速度( V s < V e V_s < V_e Vs<Ve)时,先计算以加减速度 a a a直接从起点速度 V s V_s Vs加速到终点速度 V e V_e Ve所需的加速距离 S a S_a Sa:
S a = ( V e 2 − V a 2 ) 2 a S_a = \frac{(V_e^2- V_a^2)}{2a} Sa=2a(Ve2Va2)
加速距离 S a S_a Sa和规划路径总长度 S S S比较,
如果:
S a ≤ S S_a ≤S SaS
说明在路径总长度 S S S范围内,不足于或者刚好以加速度 d d d直接从起点速度 V s V_s Vs加速到终点速度 V e V_e Ve,则规划过程只存在加速段,为了保证安全,一般情况下选择重算终点速度$V’_e:
V e ′ = 2 a S + V a 2 V'_e = \sqrt{2aS + V_a^2} Ve=2aS+Va2
此时:
S ( t ) = { v s ′ t − 1 2 d ( t ) 2 0 ≤ t < t 1 0 , t 1 ≤ t < t 2 0 , t 2 ≤ t < t a l l S(t)= \begin{cases} v'_st - \frac{1}{2}d(t)^2\quad\quad\quad\quad\quad\quad 0≤t<t_1 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad t_1≤t<t_2 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad t_2≤t<t_{all} \end{cases} S(t)= vst21d(t)20t<t10,t1t<t20,t2t<tall
v ( t ) = { v s + d t , 0 ≤ t < t 1 v e ′ , t 1 ≤ t < t 2 v e ′ , t 2 ≤ t < t a l l v(t)= \begin{cases} v_s + dt,\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ v'_e,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ v'_e,\quad\quad\quad\quad\quad\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} v(t)= vs+dt, 0t<t1ve, t1t<t2ve, t2t<tall
a ( t ) = { a , 0 ≤ t < t 1 0 , t 1 ≤ t < t 2 0 , t 2 ≤ t < t a l l a(t)= \begin{cases} a,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} a(t)= a, 0t<t10, t1t<t20, t2t<tall
其中:
{ t 1 = ( v e ′ − v s ) a t 2 = t 1 + 0 = t 1 t a l l = t 2 + 0 = t 1 \begin{cases} t_1 = \frac{ (v'_e - v_s)}{a} \\ t_2 = t_1 + 0 = t_1\\ t_{all} = t_2 + 0 = t_1 \end{cases} t1=a(vevs)t2=t1+0=t1tall=t2+0=t1
相反。如果:
S a > S S_a >S Sa>S
则至少存在加速段和减速段,需要进一步判断是否存在匀速段。

3.存在加速段和减速段

在确认存在加速段和减速段,可以计算起点速度 V s V_s Vs加速到最大速度 V m a x V_{max} Vmax再直接减速到终点速度 V e V_e Ve的距离,即加速到最大速度 V m a x V_{max} Vmax所需的最短距离 S m i n S_{min} Smin:
S m i n = S a + S d = ( V m a x 2 − V a 2 ) 2 a + ( V m a x 2 − V d 2 ) 2 d S_{min} = Sa + Sd =\frac{ (V_{max}^2- V_a^2)}{2a} + \frac{ (V_{max}^2- V_d^2)}{2d} Smin=Sa+Sd=2a(Vmax2Va2)+2d(Vmax2Vd2)
最短距离 S m i n S_{min} Smin和规划路径总长度 S S S比较,
如果:
S m i n ≤ S S_{min} ≤S SminS
说明在路径总长度 S S S范围内,不足于或者刚好以加速度 a a a从起点速度 V s V_s Vs加速最大速度 V m a x V_{max} Vmax再以减速度 d d d减速到终点速度 V e V_e Ve,则规划过程不存在匀速段,需最短距离 S m i n S_{min} Smin重算最大速度 V m a x ′ V'_{max} Vmax
V m a x ′ = 2 a d S m i n + V a 2 d + V d 2 a a + d V'_{max} = \frac{2adS_{min} + V_a^2d + V_d^2a}{a+d} Vmax=a+d2adSmin+Va2d+Vd2a
此时:
S ( t ) = { v s t + 1 2 a t 2 , 0 ≤ t < t 1 S a + v m a x ′ ( t − t 1 ) , t 1 ≤ t < t 2 S a + S v + v m a x ′ ( t − t 2 ) − 1 2 d ( t − t 2 ) 2 , t 2 ≤ t < t a l l S(t)= \begin{cases} v_st + \frac{1}{2}at^2,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad0≤t<t_1 \\ S_a + v'_{max}(t - t_1),\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad t_1≤t<t_2 \\ S_a + S_v + v'_{max}(t-t_2) - \frac{1}{2}d(t-t_2)^2,\quad\ \ t_2≤t<t_{all} \end{cases} S(t)= vst+21at2,0t<t1Sa+vmax(tt1),t1t<t2Sa+Sv+vmax(tt2)21d(tt2)2,  t2t<tall
v ( t ) = { v s + a t , 0 ≤ t < t 1 v m a x ′ , t 1 ≤ t < t 2 v m a x ′ − d ( t − t 2 ) , t 2 ≤ t < t a l l v(t)= \begin{cases} v_s + at,\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ v'_{max},\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ v'_{max} - d(t-t_2),\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} v(t)= vs+at, 0t<t1vmax, t1t<t2vmaxd(tt2), t2t<tall
a ( t ) = { a , 0 ≤ t < t 1 0 , t 1 ≤ t < t 2 d , t 2 ≤ t < t a l l a(t)= \begin{cases} a,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ d,\quad\quad\quad\quad\quad\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} a(t)= a, 0t<t10, t1t<t2d, t2t<tall
其中:
{ t 1 = ( v m a x ′ − v s ) a t 2 = t 1 + 0 = t 1 t a l l = t 2 + ( v m a x ′ − v e ) d \begin{cases} t_1 = \frac{ (v'_{max} - v_s)}{a} \\ t_2 = t_1 + 0 = t_1\\ t_{all} = t_2 + \frac{ (v'_{max} - v_e)}{d} \end{cases} t1=a(vmaxvs)t2=t1+0=t1tall=t2+d(vmaxve)
相反。如果:
S m i n > S S_{min} >S Smin>S
则说明路径规划过程中存在加速段、匀速段和减速段。

4.存在加速度段、匀速段和减速段

在完整的加速度段、匀速段和减速段三段都存在的情况下,最大速度 V m a x V_{max} Vmax可达。此时:
S ( t ) = { v s t + 1 2 a t 2 , 0 ≤ t < t 1 S a + v m a x ′ ( t − t 1 ) , t 1 ≤ t < t 2 S a + S v + v m a x ′ ( t − t 2 ) − 1 2 d ( t − t 2 ) 2 , t 2 ≤ t < t a l l S(t)= \begin{cases} v_st + \frac{1}{2}at^2,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad0≤t<t_1 \\ S_a + v'_{max}(t - t_1),\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad t_1≤t<t_2 \\ S_a + S_v + v'_{max}(t-t_2) - \frac{1}{2}d(t-t_2)^2,\quad\ \ t_2≤t<t_{all} \end{cases} S(t)= vst+21at2,0t<t1Sa+vmax(tt1),t1t<t2Sa+Sv+vmax(tt2)21d(tt2)2,  t2t<tall
v ( t ) = { v s + a t , 0 ≤ t < t 1 v m a x ′ , t 1 ≤ t < t 2 v m a x ′ − d ( t − t 2 ) , t 2 ≤ t < t a l l v(t)= \begin{cases} v_s + at,\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ v'_{max},\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ v'_{max} - d(t-t_2),\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} v(t)= vs+at, 0t<t1vmax, t1t<t2vmaxd(tt2), t2t<tall
a ( t ) = { a , 0 ≤ t < t 1 0 , t 1 ≤ t < t 2 d , t 2 ≤ t < t a l l a(t)= \begin{cases} a,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ 0≤t<t_1 \\ 0,\quad\quad\quad\quad\quad\quad\quad\quad\quad \ t_1≤t<t_2 \\ d,\quad\quad\quad\quad\quad\quad\quad\quad\quad\ t_2≤t<t_{all} \end{cases} a(t)= a, 0t<t10, t1t<t2d, t2t<tall
各个时刻计算,首先可以计算出加速距离和加速时间:
{ S a = ( v m a x 2 − v a 2 ) 2 a T a = ( v m a x − v a ) a \begin{cases} S_a = \frac{ (v_{max}^2 - v_a^2)}{2a} \\ T_a = \frac{ (v_{max} - v_a)}{a} \end{cases} {Sa=2a(vmax2va2)Ta=a(vmaxva)
减速距离和减速时间:
{ S e = ( v m a x 2 − v e 2 ) 2 d T e = ( v m a x − v e ) d \begin{cases} S_e = \frac{ (v_{max}^2 - v_e^2)}{2d} \\ T_e = \frac{ (v_{max} - v_e)}{d} \end{cases} {Se=2d(vmax2ve2)Te=d(vmaxve)
则匀速距离和匀速时间可求:
{ S v = S − S a − S e T v = S v v m a x \begin{cases} S_v = S - S_a - S_e \\ T_v = \frac{ S_v}{v_{max}} \end{cases} {Sv=SSaSeTv=vmaxSv
最终时刻为:
{ t 1 = T a = ( v m a x − v a ) a t 2 = t 1 + T v t a l l = t 2 + T e = t 2 + ( v m a x ′ − v e ) d \begin{cases} t_1 = T_a = \frac{ (v_{max} - v_a)}{a} \\ t_2 = t_1 + T_v \\ t_{all} = t_2 + T_e = t_2 + \frac{ (v'_{max} - v_e)}{d} \end{cases} t1=Ta=a(vmaxva)t2=t1+Tvtall=t2+Te=t2+d(vmaxve)

四、仿真实现

用matlab编写梯形速度规划函数,定义系统参数:路径长度、起点速度、终点速度、加速度、减速度等,输入到规划函数中,输出距离、速度和加速度随时间变化的曲线数据,关键参数计算代码如下:

    if(vs>ve)sd = (vs^2 - ve^2)/(2.0*d);if(sd >= S)vs = sqrt((2.0*d*S + ve^2));t1 = 0;t2 = t1 + 0;tall = t2 + (vs-ve)/(1.0*d);break;endelseif(vs<ve)se = (ve^2 - vs^2)/(2.0*a);if(se >= S)ve = sqrt((2.0*a*S + vs^2));t1 = (ve-vs)/(1.0*a);t2 = t1 + 0;tall =  t2 + 0;break;end end% 最大速度可达性判断smin = (vmax^2 - ve^2)/(2.0*d) + (vmax^2 - vs^2)/(2.0*a);if(smin >= S)%只存在加速段和减速段vmax = sqrt((2.0*a*d*S + vs^2*d + ve^2*a)/(a + d));t1 = (vmax-vs)/(1.0*a);t2 = t1 + 0;tall = t2 + (vmax-ve)/(1.0*d);else%存在加速段、匀速段和减速段t1 = (vmax-vs)/(1.0*a);t2 = t1 + (S - (vmax^2 - vs^2)/(2.0*a) - (vmax^2 - ve^2)/(2.0*d))/(1.0*vmax);tall = t2 + (vmax-ve)/(1.0*d);end

如下所示,分别是四种情况下对应的参数和规划结果:

  • 只存在加速段
    输入参数:
%参数
s_i = 3;    %路径长度
v_s = 10;    %起点速度
v_e = 20;    %终点速度
a = 50;      %加速度
d = 40;      %减速度
vmax = 30;	 %最大速度
t_step = 0.0001;    %规划步长
% 调用梯形速度规划接口
[S,V,A,T] = VelocityPlanner_Trap(s_i,v_s,v_e,a,d,vmax,t_step);

仿真结果:
在这里插入图片描述

  • 只存在减速段
    输入参数:
%参数
s_i = 3;    %路径长度
v_s = 20;    %起点速度
v_e = 10;    %终点速度
a = 50;      %加速度
d = 40;      %减速度
vmax = 30;	 %最大速度
t_step = 0.0001;    %规划步长
% 调用梯形速度规划接口
[S,V,A,T] = VelocityPlanner_Trap(s_i,v_s,v_e,a,d,vmax,t_step);

仿真结果:
在这里插入图片描述

  • 存在加速段和减速段
    输入参数:
%参数
s_i = 10;    %路径长度
v_s = 20;    %起点速度
v_e = 10;    %终点速度
a = 50;      %加速度
d = 40;      %减速度
vmax = 30;	 %最大速度
t_step = 0.0001;    %规划步长
% 调用梯形速度规划接口
[S,V,A,T] = VelocityPlanner_Trap(s_i,v_s,v_e,a,d,vmax,t_step);

仿真结果:
在这里插入图片描述

  • 存在加速段、匀速段和减速段
    输入参数:
%参数
s_i = 50;    %路径长度
v_s = 20;    %起点速度
v_e = 10;    %终点速度
a = 50;      %加速度
d = 40;      %减速度
vmax = 30;	 %最大速度
t_step = 0.0001;    %规划步长
% 调用梯形速度规划接口
[S,V,A,T] = VelocityPlanner_Trap(s_i,v_s,v_e,a,d,vmax,t_step);

仿真结果:
在这里插入图片描述

五、优缺点

优点

  • 规划时间短:在所有速度规划算法中,梯形速度规划通常具有最短的规划时间。这是因为梯形速度规划采用了直接且简单的加速度和减速度变化,使得整个运动过程能够在最短的时间内完成。
  • 算法简单、计算量小:梯形速度规划的算法相对简单,计算量较小,这使得它在实时性要求较高的场合下具有较大的优势。例如,在工业自动化、机器人控制等领域,梯形速度规划能够迅速响应指令,完成复杂的运动任务。
  • 速度、加速度可控:在梯形速度规划中,速度和加速度是可以根据需要进行精确控制的。这意味着在规划过程中,可以根据实际情况调整加速度和减速度的大小,以满足不同的运动需求。
  • 位置平滑:梯形速度规划能够确保位置曲线的平滑性,即在整个运动过程中,物体的位置变化是连续的,没有突变现象。这有助于减少运动过程中的震动和冲击,提高运动的稳定性和可靠性。

缺点

  • 加速度跳变:梯形速度规划的加速度在加速和减速阶段存在跳变现象,即加速度的值在瞬间发生较大变化。这种加速度的跳变可能会对受控对象产生冲击,影响其使用寿命和性能。
  • 更高阶导数不可控:在梯形速度规划中,虽然速度和加速度可以进行控制,但更高阶的导数(如加加速度)通常是不可控的。这可能导致在运动过程中产生一些不可预测的动态响应,影响运动的精度和稳定性。
  • 控制效果较差:由于梯形速度规划存在速度不平滑、加速度跳变等问题,其控制效果相对较差。在需要高速运动或者复杂运动的情形下可能不具体适应性。
  • 不适用于高速运动:梯形加减速算法在高速运动时,加速和减速时间会变得很短,导致机械系统的冲击和震动加剧,难以实现平滑的运动控制。
  • 不适用于复杂运动:梯形加减速算法只适用于直线运动或简单曲线运动,对于复杂的路径规划,需要使用更加复杂的运动规划算法。

六、总结

非对称S形速度规划是一种有效的速度规划方法,可以在数控机床、自动化生产线设备、机器人运动控制作为基础路径配速算法,实现简单的、速度连续的速度控制,j基本保证运动过程中平稳性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/393709.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊等跨境电商平台怎么找到好的测评资源?

如何找到好的测评资源呢&#xff1f; 目前常规卖家找测评资源主要通过以下途径&#xff1a; 联系自己在海外的亲友帮忙测评&#xff0c;不过海外的亲友会比较有限安排业务员在facebook等社交平台找老外测评&#xff0c;但社交平台找老外很难掌控留评时效&#xff0c;甚至会遇…

破解USB设备通讯协议实现自定义软件控制的步骤与方法

在设备和计算机之间通过USB进行通讯的情况下&#xff0c;厂家提供的软件可以控制设备&#xff0c;但没有提供任何其他资料和支持&#xff0c;这种情况下&#xff0c;若希望自行开发软件来实现同样的功能&#xff0c;可以通过以下步骤破解通讯协议并开发自定义程序。 1. 捕获US…

2-57 基于matlab 实现了气缸的充气和放气的仿真

基于matlab 实现了气缸的充气和放气的仿真&#xff0c;在等温情况和绝热两种情况下分别进行了仿真&#xff0c;并给多变过程下的理论计算公式。程序已调通&#xff0c;可直接运行。 2-57 matlab 气缸充气和放气仿真 - 小红书 (xiaohongshu.com)

【论文阅读】PETRv2: A Unified Framework for 3D Perception from Multi-Camera Images

Q: 论文如何解决这个问题&#xff1f; A: 论文通过提出PETRv2框架来解决多相机图像的3D感知问题&#xff0c;具体方法包括以下几个关键点&#xff1a; 时间建模&#xff08;Temporal Modeling&#xff09;&#xff1a; 通过3D坐标对齐&#xff08;3D Coordinates Alignment&…

ASP.Net Core设置接口根路径的方法

使用asp.net core开发微服务项目&#xff0c;需要给每个服务设置不同的根路径&#xff0c;这样既能使用网关转发请求&#xff0c;又方便对单个服务进行测试&#xff0c;保证请求路径的统一。 设置方法需要使用中间件&#xff0c;在Program.cs添加如下代码 app.UsePathBase(&qu…

通过ZRender画一个大屏的顶部样式标题

介绍&#xff1a;通过ZRender画一个大屏项目的顶部样式&#xff0c;在其中放入大屏的标题。ZRender 是二维绘图引擎&#xff0c;它提供 Canvas、SVG、VML 等多种渲染方式。ZRender 也是 ECharts 的渲染器。 一、下载 npm install zrender终端输入以上命令下载包即可。 二、导…

记忆化搜索——1

目录 1.斐波那契数 2.不同路径 3.最长递增子序列 4.猜数字大小2 5.矩阵中的最长递增路径 1.斐波那契数 该题规律很明显&#xff0c;就直接放记忆化搜索的版本了 class Solution { public:int dfs(int n){if(n0||n1)//递归出口{return n;}if(f[n-1]-1)//检查是否已经记忆过…

JVM 加载阶段 Class对象加载位置是在 堆中还是方法区?

在JVM&#xff08;Java虚拟机&#xff09;的类加载过程中&#xff0c;Class对象的加载位置涉及到堆&#xff08;Heap&#xff09;和方法区&#xff08;Method Area&#xff09;两个关键区域。具体来说&#xff0c;类的加载阶段涉及到将类的.class文件中的二进制数据读入到内存中…

黑丝或者白丝,都可以用LoRA(Stable Diffusion进阶篇:ComfyUI 附加网络)

前言 在学习WebUI的那些基础知识点的时候&#xff0c;有一个东西是每一个初学者都绕不开的大山-附加网络。 这个东西对于每一个接触Stable Diffusion的小伙伴来说就像是小学门口小卖部卖的辣条、初中课本上的涂鸦、高中数学卷解不开的最后一道大题。 学习过WebUI里Stable Di…

揭秘亚马逊新手快速成长背后的秘密:从入门到精通

在亚马逊这个充满机遇与挑战的市场平台上&#xff0c;作为一名深耕多年的卖家&#xff0c;我积累了宝贵的经验和见解。随着市场环境的不断变化&#xff0c;我意识到&#xff0c;无论是新加入的创业者还是经验丰富的老手&#xff0c;都需要不断学习和适应&#xff0c;以在这个平…

游戏行业报告(一)| 中国占全球头部上市游戏企业34%,“智能NPC”竞争方向较受关注

近日&#xff0c;伽马数据发布了《2024中国上市/非上市游戏企业竞争力报告》&#xff0c;本篇文章仅采用《2024中国上市/非上市游戏企业竞争力报告》的部分数据。由于文章太长&#xff0c;所以分了下集&#xff0c;大家可以收藏关注~ 企业全球资本市场竞争现状 全球TOP50上市游…

Motionface ai工具有哪些?

Motionface Android/PC 用一张静态含有人脸相片来生成一个能说会唱的虚拟主播。使用简单便捷&#xff0c;极致的流畅度体验超乎您的想象。 免费下载 Respeak PC电脑软件 任意视频一键生成虚拟主播&#xff0c;匹配音频嘴型同步&#xff0c;保留原视频人物神态和动作&#xff0c…

什么是柔性生产?

柔性生产&#xff0c;是一种能够迅速调整生产流程、产品种类及产量&#xff0c;以低成本、高效率响应市场多样化需求的生产方式。它不仅仅是对生产线硬件的升级&#xff0c;更是对生产组织、管理模式及信息技术的全面革新。柔性生产的核心在于“灵活”二字&#xff0c;即企业能…

JVM(面试用)

目录 一、JVM运行时数据区 二、JVM类加载 类加载过程 1、加载&#xff08;loading&#xff09; 2、验证&#xff08;Verification&#xff09; 3、准备&#xff08;Perparation&#xff09; 4、解析&#xff08;Resolution&#xff09; 5、初始化&#xff08;Initializ…

秒懂C++之deque及反向迭代器

目录 前言 一.deque的常用接口 二.deque的原理 2.1 vector与list的优缺点 2.2 deque的原理 三.反向迭代器 四.全部代码 前言 秒懂C之List-CSDN博客 秒懂C之vector&#xff08;下&#xff09;-CSDN博客 本文后面关于反向迭代器的操作会涉及到前面的文章~ 一.deque的常用接…

uni-app封装组件实现下方滑动弹出模态框

子组件 <template><div class"bottom-modal" :class"{show: showModal}"><div class"modal-content" :class"{show: showModal}"><!-- 内容区域 --><slot></slot></div></div></…

【JAVA多线程】AQS,JAVA并发包的核心

目录 1.概述 1.1.什么是AQS 1.2.AQS和BlockQueue的区别 1.3.AQS的结构 2.源码分析 2.1.CLH队列 2.2.模板方法的实现 2.2.1.独占模式 1.获取资源 2.释放资源 2.2.2.共享模式 1.概述 1.1.什么是AQS AQS非常非常重要&#xff0c;可以说是JAVA并发包&#xff08;java.…

案例开发-日程管理2第一期(超详细教程、配备图文和源代码注释,没学过也能看懂)

文章目录 一、 项目前期准备1.数据库准备2.导入依赖3.pojo包处理4.dao包处理5.service包处理6.controller包处理7.加密工具类的使用8.页面文件的导入 总结 一、 项目前期准备 1.数据库准备 创建schedule_system数据库并执行如下语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHE…

WPF学习(4)- VirtualizingStackPanel (虚拟化元素)+Canvas控件(绝对布局)

VirtualizingStackPanel虚拟化元素 VirtualizingStackPanel 类&#xff08;虚拟化元素&#xff09;和StackPanel 类在用法上几乎差不多。其作用是在水平或垂直的一行中排列并显示内容。它继承于一个叫VirtualizingPanel的抽象类&#xff0c;而这个VirtualizingPanel抽象类继承…

大数据-68 Kafka 高级特性 物理存储 日志存储概述

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…