APP下载

基于多元线性回归的锂动力电池荷电状态鲁棒预测

2019-08-29松1林伟钦1陈德旺1郑其荣

计算机测量与控制 2019年8期
关键词:线性电池样本

张 松1,林伟钦1,陈德旺1,汤 平,郑其荣

(1.福州大学 数学与计算机科学学院,福州 350108; 2.福建星云电子股份有限公司,福州 350015)

0 引言

新能源电动汽车作为原有的燃油汽车替代品能够有效缓解油能源紧张、减少尾气污染等问题从而成为未来汽车制造的主要发展方向。其中锂动力电池由于其容量大、循环使用寿命长、安全性高、体积小等优点成为电动汽车的主要动力来源。电池荷电状态 (state-of-charge, SOC)是电动汽车电池管理系统的重要指标,SOC的精确预测能够有效提高电池的利用率,防止电池过充电和过放电从而避免对电池造成损害,进而提高电池的使用寿命、降低使用成本。目前来说,SOC的预测方法主要分为:安时积分法、开路电压法、卡尔曼滤波法、神经网络法和数据驱动法。

安时积分法是最常用的SOC估测方法[1],它通过对充放电过程中的电流进行积分从而求得电池电量变化。该方法适用于任何类型电池的状态估计,所以许多学者将其应用于SOC估测[2-4]。安时积分法的计算需要精确的电流测量值,如果电流值测量不准确,在不断的迭代计算中误差不断累积进而导致预测结果的偏差。开路电压法是最简单的SOC预测方法,所以该方法得到了大量应用[5-7]。但是该方法在测量电池电压时需将电池长时间放置以达到电压稳定才能继续实验,因此开路电压法不能用于SOC的实时预测且精度较低。卡尔曼滤波法是一种精确预测电池状态的算法,它的核心思想是对动力系统的状态做出最小方差意义上的最优估计。卡尔曼滤波法的优点是它可以实时动态预测SOC,但电池参数之间一般为非线性关系,所以许多非线性预测的改进版本被用于SOC估计[8-10]。缺点就是卡尔曼滤波预测结果好坏取决与电池模型能否精确表达电池的动态状态,但复杂的电池模型意味着计算时间的增加。此外卡尔曼滤波算法对模型噪声和测量噪声的统计特性作了假设,而实际情况中这些假设条件可能难以成立。神经网络以其复杂的结构、强大的计算力非常适合SOC预测这种高度非线性参数关系计算,该方法被用在SOC预测并取得了非常好的效果[11-13]。但是该方法需要大量的训练数据且计算量非常大。此外SOC预测值的精确度与神经网络结构、输入变量的选择等因素有着直接关系,不合理的设置将导致预测值偏差很大。数据驱动法在SOC预测中也可以称为回归拟合法。该方法不需要对电池系统进行建模,是一种简单易行且预测精度较高的方法。该方法需要大量的训练数据,训练方法的选择、输入变量的设置合适与否关系着拟合结果的精确性。目前来说,对于此方法在SOC预测方面的研究[14-15]相对较少,因此有着很大的发展空间。

本文采用多元线性回归方法对SOC进行预测,该方法是数据驱动法中的一种。与其它预测方法不同的是,基于多元线性回归的SOC预测方法可以直接利用充电桩记录的电池充电数据进行训练从而不需要行大量充放电实验获取数据。此外,由于数据中存在异常样本,我们选用了线性回归、Theil-sen和RANSAC算法来进行对比实验。实验结果表明,3种算法对SOC预测都有着很高的精度。相比线性回归算法,RANSAC和Theil-sen算法的预测误差分别降低了15.4%和23.38%。

1 多元回归模型

1.1 多元线性回归模型

多元线性回归模型是一种常用的回归模型,它使用多个特征向量作为条件从而得到一个输出变量和多个输入变量间的线性关系。在确定输入变量与输出变量后可使用相关数据对模型进行训练,求得符合真实变量关系的系数从而建立反映输入变量和输出变量之间关系的数学模型。多元线性回归模型一般数学表示为:

