2. 过流故障类型:相间短路、对地短路、堵转、过载、相电流不平衡

各位工程师朋友,咱们今天来聊聊过流故障。说实话,这五种故障类型,我在实验室里几乎都踩过坑。你想想看,电机转得好好的,突然电流飙升,轻则炸驱动管,重则烧电机。搞懂它们,是做好保护的第一步。

我把这五种故障分成两类:硬故障和软故障。硬故障来得快,电流瞬间爆表;软故障慢慢积累,温水煮青蛙。下面我一个一个说。

2.1 相间短路

相间短路,说白了就是两相绕组直接碰在一起了。比如电机线被磨破皮,或者MOS管上下桥臂直通。电流有多大?我见过一次,300A的保险丝直接炸飞。

⚠️ 注意:相间短路是破坏力最大的故障。从短路发生到电流峰值,时间通常在10μs以内。你的MCU根本来不及反应,必须靠硬件比较器+快速关断。

我在项目中遇到过一件事:客户反馈驱动器频繁炸管。查了半天,发现是电机引出线在出线口处被金属外壳磨破了。两相线在振动中偶尔碰一下,就炸一次。后来加了绝缘套管才解决。

关键特征:

  • 电流上升率 di/dt 极高,通常 > 100A/μs
  • 三相电流中两相同时飙升
  • 母线电压瞬间跌落

2.2 对地短路

对地短路,就是某一相绕组或者导线碰到了电机外壳或大地。这种故障有个特点:电流路径变了,不经过正常的回路。

怎么检测?我建议用差分电流检测法。正常工作时,三相电流之和为零。如果某相对地短路,和电流就不为零了。嗯,这里要注意:采样电阻的共模抑制比要够高,否则容易误报。

💡 实战技巧:我曾经调试一个水泵项目,老是报对地短路故障。用示波器一抓,发现是电机线太长,寄生电容太大,导致高频漏电流触发了保护。后来在软件里加了个50μs的去抖延时,问题就解决了。

检测方法对比:

方法 原理 优点 缺点
差分电流法 三相电流矢量和 灵敏度高 需要高精度运放
母线电流法 检测母线电流突变 实现简单 无法区分相间/对地
漏电流互感器 磁环检测不平衡电流 隔离性好 体积大、成本高

2.3 堵转

堵转,就是转子被卡住了,转不动。这时候电机相当于一个纯电阻负载,电流会迅速上升到额定值的5-10倍。

我个人习惯把堵转保护分成两级:

  1. 硬件快速保护:电流超过设定阈值(比如额定电流的3倍),直接关断PWM输出。响应时间 < 1μs。
  2. 软件慢速保护:检测到电流持续偏高(比如额定电流的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;
}
💡 经验值:正常BLDC系统,相电流不平衡度应小于5%。超过10%就要报警,超过15%建议立即停机。我见过一个极端案例,不平衡度到了40%,电机振动得像要散架,温度每分钟上升20°C。

2.6 五种故障对比总览

下面这张SVG图,把这五种故障的核心特征、检测方法和响应时间放在一起对比。我建议你保存下来,做保护设计时对照着看。

BLDC过流故障类型对比图 BLDC 过流故障类型对比 相间短路 对地短路 堵转 过载 相电流不平衡 硬故障 硬故障 软故障 软故障 软故障 核心特征 • di/dt > 100A/μs • 两相电流同时飙升 • 母线电压瞬间跌落 • 三相电流和不为零 • 漏电流路径异常 • 高频漏电流干扰 • 转速为零 • 电流5~10倍额定 • 持续大电流 • 电流1.2~2倍额定 • 热积累效应 • 长时间运行 • 三相幅值不等 • 电机振动加剧 • 温升不均匀 推荐检测方法 硬件比较器 差分电流检测 硬件+软件两级 I²t 热模型 不平衡度计算 典型响应时间 < 1μs < 5μs 100ms ~ 500ms 1s ~ 60s 10ms ~ 100ms 💡 设计原则: 硬故障靠硬件快速关断(< 5μs),软故障靠软件算法判断(100ms以上)。 不要用软件去处理硬故障,MCU根本来不及。

2.7 我的调试建议

最后,分享几个实战经验:

  1. 先区分硬故障还是软故障。用示波器抓电流波形,看上升率。di/dt 大于 50A/μs 的基本是硬故障,小于 10A/μs 的是软故障。
  2. 保护阈值要留余量。我曾经把阈值卡得太死,结果温度一变化就误报。建议留 20% 的余量。
  3. 故障记录很重要。每次触发保护,把电流值、故障类型、电机位置都存下来。方便事后分析。
  4. 不要忽视线束问题。很多过流故障其实是接线端子松动或者线皮破损引起的。先检查物理连接,再查电路。
⚠️ 避坑指南:我曾经在一个项目中,把相间短路和过载用同一个阈值保护。结果电机堵转时,电流上升不够快,硬件没触发,软件又判定为过载,延时了2秒才保护。电机都冒烟了。记住:不同故障要用不同的检测方法和阈值,不能一刀切。