什么是BMS?

首先必须弄懂一个定义,什么是BMS?
  BMS其实就是BATTERY MANAGEMENT SYSTEM的缩写,中文名字叫电池管理系统,顾名思义,是专门用来进行锂电池运行管理的模块,对象是锂电池。
  
  对于一般的终端用户而言,锂电池保护板其实并不存在,或者说,他们并不知道正在自己使用的产品中还有这么一个东西。比如说电动车,100%的用户都知道电动车上面有电池,因为电池提供了能源,但最多有1%的用户知道还有锂电池保护板这个东西的存在。
  
  BMS的存在感之所以如此低,完全是因为它并不能和用户产生直接的交流,也并不能与用户发生频繁的交互,就算是偶尔产生了一些数据,不过这些数据也是通过某些仪表盘传递给用户观测,当用户看见仪表盘上的红灯时只会说:“嗯,车子好像是坏掉了,质量真差。”
  
  话说回来,BMS虽然存在感低,不过它存在的意义却是丝毫不亚于仪表,甚至可以说是比仪表还重要,因为他可以检测出这辆车子的能源系统是否坏掉了,只有拥有BMS系统,用户才可能在不冒险的情况下知道这辆车到底是好是坏。
  
  如果有一个行业内的嵌入式工程师要买一辆电动车,在一辆没有显示仪表和BMS板子的电动车中进行选择,那么他肯定不敢选后者,因为如果电动车没有了仪表,那么用户体验会极差,但如果电动车没有了BMS……与其说是一辆电动车,还不如说是一辆随时可能发生被激活的炸弹。
  
  那么BMS在能源领域为什么如此重要?BMS的存在到底有什么意义?


本文便从一个底层工程师的角度,以电动车用的BMS模块作为例子专门对锂电池的保护板设计进行一些探讨,并且会给出一个参考方案,当然由于笔者能力有限,水平一般,如果文中出现了错误或者纰漏,请直接指出。

BMS的大体需求是什么?

当设计团队拿到一个项目,开始开发的时候,首先必须要搞清楚的便是项目的需求,这个需求可不仅仅是老板口头上说几句话,而是需要一个切实的、详细的、标准的文档,文档要以1、2、3为结构,明确的把所有的需求点给罗列出来。

我们现在拿到了一个项目:轨道交通电池系统。

只要项目立项成功,那么作为产品经理,或者团队leader,则列出需求文档是必须要做的事情。
锂电池管理系统,其中重点二字在于“管理”,要想实现管理功能,必然需要两个模块,第一:监测。第二:控制。只有在我能够监测这个系统的前提下,我才能控制这个系统。

由此为核心点,我便可以慢慢的罗列出大致需求:
  1. 监测能源系统,能够实时读出锂电池的所有状态。
  2. 控制能源系统,根据锂电池的状态,在需要的时候进行干预(比如断开/闭合充放电回路的MOS管、继电器)。

保护功能如何实现?

数据采集
  电池系统的大致需求分为采集和控制,那么采集的都会有什么数据?
  电压
  电流
  温度
  
  作为一个以管理锂电池的系统而言,以上3点是我们要重点监测的数据,如果系统超级简单,采集的点只有3、4个,那么直接使用MCU的AD接口进行读取信息便可,但在实际中几乎不可能存在这种情况,通常所用的采集的方式一般是使用模拟前端。
