郭 玄,朱 凱
(江蘇理工學(xué)院汽車與交通工程學(xué)院,江蘇 常州 213001)
電池健康狀態(tài)(State of Health,簡稱SOH)表征了電池的容量衰減程度和當(dāng)前可用容量,對SOH的估計不準(zhǔn)確將直接影響電池荷電狀態(tài)(State of Charge,簡稱SOC)估算,導(dǎo)致用戶對電池狀態(tài)的錯誤判斷。國內(nèi)外對SOH有多種定義,主要有:容量、電量、內(nèi)阻、循環(huán)次數(shù)和峰值功率等。電池健康狀態(tài)從電池使用、維護(hù)以及經(jīng)濟(jì)性表明了在工業(yè)應(yīng)用方面的重要意義,因此研究SOH有利于掌握電池老化因素幫助判斷電池的內(nèi)在隱患和壽命情況。預(yù)測SOH的主流方法是數(shù)據(jù)驅(qū)動方法,其不像物理模型方法具備一定物理知識研究,僅需大量數(shù)據(jù),通過學(xué)習(xí)數(shù)據(jù)內(nèi)在規(guī)律即可描述電池內(nèi)部的反應(yīng)[1-3]。然而數(shù)據(jù)驅(qū)動方法存在模型單一或者其模型參數(shù)調(diào)整難等問題,學(xué)者采用優(yōu)化算法彌補(bǔ)其預(yù)測模型的缺陷。目前,針對優(yōu)化鋰電池SOH預(yù)測方法的智能算法主要有人工蜂群算法[4]、螢火蟲算法[5]、遺傳算法[6]、粒子群優(yōu)化算法[7]等。Karaboga等模擬蜜蜂采蜜原理,以觀察蜂、偵查蜂和采蜜蜂之間條件轉(zhuǎn)換,每個蜜源代表一個待求解,因此對算法影響最大的因素為蜜源的開采次數(shù)限制,開發(fā)力度影響蜜蜂的搜索力度和跳出局部最優(yōu)的能力[4]。Goldberg等通過模擬自然生物的遺傳、進(jìn)化適應(yīng)環(huán)境變化的特點(diǎn)進(jìn)行交叉、變異和選擇三種操作對參數(shù)尋優(yōu),但是缺點(diǎn)是求解速度慢,存在局部最小問題[6]。Seyedali等模擬鯨魚捕食,以包圍獵物和氣泡網(wǎng)圍捕方法具有良好的泛化能力,但缺點(diǎn)是和螢火蟲算法相似,前期進(jìn)行全局搜索,后期進(jìn)行局部搜索,沒有跳出局部最優(yōu)的操作,從而對復(fù)雜問題性能有所下降[8]。He等基于發(fā)現(xiàn)者、游蕩者、跟隨者模型產(chǎn)生的算法,游蕩者起到跳出局部最優(yōu)作用,跟隨者作用為局部搜索,發(fā)現(xiàn)者引導(dǎo)跟隨者,但發(fā)現(xiàn)者貢獻(xiàn)不多并使得算法實(shí)現(xiàn)更復(fù)雜[9]。
相比上述多種優(yōu)化算法,新進(jìn)算法中的麻雀搜索算法在收斂速度和尋優(yōu)精度等方面有著明顯優(yōu)勢并且結(jié)構(gòu)簡單、能準(zhǔn)確應(yīng)對復(fù)雜問題[10]。所以針對鋰電池長序列數(shù)據(jù)依賴關(guān)系問題,提出SSA-LSTM模型(Sparrow Search Algorithm-Long-Short Term Memory,簡稱SSA-LSTM),其中長短期記憶神經(jīng)網(wǎng)絡(luò)模型(Long-Short Term Memory,簡稱LSTM)[11],對長序列數(shù)據(jù)不僅具備更好的傳遞記憶功能,并且能消除反向梯度消失問題,而在預(yù)測過程中長短期記憶神經(jīng)網(wǎng)絡(luò)模型出現(xiàn)超參數(shù)調(diào)整困難、收斂速度慢等情況,提出與麻雀搜索算法相結(jié)合,形成SSA-LSTM模型,優(yōu)化LSTM超參數(shù),減小超參數(shù)調(diào)整困難、收斂速度慢等問題的影響。
如圖1所示,LSTM是根據(jù)循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡稱RNN)改進(jìn)得來,消除RNN網(wǎng)絡(luò)的反向傳播梯度消失問題,可以保留長短序列依賴關(guān)系。LSTM通過遺忘、輸入、輸出三個結(jié)合激勵函數(shù),統(tǒng)稱為“門”的結(jié)構(gòu)來去除或者增加信息到單元狀態(tài)。有sigmoid函數(shù)將輸出0-1之間的數(shù)字,代表信息應(yīng)該通過多少。值為0表示不讓任何信息通過,而值為1表示讓所有的信息通過,通過這三個門保存和控制單元狀態(tài)。
圖1 LSTM單元Fig.1 LSTM unit.
遺忘層:決定從單元狀態(tài)中去除哪些信息。其計算公式為:
ft=σ(Wf[ht-1,xt]+bf)
(1)
輸出層:同時輸出單元狀態(tài)和隱藏狀態(tài)給下一層。其計算公式為:
it=σ(Wi[ht-1,xt]+bi)
(2)
(3)
輸入層:將舊的單元狀態(tài)更新為新的單元狀態(tài),其計算公式為:
(4)
ot=σ(Wo[ht-1,xt]+bo)
(5)
ht=ot*tanh(Ct)
(6)
其中,ht-1表示為上一單元隱藏層輸出,xt表示當(dāng)前單元輸入,Wf和bf分別表示該門的權(quán)重和偏置量。
麻雀搜索算法(Sparrow Search Algorithm,簡稱SSA)是根據(jù)麻雀覓食并躲避追捕者的行為提出的一種群智能優(yōu)化算法,麻雀種群分發(fā)現(xiàn)者和跟隨者,搜索到較好食物的麻雀為發(fā)現(xiàn)者,其余為跟隨者,種群中選取一定比例的麻雀帶有偵察預(yù)警機(jī)制的行為動作,發(fā)現(xiàn)危險及時放棄食物。麻雀不斷搜索更好食物過程即為解的尋優(yōu)過程。假設(shè)麻雀種群數(shù)量為N,每代選取種群中位置最好的PN只麻雀作為發(fā)現(xiàn)者,N-PN只麻雀作為跟隨者,搜索的空間為D維,麻雀的i(i∈1,2,…,n)位置為xi=(xi,1,xi,2,…,xi,D),麻雀種群最優(yōu)位置為xb=(xb,1,xb,2,…,xb,D),在t+1次迭代中,其發(fā)現(xiàn)者位置更新為:
(7)
i,j表示第i個麻雀在第j維中的位置信息,itermax表示為最大迭代次數(shù),Q表示為正態(tài)分布隨機(jī)數(shù),L表示為1×d矩陣且其元素均為1。
其追隨者位置更新為:
(8)
xworst表示當(dāng)前全局最差位置,xp表示目前發(fā)現(xiàn)者占據(jù)的最優(yōu)位置,表示1×d矩陣,其每個元素隨機(jī)賦值1或-1,且A+=AT(AAT)-1。
在實(shí)驗(yàn)中,假設(shè)帶有偵察預(yù)警機(jī)制行為動作的麻雀占總數(shù)量的10%-20%,這部分麻雀初始位置在種群中的位置為隨機(jī)產(chǎn)生,其位置公式為:
(9)
圖2 SSA算法流程圖Fig.2 SSA algorithm flowchart.
在LSTM中一般學(xué)習(xí)率、迭代次數(shù)、神經(jīng)元個數(shù)等超參數(shù)對預(yù)測結(jié)果的準(zhǔn)確性影響較大,因此將LSTM中的三個參數(shù)作為SSA的優(yōu)化變量,提出SSA-LSTM算法,具體步驟如下:
將每次放電后的電池容量以及對應(yīng)放電次數(shù)數(shù)據(jù)提取作為預(yù)測數(shù)據(jù)集,為加快最優(yōu)解求解速度和提高精度,采用簡單縮放即min-max標(biāo)準(zhǔn)化方法對數(shù)據(jù)進(jìn)行歸一化。歸一化公式如下:
(10)
其中,x為樣本數(shù)據(jù),min和max分別表示為樣本數(shù)據(jù)中最小值和最大值,Xnew表示歸一化處理后的數(shù)據(jù),通過min-max歸一化方式對樣本數(shù)據(jù)進(jìn)行線性變換,結(jié)果落于[0,1]區(qū)間。
在尋優(yōu)搜索算法中,確定麻雀種群數(shù)量,根據(jù)超參數(shù)組個數(shù)確定麻雀位置loc尋優(yōu)維度,確定發(fā)現(xiàn)者麻雀所占種群比例,一般選取20%。
確定超參數(shù)上下邊界,初始化麻雀位置loc,loc由尋優(yōu)超參數(shù)組組成。初始化參數(shù)包括麻雀最佳位置bestX,全局最佳適應(yīng)度fMin,最佳適應(yīng)度pFit等。
將初始化的麻雀位置根據(jù)適應(yīng)度函數(shù)評估麻雀位置并進(jìn)行排序,取前20%為發(fā)現(xiàn)者,余者為跟隨者,隨機(jī)選取10%-20%的麻雀攜帶偵察預(yù)警機(jī)制動作。
通過發(fā)現(xiàn)者、追隨者以及預(yù)警條件公式更新麻雀位置,接著以邊界函數(shù)約束超參數(shù)并對LSTM所需超參數(shù)傳參進(jìn)行預(yù)測,返回結(jié)果通過適應(yīng)度函數(shù)進(jìn)行評估位置。若當(dāng)前麻雀位置適應(yīng)度優(yōu)于最佳位置的麻雀適應(yīng)度則代替,否則不變。若本次迭代中麻雀最佳適應(yīng)度優(yōu)于全局最佳適應(yīng)度則代替,否則不變。
判斷是否滿足設(shè)定的達(dá)到誤差和最大迭代次數(shù)的停止條件。若符合,則將全局最優(yōu)超參數(shù)組設(shè)為LSTM的參數(shù);若不符合,則返回4。
具體步驟如圖3所示:
圖3 SSA-LSTM算法流程圖Fig.3 The flowchart of the SSA-LSTM algorithm.
本實(shí)驗(yàn)所用數(shù)據(jù)來自美國NASA航天局[12]。在鋰電池充放電實(shí)驗(yàn)中充電截止電壓為4.2 V,放電截止電壓為2.7 V。數(shù)據(jù)通過實(shí)驗(yàn)方式獲取,鋰離子電池5號在室溫下通過3種不同的操作模式測量:
充電模式:通過1.5 A恒流充電至4.2 V電壓水平并且涓流電流為20 mA時停止充電。
放電模式:通過2 A恒流放電至2.7 V電壓水平時停止放電。
內(nèi)阻模式:通過阻抗譜對[0.1,5000]區(qū)間頻率掃描進(jìn)行測試。
在實(shí)驗(yàn)過程中,通過對電池老化的影響操作并記錄電池的放電容量、循環(huán)次數(shù)、內(nèi)阻以及溫度。隨機(jī)從數(shù)據(jù)中選取30%的數(shù)據(jù)作為測試集,其余作為訓(xùn)練集。輸入變量為循環(huán)次數(shù)、放電電池溫度、電池內(nèi)阻,輸出變量為可用容量。
本實(shí)驗(yàn)中,麻雀搜索算法參數(shù)定義:麻雀種群數(shù)量為10,尋優(yōu)維度為3,麻雀生產(chǎn)者的比例為0.2,搜索算法迭代次數(shù)為40,麻雀位置初始化范圍(LSTM超參數(shù)初始化)分別為:學(xué)習(xí)率[0.001,0.01],迭代次數(shù)[1,100],神經(jīng)元個數(shù)[1,100],LSTM模型由單層LSTM單元組成。對比算法Single-LSTM超參數(shù)定義:迭代次數(shù)20,學(xué)習(xí)率0.001,神經(jīng)元個數(shù)100,批次大小16。在獲取實(shí)驗(yàn)數(shù)據(jù)并進(jìn)行預(yù)處理后,分別用BP、LSTM、SSA-LSTM算法進(jìn)行實(shí)驗(yàn)對比,圖4~6以及子圖分別為上述模型的預(yù)測對比圖,表1為各模型的預(yù)測結(jié)果比較。
圖4 BP預(yù)測結(jié)果Fig.4 BP prediction result.
圖5 單純LSTM預(yù)測結(jié)果Fig.5 Single LSTM prediction result.
圖6 SSA-LSTM預(yù)測結(jié)果Fig.6 SSA-LSTM prediction result.
圖7 各模型預(yù)測結(jié)果Fig.7 Prediction results of various models.
表1 各模型預(yù)測結(jié)果比較Table 1 Comparison of prediction results of various models.
從圖4-5和表1中可以看出相對于BP算法,LSTM算法的均方誤差和平方相關(guān)系數(shù)優(yōu)化了5.54%、57.82%,證明了LSTM長序列預(yù)測性能效果。從圖5-6和表1中可以看出SSA-LSTM模型的均方誤差和平方相關(guān)系數(shù)相比LSTM算法在平方相關(guān)系數(shù)提高了4.36%,在均方誤差方面降低了1.32%。并且SSA-LSTM算法通過圖6可以看出與真實(shí)值擬合良好,說明SSA算法對于優(yōu)化LSTM超參數(shù)具有較好的效果,從而驗(yàn)證了SSA算法的有效性。
SSA算法具有較快的收斂速度和強(qiáng)大的搜索能力,采用網(wǎng)格搜索或者枚舉搜索等方法對LSTM參數(shù)進(jìn)行尋優(yōu)時,即耗時較長、精確度也并不高,因此本文利用SSA來優(yōu)化LSTM的超參數(shù)并形成了SSA-LSTM模型。通過Python工具對數(shù)據(jù)集進(jìn)行對比試驗(yàn)分析證明:SSA-LSTM模型具有較好的學(xué)習(xí)能力,是一種有效的LSTM超參數(shù)尋優(yōu)算法。SSA麻雀搜索算法作為目前的新晉算法,因其收斂速度過快和麻雀跳躍式更新方式使其容易陷入局部最優(yōu),所以接下來的工作可以從如何跳出局部最優(yōu)以及麻雀位置更新方式著手。