4. 被动均衡电路设计:均衡电阻选型、MOSFET驱动电路、PWM控制策略、故障保护机制
各位同学,咱们今天聊点实在的。被动均衡,说白了就是把高容量电池里多余的电量,通过电阻以热量的形式「烧」掉。听起来有点浪费?没错,确实浪费。但为什么几乎所有量产BMS都在用?因为便宜、可靠、好实现。我入行那会儿,第一个量产项目就是做的被动均衡,踩过的坑今天全给你们抖出来。
4.1 均衡电阻选型:别小看这个「发热体」
均衡电阻是整条回路的「耗能核心」。选大了,均衡电流不够,半天放不完电;选小了,电阻冒烟,MOS管跟着烧。我见过一个同行,为了省成本用了1/4W的贴片电阻,结果均衡一启动,电阻直接炸飞了。
选型时,我一般按这三步走:
- 确定均衡电流:通常取0.05C~0.1C。比如50Ah的电芯,均衡电流选2.5A~5A。电流太小没效果,太大散热扛不住。
- 计算电阻值:R = (V_cell_max - V_MOS_drop) / I_balance。假设电芯最高4.2V,MOS管压降0.1V,目标电流3A,那电阻就是(4.2-0.1)/3 ≈ 1.37Ω。实际选1.5Ω或1.2Ω,看标准阻值。
- 核算功率:P = I² × R = 3² × 1.5 = 13.5W。嗯,这里要注意,必须留1.5~2倍余量。我习惯选25W以上的铝壳电阻,或者用多个电阻并联分摊功率。
避坑指南:我曾经在高温环境测试时,发现均衡电阻温度飙到150°C,直接把PCB烤黄了。后来我强制要求:电阻底部必须开散热过孔,且远离电解电容和塑料接插件。
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 均衡电流 | 0.05C~0.1C | 太小无效,太大发热严重 |
| 电阻功率余量 | 1.5~2倍 | 实测功率×2,防止热失控 |
| 电阻类型 | 铝壳/水泥电阻 | 贴片电阻慎用,散热差 |
| 温升限制 | ≤80°C | 超过100°C需降额使用 |
4.2 MOSFET驱动电路:别让管子「半开半闭」
MOSFET是均衡回路的开关。驱动电路设计不好,管子会工作在放大区,发热量比电阻还大。我调试时遇到过,MOS管烫得手都不敢碰,一查波形,栅极电压只有6V,管子根本没完全导通。
驱动电路的核心要求:
- 栅极电压要足够:N-MOS需要Vgs > 10V才能完全导通。如果MCU是3.3V供电,必须加电平转换或专用驱动芯片。
- 驱动电流要够大:栅极电容充电需要瞬间大电流。我习惯用推挽驱动,或者直接选带驱动能力的IO口。
- 加栅极电阻:Rg取10Ω~100Ω,防止振荡。太小会振铃,太大开关速度慢。
我的个人习惯:在栅极和源极之间并联一个10kΩ下拉电阻。这样MCU上电瞬间,MOS管默认关闭,不会误开启均衡。这个细节救过我一次,那次MCU复位时IO口电平不确定,差点烧了电池。
// 典型N-MOS驱动电路(低边驱动)
// MCU_PWM ---> Rg(47Ω) ---> Gate
// Gate ---> Rgs(10kΩ) ---> GND
// Drain ---> 均衡电阻 ---> 电芯正极
// Source ---> GND
// 驱动代码示例(PWM控制)
void balance_control(uint8_t cell_id, uint8_t duty) {
// duty: 0~100, 对应PWM占空比
if (duty == 0) {
HAL_GPIO_WritePin(BALANCE_PORT, cell_id, GPIO_PIN_RESET);
} else {
// 设置PWM比较值
TIM->CCR[cell_id] = (duty * TIM_PERIOD) / 100;
}
}
4.3 PWM控制策略:精细调节,避免过放
被动均衡不是「要么全开,要么全关」。你想想看,如果一直以最大电流放电,低容量电芯还没充满,高容量电芯已经被放空了。所以,我们需要PWM控制,说白了就是让均衡「间歇性工作」。
我常用的三种策略:
- 固定占空比:最简单,比如50%占空比,均衡电流减半。适合压差不大时使用。
- 动态调节:根据压差大小调整占空比。压差大,占空比高;压差小,占空比低。我习惯用PID思想,但实际工程中,分段线性就够用了。
- 温度补偿:当电阻温度超过80°C时,自动降低占空比。超过100°C,强制关闭均衡。这个保护必须做,否则夏天容易出事故。
警告:PWM频率不能太低,否则均衡电流纹波大,影响电芯寿命。也不能太高,否则MOS管开关损耗大。我一般选1kHz~5kHz,这个区间比较平衡。
// 动态PWM控制逻辑(伪代码)
uint8_t calc_duty_cycle(float delta_v, float temp) {
uint8_t duty = 0;
// 温度保护优先
if (temp > 100.0f) {
return 0; // 强制关闭
} else if (temp > 80.0f) {
duty = 30; // 降额到30%
}
// 根据压差计算
if (delta_v > 0.05f) {
duty = (uint8_t)((delta_v / 0.1f) * 100);
if (duty > 100) duty = 100;
}
return duty;
}
4.4 故障保护机制:别让均衡变成「灾难」
被动均衡最容易出什么问题?我总结了三类:短路、过温、MOS管失效。每一类都得有对应的保护措施。
短路保护:均衡回路短路,电流会瞬间飙升。我一般在均衡回路串一个PTC自恢复保险,或者用电流检测电阻+比较器。一旦电流超过设定值,立即关闭所有均衡MOS管。
过温保护:除了电阻上的NTC,我还会在PCB上靠近MOS管的位置加一个温度传感器。为什么?因为MOS管失效时,短路电流会让它瞬间发热,电阻上的NTC反应不过来。
MOS管失效检测:这个很多人会忽略。我习惯在均衡关闭时,检测MOS管漏源电压。如果电压接近0V,说明管子击穿了,必须报警。我曾经遇到过,MOS管击穿后,电芯一直通过电阻放电,直到过放保护启动才发现。
避坑指南:我曾经在一个项目中,只做了过温保护,没做短路保护。结果有一次均衡电阻引脚碰焊,短路电流把PCB铜箔都烧断了。从那以后,我每个均衡通道都加了一个10A的PTC,虽然成本多了几毛钱,但再也没出过事。
| 故障类型 | 检测方法 | 保护动作 |
|---|---|---|
| 均衡回路短路 | 电流检测/比较器 | 立即关闭MOS,报警 |
| 电阻过温 | NTC温度传感器 | 降额运行或关闭 |
| MOS管击穿 | 漏源电压检测 | 报警,禁止充电 |
| PWM失控 | 看门狗定时器 | 硬件强制关闭MOS |
好了,这一章的内容就这么多。被动均衡虽然简单,但细节决定成败。下一章咱们聊聊主动均衡,那个更有意思,效率高但电路复杂。记得把今天讲的电阻选型和驱动电路吃透,后面很多设计思路都是相通的。