起点加速度不为 0 的 S 型速度规划方法(七段 S 曲线)
S 型速度规划通过限制加加速度(jerk),使加速度连续变化,从而获得平滑的速度和位置轨迹。当初始加速度 a₀ ≠ 0 时,需对标准 S 曲线进行适配。
1. 初始与目标状态
-
初始状态:
位置 s₀,速度 v₀,加速度 a₀ -
目标状态:
位置 s_f,速度 v_f,加速度 a_f(通常 a_f = 0) -
系统约束:
最大速度 v_max,最大加速度 a_max,最大加加速度 j_max > 0
2. 恒定加加速度段的运动学公式
在任意一段中,若加加速度 j 恒定(取值为 +j_max 或 –j_max 或 0),则该段内状态随时间 t(从该段起始计时)变化为:
加速度:
a(t) = a_i + j · t
速度:
v(t) = v_i + a_i · t + (1/2) · j · t²
位置:
s(t) = s_i + v_i · t + (1/2) · a_i · t² + (1/6) · j · t³
其中:
- a_i, v_i, s_i 为该段起始时刻的加速度、速度、位置;
- t ∈ [0, T],T 为该段时间长度;
- “·” 表示乘法(可用 × 或空格替代,Word 中推荐用 · 或直接省略);
- 平方和立方使用 Unicode 上标:t², t³。
3. 关键参数计算(起点 a₀ ≠ 0)
假设系统需从 (s₀, v₀, a₀) 平滑过渡到 (s_f, v_f, 0),且全程满足 |j| ≤ j_max、|a| ≤ a_max、|v| ≤ v_max。
(1)加速度调整所需最小时间
若当前加速度为 a₀,目标中间加速度为 a_target(例如 0 或 ±a_max),则通过恒定 jerk 调整所需时间为:
T_j = |a_target – a₀| / j_max
此段时间内 jerk 为:
j = sign(a_target – a₀) · j_max
(2)该段结束时的速度和位置
代入上述运动学公式,令 t = T_j,得:
a₁ = a₀ + j · T_j = a_target
v₁ = v₀ + a₀ · T_j + (1/2) · j · T_j²
s₁ = s₀ + v₀ · T_j + (1/2) · a₀ · T_j² + (1/6) · j · T_j³
4. 完整七段结构(以加速-匀速-减速为例)
即使 a₀ ≠ 0,完整 S 曲线仍可由最多 7 段组成,每段 jerk 为 {+j_max, 0, –j_max} 之一:
- Jerk⁺:j = +j_max(若需增大加速度)
- Constant Accel:j = 0,a = a_max
- Jerk⁻:j = –j_max(平滑进入匀速)
- Constant Velocity:a = 0, j = 0
- Jerk⁻:j = –j_max(开始减速)
- Constant Decel:j = 0,a = –a_max
- Jerk⁺:j = +j_max(平滑回到 a_f = 0)
当 a₀ ≠ 0 时,第 1 段可能被截断或反向(如 a₀ > 0 但需减速,则第 1 段为 Jerk⁻)。
624

被折叠的 条评论
为什么被折叠?



