胡 杰,余 海,杨博闻,程雅钰
(1.武汉理工大学,现代汽车零部件技术湖北省重点实验室,武汉 430070;2.武汉理工大学,汽车零部件技术湖北省协同创新中心,武汉 430070;3.新能源与智能网联车湖北工程技术研究中心,武汉 430070)
随着电动汽车的快速普及,消费者和汽车厂商对电池安全问题越来越重视,电池安全领域正在成为研究的热点,以实现对电池安全风险的准确预测。Hong 等[1]通过对电池温度实时监测并运用Z-score方法,提出了一种基于温度异常的电池安全实时预测方法,实验结果表明该方法能预测电池组发生温度风险的位置和时间。Yang等[2]利用电压信息估计短路电流的人工神经网络(ANN),获得所需电流,利用该电流预测ESC 单元的最高温升及温度分布,实验结果表明该方案能对电池风险进行精度较高的诊断预测。詹华等[3]提出了一种基于LS-SVR 模型的电池风险预测方法,通过预测电压不同状态来评估动力电池的风险,实验结果表明该方案能对动力电池风险进行有效的诊断预测。姚建平[4]分析了影响电池温度上升的原因并基于EEMD-AR 模型提取特征,有效地提高了锂电池风险诊断的准确度。张家昌[5]利用小波包分解的方法去除数据噪声和提取特征,以此方法分解数据作为输入的模型,对电池风险分类预测的准确率达94.13%。Feng 等[6]总结了处理数据和提取特征的方法,对电池不一致性诊断和评估的方法进行了分析归纳,并提出了自己的思路。Zhang 等[7]根据开路电压和内阻分析了电池组的一致性,建立了内膜标准偏差与电池组OCV 标准偏差之间的函数关系,实验结果表明该方案误差在6%以内。Jiang等[8]设计了一种分析电池一致性的建模方法,该方法能够描述电池一致性参数间的依赖结构和参数的统计特性,与现有的方法相比能提高描述准确度。王庆年等[9]通过挖掘数据构建健康因子,并基于ARIMA 模型对健康因子进行分析预测,结果表明该方案能够对车辆进行精度较高的有效预警。
本文中基于大量电动汽车的实时数据和周围环境数据来分析电池安全风险预测问题,并将预测问题解耦为机器学习预测和时间序列预测问题,最后通过Stacking 模型将二者进行集成改进。构建接近实际情况的多指标特征,模拟了电池复杂的使用环境;基于数据挖掘提取了行驶工况和驾驶风格特征以提高方案的泛化性和鲁棒性;对基模型进行筛选优化后建立Stacking 集成模型以提高精度,最终实现了基于数据驱动的电动汽车电池安全风险的准确预测。
本文所有数据为北京地区车辆的运行数据,数据采集时间是2019年10月1日至2020年8月20日,车辆类型为纯电动运营汽车,共计6 974 万条数据,采集周期为10 s。共有21 种不同类型数据,其中部分数据如表1所示。
表1 部分车辆运行数据
目前市面上的纯电动汽车的电池绝大部分是锂电池[10-11]。电池的内部材料和各种性能在车内外复杂的环境下和每次循环充放电的过程中不断发生变化。
为模拟真实的电池使用场景,本文中基于电池充放电对电池安全的影响、使用环境对电池安全的影响、电池状态即荷电状态(state of charge,SOC)和健康状态(state of health,SOH)对电池安全的影响,进行特征构造、模型筛选和Stacking 集成。本方案大致步骤为:对实车数据进行处理,将数据划分为3个不同片段,并分为训练集和验证集;基于对数据的理解来进行特征提取;运用随机森林和SHAP 组合模型筛选出最终特征;基于预测问题的解耦,分别进行模型的筛选优化;将最终筛选出的模型进行Stacking集成改进,并对模型进行数据实验。具体的预测流程如图1所示。
图1 电池风险预测流程图
在数据的实际采集过程中,存在环境变化、设备不稳定、传输延迟等问题,故本文数据存在大量的问题数据。为了后续模型构建的需要、减小模型误差和提高模型准确度,需要对数据进行清洗。
为了便于对问题数据进行处理,本文将数据划分为不同的状态片段:行驶片段、停车充电片段、停车静置片段。具体的划分规则如下:(1)车辆状态保持不变;(2)充电状态保持不变;(3)考虑到数据集的数据分布特点,为了更好地划分充电、静止和放电片段,数据间间隔不能小于240 s。划分后的片段内数据少于100 条时,考虑其分析意义不大,且增加计算时长,故对其进行删除处理。具体划分流程如图2所示。
图2 片段划分流程图
针对存在缺失值、数值为0、采集滞后、车辆状态异常标记等不同问题数据,本文进行了差异化处理。
2.2.1 缺失数据处理
在数据中最高单体电压、最低单体电压和最高温度存在大量缺失,缺失量分别为35%、47%和56%,针对这类数据有两类及两类以上的缺失进行删除处理,然后计算缺失数据前后各5 个共10 个数据的标准差以判断变化程度,当数据变化程度小时,取这10个值的平均值进行填充。此时这3类缺失量分别为8.5%、9%、11%,对这3 类缺失数据基于随机森林算法进行回归填补,具体的回归填充流程图如图3所示。填补后的平均相对误差如表2所示。
图3 随机森林填补缺失值
表2 平均相对误差
2.2.2 异常数据处理
(1)在数据中存在大量数值为0 的异常值,具体如图4 所示。从图4 中可以看出,数据存在电压、SOC、单体电池最小温度和单体电池最大温度为0的异常情况。针对此部分的异常数据,用上述缺失数据处理的方法进行填补。
图4 数值为0的异常数据图
(2)在数据中某些片段交界处会出现异常数据,例如前后两个片段分别为行驶片段和停车充电片段,在停车充电片段开始处电流为-10 A,但车辆速度显示大于0。对该部分数据分析后,认为是采集滞后的原因,利用速度数据来进行平移修正。
(3)在数据中存在车辆状态标记异常的数据,例如车辆的充电状态为停车充电,但运行状态却显示行驶状态(图5)。考虑车辆运行状态对于后续模型构建十分重要,并且该数据占总数据比重较大,因此不能删除处理。分析后在已有的车辆运行状态特征的基础上利用速度和电流等特征进行修正处理。
图5 车辆状态标记异常图
(4)将通用报警标志进行二进制转换后,发现数据中只存在单体电池欠压、SOC 低、一致性差报警、制动系统报警、SOC 跳变5 种通用报警。并发现放电过程中的数据,大量耦合了电池报警信息,且该部分数据的电压、单体温度等也出现了偏低或偏高,为了防止对后续模型预测造成影响,将放电过程数据进行删除。
为了更加真实地模拟电池实际工作场景,本文爬取了周围环境数据作为补充参数,并在数据的理解上构建了多指标特征。
(1)时间信息特征提取
可根据解析出的时间特征得到是否为晚上、白天等类别特征,这些特征对电动汽车的安全风险存在一定影响。例如2019-11-01-06:31:46 特征转换如表3所示。
表3 时间信息特征转换
(2)电池健康状态特征提取
本文根据电池健康状态的标准定义进行健康状态特征提取,其标准定义如下:
式中:CM为电池容量;CN为电池额定容量。
其中电池容量采用安时积分法进行计算:
由于该方法计算电容存在误差,为了减少误差提高模型精度,需要对电池容量进行修正。考虑到温度对电池内部的化学反应以及能量消耗有很大影响,相比于常温环境,低温状态的电池容量会有明显减少,本文先基于不同温度下电池容量值与温度的变化关系,对电池容量进行修正,得到修正后电池容量和温度的变化,如图6所示。
图6 单体电池平均温度和修正后的容量值变化图
电池放电电流的变化对电池的容量也有较大影响,电池的放电电流会影响到电池的内部化学反应从而加速容量衰减。本文基于计算的电池容量值与电池容量真实值之间的比值,对电池容量进行修正,得到电池容量在修正前后的差值与放电电流的关系,如图7所示。
图7 电流修正后电池容量差值与放电电流关系图
电池容量经过修正后仍存在部分离群点,针对离群点则采用箱型图来进行分析检测,检测结果如图8 所示。由箱型图可知,将边缘线之外的离群点予以剔除。
图8 各月电池容量箱型图
(3)能耗信息特征提取
电动汽车在实际运行过程中,电池容量会不断衰减从而影响电池安全性能,本文基于式(3)来计算电池能耗并提取电池能耗特征[12]。
式中:SOC(t0)和SOC(t1)分别为在t0和t1时刻的SOC值;U为放电过程中的电压值;Cn为电池容量值;Qd为制动回收部分贡献的能量,计算公式见式(4)。采用放电片段之前的充电片段来计算放电片段的电池容量,计算公式见式(2)。整车能量消耗中的汽车制动能量主要是制动能量回收贡献的能量[13]。本文根据汽车制动能量回收贡献率和各部分的效率来计算制动回收贡献的能量。
式中:Ui表示输出电压;IiiN表示制动电流的大小;ηes、ηmd、ηtd、ζ分别表示储能装置平均能量效率、电机驱动系统效率、传动系统效率、制动能量贡献率,这些系数分别为0.902、0.801 1、0.901、0.539。
(4)电池一致性特征提取
电池是由多个单体电池组成的整体而非单个单体电池,各单体电池本身的连接方式、性能、温度、电压等都存在着差异[14]。电池不一致现象会对电池产生很大的影响,由于数据维度的原因,本文只分析了电池的温度一致性和电压一致性。
本文用单体温度极差和单体电压极差来表示电池的温度一致性和电压一致性。单体电池温度一致性的计算公式如下:
式中:Tempmax、Tempmin分别表示单体温度最大值和单体温度最小值;Umax、Umin分别表示单体电压的最大值与最小值分别表示温度一致性得分系数和电压一致性得分系数,且都为0.2,一致性得分越接近1,说明电池一致性就越好。
(5)行驶工况特征提取
基于前文片段划分的结果,本文选取片段内的平均车速、驻车时间比、匀速时间比、加速时间比4个特征用于工况片段聚类分析。其中平均车速vm、驻车时间比例Pi、匀速时间比例Pc、加速时间比例Pa的具体计算公式如下:
式中:n是片段长度;vi是第i时刻的速度;ns是速度为0且加速度绝对值小于0.1的长度;nc为加速度小于0.1的长度;na为加速度大于0.1的长度。
本文基于K-means 聚类对工况片段进行聚类,运用“肘部法”得到SSE 和聚类数的关系,如图9 所示。从图9 中可知,当聚类数为3 时,SSE 的下降坡度明显变缓,后续变化不大,因此确定最佳类簇数目为3。通过分析并可视化片段中的平均速度与驻车比例之间的关系,得到的聚类结果如图10 所示。在图10 中可以看出行驶工况分为3 类,用1、2、3 表示:1 代表的工况驻车比例高,平均速度低,划分为城市拥堵工况;2 代表的工况驻车比例适中,平均速度适中,划分为市郊工况;3 代表的工况驻车比例较低,平均速度较高,划分为高速工况。
图9 肘部法确定类簇数图
图10 K-means聚类结果图
(6)驾驶风格特征提取
在实际驾驶过程中,不同的驾驶员对应不同的驾驶风格,不同的驾驶风格会对行驶状态产生不同的影响,并进一步影响电池状态。由于行驶工况会对驾驶风格产生一定影响,故需要针对不同的工况来对驾驶员的风格进行分析。驾驶员主要是通过制动和加速踏板将行驶意图传递给车辆,根据踏板的开合程度与开合度变化率可以评估其驾驶风格,踏板的开合度和开合度变化率可通过汽车的加速度与加速度变化率来表示[15]。
目前多基于逻辑回归、支持向量机和神经网络算法等对驾驶风格进行识别,但本文数据采样间隔为10 s,采样频率太低,用多种模型识别后发现效果不佳,故本文选择片段内加速度标准差和加速度变化率标准差作为评判指标。为避免在不同工况下出现识别偏向性,对不同工况加速度标准差和加速度变化率标准差取平均值作为修正系数SDJJ和SDaa。将片段内标准差除以所属工况的标准差平均值作为评判标准:
式中:n表示加速度绝对值大于0.1 的片段长度;Ji表示第i个加速度绝对值大于0.1 的加速度变化率大小;ai表示第i个加速度绝对值大于0.1 的加速度大小;m表示所属工况的片段长度。
用加速度标准差与不同工况下的加速度标准差平均值的比值来反映踏板开合度情况,用加速度变化率的标准差与不同工况下加速度变化率标准差的平均值的比值来反映踏板开合度的变化程度。根据踏板开合度、踏板开合度变化率和实际用车情况,划分的驾驶风格如表4所示。
表4 驾驶风格划分
为了方便对后续模型的统一处理和提高模型的稳定性,本文对特征的连续型变量采用归一化处理,特征的离散型变量采用独热编码。
为了精简特征,提高模型的泛化能力,需要剔除无关特征和冗余特征。本文先运用随机森林模型对特征进行初筛选,将重要度得分靠后的特征剔除;利用SHAP 计算特征对模型结果的贡献度;最后用随机森林和SHAP 模型相组合的方法来对多指标特征进行筛选,具体特征筛选流程如图11 所示。特征最终的筛选结果如图12所示。
图11 RF-SHAP特征筛选流程
图12 RF-SHAP特征筛选结果
在筛选非线性关系的特征中,树模型的筛选效果较好,但单棵决策树则容易出现过拟合的现象,故用随机森林模型对特征进行初步筛选,以避免出现过拟合现象。考虑到随机森林模型的可解释性不强,而SHAP 的方法能够进行很好解释,故用随机森林模型对多指标特征进行初步筛选后,再用SHAP方法计算特征对模型结果的具体贡献值,具体公式如下:
式中:g为解释模型;z′表示相应特征是否能够被观察到,其中结构化数据的每个特征都能被观察到;M为输入特征的数目;∅0是用于解释模型的固定常数。由于随机森林模型输入的是结构化数据,因此z′应该是为1的向量,则
对于特征初筛中的随机森林模型来说,需要计算出每个特征的Shapley 值即该特征的贡献值后对所有可能的特征组合进行加权求和:
式中:S为模型中特征的子集;M为特征数量;fx(S∪i)和fx(S)分别表示特征子集S∪i和特征子集S的预测;fx(S∪i) -fx(S)则表示特征的边际贡献值为特征子集S的权重,其与顺序存在一定的关系。
根据图12 中的特征筛选结果,提取出重要程度最高的13 个特征作为最终输入特征,具体如表5 所示(表5 还包括其他特征)。在最终特征中电池信息类的特征重要度得分最高,对模型效果影响最大,而能耗特征、行驶工况特征、驾驶风格特征和天气季节特征等对模型效果也有一定影响。
表5 筛选后的最终特征
考虑到电池安全状况是在复杂车载环境下,在使用过程中随着电池各项性能指标变化而变化,也在使用的过程中随着使用时间的增加而不断变化,即电池安全风险预测与电池关键性能指标有关,也与时间有关,本文中将电池安全风险预测问题解耦为传统机器学习预测问题和时间序列预测问题两种。对于前者采用基于多指标的机器学习预测方法,后者是在机器学习模型的基础上加入时间特征进行处理。并对两个模型建立新的Stacking 模型进行预测,评价指标选择受试者工作特征(receiver operating characteristic,ROC)曲线下的面积(area under curve,AUC)值以保证模型预测精度以及鲁棒性。
表5 特征中max_alarm_lvl 即安全风险等级分为0、1、2、3 的4 种不同风险等级,其中:0 级是安全状态;1 级是一种相对安全的状态,并不影响行驶;2 级风险表示电池已经处于相对危险的状态,需要驾驶员停车仔细检查;3 级风险是最高级别风险,需要驾驶员立即停车并下车,车辆很可能出现热失效和失火现象。以筛选出的13 个特征作为模型输入,以安全风险等级作为模型预测输出,对车辆风险进行预测。
分类模型输出一般为概率值,设置的阈值不同,准确度也会不同,模型预测输出分为4 类:正类样本被预测成正类,即真正类(True Positive,TP);正类样本被预测成负类,即假负类(False Negative,FN);负类样本被预测正类,即假正类(False Positive,FP);负类样本被预测负类,即真负类(true negative,TN)。具体关系如表6 所示,AUC 为ROC 曲线下的面积,ROC 是以False Positive Rate(FPR)为横坐标、True Negative Rate(TNR)为纵坐标的曲线,其定义如式(18)和式(19)所示,故AUC 的值越趋近于1,模型预测效果越好。
表6 模型输出值之间的关系
模型筛选是为了能快速简洁地对多个模型进行对比择优,从而免去单个模型的繁琐。对于机器学习模型的筛选,本文中基于划分好的训练数据集来进行交叉验证,其计算公式如式(20)所示;对于时间序列模型的筛选,则是基于自定义时间的交叉验证法来对模型进行验证。
(1)机器学习模型筛选
对机器学习模型的训练、筛选和验证不包括time 和max_alarm_lvl_shift 的时间特征。具体的交叉验证结果如图13 所示。由图可知XGBoost 和随机森林模型预测精度靠前,虽然XGBoost 的模型运行时间稍长但精度高,且运行时间在可接受范围内,故本文选择XGBoost 作为机器学习模型的最终 模型。
图13 机器学习模型筛选结果
(2)时间序列模型筛选
对时间序列模型的筛选即在机器学习模型特征的基础上加入time 和max_alarm_lvl_shift 的时间特征,采用自定义时间的交叉验证方法,根据月份以4∶1 的比例划分好数据进行交叉验证。验证结果如图14所示。从图中可看出随机森林和model-cb模型精度靠前,但model-cb模型的运行时间过长,故本文选择随机森林模型作为时间序列模型的最终模型。
图14 时间序列模型筛选结果图
利用贝叶斯优化法来对模型进行参数优化,贝叶斯优化法是通过对种群进行宏观迭代的方法来实现参数寻优,可以转换为未知函数在已知空间的最优解问题,对于集成模型和树模型,贝叶斯参数优化法是一种很有效的方法[16]。优化后的结果如表7 所示。从表7 中可以看出两个模型效果都有了一定提升,XGBoost 模型AUC 得分提升了1.100%,RF 模型AUC得分提升了1.122%。
表7 模型前后优化对比表
RE 模型为时间序列模型其输入特征多了time和max_alarm_lvl_shift 两个时间特征,XGBoost 模型为机器学习模型其输入与时间序列无关,本文Stacking集成模型的方法为:为充分利用数据扩大训练样本提高预测精度,将训练数据划分为4 个月、5个月和6 个月的数据来训练时间序列RF 模型,将得到的RE 模型预测后1 个月的数据;将全部训练数据作为输入变量来训练XGBoost 模型,得到机器学习模型XGBoost 对数据进行预测,最后将3 个RF 模型与XGBoost 模型一起作为基模型输入到简单的逻辑回归LR 模型中,集成得到最终的预测结果。具体Stacking集成模型的结构如图15所示。
图15 Stacking集成模型结构图
图15 中:X为XGBoost 模型的全部数据输入变量,X4、X5、X6为RF 模型的4 个月、5 个月、6 个月的输入变量,其中不同输入变量结构如图16所示。
图16 不同输入变量的结构图
为了验证Stacking 集成模型的优越性,采用图17 中的方法对其进行数据实验。首先根据月份将训练数据划分为4 个月、5 个月和6 个月的数据,将其作为不同输入变量来训练3 个不同的RF 模型;将全部训练数据作为输入变量来训练XGBoost 模型,最后将3个不同RF模型与XGBoost模型的结果进行集成,得到最终预测结果。
图17 Stacking集成模型实验流程图
为了进一步验证模型的性能,本文基于测试数据对XGBoost、RF 和Stacking 集成模型进行模型测试,其模型测试结果如表8 所示。由表8 可知XGBoost、RF 模型在测试数据集上的AUC 得分与训练集上的结果类似,表明各个模型没有出现过拟合,模型结果符合预期并具有良好的泛化性和鲁棒性。
表8 各个模型测试结果表
其中XGBBoost、RF 和Stacking 集成模型的ROC曲线如图18 所示。由图18 可知Stacking 集成模型相比前两者单模型能明显提高效果,可以对电动汽车电池风险进行更准确的预测。
图18 各个模型ROC曲线图
本文中通过提取汽车内外多维度信息,用随机森林和SHAP 组合模型的方式对特征进行筛选,模拟了复杂的电池应用场景。考虑了汽车实际工况和驾驶员的驾驶习惯,使方案有较好的泛化性和鲁棒性。将电池安全风险预测问题解耦为传统机器学习预测问题和时间序列预测问题,分别采用XGBoost模型和RF 模型进行预测,并将两者进行Stacking 集成改进后明显提高了预测精度,根据集成模型的预测结果AUC值为0.991 7,表明该方案能对电动汽车的电池安全风险做出准确的预测,可以为安全化、智能化的电池管理系统提供辅助决策信息。