4. 多项式速度规划:三次、五次、七次多项式的数学推导与实战对比
多项式速度规划,说白了就是用一条光滑的数学曲线来描述运动过程。你想想看,电机从静止加速到目标速度,再减速停止——如果直接给阶跃指令,那冲击力能把机械结构打坏。多项式就是来解决这个问题的。
我个人习惯把多项式规划分成三个档次:三次、五次、七次。档次越高,曲线越光滑,但计算量也越大。咱们一个一个来拆。
4.1 三次多项式:最基础的平滑
三次多项式的形式很简单:
s(t) = a₀ + a₁·t + a₂·t² + a₃·t³
它有4个未知系数,所以需要4个边界条件。通常我们给定起点和终点的位置与速度:
| 边界 | 条件 |
|---|---|
| t = 0 | s(0) = s₀, v(0) = v₀ |
| t = T | s(T) = s₁, v(T) = v₁ |
把边界代入,解一个4元线性方程组,就能得到系数。我在项目中遇到过用三次多项式做点对点定位——比如一个机械臂从A点抓取到B点放下。速度连续,但加速度在起点和终点有跳变。说白了,加速度不连续。
4.2 五次多项式:加速度也连续了
五次多项式长这样:
s(t) = a₀ + a₁·t + a₂·t² + a₃·t³ + a₄·t⁴ + a₅·t⁵
6个系数,需要6个边界条件。除了位置和速度,我们还要约束起点和终点的加速度:
| 边界 | 条件 |
|---|---|
| t = 0 | s(0) = s₀, v(0) = v₀, a(0) = a₀ |
| t = T | s(T) = s₁, v(T) = v₁, a(T) = a₁ |
解这个方程组,你会得到一组封闭解。我建议你直接记住公式,或者写一个通用求解器——每次手算太容易出错。
五次多项式的好处是加速度连续,没有突变。这意味着电机电流更平滑,机械冲击更小。我在做高速贴片机时,所有运动轨迹都用五次多项式——贴片头每秒要完成几十次取放,加速度不连续的话,振动根本压不住。
4.3 七次多项式:加加速度也连续
七次多项式是:
s(t) = a₀ + a₁·t + a₂·t² + a₃·t³ + a₄·t⁴ + a₅·t⁵ + a₆·t⁶ + a₇·t⁷
8个系数,8个边界条件。除了位置、速度、加速度,还要约束加加速度(Jerk):
| 边界 | 条件 |
|---|---|
| t = 0 | s(0) = s₀, v(0) = v₀, a(0) = a₀, j(0) = j₀ |
| t = T | s(T) = s₁, v(T) = v₁, a(T) = a₁, j(T) = j₁ |
七次多项式能保证加加速度连续。加加速度是什么?就是加速度的变化率。如果加加速度有跳变,电机力矩会突然变化,产生高频振动。
说实话,七次多项式在工业机器人里用得不多——计算量大了不少,但实际效果和五次多项式差别不大。除非你是在做超高精度的场景,比如光刻机、晶圆搬运,否则五次多项式已经够用了。
4.4 三种多项式的对比
| 特性 | 三次多项式 | 五次多项式 | 七次多项式 |
|---|---|---|---|
| 连续阶数 | 速度连续 | 加速度连续 | 加加速度连续 |
| 边界条件数 | 4 | 6 | 8 |
| 计算复杂度 | 低 | 中 | 高 |
| 适用场景 | 低速、低精度 | 通用工业运动 | 超高精度、超高速 |
| 冲击程度 | 有加速度跳变 | 无加速度跳变 | 无加加速度跳变 |
我个人的选型原则很简单:能用五次就不用三次,能用五次就不用七次。五次多项式是性价比最高的选择。
4.5 知识体系结构图
下面这张图帮你理清三种多项式的核心逻辑:
4.6 实战选型建议
最后给你一个我自己的决策流程:
- 先看系统对冲击的容忍度——如果机械结构刚性差,直接上五次或七次。
- 再看控制器算力——低端MCU跑七次多项式可能吃力,五次多项式是安全牌。
- 最后看精度要求——普通定位用三次就够了,但要做好加速度跳变的心理准备。
核心总结:三次多项式是入门,五次多项式是主力,七次多项式是锦上添花。别盲目追求高阶,适合你的系统才是最好的。