3. 速度前馈设计:基于模型的速度前馈,加速度前馈,前馈增益整定
前馈控制,说白了就是「提前给一脚油」。
我刚开始做运动控制那会儿,总觉得反馈控制就够了。PID调得死死的,啥都能搞定。直到有一次做高速贴片机项目,速度一上去,位置就超调,怎么调PID都没用。后来老工程师跟我说:「你试试前馈。」嗯,这一试,就打开了新世界的大门。
3.1 为什么需要速度前馈?
先想一个问题:你的电机要跑一个S型速度曲线。反馈控制是怎么做的?
它看到实际位置跟目标位置有偏差,然后拼命去追。这就像你开车,眼睛盯着前车,人家刹车你才刹车,永远慢半拍。反馈控制天生就有滞后性。
前馈不一样。它直接告诉驱动器:「接下来我要加速了,你先准备好力矩。」说白了,就是提前补偿。
核心思想:前馈不依赖误差,它依赖模型。模型越准,前馈效果越好。
3.2 基于模型的速度前馈
速度前馈的公式其实很简单:
Vff = Kvff * Vcmd
其中:
- Vff:速度前馈输出(通常是电压或力矩)
- Kvff:速度前馈增益
- Vcmd:指令速度
但这里有个坑。Kvff 不是随便给的。它取决于你的系统模型。
我习惯的做法是:先做一次开环测试。给一个固定速度指令,看实际速度跟指令速度的比例关系。这个比例,就是 Kvff 的初始值。
举个例子:
// 伪代码示例:速度前馈计算
float Kvff = 0.85; // 初始值来自开环测试
float Vcmd = 500; // 目标速度 500 rpm
float Vff = Kvff * Vcmd; // 前馈值 425
// 最终输出 = 前馈 + 反馈
float output = Vff + PID_Output;
你可能会问:「为什么不是1.0?」因为系统有摩擦、有阻尼。指令速度500,实际可能只有450。所以 Kvff 通常小于1。
我的经验:Kvff 的初始值可以设为 0.8~0.9,然后逐步增加。如果系统出现振荡,说明前馈过强了,往回退一点。
3.3 加速度前馈:解决「起步肉」的问题
速度前馈解决了匀速段的跟踪问题。但加速段呢?
你想想看,电机从静止加速到高速,需要克服惯性。这个惯性力矩,速度前馈是补偿不了的。因为它只跟速度有关,跟加速度无关。
这时候就需要加速度前馈。
Aff = Kaff * Acmd
其中:
- Aff:加速度前馈输出
- Kaff:加速度前馈增益
- Acmd:指令加速度
加速度前馈的物理意义很直观:它直接提供克服惯性所需的力矩。
我记得有一次做龙门铣床的同步控制。两个轴要完全同步,但加速段总是差几个脉冲。调PID调了一整天,效果都不理想。后来加了加速度前馈,问题一下子就解决了。说白了,就是让两个轴在加速时「同时发力」。
关键点:加速度前馈的增益 Kaff 通常等于系统的总惯量(折算到电机轴)。如果你知道负载惯量,可以直接算出来。
3.4 前馈增益整定:实战方法
理论说完了,咱们聊聊怎么调。
我总结了一套「三步整定法」,分享给你:
- 先调速度前馈
- 设置 Kaff = 0
- 让系统跑一个梯形速度曲线
- 观察匀速段的跟踪误差
- 逐步增加 Kvff,直到匀速段误差最小
- 再加加速度前馈
- 保持 Kvff 不变
- 观察加速段和减速段的误差
- 逐步增加 Kaff,直到加减速段误差最小
- 微调与折中
- 有时候 Kvff 和 Kaff 会互相影响
- 我习惯先粗调,再细调,来回两三次就差不多了
注意:前馈增益不是越大越好。过大的前馈会导致系统对模型误差敏感,甚至引发振荡。我曾经在一个项目中把 Kvff 调到 0.98,结果系统在高速时剧烈抖动。后来降到 0.92,稳如老狗。
3.5 知识体系结构图
下面这张图,帮你理清速度前馈设计的核心逻辑:
3.6 实战中的避坑指南
做前馈整定这么多年,我踩过的坑不少。分享几个典型的:
- 「前馈一加就振荡」—— 我曾经在一个高速分拣机上,Kvff 从0.85加到0.9,系统就开始抖。后来发现是机械共振。解决办法:降低前馈增益,或者加一个低通滤波器。
- 「加减速段误差反而变大」—— 有一次我调加速度前馈,Kaff 加得太大,结果加速段过冲了。说白了,前馈补偿过头了。这时候要往回退,或者检查一下惯量参数对不对。
- 「低速段跟高速段表现不一样」—— 摩擦是非线性的。低速时静摩擦大,高速时动摩擦小。我习惯在低速段单独加一个摩擦前馈,跟速度前馈配合使用。
一个小技巧:如果你不确定前馈参数是否合适,可以先把反馈增益降低一半,然后观察前馈单独作用的效果。这样能更清楚地看到前馈的贡献。
3.7 小结
速度前馈设计,说白了就是三件事:
- 用速度前馈解决匀速段的跟踪问题
- 用加速度前馈解决加减速段的惯性问题
- 用三步整定法把两个增益调到最佳
记住,前馈不是万能的。它依赖模型,模型不准,前馈反而添乱。但如果你能把模型摸清楚,前馈就是提升系统性能的利器。