侯朋飛,王金全,徐曄,李建科,嚴鋆
?。ń夥跑娎砉ご髮W(xué) 國防工程學(xué)院,江蘇 南京 210007)
摘要:儲能電池的荷電狀態(tài)是電池的重要特性,針對淺層學(xué)習算法的不足,提出了深度學(xué)習理論與量子遺傳相結(jié)合的算法以提高估算結(jié)果的正確性。該算法能夠自動從樣本中提取更加抽象、更具表達能力的特征,實現(xiàn)輸入和輸出數(shù)據(jù)之間的復(fù)雜非線性映射;量子遺傳算法自動尋優(yōu),得到每個RBM輸出估算值的權(quán)值。通過對電池SoC訓(xùn)練樣本和測試樣本的估算,與BP訓(xùn)練網(wǎng)絡(luò)估算結(jié)果對比,得出本文所提的DBNQGA算法網(wǎng)絡(luò)估計精度更高。
關(guān)鍵詞:深度學(xué)習;量子遺傳;電池;荷電狀態(tài);估算方法
中圖分類號:TP183文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.08.017
引用格式:侯朋飛,王金全,徐曄,等.基于深度學(xué)習和量子遺傳算法的電池SoC估算方法研究[J].微型機與應(yīng)用,2017,36(8):51-55.
0引言
儲能電池的工作狀態(tài)與電解液、電極、溫度和充放電電流大小有關(guān),是一個高度復(fù)雜的非線性系統(tǒng)。由于神經(jīng)網(wǎng)絡(luò)能夠利用樣本數(shù)據(jù)建立輸入輸出的關(guān)系,不需輸入輸出明確的關(guān)系式,具有較強的非線性映射能力,逐步被應(yīng)用于復(fù)雜函數(shù)的狀態(tài)估計。如支持向量機模型、最大熵模型、隱馬爾科夫模型,這些模型大多屬于淺層學(xué)習方法,其結(jié)構(gòu)可以認為是帶有一層隱層節(jié)點或無隱層節(jié)點,這種淺層學(xué)習結(jié)構(gòu)的局限性在于樣本和計算單元有限的情況下很難表征復(fù)雜函數(shù),面臨復(fù)雜問題時的泛化能力受到制約[15]。
目前,BP神經(jīng)網(wǎng)絡(luò)逐漸應(yīng)用于電池SoC估算,趙軒等人[6]利用BP網(wǎng)絡(luò)建立了蓄電池的SoC估算模型;尹安東等人[7]基于LM (LevenbergMarquardt)算法建立了磷酸鐵鋰電池的BP神經(jīng)網(wǎng)絡(luò)模型,并進行了電池 SoC值的預(yù)測;米林等人[8]利用徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)方法建立電動汽車動力電池SoC估計的模型;劉征宇等人[9]建立了基于量子微粒群算法(QPSO)的BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)模型用于預(yù)測鋰離子電池充放電過程中的任一狀態(tài)下的SoC。BP網(wǎng)絡(luò)模型雖被稱作多層感知機,但實際是只含有一層隱層節(jié)點的淺層模型,該算法包括一個輸入層、若干隱含層和一個輸出層,每層節(jié)點的輸出只影響下一層節(jié)點,同層節(jié)點之間不存在相互連接,層與層之間多采用互聯(lián)方式,但是該算法的網(wǎng)絡(luò)誤差函數(shù)或能量函數(shù)空間是含有多個極小點的非線性空間,算法搜索的方向是網(wǎng)絡(luò)誤差或能量減小的方向,因而經(jīng)常收斂到局部最小,且網(wǎng)絡(luò)層數(shù)越多,局部收斂性越嚴重。
深度學(xué)習(Deep Learning)是最近發(fā)展起來的一種模式識別技術(shù),它能夠自動從樣本中提取更加抽象、更具表達能力的特征,實現(xiàn)輸入和輸出數(shù)據(jù)之間的復(fù)雜非線性映射。與BP神經(jīng)網(wǎng)絡(luò)、支持向量機等傳統(tǒng)淺層學(xué)習方法相比,深度學(xué)習的特點體現(xiàn)在以下幾個方面:(1)注重模型深度,通常有3層以上結(jié)構(gòu);(2)明確突出了特征學(xué)習的重要性,通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,從而使分類或預(yù)測更加容易。目前,深度學(xué)習理論的實現(xiàn)方式有深度信念網(wǎng)絡(luò)(Deep Belief Networks, DBN)[10]、卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Networks, CNN)、去噪自動編碼器、深度波爾茲曼機(Deep Boltzmann Machine, DBM)等多種算法,主要應(yīng)用于語音及圖像識別、句法分析、文本蘊涵等,部分研究學(xué)者已將其引入到機械故障診斷領(lǐng)域中,但深度學(xué)習用于儲能系統(tǒng)SoC估算的研究還很少。
1DBN-QGA算法設(shè)計
目前基于深度學(xué)習理論的應(yīng)用系統(tǒng)中,DBN是應(yīng)用比較廣泛的一類學(xué)習結(jié)構(gòu),它主要由多層受限波爾茲曼機(Restricted Boltzmann Machine, RBM)和一層有監(jiān)督網(wǎng)絡(luò)層組成,DBN能夠從大量樣本中有效學(xué)習到輸入、輸出數(shù)據(jù)之間的非線性映射關(guān)系。然而,DBN作為一種深層神經(jīng)網(wǎng)絡(luò),輸出結(jié)果不可避免帶有一定的隨機性。本文為了提高DBN輸出結(jié)果的可靠性和穩(wěn)定性,利用量子遺傳算法(Quantum Genetic Algorithm, QGA)對多個DBN圖1DBNQGA算法的輸出結(jié)果自適應(yīng)加權(quán),提高儲能電池SoC的預(yù)測精度?;诖耍疚奶岢鯠BNQGA網(wǎng)絡(luò)模型,如圖1所示。
基于量子遺傳算法,使用加權(quán)平均技術(shù)計算每個DBN網(wǎng)絡(luò)的輸出數(shù)據(jù):
=∑N,k=1wkk,k=1,2,…N
∑Nk=1wk=1,wk≥0(1)
式中,N為DBN個數(shù);k為第k個DBN輸出結(jié)果;wk為賦予第k個DBN的權(quán)值。
圖1所示的算法中,輸入數(shù)據(jù)是電池的電壓和電流,經(jīng)過N個DNB后,得到N個SoC估算值,根據(jù)量子遺傳算法可得到N個加權(quán)值w,最后輸出加權(quán)計算后的SoC。
2DBN網(wǎng)絡(luò)結(jié)構(gòu)
DBN由多個隱含層和一層BP網(wǎng)絡(luò)組成,相鄰的兩隱含層構(gòu)成一個RBM,其結(jié)構(gòu)如圖2所示。圖中,v和h圖2DBN網(wǎng)絡(luò)結(jié)構(gòu)圖 分別表示可視層和隱含層內(nèi)的節(jié)點值,w表示兩層之間的權(quán)值。
DBN的訓(xùn)練過程為:首先,采用貪婪算法對RBM進行逐層無監(jiān)督預(yù)訓(xùn)練,獲得網(wǎng)絡(luò)參數(shù)的初始值;然后,采用BP算法對整個網(wǎng)絡(luò)參數(shù)進行微調(diào)。
DBN的訓(xùn)練過程如圖3所示,整個訓(xùn)練過程分為以下幾個步驟:
?。?)設(shè)定網(wǎng)絡(luò)層數(shù)、隱含層單元數(shù)等參數(shù),隨機初始化整個DBN的網(wǎng)絡(luò)參數(shù)。
(2)將訓(xùn)練樣本輸入到第1個RBM,采用CD算法對RBM進行訓(xùn)練,保存網(wǎng)絡(luò)參數(shù)。
(3)將下一層RBM的隱含層輸出作為輸入數(shù)據(jù)訓(xùn)練下一個RBM,直到所有的RBM訓(xùn)練完畢。通過無監(jiān)督的預(yù)訓(xùn)練,可獲得整個DBN的網(wǎng)絡(luò)參數(shù)。
?。?)利用最后一層的BP網(wǎng)絡(luò)進行有監(jiān)督的訓(xùn)練,并反向調(diào)整各層RBM,獲得調(diào)整后的DBN網(wǎng)絡(luò)參數(shù)。
從圖3中可以看出,在DBN網(wǎng)絡(luò)的訓(xùn)練過程中,RBM的訓(xùn)練是核心,通過RBM的逐層訓(xùn)練,實現(xiàn)DBN網(wǎng)絡(luò)參數(shù)的初始化,這些網(wǎng)絡(luò)參數(shù)雖然不是最優(yōu)參數(shù),但是它們往往落在最優(yōu)值附近,可有效避免BP算法在訓(xùn)練分類器時由于隨機初始化網(wǎng)絡(luò)參數(shù)而導(dǎo)致陷入局部最優(yōu)、訓(xùn)練時間過長等缺陷。
3RBM自訓(xùn)練
RBM是由Smolensky于1986年提出的一種基于能量模型的隨機神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)如圖4所示。RBM含有1個可視層和1個隱含層,其中,可視層和隱含層之間對稱雙向連接,而同一層內(nèi)單元之間沒有連接,隱單元可獲取輸入可視單元的高階相關(guān)性,且所有單元的狀態(tài)都是二元變圖4RBM結(jié)構(gòu)圖量,只能取0或1。
對于RBM,它的可視層v和隱含層h處于某個狀態(tài)的概率由如下能量函數(shù)決定:
E(v,h)=-∑iaivi-∑jbjhj-∑i,jvihjwij(2)
式中,vi和hi分別為可視單元i和隱含單元j,wij為可視單元vi和隱含單元hj之間的連接權(quán)值,aj和bj為相應(yīng)的偏置。
基于能量函數(shù)的可視層v和隱含層h的聯(lián)合概率分布p(v,h)可表示為:
式中,Z=∑v,hexp(-E(v,h))為歸一化因子。
因此,RBM分配給可視層v的概率ρ(v)為:
在RBM中,由于同一層內(nèi)單元之間沒有連接,因此,隱含單元hj的條件概率分布為:
同理,可視單元vi的條件概率分布為:
ρ(vj=1|h)=σ(ai+∑jhiwij)(6)
式中,σ(x)=1/(1+exp(-x))為Sigmoid函數(shù)。
RBM的訓(xùn)練目標是獲取生成性權(quán)值,w表示可視層和隱含層之間的權(quán)值。RBM通常采用Hinton提出的CD算法進行訓(xùn)練來獲得網(wǎng)絡(luò)參數(shù)θ={wij,ai,bj},具體過程如圖5所示,具體步驟如下:
?。?)設(shè)定訓(xùn)練次數(shù)、樣本子集個數(shù)等參數(shù),隨機初始化RBM的網(wǎng)絡(luò)參數(shù);
?。?)對第i個樣本子集訓(xùn)練多個回合,每次訓(xùn)練完成后,更新網(wǎng)絡(luò)參數(shù),直到達到最大訓(xùn)練次數(shù);
(3)按照步驟(2)的方法訓(xùn)練下一個樣本子集,直到所有的樣本子集訓(xùn)練完畢,保存RBM的網(wǎng)絡(luò)參數(shù),結(jié)束訓(xùn)練。
4DBN-QGA算法估算SoC
根據(jù)DBN-QGA算法流程,在MATLAB軟件中進行編程,將實驗獲取的電池電壓、電流數(shù)據(jù)導(dǎo)入程序中,選擇相應(yīng)的訓(xùn)練樣本和測試樣本對算法進行預(yù)訓(xùn)練。
依托MATLAB M文件平臺,依次對RBM訓(xùn)練過程、DBN訓(xùn)練過程、QGA尋優(yōu)算法編寫程序,具體步驟如下:
?。?)網(wǎng)絡(luò)結(jié)構(gòu)確定
DBN網(wǎng)絡(luò)的隱含層數(shù)越多,則輸出結(jié)果越詳細,但訓(xùn)練時間越長,本文設(shè)定DBN網(wǎng)絡(luò)的隱含層數(shù)為4,即網(wǎng)絡(luò)結(jié)構(gòu)含有4個RBM,設(shè)定訓(xùn)練次數(shù)為50、樣本子集個數(shù)為20。
?。?)訓(xùn)練樣本采集
訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的準備是獲取深度學(xué)習網(wǎng)絡(luò)模型的關(guān)鍵,合理的訓(xùn)練樣本能夠保證網(wǎng)絡(luò)模型的精度,通常要求訓(xùn)練樣本覆蓋整個工作范圍,并要求具有相當?shù)臉颖緮?shù)。樣本集準備包括輸入樣本和輸出樣本的獲取,輸入樣本主要是電池端電壓和放電電流,輸出為電池靜態(tài)荷電狀態(tài)。根據(jù)測試的電池數(shù)據(jù),以磷酸鐵鋰電池實驗數(shù)據(jù)為例,選擇7.5 A、12.5 A、20 A、25 A、37.5 A、62.5 A、75 A、100 A、125 A共9種電流下充放電數(shù)據(jù)作為網(wǎng)絡(luò)訓(xùn)練樣本,選取充放電電流為50 A的實驗數(shù)據(jù)作為測試樣本。某一電流下的實驗數(shù)據(jù)對應(yīng)單次樣本,9種電流對應(yīng)的單次樣本組成樣本集。
?。?)樣本數(shù)據(jù)歸一化
樣本中含有電壓、電流兩種變量,其量綱不同,為了消除各變量的數(shù)量級差別,避免因為輸入輸出數(shù)據(jù)數(shù)量級差別較大而造成網(wǎng)絡(luò)預(yù)測誤差較大,對樣本進行歸一化處理。本文采用最大最小法對電壓、電流變量進行歸一化處理,而靜態(tài)SoC的范圍為0~1,無需進行數(shù)據(jù)處理。
j=uj-uminumax-umin
i^j=ij-iminimax-imin(7)
其中:umax、umin、imax、imin分別為單次樣本電壓電流的最大、最小值。
5算法驗證
選取磷酸鐵鋰電池充放電電流為20 A時的訓(xùn)練樣本和50 A時的測試樣本分別進行驗證。
?。?)對訓(xùn)練樣本進行驗證
訓(xùn)練樣本集中包含充放電電流為20 A的實驗數(shù)據(jù),為了評價網(wǎng)絡(luò)對訓(xùn)練過的樣本進行預(yù)測的效果,仍選擇20 A的充放電數(shù)據(jù)為測試樣本,充電數(shù)據(jù)和放電數(shù)據(jù)為測試輸入樣本,充放電靜態(tài)SoC值為測試結(jié)果,驗證結(jié)果如圖6所示。
為驗證本文所提算法的精確性,與常用的BP訓(xùn)練網(wǎng)絡(luò)進行對比。BP網(wǎng)絡(luò)對訓(xùn)練樣本的驗證結(jié)果如圖7所示。
由圖6和圖7可知,DBNQGA算法網(wǎng)絡(luò)對訓(xùn)練過的樣本進行估算輸出時,基本與目標輸出吻合,充電最大誤差為1.4%,放電最大誤差為1.3%,而BP網(wǎng)絡(luò)訓(xùn)練結(jié)果的誤差較為明顯,充電最大誤差為11.2%,放電最大誤差為9.83%,因此,本文所提的算法網(wǎng)絡(luò)能夠較好地對學(xué)習過的數(shù)據(jù)進行估算。
值得注意的是,由于神經(jīng)網(wǎng)絡(luò)初始值的不確定性,每次對網(wǎng)絡(luò)驗證的結(jié)果均不同,但差別不大,樣本估算值不是固定的,上述誤差分析時,對BP訓(xùn)練網(wǎng)絡(luò)只選取了一次的驗證結(jié)果。
?。?)對測試樣本進行驗證
算法網(wǎng)絡(luò)的訓(xùn)練樣本集中不含充放電電流為50 A時的單次樣本,選擇該單次樣本的電壓數(shù)據(jù)和電流數(shù)據(jù)作為測試輸入樣本,對應(yīng)的靜態(tài)SoC為實驗值,驗證結(jié)果如圖8所示。
同樣與常用的BP訓(xùn)練網(wǎng)絡(luò)進行對比。BP網(wǎng)絡(luò)對測試樣本的驗證結(jié)果如圖9所示。
由圖8和圖9可知,DBN-QGA算法網(wǎng)絡(luò)對未經(jīng)過訓(xùn)練的樣本進行估算輸出時,與目標輸出比較吻合,充電最大誤差為1.2%,放電最大誤差為1%;而BP網(wǎng)絡(luò)訓(xùn)練結(jié)果的誤差較大,充電最大誤差為8.3%,放電最大誤差為6.4%。顯然,本文構(gòu)建的訓(xùn)練網(wǎng)絡(luò)能夠很好地對未經(jīng)過訓(xùn)練的數(shù)據(jù)進行估算,網(wǎng)絡(luò)具有較好的泛化性能。
6結(jié)論
儲能電池的荷電狀態(tài)估算是實際應(yīng)用中的重要參數(shù),本文結(jié)合深度學(xué)習與量子遺傳算法,構(gòu)建了DBNQGA算法網(wǎng)絡(luò),闡述了算法的設(shè)計過程,分別建立了DBN網(wǎng)絡(luò)結(jié)構(gòu)、RBM自訓(xùn)練過程、量子遺傳算法,所提出的算法可以自動從樣本中提取更加抽象、更具表達能力的特性。通過對訓(xùn)練樣本和測試樣本的估算,對比BP訓(xùn)練網(wǎng)絡(luò)估算結(jié)果,本文所提的DBNQGA算法提高了估算結(jié)果的正確性與準確性,改善了淺層學(xué)習算法的不足。
參考文獻
?。?] 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.
?。?] 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.
?。?] 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.
?。?] 尹虹毅. 基于深度學(xué)習的精神分裂癥腦電分析 [J]. 微型機與應(yīng)用, 2016, 35(6): 54-57.
[5] 吳洲, 曹偉. 自適應(yīng)算法在網(wǎng)絡(luò)學(xué)習系統(tǒng)的應(yīng)用研究[J]. 微型機與應(yīng)用, 2015, 34(24): 28-31.
?。?] 趙軒, 康留旺, 汪貴平, 等. 基于BP神經(jīng)網(wǎng)絡(luò)的SOC估計及鉛酸蓄電池特性[J]. 電源技術(shù), 2014, 38(5): 874-878.
?。?] 尹安東, 張萬興, 韓趙, 等. 基于神經(jīng)網(wǎng)絡(luò)的磷酸鐵鋰電池SOC預(yù)測研究[J]. 電子測量與儀器學(xué)報, 2011, 25(5): 433-437.
?。?] 林米, 趙孟娜, 秦甲磊, 等. 基于徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)的電動汽車動力電池SOC模型[J]. 重慶理工大學(xué)學(xué)報( 自然科學(xué)), 2011, 25(10): 1-5.
?。?] 劉征宇, 楊俊斌, 張慶, 等. 基于QPSO_BP神經(jīng)網(wǎng)絡(luò)的鋰電池SOC預(yù)測[J]. 電子測量與儀器學(xué)報,2013, 27(3): 224-229.
?。?0] 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.