4、运动学模型:位置、速度、加速度关系、梯形速度曲线规划、S形速度曲线规划

各位好,我是老张。今天咱们聊聊运动学模型。说实话,这是整个运动控制系统的地基。地基没打好,上面盖的楼再漂亮也得塌。我在做数字孪生项目时,见过太多因为运动学模型没搞对,导致仿真和实际设备对不上的案例。

4.1 位置、速度、加速度的三角关系

先说说最基础的东西。位置、速度、加速度,这三者是什么关系?说白了就是微积分的关系。

  • 位置:物体在空间中的坐标,单位是米(mm)
  • 速度:位置对时间的一阶导数,单位是 m/s
  • 加速度:速度对时间的一阶导数,单位是 m/s²

反过来看:加速度积分得到速度,速度积分得到位置。这个逻辑在数字孪生里特别重要。你想想看,我们在仿真中控制的是加速度,但最终要看到的是位置变化。中间隔了一层速度。

核心公式:

v(t) = v₀ + ∫a(t)dt
s(t) = s₀ + ∫v(t)dt

我在项目中遇到过一个问题:仿真时加速度给得很大,但位置变化却很小。查了半天才发现,是积分步长设置太大了,导致数值积分精度不够。嗯,这里要注意,仿真步长一般不要超过控制周期的 1/10。

4.2 梯形速度曲线规划

梯形速度曲线,这是最常用的速度规划方式。为什么叫梯形?你画出速度-时间图,形状就像个梯形。

它的逻辑很简单:先匀加速,再匀速,最后匀减速。三个阶段。

我个人习惯:在调试初期先用梯形曲线。因为它参数少,容易调。等系统稳定了,再考虑更复杂的曲线。

梯形曲线的关键参数有三个:

  • 最大速度 Vmax:电机能跑多快
  • 加速度 a:电机加速有多猛
  • 总位移 S:要走多远

计算过程是这样的:

// 梯形速度曲线规划
// 输入:总位移 S,最大速度 Vmax,加速度 a
// 输出:加速时间 ta,匀速时间 tv,减速时间 td

ta = Vmax / a          // 加速时间
td = Vmax / a          // 减速时间(通常等于加速时间)
S_acc = 0.5 * a * ta²  // 加速段位移
S_dec = 0.5 * a * td²  // 减速段位移

if (S_acc + S_dec >= S) {
    // 三角形曲线(没达到最大速度)
    ta = sqrt(S / a)
    td = ta
    tv = 0
} else {
    // 标准梯形
    tv = (S - S_acc - S_dec) / Vmax
}

我曾经犯过一个错误:梯形曲线在加速和减速切换时,加速度会突变。这在物理上是不可能实现的。电机驱动器会报错,或者产生冲击。所以后来我改用了 S 形曲线。

4.3 S形速度曲线规划

S形曲线,说白了就是给加速度也加了平滑处理。梯形曲线的加速度是方波,S形曲线的加速度是梯形波。

S形曲线有七个阶段:

  1. 加加速:加速度从0增加到最大
  2. 匀加速:加速度保持最大
  3. 减加速:加速度从最大降到0
  4. 匀速:速度保持最大
  5. 加减速:加速度从0降到负最大
  6. 匀减速:加速度保持负最大
  7. 减减速:加速度从负最大升到0

注意:S形曲线的计算量比梯形大得多。在嵌入式系统里,如果 CPU 性能不够,建议离线计算好轨迹点,运行时直接查表。

为什么叫 S 形?因为速度曲线看起来像字母 S 的平滑版本。它消除了梯形曲线中的加速度突变,让运动更柔和。

我记得有一次调试一个高精度定位平台,用梯形曲线时末端总是有微小的抖动。换成 S 形曲线后,抖动消失了。原因就是加速度的连续变化减少了机械共振。

4.4 两种曲线的对比

特性 梯形曲线 S形曲线
计算复杂度
加速度连续性 不连续(有突变) 连续
运动平滑度 一般 优秀
执行时间 稍长
适用场景 快速定位、低精度 高精度、高平稳性

你想想看,如果你的设备只是做简单的搬运,梯形曲线完全够用。但如果是芯片贴装、精密测量这类场景,S形曲线是必须的。

4.5 知识体系结构图

下面这张图展示了运动学模型的核心逻辑。我习惯用这种图来梳理思路,也分享给你们。

运动学模型知识体系 位置 · 速度 · 加速度 速度曲线规划方法 梯形速度曲线 匀加速段 匀速段 匀减速段 S形速度曲线 加加速/匀加速/减加速 匀速 加减速/匀减速/减减速 选择依据:精度要求 × 计算能力 × 机械特性

4.6 避坑指南

最后分享几个我踩过的坑:

我曾经在梯形曲线规划时,忘记考虑加减速时间是否足够。结果电机还没加速到目标速度就开始减速了,变成了三角形曲线。运动时间比预期长了很多。

注意:S形曲线的加加速度(Jerk)不能设置太大。加加速度是加速度的变化率,单位是 m/s³。如果加加速度太大,虽然加速度连续了,但冲击依然存在。我一般把加加速度设为最大加速度的 10 倍左右。

好了,运动学模型这部分就聊到这儿。梯形曲线和 S 形曲线是基础中的基础,搞懂了它们,后面的轨迹规划、插补算法才能顺利展开。


专注资料整理