ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

运动控制电子凸轮(Electronic Cam)设计:从运动需求到 Trio FLEXLINK 凸轮曲线公式推导

2026/9/4 7:58:43 拓冰建站 浏览量
运动控制电子凸轮(Electronic Cam)设计:从运动需求到 Trio FLEXLINK 凸轮曲线公式推导 文章来源说明本文由 ZeroOne AI 整理发布官网与 CSDN 双端同步首发原文见 www.zeroone-ai.com。在高速包装、旋转刀、飞剪、印刷、贴标、灌装以及连续送料设备中经常会遇到这样一种运动控制需求从轴需要跟随主轴运动但又不能始终保持简单的 1:1 电子齿轮关系而是需要在指定位置加速、减速、超前、滞后并且整个过程必须平滑。这种问题就是典型的电子凸轮Electronic Cam设计问题。传统机械设备通过凸轮机构实现这种运动关系而现代伺服系统可以通过软件实时计算主轴位置 → 从轴位置的映射关系实现机械凸轮的电子化。本文以 Trio Motion Controller FLEXLINK/CamGen 旋转刀为例从运动需求、数学模型、速度曲线、位置曲线到最终公式推导完整介绍电子凸轮的设计方法。一、什么是电子凸轮电子凸轮可以理解为Y f(X)其中X主轴位置Y从轴位置主轴可以是输送带送料辊编码器伺服电机生产线虚拟主轴从轴可以是旋转刀飞剪刀压合机构打标机构机械手送料机构例如主轴位置 X │ ▼ ┌───────────────┐ │ Electronic Cam │ │ Y f(X) │ └───────────────┘ │ ▼ 从轴位置 Y因此电子凸轮的核心并不是控制电机转速而是建立主轴位置与从轴位置之间的数学关系。速度、加速度实际上都是由位置曲线进一步求导得到的。二、为什么不能简单使用电子齿轮假设输送带速度为 V_M旋转刀需要始终保持 V_S V_M这时使用电子齿轮即可。例如主轴100 mm 从轴100 mm即Y/X 1但是旋转刀实际工作时通常并不是这样。例如旋转刀 ↓ ┌────────┐ │ │ ────┴────────┴───── 传送带刀具可能需要1. 前段快速加速 2. 中间区域与产品同步 3. 完成切割 4. 后段快速减速 5. 回到下一次切割位置。因此从轴的速度必须动态变化速度 ↑ │ ┌──────────┐ │ / \ │______/ \________ │ └──────────────────────────────→ 主轴位置这就是电子凸轮。三、旋转刀电子凸轮的典型工艺要求以一个连续输送的旋转刀系统为例。假设旋转刀0° → 360°其中90° → 270°是刀具与产品同步工作的区域。也就是说90°270° 这 180° 范围是有效同步区。假设产品跟踪长度为 L产品长度可以动态变化100 ≤ L ≤ 400工艺要求L 100 mm整个有效区域都可以高速同步100 mm ┌──────────────────────────────┐ │ 高速同步 │ └──────────────────────────────┘L 150 mm要求高速同步50 mm 低速调整100 mmL 200 mm要求高速同步50 mm 低速调整150 mmL 400 mm要求高速同步50 mm 低速调整350 mm同时100400 mm 之间不能出现速度突变需要平滑过渡。这就构成了一个动态电子凸轮问题。四、电子凸轮应该从位置开始设计很多人在设计运动曲线时第一反应是直接设计速度速度 → 加速 → 匀速 → 减速实际上更推荐从 Y f(X) 开始。因为V dY/dX而加速度则可以继续通过求导得到。所以位置曲线 ↓ 一阶导 速度曲线 ↓ 二阶导 加速度曲线因此电子凸轮设计的核心是首先保证位置连续再保证速度连续最后根据需要保证加速度和 Jerk 连续。五、Trio FLEXLINK 的基本思想Trio 提供的 FLEXLINK() 正适合这种应用。基本格式FLEXLINK( base_dist, 基础运动距离 excite_dist, 凸轮补偿距离 link_dist, 主轴联动总距离 base_in, 凸轮开始前的预留 base_out, 凸轮结束后的预留 excite_acc, 凸轮加速比例 excite_dec, 凸轮减速比例 link_axis, 从轴 options, 曲线类型选项 start_pos 起始位置 )它将运动分成两个部分最终运动 Base Move Excitation Move也就是基础同步运动 凸轮补偿运动六、Base Move基础同步运动Base Move 可以理解成一个电子齿轮。例如base_dist 100 link_dist 100表示主轴运动 100 → 从轴运动 100也就是Y_base X如果base_dist 270 link_dist 360则基础运动比例K 270/360 0.75即Y_base 0.75X七、Excitation Move凸轮补偿Excitation 是在基础运动上增加一个平滑变化量。例如base_dist 270 excite_dist 90那么最终Y 270 90 360因此Base Excitation Total 270 90 360这正是旋转刀非常有用的结构。八、CamGen 中的典型曲线Trio CamGen 可以生成类似 OffsetSinSpeedConstCurve 的曲线。它实际上由五段组成0 x1 x2 x3 x4 1 │--------│------│---------│------│--------│ Idle 加速 匀速 减速 Idle例如x1 0.30 x2 0.42 x3 0.58 x4 0.70对应030% 不进行 Excitation 3042% SIN 加速 4258% 匀速 5870% SIN 减速 70100% 保持 Excitation 终值因此整个曲线非常适合高速运动机构。九、为什么采用 SIN 曲线假设速度采用v c(1 − cosθ)其中0 ≤ θ ≤ π那么起点v 0终点v 2c速度会平滑地从 0 增加到最大值。积分后得到位置y (c/k)(θ − sinθ)其中k π/(x2 − x1)这就是 CamGen 中使用的核心公式之一。十、CamGen 常数是如何计算出来的这是电子凸轮设计中非常重要的一部分。例如x1 0.30 x2 0.42 x3 0.58 x4 0.70basedist 270 excitedist 90CamGen 生成c1 160.7 c2 321.4 c3 160.7k2 -115.7 k3 51.43这些数字并不是经验参数。它们是由位移连续 速度连续 总位移约束推导出来的。十一、第一段 SIN 曲线程序factor PI / (x2 - x1) theta (x - x1) * factory c1 / factor * (theta - sin(theta))其中factor π/(x2 − x1)当前例子x2 − x1 0.42 − 0.30 0.12因此factor π/0.12约为26.18十二、为什么 c2 2c1SIN 加速段结束时θ π速度公式v c1(1 − cosθ)所以v c1(1 − cosπ)因为cosπ −1所以v 2c1而中间匀速段速度就是 c2。为了保证速度连续c2 2c1因此c2 2 × c1十三、c1 如何计算第一段 SIN 位移y1 c1(x2 − x1)最后一段减速位移y3 c3(x4 − x3)如果加速和减速对称c3 c1总 Excitation 距离为 E。因此E c1(x2 − x1) c2(x3 − x2) c3(x4 − x3)如果x2 − x1 x4 − x3 A且c2 2c1则E c1·A 2c1·B c1·A即E 2c1(A B)所以c1 E / [2(A B)]对于当前参数A 0.12B 0.16E 90因此c1 90 / [2 × (0.12 0.16)]得到c1 160.714于是c2 321.428c3 160.714与 CamGen 生成的c1 160.7 c2 321.4 c3 160.7完全一致。十四、k2 如何计算匀速段公式y c2·x k2因此需要保证SIN 曲线 ↓ 匀速直线连接点位置连续。在 x x2 处c2·x2 k2 c1(x2 − x1)所以k2 c1(x2 − x1) − c2·x2代入k2 160.714 × 0.12 − 321.428 × 0.42得到k2 −115.714也就是k2 -115.7十五、k3 如何计算减速段y c3 / factor * (theta - sin(theta)) k3在减速开始位置 x x3 处必须与匀速段相等。因此c3(x4 − x3) k3 c2·x3 k2得到k3 c2·x3 k2 − c3(x4 − x3)代入当前参数k3 321.428 × 0.58 − 115.714 − 160.714 × 0.12得到k3 51.428即k3 51.43至此CamGen 中的所有关键常数都可以自己推导出来。十六、最终 CamGen 公式因此整个 Excitation 曲线可以写成y(x) 0 0 ≤ x x1 (c1/k)(θ − sinθ) x1 ≤ x x2 c2·x k2 x2 ≤ x x3 (c3/k)(θ − sinθ) k3 x3 ≤ x x4 E x4 ≤ x ≤ 1其中加速段θ (x − x1)·kk π/(x2 − x1)减速段θ π (x − x3)·k最终 Trio 表中的位置Y(x) x × BaseDistance y(x)这就是完整的电子凸轮位置函数。十七、对应到旋转刀对于旋转刀0° 360° │-----------------│可以把一个完整刀轴周期定义为0% 100% │-----------------│例如030% Base 同步 3042% 加速 4258% 高速同步 5870% 减速 70100% Base 同步最终得到平滑的刀轴速度刀轴速度┌─────────────┐ / \ ______/ \______而不是┌─────────────┐ _______/ \_______ ↑ ↑ 突然加速 突然减速后者会造成电机冲击机械振动伺服跟随误差增加产品切割位置波动高速情况下产生机械噪声。十八、为什么需要速度连续电子凸轮最基本的要求之一就是V_left V_right例如SIN 加速 ↓ ●──────── 匀速连接点不能出现速度突变速度 │ / │ / │ / │____●──────── ↑ 突变正确情况应该是速度 │ ________ │ / │ / │___/这样伺服电机不会突然改变速度。十九、进一步要求加速度连续如果设备速度非常高仅仅保证速度连续还不够。还需要A_left A_right进一步可以考虑 Jerk加加速度J dA/dt因此常见曲线可以分为曲线 | 平滑程度 | 应用--- | --- | ---线性 Ramp | ★★ | 低速机构5次多项式 | ★★★★ | 高速机械7次多项式 | ★★★★★ | 高动态9次多项式 | ★★★★★ | 高精度高速SIN | ★★★★ | 通用电子凸轮Trio FLEXLINK 的 options 中就提供了这些曲线类型。二十、FLEXLINK 参数与电子凸轮的关系可以把 FLEXLINK 理解成FLEXLINK │ ┌───────────┴───────────┐ ↓ ↓ Base Move Excitation │ │ 基础同步 凸轮补偿 │ │ └───────────┬───────────┘ ↓ 从轴最终位置几个核心参数BaseDistance基础同步距离base_distExcitationDistance凸轮补偿距离excite_distTotal Link Distance主轴一个运动周期link_distBase In凸轮开始之前的预留base_inBase Out凸轮结束之后的预留base_outExcite Acc / Dec凸轮加速、减速比例excite_acc / excite_dec二十一、旋转刀项目中的设计思路针对前面的 100400 mm 动态跟踪长度可以建立如下算法。首先输入产品跟踪长度 L然后计算高速同步区域 HighLen(L)。例如L 100 → HighLen 100 L 150 → HighLen 50 L 200 → HighLen 50 L 300 → HighLen 50 L 400 → HighLen 50但是不能简单写成if L 100: HighLen 100 else: HighLen 50因为在 L 100 → 101 时会产生巨大跳变。所以应该使用平滑函数。例如 SmoothStepS(t) 3t² − 2t³定义t (L − 100)/50限制0 ≤ t ≤ 1然后HighLen 50 50(1 − S(t))这样L 100 → HighLen 100 L 150 → HighLen 50中间自动平滑变化。二十二、进一步计算高速区角度旋转刀有效同步区180°因此θ_H 180° × HighLen / L例如L 100θ_H 180°整个 90°270° 都是高速同步。L 200θ_H 180 × 50/200 45°即高速区域可以设计为 90°135°。然后 135°270° 进行平滑低速调整。L 400θ_H 180 × 50/400 22.5°高速区进一步缩短。二十三、最终形成动态电子凸轮整个系统可以设计成产品跟踪长度 L │ ▼ ┌─────────────────┐ │ HighLen 计算 │ │ 100400mm │ └────────┬────────┘ │ ▼ 高速区角度计算 │ ▼ ┌──────────────────┐ │ 电子凸轮参数生成 │ │ x1 x2 x3 x4 │ │ c1 c2 c3 │ │ k2 k3 │ └────────┬─────────┘ │ ▼ FLEXLINK/CAM │ ▼ Trio 运动控制器 │ ▼ 旋转刀伺服这样就不需要针对 100/150/200/250/300/350/400 mm 分别制作七套凸轮表。而是输入产品长度 → 自动计算凸轮参数 → 自动生成运动曲线。二十四、工程设计时最重要的几个原则1. 先设计位置再设计速度 核心是 Y f(X)而不是直接控制 V f(X)。2. 保证位移连续 Y_left Y_right3. 保证速度连续 V_left V_right4. 高速设备最好保证加速度连续 A_left A_right5. 尽量控制 Jerk 高速旋转刀尤其需要考虑 J dA/dt。6. 不要让产品长度变化导致凸轮参数突变 应该 100mm → 120mm → 150mm → 200mm 连续调整而不是 100mm 一套 Cam、101mm 又另一套 Cam。二十五、总结电子凸轮本质上是一个数学映射Y f(X)通过这个映射可以让从轴按照主轴的位置自动改变运动速度。Trio 的 FLEXLINK() 则进一步将运动拆分成FinalMove BaseMove ExcitationMove其中Base Move 负责基础同步Excitation Move 负责提前、滞后和动态补偿SIN / 5次 / 7次 / 9次多项式负责平滑运动CamGen 则可以将这些数学关系自动转换成凸轮表或公式。对于旋转刀、飞剪、连续送料等设备真正值得设计的不是一张固定的 CAMTABLE而是一套产品长度 → 高速跟踪区 → 凸轮参数 → 位置曲线 → 速度/加速度曲线 → Trio FLEXLINK的参数化电子凸轮算法。这样当产品从 100 mm 改成 150 mm、200 mm 甚至 400 mm 时系统都可以实时重新计算凸轮而不需要重新手工制作凸轮表。最终目标不是让电机按照某个速度运行而是让旋转刀的每一个角度都与传送带的每一个位置建立确定、连续、可计算的运动关系。