1. 项目背景与核心需求
电子凸轮技术作为现代运动控制领域的重要实现方式,正在逐步替代传统机械凸轮。这次要记录的"区间运动Ver2.2.0"版本,主要解决了位置跟随场景下双向运动(去程+返程)的平滑控制问题。在实际产线中,这种需求非常普遍——比如物料抓取机构需要在A、B两点间往复运动,同时还要保持与传送带的同步。
传统解决方案要么采用机械凸轮(调整困难、维护成本高),要么使用简单的PLC点位控制(运动不够平滑)。我们这个版本的改进重点,就是让电子凸轮在保持位置跟随精度的同时,实现往返运动的无缝衔接。实测下来,新版本在包装机械上的应用,使设备节拍从原来的每分钟60次提升到了85次,而且电机振动明显减小。
2. 系统架构设计
2.1 硬件组成
- 主控制器:选用X86工控机运行实时Linux系统,500μs的控制周期
- 伺服驱动:支持EtherCAT总线的750W伺服电机,23位绝对值编码器
- 位置反馈:采用SSI接口的直线光栅尺,分辨率0.1μm
- 安全模块:双回路急停+STO安全转矩关断
2.2 软件框架
cpp复制class ElectronicCam {
public:
void SetMasterPos(int64_t pos); // 主编码器位置输入
void Update(); // 控制周期更新
private:
TrajectoryPlanner planner_; // 轨迹规划器
FollowerController follower_; // 跟随控制器
MotionProfile profile_; // 运动曲线配置
};
关键设计原则:将轨迹规划(前馈)与位置跟随(反馈)分离处理,避免两者相互干扰
3. 核心算法实现
3.1 双向S曲线规划
去程和返程采用独立的七段式S型速度曲线,通过衔接点平滑过渡:
code复制去程阶段:加速 → 匀加速 → 减加速 → 匀速 → 加减速 → 匀减速 → 减速停止
返程阶段:反向加速 → ...(对称曲线)
参数计算公式:
mathematica复制最大加加速度 J_max = (16 * V_max) / (T_total^3)
各阶段时间 T1 = T7 = V_max / (2*J_max*T1^2)
3.2 位置跟随补偿
采用二阶前馈+PID复合控制:
code复制前馈量 = Kf1*主位置微分 + Kf2*主位置二阶微分
反馈量 = Kp*e + Ki*∫e dt + Kd*de/dt
实测参数(单位mm/s):
| 参数 | 去程值 | 返程值 | 说明 |
|---|---|---|---|
| Kp | 12.5 | 11.8 | 返程需略小 |
| Ki | 0.05 | 0.05 | 保持不变 |
| Kd | 0.2 | 0.18 | 防超调 |
4. 具体实现步骤
4.1 相位同步建立
- 主从轴归零后,记录初始相位差Δθ
- 启动时先空跑3个周期建立同步关系
- 动态调整公式:θ_slave = θ_master * Ratio + Δθ + Compensation
4.2 往返切换逻辑
cpp复制// 在转折点前5ms开始预计算
if (fabs(target_pos - current_pos) < transition_threshold) {
next_profile = (current_direction == FORWARD) ?
&return_profile : &go_profile;
planner_.BlendProfiles(current_profile, next_profile);
}
4.3 实时性保障
- EtherCAT周期设置为500μs
- 使用Xenomai实时补丁
- 关键线程绑定到CPU核心3(避免被系统任务抢占)
5. 调试技巧与问题排查
5.1 常见振动问题
- 转折点抖动:检查S曲线各阶段的加加速度是否连续
- 跟随滞后:适当增大前馈系数Kf2(但不超过0.7)
- 返程超调:降低返程阶段的Kd参数
5.2 参数整定步骤
- 先调前馈(开环):确保轨迹跟踪误差<5%
- 再调反馈(闭环):从小增益开始逐步增加
- 最后微调转折点:用0.1倍速观察过渡平滑度
5.3 诊断工具
- 使用ScopeView实时监控:
- 通道1:主位置
- 通道2:从位置
- 通道3:位置误差
- 通道4:控制输出
6. 实际应用效果
在锂电池极片分切设备上验证:
- 运动行程:300mm
- 最大速度:2m/s
- 重复定位精度:±0.02mm
- 往返切换时间:<3ms
对比上一版本改进:
| 指标 | V2.1.0 | V2.2.0 | 提升 |
|---|---|---|---|
| 周期时间 | 720ms | 580ms | 19% |
| 最大冲击 | 0.5G | 0.2G | 60%↓ |
| 电机温升 | 45K | 32K | 29%↓ |
这个方案最让我惊喜的是转折点的处理——通过提前计算和曲线混合,完全消除了传统方案中常见的停顿感。有个小技巧:在调试时用慢速0.1倍播放设备运动视频,能更直观地发现过渡是否自然。