4. 梯形速度规划:从数学模型到工程实践

各位工程师朋友,今天我们来聊聊梯形速度规划。说实话,这是工业机器人轨迹规划里最基础、也最常用的方法之一。我在调试第一台六轴机器人时,用的就是梯形速度曲线——简单、可靠,而且效果立竿见影。

4.1 梯形速度曲线的数学模型

梯形速度曲线,说白了就是让机器人先加速、再匀速、最后减速。你想想看,这就像开车:红灯变绿,你踩油门加速;路况好了,保持匀速;快到路口了,提前减速。很自然的逻辑,对吧?

它的数学表达其实不复杂。我们把整个运动过程分成三段:

  • 加速段:速度从0线性增加到最大速度 \( v_{max} \)
  • 匀速段:保持最大速度运行
  • 减速段:速度从最大速度线性减到0

对应的加速度曲线就是:正加速度 → 零加速度 → 负加速度。嗯,这里要注意,加速度的突变是梯形规划的一个硬伤,后面我们会聊到。

核心公式:

设总位移为 \( S \),最大速度为 \( v_{max} \),加速度为 \( a \),则:

  • 加速段时间:\( t_a = \frac{v_{max}}{a} \)
  • 加速段位移:\( s_a = \frac{1}{2} a t_a^2 \)
  • 匀速段时间:\( t_c = \frac{S - 2s_a}{v_{max}} \)
  • 减速段参数与加速段对称

4.2 三段参数的工程计算

我在项目中遇到过一个问题:明明算好了参数,机器人跑起来却抖得厉害。后来发现,是加速段和减速段的参数没匹配好。这里我给大家一个实用的计算流程。

第一步:判断能否达到最大速度

如果总位移太小,可能还没加速到 \( v_{max} \) 就得开始减速了。这种情况我们叫「三角形速度曲线」——只有加速和减速,没有匀速段。

判断条件很简单:

if (S < v_max^2 / a) {
    // 三角形曲线
    t_a = sqrt(S / a);
    v_peak = a * t_a;
} else {
    // 梯形曲线
    t_a = v_max / a;
    t_c = (S - a * t_a^2) / v_max;
}

第二步:计算各段位置和速度

我个人习惯用分段函数来描述位置轨迹:

时间段 速度 位置
\( 0 \leq t < t_a \) \( v(t) = a t \) \( s(t) = \frac{1}{2} a t^2 \)
\( t_a \leq t < t_a + t_c \) \( v(t) = v_{max} \) \( s(t) = s_a + v_{max}(t - t_a) \)
\( t_a + t_c \leq t \leq T \) \( v(t) = v_{max} - a(t - t_a - t_c) \) \( s(t) = s_a + s_c + v_{max}(t - t_a - t_c) - \frac{1}{2} a (t - t_a - t_c)^2 \)

工程小技巧: 实际编程时,我建议用「时间归一化」的方法。把总时间T归一化到[0,1]区间,这样计算更稳定,也方便后续插值。

4.3 梯形规划的痛点:加速度突变

好了,梯形规划看起来挺完美的,对吧?但实际用起来,问题就来了。

我曾经调试一个码垛机器人,梯形速度规划跑起来,每到加减速切换点,机械臂就「咯噔」一下。一开始我以为是机械间隙,后来用示波器看电机电流——好家伙,加速度突变导致电流尖峰,直接冲击减速机。

为什么会这样?因为梯形规划的加速度是阶跃变化的:

  • 启动瞬间:加速度从0跳变到a
  • 加速结束:加速度从a跳变到0
  • 减速开始:加速度从0跳变到-a
  • 停止瞬间:加速度从-a跳变到0

这种突变在数学上叫「加速度不连续」。你想想看,加速度的导数——我们叫「加加速度」(Jerk)——是无穷大。这对机械系统来说,就是冲击和振动。

注意: 加速度突变不仅影响机械寿命,还会导致轨迹精度下降。特别是在高速高精度场景下,比如芯片贴装、激光切割,梯形规划基本不够用。

4.4 为什么需要S形速度曲线?

既然梯形规划有这个问题,那怎么解决?答案就是:让加速度也平滑变化。

S形速度曲线,说白了就是把加速度的阶跃变成斜坡。它把原来的三段变成了七段:

  1. 加加速段:加速度从0线性增加到a
  2. 匀加速段:保持加速度a
  3. 减加速段:加速度从a线性减到0
  4. 匀速段:速度保持最大
  5. 加减速段:加速度从0线性减到-a
  6. 匀减速段:保持加速度-a
  7. 减减速段:加速度从-a线性增到0

你看,这样加速度就是连续的,加加速度(Jerk)变成了有限值。机械系统受到的冲击就小多了。

我记得有一次做半导体晶圆搬运项目,客户要求定位精度±0.01mm,而且不能有振动。梯形规划试了三次都过不了,换成S形曲线后,一次通过。嗯,从那以后,我对S形曲线就特别信任。

梯形 vs S形 对比:

  • 梯形:计算简单,执行效率高,适合低速、大负载场景
  • S形:运动平滑,冲击小,适合高速、高精度场景
  • 代价:S形计算量更大,参数更多(多了加加速度Jerk)

4.5 实际选型建议

说了这么多,到底什么时候用梯形,什么时候用S形?我给大家一个参考:

  • 搬运码垛:负载大、速度慢,梯形规划完全够用,别折腾S形
  • 焊接涂胶:要求轨迹平滑,建议用S形,至少加加速度要可控
  • 高速分拣:必须用S形,否则机械臂寿命会大打折扣
  • 精密装配:S形是标配,有时候还得用更高阶的规划

最后说一句:梯形规划不是过时了,而是要看场景。我见过很多老师傅,梯形规划用了一辈子,照样调出好设备。关键是理解它的优缺点,知道什么时候该换方案。

下一章,我们会深入S形速度曲线的数学模型,把七段参数的计算方法掰开揉碎了讲。到时候你会发现,S形其实也没那么复杂。