(y(w,x)=w0+w1*x1+w2*x2+…+wn*xn

(1)

其中:n为自变量的个数,w={w0,w1,…,wn}参数向量,也就是需要通过训练才能确定的系数。Xi(i=1,2,...,n)为自变量,Y为因变量。

求解多元回归问题的常用机器学习方法为最小二乘法。最小二乘法对w的估计,是基于模型中变量之间相互独立的基本假设的,即输入向量X中的任意两项X1和X2之间是相互独立的。多元线性模型的本质是多元线性回归方程的求解。求解方法有梯度下降法、Normal Equation等等。当特征数量较大时使用梯度法,反之则使用后者。

其中,Normal Equation求解系数矩阵的计算公式为:

w=(XTX)-1XTY

(2)

由于Normal Equation方法中需要进行矩阵的求逆运算,所以当特征数量较大时计算量会变得非常大,这里就需要采用最小二乘法来求解参数。梯度下降法是最常用的迭代优化算法,可以用于求解最小二乘问题。在确定损失函数后通过梯度下降法逐步减小损失函数的取值,当取得损失函数的最小值时便得到最终的模型参数值。其中与的等价关系为:

Y=wX

(3)

定义损失函数为残差的平方,则最小化损失函数为:

(4)

(5)

经过不断的迭代更新,当损失函数值或迭代次数达到预设的相应阈值时训练过程结束,这时的w便为最终参数值。

1.2 鲁棒回归模型

鲁棒回归是一种回归分析形式,旨在克服传统参数和非参数方法的一些局限性。和一般回归分析方法相比,鲁棒回归(Robust Regression)不容易受离群值的影响。一些常见的鲁棒回归算法包括:Theil-Sen、Huber、RANSAC。鲁棒线性回归的数学表达式如下:

y(w,x)=w0+w1*x1+w2*x2+…+wn*xn+

(6)

其中:w={w0,w1,…,wn}参数向量,x为训练样本,为模型的随机误差。

多元线性回归方法的常用求解方法为最小二乘法,而最小二乘法的参数拟合结果非常容易受到异常数据的影响。为了提高模型的鲁棒性,鲁棒回归模型引入了作为模型的随机误差。其中围绕随机误差的优化从而引出了两种不同的改进思路:1) 使用一定的采样方法先除去数据样本中异常样本再进行学习;2) 保留异常值但采取一定的方法减弱其对回归结果的影响。本文选取了Theil-Sen和RANSAC算法作为SOC鲁棒预测算法,其中Theil-Sen属于减弱异常值影响的优化方法,RANSAC算法为剔除异常数据的重采样方法。

1.2.1 Theil-Sen

Theil-sen回归是一种非参数统计方法,该方法对数据分布没有严格要求,是处理有部分异常数据的理想回归方法。该回归算法需要计算数据两两之间的斜率;然后取这些斜率的中位数为回归方程的斜率;之后通过变量x与变量y的中位数计算出截距,从而得到回归方程。

Theil-Sen回归是一个参数中值估计器,它适用泛化中值,对多维数据进行估计,因此其对多维的异常点有很强的稳健性。其一元回归模型为:

y=α+βx+

(7)

其中:α,β为模型的参数,为模型的随机误差。对于单变量的Theil-Sen回归,斜率的计算方程如下:

(8)

这里有bij=bji,之后将求得的这些斜率的中位数作为总体回归系数的估计值。截距α的计算公式如下:

(αi=Med(yi)-βMed(xi)

(9)

如此取求得的n个值的中位数作为截距α的估计值,则模型参数求解完毕。

Theil-Sen回归是一个参数中值估计器,它适用泛化中值,对多维数据进行估计,因此其对多维的异常点有很强的稳健性。同时该算法原理简单,易于实现。但Theil-Sen回归只是取数据参数的平均值并不能消除异常点对参数估计的影响,且不适用于数据维数较高的情况。

1.2.2 RANSAC

RANSAC(random sample consensus) 是一个求解已知模型的参数的框架,可以用于解决计算机视觉问题、统计数学问题以及模型参数估计问题。RANSAC算法在运行前需要设定几个参数:1)迭代次数k;2)内外点距离阈值t1;3)一致性集合大小阈值t2。RANSAC的算法流程为:

1)从数据中随机选取模型参数估计的最少的数据(对于多元线性回归问题,则取随机的一组数据),计算出参数方程;

2)计算出数据集中其余点与已算出模型的距离d,当时dt1时就判定该点为外点(outlier);

3)接着统计内点个数n,当n>t2时就判定该模型为最优模型mbest,并记录该模型的统计误差emin,即每个内点与求得模型的距离;

4)重复步骤1)~3),当得到新模型时,比较新模型的误差e与emin的大小,如果e

5)最终输出mbest,得到最终的参数模型。

RANSAC回归原理简单、可以应用在很多问题中。该方法本质上是对数据集的重采样,很好地避免了异常点对参数估计的影响。但RANSAC算法的计算量较大,同时停止条件和阈值的设定对结果影响很大。

2 SOC回归预测

2.1 SOC定义

