3. 过流防护机制:电流环饱和机理、过流检测与保护阈值设计、软件限流与硬件保护协同

过流防护这件事,说白了我把它看作电机控制的最后一道防线。你前面弱磁算得再准、电流环调得再顺,一旦电流失控,IGBT 或者 MOSFET 说炸就炸。我早期做项目时吃过这个亏,所以这一章我会把电流环饱和、过流检测、软硬件协同这些点掰开揉碎了讲。

3.1 电流环饱和机理

先搞清楚一个问题:电流环为什么会饱和?

电流环的本质是一个 PI 调节器,它的输出是电压指令。当 PI 的输出达到逆变器能输出的最大电压时,调节器就饱和了。这时候你给再大的电流指令,实际电流也追不上。

饱和的两种典型场景:

  • 电压饱和:电机反电动势接近直流母线电压,PI 输出被钳位。
  • 积分饱和:PI 的积分项持续累积,导致输出超出限幅值。

我遇到过一种情况:电机在高速区突然加载,电流指令瞬间增大,PI 积分项疯狂往上冲。等负载降下来,积分项还卡在高位,输出半天回不来——这就是典型的积分饱和。你想想看,这时候电流环基本处于失控状态。

3.2 过流检测与保护阈值设计

过流检测不能只靠软件算,硬件检测是必须的。我个人习惯在相电流采样回路里加一级硬件比较器,阈值设在 1.5 倍额定电流左右。为什么是 1.5 倍?因为电机启动和瞬态工况下,电流尖峰很容易冲到 1.2~1.3 倍,阈值设太低会误触发。

保护层级 阈值范围 响应时间 动作方式
软件限流 1.1 ~ 1.2 倍额定 1~2 个电流环周期 降低电流指令
硬件过流 1.5 ~ 1.8 倍额定 微秒级 直接封锁 PWM
短路保护 2.0 倍以上 纳秒级 硬件关断

注意:硬件过流阈值不能设得太接近软件限流值。我曾经在一个项目里把硬件阈值设在 1.2 倍,结果电机启动时软件限流还没反应过来,硬件先跳了。后来我把硬件阈值调到 1.6 倍,留出足够的软件响应窗口。

3.3 软件限流策略

软件限流不是简单地把电流指令砍一刀。我常用的方法有三种:

  1. 指令限幅:在电流环输入端直接限制 dq 轴电流指令的最大值。简单粗暴,但容易导致动态响应变差。
  2. 积分限幅:对 PI 调节器的积分项做限幅,防止积分饱和。这个在弱磁区特别重要。
  3. 动态限流:根据母线电压和电机转速实时计算最大允许电流。这个方法最灵活,但计算量也最大。

我个人比较推荐第二种加第三种组合使用。积分限幅保证稳态不饱和,动态限流保证瞬态不超限。

// 积分限幅示例(C 语言伪代码)
void current_loop(void) {
    float err_iq = iq_ref - iq_fb;
    integral_iq += ki_iq * err_iq * dt;
    
    // 积分限幅
    if (integral_iq > INTEGRAL_LIMIT) {
        integral_iq = INTEGRAL_LIMIT;
    } else if (integral_iq < -INTEGRAL_LIMIT) {
        integral_iq = -INTEGRAL_LIMIT;
    }
    
    vq_out = kp_iq * err_iq + integral_iq;
}

3.4 硬件保护协同设计

软件限流和硬件保护不是二选一,而是协同工作。我习惯把整个保护架构分成三层:

  • 第一层:软件限流——正常工况下防止电流超限,响应慢但灵活。
  • 第二层:硬件过流——检测到过流立即封锁 PWM,响应快但粗暴。
  • 第三层:硬件短路——最后一道防线,通常由驱动芯片或分立电路实现。

这里有个关键点:硬件过流触发后,软件需要能检测到故障状态,并在故障消除后自动恢复。我见过不少设计,硬件保护一触发就死锁,必须断电重启——这在工业现场是很麻烦的。

我的做法:硬件过流触发后,驱动芯片会拉低一个 FAULT 引脚。MCU 检测到这个引脚电平变化后,先记录故障信息,然后尝试在 100ms 后重新使能 PWM。如果连续三次都触发过流,才进入永久故障状态。这样既保证了安全,又避免了误触发导致的停机。

3.5 过流防护知识体系

下面这张图把过流防护的核心逻辑串起来了。你可以看到,从电流环饱和到硬件保护,每一层都有明确的职责和接口。

过流防护知识体系 电流环饱和 电压饱和 / 积分饱和 过流检测 硬件比较器 / 软件计算 保护阈值设计 1.1x / 1.5x / 2.0x 软件限流 指令限幅 / 积分限幅 硬件保护 PWM封锁 / 驱动关断 软硬件协同 故障恢复 / 层级切换 关键设计原则: 1. 软件限流优先,硬件保护兜底 2. 硬件阈值留出软件响应窗口(建议 1.5x 额定) 过流防护 = 饱和机理理解 + 阈值合理设计 + 软硬件协同 每一层都要独立工作,但又要能互相配合

3.6 避坑指南

最后分享几个我踩过的坑:

  • 积分限幅值设太大:我曾经把积分限幅设到 PI 输出上限的 80%,结果积分饱和还是发生了。后来改成 50%,效果好了很多。
  • 硬件过流信号没做滤波:有一次现场干扰导致硬件过流误触发,查了两天才发现是信号线上串入了噪声。加一个 RC 滤波就解决了。
  • 故障恢复时间太短:我试过 10ms 恢复,结果电机还在震荡,反复触发过流。后来改成 100ms,配合电流指令斜坡上升,问题就没了。