电池管理系统中的均衡电路,
我们呢思考一下为啥要均衡呢
单体电压是直接测量值,可以实时在线测量,这都使它成为衡量系统电芯一致性水平的有利条件。不单如此,常见BMS管理策略中,把单体电压值作为触发条件的情况还有放电终止条件,充电终止条件等等。
处于这样位置的一个参数,单体电压一致性差异过大,则直接限制了电池包充电电量和放电电量。基于此,人们用电池均衡方法解决已经处于运营状态的电池组单体电压差异过大问题,来提高电池组容量。从而也就可以做出,均衡手段延长了续航里程,延长了电池使用寿命之类的推论。下面一幅图很形象的说明了主动均衡的原理。从这里可以看出,我们的均衡并非很理想,只是暂时没有更好的办法。
我们通常把能量消耗型均衡叫做被动均衡,而把其他均衡称为主动均衡。而对系统进行人为干预的,虽然经常不被理论讨论,但在实际应用中却不可或缺的,单体充电均衡,就是人工单独给电压过低电芯充电的解决不一致问题的方式。
主动均衡的具体实施方案有很多种,从理念上可以再分成削高填低型和并联均衡型两大类。通常被质疑主动均衡影响电池寿命的,特指削高填低这类主动均衡。汇总几种典型主动均衡电路在下面。
削高填低,就是把已经电压高的电芯的能量转移一部分出来,给电压低的电芯,从而推迟最低单体电压触及放电。截止阈值和最高单体电压触及充电终止阈值的时间,获得系统提升充入电量和放出电量的效果。
但是在这个过程中,高电压单体和低电压单体都额外的进行了充放。我们都知道,电池的寿命被称为“循环寿命”,仅仅就这颗电芯来说,额外的充放负担会带来寿命的消耗是一个确定的事,但对电池包系统而言,总体上是延长了系统寿命还是降低了系统寿命,目前还没有看到明确的实验数据予以证明。
削高填低的均衡,包括电容式均衡,电感式均衡,变压器式均衡,此三种均衡方式包括充电过程中的均衡以及静置过程的均衡。另外还有一种主动均衡,叫做并联式均衡,它只在充电过程中发挥作用。
也有人认为应该在车辆运行中,和放电过程的末尾加入均衡,但一般认为系统电流值的波动比较大,如果依然以单体电压为依据进行均衡,则很可能出现误判,影响均衡效果。当然,随着技术的发展,能够通过其他手段直接对SOC进行准确的推算,则根据SOC进行的均衡,将不会再受到这个问题的困扰。
电容式均衡
设 B1,B3 电池单体分别为组内电压最高、最低单体。图中所有开关管为常开,当均衡器发出均衡指令时,功率开关管 S1、Q2 闭合,此时单体电池 B1 给电容充电,控制功率开关管的占空比控制充电功率和时间,充电结束后,开关管 S3、Q4 闭合,电容给单体电池 B3 充电,此时电池组内不均衡度降低,均衡结束。
电感式均衡
充电过程中,开关管 S 闭合,充电机给电池组充电。此时电池组右侧开关管全部断开,均衡系统不开启。设单体电池B1 电压开始明显高于其他电池并达到均衡阈值时,此时均衡系统开启,S1、Q2开关管闭合,电感与单体电池 B1 并联,起到分流的作用,电感储存来自充电机与电池 B1 的能量;当 S1、Q2 开关管置 0,Q3、S4 开关管置 1 时,电感给充电过程的单体电池 B3 释放一定能量。
静置过程中,开关管 S 断开,当单体电池 B1 电压高于其他电池并达到均衡阈值时,均衡系统开启,S1、Q2 开关管闭合,电感与单体电池 B1 并联,电感吸收 B1 能量;当 S1、Q2 开关管断开,Q3、S4 开关管闭合时,电感给单体电池 B3释放电量。
变压器式均衡
基于反激式均衡变压器进行参数设计,即变压器既作为吸收能量源又作为释放能量源,吸收与释放能量的转换在于能量在磁能与电能之间的转换。
同样,设单体电池 B1 电压最高,将 S1、Q2 置 1,其他开关管置 0,此时变压器作为吸收能量源,能量由 B1 电池给的电能转换为磁能;S1、Q2 置 0,Q1、S2 置 1,能量由初级绕组传递给次级绕组,能量释放给单体电池 B3,能量由磁能重新转换为电能。
并联均衡
理想的均衡方式是所有电池能量及端电压相同,并联电池组内单体电池电压始终相等,因为和连通器原理一样,两边水柱永远水平,并联电池也先天性的单体电压高的自发给单体电压低的电池充电。但串联电池组内想要应用此原理,就需要稍微改变原电池组拓扑结构。
如下图所示的并联拓扑结构,每节单体电池都有一个单刀双掷的开关继电器,所以 n 节串联电池组内需要 n+1 个继电器。
控制原理如下:设电池组内 B4 电压最高,B2 电压最低,控制继电器 S5、S3、Q4、Q2 闭合,此时两节单体电池并联,两单体电池自动均衡,电压趋于一致。该拓扑的缺点是充电过程中不能进行均衡,只能静置去极化时候进行并联均衡。
看看实际电路中总体思路
就是利用这款芯片对电池电压进行采集,替代之前的隔离,ad切换等复杂的工作。为电池管理系统提供可靠的前端采集,同时,也通过mosfet对电池进行放电均衡,保持电池一致性,防止危险发生。通过实时显示,报告电池状态,如果有异常情况及时LED报警。图纸如下
我们呢主要看均衡电路那块,通过电阻放电的方式
pcb图
AD7280A采用电池直接供电,8-30V宽输入电压,理论精度在正负1.6mv,采用SPI方式通讯
//-------------模拟spi收发---------------------
unsigned long spi(unsigned long Data_send)
{
unsigned char i;
unsigned long Data_receive,j;
j=Data_send;
Data_receive=0;
SCLK=0;SDO=0;CS=0;
for(i=0;i<32;i++) //"发数据
{
if (SDI) {
Data_receive=Data_receive|0x00000001;
}
asm ("nop");
Data_receive=Data_receive<<1;
SCLK=1;
asm ("nop");
if (j&0x80000000){SDO=1;}
else SDO=0;
asm ("nop");
j=j<<1;
SCLK=0;
}
CS=1;
delay(2);// 延时3us8
return Data_receive;
}
//-------------初始化AD7280A----------
void initad7280()
{
//-----12路初始化--------
spi(0x01c2b6e2);//写0E
delay(60);//延时90us
CS=0;
delay(10); //CS上升沿
CS=1;
spi(0x038716ca);//读0E 可以作为验证发送数是否正确
}
//-------------发送32bit数据-------
void spifourbyte(unsigned long data)
{
unsigned char one,two,three,four;
four=data;
three=data>>8;
two=data>>16;
one=data>>24;
CS=0;
spibyte(one);
spibyte(two);
spibyte(three);
spibyte(four);
CS=1;
delay(2);// 延时3us
}
//----------spi初始化子程序-------------------
void SPIINIT()
{
PIR1=0;
SSPCON=0x00; // SSPEN=0;CKP=0 , FOSC/4
SSPSTAT=0x80;
}