系统信息
   电压:锂电池本身的化学特性决定了我们必须要对电压进行保护,所谓的电压保护,是我们必须要保证锂电池的电压永远在合适的范围之类,不能让电压过低,因为其内部存储电能是靠电化学一种可逆的化学变化实现的,过度的放电会导致这种化学变化有不可逆的反应发生,因此锂电池最怕过放电,一旦放电电压低于2.7V,将可能导致电池永久性损坏,也就是报废。同时也不能让电压过高,因为电池一旦过度充电,导致的危害远远大于过放,过放最多损坏电池,不会对周围造成危害,而过充则可能导致电池温度升高,以至于发生自燃甚至爆炸,这种危害是致命的。
  
  电流:所谓的电流保护,也是我们必须要保证,无论是充电还是放电,电流都不能过大,大家都清楚的短路便是过流的一种体现,当系统正负极直接接触,导线电阻极小,导致电流极大,极大的电流又会产生大量的热,从而引发的燃烧和爆炸是很致命的。其实,就算不是短路,但过大的电流依然会导致电池内部发热,这样也极有可能会造成永久性的损害。
  
  温度:温度保护不用多言,除开锂电池本身的化学特性导致它不能在极端温度下使用之外,我想任何一个类似的系统,为了安全起见都应该考虑到温度。

看到这里大家也应该明白了,锂电池保护系统的逻辑其实很简单,无非就是一些判断,以及MOS管的控制,这些东西只要通过软件基础功能应该都能实现。

现在将上面的保护细分:

电压保护

一个锂电池包,本身并不是一个整体,如果拆开它的外包装就能发现,它其实是由N个18650电池经过串并连所组成。
  
  
  

比如我们手上的48V20AH的锂电池包,它的组成是,每N个锂电池并联,作为一个子单元,然后在由16个这样的子单元串联,最终才形成一个锂电池包,若论单个18650电池的数量,至少有上百个之多。
  

由此,如果我们想要监测并且保护系统的电压情况,自然不能简单的只采集一个总体电压,考虑到电池均衡等特性,虽然不用对每个电池进行采集和控制,但作为组成电池包的每一串的单体电压是必须要监测的。
  
  如果一个16串的锂电池包,那么需要监控的电压点自然不能低于16个(这就是为什么需要模拟前端的原因,系统采集点过多,一般的MCU不可能满足)。
  
   等采集到了单体电压和总电压以后,我们就可以进行逻辑设计了。
  
   电压保护相关的项目:
  
  1. 总体电压
   总体过压保护
   总体欠压保护
  
  2. 单体电压
   单体过压保护
   单体欠压保护
  
  ※一般更容易触发的保护当然是单体,如果每一串电池的电压的都没问题,那么总体电压自然也不会有问题。
  
  保护过程:系统采集电压量,进行判断,一旦检测到某项指标超过设定的保护值,并且系统的状态符合保护条件(充电时不进行欠压保护,放电时不进行过压保护),然后持续了一定时间(防止抖动),那么断开充放电回路并进行报警,至于是断开充电还是放电,根据实际情况决定。
  
  那么保护之后该如何恢复?总不能让电动车一次过充电后就永远报废吧?
  
  系统发生了保护,今后自然还有恢复的时候,如果系统发生了单体电压保护,那么可以设定恢复值,等待电压自然恢复到合适范围,并且持续了一定时间以后(防止抖动),便可以重新打开充放电回路。
  
  ※恢复值和保护值最好不要完全一样,这样可以给系统留出一些余量,也可以防止抖动的发生。
  
  以下是关于电压保护简易的逻辑表:

电流保护

电流的保护与电压不同,它自然不会分为总体和单体,下面的锂电池由几个串组成对电流这个信息而言毫无意义,它关心的只是一个在负载/充电机回路上的总体量。
  

