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