4. 过流阈值设定:热效应与I²T曲线、电机热模型、阈值计算方法、安全裕度设计
过流保护阈值怎么定?这是很多工程师问我的第一个问题。有人直接抄手册上的额定电流,有人凭感觉加个系数。说实话,这两种做法我都踩过坑。
阈值设低了,电机还没出力就保护,设备频繁停机。阈值设高了,绕组都冒烟了保护还没动作。真正合理的阈值,必须从热效应出发,理解电流产生的热量怎么积累、怎么消散。
4.1 热效应与I²T曲线
先讲一个基本概念:电流流过绕组,发热量跟电流的平方成正比。这就是I²T曲线的物理基础。
I²T曲线描述的是:多大的电流,能持续多长时间,才会导致电机损坏。它是一条反时限曲线——电流越大,允许的时间越短。
核心公式:
I² × t = 常数(热容量)
这个常数由绕组材料、绝缘等级、散热条件决定。
举个例子。某电机额定电流10A,热容量常数为500 A²·s。那么:
- 20A过流(2倍额定):允许时间 = 500 / 400 = 1.25秒
- 30A过流(3倍额定):允许时间 = 500 / 900 ≈ 0.56秒
- 50A过流(5倍额定):允许时间 = 500 / 2500 = 0.2秒
你看,电流翻倍,允许时间不是减半,而是变成四分之一。这就是平方关系的威力。
注意:I²T曲线是电机厂商给出的极限值。我曾经见过一个项目,直接把厂商的I²T曲线当保护曲线用,结果电机频繁烧毁。为什么?因为厂商给的是破坏极限,不是保护阈值。保护阈值必须留余量。
4.2 电机热模型
I²T曲线是个简化模型。实际电机发热是个动态过程,有热积累也有热消散。更精确的做法是用热模型来描述。
电机热模型,说白了就是一个RC电路。热阻R对应散热能力,热容C对应储热能力。电流产生的热量相当于电流源,绕组温度相当于电容电压。
这个模型告诉我们两件事:
- 温度不会瞬间跳变。因为有热容,温度上升需要时间。这就是为什么短时过流可以允许。
- 散热一直在进行。热阻Rth决定了最终稳态温度。散热条件越好,Rth越小,允许的过流能力越强。
我在做伺服驱动器时,就遇到过散热被忽略的案例。客户把电机装在密闭腔体里,散热条件变差,结果同样的过流阈值,以前没事,现在频繁烧机。后来我加了散热系数修正,才解决问题。
4.3 阈值计算方法
讲完理论,说说实际怎么算。我一般分三步走:
4.3.1 基于I²T的快速计算
这是最常用的方法,适合大多数应用场景。
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 获取电机I²T常数 | 从电机手册或厂商获取,单位A²·s |
| 2 | 确定保护目标 | 通常取I²T常数的60%~80%作为保护阈值 |
| 3 | 计算各电流下的保护时间 | t = K / I²,K为保护阈值 |
| 4 | 生成保护曲线 | 将计算结果离散化,存入控制器 |
我的习惯:保护阈值取I²T常数的70%。比如电机I²T常数为500 A²·s,我设保护阈值为350 A²·s。这样既有保护效果,又不会太灵敏导致误动作。
4.3.2 基于热模型的实时计算
如果要求更高精度,我会用热模型做实时计算。代码实现大概是这样的:
// 热模型实时计算
// 输入:当前电流I,采样周期dt
// 输出:绕组温升delta_T
float Rth = 0.5; // 热阻,单位 °C/W
float Cth = 100.0; // 热容,单位 J/°C
float tau = Rth * Cth; // 热时间常数
float delta_T = 0; // 当前温升
void thermal_model_update(float I, float dt) {
float P = I * I * R_winding; // 发热功率
float dT = (P * Rth - delta_T) / tau * dt;
delta_T += dT;
if (delta_T > T_max) {
// 触发过流保护
trigger_overcurrent_protection();
}
}
这段代码每毫秒执行一次,实时跟踪绕组温升。好处是:
- 能处理间歇性过流——电流忽大忽小时,温度不会突变
- 能考虑散热——电流降下来后,温度会慢慢回落
- 能适应不同工况——低速堵转和高速过载,热效应不同
我曾经踩过的坑:热模型参数Rth和Cth不是固定值。转速不同、环境温度不同,散热条件会变。我后来加了一个转速相关的修正系数,低速时Rth增大(散热差),高速时Rth减小(散热好)。这样模型才准。
4.4 安全裕度设计
阈值算出来了,直接就用吗?不行。必须加安全裕度。
为什么?因为:
- 参数有离散性——同一批电机,Rth和Cth可能有±20%的偏差
- 工况有变化——环境温度从-10°C到40°C,散热条件天差地别
- 传感器有误差——电流采样精度、温度采样精度都会影响判断
- 软件有延迟——从检测到保护动作,中间有几十毫秒的延迟
我建议的安全裕度设计原则:
| 因素 | 裕度系数 | 说明 |
|---|---|---|
| 电机参数离散 | 0.85~0.90 | 取I²T常数的下限值 |
| 环境温度变化 | 0.80~0.85 | 高温环境降额使用 |
| 采样误差 | 0.90~0.95 | 考虑ADC和传感器精度 |
| 软件延迟 | 0.95~0.98 | 延迟时间内温度继续上升 |
把这些系数乘起来,就是最终的保护阈值系数。举个例子:
电机I²T常数 = 500 A²·s
参数离散系数 = 0.88
环境温度系数 = 0.82
采样误差系数 = 0.92
软件延迟系数 = 0.96
最终保护阈值 = 500 × 0.88 × 0.82 × 0.92 × 0.96 ≈ 319 A²·s
你看,从500降到了319,差不多打了六四折。这个裕度看起来大,但实际运行中,它帮我避免了很多次误保护。
我的经验:安全裕度不是越大越好。裕度太大,保护过于灵敏,设备频繁停机,影响生产效率。我一般控制在0.6~0.8之间。具体取多少,要看应用场景——
- 普通工业电机:0.7~0.8
- 伺服电机(高动态):0.6~0.7
- 牵引电机(安全关键):0.5~0.6
嗯,到这里,过流阈值设定的核心内容就讲完了。从I²T曲线到热模型,从计算方法到安全裕度,每一步都有讲究。你想想看,如果只是简单抄手册上的额定电流,能应对这么多复杂工况吗?