侯朋飞,王金全,徐晔,李建科,严鋆
(解放军理工大学 国防工程学院,江苏 南京 210007)
摘要:储能电池的荷电状态是电池的重要特性,针对浅层学习算法的不足,提出了深度学习理论与量子遗传相结合的算法以提高估算结果的正确性。该算法能够自动从样本中提取更加抽象、更具表达能力的特征,实现输入和输出数据之间的复杂非线性映射;量子遗传算法自动寻优,得到每个RBM输出估算值的权值。通过对电池SoC训练样本和测试样本的估算,与BP训练网络估算结果对比,得出本文所提的DBNQGA算法网络估计精度更高。
关键词:深度学习;量子遗传;电池;荷电状态;估算方法
中图分类号:TP183文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.08.017
引用格式:侯朋飞,王金全,徐晔,等.基于深度学习和量子遗传算法的电池SoC估算方法研究[J].微型机与应用,2017,36(8):51-55.
0引言
储能电池的工作状态与电解液、电极、温度和充放电电流大小有关,是一个高度复杂的非线性系统。由于神经网络能够利用样本数据建立输入输出的关系,不需输入输出明确的关系式,具有较强的非线性映射能力,逐步被应用于复杂函数的状态估计。如支持向量机模型、最大熵模型、隐马尔科夫模型,这些模型大多属于浅层学习方法,其结构可以认为是带有一层隐层节点或无隐层节点,这种浅层学习结构的局限性在于样本和计算单元有限的情况下很难表征复杂函数,面临复杂问题时的泛化能力受到制约[15]。
目前,BP神经网络逐渐应用于电池SoC估算,赵轩等人[6]利用BP网络建立了蓄电池的SoC估算模型;尹安东等人[7]基于LM (LevenbergMarquardt)算法建立了磷酸铁锂电池的BP神经网络模型,并进行了电池 SoC值的预测;米林等人[8]利用径向基函数神经网络方法建立电动汽车动力电池SoC估计的模型;刘征宇等人[9]建立了基于量子微粒群算法(QPSO)的BP(Back Propagation)神经网络模型用于预测锂离子电池充放电过程中的任一状态下的SoC。BP网络模型虽被称作多层感知机,但实际是只含有一层隐层节点的浅层模型,该算法包括一个输入层、若干隐含层和一个输出层,每层节点的输出只影响下一层节点,同层节点之间不存在相互连接,层与层之间多采用互联方式,但是该算法的网络误差函数或能量函数空间是含有多个极小点的非线性空间,算法搜索的方向是网络误差或能量减小的方向,因而经常收敛到局部最小,且网络层数越多,局部收敛性越严重。
深度学习(Deep Learning)是最近发展起来的一种模式识别技术,它能够自动从样本中提取更加抽象、更具表达能力的特征,实现输入和输出数据之间的复杂非线性映射。与BP神经网络、支持向量机等传统浅层学习方法相比,深度学习的特点体现在以下几个方面:(1)注重模型深度,通常有3层以上结构;(2)明确突出了特征学习的重要性,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。目前,深度学习理论的实现方式有深度信念网络(Deep Belief Networks, DBN)[10]、卷积神经网络(Convolution Neural Networks, CNN)、去噪自动编码器、深度波尔兹曼机(Deep Boltzmann Machine, DBM)等多种算法,主要应用于语音及图像识别、句法分析、文本蕴涵等,部分研究学者已将其引入到机械故障诊断领域中,但深度学习用于储能系统SoC估算的研究还很少。
1DBN-QGA算法设计
目前基于深度学习理论的应用系统中,DBN是应用比较广泛的一类学习结构,它主要由多层受限波尔兹曼机(Restricted Boltzmann Machine, RBM)和一层有监督网络层组成,DBN能够从大量样本中有效学习到输入、输出数据之间的非线性映射关系。然而,DBN作为一种深层神经网络,输出结果不可避免带有一定的随机性。本文为了提高DBN输出结果的可靠性和稳定性,利用量子遗传算法(Quantum Genetic Algorithm, QGA)对多个DBN图1DBNQGA算法的输出结果自适应加权,提高储能电池SoC的预测精度。基于此,本文提出DBNQGA网络模型,如图1所示。
基于量子遗传算法,使用加权平均技术计算每个DBN网络的输出数据:
=∑N,k=1wkk,k=1,2,…N
∑Nk=1wk=1,wk≥0(1)
式中,N为DBN个数;k为第k个DBN输出结果;wk为赋予第k个DBN的权值。
图1所示的算法中,输入数据是电池的电压和电流,经过N个DNB后,得到N个SoC估算值,根据量子遗传算法可得到N个加权值w,最后输出加权计算后的SoC。
2DBN网络结构
DBN由多个隐含层和一层BP网络组成,相邻的两隐含层构成一个RBM,其结构如图2所示。图中,v和h图2DBN网络结构图 分别表示可视层和隐含层内的节点值,w表示两层之间的权值。
DBN的训练过程为:首先,采用贪婪算法对RBM进行逐层无监督预训练,获得网络参数的初始值;然后,采用BP算法对整个网络参数进行微调。
DBN的训练过程如图3所示,整个训练过程分为以下几个步骤:
(1)设定网络层数、隐含层单元数等参数,随机初始化整个DBN的网络参数。
(2)将训练样本输入到第1个RBM,采用CD算法对RBM进行训练,保存网络参数。
(3)将下一层RBM的隐含层输出作为输入数据训练下一个RBM,直到所有的RBM训练完毕。通过无监督的预训练,可获得整个DBN的网络参数。
(4)利用最后一层的BP网络进行有监督的训练,并反向调整各层RBM,获得调整后的DBN网络参数。
从图3中可以看出,在DBN网络的训练过程中,RBM的训练是核心,通过RBM的逐层训练,实现DBN网络参数的初始化,这些网络参数虽然不是最优参数,但是它们往往落在最优值附近,可有效避免BP算法在训练分类器时由于随机初始化网络参数而导致陷入局部最优、训练时间过长等缺陷。
3RBM自训练
RBM是由Smolensky于1986年提出的一种基于能量模型的随机神经网络,其结构如图4所示。RBM含有1个可视层和1个隐含层,其中,可视层和隐含层之间对称双向连接,而同一层内单元之间没有连接,隐单元可获取输入可视单元的高阶相关性,且所有单元的状态都是二元变图4RBM结构图量,只能取0或1。
对于RBM,它的可视层v和隐含层h处于某个状态的概率由如下能量函数决定:
E(v,h)=-∑iaivi-∑jbjhj-∑i,jvihjwij(2)
式中,vi和hi分别为可视单元i和隐含单元j,wij为可视单元vi和隐含单元hj之间的连接权值,aj和bj为相应的偏置。
基于能量函数的可视层v和隐含层h的联合概率分布p(v,h)可表示为:
式中,Z=∑v,hexp(-E(v,h))为归一化因子。
因此,RBM分配给可视层v的概率ρ(v)为:
在RBM中,由于同一层内单元之间没有连接,因此,隐含单元hj的条件概率分布为:
同理,可视单元vi的条件概率分布为:
ρ(vj=1|h)=σ(ai+∑jhiwij)(6)
式中,σ(x)=1/(1+exp(-x))为Sigmoid函数。
RBM的训练目标是获取生成性权值,w表示可视层和隐含层之间的权值。RBM通常采用Hinton提出的CD算法进行训练来获得网络参数θ={wij,ai,bj},具体过程如图5所示,具体步骤如下:
(1)设定训练次数、样本子集个数等参数,随机初始化RBM的网络参数;
(2)对第i个样本子集训练多个回合,每次训练完成后,更新网络参数,直到达到最大训练次数;
(3)按照步骤(2)的方法训练下一个样本子集,直到所有的样本子集训练完毕,保存RBM的网络参数,结束训练。
4DBN-QGA算法估算SoC
根据DBN-QGA算法流程,在MATLAB软件中进行编程,将实验获取的电池电压、电流数据导入程序中,选择相应的训练样本和测试样本对算法进行预训练。
依托MATLAB M文件平台,依次对RBM训练过程、DBN训练过程、QGA寻优算法编写程序,具体步骤如下:
(1)网络结构确定
DBN网络的隐含层数越多,则输出结果越详细,但训练时间越长,本文设定DBN网络的隐含层数为4,即网络结构含有4个RBM,设定训练次数为50、样本子集个数为20。
(2)训练样本采集
训练数据和测试数据的准备是获取深度学习网络模型的关键,合理的训练样本能够保证网络模型的精度,通常要求训练样本覆盖整个工作范围,并要求具有相当的样本数。样本集准备包括输入样本和输出样本的获取,输入样本主要是电池端电压和放电电流,输出为电池静态荷电状态。根据测试的电池数据,以磷酸铁锂电池实验数据为例,选择7.5 A、12.5 A、20 A、25 A、37.5 A、62.5 A、75 A、100 A、125 A共9种电流下充放电数据作为网络训练样本,选取充放电电流为50 A的实验数据作为测试样本。某一电流下的实验数据对应单次样本,9种电流对应的单次样本组成样本集。
(3)样本数据归一化
样本中含有电压、电流两种变量,其量纲不同,为了消除各变量的数量级差别,避免因为输入输出数据数量级差别较大而造成网络预测误差较大,对样本进行归一化处理。本文采用最大最小法对电压、电流变量进行归一化处理,而静态SoC的范围为0~1,无需进行数据处理。
j=uj-uminumax-umin
i^j=ij-iminimax-imin(7)
其中:umax、umin、imax、imin分别为单次样本电压电流的最大、最小值。
5算法验证
选取磷酸铁锂电池充放电电流为20 A时的训练样本和50 A时的测试样本分别进行验证。
(1)对训练样本进行验证
训练样本集中包含充放电电流为20 A的实验数据,为了评价网络对训练过的样本进行预测的效果,仍选择20 A的充放电数据为测试样本,充电数据和放电数据为测试输入样本,充放电静态SoC值为测试结果,验证结果如图6所示。
为验证本文所提算法的精确性,与常用的BP训练网络进行对比。BP网络对训练样本的验证结果如图7所示。
由图6和图7可知,DBNQGA算法网络对训练过的样本进行估算输出时,基本与目标输出吻合,充电最大误差为1.4%,放电最大误差为1.3%,而BP网络训练结果的误差较为明显,充电最大误差为11.2%,放电最大误差为9.83%,因此,本文所提的算法网络能够较好地对学习过的数据进行估算。
值得注意的是,由于神经网络初始值的不确定性,每次对网络验证的结果均不同,但差别不大,样本估算值不是固定的,上述误差分析时,对BP训练网络只选取了一次的验证结果。
(2)对测试样本进行验证
算法网络的训练样本集中不含充放电电流为50 A时的单次样本,选择该单次样本的电压数据和电流数据作为测试输入样本,对应的静态SoC为实验值,验证结果如图8所示。
同样与常用的BP训练网络进行对比。BP网络对测试样本的验证结果如图9所示。
由图8和图9可知,DBN-QGA算法网络对未经过训练的样本进行估算输出时,与目标输出比较吻合,充电最大误差为1.2%,放电最大误差为1%;而BP网络训练结果的误差较大,充电最大误差为8.3%,放电最大误差为6.4%。显然,本文构建的训练网络能够很好地对未经过训练的数据进行估算,网络具有较好的泛化性能。
6结论
储能电池的荷电状态估算是实际应用中的重要参数,本文结合深度学习与量子遗传算法,构建了DBNQGA算法网络,阐述了算法的设计过程,分别建立了DBN网络结构、RBM自训练过程、量子遗传算法,所提出的算法可以自动从样本中提取更加抽象、更具表达能力的特性。通过对训练样本和测试样本的估算,对比BP训练网络估算结果,本文所提的DBNQGA算法提高了估算结果的正确性与准确性,改善了浅层学习算法的不足。
参考文献
[1] He Hongwei, Xiong Rui, Fan Jinxin. Evaluation of lithiumion battery equivalent circuit models for state of charge estimation by an experimental approach[J]. Energies, 2011, 4(4): 582-598.
[2] CHARKHGARD M, FARROKHI M. Stateofcharge estimation for lithiumion batteries using neural networks and EKF[J]. IEEE Transactions on Industrial Electronics, 2010, 57(12): 4178-4187.
[3] SANTHANAGOPALAN S, WHITE R E. State of charge estimation using an unscented filter for high power lithiumion cells[J]. International Journal of Energy Research, 2010, 34(2): 152-163.
[4] 尹虹毅. 基于深度学习的精神分裂症脑电分析 [J]. 微型机与应用, 2016, 35(6): 54-57.
[5] 吴洲, 曹伟. 自适应算法在网络学习系统的应用研究[J]. 微型机与应用, 2015, 34(24): 28-31.
[6] 赵轩, 康留旺, 汪贵平, 等. 基于BP神经网络的SOC估计及铅酸蓄电池特性[J]. 电源技术, 2014, 38(5): 874-878.
[7] 尹安东, 张万兴, 韩赵, 等. 基于神经网络的磷酸铁锂电池SOC预测研究[J]. 电子测量与仪器学报, 2011, 25(5): 433-437.
[8] 林米, 赵孟娜, 秦甲磊, 等. 基于径向基函数神经网络的电动汽车动力电池SOC模型[J]. 重庆理工大学学报( 自然科学), 2011, 25(10): 1-5.
[9] 刘征宇, 杨俊斌, 张庆, 等. 基于QPSO_BP神经网络的锂电池SOC预测[J]. 电子测量与仪器学报,2013, 27(3): 224-229.
[10] Fu Zhumu, Zhao Rui. SOC estimation of lithiumion power battery for HEV based on advanced wavelet neural network[J]. Journal of Southeast University (English Edition), 2012, 28(3): 299-304.