在设计充放电异口的锂电池组的BMS保护系统时,通常情况下都会对充电口进行防反接设计,防止电池通过充电口对外部放电。
而常用的防反接方式就是在电池组的充电回路中串接二极管,限制电流的流向,使充电回路只能对电流进行充电,而无法对外进行放电。但是直接在充电回路中串接二极管有一些弊端,比如大电流充电的发热问题,比如压降问题(电池组实际获得的电压为充电器电压减去二极管上的压降,可能导致电池无法充饱)。
一种可用的优化方式为采用MOS管替代二极管串接在电池组的充电回路中,在充电时打开MOS管,使其导通,降低内阻,这样可以很大程度上解决发热问题和压降问题(MOS管导通时内阻足够小);而在未处于充电状态时关闭MOS管,这时MOS管等效于一个二极管,可以起到限制电流流向的作用。
D:/YoudaoNoteData/blustghw@163.com/3af19ecd07e94868b9c43410d2fd0d0a/clipboard.png
图1:防反接MOS管电路示意
如图1所示,MCU的IO口(图中FJ)通过驱动一个三极管来驱动防反接MOS管。未处于充电状态时,FJ为低电平,三极管Q22截止,MOS管V6截止,其等效为一个二极管。当充电器接入,可以通过V6的体二极管对电池组进行充电;当系统检测到充电电流时,控制FJ为高电平,Q22导通,V6的G级被拉低,V6导通,可进行正常充电。当系统检测到充电电流消失时(可能是发生保护,也可能是充电器被移除),通过控制FJ拉低来关闭MOS管,从而达到防反接的目的。
最开始采用的逻辑是V6的通断只跟充电电流有关系,当有充电电流时V6打开,没有充电电流时V6关闭。但是在测试时发现会出现温度异常导致系统发生保护。通过测试与分析,发现是充电防反接MOS管的通断通过充电激活电路影响到了温度测量。
D:/YoudaoNoteData/blustghw@163.com/3cd9e217e182457fb65c3540fc1caaa6/clipboard.png
图2:充电激活电路
如图2所示,充电激活电路为通过获取最低一串电芯的电压接入AFE芯片的TS1引脚来达成激活动作。平时状态下C+没有电压,V1处于截止状态,V9同样处于截止状态。当C+接入充电器时,电压瞬间拉高,短时间内电容C42等效于短路状态,R87被加上电压,导通V1,拉低V9的G极,从而导通V9,TS1获取到电压从而激活系统。之后C+对电容C42进行充电,R87上电压回落,关闭V1和V9,TS1引脚在该部分电路上恢复悬空状态,可在其他地方接入NTC电阻进行温度测量。
充电激活电路和充电防反接MOS管电路结合使用时,当电池组BMS系统处于放电状态时,如果负载中有感性负载(电机等),当电机发生堵转或其他原因,导致放电口有电流灌入电池组,系统检测到的电流为充电电流,这时候系统会控制充电防反接MOS管V6导通。此时电池组的电压会通过V6接入到C+端,等效于接入了充电器;C+端被加上的电压通过充电激活电路会拉高TS1一段时间,而此段时间内温度采样会被影响,导致测量出现错误,系统出现异常保护动作。
为了解决这个问题,需要进行两个动作,第一是修改防反接MOS管控制逻辑,第二是温度采样滤波。
首先,对防反接MOS管的控制逻辑进行修改,加入充电器在位逻辑判断,只有在充电器在位且有充电电流时才去打开防反接MOS管,充电电流消失就去关闭防反接MOS管。因为充电器检测时防反接MOS管是关闭的,此时检测到的充电器在位信号为真实的充电器在位,而不会是电池组电压传导过去的假信号。在这个逻辑关系下,即使放电口有电流灌入电池组,因为此时没有充电器在位信号,系统不会去打开防反接MOS管,因此可以避免发生上述问题。
在加上上述逻辑之后,解决了防反接MOS管误开启导致的问题,但系统处于运行状态时充电器真正接入还是会发生上述问题。为了解决这个问题,需要对温度采样值进行滤波。如果系统运行过程中温度发生突变,且突变值超出一定范围(例如5℃),则忽略此次采样值;如果突变值连续保持超过一定时间(例如5秒),才会接受突变后的温度值。因为正常运行过程中温度不会发生忽然突变的情况,如果检测到温度值发生突变,很可能是TS1引脚被充电激活电路影响导致误测量。
在采用了上述两个解决方案之后,防反接MOS管电路可以有效的工作,并发挥出应有的作用,且不会影响到系统其他部分的运行。
|