时间:2024-05-04
田明光,翟 旭,江颖洁,田保鹏,刘晓晨
(国网山东省电力公司信息通信公司,山东 济南 250001)
铅酸电池以其电压稳定、贮存性能好、造价较低等优势被广泛地应用于各类供电系统中[1]。在铅酸电池的多种内部状态参数中,电池荷电状态(State of Charge,SOC)是最重要的,它反映着电池当前的剩余电量。准确地估计铅酸电池的SOC有助于人们及时对电池进行充电,从而确保供电系统顺利运行。因此,铅酸电池SOC的预测成为当前电池研究领域的一大热点问题[2]。
现阶段,铅酸电池SOC的预测方法有很多种,其中最常见的两种方法是基于滤波的方法[3]和基于机器学习的方法[4]。基于滤波的方法将经典的滤波理论(如粒子滤波、卡尔曼滤波等)与常用的数学模型(如多项式模型、指数衰减模型等)相结合来拟合铅酸电池SOC的变化曲线。然而,基于滤波的方法只能在数据分布已知的条件下取得令人满意的结果,具有严重的局限性。随着机器学习理论的日渐成熟,第二种方法越来越受到重视。基于机器学习的方法通过各种机器学习算法(如高斯过程回归算法(Gaussian Process Regression,GPR)[5]、支持向量机算法(Support Vector Machine,SVM)[6]、人工神经网络算法(Artificial Neural Network,ANN)[7]等)对采集的历史数据(这些数据通常被称为原始训练集)进行建模,从而有效地预测铅酸电池的SOC。基于机器学习的方法可以进一步分为基于全局信息的方法和基于局部信息的方法。前者是直接在原始训练集上训练模型作为最终的预测模型,这种方法看似简单合理,却容易造成信息的冗余。后者是通过某种策略(例如:聚类、信息匹配)提取原始训练集中部分有效数据作为训练集,并在新的训练集上训练预测模型。此方法虽然能够去除冗余的信息,却有可能造成信息的丢失。
为了解决上述信息的丢失或冗余问题,本文以高斯过程回归为基础模型,并结合聚类算法和集成学习理论,提出一种基于K均值聚类的高斯过程回归集成算法(K-means Cluster with Ensemble Gaussian Process Regression,KC-EGPR)来预测铅酸电池的SOC。该算法的核心思想是采用聚类算法生成原始训练集的多个包含局部数据信息的子集,再利用集成学习理论将数据层融合问题转化为决策层融合问题。KC-EGPR的步骤如下:首先通过K-means算法对原始训练集进行聚类生成若干子训练集,每个子集包含了原始训练集的某种局部信息;再在每个子集上训练高斯过程回归模型(GPR),多个GPR构成一个 GPR的集合;最后利用自适应提升算法(AdaBoost)对多个训练的GPR进行集成,得到最终的预测模型。在三组铅酸电池数据集上的实验结果表明,所提方法的性能优于对比模型,且具有广阔的应用前景。
K均值(K-means)聚类算法[8]是聚类分析中最常用的算法之一,它最大的特点是简单、易理解、运算速度快。K-means聚类算法需要预先设定簇(类别)的数目K值及每个簇的初始中心点,然后通过迭代的方式不断地更新中心点和优化聚类结果。K-means聚类算法的步骤描述如下:
输入:训练样本集 S = { x1, x2,… , xp, … , xm},其中x∈Rn,m表示样本的数目;簇的数目k;迭代p终止的阈值ε;
输出:k个簇( S D1, SD2,… , S Dk);
步骤 1 选取k个聚类中心点,依次表示为u1, u2,...,uk。
步骤2 将k个簇依次置空:
对于训练集S中的每个样本px,计算它到k个中心点的距离并将其分到距离最小的中心点所对应的簇中,用公式表示为:
其中pC表示样本px所属的簇。
步骤 3 对于每个簇i,根据下面公式重新计算它的中心点iu:
其中, su m _ feature(i)表示簇i中所有样本的特征和, s um _ n umber(i)表示簇i中所有样本的数目。
步骤 4 不断重复步骤 2和 3,直到代价函数J(u,c)小于给定的阈值ε。J(u,c)表示样本集S中所有样本到其对应簇的中心点的欧式距离之和,它的计算公式如下:
高斯过程(Gaussian Process,GP)[9]也叫正态随机过程,它对处理小样本、非线性、高维数等复杂问题具有很好的适应性。给定一个有限的样本集S = { xi, yi和隐函数 f :Rn→R,其中xi为第i个样本的n维特征向量( x ∈Rn),y为第i个样本的i观察目标值(yi∈R),M表示样本的数目。若f(x1),f(x2),… ,f(xM)可构成随机变量的一个集合,其性质完全由均值函数 m (x)和核函数 k (xi, xj)确定,且具有联合高斯分布,则它们形成的随机过程就称之为高斯过程,表示为:
其中 []EX表示期望。
将噪声ε考虑到观测目标值y时,可建立高斯过程回归模型,定义如下:
其中ε为与 f (x)不相关的独立高斯白噪声,服从均值为0,方差为 σM2的正态分布。因为 f (x)服从高斯分布,所以y同样服从高斯分布。因此样本集S中所有的观察目标值y联合分布的集合可以形成一个高斯过程,表示为:
给定测试样本 x*,其预测值为 f (x*)。根据贝叶斯原理,样本集S中的观察目标值y与 f (x*)的联合分布表示为:
其中, K (x*, X ) = K(X, x*)为测试样本 x*与训练集X之间的 M ×1阶协方差矩阵。
因此,可以计算出测试样本 x*的预测值 f (x*)所满足的后验条件分布,即GP模型回归方程为:
其中,则 m (f(x*))是测试点 x*对应的预测值f(x*)的均值,c o v(f(x*))是测试点 x*对应的预测值f(x*)的方差。
在高斯过程回归中,核函数 k (xi, xj)起到了重要的作用,它定义如下:如果原始特征向量的内积是< xi, xj> ,映射后的内积为 < φ( xi) ,φ(xj)>,那么定义核函数为 k (x,x ) = φ( x )Tφ(x )。常用的核函数有线ijij性核函数(Linear Kernel)、多项式核函数(Polynomial Kernel)和径向基函数(Radial Basis Function, RBF)。本文选用RBF核函数,它的定义如下:
其中,σ表示RBF核的半径。
自适应提升(Adaptive Boosting,AdaBoost)算法[10]因其泛化能力强、无需参数调整等优点成为集成学习领域最常用的算法之一。AdaBoost算法的核心思想如下:首先在同一训练集上训练若干不同的预测模型,然后通过迭代的方式计算每个模型的错误率,再根据错误率计算出每个模型对应的权重,最后根据权重将所有的模型线性组合得到最终的预测模型。
AdaBoost 算法既可用于分类模型的集成,也可以用于回归模型的集成。在回归问题中,AdaBoost算法的基本步骤描述如下:
输入:训练样本集 S = { xi, yi},其中 xi为第i个样本的特征向量,yi为第i个样本的回归值,N表示样本的数目;迭代次数T;判断样本是否被正确预测的阈值ε;
输出:最终的预测模型 Mf(x);
步骤 1 初始化训练样本集S的权值分布 D1,使得每个样本的权重相同,具体方式如下:
步骤 2 执行T轮学习,第t( t = 1,2,… ,T)轮学习过程如下:
(1)在权值分布 Dt的训练集S上训练模型 Mt(x);
(2)评估 Mt(x)在训练集S上的错误率 et:
其中ε为预先设置的阈值,如果样本 xi的预测值与真实值之间的误差小于ε,则认为样本 xi被正确预测;否则,样本 xi被错误预测;
(3)根据错误率 et计算 Mt(x)的权重βt:
如果模型 Mt(x)的错误率 et大于或等于0.5,则舍弃该模型;
(4)更新训练集S上的权值分布 Dt+1:
其中,Zt为标准化因子。若样本 xi被正确预测,则减小 xi对应的样本权重;否则,增大 xi对应的样本权重;
尽管经典的 AdaBoost算法在集成学习领域取得了巨大的成功,但它仍然存在一个缺点——容易导致过拟合。在上述过程中,训练集既被用来训练模型,又被当作评估数据集来计算模型的错误率。换言之,评估数据集和训练集实际上来源于同一数据集,从而导致最终的模型在训练集上能取得较好的预测性能,但是在测试集上结果较差,具有较差的泛化能力。为了避免过拟合现象,本文在AdaBoost算法中引入一个与训练集没有相同样本的独立评估数据集(详见算法1),利用该数据集评估每个模型的错误率。
基于K均值聚类的高斯过程回归集成算法(K-means Cluster with Ensemble Gaussian Process Regression,KC-EGPR)的核心思想是采用聚类算法生成原始训练集的多个包含局部数据信息的子集,再利用集成学习理论将数据层融合问题转化为决策层融合问题,该算法的流程图如图1所示。
根据图1,KC-EGPR算法可以分为训练阶段和测试阶段。
训练阶段的步骤描述如下:
输出:集成模型 A da_GPR;
图1 基于K均值聚类的高斯过程回归集成算法的流程图Fig.1 Flowchart of the ensemble algorithm based on K-means clustering and Gaussian process regression
步骤1 对训练数据集TRD进行K-means聚类,生成K个簇,每个簇作为TRD的子训练集,依次表示为 S D1, S D2,… , S DK;
步骤2 在每个子训练集 S Dk上训练一个高斯过程回归模型,表示为 G PRk;
步骤3 结合独立评估数据集,利用AdaBoost算法对K个GPR模型进行集成,得到集成的GPR模型,表示为:
其中,kβ表示第k个GPR模型的权重,且
测试阶段的步骤描述如下:
输入:测试样本TS;集成的GPR模型 A da_GPR;
输出:预测结果PR;
步骤1分别用 A da_GPR中的每个GPR模型对TS进行预测,预测结果依次表示为 Y1, Y2,… ,YK;
步骤2根据 A da_GPR中每个GPR模型的权重,最终的预测结果PR可以按照如下公式计算:
为了评估 KC-EGPR算法的性能,本文采用绝对百分比均值误差(Mean Absolute Percentage Error,MAPE)和均方根误差(Root Mean Square Error,RMSE)两个评价指标,它们的计算公式如下:
其中,iY表示第i个样本的真实值,iY′表示第i个样本的预测值,N表示样本的数目。从上述公式中可以看出,MAPE表示模型相对误差的均值,RMSE表示模型误差的标准差,它们的值越小,模型的预测性能越好。
本文采用恒流放电试验法来获取铅酸电池的实验数据,实验对象为HAB类型的铅酸蓄电池,额定容量为100 Ah,额定电压为2 V。电池的放电实验描述如下:开始电压为2.2 V,截止电压为1.9 V,放电电流32 A。在上述过程中,记录电池的电压和温度作为样本的特征,同时估算出电池的SOC作为样本的回归量,共200个样本数据。为了验证KCEGPR算法的有效性,本文分别将前140、150、160个数据作为训练数据集(TRD),剩余的60、50、40个数据作为测试数据集(TED),上述三组数据集依次表示为DS1、DS2、DS3。考虑到KC-EGPR算法需要独立评估数据集,故从训练数据集中分出后10%的数据作为独立评估数据集(IED)。因此,在DS1、DS2和DS3下,TRD、IED和TED的样本数目如表1所示。
表1 TRD、IED和TED在三组数据集下的样本数目Tab.1 The number of samples of TRD, IED, and TED
KC-EGPR预测性能受众多参数的影响,其中最重要的参数是聚类分析中的簇的数目K。在本文中,我们以1为步长,在区间[2,8]内逐次调整K值,选择使 KC-EGPR性能达到最佳的K为最终的参数。图2 描述了KC-EGPR算法在三组数据集下的预测性能(RMSE值)随簇的数目K的变化曲线。
从图2中可以观察到,随着簇的数目K的增加,KC-EGPR的 RMSE值呈先减小后增加的趋势(该趋势在 DS3数据集上最为明显),这意味着 KCEGPR的预测性能先提升后降低。上述现象可以按照如下方式解释:初始时( =2K ),K的值较低,样本集经过聚类后形成的簇的数目较少,每个簇包含大量的样本并且仍然存在冗余信息,因此 KCEGPR的预测性能偏低;随着K值的增加( =3,4K ),样本集经过聚类后形成的簇的数目增加,这意味着样本集被划分的更细,每个簇中的冗余信息明显减少,KC-EGPR的预测性能明显提高。随着K值的持续增加(( 5)K≥ ),样本集经过聚类后形成过多的簇,每个簇中包含的信息量严重不足,反而导致KC-EGPR的预测性能降低。
图2 KC-EGPR算法在数据集DS1、DS2和DS3下的RMSE值随簇的数目K的变化曲线Fig.2 The variations of RMSE with different values of K for KC-EGPR algorithm on DS1, DS2, and DS3
前文提到,原始训练集中可能存在冗余信息,直接在原始训练集上训练模型(即基于全局信息的方法)往往不能取得令人满意的结果。为了验证KC-EGPR能够减轻原始训练集中冗余信息带来的负面影响,在本节中,我们将 KC-EGPR的预测性能与基于全局信息的 GPR模型的预测性能进行比较。为了便于描述,基于全局信息的GPR被命名为GL-GPR。此外,需要注意的是KC-EGPR预测性能与簇的数目K有着直接的关联。在本文中,我们以1为步长从2到8调整K值,选择使KC-EGPR性能达到最佳的K为最终的参数。表 2描述了 KCEGPR和GL-GPR在三组数据集下的预测性能。
表2 KC-EGPR和GL-GPR在DS1、DS2和DS3下的预测性能Tab. 2 Performance comparisons between KC-EGPR and GL-GPR on DS1, DS2, and DS3
从表2中可以观察到,对于每组铅酸电池数据集,KC-EGPR的 MAPE和 RMSE的值均低于GL-GPR 对应的值,这意味着 KC-EGPR的预测性能均优于GL-GPR的预测性能。具体而言,从MAPE的角度分析,KC-EGPR的MAPE值相比于GL-GPR在 DS1、DS2和 DS3上分别降低了 2.95%、2.29%和1.98%。从RMSE的角度分析,KC-EGPR的RMSE值相比于GL-GPR在三组铅酸电池数据集上平均降低了0.7900,其中最大的降幅发生在DS3数据集上,达到了0.8712。
准确地预测铅酸电池的荷电状态(SOC)能够确保电池正常供电,对其所在系统的安全性和可靠性有着重要的意义。为了提高预测准确率,本文提出了一种基于 K均值聚类的高斯过程回归集成(KC-EGPR)算法。该算法的核心思想是采用聚类算法生成原始训练集的多个包含局部数据信息的子集,再利用集成学习理论将数据层融合问题转化为决策层融合问题。相比于现有的模型,本文提出的算法能够更有效地预测铅酸电池的SOC,具有广阔的应用前景。
[1] Hua Chih Chiang, Lin Meng Yu. A study of charging control of lead-acid battery for electric vehicles[C]. Proceedings of the IEEE International Symposium on Industrial Electronics,2000, 1(1): 135-140.
[2] Vasebi Amir, Partovibakhsh Maral, Bathaee S. Mohammad Taghi. A novel combined battery model for state-of-charge estimation in lead-acid batteries based on extended Kalman filter for hybrid electric vehicle applications[J]. Journal of Power Sources, 2007, 174(1): 30-40.
[3] Chen Su, Kang Chunjian, Zhang Zhang, et al. A method for SOC estimation for lead-acid battery based on multi-model adaptive extended Kalman filtering estimation[C]. Proceedings of the Industrial Electronics Society, 2016, 1(1): 18-24.
[4] Gong Qing Zhu, Zhang Yu Ping. Application of LS-SVM in battery's SOC estimation in telecommunication power systems[J].Electrical Measurement & Instrumentation, 2010, 23(2): 145-152.
[5] Rasmussen Carl Edward. A unifying view of sparse approximate Gaussian process regression[M]. JMLR.org, 2005.
[6] 克里斯蒂亚尼尼. 支持向量机导论[M]. 电子工业出版社,2004.
[7] 毛健, 赵红东, 姚婧婧. 人工神经网络的发展及应用[J].电子设计工程, 2011, 19(24): 62-65.
[8] Hartigan J. A, Wong M. A. Algorithm as 136: a k-means clustering algorithm[J]. Journal of the Royal Statistical Society, 1979, 28(1): 100-108.
[9] 孙斌, 姚海涛, 刘婷. 基于高斯过程回归的短期风速预测[J]. 中国电机工程学报, 2012, 32(29): 104-109.
[10] Freund Yoav, Schapire Robert E. Experiments with a new boosting algorithm[J]. 1996, 13(1): 148-156.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!