起点速度和终点速度不为零的非对称梯形速度规划
- 一、引言
- 二、理论基础
- 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)≤vmaxvs≤vmaxve≤vmax - 运动过程中加速度不能超过
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,0≤t<t1Sa+vmax(t−t1),t1≤t<t2Sa+Sv+vmax(t−t2)−21d(t−t2)2, t2≤t<tall
其中, t t t表示整个规划过程的时刻, v s v_s vs表示起始速度, S a 和 S v S_a 和 S_v Sa和Sv分别表示加速距离和匀速运动距离, 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, 0≤t<t1vmax, t1≤t<t2vmax−d(t−t2), t2≤t<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=vmax−d(tall−t2)。 -
加速度表达式
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, 0≤t<t10, t1≤t<t2d, t2≤t<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(Vs2−Ve2)
减速距离
S
d
S_d
Sd和规划路径总长度
S
S
S比较,
如果:
S
d
≤
S
S_d ≤S
Sd≤S
说明在路径总长度
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,0≤t<t10,t1≤t<t2vs′t−21d(t)2, t2≤t<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′, 0≤t<t1vs′, t1≤t<t2vs′−dt, t2≤t<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, 0≤t<t10, t1≤t<t2d, t2≤t<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(vs′−ve)
相反。如果:
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(Ve2−Va2)
加速距离
S
a
S_a
Sa和规划路径总长度
S
S
S比较,
如果:
S
a
≤
S
S_a ≤S
Sa≤S
说明在路径总长度
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)=⎩
⎨
⎧vs′t−21d(t)20≤t<t10,t1≤t<t20,t2≤t<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, 0≤t<t1ve′, t1≤t<t2ve′, t2≤t<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, 0≤t<t10, t1≤t<t20, t2≤t<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(ve′−vs)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(Vmax2−Va2)+2d(Vmax2−Vd2)
最短距离
S
m
i
n
S_{min}
Smin和规划路径总长度
S
S
S比较,
如果:
S
m
i
n
≤
S
S_{min} ≤S
Smin≤S
说明在路径总长度
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,0≤t<t1Sa+vmax′(t−t1),t1≤t<t2Sa+Sv+vmax′(t−t2)−21d(t−t2)2, t2≤t<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, 0≤t<t1vmax′, t1≤t<t2vmax′−d(t−t2), t2≤t<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, 0≤t<t10, t1≤t<t2d, t2≤t<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(vmax′−vs)t2=t1+0=t1tall=t2+d(vmax′−ve)
相反。如果:
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,0≤t<t1Sa+vmax′(t−t1),t1≤t<t2Sa+Sv+vmax′(t−t2)−21d(t−t2)2, t2≤t<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, 0≤t<t1vmax′, t1≤t<t2vmax′−d(t−t2), t2≤t<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, 0≤t<t10, t1≤t<t2d, t2≤t<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(vmax2−va2)Ta=a(vmax−va)
减速距离和减速时间:
{
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(vmax2−ve2)Te=d(vmax−ve)
则匀速距离和匀速时间可求:
{
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=S−Sa−SeTv=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(vmax−va)t2=t1+Tvtall=t2+Te=t2+d(vmax′−ve)
四、仿真实现
用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基本保证运动过程中平稳性。