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以下有明显顿挫感。加了补偿后,低速运行平滑了很多。

不过要注意,死区补偿不是万能的。当电机处于轻载或零电流状态时,补偿效果会打折扣。这时候可以考虑自适应死区补偿——根据电流大小动态调整补偿量。

知识体系总览

下面这张图,是我整理的本节知识脉络。你可以把它当作调试时的"地图":

电流环优化知识体系 带宽设计 • 带宽定义:响应速度指标 • 设计原则:PWM频率的1/10 • 经验范围:200Hz ~ 2kHz • 权衡:响应 vs 噪声 ⚠ 高带宽≠好性能 PI参数整定 • 极点配置法原理 • Kp = 2ζωnL - R • Ki = ωn²L • 阻尼比ζ=0.707最佳 ✓ 计算+微调 电流采样滤波 • 硬件滤波:RC低通 • 软件滤波:一阶/滑动平均 • 组合策略:硬件+软件 • 陷波滤波器:针对PWM噪声 ⚠ 注意相位延迟 死区补偿 • 死区效应:波形畸变 • 补偿原理:电压误差修正 • 关键:电流方向检测 • 自适应补偿:动态调整 ✓ 低速性能提升明显 四个环节环环相扣,缺一不可

这四个环节,说白了就是电流环优化的四个"关卡"。每个关卡都有坑,但也都有对应的解法。我建议你调试时按这个顺序来:先搞定采样滤波,再调死区补偿,然后设计带宽,最后整定PI参数。这样一步步来,问题会清晰很多。

最后说一句:理论公式是死的,电机是活的。我见过太多人拿着公式算出参数就往里填,结果电机转不起来。记住,先让电机转起来,再谈优化。这是我从无数次失败中总结出来的经验。


公众号:蓝海资料掘金营,微信deep3321