第4章 前馈补偿原理:速度前馈与加速度前馈的数学模型与实现

前馈补偿,说白了就是“提前给指令”。

我刚开始做伺服调试那会儿,总觉得PID能搞定一切。直到有一次调一个高速贴片机,位置跟随误差怎么都压不下去。后来老师傅跟我说:“你试试前馈。” 嗯,从那以后,我的调试工具箱里就多了这把利器。

4.1 为什么需要前馈?

先想一个问题:一个电机从静止加速到3000rpm,靠什么?

靠PID的误差累积。位置环看到偏差了,速度环才动;速度环看到速度差了,电流环才给力矩。这一圈下来,滞后是必然的。

前馈的思路很简单:既然知道要加速,为什么不提前给一个力矩?

核心观点:前馈不依赖误差,它依赖“期望轨迹”。误差还没产生,补偿就已经到位了。

我个人的习惯是:先调好前馈,再用PID去擦屁股。这样PID的负担小,系统也不容易振荡。

4.2 速度前馈的数学模型

速度前馈,补偿的是速度环的滞后。

数学上很简单:

Vff(t) = Kvff × dθ_ref(t) / dt

其中:

  • Vff — 速度前馈输出(通常叠加到速度环给定)
  • Kvff — 速度前馈增益(0~100%)
  • dθ_ref/dt — 期望位置的微分,即期望速度

你想想看,如果Kvff=100%,意味着速度环的给定完全由前馈提供。那PID只需要处理扰动和模型误差。

实战经验:我在做印刷机套准控制时,Kvff一般设在85%~95%。设到100%理论上完美,但实际系统有摩擦、惯量变化,留一点余量给PID更稳妥。

4.3 加速度前馈的数学模型

加速度前馈,补偿的是电流环(力矩环)的滞后。

公式长这样:

Aff(t) = Kaff × d²θ_ref(t) / dt²

其中:

  • Aff — 加速度前馈输出(叠加到电流环给定)
  • Kaff — 加速度前馈增益
  • d²θ_ref/dt² — 期望加速度

为什么要加速度前馈?因为速度前馈只解决了“匀速段”的滞后。在加速和减速阶段,惯性力矩是主要矛盾。没有加速度前馈,电机启动时会有明显的“拖尾”。

注意:加速度前馈对噪声非常敏感。期望轨迹的二次微分会放大高频噪声。我建议在计算加速度前,先对位置指令做一次低通滤波。

4.4 前馈在控制系统中的位置

下面这张图是我自己画的前馈结构,你看一眼就明白了:

速度前馈与加速度前馈在伺服系统中的位置 前馈补偿在伺服系统中的位置 期望位置 θ_ref d/dt (速度) d²/dt² (加速度) Kvff Kaff 位置环 PID 速度环 电流环+电机 实际位置 θ_act 位置反馈 图例说明: • 实线箭头:反馈控制路径(PID闭环) • 虚线箭头:前馈补偿路径(开环,不依赖误差) • 速度前馈(Kvff)叠加到速度环给定,加速度前馈(Kaff)叠加到电流环给定 • 前馈路径与反馈路径并行工作,互不干扰

从图上你能看到:前馈是“开环”的,它不依赖反馈误差。虚线路径直接绕过PID,把补偿量送到速度环和电流环。

4.5 离散域实现

实际控制器里,我们处理的是离散信号。微分要换成差分。

速度前馈的离散形式:

Vff[n] = Kvff × (θ_ref[n] - θ_ref[n-1]) / Ts

加速度前馈的离散形式:

Aff[n] = Kaff × (θ_ref[n] - 2×θ_ref[n-1] + θ_ref[n-2]) / Ts²

其中 Ts 是控制周期。

我曾经踩过的坑:加速度前馈的差分对噪声极其敏感。如果位置指令有量化噪声,二阶差分出来的值可能比实际加速度还大。我的做法是:先对位置指令做3点滑动平均,再算加速度。

4.6 前馈增益的整定方法

整定前馈增益,我有一套自己的流程:

  1. 先关掉前馈,只跑PID。记录跟随误差曲线。
  2. 逐步增加Kvff,观察匀速段的误差。当匀速段误差接近0时,Kvff就差不多了。
  3. 再增加Kaff,观察加减速段的误差峰值。峰值下降就是有效。
  4. 微调:两个增益互相影响,需要来回调几次。

下面这个表是我常用的参考值:

应用场景 Kvff 推荐值 Kaff 推荐值 说明
低速高精度(如加工中心) 80%~90% 50%~70% 精度优先,前馈不宜过高
中速通用(如包装机) 90%~95% 70%~85% 平衡精度与响应
高速高动态(如贴片机) 95%~100% 85%~95% 响应优先,注意噪声

我的习惯:先设Kaff=0,调Kvff到匀速段误差消失。再加Kaff,每次加5%,观察加速段峰值。加到峰值不再下降反而开始振荡时,退回5%就是最佳值。

4.7 前馈与反馈的配合

前馈不是万能的。它依赖精确的模型。如果系统惯量变化大(比如机器人抓取不同重量的工件),前馈效果会打折扣。

这时候我的做法是:前馈做粗调,反馈做细调。前馈承担80%的补偿,反馈处理剩下的20%扰动和模型误差。

你想想看,如果前馈能搞定大部分,PID的增益就可以设得低一些。系统更稳定,也不容易振荡。

总结一句话:前馈是“预见性”补偿,反馈是“纠错性”补偿。两者配合,才能做到又快又准。