保护过程:电流是有方向的,因此我们在保护中也要考虑到这一点,放电过程中,电流从电池正极流出,经过负载后再回到电池负极,充电过程中,电流从充电机的正极流出,经过了电池后再回到充电机负极,这是两个完全相反的过程。
  
  假设我们设定充电过程的电流为正,那么放电时电流必然为负,在保护判断中,等进入了模块后,我们用其绝对值与保护参数比较,当超过正常值时断开充放电回路(电流保护只关心最大值,不用关心最小值),这个过程与电压保护大同小异。
  
  ※电流过大产生热量累积这是一个持续的过程,所以在电流上一般会有两重保护,第一重保护的设定值比较小,延时时间比较长,第二重保护的设定值比较大,延时时间很短。比如说电流>1A,500ms后保护,电流>5A,10ms后保护。
  
  当电流保护发生以后,我们并不能像电压恢复一样实时读取数据,因为一旦我们把充放电回路断开以后,回路上的电流瞬间就变成了0A,要想恢复保护状态,一般有两种条件:第一,不需要人工干预,在经过一段时间之后,自动打开回路,如果此刻依然为过流状态,那么系统又会进入保护,这样反复来个几次,便可以将系统的状态设置为故障了。第二,需要人工干预,等负载或者充电机移除后,打开回路。
  
  短路保护其实也是电流保护的一种,只不过当系统短路以后,电流理论上会变成无限大,这样产生的热量也是无限大,如果要等到软件反应过来然后保护,系统说不定早就完蛋了,因此,对于短路保护一般是采用硬件来自动触发,触发后传递给MCU一个信号即可。

温度保护

温度保护比较简单,一般的逻辑就可以实现,温度值有上限也有下限,甚至在细分还可以分为充电时的温度保护以及放电时的温度保护,根据项目的实际需要设计逻辑即可。
  
  需要注意的是,在实际的测试中发现,温度是一个比较容易抖动的值(这和选用的传感器有关,比如使用热敏电阻),所以在判断的时候保护值和恢复值一定要做出一个合理的区间,不然系统会不稳定。

均衡控制
  锂电池系统中除了以上3个正常的保护量之外,还需要有一个保护措施,那便是均衡保护。
  
  上面说过,一个锂电池包由N串电池组成,根据化学特性,如果某两串电池的电压相差过大,这就会造成电量的不均衡,比如一串电池的电压是3.6V,另一串电池的电压是2.5V,相差如此之大,那么这样的电池基本上已经可以说是报废了。
  
  所以系统中也需要这样的判断,最大单体电压和最小单体电压的差值如果达到了某个极限,导致出现故障的概率极大,那么无论是放电还是充电都不应该在继续进行。
  
  为了尽量避免这种情的出现,在BMS系统中就应该设计电压均衡功能。
  
  电压均衡分为主动与被动,被动均衡是设计硬件电压,使用电压比较器,当某串电池电压与其它电池电压相比过高时(比如相差达到50ms),或是使用别的元件来消耗掉高电压电池的电量,或是将高电压电池的电量灌入低电压电池中。
  
  主动均衡在原理上也一样,只不过可以由程序来控制均衡的更多细节,用串转并的译码器作成开关电路,控制系统只在充电过程中均衡,可以更为灵活的设定均衡的电压阈值等等。

待续……

