4. 前馈控制技术:速度前馈与加速度前馈
做龙门机器人控制这么多年,我越来越觉得——反馈控制是底线,前馈控制才是上限。
什么意思呢?
反馈控制就像你开车时盯着后视镜调整方向。你看到偏了再打方向盘,总归是慢半拍。前馈控制呢?是你提前看到弯道,提前打方向。车还没到弯心,你的动作已经到位了。
说白了,前馈就是「预判」。在龙门机器人这种高速高精度的场景下,没有前馈,你很难把跟随误差压到理想水平。
4.1 速度前馈与加速度前馈的原理
先讲原理,不绕弯子。
龙门机器人的运动控制,本质上是在解决一个「力与运动」的关系。你给电机一个电流,电机产生力矩,力矩驱动负载运动。但问题是——负载有惯性,有摩擦力,有各种扰动。
反馈控制器(比如PID)看到误差才动作。误差越大,输出越大。但如果你只靠反馈,你会发现一个现象:速度越快,跟随误差越大。
为什么会这样?
因为反馈天生滞后。它必须等到误差出现才能响应。而前馈不一样,它直接根据你期望的运动轨迹,提前计算出需要施加的力。
速度前馈:根据目标速度,提前给一个与速度成正比的补偿量。主要克服的是粘性摩擦和反电动势。
加速度前馈:根据目标加速度,提前给一个与加速度成正比的补偿量。主要克服的是惯性力。
我打个比方你就明白了。
你推一个很重的箱子。如果你等箱子开始动了再加力,那起步一定很慢。但如果你提前预估好需要多大的力,在推的一瞬间就使上劲——箱子起步就快,而且平稳。
速度前馈就是那个「预估的力」,加速度前馈就是那个「起步的爆发力」。
核心公式(简化版):
前馈输出 = Kvff × 目标速度 + Kaff × 目标加速度
其中:
- Kvff:速度前馈增益
- Kaff:加速度前馈增益
4.2 前馈补偿量的标定方法
标定,说白了就是找到合适的Kvff和Kaff。
这步做不好,前馈不但没效果,反而可能帮倒忙。我见过太多人把前馈增益调得过大,结果系统震荡得一塌糊涂。
我个人习惯用「两步法」来标定:
- 先标加速度前馈
- 再标速度前馈
为什么是这个顺序?
因为加速度前馈影响的是动态响应,速度前馈影响的是稳态跟随。先搞定动态,再优化稳态,逻辑上更顺。
第一步:标定加速度前馈
操作步骤:
- 让机器人跑一段梯形速度曲线(加速-匀速-减速)
- 将速度前馈设为0
- 逐渐增大加速度前馈增益,观察加速段和减速段的跟随误差
- 理想的加速度前馈,应该让加速段和减速段的误差峰值基本对称且最小
我曾经在一个双驱龙门项目上,加速度前馈标定花了整整两天。为什么?因为两个轴的惯量不一样,标出来的Kaff也不一样。后来我干脆写了个自动扫参脚本,让机器自己跑,自己记录误差曲线。
小技巧:
标定加速度前馈时,建议用S型速度曲线而不是梯形曲线。S型曲线的加速度变化更平滑,不容易激发机械谐振,标出来的参数更准。
第二步:标定速度前馈
操作步骤:
- 保持刚才标好的加速度前馈不变
- 让机器人跑一段匀速运动
- 逐渐增大速度前馈增益,观察匀速段的跟随误差
- 理想的速度前馈,应该让匀速段的误差趋近于0
这里有个坑,我得提醒你。
注意:
速度前馈增益不要调得太大。调太大,系统对速度指令的噪声会非常敏感。你想想看,速度指令上有一点毛刺,经过前馈放大后直接变成电流波动——电机就开始抖了。
我一般把速度前馈控制在0.8~1.2之间,超过1.5就要小心了。
4.3 前馈与反馈的协同工作
前馈和反馈不是二选一的关系,而是搭档关系。
前馈负责「大头」——把已知的、可预测的力提前补偿掉。反馈负责「小头」——把模型误差、摩擦力变化、外部扰动这些不确定因素吃掉。
你可以这样理解:
- 前馈:开环补偿,基于模型,响应快,无延迟
- 反馈:闭环修正,基于误差,响应慢,但能消除稳态误差
两者配合得好,效果是1+1>2。
我画了一张图,帮你理清这个逻辑:
从图上你能看到:目标轨迹同时送给前馈和反馈。前馈直接算出一个补偿量,反馈根据误差算出一个修正量,两者相加后送给被控对象。
这样做的优势很明显:
- 前馈承担了大部分的控制任务,反馈只需要处理「残差」
- 反馈的增益可以适当降低,系统更稳定
- 整体跟随精度大幅提升
我做过一个对比测试:只用PID反馈,跟随误差大约0.5mm;加上前馈后,误差直接降到0.05mm以内。十倍以上的提升。
实战建议:
前馈和反馈的权重分配,我一般遵循「三七原则」——前馈承担70%的控制力,反馈承担30%。当然这个比例不是固定的,要根据你的机械刚性和负载特性来调。
如果机械刚性差,前馈比例要降低,否则容易激振。如果机械刚性很好,前馈比例可以提到80%以上。
4.4 常见问题与避坑
最后聊几个我踩过的坑。
坑一:前馈参数和反馈参数互相打架
我曾经在一个项目上,前馈和反馈都调得很大。结果系统响应快是快了,但一遇到微小扰动就震荡。后来发现是前馈和反馈在「抢功劳」——前馈已经补偿了大部分,反馈还在拼命修正,两者叠加导致过冲。
解决办法:先调好前馈,再调反馈。前馈调好后,反馈的P增益可以适当降低。
坑二:加速度前馈导致末端抖动
龙门机器人如果结构刚性不够,加速度前馈太大时,加减速瞬间会产生明显的抖动。这是因为加速度突变激发了机械谐振。
解决办法:用S型速度曲线平滑加速度变化,或者在前馈路径上加一个低通滤波器。
坑三:速度前馈在低速时效果不明显
低速运行时,摩擦力占主导,而摩擦力是非线性的。速度前馈是线性补偿,对非线性摩擦力效果有限。
解决办法:低速段可以引入摩擦力前馈模型(比如Stribeck模型),或者干脆在低速时降低速度前馈权重,让反馈来处理。
嗯,前馈控制这块内容不少,但核心就一句话:用已知的模型,提前做补偿。你模型建得越准,前馈效果越好。你标定做得越细,系统跑得越稳。
下次调试龙门机器人时,试试先把前馈调好,再动反馈。你会发现,原来那些让你头疼的跟随误差,其实没那么难搞定。
公众号:蓝海资料掘金营,微信deep3321