一.项目简介
1.该项目是基于BQ7692003PWR + STM32F103C8T6研发的一块锂电池控制板,本控制板可供五串18650锂电池(目前软件仅支持三元锂类型,标称电压为4.2V)串联使用,电芯均衡采用被动均衡方式
二.本项目功能
1.监控任务(1)系统参数监控(2)系统模式监控2.状态分析(1)各项分析参数(2)充放电时SOC值变化3.能量管理(1)充放电管理(2)均衡管理4.保护任务(1)充电过流、过温、低温保护及恢复,由软件触发(2)放电过温、低温保护及恢复,由软件触发(3)放电过流保护及恢复,由硬件触发(4)放电短路保护及恢复,由硬件触发(5)充电过压保护及恢复,由硬件触发(6)放电欠压保护及恢复,由硬件触发
三.BMS控制板说明
参数:
- 接入充电器电压不能超过21V
持续充/放电电流限制2A内
- 最大被动均衡电流100mA
- 电流采样精度±100mA
- 单体电芯电压采样精度±10mV
- 整体电池电压采样精度±50mV
- 保护:过压、欠压、温度、过流、放电短路
- 通讯方式:串口通信
- 预留扩展接口:CAN和485
四.BMS电池板说明
五.功能演示
一.基本功能
1.BMS控制板系统软件可配置参数在源码目录下的bms_config.h文件,跟BQ76920紧密相连的可配置参数在drv_softi2c_bq769x0.c文件
2.上电系统串口参数打印解释
- Battery Real Capacity:表示电池实际容量值(额定容量值是出厂给的,SOH电池健康度计算也可以用实际值/额定值)
- Battery Remain Capacity:表示电池剩余容量值
- Battery SOC:电池剩余容量百分比(剩余值/实际值)
- Cell Max Voltage:最大电芯电压值
- Cell Min Voltage:最小电芯电压值
- Cell Max Voltage Difference:最高和最低电芯电压差值
- Cell Average Voltage:电芯平均电压
- Battery Real Power:电池实时功率,电流*总电压
- Battery Voltage:整串电池总电压
- Battery Current:电池实时电流
- Cellx Voltage:电芯电压,cell1对应电池板上的第一串电芯电压。
3.命令解释
- BMS_CmdOpenDSG:打开放电MOS
- BMS_CmdCloseDSG:关闭放电MOS
- BMS_CmdOpenCHG:开启充电MOS
- BMS_CmdCloseCHG:关闭充电MOS
- BMS_CmdOpenBalan:开启均衡
- BMS_CmdCloseBala:关闭均衡
- BMS_CmdLoadDetec:在未开启充放电MOS情况下运行此命令可检测是否接了电子负载仪
二.均衡管理
无论怎么样的均衡方式,均衡时必须要满足均衡起始电压(判断最高节电芯电压)、均衡差异电压(最高和最低电芯电压差)条件方可启动均衡,在被均衡的电芯都有如下图中的标志(相邻电芯不能同时均衡,这是BQ769x0芯片硬件决定的)
三.充放电演示
1.充电:
先将电池板上的充放电开关处于断开状态(字母O一边按下是断开,字母I一边按下是接通),然后夹上充电器的电源夹子到BMS控制板的PACK-、PACK+两端,然后给充电器插上电源(充电器不要大于21V),然后拨动电池板充放电开关至开启状态,在串口终端输入 BMS_CmdOpenCHG 命令开启充电MOS开关,由于均衡策略的原因如果电芯正在均衡是不会立即开启充电MOS开关,需要输入BMS_CmdCloseBalance 关闭均衡命令后才会开启充电MOS然后电池正常充电(充电器绿灯变红灯),电流采样的数据(充电器的充电电流会随着电池电压变化而变化,电池电压越高充电电流越小,反之越大,不会超过充电器额定电流值)
2.放电跟充电操作差不多操作,唯一不相同地方无需关闭均衡开关
3.充电采集的电流值是正数,放电采集的电流值是负数
4.充电器采用的21V/2A,BMS控制板在没有开启放电MOS开关的情况下充电,BMS控制板的PACK端电压会比BAT端高出0.6V左右的电压(这是因为MOS管寄生二极管导致的),所以理论上充电器会在整串电池为20.4左右停止充电(充电器的停止充电变现为红灯变为绿灯,但是依然会有300mA左右的小电流在给电池充电),但实际测试在20.1V左右就会停止充电,如果想让电芯电压再充高点,先输入开启放电命令再输入开启充电命令
四.系统模式转换及SOC实时变化
- 在使用命令 开启/关闭 充/放 电的时候控制台会实时打印系统进入什么模式,下图有现象,充电、放电、待机。这块板子的睡眠暂时没考虑,商用级BMS肯定会考虑低功耗模式。
- SOC的算法采用开路+安时积分法结合,开路电压是电池在待机模式下静止很长一段以最低电芯电压为标准校准一次容量;安时积分法是充/放电状态下实时对电流进行积分校准电池实际的容量然后算出SOC值。这两种方法是最常用的也是最简单的,但商用级别的BMS肯定不会仅仅使用这两种SOC算法。这个文档不详细说明,课程会详细说明,SOC实时变化在下图有现象。
由于该项目的SOC并不是很准,需要考虑很多因素(额定容量实时校准、温度因素、寿命等因素),所以可能充/放整个过程并不会达到SOC为100%和0%。商业级BMS的SOC实现还叠加了其他的因素所以更精准
五.充/放电过压欠压演示
放电欠压和充电过呀操作都差不多
接线顺序:先把电池板充放电开关拨动处于关闭状态,然后将BMS控制板和电池板的所有线连接上,接着继续接上充电器的正负极到PACK端,然后插上充电器电源,拨动电池板的充放电开关至开启状态。
充电过压保护:
我们先修改一下充电过压的值为3.92(因为我的电池板最高那节电芯电压静态值为3.7x),过压恢复的值为3.90,如下图,然后输入开启充电MOS开关命令,此时充电器正常充电,当最高节电芯达到过压保护值3.92V时,会触发过压保护,此时系统会断开充电MOS开关,等到最高那节电芯电压降为3.90V以下然后恢复充电MOS开关继续充电