3、电子凸轮曲线原理:凸轮曲线的数学模型、多项式曲线、S型曲线、修正正弦曲线、曲线生成算法
各位工程师朋友,咱们今天聊聊电子凸轮的核心——曲线。说白了,电子凸轮就是一条数学曲线在驱动轴上的映射。机械凸轮靠物理形状,电子凸轮靠数学公式。我个人觉得,理解曲线原理,才算真正入了电子凸轮的门。
3.1 凸轮曲线的数学模型
先看数学模型。电子凸轮的本质,是从主轴位置到从轴位置的一个映射关系:
从轴位置 = f(主轴位置)
这个 f 就是凸轮曲线。它必须满足几个基本条件:
- 连续性:位置、速度、加速度都要连续。不连续就会产生冲击。
- 边界条件:起点和终点的位置、速度要匹配。
- 单调性:通常要求从轴位置随主轴位置单调变化,不能来回跑。
我在项目中遇到过一个问题:曲线在连接点处速度不连续,结果机器每转一圈就“咯噔”一下。后来查出来是曲线拼接时没处理好边界条件。嗯,这里要注意,边界条件不是可选项,是必选项。
3.2 多项式曲线
多项式曲线是最基础的一种。说白了就是用多项式来拟合运动规律。
常用的有:
- 3次多项式:能保证位置和速度连续,但加速度不连续。
- 5次多项式:位置、速度、加速度都连续,工程上够用了。
- 7次多项式:再加一阶连续,适合高速高精度场合。
举个例子,5次多项式的标准形式:
s(t) = c0 + c1*t + c2*t² + c3*t³ + c4*t⁴ + c5*t⁵
系数 c0~c5 由边界条件决定。你想想看,6个未知数,正好需要6个边界条件(起点位置、速度、加速度,终点位置、速度、加速度)。
3.3 S型曲线
S型曲线,其实就是速度曲线呈S形。它把运动分成三段:加速段、匀速段、减速段。加速和减速过程又细分为加加速、匀加速、减加速三个阶段。
为什么叫S型?因为速度曲线看起来像字母S。它的核心思想是让加速度连续变化,避免冲击。
S型曲线的参数有:
- 最大速度 Vmax
- 最大加速度 Amax
- 最大加加速度 Jmax
- 总位移 S
我曾经调试一台高速贴片机,用梯形曲线时加速度突变,导致贴片头抖动。换成S型曲线后,抖动问题就解决了。说白了,S型曲线就是拿时间换平稳。
3.4 修正正弦曲线
修正正弦曲线,英文叫Modified Sine。它是在正弦曲线基础上改进的。为什么要修正?因为纯正弦曲线的加速度在起点和终点不为零,会产生冲击。
修正正弦的做法是:把正弦曲线分成三段,每段用不同的正弦函数拼接。这样就能保证加速度在起点和终点为零。
它的数学表达式比较复杂:
s(τ) =
0 ≤ τ ≤ 1/8: (1/4) * sin(4πτ) / π
1/8 ≤ τ ≤ 7/8: (1/4) * (2 - sin(4πτ)) / π
7/8 ≤ τ ≤ 1: (1/4) * (4 + sin(4πτ)) / π
其中 τ 是归一化时间,从0到1。
修正正弦曲线有个特点:它的最大加速度和最大速度都比较小,适合对冲击敏感的场合。我在做包装机械时经常用这种曲线,因为包装材料怕振动。
3.5 曲线生成算法
曲线生成算法,就是把数学公式变成可执行的代码。我总结了一套通用流程:
- 参数输入:输入主轴行程、从轴行程、速度限制、加速度限制等。
- 类型选择:根据应用场景选择曲线类型(多项式、S型、修正正弦等)。
- 系数计算:根据边界条件计算曲线系数。
- 查表生成:把曲线离散化成查表数据,方便实时调用。
- 插值输出:运行时根据主轴位置查表插值,输出从轴位置。
下面是一个简单的5次多项式曲线生成代码:
// 5次多项式系数计算
void CalcQuinticCoeff(double startPos, double endPos,
double startVel, double endVel,
double startAcc, double endAcc,
double* coeff) {
double T = 1.0; // 归一化时间
double T2 = T*T, T3 = T2*T, T4 = T3*T, T5 = T4*T;
// 解线性方程组
coeff[0] = startPos;
coeff[1] = startVel;
coeff[2] = startAcc / 2.0;
double dPos = endPos - startPos;
double dVel = endVel - startVel;
double dAcc = endAcc - startAcc;
coeff[3] = (20*dPos - 8*dVel*T - 3*dAcc*T2) / (2*T3);
coeff[4] = (-30*dPos + 14*dVel*T + 3*dAcc*T2) / (2*T4);
coeff[5] = (12*dPos - 6*dVel*T - dAcc*T2) / (2*T5);
}
3.6 知识体系总览
下面这张图是我画的电子凸轮曲线知识体系,帮你理清思路:
这张图把本章的知识点串起来了。从数学模型出发,分支出多项式曲线和S型曲线,最后汇聚到曲线生成算法。你想想看,掌握了这些,电子凸轮曲线这块就算拿下了。
好了,这一章就到这里。曲线原理是基础,下一章咱们会深入讲曲线拼接和优化,到时候再聊。