电池管理系统之神奇的BMS(一)相关推荐

  1. 电池管理系统之神奇的BMS(二)

    电量(SOC)算法 除了参数的监控与保护之外,作为BMS系统,其中最重要的功能还有一项,那便是SOC的计算. SOC,全称是State of Charge,系统荷电状态,也叫剩余电量,代表的是电池使用 ...

  2. BMS(电池管理系统)第一课——BMS系统框架简介什么是BMS?

    为什么需要BMS? 1.锂离子电池使用范围受限: 对于锂离子电池,其理想的工作范围受限很大,并不宽泛.因此,锂离子电池在应用过程中必须进行管理,尤其在动力电池的应用场景下. 2.安全问题Distort ...

  3. 中国BMS电池管理系统市场研究报告(2022版)

    内容介绍: BMS最核心的三大功能为电芯监控.荷电状态(SOC)估算以及单体电池均衡.BMS监测到单体锂电池芯的工作温度和电量,并自动采取措施均衡单体锂电池芯的充放电电流和防止过温现象发生.能使电动汽 ...

  4. 无线蓄电池测试系统管理软件,电池管理系统(BMS)自动化测试平台

    电池管理系统(BMS)自动化测试平台 电池管理系统(Battery Management System, BMS)着重于电池芯的安全保护,用于保护电池芯在过高压状态下引起的起火爆炸燃烧危险,以及在过低 ...

  5. BMS(电池管理系统)第11课—动力电池系统安全

    ​从两个问题开始和大家讨论一下系统安全 为什么需要安全设计? 新能源汽车越来越多: 行业水平良莠不齐: 电池技术仍需要提高: 动力电池容易热失控引起连锁反应: 电气部件失效率: 安全设计包括那些内容? ...

  6. 如何学好并做好电池管理系统(BMS)

    1.先一如既往地说一说电池管理系统的由来: (1)形象地说,电池是电动汽车的心脏,而电池管理系统(以下简称为BMS)是电池的大脑:BMS是为了在合适的时候给电动汽车提供合适的能量: (2)BMS能够发 ...

  7. 杂志订阅管理系统c++_电池管理系统BMS功能安全开发流程详解

    点击上面 "电动知家"可以订阅哦! BMS功能安全开发流程详解 BMS和ISO26262 - BMS & ISO26262简介 BMS即Battery Management ...

  8. bms中soh计算方式_BMS电池管理系统由浅入深全方位解析

    何为BMS? BMS电池管理系统(BATTERY MANAGEMENT SYSTEM)俗称电池保姆或电池管家,主要就是为了智能化管理及维护各个电池单元,防止电池出现过充电和过放电,延长电池的使用寿命, ...

  9. 电池管理系统BMS的常见测试方法

    目录 一.BMS是什么? 二.BMS要实现哪些功能? 三.BMS测试的必要性及测试方法 1.通过实物进行测试:将被管理的电池组实物与BMS对接进行测试. 2.预计仿真电池组进行仿真和验证 一.BMS是 ...

最新文章

  1. Microbiome:空间尺度对华北平原麦田土壤细菌群落的影响(南土所褚海燕组)
  2. module ‘imgaug.augmenters‘ has no attribute ‘Resize‘
  3. 微型计算机滑动平均值滤波器方程,微型计算机控制技术期末复习2011.ppt
  4. android app增加内存大小,android – 增加分配给应用程序的内存
  5. 毕业设计——第三章 开发方法及系统实现(5)
  6. Springboot(2.0.0.RELEASE)+spark(2.1.0)框架整合到jar包成功发布(原创)!!!
  7. 如何选择开源许可证?
  8. 【并查集】noi2001食物链
  9. html 环形进度条,详解利用canvas实现环形进度条的方法
  10. Elo rating system(Elo 打分体系)
  11. HttpClient发送get post请求和数据解析
  12. 客户端工具收取邮件提示-ERR maildrop alredy locked
  13. python读写将excel转换为xml_Python实现将Excel转换成xml的方法示例
  14. 中大计算机研究生华为,考上中山大学很厉害吗?毕业后有机会去华为吗?本文有答案...
  15. 山东大学计算机考研909真题,2012年山东大学909数据结构考研试题(回忆版)
  16. 510房产网是江阴知名的房地产服务平台
  17. p1530 Fractions to Decimals
  18. 沪江手操:让你的双手更灵活,手部锻炼五法
  19. DCC - Photoshop - Nvidia NormalMapFilter - 法线生成工具 - 顺便测试 Unity URP 12.1 中的 Decal System
  20. 高光谱成像的传感器和相机要求

热门文章

  1. 为什么word打字后面的字会消失?
  2. xp系统打印机服务器不可用,xp系统使用打印机服务提示“打印不成功”的步骤介绍...
  3. 小学生学c语言基础知识,小学数学1-6年级基础知识整理,孩子学习用得上
  4. nginx实现双向认证
  5. JAVA_Lesson8(传智播客笔记之继承、单例设计模式懒汉式、饿汉式)
  6. 欢迎使用CSDN-markdown编辑器-新例子
  7. 于千万人之中, 你是匠人!
  8. 20162329张旭升 2016-2017-2 《程序设计与数据结构》第九周学习总结
  9. 2022中国大模型发展白皮书(附下载)
  10. ChatGPT背后的打工人:你不干,有的是AI干