1. 项目概述
锂电池组在电动汽车、储能系统等领域应用广泛,但单体电池间的SOC(State of Charge)不均衡问题一直是电池管理系统(BMS)的核心挑战。传统被动均衡方案通过电阻耗散能量来实现均衡,效率低下且发热严重。相比之下,基于双向反激变换器的主动均衡方案能够实现能量在电池间的无损转移,均衡效率可达92%以上。
本项目实现了一套完整的六节锂电池SOC主动均衡控制系统,核心创新点在于:
- 采用双向反激变换器拓扑结构,利用高频变压器实现能量双向转移
- 开发了基于平均值-均方差的双环控制算法,动态调整均衡电流
- 设计了完善的过充/过放保护机制,确保系统安全运行
- 通过STM32F103微控制器实现实时控制,系统响应速度快
2. 硬件设计解析
2.1 双向反激变换器拓扑
双向反激变换器是本系统的核心功率电路,其关键设计参数如下:
-
高频变压器选型:
- 磁芯型号:PQ3220
- 工作频率:200kHz
- 原边电感量:22μH
- 变比设计:1:1:1:1:1:1(原边1组,副边6组)
-
功率开关器件:
- 主开关管:IRFB4110PbF(100V/180A)
- 驱动芯片:IR2104S(带死区时间控制)
-
关键设计要点:
- 绕组相位关系必须正确标注同名端
- 原边与副边绕组需要严格对称绕制
- 磁芯气隙设计影响储能能力,需精确计算
注意事项:变压器绕制时必须做好绝缘处理,层间至少使用2层0.05mm厚的聚酰亚胺胶带。实测发现绕组不对称会导致能量转移效率下降15%以上。
2.2 采样电路设计
精确的电池状态采样是均衡控制的基础:
-
电压采样电路:
- 采用差分放大电路(INA282)
- 采样精度:±5mV
- 滤波设计:二阶RC低通(截止频率1kHz)
-
电流采样电路:
- 使用50mΩ/1%精密采样电阻
- 电流检测芯片:INA199(增益50V/V)
- 带宽:100kHz
-
温度监测:
- NTC热敏电阻(10K/B=3435)
- 每节电池配备独立温度传感器
3. 控制算法实现
3.1 SOC估算方法
采用安时积分法结合开路电压法进行SOC估算:
c复制#define CAPACITY 2000 // 电池容量2000mAh
float update_soc(float voltage, float current, float dt) {
static float soc[6] = {100,100,100,100,100,100};
for(int i=0; i<6; i++) {
// 安时积分
soc[i] -= current * dt / (CAPACITY * 3.6f);
// 开路电压校准
if(fabs(current) < 0.01f) { // 静置状态
soc[i] = voltage_to_soc(voltage);
}
}
return soc;
}
3.2 平均值-均方差算法
核心均衡控制算法实现:
c复制#define THRESHOLD 0.05f // 5%差异阈值
void balance_control(float soc[6]) {
// 计算平均值和均方差
float avg = 0.0f, var = 0.0f;
for(int i=0; i<6; i++) avg += soc[i];
avg /= 6.0f;
for(int i=0; i<6; i++) var += powf(soc[i]-avg, 2);
float sigma = sqrtf(var/6.0f);
// 均衡决策
if(sigma > THRESHOLD) {
float k = 0.5f * (sigma - THRESHOLD); // 比例系数
set_balance_current(k);
} else {
disable_balance();
}
}
算法特点:
- 引入死区避免频繁切换
- 比例系数平滑调整均衡电流
- 计算复杂度低,适合MCU实现
3.3 保护逻辑实现
c复制#define OV_THRESHOLD 4.25f // 过压阈值
#define UV_THRESHOLD 2.70f // 欠压阈值
void protection_check(float voltages[6]) {
static float filtered[6] = {0};
// 移动平均滤波
for(int i=0; i<6; i++) {
filtered[i] = 0.875f * filtered[i] + 0.125f * voltages[i];
// 过压保护
if(filtered[i] > OV_THRESHOLD) {
pwm_disable(i);
set_fault(OV_FLAG);
}
// 欠压保护
else if(filtered[i] < UV_THRESHOLD) {
balance_offline(i);
set_fault(UV_FLAG);
}
}
}
4. 软件架构设计
4.1 主程序流程
mermaid复制graph TD
A[系统初始化] --> B[ADC采样]
B --> C[SOC估算]
C --> D[均衡控制]
D --> E[保护检测]
E --> B
4.2 关键中断服务
-
定时器中断(50ms):
- 执行SOC计算和均衡控制
- 切换目标电池通道
-
ADC采样中断:
- 完成电压/电流采样
- 执行保护逻辑判断
-
PWM更新中断:
- 调整占空比
- 实现伏秒平衡控制
5. 调试与优化
5.1 关键测试点
-
变压器测试:
- 原边电感量:22μH±10%
- 漏感:<1μH
- 耐压测试:原副边500V/60s
-
驱动波形验证:
- 上升/下降时间:<100ns
- 死区时间:200ns
- 交叉导通检查
-
系统效率测试:
- 轻载效率:>85%
- 满载效率:>92%
5.2 常见问题解决
-
问题:轻载时系统震荡
- 原因:电流断续模式下的稳定性问题
- 解决:增加斜坡补偿
c复制// PWM斜坡补偿 void pwm_compensation(float duty) { static float ramp = 0.0f; ramp += 0.1f * (duty - ramp); TIM1->CCR1 = (uint16_t)(ramp * MAX_DUTY); } -
问题:电压采样漂移
- 原因:温度影响分压电阻
- 解决:采用低温漂电阻(±25ppm/℃)
- 校准方法:上电时自动基准校准
-
问题:磁芯饱和
- 现象:原边电流急剧上升
- 对策:限制最大占空比(<45%)
- 检测:增加峰值电流保护
6. 实测性能分析
测试条件:
- 电池组:6节18650(2.2Ah)
- 初始SOC差异:15%
- 环境温度:25℃
测试结果:
| 指标 | 被动均衡 | 本方案 | 提升 |
|---|---|---|---|
| 均衡时间 | 6.5h | 2.1h | 3.1倍 |
| 最高温度 | 68℃ | 42℃ | -26℃ |
| 能量损耗 | 28% | 8% | -20% |
波形实测:
- 变压器原边电流:三角波,峰值5A
- 副边电压:12V方波(200kHz)
- 均衡电流:1.2A(平均值)
7. 工程实现建议
-
PCB设计要点:
- 功率地与控制地分开布局
- 高频回路面积最小化
- 驱动信号走线加粗(>15mil)
-
代码优化技巧:
- 使用查表法加速SOC计算
- 关键函数用汇编优化
- 启用STM32硬件浮点单元
-
生产测试方案:
- 自动化校准电压采样
- 边界条件测试(高低温)
- 老化测试(连续72小时)
在实际部署中发现,适当降低开关频率(从200kHz降至150kHz)可以进一步提升系统可靠性,尤其在高环境温度条件下。另外,增加CAN总线接口便于与整车通信,这是后续升级的重要方向。