BMS系统主要由前端采集芯片采集电路,MCU控制充放电MOS电路,FUSE保护电路构成
一.策略
1.欠压保护:
a.单体欠压保护(1级)电压2.8V,延时3s,只告警不保护,最低单体电压大于3.10V时恢复或充电电流大于0.8A时恢复。
b.单体欠压保护(2级)电压2.5V,延时3s,充电MOS:ON,放电MOS:OFF, 最低单体电压大于3.10V或充电电流大于0.8A时恢复。
c.处于单体欠压保护(2级)状态且有大于1A的放电电流,持续5s以上,熔断保险丝。
d.发生欠压保护(2级)时60S内没有达到恢复输出条件,充电开关:OFF,放电开关:OFF,进入休眠,外部开关重启或充电机电压到达后恢复。
2.过压保护:
a.单体过压保护(1级)电压3.62V,延时3s,只告警不保护,最高单体电压小于3.35V时或放电电流大于0.8A时恢复。
b.单体过压保护(2级)电压3.65V,延时10s,充电MOS:OFF,放电MOS:ON,最高单体电压小于3.35V或放电电流大于0.8A时恢复。·
c.处于单体过压保护(2级)状态且有大于1A的充电电流,持续5s以上,熔断保险丝。
3.温度保护:
a. 当电池包温度上升或者下降到过温或低温2级阀值时,MCU会控制MOS控制电路关闭充放电MOS,断开电池包输出端。
b.高温保护(1级)温度55℃,延时3s,只告警不保护,最高温度小于 45℃时恢复。
c.高温保护(2级)温度60℃,延时3s,充电开关:OFF,放电开关:OFF,最高温度小于50℃时恢复。
d.低温充电保护,温度0℃,延时3s,充电开关:OFF,放电开关:ON,最低温度高于3℃或放电电流大于0.8A时恢复。
e.低温放电保护,温度-20℃,延时3s,充电开关:OFF,放电开关:OFF,最低温度高于-10℃或充电电流大于0.8A时恢复。
4.过流和短路保护:
如果使用AFE采集,需要注意配置AFE 的过流和短路参数值
a.MCU通过采集电路接收到电池工作电流等信息,当电池包充放电电流到达阀值电流时,通过控制充放电MOS电路关闭,完成过流保护功能。
b.当电池包输出端短路时,模拟前端和短路保护电路会快速响应,同时触发MCU短路信号,MCU会迅速通过控制充放电MOS电路关闭,完成短路保护功能。
c.当充放电保护电路失效或者充放电MOS损坏的时候,短路时间大于保险丝所能承受的时间时,会直接熔断保险丝,完成短路保护功能。
d.放电过流保护,xxxA,延时xxx s,充电开关:OFF,放电开关:OFF,xxx s后恢复;具体数值需要根据BMS板子自身的过流能力定义
e.充电过流保护,XXX A,延时XXX s,充电开关:OFF,放电开关:ON,XXX s后恢复;具体数值需要根据BMS板子自身的过流能力定义
f.短路保护,800A,立即保护,充电开关:OFF,放电开关:OFF,60s后恢复。
注意:以上故障属于可恢复,但是需要确定恢复值,恢复值需要保证合理的回差值,防止故障在临界值反复跳转
一般使用表驱动完成:
//告警汇总结构体
typedef struct
{
AlarmSummaryID m_u32AlarmSignal; //汇总告警信号
AlarmLevel m_u8AlarmLevel; //初始化故障等级
U32 m_u32AlarmLevalOne; //一级告警信号
U32 m_u32AlarmLevalTwo; //二级告警信号
}tag_AlarmSumma
const tag_Alarmsignal AlarmArry[] =
{
//告警信号 取值信号 告警门限 产生延时 消失延时 事件消失回差 判断方式
//总压过高0.1V
{ ALARM_ID_SUM_OVER_VOLT_LEV_1, MBMS_SAM_SIG_ID_INSIDE_ADDED_TOTALVOLT, MBMS_SAM_SIG_ID_SUM_OVER_VOLT_LEV_1, 10, MBMS_SET_SIG_ID_SUM_OVER_VOLT_LEV_1_DELAYTIME, MBMS_SAM_SIG_ID_SUM_OVER_VOLT_LEV_1_REC_VAL, JUDGE_TYPE_UPLIMIT, ALARM_UNLOCKED}, //总电压过高一级故障10V,0.1V
{ ALARM_ID_SUM_OVER_VOLT_LEV_2, MBMS_SAM_SIG_ID_INSIDE_ADDED_TOTALVOLT, MBMS_SAM_SIG_ID_SUM_OVER_VOLT_LEV_2, 10, MBMS_SET_SIG_ID_SUM_OVER_VOLT_LEV_2_DELAYTIME, MBMS_SAM_SIG_ID_SUM_OVER_VOLT_LEV_2_REC_VAL, JUDGE_TYPE_UPLIMIT, ALARM_UNLOCKED}, //总电压过高二级故障20V,0.1V
//总压过低0.1V
{ ALARM_ID_SUM_LOW_VOLT_LEV_1, MBMS_SAM_SIG_ID_INSIDE_ADDED_TOTALVOLT, MBMS_SAM_SIG_ID_SUM_LOW_VOLT_LEV_1, 20, MBMS_SET_SIG_ID_SUM_LOW_VOLT_LEV_1_DELAYTIME, MBMS_SAM_SIG_ID_SUM_LOW_VOLT_LEV_1_REC_VAL, JUDGE_TYPE_DOWNLIMIT, ALARM_UNLOCKED}, //总电压过低一级故障10V,0.1V
{ ALARM_ID_SUM_LOW_VOLT_LEV_2, MBMS_SAM_SIG_ID_INSIDE_ADDED_TOTALVOLT, MBMS_SAM_SIG_ID_SUM_LOW_VOLT_LEV_2, 20, MBMS_SET_SIG_ID_SUM_LOW_VOLT_LEV_2_DELAYTIME, MBMS_SAM_SIG_ID_SUM_LOW_VOLT_LEV_2_REC_VAL, JUDGE_TYPE_DOWNLIMIT, ALARM_UNLOCKED}, //总电压过低二级故障20V,0.1V
}