2. 过流故障类型:相间短路、对地短路、堵转、过载、相电流不平衡
各位工程师朋友,咱们今天来聊聊过流故障。说实话,这五种故障类型,我在实验室里几乎都踩过坑。你想想看,电机转得好好的,突然电流飙升,轻则炸驱动管,重则烧电机。搞懂它们,是做好保护的第一步。
我把这五种故障分成两类:硬故障和软故障。硬故障来得快,电流瞬间爆表;软故障慢慢积累,温水煮青蛙。下面我一个一个说。
2.1 相间短路
相间短路,说白了就是两相绕组直接碰在一起了。比如电机线被磨破皮,或者MOS管上下桥臂直通。电流有多大?我见过一次,300A的保险丝直接炸飞。
我在项目中遇到过一件事:客户反馈驱动器频繁炸管。查了半天,发现是电机引出线在出线口处被金属外壳磨破了。两相线在振动中偶尔碰一下,就炸一次。后来加了绝缘套管才解决。
关键特征:
- 电流上升率 di/dt 极高,通常 > 100A/μs
- 三相电流中两相同时飙升
- 母线电压瞬间跌落
2.2 对地短路
对地短路,就是某一相绕组或者导线碰到了电机外壳或大地。这种故障有个特点:电流路径变了,不经过正常的回路。
怎么检测?我建议用差分电流检测法。正常工作时,三相电流之和为零。如果某相对地短路,和电流就不为零了。嗯,这里要注意:采样电阻的共模抑制比要够高,否则容易误报。
检测方法对比:
| 方法 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 差分电流法 | 三相电流矢量和 | 灵敏度高 | 需要高精度运放 |
| 母线电流法 | 检测母线电流突变 | 实现简单 | 无法区分相间/对地 |
| 漏电流互感器 | 磁环检测不平衡电流 | 隔离性好 | 体积大、成本高 |
2.3 堵转
堵转,就是转子被卡住了,转不动。这时候电机相当于一个纯电阻负载,电流会迅速上升到额定值的5-10倍。
我个人习惯把堵转保护分成两级:
- 硬件快速保护:电流超过设定阈值(比如额定电流的3倍),直接关断PWM输出。响应时间 < 1μs。
- 软件慢速保护:检测到电流持续偏高(比如额定电流的1.5倍),且转速为零,延时200ms后报警停机。
为什么要分两级?你想啊,有些场合电机启动瞬间电流也很大,如果直接硬件保护,电机永远起不来。我做过一个风机项目,启动时电流是额定电流的4倍,持续100ms。如果硬件阈值设得太低,一启动就保护;设得太高,真堵转了又保护不了。最后用了两级保护才搞定。
- 硬件阈值:额定电流 × (3~5)
- 软件阈值:额定电流 × (1.2~1.5)
- 堵转判定时间:100ms ~ 500ms(根据应用调整)
2.4 过载
过载和堵转不一样。堵转是转子不动,过载是转子还在转,但负载太重了。电流比额定值高,但没到堵转那么夸张。
过载保护的核心是热模型。你不能只看瞬时电流,要看电流对时间的积分。说白了,就是算电机的温升。
我记得有一次,客户说他们的电机经常烧,但保护从来没动作过。我一看代码,过载保护用的是固定阈值,电流超过额定值2倍就保护。问题是他们的负载是周期性冲击负载,峰值电流3倍额定,但持续时间只有50ms,平均电流才1.2倍。电机其实已经过热了,但保护没触发。后来我改成了I²t 算法,问题才解决。
I²t 保护算法示例:
// 过载保护 - I²t 热积累模型
// 每100μs执行一次
float i_sq = (ia*ia + ib*ib + ic*ic) / 3.0f; // 均方电流
float i_rated_sq = RATED_CURRENT * RATED_CURRENT;
if (i_sq > i_rated_sq) {
// 过载,积累热量
thermal_accum += (i_sq - i_rated_sq) * 0.0001f; // 100μs步长
} else {
// 散热,衰减热量
thermal_accum *= 0.999f; // 散热系数
}
if (thermal_accum > THERMAL_LIMIT) {
// 触发过载保护
fault_flag |= FAULT_OVERLOAD;
pwm_disable();
}
2.5 相电流不平衡
相电流不平衡,就是三相电流的幅值不一样。正常BLDC三相电流应该是正弦波,幅值相等,相位差120°。如果某相电流偏大或偏小,说明有问题。
常见原因有哪些?
- 电机绕组匝间短路(某相阻抗变小,电流偏大)
- 驱动管老化(某相导通电阻变大,电流偏小)
- 霍尔传感器安装偏差(换相时序不对,导致某相电流异常)
- 接线接触不良(某相电阻变大,电流偏小)
我建议的检测方法是:计算三相电流的不平衡度。
// 相电流不平衡检测
float i_avg = (i_a + i_b + i_c) / 3.0f;
float i_max = max(i_a, max(i_b, i_c));
float i_min = min(i_a, min(i_b, i_c));
// 不平衡度 = (最大偏差 / 平均值) * 100%
float imbalance = max(fabs(i_a - i_avg),
max(fabs(i_b - i_avg), fabs(i_c - i_avg))) / i_avg;
if (imbalance > 0.15f) { // 不平衡度超过15%
fault_flag |= FAULT_IMBALANCE;
}
2.6 五种故障对比总览
下面这张SVG图,把这五种故障的核心特征、检测方法和响应时间放在一起对比。我建议你保存下来,做保护设计时对照着看。
2.7 我的调试建议
最后,分享几个实战经验:
- 先区分硬故障还是软故障。用示波器抓电流波形,看上升率。di/dt 大于 50A/μs 的基本是硬故障,小于 10A/μs 的是软故障。
- 保护阈值要留余量。我曾经把阈值卡得太死,结果温度一变化就误报。建议留 20% 的余量。
- 故障记录很重要。每次触发保护,把电流值、故障类型、电机位置都存下来。方便事后分析。
- 不要忽视线束问题。很多过流故障其实是接线端子松动或者线皮破损引起的。先检查物理连接,再查电路。