3. 电流环设计基础:电流环的作用、电流采样与滤波、PI控制器原理
好,咱们进入电流环的设计。说实话,电流环是整个双闭环系统的基石。你想想看,如果电流都控不好,转速环和转矩环就是空中楼阁。我在项目里见过太多人一上来就调转速环,结果电流震荡得一塌糊涂,最后还得回头补电流环的课。
3.1 电流环到底在干什么?
电流环的核心任务就一个:让实际电流快速、准确地跟随给定电流。说白了,就是你要多少电流,我就给你多少电流,而且要快,要稳。
具体来说,电流环有三个作用:
- 快速响应:电机启动、负载突变时,电流环要能迅速跟上。我习惯把电流环的带宽设计在转速环的5-10倍,这样转速环看电流环就像看一个理想放大器。
- 限流保护:这是硬道理。电机启动瞬间电流可能冲到额定值的10倍,没有电流环限流,IGBT或者MOS管直接炸掉。我曾经有一次调试,忘记设电流限幅,结果上电瞬间管子冒烟了...嗯,从那以后我每次都会检查电流限幅值。
- 解耦控制:在dq坐标系下,电流环还要处理d轴和q轴之间的交叉耦合。这个后面会细讲。
重要概念:电流环的响应速度决定了整个系统的动态性能。一般来说,电流环的截止频率设计在1/10~1/5的开关频率。比如你PWM开关频率是10kHz,那电流环带宽大概在1-2kHz比较合理。
3.2 电流采样——数据源头不能马虎
电流环再牛,也得有准确的电流数据。采样环节出问题,后面全是白搭。
常用的电流采样方式有三种:
| 采样方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 采样电阻(Shunt) | 成本低、精度高 | 有损耗、不隔离 | 小功率、低成本方案 |
| 霍尔电流传感器 | 隔离、宽频带 | 成本高、温漂大 | 中功率、工业驱动 |
| 电流互感器(CT) | 隔离、无损耗 | 低频响应差、体积大 | 大功率、变频器 |
我个人习惯在中小功率(几百瓦到几千瓦)的伺服驱动里用霍尔传感器。虽然贵一点,但省心。采样电阻在低成本方案里用得很多,但要注意电阻的功率和温漂问题。
3.3 电流滤波——别让噪声骗了你的控制器
采样回来的电流信号,里面全是高频噪声。PWM开关噪声、电机反电动势尖峰、采样电路本身的噪声...如果不处理,PI控制器会把这些噪声当成真实信号去调节,结果就是电流纹波大、发热严重。
常用的滤波方法:
- 硬件RC低通滤波:在ADC采样前加一级RC滤波,截止频率一般设在开关频率的1/10。比如10kHz开关频率,RC截止频率设在1kHz左右。注意R和C的取值要平衡响应速度和滤波效果。
- 软件均值滤波:在ADC采样后,连续采几次取平均。我一般采4-8次,再多就会引入延迟。
- 软件一阶低通滤波:就是那个经典的公式 y[n] = α * x[n] + (1-α) * y[n-1]。α取值越小,滤波越强,但延迟也越大。
我的经验:滤波不是越强越好。滤波太强,电流环的响应速度会变慢,甚至出现相位滞后导致震荡。我一般把滤波器的截止频率设在电流环带宽的3-5倍以上,这样既滤掉了高频噪声,又不影响电流环的动态响应。
3.4 PI控制器原理——电流环的核心算法
电流环最常用的就是PI控制器。为什么不用PID?因为微分项对噪声太敏感,电流信号本身噪声就大,加上D项反而容易出问题。我很少在电流环里用D项。
PI控制器的公式很简单:
u(t) = Kp * e(t) + Ki * ∫e(t)dt
其中:
- e(t) = 电流给定值 - 电流反馈值(误差)
- Kp:比例系数,决定响应速度
- Ki:积分系数,消除稳态误差
- u(t):输出给PWM调制器的电压指令
在数字控制器里,我们用的是离散形式:
// 位置式PI
error = ref - feedback;
integral += error * dt;
output = Kp * error + Ki * integral;
// 限幅
if(output > max) output = max;
if(output < -max) output = -max;
这里有个坑——积分饱和。当输出达到限幅值时,积分项还在继续累加,等误差反向时,积分项需要很长时间才能退回来,导致系统响应变慢甚至震荡。
避坑指南:我曾经在一个项目里没做积分限幅,结果电机启动时电流超调了30%,差点把电机烧了。从那以后,我每次都会加积分分离或者抗饱和处理。最简单的做法是:输出限幅时,停止积分累加。
改进后的代码:
// 带抗饱和的PI
error = ref - feedback;
if(output < max && output > -max) {
integral += error * dt; // 只在未饱和时积分
}
output = Kp * error + Ki * integral;
// 输出限幅
if(output > max) output = max;
if(output < -max) output = -max;
3.5 电流环的整体结构
把上面这些串起来,电流环的完整流程就是:
- ADC采样三相电流(或两相)
- 软件滤波(均值或一阶低通)
- Clark变换 + Park变换(得到dq轴电流)
- d轴和q轴分别做PI调节
- 输出限幅(电压限制)
- 反Park变换 + SVPWM调制
下面这张图可以帮你理清思路:
嗯,这张图把电流环的闭环结构画得很清楚了。你注意看,从电流采样到坐标变换再到PI调节,最后回到PWM调制,这是一个完整的负反馈回路。
3.6 参数整定的一点心得
PI参数怎么调?我个人的习惯是:
- 先调Kp:把Ki设成0,慢慢增大Kp,直到电流响应出现轻微震荡。然后取Kp的60%-70%作为最终值。
- 再加Ki:从0开始慢慢增大Ki,直到稳态误差消失。注意Ki太大会导致超调和震荡。
- 检查带宽:用示波器看电流的阶跃响应,上升时间应该在1-2ms左右(取决于你的系统)。
小技巧:如果你有仿真工具,先在仿真里调好参数再上硬件。我每次都会先在Simulink或者PLECS里跑一遍,确认参数合理再烧录到控制器里。这样能省很多烧管子的钱。
好了,电流环的基础就这些。记住一句话:电流环是双闭环的根基,根基不牢,地动山摇。把电流环调好了,后面的转速环和转矩环就轻松多了。
公众号:蓝海资料掘金营,微信deep3321