本文主要介绍一款电池管理系统所需要的基本功能和需求。
一、BMS简介
BMS,全称为Battery Management System,即电池管理系统,是针对各类电池(如锂离子电池、铅酸电池等)的智能化管理装置。BMS的主要功能包括电池状态监测、电池性能均衡、故障诊断与保护、电量计算与预测等多个方面。通过实时采集电池组中的每一块电池的电压、电流、温度等关键参数,BMS能够精确评估电池组的剩余容量(SOC)、健康状态(SOH),以及执行电池均衡控制,同时,BMS还具备电池过充、过放、过温等异常情况下的主动防护功能,有效延长电池使用寿命,优化能源利用效率,提升整体系统性能,保障用户使用安全。
目前电池的SOC使用mA·h为单位,即一小时均匀放电可以放出多大的电流。由于电池在实际使用时,电流会不断变化,因此使用安时积分法来计算SOC,即电流大小对时间求积分。
二、硬件电路
硬件主要需要以下几种元件:
1、MCU,作为BMS的核心元件,负责电池数据的采集、处理、计算。
2、温度传感器,用于采集电池的温度。
3、存储器,用于保存电池相关信息。
4、电子开关,可以由MCU控制,控制电池充放电。
5、通信模块,实现上位机对电池的控制和数据读取。
一般MCU能测量的最大电压为VCC电压(通常为3.3V),因此需要分压电路或者模拟前端采样,再转换成低于VCC大小的量,供MCU采集换算。
三、软件功能
1. 数据采集与SOC、SOH
MCU通过ADC采集到的电压值,通过换算得到电池的电压、电流等数据。因为电池在实际使用时,由于负载的缘故可能会导致电流电压值在短时间内出现较大波动,因此MCU需要高频率的采集,可以将采集频率定为1KHz左右。在高频采样时,可以近似认为电流在两个相邻采样点直接线性的变化,充放电量可以近似为梯形,即在每次采样时,将上一此测得电流作为上底,此次测得电流作为下底,采样间隔时间作为高,近似求得两次采样之间的充放电量。
电池每完整的进行一次充放电,被称为循环一次;电池容量会随着循环次数的增加、温度的变化而随之变化。总体而言,变化规律如下:电池每循环一次,总容量按照固定比例衰减;电池的容量与循环次数呈指数函数关系而衰减,并且该衰减是不可逆的;电池的容量与温度呈非线性的关系,在25℃以上时,容量的变化率趋近0,而在25℃以下时,随着温度的降低,变化率不停的升高,这种衰减随着温度变化可逆。采用线性拟合的方案,将温度分割成多个区间,温度越低,区间越窄。对于每个区间,将电池容量与温度的关系近似为线性关系,从而拟合出电池容量与温度的函数。当BMS工作时,通过安培-时间积分计算循环次数,并以25℃为标准计算当前电池容量,然后当温度模块工作时,再根据上述的函数,计算出当前温度下的电池容量。电池温度可以通过温度传感器数据读取来获得。
2.电池控制与节能
MCU需要对电池的充放电、电池的开关进行控制,一般通过MCU的IO口控制电子开关,来实现电池端口与BMS电源端口的导通。此外,MCU也需要与用户交互,此处使用三种接口实现与用户的交互:按钮实现电池的开关控制、LED实现电池的电量显示、通信接口(UART、CAN等)实现与上位机的通信。
当电池关闭时,BMS需要进入节能状态,即MCU进入休眠模式,以节省电量。而当电池需要使用时,则需要唤醒MCU,使其进入工作模式。唤醒的方式主要是给MCU唤醒引脚一个高电平,可以考虑使用按键唤醒或者负载设备连接BMS唤醒端口并提供高电平;按键可以使用短按+长按的模式,实现唤醒与电池开关功能的复用。
3.电池的保护与安全
电池的保护主要是防止过充、过放、过流、超温、电芯失衡等问题。当电压小于过放阈值、大于过充阈值、充放电电流大于阈值、温度高于阈值、电芯之间的电压差大于阈值时,应当关闭电池并报警/记录这些事件,MCU可以通过通信接口向上位机上报警告以及日志。
电芯失衡时,BMS可以通过电芯平衡电路,将电压较高的电芯的电量释放出来,从而实现电芯的平衡。
当电池的剩余电量大于70%时,若长期不使用,应当通过电芯平衡电路,释放掉过多的电量,从而延长电池寿命,具体操作可以在电池中设置一个RTC闹钟,设定好启动时间。唤醒时即开启自放电,等到剩余电量到70%时,关闭自放电并休眠。如果在闹钟唤醒前启动电池,则取消闹钟,MCU休眠前再启动闹钟。