电池管理系统BMS---原理篇

发表于:2023-3-15 09:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:追光者    来源:电子工程世界

  电池管理系统(BMS)可根据起动能力对充电状态(SoC)、健康状态(SoH)和功能状态(SoF)进行快速、可靠的监测,以提供必要的信息。因此,BMS能够最大限度地降低因为电池意外失效而导致的汽车故障次数,从而尽可能地提升电池使用寿命和电池效率,并实现CO2减排功能。BMS的关键元件是智能电池传感器(IBS),它可以测量电池的端电压、电流和温度,并计算出电池的状态。
  电能管理系统
  用来为起停系统供电的典型供电网络包含一个车身控制模块(BCM)、一个电池管理系统(BMS)、一个发电机和一个DC/DC转换器(见图1)。
  BMS借助专用的负载管理算法为BCM提供电池状态信息,BCM通过对发电机和DC/DC转换器进行控制来稳定和管理供电网络。DC/DC转换器为汽车内部的各个用电部件分配电能。
  通常,铅酸电池的BMS直接安装在电池夹上的智能连接器中。该连接器包括一个低阻值的分流电阻(通常在100μΩ范围内)和一个带有高度集成器件(具有准确测量和处理功能)的小型PCB,称为智能电池传感器(IBS, 见图2)。IBS即便是在最恶劣的条件下以及在整个使用寿命中都能以高分辨率和高精确度测量电池电压、电流和温度,从而正确预测电池的充电状态(SoC)、健康状态(SoH)和功能状态(SoF)。这些参数定期或根据要求通过已获汽车行业认证的车载网络传送至BCM。
  除上述功能与参数性能外,对IBS提出的其它关键要求包括低功耗、能够在恶劣的汽车环境中(即EMC、ESD)工作、进行汽车OEM厂商验收的车载通信接口一致性测试(即LIN)、满足汽车等级测试限制(针对被测参数的6σ限制),另外还需符合AEC-Q100标准要求。
  电池监控
  正如前一段中所提到的,IBS的主要用途是监控电池状态,并根据需要将状态变量传送至BCM或者其他ECU。将测量到的电池电流、电池电压和温度采样值作为电池监控输入。电池监控输出为SoC、SoH和SoF。
  1. 充电状态 (SoC)
  SoC的定义非常直观,通常以百分数的形式表示。完全充电的电池SoC为100%,完全放电的电池SoC为0%。SoC值随电池的充电和放电而改变。
  This leads to formula (1), where Cr is the remaining (dischargeable) capacity of the battery and Ca is the total available battery capacity:
  该值通过公式(1)计算,其中Cr代表电池的剩余(可放电)电量,Ca代表电池的可用总电量:
  但是,常常会出现可用电池电量与电池的标称容量(通常标注在电池外壳上)不同的问题。对于一个新电池,它可能比标称容量更高,对于已经使用一段时间的电池来说,可用电量会降低。另一个问题是,实际可用电量很难根据IBS的输入值来确定。
  因此,SoC通常用标称容量Cn来评定,它具有多项优点:
  特定SoC的电池可用充电量是已知的,包括旧电池;Cn是在确定的电流(I=Cn/20h)和温度(27 °C)下来测定的。
  共有2种常用的SoC计算方法:库仑计数法,也称为电流积分或安时平衡,以及开路电压(OCV)测量。
  库仑计数法是跟踪SoC快速变化的最佳算法。它基于对流入和流出电池的电流进行积分,并相应地调整计算出的电池SoC。公式(2)用于SoC计算,其中Q(t0)表示电池的初始电量,α表示效率因子,i(t)表示电流(正向或反向),Cn表示电池的标称容量。
  除α因子外,公式中的参数都非常直观。这是一个用来描述效率的因子,也称为Peukert定律。它表述了在不同放电率情况下铅酸电池的电量。当放电率提高时,电池的可用电量会降低。另一个影响可用电量的参数是温度。温度越高,可用电量也就越高。两种效率都使用α描述,因此α值需要采用一个2维数组(温度和放电率)。根据测量到的温度和放电率,相应的值被分别用于每一个积分步骤。α值在很大程度上取决于电池的设计和化学组成,通常情况下即便是同一家制造商的不同型号的电池,该值也会有所不同。他们通常是在实验室里通过充电和放电测试获得。
  虽然Peukert定律只适用于放电的情况,但也有一个与α值类似的效率因子被用于充电周期。除了温度和充电率以外,实际的SoC也需要考虑在内,因为SoC较高时的充电效率要小于中等SoC情况下的充电效率。
  由于整合了电流值和α值,因而电池状况改变时产生的误差以及电流测量和量化误差将随着时间的推移而变大。因此,参数Q(t0)(电流积分的起点)通常通过一种能够提供更高精确度的不同方法来获得:OCV方法。OCV是在没有用电器件从电池中汲取电流时电池两极间的电压。
  铅酸电池显示OCV与SoC之间具有良好的线性关系。因此,通过测量OCV,SoC可被直接计算出来。OCV和SoC之间的确切因子(exact factor)必须被表征出来。
  这种方法的唯一缺陷是,OCV只能在停车以后测量,即(几乎)所有的用电器件都关闭后,而且要在汽车熄火后经过数十分钟甚至数小时再测量。
  因此,OCV法常被用于重校准库仑计数,而库仑计数法连续运行。这种组合提供了一种良好的SoC计算方法,并且可在较长的停车时间内,用自放电率校正SoC来使计算结果更加精确。
  2. 健康状态 (SoH)
  铅酸电池的各种老化效应会对电池造成不同的影响。由于很难通过IBS分别对这些老化效应进行监测和量化,因此SoH通常不直接根据这些老化效应来评定。取而代之的是,SoH是通过使用寿命内电池容量的减少来评定的,这是老化的主要结果。与电池老化相关的另一个非常重要的参数是起动性能,但是它通常用起动能力的功能状态(SoF)来表述。
  由此,SoH可通过公式(3)来估算,其中Caged代表老化的电池容量,Cn代表按照SoC的计算作为参考的标称容量。
  由于Cn是已知的,因此计算SoH的关键任务是找到Caged。一种可能的方法是在电池的整个使用寿命内跟踪所达到的最大电量(或SoC)。如果在随后进行的若干次完全充电后,电池的最大充电水平低于之前计算的老化容量,则表示老化容量变小。相应地,Caged和SoH必须根据库仑计数和OCV方法确定的容量进行调整。完全充电状态可以在充电电流降至特定阈值以下时监测。
  确定SoH的另一个方法是跟踪充电和放电周期,以电池制造商所提供的周期稳定性来进行评估。通常,制造商会确保在指定温度下对于某一深度的充放电周期总量,例如,27℃、25%放电深度时为500个周期。通过用这些数字对所有周期进行评估,并应用温度和充电状态校正因子,可提供对上文提到的Caged的跟踪。这些校正因子必须通过对电池特性的表征来确定。
  但是,这两种方法通常还会与其他专用算法结合使用,这些算法与电池使用寿命中的多个电池参数紧密结合。在实验室中通过大量的电池特性分析可确定这些电池参数,它们通常只适用于一个特定的电池型号。
  3. 功能状态 (SoF)
  对铅酸电池来说,发动汽车引擎即便不是最重要的功能,也是非常重要的功能。因此,BMS的一个非常重要的任务是在实际条件下预测汽车能否起动。起动预测通过SoF参数表示。
  除了“传统的”停车后再起动,通过在微型混合动力汽车中引入起停系统,起动预测功能正变得更加重要。BMS必须决定是否可在引擎关闭后再次起动,以及是否可以安全地进入停止模式,并与BCM进行通信。
  获取SoF参数的一个非常好的方法是对最近的引擎起动情况、剩余电量(作为SoC和SoH的函数)和实际温度进行分析。在起动期间,电池内阻Ri(通过电压降和电流来计算)需要被记录下来。因为Ri在电池的使用寿命中是相对一致的,并且只是在电池使用寿命结束前显著升高,因此Ri平均值需要低于某个特定的阈值,以确保安全起动。老化电池的另一个影响是,在起动阶段,从电压和电流采样中计算出的Ri值会趋向于非线性,即对于相同的电压采样值会有不同的电流值。而对于新电池来说,Ri是线性的。参见图3和图4了解起动过程中常见的电压和电流变化趋势。
  综合Ri(通过电压降和电流来计算)、电池剩余电量和实际温度,可以很好地表征起动能力。此外,这些阈值也必须通过电池的特性分析来确定。
  为了以必要的准确度确定Ri的线性性或非线性性,所有起动阶段取样的电压和电流值都需要使用线性滤波器来过滤,最好采用带通滤波器。
  高效实现BMS的硬件和软件
  电能效率是新型汽车一个最重要的特性,由BMS来实现。除了管理一些节电功能外,BMS还需要具有高能效,因为它是一种始终运行的系统,当发电机不工作时需要通过铅酸电池供电。为满足这一要求,IBS的功耗必须尽可能低。
  为实现这一目标,飞思卡尔的IBS实施采用两种低功耗模型,其中CPU和其他不需要的硬件(HW)模块被关闭。为降低正常运行模式时的功耗,并减少客户端的软件(SW)开发工作,增加了额外的硬件模块以降低软件复杂性。这样便可以使用尺寸更小、功耗更低、性价比更高的16位微控制器。另一种降低软件复杂性的方法是在整个使用寿命期间确保产品参数,并将工厂调校值存储在非易失性存储器(NVM)中。作为产品下线测试的一部分,这些调校值针对每个芯片分别进行表征描述,并相应地存储。因此,在软件中无需使用复杂的校准算法。
  除了在硬件中实施的这三种技术以外,本文还介绍了电池监控算法的高效软件实现方法。
  1.低功耗模式
  实现低功耗模式是一种非常好的降低功耗的方法。实现方法是,在不需要SoC的部件(尤其是CPU)时将其关闭、并仅在需要时切换到正常模式(即激活所有硬件模块)。正如前面所提到的,共有两种低功耗模型,其不同之处仅在于CPU被唤醒后使用的程序入口点。
  但是,在低功耗(即没有软件交互)模式下,也需要监控电池状态。首先,需要跟踪电流,用库仑计数法计算出SoC。相应地,可支持低功耗模式下的电流测量和电流采样值的自动求和(即库仑计数)。
  IBS必须能够对电池和汽车的状态变更做出反应,即电池传感器必须在各种事件发生时被唤醒。相应地,也需要测量低功耗模式时的电流和温度。电流变化通常表明汽车状态发生变化(用电器件的开和关),而温度改变时有时需要重新校准测量通道参数。可以配置电流和温度采样值的阈值,如果超出阈值则唤醒。还可以使用自动库仑计数器阈值唤醒机制。
  除了那些针对被测参数的唤醒事件以外,还可实现其它唤醒机制,允许BCM或汽车中的其它电子器件唤醒IBS(通过LIN消息或直接导线连接),此外还有定时唤醒机制。
  上述低功耗模式和唤醒机制的实现允许IBS在大多数时间里都运行在低功耗模式下(通常约为70%),包括引擎运行时。在正常运行模式期间,SoC、SoH和SoF参数将被重新计算。
  2.将软件任务移至硬件模块
  采用专用硬件模块来承担软件的任务是降低软件复杂性和节省电能的一种有效方式。在将此类硬件模块用于电池监控算法以前,可以非常有效地将其用于电压、电流和温度测量采样值的预处理。这一点非常有必要,因为汽车的电源线经常受到干扰,而且对于IBS来说,采样值的测量精度要求很高。
  带有抽取滤波器和抗干扰滤波器的高精度16位Σ-Δ ADC非常适合这种应用,因为与其他ADC技术相比它具有高测量精确度。结合误差补偿功能,已经能够提供非常好的精确度。但是,在信号处理链后常常需要对采样值进行再滤波。这样做的原因是可以去除汽车中其它电子器件的噪音,因此滤波器需要有可自由转换的频率特性。另一个原因是,作为电池监控的一部分而被观测的特定电池参数,与激励频率(由电池的化学组成决定)紧密联系在一起。例如Ri就是如此。
  可编程线性滤波器可以满足这些要求:滤波器系数可经过寄存器传送到硬件滤波器模块。这些寄存器被编程后,在软件中就不再需要完成滤波任务。
  电流测量面临着需要对小电流进行高精度测量,同时还必须支持宽测量范围的挑战。所要求的精度要高于10mA,这意味着在100μΩ的分流器上产生1μV的压降。而在汽车起动过程中,会出现1000A甚至更高的电流。为支持上述两种需要同时避免在软件上进行手动测量重配置,需要引入一个自动增益放大器。可选增益因子用来调节输入信号,使其与ADC的参考电压达到最优匹配。增益因子的调节可以自动完成,在整个运行过程中,无需对软件进行重配置。出于测试的目的,或者当存在特殊的应用需求,也可以选择固定增益因子。
  3.简化校准工作
  确保器件在整个使用寿命期间都保持高精确度的一个非常重要的任务是调整和校准。为此,之前测试得到的校正因子被应用到关键的器件参数中。作为产品线器件测试的一部分,这些因子在各种温度下被测试,并存储到IBS的NVM中。在器件启动时,各调整参数需由软件写入到器件的寄存器中。需要调整的参数可在电流和电压测量链中得到。另外,振荡器、电压基准和LIN定时也需要被校准。在运行期间需要进行重校准,例如需要定期校准或在温度出现急剧变化时进行校准。如果有的话,不同的校正因子需再次写入到各自的寄存器中。
  上面提到的校准方法可以避免客户对这些参数进行昂贵的产品下线测试。另外,通过简单地应用参数,还可以降低软件校准的复杂性。
  4.软件实现
  在前文中提到的电池管理算法需要采用处理器密集型计算和控制算法。通常是在PC机上利用基于模型的仿真工具来完成这些算法的初次实现。这些工具通常使用浮点数据格式。在随后的开发过程中,这些算法被移植到IBS上。但是,由于成本和功耗的原因,IBS所用的微控制器上并不提供浮点硬件。因此,为获得合适的运行时间,在算法中所使用的数据类型必须映射到定点整数格式。有多种数据类型及相应的取值范围可用。例如,下表列出了在飞思卡尔的IBS上提供的数据类型。
  数据类型 范围(无符号) 范围(有符号)
  char (8位) 0 – 255 -128 – 127
  int (16位) 0 – 65535 -32768 – 32767
  long int (32位) 0 – 4294967295 -2147483648 – 2147483647
  为了表示小于1的值,LSB被映射为特定的值。该值由所需的分辨率决定。通过选择其中一个可用的数据类型,可以得出该变量的可用值范围和虚拟固定小数点(定点格式)。例如,分辨率为1mV,采用无符号整型时所能表示的范围为0~65.535V。
  由于飞思卡尔IBS中有一个16位S12 CPU,因此整型数据类型可以提供16位的精度。这意味着8位和16位变量处理起来较32位性能更优。因此,一般首选8位及16位变量。
  上述计算SoC、SoH和SoF所用算法的实现范例显示,在许多情况下,16位变量可以提供足够的数值精度和范围。这是因为电压和温度输入值都是16位精度(通过使用16位ADC)。其它的一些16位精度就已足够的数值包括SoC、SoH、Ri和校正因子α。即使采用具有24位精度的电流采样值,也可以在大多数情况下映射到16位数据。例如在3mA的精度上,通过使用带符号16位整型格式,可表示达±98.3A的电流值,而无需对数字格式做进一步的修改。这足以满足汽车在行驶和停止时的要求。在起动过程中,电流采样值会超出边界,必须使用32位数据格式。需要32位格式的参数是与电池充电有关的值(例如,库仑计数器)。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号