4. 速度前馈补偿原理

前馈控制,说白了就是“提前给一脚油”。

我刚开始做伺服调试那会儿,总觉得反馈控制就够了——有误差就调,调准了不就行了吗?后来碰到一个高速贴片机项目,才彻底改变了我的看法。那个设备要求跟随误差控制在 0.1 个脉冲以内,光靠 PID 怎么调都抖,最后是前馈救了我。

4.1 前馈控制的基本思想

反馈控制有个天生的毛病:它只能等误差出来了再动作。你想想看,这就像开车时你闭着眼睛,等撞到东西了再打方向盘——肯定来不及。

前馈的思路正好相反:它提前知道你要干什么,先把控制量给出去。

在伺服系统里,速度前馈就是把速度指令直接“抄近路”送到电流环。公式很简单:

Vff = Kvf × Vcmd

其中:

  • Vff —— 前馈补偿量
  • Kvf —— 速度前馈系数(0 ~ 100%)
  • Vcmd —— 速度指令值

这个补偿量会和反馈控制器的输出叠加,一起驱动电机。这样一来,电机在收到反馈误差之前,就已经开始动作了。

核心理解:前馈不负责“纠偏”,它负责“预判”。反馈负责剩下的那点残差。

4.2 速度前馈系数的整定方法

系数整定这事儿,我踩过不少坑。一开始我总想着越大越好,结果系统抖得像筛子。后来才明白,前馈系数不是越大越好,而是要“刚刚好”。

我的整定步骤一般是这样的:

  1. 先把前馈系数设成 0,调好基础的 PID 参数,让系统稳定运行。
  2. 给一个梯形速度曲线,观察跟随误差的波形。
  3. 逐步增加 Kvf,每次加 5% ~ 10%,看误差峰值的变化。
  4. 找到误差最小的点——这时候再往上加,误差反而会变大或者系统开始振荡。
  5. 回退 5%,留点安全余量。

我曾经在一个龙门双驱项目上,把前馈系数从 0 调到 85%,跟随误差从 0.5mm 直接压到了 0.02mm。但再往上调到 92%,系统就开始嘎嘎响了——那就是过冲的临界点。

我的习惯:整定前馈系数时,最好用示波器同时看速度指令和实际速度的波形。两者重合得越好,前馈效果就越理想。

4.3 前馈与反馈的协同工作

前馈和反馈不是谁替代谁的关系,它们是搭档。我经常跟团队里的年轻人说:反馈管“稳”,前馈管“快”。

具体怎么协同?看这张图就清楚了:

前馈与反馈协同控制结构 速度指令 前馈 Kvf PID 反馈 + 电流环 电机 反馈回路(编码器位置/速度) 协同逻辑: 前馈路径负责大部分跟随任务(约 70%~90%),反馈路径只处理模型误差和扰动。 两者叠加后送入电流环,既保证了响应速度,又保证了稳态精度。

从图上你能看到:速度指令同时走了两条路。一条经过前馈直接到加法器,另一条经过反馈控制器。前馈把“大头”吃掉了,反馈只需要处理剩下的“小头”。

注意:前馈不能完全替代反馈。如果系统有摩擦力变化、负载突变等扰动,前馈是看不见的,必须靠反馈来补偿。我曾经见过有人把前馈设到 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% 作为安全余量。

最后说一句:前馈不是万能药。如果你的机械本身有间隙、共振或者严重非线性,前馈的效果会大打折扣。这时候先解决机械问题,再来调前馈,才是正道。