4. 电流环优化:从理论到实战的完整指南
电流环,说白了就是FOC控制的"心脏"。我做了这么多年电机控制,发现很多震动问题其实都出在电流环上。今天咱们就聊聊怎么把这个核心环节调好。
4.1 电流环带宽设计:别盲目追求高带宽
带宽这个词,听起来很唬人。其实你可以把它理解为:电流环能多快响应你的指令。
带宽越高,响应越快,但代价是什么?噪声放大、系统不稳定。我在一个高速主轴项目里就吃过这个亏——把带宽设到2kHz,结果电机高频啸叫,电流波形跟心电图似的。
带宽设计经验法则:
- 通用伺服:500Hz ~ 1kHz
- 高速主轴:1kHz ~ 2kHz
- 机器人关节:300Hz ~ 800Hz
- 无人机电调:200Hz ~ 500Hz
为什么会这样?因为带宽受限于PWM频率和采样率。理论上,带宽不能超过PWM频率的1/10。比如你PWM是20kHz,那带宽最多2kHz。我个人习惯留30%余量,取1.4kHz左右。
注意:带宽不是越高越好。高带宽会放大电流采样噪声,导致电机发热、震动加剧。我曾经在一个项目中把带宽从800Hz提到1.2kHz,结果电机温度直接升了15度。
4.2 PI参数整定:极点配置法实战
PI参数整定,我见过太多人还在用"试凑法"——调一下比例,看看波形,再调一下积分,再看看。说实话,这方法也能用,但效率太低。
极点配置法才是正经路子。它的核心思想是:把电流环的闭环极点放在你想要的位置上。
先看电机模型:
G(s) = 1 / (L·s + R)
其中:
L = 电机相电感(H)
R = 电机相电阻(Ω)
PI控制器传递函数:
C(s) = Kp + Ki/s
闭环传递函数:
G_cl(s) = (Kp·s + Ki) / (L·s² + (R+Kp)·s + Ki)
嗯,这里要注意。我们希望闭环系统是二阶系统,阻尼比ζ取0.707(最佳阻尼),自然频率ωn就是带宽。
那么极点配置公式就出来了:
Kp = 2·ζ·ωn·L - R
Ki = ωn²·L
举个例子:电机L=0.5mH,R=0.1Ω,目标带宽ωn=1000Hz(6283 rad/s),ζ=0.707:
Kp = 2 × 0.707 × 6283 × 0.0005 - 0.1 = 4.34
Ki = 6283² × 0.0005 = 19739
我的小技巧:算出来的Ki值往往很大,实际使用时可以适当减小。因为积分项太强容易引起超调。我一般先按计算值的70%设置Ki,然后看阶跃响应再微调。
4.3 电流采样滤波:硬件和软件两手抓
电流采样,是电流环的"眼睛"。眼睛花了,后面再好的算法也白搭。
硬件滤波:
- RC低通滤波器:截止频率设为PWM频率的1/2 ~ 1/3
- 差分放大器:抑制共模噪声
- 采样电阻布局:远离功率走线
软件滤波:
- 一阶低通滤波:简单有效,但会引入相位延迟
- 滑动平均滤波:适合周期性噪声
- 卡尔曼滤波:效果好,但计算量大
我个人习惯用一阶低通+陷波滤波器的组合。一阶低通滤除高频噪声,陷波滤波器专门对付PWM开关频率的干扰。
// 一阶低通滤波实现
float current_filter(float raw, float prev, float alpha) {
return alpha * raw + (1 - alpha) * prev;
}
// alpha = Ts / (Ts + Tf)
// Ts: 采样周期
// Tf: 滤波时间常数
避坑指南:我曾经在一个项目中只用硬件滤波,结果发现不同温度下RC值漂移严重,导致滤波效果时好时坏。后来加了软件滤波做互补,问题才解决。
4.4 死区补偿原理:别小看这微秒级的延迟
死区时间,是功率管换向时防止直通而插入的延迟。虽然只有几微秒,但对电流环的影响可不小。
死区带来的问题:
- 电流波形畸变
- 低转速时转矩脉动
- 零电流附近出现"死区效应"
补偿原理:根据电流方向,补偿死区时间造成的电压误差。
// 死区补偿伪代码
if (current > 0) {
duty_cycle += dead_time / pwm_period;
} else if (current < 0) {
duty_cycle -= dead_time / pwm_period;
} else {
// 零电流附近,不做补偿
}
你想想看,如果电流方向判断错了,补偿反而会恶化。所以电流方向检测的准确性是关键。
实战经验:我在一个低压伺服项目里,死区时间设了2μs,PWM频率20kHz。没加补偿时,电机在100rpm以下有明显顿挫感。加了补偿后,低速运行平滑了很多。
不过要注意,死区补偿不是万能的。当电机处于轻载或零电流状态时,补偿效果会打折扣。这时候可以考虑自适应死区补偿——根据电流大小动态调整补偿量。
知识体系总览
下面这张图,是我整理的本节知识脉络。你可以把它当作调试时的"地图":
这四个环节,说白了就是电流环优化的四个"关卡"。每个关卡都有坑,但也都有对应的解法。我建议你调试时按这个顺序来:先搞定采样滤波,再调死区补偿,然后设计带宽,最后整定PI参数。这样一步步来,问题会清晰很多。
最后说一句:理论公式是死的,电机是活的。我见过太多人拿着公式算出参数就往里填,结果电机转不起来。记住,先让电机转起来,再谈优化。这是我从无数次失败中总结出来的经验。
公众号:蓝海资料掘金营,微信deep3321