蔣麗麗,陳國彬
(重慶工商大學融智學院, 重慶 401320)
電池荷電狀態(state of charge,SOC)指電池在一定放電倍率下,剩余電量與相同條件下額定容量的比值[1],100%表示全電池狀態,0%表示空電池狀態,是電池使用過程中的重要參數。SOC值可以讓用戶了解電池在需要充電之前還能繼續工作的時間。近年來,電動汽車技術發展迅速,電池管理系統(battery management system,BMS)的一項重要研究內容是保證電池組的荷電狀態(state of charge,SOC)在合理的范圍內,防止過充電或過放電對電池造成損傷。因而,SOC的準確計算是BMS系統重要研究內容之一[2-3]。
SOC計算受電池工作狀態、環境溫度大小、電流大小等因素影響,并且隨著充放電循環次數的增加,電池會發生不可逆的老化現象,因此SOC精確計算是一項困難任務[4]。設計精確的SOC指示系統的主要問題是電池和用戶行為的不可預測性。SOC常見的計算方法有狀態估計法,包括計量估計法、開路電壓法、內阻法、卡爾曼濾波等[5-7]。這些方法已被廣泛使用并在不同應用中獲得了可接受的效果。然而,這些方法的缺點是由于計算復雜而需要更高的實現成本,且SOC的計算精度仍有待改善。
極限學習機(extreme learning machine,ELM)是一種新的前饋神經網絡。與傳統的單隱層前饋神經網絡(FNN)相比,ELM由于具有分類精度高、泛化能力強、可調參數少等顯著優點而得到較大發展[8-9]。ELM具有非線性的基本特性,對于外部激勵能給出相應輸出,針對電池高度非線性系統[10],ELM能夠建立準確的充放電模型。為了提升SOC預測精度,采用具有全局優化性能的飛蛾火焰優化算法(moth-flame optimization,MFO)[11-12]優化ELM模型參數。通過對電池電壓、電流和溫度數據進行訓練學習,得到最優的MFO-ELM模型。最后,對某型號電池進行仿真實驗,SOC預測結果表明了MFO-ELM算法的有效性。
受自然界飛蛾導航啟發,Mirjalili S在2015年提出飛蛾火焰算法(MFO)[11]。MFO以飛蛾行為為基礎,通過一種特殊的稱作橫向定向導航的機制實現了勘探與開發的較好平衡,以獲得全局優化性能。
在MFO算法中,飛蛾個體為優化問題的候選解,假設有n個飛蛾X=[x1,x2,…,xn]T,i=1,2,…,n,第i個飛蛾定義為xi=[xi,1,xi,2,…,xi,d]T,其中d為優化問題維數。火焰為當前迭代所獲得的最佳位置,第i個火焰定義為fi=[fi,1,fi,2,…,fi,d]T。MFO算法捕焰行為和棄焰行為描述如下:
1) 捕焰行為。自然界中具有趨光特性的飛蛾Mi會朝著距離自身最近的亮光(火焰)Fj移動,其對數螺線捕焰軌跡數學模型為
S(Mi,Fj)=Di·ebt·cos(2πt)+Fj
(1)
式中:S(Mi,Fj)為更新后的飛蛾位置;b為與螺線形狀相關的常量;t為[-1,1]區間的隨機數;Di=|Fj-Mi|為飛蛾Mi到火焰Fj的距離。人工模擬的飛蛾捕焰軌跡如圖1所示。

圖1 飛蛾捕焰運動軌跡
圖1描述了飛蛾Mi沿著螺線運動到火焰Fj以搜索全局最優解。MFO整個螺旋搜索過程以飛蛾的初始位置為起點,最優解位置為終點。
2) 棄焰行為:火焰數量通過棄焰操作逐漸減小,棄焰操作描述為
(2)
式中:t和T分別為當前和最大迭代次數;N為最大火焰數量。
極限學習機(extreme learning machine,ELM)是由黃廣斌提出的求解單隱層神經網絡的算法。ELM最大的特點是對于傳統的神經網絡,尤其是單隱層前饋神經網絡(SLFNs),在保證學習精度的前提下比傳統的學習算法速度更快。
ELM是一種新型的快速學習算法,對于單隱層神經網絡,ELM 可以隨機初始化輸入權重和偏置并得到相應的輸出權重。設n、L、m分別為網絡輸入層、隱層和輸出層的節點數,其基本結構如圖2所示。

圖2 ELM基本結構
圖2中:輸入層n個節點表示樣本維度;Xj表示第j個樣本;隱含層有L個節點,L越大,表達能力越強,節點i與輸入層連接權值為ai,與輸出層連接權值為βi;輸出層oj表示樣本j的輸出。假設有任意的樣本(Xj,Tj),其中輸入樣本為Xj=[xj1,xj2,…,xjn]T∈Rn,輸出向量為Tj=[t1,t2,…,tm]T∈Rm,則單隱層神經網絡可表示為
(3)
式中:g(X)為隱層神經元的激活函數;ai=[ai,1,ai,2,…,ai,n]T為輸入權重;βi為輸出權重;bi是第i個隱層單元的偏置。
ELM學習的目標是使輸出的誤差最小:
(4)
式中:S=(ωi,bi,i=1,2,…,M),包含了網絡輸入權值及隱層節點閾值;β為輸出權值矩陣。
ELM的訓練目標是尋求最優的S,β。min(E(S,β))可進一步描述為
minE=min||H(ω,b,X)β-T||
(5)
其中:H是隱層節點的輸出;β為輸出權重;T為期望輸出。
H(a1,…,aL,b1,…,bL,X1,…,XL)=
(6)
(7)
(8)
這等價于最小化損失函數
(9)
傳統的基于梯度下降法的算法在迭代過程中將調整所有參數,而在ELM算法中,一旦輸入權重ai和隱層的偏置bi被隨機確定,隱層的輸出矩陣H就被唯一確定。訓練單隱層神經網絡可以轉化為求解一個線性系統Hβ=T,且輸出權重可以被確定:

