概要:设计了一款适用于储能应用中的电池管理系统。该系统为3层结构,采用MC33771作为模拟量采样芯片,实现了电池的电压、电流、温度等数据的获取,并在此基础上完成了其他需求功能。以储能系统中广泛使用的钛酸锂电池为实际测试对象,测试结果表明所设计的BMS系统能够实现对电池各项信息的准确采样,其中电压测量误差不超过2mV,电流采样误差在0.1%以内,并可有效完成各项设定功能,满足储能应用需求。
随着传统能源的日益减少,新能源发电技术凭借环保无污染的优点越来越受到人们的关注,然而新能源发电具有波动性和不确定性,会产生严重的谐波干扰,甚至导致电网崩溃。为了解决这些问题,一般采用锂电池储能电站的方式降低功率波动对电网造成的危害。储能电站一般由成千上万的单体电池串并联而成,为了确保这些单体电池能够安全有效运行,需要采用专门的电池管理系统(BMS)对电池进行监控和管理。
现有的BMS系统主要是针对电动汽车设计的,与电动汽车相比,储能系统中含有的串并联单体电池数量更多,导致储能系统结构更加复杂,对BMS系统的处理能力要求也大大提高,因此为了更好地满足储能系统的实际需求,需要对储能中BMS系统的功能和结构进行分析,并在此基础上设计一款适用于储能应用的BMS系统。为此,基于对储能中BMS系统功能需求的分析及各主流电池管理芯片参数的对比,选择NXP公司生产的MC33771作为BMS系统中的模拟量采样芯片,并设计了3层系统结构,实现电池电压、温度、电流等模拟量的采样,并完成系统其他功能设计。以钛酸锂电池组为测试对象,结果表明,所设计的BMS系统能够准确采样各种信息并以此为基础实现其他设定的功能,能够满足储能系统的使用需求。
1 储能应用中的BMS结构
对比目前常见的几种主流电池模拟量采样芯片,MC33771具有更多的电压采样通道以及宽温范围内最高的测量精度,并且采用菊花链通信的方式省去了昂贵的数字隔离器,因此采用MC33771作为模拟量采样芯片。
采用菊花链通信的方式1 次最多可挂接15 个MC33771,而每个MC33771可管理14串电池,所以1个控制器通过1条菊花链最多可实现对210节电池的管理。而每个控制器之间则可通过1个主控制器完成系统整体的运行和协调,实现管理更多电池的功能,并且采用主从控制器结合的方式能够避免单个控制器任务量过大,影响系统实时处理能力的问题。为此,本文采用3层结构的方案,具体结构框图如图1所示。底层是MC33771及其附属电路构成的BSU,负责采集电池各项信息;中间层是从控制器组成的BCU,主要负责通过菊花链的通信方式控制各自的BSU 完成数据采集的功能,并将相应数据上传;上层是BMU,负责系统内部的整体协调以及与外部信息交互,根据外部请求控制整个BMS系统的运行过程。
2 BMS系统硬件设计
BMS系统硬件主要分为BSU、BCU和BMU。为了节省设计时间,将BCU和BMU的硬件结构统一,只需根据不同功能焊接相应器件即可。
2.1 BSU硬件设计
BSU 主要由MC33771 及其附属电路组成,其中MC33771主要完成电池的电压、温度采集以及各种故障检测和均衡功能。其中,电压采样与均衡电路如图2所示,温度采样则通过计算热敏电阻阻值的方式实现。MC33771采用菊花链完成信息的上传下达,通过控制内部相应MOS管的通断实现最大通态电流为300mA的被动均衡功能。采用菊花链通信无需额外的高速光耦以及配套的隔离电源,只需1个隔离变压器HM2012NL即可实现2片级联的MC33771之间的信息传递,节省了成本。菊花链采用差分信号传输数据,为了能够实现MC33771与控制器(单片机)的正常通信,需要采用MC33664信号转换芯片将差分信号转换为SPI信号。菊花链通信的结构示意图如图3所示。
2.2 BCU与BMU硬件设计
BCU与BMU采用相同的硬件结构,根据功能需求焊接不同器件,其硬件结构主要分为主控制器、电流测量电路、CAN通信电路以及继电器驱动电路等。
2.2.1 主控制器设计
主控制器采用ST公司生产的STM32F405RGT6。它是一种32位的ARM 架构处理器,主频高达168 MHz,内部具有1M 的Flash容量,外部采用64引脚的封装,集成了3路SPI总线、2路CAN 总线,可以满足系统的需求。
2.2.2 CAN总线通信电路
BMU 和BCU 之间通过CAN 总线传输信息,采用TJA1040T作为CAN 总线收发芯片。鉴于系统中串联了大量单体电池,为防止地电位不同导致的共模干扰以及对CAN收发芯片造成的损坏,在单片机CAN 通信接口与CAN总线收发芯片之间串入ADUM1201BRZ双向磁隔离器实现信号的隔离,并在CAN 收发器输入端并联120Ω电阻抑制回波反射。CAN总线通信电路如图4所示。
图4CAN总线通信电路
2.2.3 充放电控制电路
BMU负责根据外部相应的请求和BMS系统内部状态控制充放电过程,采用继电器作为充放电主回路的开关。以MOSFET驱动电路控制继电器的吸合,完成相应的动作,具体的驱动电路如图5所示。其中,PIN1和PIN2是与继电器相应触点连接的端点;IO为单片机的控制引脚;串联反二极管的作用是吸收MOS管关断时继电器线圈上的电流。
图5 继电器驱动电路
2.2.4 电流测量电路
本文基于分流器的方式测量回路电流,采用的分流器规格为500A/75mV。由于直接使用单片机的AD引脚测量分流器的电压会导致巨大的测量误差,因此本文采用亚德诺半导体生产的ADUCM331 作为电流采样芯片。ADUCM331是一款基于ARM Cortex-M3架构的32位处理器,采样电压范围为-200~+300mV,电流采样精度为20位,最大采样频率可达8kHz,通过SPI总线或UART方式实现与外部通信,并可通过SWD引脚完成程序下载。为了保护ADUCM331的电流采样引脚,接入必要的限流和限压电路,具体的电流采样保护电路结构如图6所示。
图6 电流采样电路
3 BMS系统软件设计
BMS软件功能主要包括电压、电流、温度采样,均衡功能,充放电控制,故障预警和SOC估算等。其中电池电压、温度、电流精确采样是实现其他功能的基础。
3.1 初始化MC33771
执行采样功能之前,首先要对MC33771初始化。初始化流程如下。
(1)通信初始化。对STM32F405的SPI1和SPI2分别初始化,因为通过MC33664转换后的通信速率高达2Mb/s,直接使用SPI接收中断无法正常读取返回信息,所以采用DMA的方式接收返回的数据。
(2)MC33771初始化。SPI初始化后,BCU 对所有MC33771发送复位指令,将每个MC33771的INIT 寄存器都设置为0x00,使所有的MC33771的ID号都为0。复位完成后按菊花链级联的顺序重新依次赋予不同的ID。
(3)初始化MC33771中系统控制寄存器SYS_CFG1和SYS_CFG2以及需要配置成温度测量功能的GPIO端口。
(4)故障预警设置。MC33771中自带有过压欠压、过温欠温、均衡开路和短路等相关预警功能,对于需要用到的预警功能,使能FAULT_MASKx寄存器中相应数据位即可,对于不需要用到的预警功能则进行屏蔽。
(5)将设定的过压、欠压阈值写入TH _ALL_CT寄存器中,将过温、欠温阈值写入相应的TH _ANx_OT和TH_ANx_UT寄存器里。
3.2 电压温度采样
完成初始化流程后,即可对MC33771下达信号采集命令,MC33771主要采集各节电池的电压以及温度数据。首先将转换命令写入ADC _CFG 寄存器中使得相应MC33771启动转换,等待转换完成后,读取对应的MEAS_CELL或MEAS_AN 寄存器中的数值并通过公式计算出真实的电压和温度信息。具体的采样流程如图7所示。
图7 电压、温读取流程
3.3 电流采样
电流采样是通过Aducm331电流采样芯片完成的,需要对Aducm331的相关寄存器进行配置,具体流程如图8所示。
图8 电流采样流程
4 试验分析
采用2组14串钛酸锂电池PACK进行试验,检测电压、温度和电流的采样精度。其中,读取上位机的电压数据并与Agilent六位半万用表的测量数据进行比较,以万用表的测试数据作为真实值。某组PACK的测试结果见表1,由此可知,电压测量误差在2mV之内,能够满足实际系统需求。
表1 电压测量结果
向主回路串联500A/75mV的分流器,使用电子负载构成放电回路。通过调节电子负载的放电电流测试电流采样精度,以电子负载上显示的电流值为基准进行比较。电流采样精度测试结果见表2 (其中绝对精度是指电流采样误差绝对值除以1000A的结果),由此可得,电流采样相对误差最大不超过2%,绝对误差在0.1%以下,满足电流精度要求。
表2 电流采样精度测试
将热敏电阻浸入水中,同时放入温度计,通过不断向盆中加入热水来改变水温。观察上位机读取的相应温度值和温度计的示数来检验温度测量精度。测试结果见表3,由此可知,温度测量误差最大不超过3℃,符合实际要求。
表3 温度采样精度测试
在上述采样基础上还对其他功能如故障检测和SOC估算进行了测试,均能满足实际需要。
5 结语
本文通过对储能应用中BMS系统功能和结构的分析,完成了相应的软硬件设计并对设计的系统进行了实际测试,结论如下:基于3层结构的BMS系统可以实现管理多节单体电池的功能,适用于大容量的储能系统;所设计的BMS系统能够精确采集电池电压、电流、温度等数据,并在此基础上有效完成如故障检测与保护和电池组SOC估算等功能,满足实际的应用要求。
作者:陆凡 刘东(西南交通大学电气工程学院)
来源:摘自《电工技术》
最终版权归原作者所有,如涉侵权联系撤稿。