4. 速度前馈补偿原理
前馈控制,说白了就是“提前给一脚油”。
我刚开始做伺服调试那会儿,总觉得反馈控制就够了——有误差就调,调准了不就行了吗?后来碰到一个高速贴片机项目,才彻底改变了我的看法。那个设备要求跟随误差控制在 0.1 个脉冲以内,光靠 PID 怎么调都抖,最后是前馈救了我。
4.1 前馈控制的基本思想
反馈控制有个天生的毛病:它只能等误差出来了再动作。你想想看,这就像开车时你闭着眼睛,等撞到东西了再打方向盘——肯定来不及。
前馈的思路正好相反:它提前知道你要干什么,先把控制量给出去。
在伺服系统里,速度前馈就是把速度指令直接“抄近路”送到电流环。公式很简单:
Vff = Kvf × Vcmd
其中:
- Vff —— 前馈补偿量
- Kvf —— 速度前馈系数(0 ~ 100%)
- Vcmd —— 速度指令值
这个补偿量会和反馈控制器的输出叠加,一起驱动电机。这样一来,电机在收到反馈误差之前,就已经开始动作了。
核心理解:前馈不负责“纠偏”,它负责“预判”。反馈负责剩下的那点残差。
4.2 速度前馈系数的整定方法
系数整定这事儿,我踩过不少坑。一开始我总想着越大越好,结果系统抖得像筛子。后来才明白,前馈系数不是越大越好,而是要“刚刚好”。
我的整定步骤一般是这样的:
- 先把前馈系数设成 0,调好基础的 PID 参数,让系统稳定运行。
- 给一个梯形速度曲线,观察跟随误差的波形。
- 逐步增加 Kvf,每次加 5% ~ 10%,看误差峰值的变化。
- 找到误差最小的点——这时候再往上加,误差反而会变大或者系统开始振荡。
- 回退 5%,留点安全余量。
我曾经在一个龙门双驱项目上,把前馈系数从 0 调到 85%,跟随误差从 0.5mm 直接压到了 0.02mm。但再往上调到 92%,系统就开始嘎嘎响了——那就是过冲的临界点。
我的习惯:整定前馈系数时,最好用示波器同时看速度指令和实际速度的波形。两者重合得越好,前馈效果就越理想。
4.3 前馈与反馈的协同工作
前馈和反馈不是谁替代谁的关系,它们是搭档。我经常跟团队里的年轻人说:反馈管“稳”,前馈管“快”。
具体怎么协同?看这张图就清楚了:
从图上你能看到:速度指令同时走了两条路。一条经过前馈直接到加法器,另一条经过反馈控制器。前馈把“大头”吃掉了,反馈只需要处理剩下的“小头”。
注意:前馈不能完全替代反馈。如果系统有摩擦力变化、负载突变等扰动,前馈是看不见的,必须靠反馈来补偿。我曾经见过有人把前馈设到 100%,然后反馈基本不干活了——结果一遇到负载变化,系统直接飞车。
4.4 前馈对跟随误差的抑制效果
前馈到底能压掉多少误差?我拿一个实际案例来说。
某次调试一台高速点胶机,运动速度 300mm/s,加速度 0.5g。不加前馈时,跟随误差峰值大约 0.8mm。加上 70% 的速度前馈后,误差直接降到 0.05mm。效果对比如下:
| 工况 | 前馈系数 | 跟随误差峰值 | 稳态误差 |
|---|---|---|---|
| 纯反馈 | 0% | 0.80 mm | 0.02 mm |
| 加前馈 | 50% | 0.35 mm | 0.01 mm |
| 加前馈 | 70% | 0.05 mm | <0.01 mm |
| 过补偿 | 90% | 0.12 mm(振荡) | 0.03 mm |
你看,前馈系数从 0 到 70%,误差下降了 16 倍。但到了 90% 反而恶化了——这就是过补偿的典型表现。
为什么会这样?因为前馈是基于模型计算的,而模型永远有误差。你强行用前馈去补偿所有误差,反而会把模型误差放大。
经验之谈:前馈系数整定的黄金区间通常在 60% ~ 85% 之间。具体数值取决于机械刚度、惯量比和摩擦特性。我个人的习惯是:先调到误差最小,再往回退 5% ~ 10% 作为安全余量。
最后说一句:前馈不是万能药。如果你的机械本身有间隙、共振或者严重非线性,前馈的效果会大打折扣。这时候先解决机械问题,再来调前馈,才是正道。