郭文超,杨 林,邓忠伟,李济霖,范志先
(1. 上海交通大学机械与工程学院,上海 200240;2. 电子科技大学机械与电气工程学院,成都 611731;3. 中通客车股份有限公司,聊城 252000)
鉴于其能量密度高、使用寿命长、环保等优点[1],锂电池被广泛采用成为电动汽车的动力系统。电动汽车锂离子电池系统故障模式通常包括4 种情况:电池故障、组件故障、传感器故障和执行器故障[2]。作为最常见的故障,电池故障主要包括内短路、外短路、过充过放和不均一性故障。这些故障在长期运行过程中不可避免地发生和积累,最终表现为电池组的不一致性故障和热失控故障[3]。然而,这些故障的电气和热特性在初始阶段并不明显,使得电池管理系统(battery management system,BMS)难以检测[4]。因此,研究准确有效的电池故障诊断和预警方法对避免热失控等严重安全事故和及时启动维护方案、降低维护成本具有重要意义。
故障诊断的关键是基于采集的传感器数据通过故障诊断策略判断电池系统是否存在异常。与其他动态系统故障诊断方法相似,动力电池系统故障诊断方法可分为4 类[5]:基于模型的方法、基于信号处理的方法、基于知识的方法和数据驱动的方法。前3 种类型方法可以准确实现单个电池的故障诊断,但对于每一个单体复杂的建模过程使得其在实践中难以被算力有限的BMS 所承受,因而基于数据驱动的方法被越来越多的研究者用于电池故障诊断领域。基于数据驱动的方法核心主要分为4 种诊断思想:概率分布思想、相关性思想、分类思想和熵思想。例如,Qiu 等[6]提出了一种局部离群因子用于故障电池的内短路诊断。Shang 等[7]提出了一种改进样本熵方法用于电池早期故障诊断。Lin 等[8]提出了一种电压差相关性方法提高诊断速度。然而,这些方法通常是在实验室或仿真环境下进行验证。随着越来越多车辆被接入云端大数据平台,在云端直接进行算法的验证越来越为方便。当前大多数公司以大于10 s 的稀疏形式将车辆运行数据传输到云平台[9],但少有基于实车云端数据进行电池故障诊断的研究。
由于真实车辆的工况复杂多变,故障类型未知,且以稀疏方式传输至云端,因而有必要研究基于云端数据的电池故障及预警方法。Zhao等[10]采用多重筛选策略实现实车大数据中异常电压单体诊断。Jiang 等[11]采用SRM 方法对实车所有单体的电压进行分析,捕捉细微变化从而实现故障单体的准确识别。Fan 等[12]构建一个广义无量纲指标表示电压异常演变并实现内短路故障车辆的早期诊断。这些算法能实现数十分钟级别的早期预警[13],但仅适用于指定故障类型的诊断,未对故障类型和故障程度进行识别;此外,部分研究基于有监督学习方式进行故障诊断,要求较高的数据质量,通用性较差。
为此,本文进行云端数据驱动的锂电池故障分级预警研究。分析选取适用于云端数据特性的特征,构建特征集并进行多次混合聚类实现对电池健康度打分评价,通过引入温度信息区分热相关故障并构建预警等级划分准则判断电池故障状态。最后,利用5 种现场故障案例进行分析,结果表明所提方法准确可靠,在故障类型区分、故障程度判断、超前识别和对实际云端数据质量的适应性方面具有明显优势。
与板载系统相比,云计算系统具有高计算能力和存储容量,在BMS 中能发挥重大作用。通过将模型算法部署在云端,不仅可以更方便地修改模型结构和更新参数,还能收集大量电池数据供进一步分析和利用。
本文中搭建的云计算系统如图1 所示。BMS 与车规级4G模块连接,并按GB/T 32960规定的通信要求将数据流传送至阿里云服务器。云平台主要包括3 大功能模块:对数据接收、整理、存储的数据库部分;提供数据展示和方便人机交互的网页端部分;布置调用模型算法的云计算部分。该云计算部分作为一个应用程序接口可涵盖电池管理的各类应用,包括健康评估、剩余寿命评估、故障诊断等,本文工作仅关注故障预警算法的部署。
图1 本课题组搭建的云计算系统
将开发好的适用于电动汽车云数据的模型算法部署在云端服务器上,输入云端采集的真实车辆数据并调用计算模型,将计算结果推送至终端用户或者上传至大数据监控平台,以便对电动汽车动力系统进行及时维护,降低维护成本。
本文研究的车辆数据来自国家新能源汽车监测管理中心西南分中心(CSB-NMMC-NEV),该中心是由国家新能源汽车大数据联盟(NBDA-NEV)和中国汽车工程研究院股份有限公司联合建立的大数据平台[11],负责西南地区新能源汽车的监控。基于该平台,可以监控车辆的运行数据,包括电池状态信息、温度信息等。该平台上各电动汽车的数据相互独立,其中故障电池在BMS 报警后会被维护记录为热失控故障和潜在故障。当该车辆发生热失控或无法运行时,专业人员会现场调查并进行故障电池定位,进而为算法验证提供基础。
终端上传至云端的车辆运行数据存在工况随机动态和高稀疏特性,并且在传输过程中可能出现大量错误缺失,因而有必要对数据进行规范化预处理以保证容错度和保真度。具体预处理过程如下:(1)剔除明显偏离电压或SOC 理化特性范围的异常数据;(2)剔除停车未充电状态的无效数据[14];(3)根据充电状态标志位与SOC 信息对充放电片段进行依次划分;(4)剔除采样数据缺失过多的片段(小于10 帧);(5)相邻充放电片段合并作为一个有效循环。
对云端获取的长时间序列车辆运行数据,直接进行上述预处理而无须对原数据进行缺失值填充、异常值矫正或插值处理。该预处理方案能大幅提高对原数据的容错度和保真度,使得算法具有较高适应性并可快速在云端布置。具体算法的适应性内容将在3.1节中总结。
“健康状态(state of health, SOH)”通常用来描述电池的老化程度,而本文研究对象还包括故障程度,如微短路故障(micro-short circuit, MSC)等。为了与SOH 区分,本文用“健康度”来描述单体或模组的老化程度和故障程度。本文所提的电池故障分级预警的算法框架如图2 所示,该算法部署于云端,当检测出当前电池系统存在故障(如热失控故障、不一致性故障)时,及时向车辆或控制中心发出相应的警示信号或维护信息,以指导电池系统的及时维护。
图2 电池故障分级预警的算法框架
2.1.1 特征选取
针对云端数据具有高稀疏性和随机动态性的特点,所提特征需满足以下要求:(1)能基于稀疏数据进行提取;(2)提取不受工况条件的限制。当前有关电池健康特征提取的研究大多集中在电压及其计算数据的处理上,包括电压曲线、充电或放电容量、充电或放电时间和差分电压曲线等[2,15]。而这些特征均无法适用于精度较低、采样间隔较长、工况随机动态的真实云端数据。
电池老化主要机制在于锂离子库存损失(loss of lithium inventory, LLI)和活性材料损失(loss of active material, LAM)[16]。电池组中较差单体往往拥有更少的活性锂离子数量和更大的欧姆内阻,在相同的电流激励下,溶液中活性锂离子消耗或产生的比例更快[16],因而体现在外特性上有更大的极值变化且与系统的平均值有更大的偏离度;电池MSC的产生原因有制造缺陷、电极材料溶解、镀锂和锂枝晶的形成等[17]。MSC 反应机制复杂不易观察,但由于其通常被等效为电池内部并联内阻而产生不同热量,从而很容易导致单体温度升高[17],并被温度传感器捕捉。
基于上述机理分析,可以很好地用自身差值特征和平均偏差值特征来描述这种极值变化与系统非均匀性,这两类特征的可提取性和优势如下:它们的提取均不受采样周期和工况随机的影响,也不要求相同数据片段;自身差值特征通过纵向比较某次充放电过程中的电池外特性的极值变化,在极端工况下能将这种差异放大从而被更好地捕捉;平均偏差值特征通过横向比较各单体与系统平均状态的差异来反映系统的非均匀性,该值对极端工况具有低敏感度从而与自身差值特征形成互补。
进而,它们与电池健康度的相关性方向分析如下:对两特征分别描述,在某一充放电过程下,单体自身的极值偏差和单体相对于整个电池组平均状态的偏离度。与新电芯相比,健康度差的电芯自身差值越大意味着内阻较大或产热量较高,故自身差值特征与电池健康度呈负相关;同样,平均偏差值越大意味着单体与系统平均状态存在更明显的偏离度,因此该特征也与电池健康度呈负相关。这些特征与电池老化状态或MSC状态的相关性已有文献证明[17-18]。
除此之外,上述特征无法反映系统在时间序列上的信号波动或无序信息,而熵已被证明能有效用于电池组故障诊断[7,19-20],如检测MSC故障单体早期信号的微小变化、利用故障单体与正常单体相关性评估不一致程度以及检测连接故障等。样本熵的提取不依赖于数据长度,抗噪声干扰能力更强,同时对隐藏数据具有较强的诊断能力。样本熵能定量评价信号的波动程度且熵值越大意味着波形中频率越多,由于低容量单体更容易优先满充或满放导致其电压和温度波动更加剧烈[21],故该特征也与电池健康度呈负相关。
同时,由于电池本身具有容性特征,电流激励下电压响应特性极快,而热惯性大故温度和熵响应慢。由于车辆工况随机性导致电池工况随机,使得在时间尺度上这些特征的响应也不同。因而所选特征耦合起来能更互补地描述电池的正常或异常状态从而实现对电池健康度的覆盖刻画。综上分析,基于电压和温度的自身差值特征、平均偏差值特征和熵值特征被用以构建特征集。
2.1.2 特征集构建
云端数据采集中常出现充电数据丢失或采样点过少的现象,且充电工况与放电工况具有较大差异性[9,22],因而有必要对充放电工况进行划分。基于电压和温度信息,从充电过程和放电过程中分别提取适用于云端数据特点的自身差值特征、平均偏差值特征与熵值特征,组合成6 类差熵特征集,用于描述电池各单体间的差异性。
以一个充电(或放电)过程为例,对于电池系统中第i个电芯的数据M(为电压V或温度T),自身差值特征Mdi、平均偏差值特征aveMdi与熵值特征MEni分别定义如下:
式中:Mimax、Mimin和Miave分别为该次充电(或放电)过程中单体i的电压(或温度)序列的最大值、最小值和平均值;n为该电池组中单体的总个数;m为运行长度;r为原始数据的度量窗口;Am(r)和Bm(r)分别表示两个序列分别匹配m或m+1个点的概率[7]。
需要说明的是,系统噪声或采样精度导致的数据小范围偏差对样本熵的计算存在一定干扰,因此在熵计算前须去掉采样数据中的低频部分,保留的数据仍能反映电压或温度的真实特性。本文选用离散余弦变换(discrete cosine transform, DCT)方法[20]进行滤波。针对不同数据集调节滤波系数使得样本熵保持在[0, 2]范围,本文中电压和温度滤波系数分别取在0.4~0.8 和1~3 范围,均能取得较好的熵特征提取效果。
综上,在云端数据应用中,对于电压(温度)信息重复充放电过程可以提取6类差熵特征集,如表1所示。充分考虑尽可能多的特征能够提高算法的适应性。以Vddis为例,该序列表示如下:
表1 6类差熵特征集
式中:Vdjdis为基于第j循环放电数据提取的所有单体Vdi特征组成的向量;λ为最大循环数。
基于2.1节提取的6类差熵特征集,对每个单体进行遍历式混合聚类进而评价健康度,流程如图3所示。首先,由于不同特征幅值不同,须对特征进行归一化使其在0~1 区间,调节各特征符号使其与电池寿命的相关性为负。其次,对上述s个特征(记为F1~Fs)划分为任意维度的特征子集,排列组合共有h=(2s-1)种划分方法。
图3 电池个体健康度评价流程图
考虑到工程应用的通用性,需要从不同的特征组合尺度对电池健康进行多次评价,并将所有评价得分的累积平均值作为最终分值。具体地,为从多角度进行类别划分本文聚类算法选用K-means 聚类、高斯混合聚类和模糊C-means 聚类[6,23];综合文献[10]和文献[24]中不同分类思想下的类别结果,本文聚类类别选用2~5。基于不同子特征使用不同聚类方法将所有单体划分为不同类别,则可计算获得在该子特征下任一类别任一聚类方法下的该类所有单体的特征平均值。以含有s个特征的所有单体被划分为3类为例:
式中:celli为当前类别中的第i个单体;a、b、c分别为Y1、Y2、Y3类别含有的单体数量。
每一类中所有单体的特征平均值计算如下:
式中:Rip为第i个单体的第p个特征值;x为当前聚类过程中子特征集合含有的特征数量;分别为Y1、Y2、Y3类的特征平均值。
将特征平均值最大的类中的所有单体健康度设置为0,其余类别的单体健康度设置为1,即为单次聚类过程的结果。设所有子特征下单体i状态为1的次数为Fi,遍历σ次聚类方法及λ个循环,即可得到单体i的健康度Xi:
式中:i和s分别为电池单体数量和特征数量;σ和λ分别为最大聚类次数和最大循环次数。
综上所述,电池组的故障诊断问题基于多次混合聚类方式被转化为量化打分问题,通过对所有电池个体健康度评价可快速识别电池系统中的低分个体,进而实现异常识别。
由文献[3]可知,电动汽车动力系统的故障主要外在表现为电池系统的加速老化及电池组的热失控。目前大多数已有故障诊断研究仅通过电压信息很难实现热失控早期特征的捕捉,也无法对故障类型进行判断。MSC是引起锂离子电池自诱发性热失控最常见的故障模式,在电池运行过程中会导致不同的产热速率和产热量,从而表现为电池温度变化的不同[17]。为了能以无监督方式区分出热相关故障,将温度信息、电压与温度信息分别作为两类指标进行评价;另外,考虑到GB/T 38031 中对电动汽车动力电池热失控的高安全性要求[12],故而相对于均一性故障,热失控故障往往具有更高的预警等级。
对于单体i,分别基于温度信息、电压与温度信息进行健康度评价,得到健康度Xi1和Xi2。当单体i存在热失控故障或单体i的均一性故障非常严重时,此时的电池系统存在严重故障,即“紧急状态”;当单体i不存在热失控故障且单体i的均一性故障较为轻微时,认为此时的电池系统存在一般故障,即“非紧急状态”。进而,提出3 类故障阈值用于故障等级划分:温度故障分数阈值J1、综合一级故障分数阈值J2、综合二级故障分数阈值J′2。结合上述得到的健康度分数及分数阈值,即可获得单体i当前状态下最终划分的故障等级,具体分为以下5种情况:
①当Xi1和Xi2均触发故障时,单体存在微短路或外短路故障,判定为严重故障;
②当Xi1未触发而Xi2触发二级故障时,单体一致性偏离程度较高,判定为严重故障;
③当Xi1未触发而Xi2触发一级故障时,单体一致性偏离程度较低,判定为一般故障;
④当Xi1触发故障而Xi2未触发时,由于缓慢热失控故障通常伴随着一致性故障[3],故温度异常一般由周围热失控单体传导或热管理系统异常引起而与当前单体无关,判定为无故障;
⑤当Xi1和Xi2均未触发故障时,系统运行良好,判定为无故障。
将上述情况整理为如下表达式:
式中Pi1、Pi2和Pi分别为单体i的温度故障等级、综合故障等级和最终划分的故障等级。Pi的取值2、1、0分别代表当前单体存在严重(或二级)故障、一般(或一级)故障或无故障状态。
综上所述,本文提出的电池故障预警等级划分方法如图4 所示。分级预警为3 个层次:存在严重(或二级)故障、存在一般(或一级)故障、不存在故障。在实车运行过程中,当云端检测到当前循环下某一或某些单体(模组)触发故障时,即可判定当前的故障等级并及时进行预警。
图4 电池故障预警等级划分
基于上述提出的算法,利用目前云端获取的5种故障对象现场数据进行验证。这些对象均在真实世界中已发生故障,在BMS 报警后被维护记录为热失控故障和潜在故障,且具体故障原因也已被现场调查记录。该5 种现场故障案例的具体参数如表2 所示,涵盖多种使用场景、电池类型和成组方式,同时在采样间隔、采样精度和保帧率等数据质量上均有所差异。在本文中“保帧率”定义为有效数据帧数与充放电阶段下的理想完整数据帧数的比值。
表2 5种现场故障案例的具体参数
将各故障对象在故障发生前的历史数据预处理后输入至图2 电池故障分级预警算法,最终的诊断结果及维护建议如表3 所示。验证结果表明,电池系统中的各异常单体或模组均能被以100%的准确度诊断出来,同时未产生误报;对象No.1 中的热失控风险也能被有效区分识别;同时给出的维护建议除故障定位信息外还包括时效性判断。由于篇幅限制,本文对两类典型故障各选取一个案例(No. 1 与No.2)在3.2与3.3节中详细分析其具体诊断过程。
表3 故障诊断结果及维护建议
文献[25]中综述了当前现场数据用于电池状态评估或诊断的3 大主要挑战:随机不受控制的使用场景、数据质量问题、缺乏明确的验证数据。本文案例中含有多种场景及随机工况,数据质量也较低,而在该情况下仍能取得准确有效的验证结果,表明本文所提算法具有较高适应性。同时,适应性还体现在算法无须要求大量训练数据即可快速布置使用。
需要说明的是,与已有绝大部分故障诊断研究的阈值获取方式相似[6-8,11-14],本文通过对电池历史运行数据的综合评分进行统计分析,确定不同故障等级的阈值(J1、J2和J′2的取值分别为 50、50 和30分)。
该实车为热失控事故车辆,经专业人员调查已发现导致热失控的故障电池。该车辆电池系统共有92 路电压和32 路温度采样,数据采样时间为2019年12 月6 日-2020 年8 月12 日,采样间隔为10 s,在云端预处理后的电压和温度数据如图5所示。
图5 案例1中预处理后的电压温度数据图
由于温度采样精度较低且充放电过程中各传感器间的温度差异在较小范围内波动,导致图5(b)中的多路温度曲线叠加难以清晰分辨其差异性,同时图5(a)中的电压数据几乎重叠看不出任何异常。在实际中,电池之间通过导体BUSbar 连接,温度传感器直接布置在BUSbar 上,每间隔几个单体便会布置一个温度传感器,整个电池系统趋于热平衡,因而文中未采样单体的估计温度是根据相邻两个温度传感器的采样值插值得到。
对每个单体的每次充电和放电循环分别提取表1所示的特征集,并按图3步骤依次进行基于温度信息、基于温度和电压信息的健康度评价,即可获得每个电池在不同循环下的健康度,如图6所示。
图6 案例1中各单体的健康度评价
图6(a)与图6(c)中每一条曲线代表一个单体或温度传感器,颜色越接近粉色意味着该单体或温度传感器附近单体的健康度相对越差。图6(a)中下方的两条曲线能够较为明显地与上方曲线分离开来,说明这两条曲线相对应的温度传感器附近的单体存在异常,很可能是由于热相关故障引起的温度异常偏高。图6(b)分析基于温度信息计算的健康分数在真实时间上的横向演变。可以看出,#24 和#25 温度传感器对应的两条曲线始终在预警线以下;同理,图6(d)中识别出#7和#67单体对应的曲线分别在一般和严重预警线以下。结合电池系统传感器布置图[11],可知#67 号单体与温度传感器#24 和#25相邻,结合图4得出以下结论。
(1)#67 单体被识别存在严重故障且该故障与热故障相关,是热失控的直接源头;#7 单体被识别存在一般故障,虽未触发温度预警但有向热失控演变的隐患。建议对#67 号单体进行紧急更换,对#7号单体进行非紧急更换。
(2)与BMS 在2020 年8月12日车辆发生热失控时刻的前几秒报警不同,本文提出的算法在2020 年5月4号即可识别具有潜在风险的单体,实现电池故障超前识别并及时分级预警从而保障车辆和乘客安全。
实际事后调查结果表明,该次热失控事故源头为#67 单体引起且该单体在热失控前已存在严重故障,验证了本文所提算法故障预警结果的准确性。需要说明的是,对于由外界引起的突发性热失控,该算法不再适用。本文主要是针对自诱发性的热失控故障实现早期预警,该验证结果也表明1.2 节中剔除临时性停车数据是合理的,热失控故障在停车之前就已存在且能被准确识别。
与案例1发生热失控的实车不同,案例2中的实车仍在运行。该车辆电池系统共有144路电压和24路温度采样,数据采样时间为2021年6月1日- 2021年6 月30 日,采样间隔为10 s,在云端预处理前后各自的电压数据如图7所示。
图7 案例2中预处理前后电压数据对比图
图7(a)为该车辆在6 月份的云端实车运行数据(共包含41 191 帧数据),图7(b)是预处理后得到的完整数据,包含34 个有效充放电循环。如局部放大图所示,在6 月30 号充电开始后的一段时间,#109单体和#111 单体的电压发生突变,并与其他单体的电压曲线发生显著偏离,之后又都快速恢复正常,初步猜测这两个单体均存在严重的不一致性故障。与案例1 车辆不同,该车辆的整体SOC 运行区间偏高,这是由于该车辆为客车,运行工况较为稳定。对案例2车辆的各单体进行健康度评价,如图8所示。
图8(a)中所有曲线均在预警线上方运行,说明该车辆不存在热相关故障。同时图8(b)中下方曲线对应#109 ~ #119 单体,刚好这些单体位于10 号模组中,说明10 号模组存在不一致性故障,且随着时间的推进,该模组内的大部分单体由一般故障逐渐演变至严重故障。对比图6,可以得出以下结论。
(1)#109 ~ #119单体所在的10号模组存在不一致性故障,且6月9日后其中半数单体被识别为严重故障,故而6 月9 日后建议对该模组进行紧急更换,以免后续影响车辆的续航里程同时掐断进一步的热失控演化可能。
(2)与图6(b)相比,图9(a)中未识别出可能存在热失控故障的单体,进一步说明本文提出的方法可为故障类型的判断提供指导。
图9 案例2中车辆各月份的BMS故障报警信息
在后续运行过程中,BMS 开始逐步上报动力系统故障信息,其中该车辆在2021 年6-9 月份上报的BMS故障报警信息如图9所示。第1次“电池单体一致性差报警”信息在6月30日上报,随后的月份上报频率越来越高。对每月“电池单体一致性差报警”的频率和频次统计如图10 所示,图中可见6-9 月的报警信息越来越频繁,且在9 月份显著爆发。因此,本案例也有效验证所提算法能实现准确的电池故障分级预警,且相较于实车BMS 提前20天左右预警。与当前行业中提前数十分钟级别的故障预警水平相比[13-14],本文算法具有明显的先进性及故障预警的超前性。
图10 案例2中一致性差故障上报频率统计图
现实中各大整车企业或政府机构在云端收集了大量实车运行数据,但由于云端数据的质量限制使得这些数据未能被有效利用,尤其是基于此数据进行及时的热失控和均一性故障诊断对保障实车的安全稳定运行具有重要意义。为此,本文提出了无监督式的电池故障分级预警算法,并与企业合作进行了各类场景下的实车验证,实例数据识别结果表明:
(1)针对故障类型未知、运行工况随机且数据质量较低的云端数据,本文提出的故障分级预警算法具有较高的适应性和通用性,且无须大量历史数据训练即可快速布置在云端使用;
(2)针对当前电池故障类型难以区分的痛点,通过引入温度信息并进行单独评价从而准确判断是否为热相关故障,案例验证结果表明本文算法能准确识别具有热失控风险的单体;
(3)针对不同的故障程度和紧迫性,对电池故障预警等级进行划分并提供“紧急”或“非紧急”的定点预警信息,与当前行业中提前数十分钟级别的故障预警水平相比,本文算法具有明显的先进性及故障预警的超前性。
未来将结合更多实际故障案例及调查信息,进一步验证和优化本文提出的阈值划分方法,并对相应指标(误报率和检出率等)给出更准确的统计结果。