2. 飞剪控制原理:电子凸轮与虚拟主轴、位置同步与速度同步、剪切角度与长度的数学关系

飞剪控制,说白了就是让一把“飞着的剪刀”在材料运动过程中完成剪切。听起来简单,但真正做起来,里面的门道可不少。我做了十几年运动控制,见过太多人在这个环节翻车。今天咱们就把核心原理掰开揉碎了讲清楚。

2.1 电子凸轮 vs 机械凸轮

老式飞剪用的是机械凸轮。一个物理凸轮装在主轴上,通过连杆驱动剪刀。机械凸轮的好处是可靠,坏处是——你换个产品规格就得换凸轮。换一次至少半天,还得重新调机械零点。

电子凸轮就不一样了。它用软件模拟凸轮曲线,主轴和从轴之间是虚拟的数学关系。我最早接触电子凸轮是在2008年,当时一台进口设备坏了,厂家报价换凸轮要8万。后来我用电子凸轮替代,成本不到2000块,效果还更好。

核心区别:

  • 机械凸轮:物理刚性连接,曲线固定,换型麻烦
  • 电子凸轮:软件定义曲线,柔性换型,可在线调整

2.2 虚拟主轴——让多轴“共舞”

虚拟主轴是什么?说白了就是软件里造一根“虚拟的轴”,所有从轴都跟着它跑。这根主轴没有物理电机,只有位置和速度数据。

我习惯把虚拟主轴比作乐队指挥。指挥的手势就是主轴位置,每个乐手(从轴)必须跟上指挥的节奏。在飞剪系统里,送料轴、剪切轴、追剪轴都同步于同一根虚拟主轴。

为什么要用虚拟主轴?

  • 物理主轴有惯性,加减速慢
  • 虚拟主轴可以瞬间变速,响应更快
  • 多轴之间没有机械耦合,调试更灵活

我的经验:虚拟主轴的周期时间建议设在1ms以内。我曾经遇到过客户用5ms周期,结果剪切精度差了0.5mm,后来改成1ms就解决了。周期越短,同步精度越高,但CPU负载也越大,需要权衡。

2.3 位置同步 vs 速度同步

这两个概念经常被混淆。我简单解释一下:

位置同步:从轴的位置和主轴的位置保持固定比例关系。比如主轴转一圈,从轴转两圈。这种模式下,从轴的位置误差会被实时修正。

速度同步:从轴的速度和主轴的速度保持固定比例。但位置误差不会自动修正。如果从轴因为负载变化慢了半拍,它不会主动追回来。

飞剪该用哪种?

答案是:剪切过程中用位置同步,回程过程中用速度同步

为什么?你想想看:剪切时剪刀必须精确对准材料上的剪切点,位置误差不能超过0.1mm,所以必须用位置同步。但回程时,剪刀只需要快速回到起始位置,用速度同步就够了,还能减少冲击。

注意:切换模式时一定要做平滑过渡。我曾经见过一个工程师直接硬切换,结果电机电流瞬间飙升,驱动器直接报警。正确的做法是用S曲线或多项式插值做过渡,时间至少留50ms。

2.4 剪切角度与长度的数学关系

这是飞剪控制的核心公式。咱们一步步推导:

假设材料速度为Vm,剪切辊周长为Lc,剪切长度为Ls

基本关系:

剪切辊转速 n = Vm / Lc   (单位:转/秒)
剪切周期 T = Ls / Vm     (单位:秒)
每周期剪切辊转过的角度 θ = 360° × T × n
                          = 360° × (Ls / Vm) × (Vm / Lc)
                          = 360° × Ls / Lc

这个公式告诉我们:剪切角度只和剪切长度、剪切辊周长有关,和材料速度无关。嗯,这里要注意——前提是剪切辊和材料完全同步。

实际应用中,剪切角度通常分为两个阶段:

  • 同步剪切区:剪刀从接触材料到完全剪断,这个区间内剪刀速度必须等于材料速度
  • 回程区:剪刀快速返回起始位置,准备下一次剪切

我习惯用一张图来表示这个关系:

飞剪剪切角度与长度关系图 主轴角度 (°) 360° 180° 从轴位置 (mm) 同步剪切区 回程区 剪切起始点 剪切完成点 θ₁ (加速区) θ₂ (同步剪切区) θ₃ (回程区) 从轴位置曲线

从图中可以看到,同步剪切区对应的是从轴位置和主轴位置线性相关的部分。这个区间内,剪刀速度等于材料速度。回程区则是快速返回,速度可以比材料速度快很多。

2.5 实际应用中的关键参数

根据我的项目经验,以下几个参数需要重点关注:

参数 符号 典型范围 影响
剪切长度 Ls 100-2000mm 决定剪切周期和角度
剪切辊周长 Lc 200-500mm 影响同步区角度占比
材料速度 Vm 10-300m/min 影响加速度和冲击
同步区角度 θsync 30°-120° 决定剪切质量

避坑指南:我曾经在一个项目中,客户要求剪切长度从500mm改到100mm。按公式算,剪切角度只有36°。但实际剪切时,剪刀还没完全加速到材料速度就已经进入剪切区了,结果切口全是毛刺。后来我把剪切辊周长从400mm改到200mm,同步区角度才够用。

2.6 电子凸轮曲线的生成

电子凸轮的核心是凸轮表。凸轮表定义了主轴位置和从轴位置的一一对应关系。生成凸轮表时,我一般用5次多项式插值,保证位置、速度、加速度都连续。

一个典型的凸轮表生成流程:

  1. 确定主轴角度范围(0°-360°)
  2. 划分区间(加速区、同步区、回程区)
  3. 设定每个区间的起始和结束位置
  4. 用多项式插值生成中间点
  5. 检查速度和加速度是否超限
// 伪代码示例:生成5次多项式凸轮表
function generateCamTable(Ls, Lc, Vm) {
    // 计算关键角度
    theta_sync = 360 * Ls / Lc;  // 同步区角度
    theta_accel = 30;            // 加速区角度(固定)
    theta_return = 360 - theta_sync - theta_accel;  // 回程区角度
    
    // 生成凸轮表(每1°一个点)
    for (theta = 0; theta <= 360; theta++) {
        if (theta < theta_accel) {
            // 加速区:5次多项式
            pos = quintic_interp(theta, 0, theta_accel, 0, Ls);
        } else if (theta < theta_accel + theta_sync) {
            // 同步区:线性
            pos = Ls + (theta - theta_accel) * (Lc - Ls) / theta_sync;
        } else {
            // 回程区:5次多项式
            pos = quintic_interp(theta, theta_accel + theta_sync, 360, Lc, 0);
        }
        cam_table[theta] = pos;
    }
    return cam_table;
}

嗯,这里要注意——凸轮表的点数不是越多越好。点数太多会占用大量内存,而且对CPU的实时性要求更高。我一般每1°一个点,360个点足够用了。如果主轴速度很高,可以适当减少点数,比如每2°一个点。

总结一下:

  • 电子凸轮替代机械凸轮,柔性更高
  • 虚拟主轴让多轴同步更简单
  • 剪切区用位置同步,回程区用速度同步
  • 剪切角度由长度和辊周长决定,和速度无关
  • 凸轮表用5次多项式生成,保证平滑

这些原理搞清楚了,飞剪控制就成功了一半。剩下的就是调试和优化,那又是另一门学问了。


公众号:蓝海资料掘金营,微信deep3321