3. 电池管理系统(BMS)与功率分配

聊到功率分配,就绕不开BMS。说白了,BMS就是电池组的“大管家”。它管着电压、电流、温度,还管着SOC估算和均衡。这些数据,是功率分配控制器做决策的依据。

我刚开始做储能系统时,总觉得BMS就是个监控工具。后来踩了坑才明白——没有BMS的精准数据,功率分配就是瞎指挥。

3.1 BMS的核心功能

BMS到底在管什么?我把它拆成三块来讲。

3.1.1 电压/电流/温度监测

这是BMS最基础的功能。每个电芯的电压、总回路的电流、关键点的温度,都得实时采集。

电压监测:单电芯电压精度要控制在±5mV以内。我见过一个项目,BMS电压采集偏差到了±20mV,结果SOC估算直接漂了10%。

电流监测:霍尔传感器或分流器都行。但要注意,电流采样频率至少100Hz,不然动态响应跟不上。

温度监测:电芯表面、正负极、PCB板,每个位置都得放传感器。我习惯每4个电芯放一个温度点,这样既能覆盖热分布,又不浪费成本。

关键参数表

参数 精度要求 采样频率 典型传感器
单电芯电压 ±5mV 1Hz AFE芯片
总电流 ±0.5% 100Hz 霍尔/分流器
温度 ±1°C 1Hz NTC/PT100

3.1.2 SOC估算

SOC就是电池还剩多少电。这玩意儿看着简单,做起来坑很多。

常用的方法有两种:

  • 安时积分法:对电流积分,算累计电量。简单,但误差会累积。
  • 开路电压法:查OCV-SOC曲线。准,但电池得静置很久。

实际项目中,我都是把两者结合。用开路电压法做初始校准,再用安时积分法做动态跟踪。这样误差能控制在3%以内。

我的经验:SOC估算最怕电流传感器零漂。我曾经遇到一个项目,霍尔传感器零漂有50mA,积分一天下来SOC误差到了8%。后来我加了零漂校准算法,每10分钟自动归零一次,问题才解决。

3.1.3 均衡管理

电芯之间总有差异。有的电压高,有的电压低。不均衡的话,容量利用率会下降。

均衡分两种:

  • 被动均衡:给高电压电芯并联一个电阻,把多余能量耗掉。简单便宜,但效率低。
  • 主动均衡:用电容或电感,把高电压电芯的能量转移到低电压电芯。效率高,但电路复杂。

我个人习惯:小系统(<50Ah)用被动均衡就够了。大系统(>100Ah)必须上主动均衡,不然能量浪费太心疼。

注意:均衡电流不能太大。我见过一个项目,被动均衡电流设了2A,结果电阻发热把PCB烤糊了。一般建议均衡电流控制在0.1C以内。

3.2 BMS与功率分配控制器的通信协议

BMS把数据采上来了,怎么传给功率分配控制器?靠通信协议。最常用的就两种:CAN和Modbus。

3.2.1 CAN通信

CAN在储能系统里用得最多。速度快、抗干扰强、支持多节点。

典型的CAN帧结构:

ID: 0x1810F4F0
数据: [电压高字节, 电压低字节, 电流高字节, 电流低字节, SOC, 温度, 状态, 校验]

我习惯用CANopen协议。它定义了PDO和SDO,数据交换很方便。比如,BMS可以每100ms发一个PDO,把电压、电流、SOC打包发出去。

CAN通信参数

参数 典型值
波特率 250kbps / 500kbps
帧类型 标准帧(11位ID) / 扩展帧(29位ID)
数据长度 8字节
发送周期 100ms - 1s

3.2.2 Modbus通信

Modbus在工业现场很常见。它基于RS485,成本低,布线简单。

Modbus有两种模式:

  • RTU模式:二进制传输,效率高。我一般用这个。
  • ASCII模式:文本传输,可读性好。调试时偶尔用。

典型的Modbus寄存器映射:

地址 0x0000: 总电压 (16位, 单位0.1V)
地址 0x0001: 总电流 (16位, 单位0.1A)
地址 0x0002: SOC (16位, 单位0.1%)
地址 0x0003: 最高温度 (16位, 单位0.1°C)
地址 0x0004: 最低温度 (16位, 单位0.1°C)
地址 0x0005: 状态标志 (16位, 位定义见手册)

避坑指南:我曾经遇到一个项目,Modbus通信老是丢包。查了半天,发现是RS485的终端电阻没加。记住,长距离通信(>100米)一定要加120欧姆终端电阻。

3.3 BMS数据在功率分配中的应用

数据拿到手了,怎么用?我举几个实际例子。

3.3.1 基于SOC的功率限制

SOC低了,就不能大功率放电。SOC高了,就不能大功率充电。这是最基本的保护逻辑。

我常用的策略:

  • SOC > 90%:充电功率限制为额定功率的50%
  • SOC 20%-90%:充电/放电功率全开
  • SOC < 20%:放电功率限制为额定功率的50%
  • SOC < 10%:停止放电,只允许充电

3.3.2 基于温度的功率降额

温度高了,电池内阻变大,发热更严重。这时候必须降功率。

我的经验曲线:

温度 < 0°C: 充电功率限制为30%,放电功率限制为50%
温度 0°C - 45°C: 功率全开
温度 45°C - 55°C: 功率线性降额到50%
温度 > 55°C: 停止充放电

3.3.3 基于电压的紧急保护

单电芯电压超过3.65V(磷酸铁锂)或4.2V(三元锂),必须立即停止充电。低于2.5V,必须停止放电。

这个逻辑要放在功率分配控制器的最前面。优先级最高,不能有任何延迟。

重要提醒:BMS数据有延迟。CAN通信一般有10-50ms的延迟,Modbus更慢,可能到100ms。功率分配控制器在做决策时,一定要考虑这个延迟。我习惯在软件里加一个数据有效性检查,如果超过200ms没收到BMS数据,就自动进入安全模式。

3.4 知识体系总览

下面这张图,把BMS和功率分配的关系梳理清楚了。你可以看到,BMS采集数据,通过CAN或Modbus传给功率分配控制器,控制器再根据SOC、温度、电压做决策。

BMS 电压监测 电流监测 温度监测 SOC估算 通信协议 CAN / Modbus 功率分配控制器 SOC限制 温度降额 电压保护 功率指令输出 充电/放电功率 反馈:实际功率、电池状态 BMS与功率分配系统架构

嗯,BMS这块内容就讲到这里。记住一句话:BMS是功率分配的眼睛和耳朵。数据不准,分配再好也没用。


公众号:蓝海资料掘金营,微信deep3321