目前来说,较为统一的是从电量角度定义SOC。所以SOC可以定义为:电池在一定放电倍率下,剩余电量与相同条件下可用容量的比值。

(10)

其中:Qn为当前剩余电量,Cn表示当前可用容量。因此,当SOC=1时说明电池充电完成,当SOC=0时电池电量耗尽。

2.2 SOC预测模型

本文采用多元线性模型对锂动力电池进行SOC充电预测,其中用到的对比方法有线性回归、Theil-sen和RANSAC算法。采用的实验数据是电动汽车在充电站充电时充电桩所记录的充电数据。由于目前研究问题的特殊性,我们从维数众多的数据中提取出与本文实验相关的特征。此外,为了简化问题模型以及SOC预测系统易于实现,我们并没有考虑温度、内阻等物理因素。从最终的实验结果来看,简化的问题模型不仅使问题变得简单,而且取得了非常高的SOC预测精度。其中我们提取的输入特征如表1所示。

表1 输入特征表

所以SOC预测模型可表示为:

y=w0+w1*S+w2*V+w3*A+w4*T+w5*m+

(11)

其中:y表示模型预测结果SOC,w0…w5为模型训练参数,为鲁棒回归的随机误差。

由于SOC是一种时间序列型的变量,本文将充电数据中的两条充电记录时间间隔作为一次计算过程,输出结果设为变量EndSOC。预测过程如卡尔曼滤波算法一般不断迭代计算,循环预测SOC的下一时刻输出值。训练前需要对数据进行预处理,例如归一化等,训练时采用最小二乘法进行参数拟合,最终求得SOC的预测模型。

3 评价标准

为了量化线性回归、Theil-sen和RANSAC算法预测SOC的结果精确度,本文使用了4个常用的模型性能评估指标:平均误差、绝对平均误差、均方根误差(root mean square error, RMSE)和标准差(Standard deviation,Std)。为了更好地分析算法性能,本文在数据集上对3种算法进行50次试验,并给出其平均结果。

1)误差定义

首先针对预测值与实际值之间的差异我们定义了误差公式:

e=SOCt-SOCp

(12)

其中:e为模型误差,SOCt为真实值,SOCt为模型输出值。

2)平均误差

(13)

3)平均绝对误差

(14)

(4)标准差

(15)

(5)均方根误差

(16)

Std指标的计算公式如公式(8)所示。Std是一种度量数据分散程度的标准,可以作为评价数据值偏离算术平均值程度的依据。该指标可以用来衡量算法在训练阶段和测试阶段的稳定性。RMSE指标的计算公式如公式(9)所示。其中,n表示样本的个数,ei表示第i个样本所对应的预测值,均方根误差能够很好地反映出模型的预测误差。

4 实验结果与分析

4.1 数据预处理

本文采用的实验数据是从充电桩上采集的汽车充电记录数据,由于公司考虑到未来的多方面应用,所以这些数据中特征数量非常多。我们首先需要从中选取与SOC预测相关的特征。出于对问题模型的简化以及预测系统的易实现性,我们只提取了少数相关的特征变量,这一点在2.2节中有说明。但原始的数据与需要的数据形式有着很大的不同,所以我们要对数据进行一定的处理。

首先是SOC数据的离散化问题。由于充电桩记录的电池BMS输出SOC的精度为1%,所以导致数据中的SOC值表现为离散化且存在众多相同值。为了解决这一问题,我们假设在较短的时间间隔内SOC为线性增长,因此可以对原始数据中的重复值进行线性插值处理。处理的结果如图1所示:

图1 SOC处理前后对比图

在图1中,(a)图中深色代表的是原始SOC值,浅色表示的是线性插值处理后的值。可以看到总体上来说线性插值并没有改变SOC曲线的趋势及规律。此外,图(b),(c),(d)分别显示的是SOC为1%,50%,99%处的SOC值,这里浅色代表的处理后SOC值,与深色代表的原始值相比,处理后的连续值更适合SOC的预测。

接着是对训练数据进行分片处理。SOC是一种时间序列型的变量,所以需要将SOC预测处理为许多SOC子预测。这里我们将两次记录间作为一次SOC子预测过程,每个子预测中输入有初始SOC及其它相关特征(如电压、电量等),输出为子预测的结果:EndSOC。这里的EndSOC接着作为下一个子预测过程的初始SOC,从而实现SOC预测的不断迭代计算,最终完成整个过程的SOC预测。

最后,由于电子仪器本身的原因,记录数据中不可避免的会出现一些异常数据,这里我们我们以电压、电流数据为例。

