曲线数学基础:多项式曲线与实用曲线族

做电子凸轮这些年,我越来越觉得——曲线选型就是凸轮设计的灵魂。你算法再牛,电机再快,曲线选错了,设备照样抖成筛子。

这一章,咱们把几种最常用的曲线掰开揉碎讲清楚。3次、5次、7次多项式,三角函数曲线,S型曲线,还有修正梯形。每种曲线我都会告诉你:它长什么样,用在哪儿,坑在哪儿。

核心观点:没有完美的曲线,只有最合适的曲线。选曲线就是选“加速度特性”。

电子凸轮常用曲线族系 曲线选型决策 多项式曲线 3次:速度连续,加速度跳变 5次:加速度连续,加加速度跳变 7次:加加速度连续,更平滑 三角函数曲线 正弦加速度:无冲击 余弦加速度:端点冲击小 S型曲线 7段式S型:工程最常用 加加速度有限幅 修正梯形曲线 梯形加速度 + 圆角过渡 高速轻载场景首选

3.1 多项式曲线:从3次到7次

多项式曲线是凸轮设计的基础。说白了,就是用多项式函数去拟合位移-时间关系。次数越高,边界条件越多,曲线越平滑。

3次多项式

3次多项式只有4个系数,刚好满足4个边界条件:起点位移、起点速度、终点位移、终点速度。

// 3次多项式通用形式
s(t) = a0 + a1*t + a2*t^2 + a3*t^3

// 边界条件:t=0时s=0,v=0;t=T时s=h,v=0
// 解得:
a0 = 0
a1 = 0
a2 = 3*h/T^2
a3 = -2*h/T^3

// 最终表达式
s(t) = h * (3*(t/T)^2 - 2*(t/T)^3)

这个曲线,速度是连续的,但加速度在起点和终点有跳变。我做过一台高速贴片机,刚开始用3次多项式做取放凸轮,结果吸嘴在接触元件时总是抖动。后来一查,就是加速度跳变惹的祸。

避坑:3次多项式不适合高速启停场景。加速度跳变会产生冲击力,轻则抖动,重则损坏机械结构。

5次多项式

5次多项式有6个系数,可以多约束两个条件——起点和终点的加速度为零。这样一来,加速度就连续了。

// 5次多项式
s(t) = a0 + a1*t + a2*t^2 + a3*t^3 + a4*t^4 + a5*t^5

// 边界条件增加:t=0时a=0;t=T时a=0
// 解得标准形式:
s(t) = h * (10*(t/T)^3 - 15*(t/T)^4 + 6*(t/T)^5)

我个人习惯,在中速场景(每分钟300次以下)首选5次多项式。它比3次平滑,计算量又比7次小。记得有次做包装机横封凸轮,用5次多项式跑每分钟200次,连续跑了72小时,温升完全在可控范围内。

7次多项式

7次多项式更进一步,连加加速度(Jerk)都连续了。8个系数,可以约束起点和终点的加加速度为零。

// 7次多项式标准形式
s(t) = h * (35*(t/T)^4 - 84*(t/T)^5 + 70*(t/T)^6 - 20*(t/T)^7)

7次多项式是多项式家族里的“天花板”。它几乎没有冲击,但有个问题——计算量大,而且对数值精度敏感。我在做半导体封装设备时用过一次,32位定点DSP跑起来有点吃力,后来换成了浮点处理器才搞定。

特性 3次多项式 5次多项式 7次多项式
速度连续性 连续 连续 连续
加速度连续性 跳变 连续 连续
加加速度连续性 跳变 跳变 连续
最大加速度 6h/T² 5.77h/T² 5.33h/T²
适用场景 低速、对冲击不敏感 中速、一般工业 高速、高精度

3.2 三角函数曲线

三角函数曲线,说白了就是用正弦或余弦来构造加速度曲线。它的特点是——加速度变化非常平滑,没有突变。

正弦加速度曲线

正弦加速度曲线的加速度是正弦函数,位移是正弦函数的积分。你想想看,正弦函数从0开始,平滑上升到峰值,再平滑回0,整个过程没有跳变。

