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

news2024/9/22 17:24:43

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

    • 一、引言
    • 二、理论基础
      • 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;
        end
    elseif(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.coloradmin.cn/o/1973955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电销外呼系统是如何实现高效触客?

首先我们都有个疑问&#xff1f; 什么是外呼系统&#xff0c;有什么用处 简单来说就是解决打电话高频封号问题&#xff0c;提升销售工作效率&#xff0c;搞笑筛选一线客户 沃创云电销外呼系统通过一系列智能化、自动化的功能和技术手段&#xff0c;实现了高效触客。以下是该系…

MySQL数据库学习笔记

1、数据库的相关概念 数据库是存储数据的仓库,数据是有组织的进行存储 (DataBase)DB. 数据库管理系统:操作和管理数据库的大型软件 DataBase Mangement System(DBMS) SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。 1、Oracle 2、MySQL 3…

LLC数字控制TMS320F28034,3-DSP的timer定时器配置介绍

***配套代码工程*** LLC数字控制TMS320F28034&#xff0c;3-DSP的timer定时器配置介绍 LLC数字控制TMS320F28034&#xff0c;3-DSP的timer定时器配置介绍1 TMS320F280341.1 系统时钟大小1.2 TMS320F28034 芯片系统时钟源介绍 2 时钟库函数说明示例3 TMS320F28034手写定时器功能…

武汉流星汇聚:亚马逊平台消费者众多,助力中国卖家销售额大幅增长

在全球电商的浩瀚星空中&#xff0c;亚马逊凭借其庞大的消费者规模和强大的市场影响力&#xff0c;为无数商家特别是中国卖家提供了前所未有的发展机遇。近年来&#xff0c;越来越多的中国卖家选择通过亚马逊平台&#xff0c;将优质产品直接送达全球消费者的手中&#xff0c;并…

【系统架构设计师】二十三、通信系统架构设计理论与实践②

目录 二、5G 网络边缘计算 三、存储网络架构 四、软件定义网络架构 五、网络构建关键技术 5.1 网络的高可用性 5.2 IPv4 与 IPv6 融合组网技术 六、网络构建和设计方法 6.1 网络需求分析 6.2 网络技术遴选及设计 6.3 层次化网络模型设计 6.4 网络安全控制技术 6.5 …

基于Gromacs的蛋白质与小分子配体相互作用模拟教程

在生命科学的广阔领域中&#xff0c;蛋白质与小分子配体之间的相互作用扮演着至关重要的角色。这些相互作用不仅影响着生物体内的各种生命活动&#xff0c;如信号传导、代谢调控和药物作用等&#xff0c;同时也是药物设计和开发的核心内容。因此&#xff0c;深入理解并模拟这些…

模板进阶【C++】

文章目录 模板的特殊化函数模板特化的作用 函数模板的的特殊化语法&#xff1a;函数模板特化的要求 类模板的特殊化类模板的特殊化的要求类模板的特殊化的语法全特化偏特化实例化部分模板参数对基本类模板&#xff08;母板&#xff09;的模板参数进行限制 非类型模板参数非类型…

ESP32低功耗蓝牙服务端的库介绍和实例演示

ESP32低功耗蓝牙服务端的库介绍和实例演示 1.概述 前面的文章介绍了经典蓝牙库和使用示例&#xff0c;这篇文章介绍低功耗蓝牙库的使用。 这篇文章不介绍低功耗蓝牙实现的架构知识&#xff0c;只介绍 如何使用它的库文件实现应用开发只介绍服务端蓝牙开发方式 2.低功耗蓝牙…

R语言大尺度空间数据分析模拟预测及可视化:地统计与空间自相关、空间数据插值、机器学习空间预测、空间升降尺度、空间模拟残差订正、空间制图等

目录 专题一 R语言空间数据介绍及数据挖掘关键技术 专题二 R语言空间数据高级处理技术 专题三 R语言多维时空数据处理技术、数据清洗整合和时间序列分析 专题四 R语言地统计与空间自相关、空间插值方法 专题五 R语言机器学习与空间模型预测及不确定性评估 专题六 R语言空…

htsjdk库ReferenceSequenceFile接口介绍

ReferenceSequenceFile 是 HTSJDK 库中的一个接口,用于表示参考基因组文件。它定义了读取参考基因组序列的标准方法。这个接口使得不同类型的参考基因组文件(如 FASTA 格式)能够以统一的方式进行访问。 ReferenceSequenceFile 接口主要功能 访问参考序列: 提供获取参考基因…

如何在 Windows/Mac/iPhone/Android 上将 PDF 转换为 Word

PDF&#xff08;便携式文档格式&#xff09;是一种流行的格式&#xff0c;广泛用于在数字电子设备中呈现文档。输出文件小且兼容性强&#xff0c;使 PDF 如此受欢迎。但是&#xff0c;编辑 PDF 文件并非免费。您无需购买 PDF 编辑器&#xff0c;而是可以将 PDF 转换为 Word 进行…

嘉兴网站建设的思路

随着互联网的快速发展&#xff0c;网站已经成为企业宣传和推广的重要工具。作为浙江省的一个重要城市&#xff0c;嘉兴具有得天独厚的地理位置和经济实力&#xff0c;因此开展嘉兴网站建设具有重要意义。在进行网站建设的过程中&#xff0c;需要有一定的思路和规划&#xff0c;…

跑深度学习模型Ⅱ:一文安装正确pytorch及dgl

如果要用到GPU &#xff0c;先看这篇安装并保证cuda可用。跑深度学习模型I&#xff1a;一文正确使用CUDA-CSDN博客 啊每次都是pytorch版本问题引发的一系列错误&#xff01; 1. 查看自己的cuda版本 nvcc --version 可以看到我的cuda版本是11.8 nvidia-smi 查看NVIDIA驱动版…

智能变“智障”?云鲸扫地机器人频发故障引质疑

近年来&#xff0c;扫地机器人市场以其智能化技术革新和不断升级的产品功能&#xff0c;成功吸引了消费者的目光&#xff0c;甚至打破了家电行业的价格僵局&#xff0c;实现了价格与价值的双重攀升。然而&#xff0c;在这股智能家电的浪潮中&#xff0c;云鲸扫地机器人却因其频…

【C++从小白到大牛】栈和队列(优先级队列)

目录 引言&#xff1a; 使用方法篇&#xff1a; stack&#xff1a; queue priority_queue 使用方法&#xff1a; 模拟实现篇&#xff1a; stack&#xff1a; 原码&#xff1a; queue 原码&#xff1a; priority_queue 插入和删除数据的思想&#xff1a; 仿函数实…

TDEngine(taos) 涛思数据库-sql初识

一、基本使用 这里读者自行安装数据库&#xff1a;使用安装包立即开始 | TDengine 文档 | 涛思数据 (taosdata.com) // 下载gz文件&#xff0c;解压 tar -zxvf TDengine-server-<对应版本>-Linux-x64.tar.gz// 解压后启动 sudo ./install.sh 启动成功后&#xff0c;直…

动态规划之子数组系列问题

题型介绍 子数组系列动态规划问题长什么样 例题 力扣 53. 最大子数组和 解题步骤&#xff1a; 创建 dp 表以及确定 dp 表中所要填写位置的含义&#xff1a; 首先&#xff0c;根据写题经验&#xff0c;先确定出这道题应该使用的解题思路是 “以某一个位置为结尾进行分析”…

【编码心得】单元测试的那些事

【编码心得】单元测试的那些事 文章目录 单元测试定义&#xff1f;为什么需要单元测试&#xff1f;为重构保驾护航提高代码质量减少 bug快速定位 bug持续集成依赖单元测试团队编码规范要求大牛都写单元测试保住面子 TDD 测试驱动开发何谓 TDD&#xff1f;TDD的基本流程TDD 优缺…

全球轻型汽车市场规划预测:2030年市场规模将接近2502亿元,未来六年CAGR为2.8%

一、引言 随着全球经济的发展和消费者出行需求的增加&#xff0c;轻型汽车作为汽车市场中的重要组成部分&#xff0c;其市场重要性日益凸显。本文旨在探索轻型汽车行业的发展趋势、潜在商机及其未来展望。 二、市场趋势 全球轻型汽车市场的增长主要受全球经济发展、消费者对出…

海风小店微信商城小程序附后端一款免费开源的小程序源码

该商城小程序服务端api基于node.jsThinkJSMySQL&#xff0c;如果对这个不大熟悉的人&#xff0c; 可能有那么一点难度&#xff0c;但是如果只是搭建的话&#xff0c;作者的教程还是比较详细的&#xff0c;而且搭建步骤比较简单&#xff0c; 应该很容易上手&#xff0c;如果你…