4. 电流环控制:PI控制器原理、电流采样与滤波、PWM占空比与电流的关系

各位工程师朋友,咱们今天聊聊电流环。说实话,在机器人控制里,电流环是「最底层」的那一环,也是决定力矩控制精度的根基。你位置环、速度环调得再花哨,电流环跟不上,一切都是白搭。我当年刚入行时,就吃过这个亏——位置环震荡了半天,最后发现是电流环带宽不够,嗯,那感觉挺尴尬的。

4.1 PI控制器原理:为什么是PI,不是PID?

电流环控制,业界主流就是PI控制器。为什么不用PID?因为电流响应太快了,微分项D对高频噪声极其敏感,搞不好反而把系统搞震荡。我个人习惯,电流环只用PI,简单、可靠、够用。

PI控制器的数学形式很简单:

u(t) = Kp * e(t) + Ki * ∫e(t)dt

其中:

  • Kp(比例系数):决定响应速度。Kp越大,电流跟踪越快,但太大就会超调、震荡。
  • Ki(积分系数):消除稳态误差。没有积分项,电流永远到不了目标值,会有一个静差。

你想想看,比例项是「现在」的误差,积分项是「过去」的误差累积。两者配合,才能让实际电流又快又准地跟上指令。

核心要点:电流环PI的带宽通常设定为电流采样频率的1/10到1/20。比如采样频率20kHz,PI带宽设在1-2kHz比较合理。再高就容易出问题。

4.2 电流采样与滤波:信号质量决定控制质量

电流采样,说白了就是「把真实的电流值读进来」。但现实世界没那么理想——电机PWM开关会产生巨大的共模噪声,采样电阻上的电压信号往往被污染得不成样子。

我在项目中遇到过最典型的问题:采样回来的电流波形像「毛刺山」,PI控制器根本没法正常工作。后来怎么解决的?两个关键点:

  1. 采样时刻选择:在PWM周期的中间点采样,避开开关管导通/关断瞬间的噪声尖峰。这个技巧,我建议你务必用上。
  2. 硬件低通滤波:在采样电路上加RC低通滤波器,截止频率通常设在采样频率的1/2左右。比如采样频率20kHz,RC截止频率设在10kHz。

软件上,我还会再加一道「移动平均滤波」:

// 4次移动平均滤波示例
static float buf[4] = {0};
static int idx = 0;
float current_filter(float raw) {
    buf[idx] = raw;
    idx = (idx + 1) % 4;
    float sum = 0;
    for(int i=0; i<4; i++) sum += buf[i];
    return sum / 4.0f;
}

小技巧:滤波次数不是越多越好。滤波太狠,信号延迟就大,电流环带宽会下降。我一般控制在4-8次移动平均,兼顾噪声抑制和响应速度。

4.3 PWM占空比与电流的关系:从电压到电流的桥梁

PI控制器算出来的是一个「电压指令」,但电机驱动器只能接受「PWM占空比」。这两者怎么对应?

对于直流电机,关系很简单:

V_motor = Duty * V_bus

其中Duty是占空比(0~1),V_bus是母线电压。电机电流则取决于电机电阻和反电动势:

I = (V_motor - E) / R

对于三相永磁同步电机(PMSM),情况稍微复杂一点。我们用的是FOC(磁场定向控制),PI输出的是d-q轴电压,再通过SVPWM(空间矢量调制)转换成三相占空比。

这里有个关键点:占空比和电流不是线性关系。因为电机有电感,电流变化有惯性。PI控制器本质上就是在「对抗」这个惯性。

曾经踩过的坑:有一次我直接把PI输出的电压指令除以母线电压得到占空比,结果电机低速时电流震荡严重。后来发现是母线电压波动没补偿——电池供电时电压会掉,占空比计算必须实时更新母线电压值。从那以后,我每次采样电流时都会同步采样母线电压。

4.4 知识体系总览

下面这张图,是我梳理的电流环控制核心逻辑。你可以把它当作一个「思维导图」来理解:

电流环控制知识体系 PI控制器 电流采样与滤波 PWM占空比 比例项 Kp → 响应速度 积分项 Ki → 消除静差 带宽 = 采样频率 / 10~20 采样时刻:PWM中点 硬件RC低通滤波 软件移动平均滤波 V_motor = Duty * V_bus 电机电感 → 电流惯性 母线电压实时补偿 核心逻辑闭环 电流指令 → PI调节 → 电压指令 → PWM占空比 → 电机电流 → 采样滤波 → 反馈给PI

4.5 实战调参建议

最后,分享一点我个人的调参经验。电流环PI参数怎么调?我一般按这个步骤来:

  1. 先调Kp:给一个阶跃电流指令,观察响应。Kp从小到大加,直到出现轻微超调,然后退回20%。
  2. 再加Ki:保持Kp不变,慢慢加Ki,直到稳态误差消失。注意Ki太大容易引起低频震荡。
  3. 验证带宽:用扫频法或阶跃响应法,确认电流环带宽达到设计目标。

避坑指南:我曾经在调参时犯过一个低级错误——忘记检查电流采样是否饱和。采样电阻上的电压如果超过ADC参考电压,采回来的值全是最大值,PI积分项会疯狂累积,一恢复采样就炸。所以,调参前务必确认采样电路在量程范围内。

好了,电流环的内容就聊到这儿。记住一句话:电流环是力矩控制的「地基」,地基不稳,上层建筑再漂亮也没用。希望今天的分享对你有帮助。

可可精品资料库