4、速度前馈设计:速度前馈的物理意义、前馈系数整定、前馈与加速度限制的关系

4.1 速度前馈到底在干什么?

咱们先聊点直观的。你想想看,一个伺服系统在跑位置轨迹时,如果只有PID反馈,会发生什么?

位置环的误差,说白了就是“追着跑”。指令往前走一步,实际位置落后一点,反馈才发力去追。这个滞后,在低速时还好,一旦速度提上来,误差就明显了。

速度前馈,就是提前告诉驱动器:“兄弟,接下来我要以这个速度跑,你先给点力。” 它不是等误差出来了再补,而是提前把速度对应的电压或电流算好,直接加进去。

我在项目中遇到过一台贴片机,贴装头高速移动时,位置误差总是超差。后来加了速度前馈,误差直接砍掉一半。嗯,就是这么立竿见影。

核心理解:速度前馈 = 提前给一个“速度对应的驱动力”,让系统少犯错,而不是等犯错再纠正。

4.2 物理意义:从“推车”说起

我习惯用一个比喻来解释速度前馈的物理意义——推车。

假设你推一辆小车,目标是让它匀速前进。如果你只是等它慢了再推一把(反馈),那它永远是一顿一顿的。但如果你知道它要匀速,就持续用一个恒定的力推它(前馈),它就能平稳运行。

在电机控制里,速度前馈的物理公式很简单:

Vff = Kv * Vcmd

其中:

  • Vff:速度前馈输出(通常是电压或电流值)
  • Kv:速度前馈系数(也叫前馈增益)
  • Vcmd:指令速度(来自轨迹规划器)

说白了,这个公式就是在说:指令速度是多少,我就按比例给你补多少力。理想情况下,如果系统是线性的,Kv 刚好等于电机反电动势系数,那系统就能做到“零误差跟踪”。

但现实没那么完美。摩擦、惯量、非线性因素都会让这个系数需要微调。我见过有人直接把 Kv 设成 1.0,结果系统震荡得一塌糊涂。为什么?因为前馈给多了,系统过冲了。

小技巧:速度前馈不是越大越好。它只是“辅助”,不是“主力”。主力还是反馈环。

4.3 前馈系数整定:怎么调?

整定速度前馈系数,我有一套自己的流程。不是什么高深理论,就是实战经验。

4.3.1 先关掉前馈,调好反馈

这是前提。速度环和位置环先调稳,再开前馈。否则你都不知道震荡是反馈引起的还是前馈引起的。

4.3.2 从零开始,逐步增加

把 Kv 从 0 开始,每次加 0.05 或 0.1。跑一个梯形速度曲线,观察位置误差曲线。

  • 误差曲线在加速段和减速段对称吗? 如果加速段误差大,减速段误差小,说明前馈不够。
  • 误差曲线出现反向过冲? 说明前馈给多了,减一点。

我曾经调一个龙门架,Kv 从 0.3 加到 0.6 时,误差从 0.2mm 降到了 0.05mm。再往上加,反而开始震荡。嗯,0.6 就是那个“甜点”。

4.3.3 用“误差-速度”曲线辅助判断

我习惯在示波器上同时看位置误差和指令速度。如果误差波形和速度波形形状相似,只是幅度不同,那说明前馈系数基本对了。如果误差波形在速度变化时出现尖峰,说明前馈系数还需要微调。

整定口诀:反馈调稳,前馈慢加。误差对称,系数到位。过冲出现,减量回退。

4.4 前馈与加速度限制的关系

这个问题容易被忽略,但很重要。

速度前馈只补偿“匀速段”的驱动力。那加速段和减速段呢?

加速段需要额外的力来克服惯量。这个力,速度前馈是算不出来的。它只认速度,不认加速度。所以,如果加速度很大,速度前馈就不够用了。

这时候,就需要加速度前馈来配合。但咱们这节只讲速度前馈,所以重点在于:加速度限制会影响速度前馈的效果

举个例子:

你设了一个很高的加速度,比如 10m/s²。速度前馈只补偿匀速段的力,加速段全靠反馈去追。结果就是加速段误差很大,系统可能超调甚至震荡。

反过来,如果你把加速度限制设得低一些,比如 2m/s²,那加速段平缓,速度前馈就能覆盖大部分驱动力,反馈只需要做微调。

加速度设置 速度前馈效果 反馈负担 系统稳定性
高(如 10m/s²) 差(加速段补偿不足) 易震荡
中(如 5m/s²) 一般 中等 可接受
低(如 2m/s²) 好(加速段平缓) 稳定

注意:不要为了追求速度前馈的效果,把加速度设得太低。那会影响生产效率。要找到一个平衡点——加速度够快,同时前馈能覆盖大部分误差。

4.5 实战中的避坑指南

我踩过不少坑,挑几个典型的说说。

坑一:前馈系数设得太大,系统高频震荡。

我曾经在一个高速分拣机上,Kv 设到 0.9,结果电机在高频段嗡嗡响。后来发现是前馈把高频噪声也放大了。解决办法:加一个低通滤波器,或者降低 Kv 到 0.7。

坑二:忽略了摩擦补偿。

速度前馈只补偿“速度相关”的力。但静摩擦和库仑摩擦是“速度无关”的。如果系统摩擦大,光靠速度前馈是不够的。我习惯在低速段额外加一个摩擦前馈项。

坑三:不同速度段用同一个系数。

有些系统的特性不是线性的。低速时摩擦占主导,高速时反电动势占主导。我见过一个案例,Kv 在低速时刚好,高速时就过冲了。解决办法:做分段前馈,或者用自适应算法。

我的习惯:先做一次“速度-误差”扫描,看看不同速度下的误差特性。如果误差随速度线性变化,一个 Kv 就够了。如果不是,就得考虑分段或非线性前馈。

4.6 小结

速度前馈不是什么玄学。它就是提前给一个“速度对应的力”,让系统少犯错。整定时记住:反馈先调稳,前馈慢慢加。加速度别设太高,否则前馈也救不了你。

嗯,这节就到这。下一节咱们聊加速度前馈,那又是另一个故事了。