徐 帥,劉雨辰, 周 飛
(南京航空航天大學(xué)直升機(jī)傳動(dòng)技術(shù)國家級重點(diǎn)實(shí)驗(yàn)室,江蘇南京210016)
電池荷電狀態(tài)(SOC)是電池管理系統(tǒng)中最重要的部分[1]。精確的SOC 估算可以及時(shí)更新電池的剩余容量,防止發(fā)生過充和過放電現(xiàn)象,并提高電池的充放電效率和延長其使用壽命。雖然目前SOC 估算方法眾多,但是主流的方法主要包含以下四類:安時(shí)積分法[2]、開路電壓法[3]、模型法[4-5]、機(jī)器學(xué)習(xí)法[6]。深度學(xué)習(xí)算法屬于機(jī)器學(xué)習(xí)法??裳h(huán)神經(jīng)網(wǎng)絡(luò)(RNN)作為深度學(xué)習(xí)算法中的一種,是目前最流行的算法之一。RNN 是一類以序列數(shù)據(jù)為輸入,在序列的演進(jìn)方向進(jìn)行遞歸且所有循環(huán)節(jié)點(diǎn)按鏈?zhǔn)竭B接的遞歸神經(jīng)網(wǎng)絡(luò),但其在訓(xùn)練時(shí),會出現(xiàn)“梯度消失”和“梯度爆炸”的現(xiàn)象。為了解決這兩個(gè)問題,學(xué)者們開發(fā)了一些進(jìn)階版循環(huán)神經(jīng)網(wǎng)絡(luò),比如長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM),門控循環(huán)單元神經(jīng)網(wǎng)絡(luò)(GRU)以及雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(BiLSTM)。這些由各種門結(jié)構(gòu)組成的人工神經(jīng)網(wǎng)絡(luò),擁有回憶過去信息的能力,這使得它們特別適用于解決較長時(shí)間序列的問題,例如電池SOC 估算。本文將估算電池SOC 的可循環(huán)神經(jīng)網(wǎng)絡(luò)算法根據(jù)其結(jié)構(gòu)的不同分為三種:簡單循環(huán)神經(jīng)網(wǎng)絡(luò)算法、深度循環(huán)神經(jīng)網(wǎng)絡(luò)算法、擴(kuò)展循環(huán)神經(jīng)網(wǎng)絡(luò)算法。
1.1.1 長短期記憶神經(jīng)網(wǎng)絡(luò)
長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)層結(jié)構(gòu)如圖1 所示。存儲記憶單元Ck來存儲并傳輸先前和當(dāng)前狀態(tài)的信息,以備將來使用;遺忘門fk負(fù)責(zé)控制Ck-1中應(yīng)該傳遞多少先前信息到下一次;輸入門ik負(fù)責(zé)調(diào)節(jié)應(yīng)該將多少過去的信息傳遞到存儲記憶單元Ck中;輸出門ok負(fù)責(zé)控制將多少在存儲記憶單元中計(jì)算出的信息傳遞到輸出hk中。
圖1 長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)層結(jié)構(gòu)
Bockrath 等[7]使用LSTM 建立電池測量信號(端電壓,負(fù)載電流和電池溫度)與電池SOC 之間非線性關(guān)系,并與擴(kuò)展卡爾曼濾波算法(EKF)進(jìn)行了對比。相較于EKF,LSTM 不需要建立復(fù)雜的電池模型,而且LSTM 的平均絕對誤差(MAE)和均方根誤差(RMSE)分別為4.1%和5.0%,也遠(yuǎn)低于EKF 的8.5%和9.5%。然而,這篇文章并沒有采用標(biāo)準(zhǔn)的汽車工況數(shù)據(jù),而是普通的充放電循環(huán)數(shù)據(jù)(CC),環(huán)境溫度也只考慮了常溫。在這種條件下對比LSTM 和EKF,顯然沒有很大的說服力。Li 等[8]同樣應(yīng)用了LSTM 模型,不過他使用多種汽車工況循環(huán)數(shù)據(jù)集(UDDS,US06,HWFET,LA92)作為測試文件,而且還考慮了多種環(huán)境溫度(0、10 和25 ℃)。同時(shí)為了進(jìn)一步提高估算精度,作者還對測試數(shù)據(jù)進(jìn)行了歸一化處理,將數(shù)據(jù)縮放在-1 到1 之間。不同溫度下的MAE 均小于1.3%的估算結(jié)果證明了LSTM 優(yōu)秀的魯棒性。后來Zhang 等[9]考慮到電池老化對SOC 估算的影響,增加了電池剩余容量和電池內(nèi)阻作為LSTM 的輸入?yún)?shù),使用不同電池健康狀態(tài)(SOH)條件下的美國動(dòng)態(tài)應(yīng)力測試(DST)和中國電動(dòng)汽車測試標(biāo)準(zhǔn)(QCT)工況循環(huán)數(shù)據(jù)來測試LSTM。SOC 估算平均誤差均小于2%的估算結(jié)果證明了在不同的電池SOH 下,LSTM 也適用于估算SOC。以上文獻(xiàn)中的LSTM 模型都是針對某一種類型的電池,然而現(xiàn)實(shí)生活中,電池的類型肯定不止一種。為了讓LSTM 可以適用于不同類型的電池,Vidal 等[10]提出了基于遷移學(xué)習(xí)的LSTM 模型,首先使用其他類型電池的數(shù)據(jù)對LSTM 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,然后使用來自目標(biāo)電池類型的數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行二次訓(xùn)練,最后應(yīng)用幾種不同的實(shí)驗(yàn)來研究其潛力。從實(shí)驗(yàn)估算結(jié)果來看,使用遷移學(xué)習(xí)方法后,LSTM 估算SOC 的準(zhǔn)確度提高了64%,訓(xùn)練時(shí)間從9 h 縮減到了1 h,這證明了遷移學(xué)習(xí)有提高SOC 估算精度并減少神經(jīng)網(wǎng)絡(luò)訓(xùn)練所需數(shù)據(jù)的潛力。這為實(shí)際中應(yīng)用LSTM 去估算不同類型的電池提供了可能。雖然以上的作者們證明了LSTM在各種條件下都可以很好地估算電池SOC,但是估算結(jié)果的好壞主要是由他們所搭建LSTM 模型的超參數(shù)決定的,這些超參數(shù)包括但不局限于模型隱藏層數(shù),模型隱藏層神經(jīng)元數(shù),模型優(yōu)化器,訓(xùn)練批量數(shù),模型輸入時(shí)間步長。遺憾的是,他們只是介紹了他們選擇的超參數(shù),并沒有過多地解釋這么選的原因。
Chemali 等[11]提出了一個(gè)隱藏層神經(jīng)元數(shù)為500 的單層LSTM 模型來估算電池SOC,并討論了三種訓(xùn)練批量數(shù)對訓(xùn)練結(jié)果的影響。相同條件下,當(dāng)訓(xùn)練批量數(shù)從250 增加到500時(shí),平均誤差下降了50%,而繼續(xù)增加到1 000 時(shí),平均誤差只下降了15%。但是在SOC 初始值存在30%的誤差時(shí),訓(xùn)練批量數(shù)為1 000 的神經(jīng)網(wǎng)絡(luò)的收斂速率比500 的神經(jīng)網(wǎng)絡(luò)快了近50 s。雖然這篇文章只考慮了一種超參數(shù)對LSTM 網(wǎng)絡(luò)估算結(jié)果的影響,但是也從側(cè)面說明了,在用LSTM 對電池SOC進(jìn)行估算時(shí),超參數(shù)的選擇是個(gè)非常重要的問題。Hong 等[12]綜合考慮了四種超參數(shù),討論了不同的輸入數(shù)據(jù)時(shí)間步長,輸出數(shù)據(jù)時(shí)間步長,和訓(xùn)練樣本總數(shù)以及訓(xùn)練批量數(shù)對估算結(jié)果的影響。首先固定訓(xùn)練樣本總數(shù)以及訓(xùn)練批量數(shù),對比了不同的輸入數(shù)據(jù)時(shí)間步長,輸出數(shù)據(jù)時(shí)間步長的估算誤差。從表1 誤差結(jié)果可以發(fā)現(xiàn),隨著輸入數(shù)據(jù)時(shí)間步長和輸出數(shù)據(jù)時(shí)間步長的增大,均方根誤差也隨之增大;然后選擇最優(yōu)的輸入和輸出數(shù)據(jù)時(shí)間步長,分析不同訓(xùn)練樣本總數(shù)對估算結(jié)果的影響,對于LSTM 來說,輸入數(shù)據(jù)當(dāng)然是越多越好;最后分析了不同訓(xùn)練批量數(shù)的影響。從圖2 來看,估算誤差并沒有隨著訓(xùn)練批量數(shù)的增加而減少,當(dāng)其值為16 時(shí),誤差最小??上У氖乾F(xiàn)在沒有成熟的算法來選擇循環(huán)神經(jīng)網(wǎng)絡(luò)模型超參數(shù),而它們又決定了模型的估算精度,研究者往往都是根據(jù)經(jīng)驗(yàn)或通過枚舉對比來確定它們,這不僅耗時(shí),而且還不一定能找到最優(yōu)值。
表1 不同時(shí)間步長的均方根誤差[12]
圖2 基于不同訓(xùn)練批量數(shù)的均方根誤差[12]
1.1.2 門控循環(huán)單元神經(jīng)網(wǎng)絡(luò)
圖3 GRU 層結(jié)構(gòu)
另一種能夠處理長期依賴關(guān)系的RNN 方法是門控循環(huán)單元神經(jīng)網(wǎng)絡(luò)(GRU),它也使用門結(jié)構(gòu)來學(xué)習(xí),記憶和確定過去和現(xiàn)在的哪些信息將用于生成其輸出。它的層結(jié)構(gòu)如圖3所示,圖中的zk和rk分別表示更新門和重置門。更新門用于控制前一時(shí)刻的狀態(tài)信息hk-1被帶入到當(dāng)前狀態(tài)hk中的程度,更新門的值越大說明前一時(shí)刻的狀態(tài)信息被帶入的越多,重置門控制前一狀態(tài)有多少信息被寫入到當(dāng)前的候選集h?k上,重置門越小,前一狀態(tài)的信息被寫入的越少。與LSTM 相比,GRU 使用單個(gè)門單元同時(shí)控制遺忘量和更新狀態(tài)單元,所以GRU 的參數(shù)相對要少很多,訓(xùn)練時(shí)間相對較短,但可以達(dá)到與LSTM 相當(dāng)?shù)男Ч?/p>
Li 等[13]首次提出使用GRU 來估算電池SOC,并使用了和文獻(xiàn)[11]中相同的電池?cái)?shù)據(jù)集,而且在25 ℃的LA92 工況下的估算誤差MAE 為0.32%。由于本文中使用的GRU 的超參數(shù)與文獻(xiàn)[11]中LSTM 的超參數(shù)不同,所以無法直接對比兩種模型。不過這篇論文還是證明了GRU 是可以像LSTM 一樣用于SOC 估算的。Yang 等[14]提出了GRU 模型來估算不同環(huán)境溫度下NMC 和LFP 兩種電池SOC。值得一提的是,他在模型中添加了一個(gè)參數(shù)為0.5 的dropout 層,可以在訓(xùn)練的時(shí)候隨機(jī)丟棄50%的信息,從而避免過擬合現(xiàn)象。不過其缺點(diǎn)就是丟棄的信息也有可能是非常重要的,從而導(dǎo)致估算精度不高,可惜的是,文中沒有更加深入地分析dropout 對估算結(jié)果的影響。和文獻(xiàn)[12]一樣,文中也分析了多種模型超參數(shù)對估算結(jié)果的影響,比如訓(xùn)練迭代次數(shù),隱藏層數(shù)和隱藏層神經(jīng)元數(shù),并在訓(xùn)練中增加了驗(yàn)證集,使得對比結(jié)果更有說服力。其分析策略是先給超參數(shù)設(shè)定一個(gè)常見的初始值,然后固定其中兩個(gè)參數(shù),分析另一個(gè)參數(shù)的變化給估算結(jié)果帶來的影響。從誤差結(jié)果來看,在訓(xùn)練前期,隨著迭代次數(shù)的增加,訓(xùn)練集和驗(yàn)證集誤差RMSE 都開始急劇下降,當(dāng)?shù)螖?shù)超過1 500 后,誤差開始逐漸穩(wěn)定,并在2 000 時(shí)達(dá)到最小值。但是隨著迭代次數(shù)進(jìn)一步增加,驗(yàn)證集誤差開始出現(xiàn)上升跡象,表明訓(xùn)練過程開始出現(xiàn)過擬合。綜合考慮測試性能和與訓(xùn)練迭代次數(shù)呈線性關(guān)系的訓(xùn)練時(shí)間后,作者選擇訓(xùn)練迭代次數(shù)為2 000。至于隱藏層數(shù)和隱藏層神經(jīng)元數(shù),其對估算結(jié)果的影響也是:當(dāng)他們一定大的時(shí)候,訓(xùn)練集和測試集誤差會非常小,但是進(jìn)一步增大都會導(dǎo)致過擬合現(xiàn)象的發(fā)生,從而增大了驗(yàn)證集誤差,導(dǎo)致模型的泛化能力變差。
為了提高GRU 估算電池SOC 的精度,Xiao 等[15]使用均方根誤差(MSE)作為GRU 模型的訓(xùn)練損失誤差,并使用集成優(yōu)化器來優(yōu)化它,即在訓(xùn)練迭代次數(shù)小于閾值p 時(shí),用優(yōu)化器Nadam 來優(yōu)化模型,因?yàn)樗哂惺諗克俣瓤斓膬?yōu)點(diǎn);當(dāng)訓(xùn)練迭代次數(shù)超過p 后,改換優(yōu)化器AdaMax 對模型進(jìn)行微調(diào),從而確定模型最終的訓(xùn)練權(quán)重和偏值。為了進(jìn)一步突出GRU 模型在集成優(yōu)化器下估算SOC 時(shí)的性能,文中還添加了LSTM模型作對比。測試數(shù)據(jù)使用的都是LFP 電池在DST,F(xiàn)UDS,US06 三種工況下的循環(huán)數(shù)據(jù)。從表2 誤差結(jié)果來看,同種模型下,相比單個(gè)優(yōu)化器,集成優(yōu)化器可以顯著地提高估算精度,而所花費(fèi)的時(shí)間只是略微增加。另一方面,在同種優(yōu)化器作用下,GRU 無論是在估計(jì)誤差,還是訓(xùn)練時(shí)間,都比LSTM 的小,其中GRU 在集成優(yōu)化器作用下的RMSE,MAE 和訓(xùn)練時(shí)間分別是1.13%、0.84%和2.97 h,與LSTM 在單個(gè)優(yōu)化器下的相應(yīng)值相比分別降低了46.7%、46.84%和17.96%。不過,由于不知道作者使用的LSTM 模型超參數(shù)是否與GRU 一樣,所以這個(gè)對比結(jié)果僅供參考,并不能證明GRU 一定比LSTM 好。
表2 基于不同優(yōu)化器下GRU 和LSTM 的估算誤差[15]
除了門結(jié)構(gòu)的循環(huán)神經(jīng)網(wǎng)絡(luò)外,也有學(xué)者提出使用非門結(jié)構(gòu)的循環(huán)神經(jīng)網(wǎng)絡(luò)來估算電池SOC。非線性自回歸與外來輸入(NARX)神經(jīng)網(wǎng)絡(luò)是RNN 的子類,適用于預(yù)測非線性和時(shí)間序列問題。NARX 神經(jīng)網(wǎng)絡(luò)使用有限的反饋形成輸出層而不是隱藏層,并將模型k-1 時(shí)刻的輸出轉(zhuǎn)化成k 時(shí)刻的輸入,從而實(shí)現(xiàn)循環(huán)。在學(xué)習(xí)能力,收斂速度,泛化性能和高精度方面,NARXNN 比傳統(tǒng)的RNN 表現(xiàn)更好。Chaoui 等[16]開發(fā)了基于非線性自回歸與外來輸入神經(jīng)網(wǎng)絡(luò)架構(gòu)的動(dòng)態(tài)驅(qū)動(dòng)遞歸網(wǎng)絡(luò)(DDRN)來估計(jì)兩個(gè)鋰離子化學(xué)電池的SOC。雖然與門結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)相比,使用NARX 會給DDRN 帶來一些限制,但是這也賦予了DDRN 關(guān)聯(lián)儲存功能,并且減少了模型訓(xùn)練所需的數(shù)據(jù)量。其結(jié)構(gòu)如圖4 所示,文中使用0、10、25 和40 ℃溫度下包含電壓Vk,電流Ik,環(huán)境溫度Tk和來自先前的時(shí)間步的輸出SOCk-1四種變量的數(shù)據(jù)集來訓(xùn)練和測試DDRN。從估算結(jié)果來看,與“非循環(huán)”神經(jīng)網(wǎng)絡(luò)相比,DRNN的訓(xùn)練時(shí)間減少了1 000 倍,均方根誤差下降了78%。盡管用于測試模型的數(shù)據(jù)循環(huán)曲線是動(dòng)態(tài)的,但由于在循環(huán)過程中沒有再生制動(dòng)充電脈沖,因此導(dǎo)致了單調(diào)的SOC 輸出曲線。此類測試文件可能無法很好地應(yīng)用在電動(dòng)汽車領(lǐng)域。因此,這種方法的有效性需要進(jìn)一步研究。
圖4 DDRN-NARX 結(jié)構(gòu),輸入變量端電壓Vk,電流Ik和環(huán)境溫度Tk都是由傳感器測量得到,回歸輸入SOCk-1是上一時(shí)刻k-1的輸出[16]
前面已經(jīng)提到,門結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)估算SOC 的精度由模型的超參數(shù)所決定,對于非門結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)來說,亦是如此。而這些作者都是根據(jù)經(jīng)驗(yàn)或者通過枚舉對比的方法來確定這些超參數(shù),步驟十分繁瑣且低效。因此Lipu 等[17]提出了基于改進(jìn)的非線性具有基于外源輸入的自回歸神經(jīng)網(wǎng)絡(luò)算法來估算電池SOC,并結(jié)合了線性搜索算法(LSA)來查找模型最優(yōu)超參數(shù):神經(jīng)元數(shù)量,輸入數(shù)據(jù)時(shí)間步長和輸出數(shù)據(jù)時(shí)間步長的最佳組合,從而提高模型的估算精度。該模型使用了NCM 電池在0、10 和45 ℃三種溫度下基于FUDS 和US06 兩種工況的數(shù)據(jù)集作為訓(xùn)練集和測試集,并獲得了均小于0.9%的MAE 和均小于1.3%的RMSE。文中還添加了與同樣由LSA 優(yōu)化的其他SOC 估計(jì)方法的比較,并證明了NARX和LSA 結(jié)合可以獲得更高的精度。盡管使用LSA 和BSA 之類的優(yōu)化算法可以幫助實(shí)現(xiàn)構(gòu)建最佳神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的自動(dòng)化,但是其他重要的超參數(shù),例如訓(xùn)練批量大小,損失函數(shù)優(yōu)化器的選擇同樣會對估算結(jié)果產(chǎn)生重大影響,而且作者沒有給出使用LSA 算法來查找模型超參數(shù)的時(shí)間,如果這種算法需要耗費(fèi)大量的時(shí)間,那么顯然不適合實(shí)際應(yīng)用。
與簡單循環(huán)神經(jīng)網(wǎng)絡(luò)法相比,深度循環(huán)神經(jīng)網(wǎng)絡(luò)法使用多層LSTM,GRU 單元。循環(huán)神經(jīng)網(wǎng)絡(luò)能夠以多種方式由單層加深至多層,其中最常見的策略是使用堆疊的循環(huán)單元。由于在序列演進(jìn)方向已經(jīng)存在復(fù)雜結(jié)構(gòu),因此不同于深度的前饋神經(jīng)網(wǎng)絡(luò),深度循環(huán)神經(jīng)網(wǎng)絡(luò)在輸入和輸出間不會堆疊太多層次,一個(gè)3 層的深度循環(huán)神經(jīng)網(wǎng)絡(luò)已經(jīng)具有很大規(guī)模。堆疊循環(huán)神經(jīng)網(wǎng)絡(luò)是在全連接的單層循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上堆疊形成的深度算法。其內(nèi)部循環(huán)單元的狀態(tài)更新使用了其前一層相同時(shí)間步的狀態(tài)和當(dāng)前層前一時(shí)間步的狀態(tài)。
Khalid 等[18]使用一個(gè)含兩層LSTM 的神經(jīng)網(wǎng)絡(luò)(SLSTM)來估算電池SOC 并分析了兩種優(yōu)化器,RMSprop 和AdaGrad對估算結(jié)果的影響。從表3 估算誤差來看,在不同的工況下,無論是訓(xùn)練還是測試,Adagrad 的誤差均小于RMSprop。RMSprop 的RMSE 和MAE 分 別 是2.611% 和1.967%,而AdaGrad 的RMSE 和MAE 分別是1.527%和1.153%,比前者降低了約50%。LSTM 的優(yōu)化器有很多種,比如NAdam,Adadelta,AdaGrad,RMSprop,Adamax,SGD。雖然本文只比較了其中兩種,不過對比結(jié)果也說明了,在用LSTM 估算電池SOC 時(shí),選擇合適的優(yōu)化器,可以得到更好的估算結(jié)果。
表3 不同優(yōu)化器下的估算誤差[18]
為了提高循環(huán)神經(jīng)網(wǎng)絡(luò)估算SOC 的精度,Yang 等[19]使用了一個(gè)堆疊了三層LSTM 的模型來估算SOC,其中每個(gè)LSTM 含有50 個(gè)神經(jīng)元。堆疊的LSTM 層可以重組從先前層學(xué)到的表示形式,并在高度抽象的層次上創(chuàng)建新的表示形式。雖然該模型在三種工況FUDS,DST,US06 下,均獲得了MAE 和RMSE 分別小于2.1%和1.4%的良好估算結(jié)果,但是由于沒有添加單層LSTM 模型做對比,而且本文只考慮一種環(huán)境溫度,所以無法證明多層LSTM 比單層LSTM 更好。
圖5 雙向循環(huán)神經(jīng)網(wǎng)絡(luò)展開圖
雙向循環(huán)神經(jīng)網(wǎng)絡(luò)是一種兩層的深度循環(huán)神經(jīng)網(wǎng)絡(luò)。如圖5 所示,其結(jié)構(gòu)由兩個(gè)分別向前和向后的單向循環(huán)層(LSTM,GRU)組成,其中,向前的循環(huán)層使用k-n 時(shí)刻到當(dāng)前k 時(shí)刻的輸入數(shù)據(jù)Ψ,即[Ψk-n→Ψk],而向后的循環(huán)層則使用相反順序的輸入數(shù)據(jù)[Ψk→Ψk-n],其中n 是時(shí)間步長的總數(shù),y 是雙向循環(huán)層的輸出,而且這兩個(gè)循環(huán)層是同時(shí)進(jìn)行反饋的,并且每個(gè)參數(shù)都是獨(dú)立更新的,但是它們的輸出hk,會用一個(gè)函數(shù)(求和、求積、求商、求平均)結(jié)合起來。由于這種雙向結(jié)構(gòu)從數(shù)據(jù)的兩個(gè)端捕獲時(shí)間或上下文相關(guān)性,所以通常用于文本翻譯中。Bian 等[20]提出使用堆疊式雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(SBLSTM)來估算電池SOC,并與使用了同樣的測試數(shù)據(jù)的LSTM[11]和GRU[13]模型進(jìn)行了對比。每個(gè)模型都被訓(xùn)練了五次,然后取這五次誤差的平均值來比較。從結(jié)果來看,在基于0、10 和25 ℃三種環(huán)境溫度的US06 和HWET 工況下,SBLSTM 估算精度是最高的,其中25 ℃下的MAE 只有0.46%。雖然這些模型使用了同樣的測試數(shù)據(jù),但是由于不知道文獻(xiàn)[11]和文獻(xiàn)[13]的作者是否也對他們的模型進(jìn)行了重復(fù)訓(xùn)練。因此,不同論文中的模型交叉對比還是很困難的。本文同樣比較了不同的隱藏層數(shù)和隱藏層神經(jīng)元數(shù)對模型估算結(jié)果的影響,并最終確定最優(yōu)的模型結(jié)構(gòu)擁有兩個(gè)各含有64 個(gè)神經(jīng)元的BLSTM 層,相當(dāng)于四個(gè)單向LSTM 堆疊層,并含有130 000 個(gè)可學(xué)習(xí)參數(shù),即結(jié)構(gòu)中所有權(quán)重和偏差的總和。過多的學(xué)習(xí)參數(shù)不僅會導(dǎo)致訓(xùn)練時(shí)間成倍的增加,還容易導(dǎo)致訓(xùn)練中出現(xiàn)過擬合現(xiàn)象,這極大限制了這種方法的實(shí)際應(yīng)用。
為了進(jìn)一步提高循環(huán)神經(jīng)網(wǎng)絡(luò)估算電池SOC 的精度,有學(xué)者提出了將循環(huán)神經(jīng)網(wǎng)絡(luò)算法與其他非循環(huán)神經(jīng)網(wǎng)絡(luò)算法結(jié)合的想法,使它們可以相互彌補(bǔ),充分發(fā)揮自己的優(yōu)點(diǎn),從而提高估算精度。Song 等[21]提出了卷積神經(jīng)網(wǎng)絡(luò)(CNN)和LSTM 復(fù)合模型來估算SOC。這個(gè)復(fù)合模型綜合了CNN 和LSTM 模型的優(yōu)點(diǎn),其中CNN 用于從輸入數(shù)據(jù)中提取空間特征,而LSTM 用于提取時(shí)間特征。在環(huán)境溫度0~50 ℃下基于FUDS、DST、US06 三種工況的LFP 電池?cái)?shù)據(jù)被用來測試模型的性能和針對未知SOC 初始狀態(tài)的魯棒性。實(shí)驗(yàn)結(jié)果證明了CNN-LSTM 模型可以很好地捕捉電池SOC 和測量變量(電壓,電流和溫度)之間的非線性關(guān)系,并且比單一的LSTM和CNN 具有更優(yōu)的追蹤性能。在初始SOC 未知的情況下,CNN-LSTM 模型可以很快地收斂到SOC 真實(shí)值,然后保持平滑準(zhǔn)確的估算結(jié)果,最大MAE 和RMSE 分別在1%和2%以下。此外,該復(fù)合方法在不同的環(huán)境溫度下仍可以準(zhǔn)確地估算電池SOC,最大MAE 在1.5%以內(nèi),最大RMSE 在2%以內(nèi)。無獨(dú)有偶,Huang 等[22]提出了CNN 和BGRU 復(fù)合模型。雖然在常溫下,該模型的MAE 和RMSE 均小于2%,但是在0 ℃,MAE 和RMSE 分別是3.04%和4.36%。而且與其他循環(huán)神經(jīng)網(wǎng)絡(luò)一樣,該模型也有需要確定的超參數(shù)。為了確定模型的最優(yōu)結(jié)構(gòu),作者根據(jù)經(jīng)驗(yàn)手動(dòng)設(shè)定了幾組不同神經(jīng)元數(shù)組合并進(jìn)行估算對比,但是這些超參數(shù)是否最優(yōu),仍值得商榷。
無跡卡爾曼濾波算法(UKF)是一種常用于去除數(shù)據(jù)流中的噪聲的技術(shù)。與EKF 相比,UKF 在具有相同復(fù)雜度等級的非線性系統(tǒng)中表現(xiàn)出更好的性能,并且易于實(shí)現(xiàn)。Yang 等[23]提出LSTM 和UKF 結(jié)合的模型(LSTM-UKF)來估算電池SOC,整個(gè)算法的框架如圖6 所示。它包括離線訓(xùn)練和在線測試兩個(gè)過程:離線訓(xùn)練階段,使用由0~50 ℃,間隔10 ℃的環(huán)境溫度下DST、US06 兩種工況循環(huán)數(shù)據(jù)來訓(xùn)練LSTM,輸入變量有電壓、電流和電池溫度,輸出變量則是SOC;在線測試階段,UKF 被用來過濾掉訓(xùn)練好的LSTM 的輸出噪聲,從而提高SOC 估算精度,其中狀態(tài)變量為由庫侖公式得到的SOC,輸出變量為LSTM 估算得到的SOC。由實(shí)驗(yàn)結(jié)果來看,在不同的環(huán)境溫度下,相比單一的LSTM,LSTM-UKF 估算精度至少提高50%,MAE 和RMSE 均在1.1%以內(nèi)。此外,作者還將其與其他機(jī)器學(xué)習(xí)法NN,SVM 和GPR,在常溫下進(jìn)行了對比,LSTM-UKF 在估算精度上完勝而且估算時(shí)間也只需1.20 s。除去EKF 和UKF 外,還有很多優(yōu)秀的卡爾曼濾波算法的進(jìn)階版,比如容積卡爾曼濾波算法(CKF),相比前兩者,它在高階系統(tǒng)中的表現(xiàn)更加穩(wěn)定和高效。Tian 等[24]提出了LSTM 和ACKF 結(jié)合的復(fù)合模型(LSTM-ACKF)。在這里,ACKF 與文獻(xiàn)[23]中UKF 一樣,也是用來優(yōu)化LSTM 模型的估算結(jié)果。不過與后者不同的,ACKF 具有自適應(yīng)功能,換言之就是,可以在優(yōu)化過程中自動(dòng)更新過程噪聲方差Q 和測量誤差方差R。首先,作者使用不同環(huán)境溫度下US06 和FUDS兩種工況數(shù)據(jù)來驗(yàn)證LSTM-ACKF 的估算精度并引入LSTM和LSTM-CKF 兩種模型作對比。結(jié)果顯示,LSTM 的估算誤差RMSE 均大于2.8%,最大RMSE 達(dá)到了3.5%,LSTM-CKF的估算誤差RMSE 均大于2.2%,最大RMSE 為3.2%,而LSTM-ACKF 的RMSE 均小于2.2%,最小RMSE 只有0.9%。然后,在10 ℃的FUDS 工況下,使用不同的Q 和R 初始值來驗(yàn)證LSTM-ACKF 的抗干擾性。結(jié)果顯示,LSTM-CKF 的估算結(jié)果非常依賴Q 和R 的初始值,尤其是Q 很大且R 很小的時(shí)候,此時(shí)的誤差非常大,反觀LSTM-ACKF 的估算誤差幾乎不受Q 和R 的影響。最后,使用不同的SOC 初始值來驗(yàn)證LSTM-ACKF 的收斂性。結(jié)果顯示,即使SOC 初始值誤差達(dá)到40%,該模型也能在短短20 s 內(nèi),收斂到正確值。
圖6 LSTM-UKF框架[23]
Caliwag 等[25]提出了時(shí)間序列模型(VARMA)和LSTM 結(jié)合的算法來預(yù)測電動(dòng)摩托車的鋰離子電池電壓和SOC,其中輸入由電動(dòng)機(jī)速度,輸入功率和扭矩以及電池評估電壓,電流和溫度組合而成。該復(fù)合模型估算電池SOC 的原理是:首先使用VARMA 預(yù)測電池輸出電流的線性分量,然后用LSTM預(yù)測電池輸出電流的非線性分量,最后將它們加起來就是預(yù)測的電池輸出電流,將預(yù)測的輸出電流代入到安時(shí)積分法中即可獲得預(yù)測的SOC。作者僅使用韓國的駕駛循環(huán)CVS-40在0 和25 ℃下測試了該模型,用于訓(xùn)練模型的數(shù)據(jù)直接來自駕駛摩托車。文中沒有提供電池的有關(guān)信息,LSTM 的結(jié)構(gòu)也沒有介紹,而且尚不清楚在有更大的數(shù)據(jù)集時(shí)是否有必要將VARMA 與LSTM 結(jié)合使用。
本節(jié)總結(jié)了本文中提到的估算電池SOC 的循環(huán)神經(jīng)網(wǎng)絡(luò)算法的輸入變量、數(shù)據(jù)預(yù)處理、循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM,GRU,NARX)的層數(shù)及其神經(jīng)元數(shù)、優(yōu)化器、損失函數(shù)、測試文件、研究的溫度、使用的電池類型以及估算誤差,為讀者未來使用循環(huán)神經(jīng)網(wǎng)絡(luò)方法估算電池SOC 提供理論指導(dǎo)。從表4、表5 和表6 中可以發(fā)現(xiàn),大多數(shù)研究都使用了相同的模型輸入變量,如電壓、電流和電池溫度,只有極少數(shù)使用了平均值或其他的計(jì)算值。訓(xùn)練前進(jìn)行數(shù)據(jù)預(yù)處理的模型大概占了一半,從理論上講,數(shù)據(jù)預(yù)處理可以提高模型估算電池SOC的精度,可惜暫時(shí)沒有論文對此進(jìn)行討論。另外大多數(shù)模型都只使用了一層循環(huán)神經(jīng)網(wǎng)絡(luò),可見在估算電池SOC 這個(gè)領(lǐng)域,使用多層循環(huán)神經(jīng)網(wǎng)絡(luò)并不一定能帶來更好的結(jié)果,相反還會增加訓(xùn)練難度和時(shí)間,而且神經(jīng)元數(shù)也不用太多。對于循環(huán)神經(jīng)網(wǎng)絡(luò)來說,優(yōu)化器的選擇有很多,比如RMSprop、LM、SGD、Adamax、Nadam 等。不過在估算電池SOC 方面,主流的優(yōu)化器還是Adam。至于損失函數(shù)的選擇,只有MAE、RMSE 和MSE 三種,其中MSE 應(yīng)用的最多。對于測試數(shù)據(jù)的獲取,絕大部分研究都選擇了標(biāo)準(zhǔn)的汽車工況和可變的環(huán)境溫度,其余的則選擇了簡單的恒流和脈沖電流循環(huán)或固定溫度。一般來說,模型的測試數(shù)據(jù)越復(fù)雜,其呈現(xiàn)的估算精度可信度越高。從估算結(jié)果來看,基于RNN 的估算方法非常適合于電池SOC 估算領(lǐng)域。
表7 對比了方法之間的優(yōu)缺點(diǎn),并進(jìn)行了詳細(xì)的論述,為未來循環(huán)神經(jīng)網(wǎng)絡(luò)法估算SOC 的發(fā)展提供理論指導(dǎo)。
本文介紹了幾種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的鋰離子電池SOC估算方法,并將它們分為簡單循環(huán)神經(jīng)網(wǎng)絡(luò)算法、深度循環(huán)神經(jīng)網(wǎng)絡(luò)算法以及擴(kuò)展循環(huán)神經(jīng)網(wǎng)絡(luò)算法。簡單循環(huán)神經(jīng)網(wǎng)絡(luò)算法雖然在某種條件下也能獲得較好的估算精度,不過容易受到模型超參數(shù)的影響,而目前并沒有成熟的算法來確定超參數(shù);深度循環(huán)神經(jīng)網(wǎng)絡(luò)算法通過增加模型中循環(huán)神經(jīng)層數(shù)來提高估算精度,不過模型的學(xué)習(xí)參數(shù)(權(quán)重和偏值)數(shù)量也隨之增多,從而增大了模型過擬合的風(fēng)險(xiǎn)。因此,為了讓循環(huán)神經(jīng)網(wǎng)絡(luò)可以在各種條件下都能很精確地估算電池SOC,除了需要開發(fā)一種成熟的算法來確定循環(huán)神經(jīng)網(wǎng)絡(luò)的超參數(shù)之外,還需要研究將循環(huán)神經(jīng)網(wǎng)絡(luò)法和其他算法結(jié)合起來,取長補(bǔ)短,實(shí)現(xiàn)鋰離子電池SOC 在不同條件下的快速、準(zhǔn)確的估計(jì)。為此,研究人員仍需要不斷地探索和實(shí)踐。
表4 簡單循環(huán)神經(jīng)網(wǎng)絡(luò)模型超參數(shù)比較
表5 深度循環(huán)神經(jīng)網(wǎng)絡(luò)模型超參數(shù)比較
表6 擴(kuò)展循環(huán)神經(jīng)網(wǎng)絡(luò)模型超參數(shù)比較
表7 基于RNN 的鋰離子電池SOC 估算方法優(yōu)缺點(diǎn)