3、电子凸轮曲线设计:梯形、S型、修正梯形、多项式曲线的数学原理与工程应用
电子凸轮,说白了就是用软件模拟机械凸轮。机械凸轮你见过吧?一个转盘,顶着一根杆子上下动。电子凸轮就是把那根杆子的运动轨迹,用数学曲线算出来,然后让伺服电机去跑。
我刚开始接触这玩意儿的时候,总觉得曲线嘛,能跑就行。直到有一次,一台包装机每分钟跑到300包,结果切刀直接把膜拉断了。嗯,从那以后,我再也不敢随便选曲线了。
3.1 梯形曲线:最简单,但冲击大
梯形曲线,顾名思义,速度曲线像个梯形。加速段、匀速段、减速段,三段拼起来。
数学上很简单:
- 加速段:速度线性增加,位移是二次函数
- 匀速段:速度恒定,位移线性增加
- 减速段:速度线性减小,位移是二次函数
加速度呢?加速段和减速段是常数,匀速段是零。所以加速度曲线是个方波——从0跳到A,再从A跳到0,再从0跳到-A。
梯形曲线适合什么场合?我个人习惯用在低速、大惯量的场合。比如一些重型包装机的送料机构,速度不快,但负载重。梯形曲线简单,算起来快,PLC里几行代码就搞定了。
但如果你要跑高速,比如每分钟300次以上的往复运动,梯形曲线基本就是灾难。我曾经在一个枕式包装机的端封机构上试过,结果机器抖得像筛子一样。
3.2 S型曲线:平滑,但计算量大
S型曲线,也叫S-Curve。它的加速度不是突变的,而是慢慢升上去,再慢慢降下来。说白了,就是把梯形曲线的加速度方波,变成了梯形。
数学上,S型曲线有7段:
- 加加速段(Jerk为正,加速度增加)
- 匀加速段(加速度恒定)
- 减加速段(Jerk为负,加速度减小)
- 匀速段
- 加减速段(Jerk为负,加速度减小)
- 匀减速段(加速度恒定)
- 减减速段(Jerk为正,加速度增加)
你想想看,7段曲线,每段都要算边界条件。位移、速度、加速度、加加速度,四个量都要连续。这计算量,比梯形曲线大了不止一个数量级。
核心公式(加加速段):
位移: s(t) = s0 + v0*t + (1/6)*J*t³
速度: v(t) = v0 + (1/2)*J*t²
加速度: a(t) = J*t
加加速度: J = 常数
S型曲线的最大好处是:加加速度有限。机械系统最怕的就是加加速度太大,那意味着力的变化率太大,会激发高频振动。S型曲线把加加速度控制住了,机器跑起来就稳多了。
我记得有一次做一台高速装盒机,推料机构用梯形曲线,跑到每分钟200次就开始抖。换成S型曲线后,直接干到每分钟280次,机器还稳稳当当的。这就是S型曲线的价值。
但S型曲线也有缺点:计算量大,而且总时间比梯形曲线长。因为加加速段和减加速段占用了时间,同样的位移,S型曲线需要更长的时间来完成。所以,如果你对节拍要求极高,S型曲线可能不是最优选择。
3.3 修正梯形曲线:折中方案
修正梯形曲线,英文叫Modified Trapezoidal。它是在梯形曲线的基础上,把加速度突变的地方用正弦曲线或者多项式曲线给圆滑了。
说白了,就是只修正加速度的跳变点,其他部分保持梯形。这样既保留了梯形曲线的高效性,又减少了冲击。
数学上,修正梯形曲线通常用分段函数表示:
修正梯形(正弦修正版):
在加速段起始和结束处,用正弦曲线过渡
加速度: a(t) = A * sin(π * t / T_transition)
其中T_transition是过渡时间,通常取总加速时间的10%-20%
我个人比较喜欢修正梯形曲线。为什么?因为它是个很好的折中。梯形曲线太硬,S型曲线太软,修正梯形刚好在中间。
我在做一台立式包装机的时候,纵封机构需要快速往复运动。用梯形曲线,振动太大;用S型曲线,节拍不够。最后用了修正梯形曲线,把加速度过渡时间设为总时间的15%,问题就解决了。
经验值:修正梯形的过渡时间,一般取总加速时间的10%-20%。太短了没效果,太长了就变成S型曲线了。我一般先设15%,然后看振动情况微调。
3.4 多项式曲线:灵活但复杂
多项式曲线,就是用多项式函数来拟合运动轨迹。最常见的是3次多项式、5次多项式、7次多项式。
次数越高,能约束的边界条件越多:
- 3次多项式:只能约束位移和速度
- 5次多项式:能约束位移、速度、加速度
- 7次多项式:能约束位移、速度、加速度、加加速度
5次多项式的标准形式:
s(t) = c0 + c1*t + c2*t² + c3*t³ + c4*t⁴ + c5*t⁵
边界条件:
s(0) = 0, s(T) = S
v(0) = 0, v(T) = 0
a(0) = 0, a(T) = 0
解出系数:
c0 = 0
c1 = 0
c2 = 0
c3 = 10*S/T³
c4 = -15*S/T⁴
c5 = 6*S/T⁵
多项式曲线的最大优势是灵活。你可以任意指定起点和终点的位移、速度、加速度,甚至加加速度。只要次数够,总能找到一条曲线满足所有条件。
但问题也在这里:次数越高,曲线越容易振荡。我记得有一次用7次多项式设计一个高速取放机构,结果曲线在中间段出现了明显的过冲。后来检查发现,是因为边界条件太苛刻,导致多项式系数太大,曲线在中间段失控了。
3.5 四种曲线的对比与选型
说了这么多,到底怎么选?我整理了一个表格,方便你对照:
| 曲线类型 | 加速度连续性 | 加加速度 | 计算复杂度 | 适用速度 | 典型应用 |
|---|---|---|---|---|---|
| 梯形 | 不连续 | 无穷大 | 低 | 低速 | 重型送料、低速往复 |
| S型 | 连续 | 有限 | 高 | 中高速 | 高速装盒、精密定位 |
| 修正梯形 | 部分连续 | 有限(较小) | 中 | 中速 | 立式包装、端封机构 |
| 多项式 | 可任意阶连续 | 可控 | 高 | 全速域 | 特殊轨迹、高精度要求 |
选型时,我一般遵循这个原则:
- 先看速度:每分钟低于100次,梯形曲线就够了。超过200次,考虑S型或修正梯形。
- 再看负载:大惯量负载,优先选S型,减少冲击。小惯量负载,修正梯形更高效。
- 最后看精度:定位精度要求高,用多项式曲线,可以精确控制终点状态。
你想想看,选曲线就像选工具。梯形是锤子,简单粗暴;S型是精密螺丝刀,细致但慢;修正梯形是扳手,够用就好;多项式是瑞士军刀,功能多但用起来麻烦。
3.6 工程实战中的避坑指南
最后,分享几个我踩过的坑:
坑1: 梯形曲线在高速下会激发机械共振。我曾经在一台包装机上,梯形曲线跑到每分钟250次,结果机器共振,切刀位置偏差了2mm。换成修正梯形后,问题解决。
坑2: S型曲线的加加速段时间不能设得太短。我见过有人把加加速时间设为总时间的5%,结果加加速度太大,跟梯形曲线没什么区别。一般建议加加速时间占总时间的20%-30%。
坑3: 多项式曲线要注意数值稳定性。特别是当总时间T很小的时候,系数会变得非常大,导致计算溢出。我一般会先把时间归一化到[0,1]区间,算完再缩放回去。
嗯,电子凸轮曲线设计,说到底就是平衡速度、精度和稳定性。没有最好的曲线,只有最合适的曲线。多试几次,多测几组数据,你就能找到最适合你机器的那个曲线。
好了,关于电子凸轮曲线设计,就讲到这里。记住,理论是基础,但真正的功夫在调试现场。多动手,多记录,你也能成为凸轮曲线设计的高手。
公众号:蓝海资料掘金营,微信deep3321