(10)

為了提升ELM預測精度和泛化能力,采用具有全局優化能力的MFO算法進行模型參數的優化選擇,并得到最優的SOC模型,即MFO-ELM模型。模型參數調整示意圖如圖3所示,其核心思想是將SOC樣本數據作為ELM的輸入,得到網絡的一組輸出,將輸出值與實驗值作對比,得到預測誤差。MFO算法根據預測誤差調整整個網絡的模型參數,直到誤差降到允許誤差為止,并得到最終的SOC預測模型。

圖3 ELM模型參數調整示意圖
MFO算法優化調整ELM模型參數的適應度函數J定義如下:
(11)
鉛蓄電池工作過程中,SOC隨著電池電壓、電流、溫度、極化電阻的變化呈現復雜非線性關系,因而,選擇輸入變量為電池電壓、電流、溫度和極化電阻,輸出變量為SOC值。通過對MFO-ELM進行訓練,得到最優的MFO-ELM模型對未來SOC樣本進行預測,SOC具體實現步驟如下:
1) 對采樣數據進行相關性分析和預處理,構成訓練集和測試集。
2) 確定ELM的SOC模型所需的運行參數,確定MFO算法各項參數,建立ELM預測模型。
3) 用訓練集對ELM網絡進行訓練,MFO算法不斷調整網絡參數,到達終止條件時為止,獲得MFO-ELM的SOC預測模型。
4) 將測試集送入到訓練好的MFO-ELM模型進行泛化能力測試。將得到的預測值與真實值進行對比,計算誤差。若誤差較大,表明模型泛化能力不足,則需重新采集大量數據進行SOC預測模型的訓練。
鉛蓄電池常見的充放電倍率為0.1~1 C,通過蓄電池測試分析儀對某型號的鉛蓄電池按照0.1、0.2、0.33、0.75 C的充放電倍率進行測試,測試結果如表1所示。表1中前25組數據用來訓練模型,后5組用來驗證模型。

表1 SOC預測樣本
取25組放電倍率為0.1、0.2、0.33、0.75 C的數據作為訓練樣本,用MOF優化的ELM模型對訓練樣本進行訓練。針對訓練樣本,SOC預測結果及SOC預測相對誤差如圖4、5所示。從圖4可以看出,針對訓練樣本,MFO-ELM預測結果幾乎與SOC真實值完成重合。圖5顯示MFO-ELM預測相對誤差較小,最大相對誤差為2%,滿足工程需求。

圖4 MFO-ELM模型的SOC預測結果
為了驗證模型的泛化性能,采用后5組測試樣本進行仿真實驗。圖6、7為MFO-ELM與ELM模型預測結果及預測相對誤差。

圖5 MFO-ELM模型的SOC預測誤差

圖6 SOC預測結果

圖7 SOC預測誤差
由圖6可以看出,MFO-ELM模型與ELM模型的SOC預測趨勢一致,但采用MFO算法優化的ELM模型預測結果與真實值明顯更加吻合,尤其是針對樣本2、4、5,MFO-ELM模型比ELM模型預測效果更好,總體上,MFO-ELM模型的預測精度更好。從圖6預測相對誤差曲線可以看出:MFO-ELM模型的預測相對誤差低于5%,而未經優化的標準ELM模型預測相對誤差超過15%;同時,MFO-ELM模型的預測誤差曲線相對較小且平緩,表明MFO-ELM泛化能力更強。總之,MFO算法能夠改善ELM模型的預測精度,MFO-ELM模型的SOC預測相對誤差低于5%,滿足實際需求,仿真實驗驗證了MFO-ELM模型的有效性。
電池準確的SOC值對于方便用戶和延長電池壽命非常重要。針對SOC值難以精準預測的不足,利用ELM非線性處理特性,從電池充電、放電測試周期中提取模型參數,通過電壓、電流、溫度和極化內阻數據作為輸入變量,建立了SOC預測模型,避免電池內部復雜的非線性關系和數學解析過程。在ELM模型訓練過程中,采用MFO算法優化選擇ELM模型參數以提升SOC預測模型的泛化能力。基于ELM的SOC預測模型可以在基于低成本微控制器的BMS系統上運行,以實現SOC預測功能。最后通過仿真實驗測試MFO-ELM模型的預測性能,模型預測誤差控制在5%以內,滿足工程需求,可為電池的狀態監測、維護、安全可靠運行提供準確的SOC值。