图2 电压、电流数据图

如图2所示,(a)图表示的是电压与SOC之间的关系。从中可以看出,电压随着SOC的增加而增长,但是存在一些局外点分布在边缘区,同时在(b)图中也存在异常数据点。这些异常数据可能会影响多元线性回归结果的准确性,但是人工剔除异常数据的代价过大。由于数据样本中异常数据点相对较少,所以鲁棒回归非常适用于本文的SOC预测。

4.2 实验结果

本文采用了线性回归、Theil-sen和RANSAC算法预测SOC,具体的训练结果如表2所示,其中测试的最优结果用加粗字体表示。

表2 SOC预测结果量化表

从表2的结果来看,线性回归的训练结果最好,其4项指标都是最优。而RANSAC算法的训练结果与线性回归结果非常接近,这里的接近同样表现在参数拟合结果上。这里我们认为是由于数据样本中异常样本与正常样本的数量不均衡所导致的。异常样本数量过少,导致RANSAC算法筛选出的正常数据样本与原始样本之间的差异不够明显。不过在测试结果中我们发现RANSAC算法预测结果的Std与RMSE比线性回归分别降低了19.3%和15.4%。这说明RANSAC算法一定程度上能够降低异常数据对SOC预测的影响。Theil-sen算法的拟合结果除了MAE劣于线性回归与RANSAC外,其μ、Std、RMSE与线性回归相比分别降低了20.6%、24.48%和23.38%。这说明与线性回归和RANSAC算法相比,Theil-sen算法即便在异常数据的影响下更能够有效预测SOC。

图3 线性回归SOC预测结果图

图3显示的训练后的线性回归对SOC的拟合结果图,其中a图为总拟合结果图,其中深色表示的是SOC实际值,浅色表示的是SOC预测值。总体上来看,线性回归拟合结果非常接近实际值,这一情况在b和c图得到了体现。但当SOC实际达到85%左右时拟合值与实际值之间出现了很大的偏差,图d显示了预测值与实际值之间有着1.5%左右的平均误差。

图4 RANSAC算法SOC预测结果图

图4显示的训练后的RANSAC算法对SOC的拟合结果图,其中a图为总拟合结果图,其中细线表示的是SOC实际值,粗线表示的是SOC预测值。与线性回归结果相似,除后小段外RANSAC算法拟合结果非常接近实际值,当SOC实际达到85%左右时(图d)拟合值与实际值之间出现了较大的偏差。

图5 Theil-sen算法SOC预测结果图

图5显示的训练后的Theil-sen算法对SOC的拟合结果图,其中a图为总拟合结果图,其中浅色表示的是SOC实际值,深色表示的是SOC预测值。与线性回归和RANSAC结果不同,除开始小段Theil-sen算法拟合结果与实际值较接近外,Theil-sen算法在其它阶段的预测值与实际值之间都有着不小的误差。但当SOC实际达到85%左右及之后的阶段中,拟合值与实际值之间的偏差处于不断缩小的状态。这说明Theil-sen算法在85%~99%范围内对SOC的预测精度要远高于另外两种算法。

5 结论

出于对问题模型的简化以及对SOC预测系统易于实现的考虑,本文采用了多元线性回归方法来进行锂动力电池充电时SOC预测,同时将充电桩记录的充电数据作为实验数据样本。由于在数据样本中存在异常数据,我们选用了Theil-sen和RANSAC算法对SOC进行鲁棒预测。实验结果表明,基于多元线性模型的回归算法对SOC预测都有着很高的精度。其中,由于异常数据的影响,线性回归的预测结果在SOC实际值为85%之后的范围内偏差相对较大;同时异常数据的数量较正常样本数量非常小使得RANSAC算法没有发挥相应的作用;Theil-sen算法则很好地减少了异常数据对参数拟合产生的影响,其预测精度在3种算法中最高。

但是,这3种算法都没能完全精确地预测SOC,例如线性回归与RANSAC算法在85%之后的范围内偏差较大,Theil-sen算法在85%之后的范围内表现良好,在其它范围内表现不如前两者。这里我们认为可能是由于线性模型对SOC数据规律的表示能力较弱导致的。在未来的工作中,我们会尝试更加复杂的非线性模型以及分段线性模型来对SOC进行预测。

猜你喜欢

线性电池样本
电池很冤
“一粒盐电池”
二阶整线性递归数列的性质及应用
有用的电池
线性回归方程的求解与应用
用样本估计总体复习点拨
电池取火
规划·样本
非齐次线性微分方程的常数变易法
线性回归方程知识点剖析