// 正弦加速度曲线
a(t) = A * sin(2π*t/T)

// 积分得速度
v(t) = (A*T/2π) * (1 - cos(2π*t/T))

// 再积分得位移
s(t) = (A*T^2/2π) * (t/T - sin(2π*t/T)/(2π))

这个曲线在起点和终点的加速度为零,所以没有冲击。我在做医疗设备时特别喜欢用它——那些精密注射泵,对运动平滑度要求极高,正弦加速度曲线是首选。

余弦加速度曲线

余弦加速度曲线和正弦正好相反——加速度从最大值开始,然后逐渐减小到零,再反向增大。它的特点是:端点加速度不为零,但加速度变化率(加加速度)在端点为零。

经验之谈:正弦加速度曲线适合“从静止到静止”的运动;余弦加速度曲线适合“从一个匀速到另一个匀速”的过渡。选错了,设备会抖。

3.3 S型曲线

S型曲线,学名叫“S形速度曲线”或“7段式S型”。它是工业运动控制里最常用的曲线,没有之一。

为什么叫7段式?因为它把整个运动过程分成7段:加加速、匀加速、减加速、匀速、加减速、匀减速、减减速。每一段对应一个固定的加加速度值。

// 7段式S型曲线参数
// J: 加加速度 (Jerk)
// A: 最大加速度
// V: 最大速度
// T1 = A/J: 加加速段时间
// T2 = V/A - A/J: 匀加速段时间
// T3 = A/J: 减加速段时间
// T4: 匀速段时间
// T5 = A/J: 加减速段时间
// T6 = V/A - A/J: 匀减速段时间
// T7 = A/J: 减减速段时间

我曾经在调试一台大型龙门铣床时,发现用梯形速度曲线(就是只有加速、匀速、减速三段)时,床身每次加减速都会剧烈振动。后来换成S型曲线,把加加速度限制在0.5g/s以内,振动问题直接消失。

关键参数:S型曲线的核心是加加速度J。J越大,曲线越“硬”,响应越快但冲击也大;J越小,曲线越“软”,越平滑但运动时间变长。工程上一般取J = (2~5) * A / T。

3.4 修正梯形曲线

修正梯形曲线,是在梯形加速度曲线的基础上,把加速度的突变点“圆角化”。说白了,就是把方方正正的梯形加速度,在四个角上换成圆弧过渡。

为什么要这么做?因为纯梯形加速度曲线在加速度突变点会产生无限大的加加速度——这在物理上不可能实现,电机也受不了。

// 修正梯形曲线(简化版)
// 加速度曲线由5段组成:
// 1. 正弦上升段:a从0平滑上升到Amax
// 2. 恒加速度段:a = Amax
// 3. 正弦下降段:a从Amax平滑下降到0
// 4. 恒速段:a = 0
// 5. 对称减速段:与加速段对称

// 过渡段通常采用正弦函数:
// a(t) = Amax * sin²(π*t/(2*Tr))
// 其中Tr为过渡段时间

修正梯形曲线在高速轻载场景下表现极好。我做LED贴片机时,取放头每分钟要完成600次动作,用5次多项式算不过来,用S型曲线又太慢。最后换成修正梯形,加速度峰值比S型低了15%,运动周期缩短了8%。

曲线类型 最大加速度 加加速度峰值 运动效率 推荐场景
3次多项式 高 无限大 高 低速、粗定位
5次多项式 中 大 中 中速、一般工业
正弦加速度 低 小 低 高精度、低振动
S型曲线 中 可控 中 通用、大负载
修正梯形 低 小 高 高速、轻载

重要提醒:修正梯形曲线的过渡段占比很关键。过渡段太短(<10%),圆角效果不明显,加加速度仍然很大;过渡段太长(>30%),梯形特征消失,运动效率下降。我一般取15%~20%。

嗯,这一章的内容就到这里。曲线数学基础是凸轮设计的“内功”,练好了,后面讲曲线拼接、优化、补偿时你才能得心应手。记住一句话:选曲线就是选加速度特性,加速度特性决定了设备的振动、精度和寿命。