3. 凸轮曲线数学基础:多项式函数、三角函数、S曲线、加速度与加加速度(Jerk)的概念

各位工程师朋友,欢迎来到第三章。前两章我们聊了凸轮曲线能干什么、用在哪儿。从这章开始,咱们要动真格的了——把曲线背后的数学底子摸清楚。

说实话,我刚入行那会儿,觉得搞运动控制嘛,会调参数就行了。直到有一次,一台高速贴片机在加速阶段疯狂抖动,怎么调PID都没用。最后查出来,是曲线在衔接点处的加速度突变太大。那次之后我才明白:不懂曲线数学,你连问题出在哪都找不到。

这一章,我们就来拆解凸轮曲线背后的几个核心数学工具:多项式函数、三角函数、S曲线,以及两个关键指标——加速度和加加速度(Jerk)。

核心观点:凸轮曲线的本质,是用数学函数描述「位置随时间的变化规律」。而评价一条曲线好不好,关键看它的速度、加速度、加加速度是否连续、是否在允许范围内。

凸轮曲线数学基础 — 知识体系 凸轮曲线数学基础 多项式函数 三角函数 S曲线 加速度 & Jerk 3次/5次/7次 正弦/余弦/摆线 S型速度规划 连续性/峰值/冲击

3.1 多项式函数:最基础的曲线构建工具

多项式函数,说白了就是形如 s(t) = a₀ + a₁·t + a₂·t² + a₃·t³ + ... 的表达式。在凸轮曲线里,我们用多项式来描述位移 s 随时间 t 的变化。

为什么多项式这么常用?因为它简单、可控。你加一个高次项,就能多一个约束条件。比如:

  • 3次多项式:可以约束起点和终点的位置、速度(4个条件)
  • 5次多项式:可以约束起点和终点的位置、速度、加速度(6个条件)
  • 7次多项式:可以约束起点和终点的位置、速度、加速度、加加速度(8个条件)

我在项目中遇到过不少工程师,一上来就用7次多项式,觉得「次数越高越平滑」。其实不然。高次多项式容易在中间段产生过冲(overshoot),反而让运动变得不稳定。我的建议是:够用就好。一般应用5次多项式已经能提供很好的平滑性。

实用技巧:如果你只需要位置和速度连续,3次多项式就够了。如果需要加速度也连续(大多数工业场景),用5次多项式。只有在要求加加速度也连续的高端设备(如光刻机、精密装配)上,才考虑7次多项式。

3.2 三角函数:天然的平滑曲线

三角函数在凸轮曲线里扮演着「天生平滑」的角色。最典型的是正弦曲线和摆线(Cycloid)。

你想想看,正弦函数的导数还是正弦(或余弦),这意味着它的速度、加速度曲线天然就是连续的。这一点比多项式强——多项式求导后次数降低,但连续性不变;而三角函数求导后仍然是三角函数,波形形状保持得很好。

摆线曲线尤其有意思。它的数学表达式是:

s(t) = h · [t/T - (1/(2π)) · sin(2π·t/T)]

其中 h 是总行程,T 是总时间。这条曲线的特点是:起点和终点的加速度都为零。这意味着它天然适合启停频繁的场合。

我记得有一次做包装机械的凸轮设计,客户要求每分钟120次往复运动。用5次多项式算出来加速度峰值偏高,电机选型很紧张。换成摆线曲线后,加速度峰值降了将近20%,问题迎刃而解。

注意:三角函数曲线虽然平滑,但它的速度峰值通常比同参数的多项式曲线要高。这意味着如果你受限于电机最高转速,三角函数可能不是最佳选择。选型时一定要综合评估。

3.3 S曲线:工业界的「万金油」

S曲线,全称是S型速度规划曲线。它不是某一种特定的数学函数,而是一种速度变化呈S形的运动模式。

典型的S曲线分为7段:加加速、匀加速、减加速、匀速、加减速、匀减速、减减速。你看,光是加速阶段就分了3段,目的就是让加速度的变化(也就是Jerk)可控。

为什么叫S曲线?因为速度曲线看起来像字母S的拉长版。它的核心思想是:不让任何物理量突变。

曲线类型 位置连续 速度连续 加速度连续 Jerk连续 典型应用
梯形速度曲线 ✓ ✓ ✗ ✗ 低端传送带
3次多项式 ✓ ✓ ✗ ✗ 简单点对点
5次多项式 ✓ ✓ ✓ ✗ 通用工业凸轮
S曲线(7段式) ✓ ✓ ✓ ✓ 高速高精度设备
摆线曲线 ✓ ✓ ✓ ✗ 高速往复运动

从表格里你能看出来,S曲线是唯一一个在四个物理量上都保持连续的曲线。这也是为什么它在工业界被称为「万金油」——虽然计算复杂一点,但效果确实好。

3.4 加速度与加加速度(Jerk):决定设备寿命的关键

好,终于到了这一章的重头戏。加速度和加加速度,这两个概念直接决定了你的设备能不能跑得稳、用得久。

加速度是速度的变化率,单位 m/s²。它直接对应到力——F = ma。加速度越大,电机需要输出的力越大,机械结构承受的载荷也越大。

加加速度(Jerk)是加速度的变化率,单位 m/s³。它描述的是「力变化的快慢」。Jerk越大,意味着机械结构受到的冲击越剧烈。

为什么会这样?我给你举个例子。假设一个机构从静止加速到1 m/s,加速度是10 m/s²。如果这个加速度是瞬间建立起来的(Jerk无穷大),那在加速度建立的那一刻,机构会受到一个冲击力。虽然这个冲击只持续一瞬间,但高频的冲击会加速机械磨损、导致螺栓松动、甚至引起共振。

我曾经处理过一个案例:一台高速冲压机,运行半年后凸轮从动件出现了明显的疲劳裂纹。排查下来,发现是曲线设计时只限制了加速度峰值,没管Jerk。结果每次换向时Jerk高达5000 m/s³,相当于每次换向都在「砸」机构。后来把曲线改成7段S曲线,Jerk降到500 m/s³以下,问题再没出现过。

经验法则:

  • 加速度峰值:一般控制在 0.5~2 G(5~20 m/s²),视设备刚性而定
  • Jerk峰值:一般控制在 100~500 m/s³,精密设备要求 < 100 m/s³
  • 如果设备出现异响或抖动,优先检查Jerk是否超标

3.5 如何选择曲线类型?

讲了这么多,你可能会问:那我到底该用哪种曲线?

我的建议是分三步走:

  1. 先看连续性要求:加速度必须连续吗?Jerk必须连续吗?
  2. 再看峰值限制:电机和机械结构能承受多大的加速度和Jerk?
  3. 最后看计算资源:你的控制器能跑多复杂的曲线计算?

一般来说,我个人的习惯是:能用5次多项式就不用3次,能用S曲线就不用梯形。虽然计算量大了点,但现在控制器的性能完全扛得住。省那点计算资源,换来设备的稳定性和寿命,怎么算都划算。

一个小技巧:如果你不确定选哪种曲线,先用5次多项式跑一下仿真。看加速度和Jerk的峰值是否在可接受范围内。如果Jerk超标,再升级到7段S曲线。这样迭代,效率最高。

嗯,这一章的内容就到这里。数学基础打牢了,后面我们才能放心地讨论具体的曲线设计方法和工程实践。记住:凸轮曲线设计,本质上是在「平滑性」和「效率」之间找平衡。而加速度和Jerk,就是你手里最重要的两个调节旋钮。