陳繼斌,李雯雯,孫彥璽,許 靜,張 單
(鄭州輕工業(yè)大學(xué)建筑環(huán)境工程學(xué)院,河南鄭州 451002)
鋰離子電池由于高能量密度、高功率密度等優(yōu)點(diǎn),已逐漸成為主要電源之一。然而電池在反復(fù)充放電時(shí)會退化,需要電池管理系統(tǒng)監(jiān)控電池健康狀態(tài),防止電池過充電和過放電,以確保電池在安全范圍內(nèi)運(yùn)行。荷電狀態(tài)(State of Charge,SOC)是電池管理系統(tǒng)中的關(guān)鍵狀態(tài)之一,它反映了在一個(gè)充放電循環(huán)中電池的剩余電量。目前不能直接測量蓄電池的SOC,只能根據(jù)電流、電壓、內(nèi)阻和其他可測量的變量來估計(jì)。SOC估計(jì)的方法有安時(shí)積分法、開路電壓法、卡爾曼濾波法和神經(jīng)網(wǎng)絡(luò)法等。
安時(shí)積分法十分依賴電流傳感器的精度,誤差會隨著時(shí)間而不斷增大[1]。開路電壓法需要將電池靜置很長一段時(shí)間,所以無法適用于使用中的電池[2]。卡爾曼濾波法需要提前建立復(fù)雜的數(shù)學(xué)模型[3]。神經(jīng)網(wǎng)絡(luò)法無需對電池內(nèi)部結(jié)構(gòu)進(jìn)行分析,只需建立好深度學(xué)習(xí)模型,使用大量數(shù)據(jù)對其訓(xùn)練即可獲得較為準(zhǔn)確的SOC預(yù)測結(jié)果,目前應(yīng)用頗為廣泛。
近年來,深度學(xué)習(xí)在預(yù)測和識別方面取得了不少成果,對于提升預(yù)測和識別的精度有著良好表現(xiàn)。深度學(xué)習(xí)方法也越來越多的應(yīng)用到了SOC的預(yù)測中,如卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[4]、長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)[5]和雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory,BiLSTM)[6]。面對復(fù)雜的預(yù)測問題,單一網(wǎng)絡(luò)結(jié)構(gòu)的深度學(xué)習(xí)方法往往難以平衡訓(xùn)練時(shí)間和精度。由于神經(jīng)元節(jié)點(diǎn)具有獨(dú)特的循環(huán)結(jié)構(gòu),多層LSTM 網(wǎng)絡(luò)存在訓(xùn)練時(shí)間過長的問題。同時(shí),提取深層抽象特征的能力也略弱于卷積神經(jīng)網(wǎng)絡(luò)。本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)與雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(CNNBiLSTM)的SOC預(yù)測方法,結(jié)合了兩種網(wǎng)絡(luò)的優(yōu)勢,對比實(shí)驗(yàn)顯示,新方法的預(yù)測網(wǎng)絡(luò)精度有明顯提高。
CNN 是一種前饋神經(jīng)網(wǎng)絡(luò),其模型結(jié)構(gòu)主要包括輸入層、卷積層、池化層、全連接層和輸出層[7],具體結(jié)構(gòu)如圖1 所示。給定一個(gè)數(shù)據(jù)集D,它包含一個(gè)樣本和一個(gè)SOC標(biāo)簽每 個(gè) 樣 本 由n個(gè) 用表示的特征組成。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
CNN 的輸入是樣本xi,xi∈Rn×d,其中n是特征數(shù),d是向量維數(shù)。卷積運(yùn)算主要完成特征提取。輸入濾波器特征由一組濾波器提?。?/p>
式中:ω 是卷積核;g是卷積核的大?。粁i:i+g-1是一個(gè)由i到i+g-1個(gè)特征組成的向量;b是一個(gè)偏置項(xiàng)。卷積層之后,特征矩陣為J,J={c1,c2,…,cn-g+1}。
對于池化層,對卷積層后得到的局部特征矩陣C進(jìn)行下采樣,得到局部值的最優(yōu)解。這里使用MaxPooling 功能,如公式(2)所示:
因?yàn)锽iLSTM 輸入必須是一個(gè)序列化的結(jié)構(gòu),池化會中斷序列結(jié)構(gòu)J,所以需要添加一個(gè)完全連接的層,將池化層之后的Mi個(gè)向量連接到一個(gè)向量Q中。采用新的連續(xù)高階窗口Q作為BiLSTM 的輸入。
LSTM 是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的一個(gè)變體,它有一個(gè)記憶單元,記憶單元包括遺忘、記憶和輸出。遺忘門ft、記憶門it和輸出門ot是根據(jù)控制最后時(shí)刻的隱藏狀態(tài)ht-1和當(dāng)前輸入xt來計(jì)算的,能夠保留重要信息,遺忘不重要信息,消除遞歸神經(jīng)網(wǎng)絡(luò)的梯度爆炸或梯度消失問題。其結(jié)構(gòu)如圖2 所示,計(jì)算公式如下:
圖2 LSTM模型的網(wǎng)絡(luò)結(jié)構(gòu)
式中:Wf、Uf、Wi、Ui、Wc、Uc、Wo、Uo是權(quán)重矩陣;bf、bi、bc、bo是偏差向量;Ct和Ct-1是當(dāng)前和最后一個(gè)記憶狀態(tài);tanh 和logistic都是激活函數(shù)。
BiLSTM 是前向LSTM 和后向LSTM 的組合。如果在時(shí)間t時(shí)正向LSTM 輸出的隱藏狀態(tài)記錄為a,反向LSTM 輸出的隱藏狀態(tài)為b,則BiLSTM 輸出的隱藏狀態(tài)為:
本文在研究現(xiàn)有神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上,提出了一種基于CNN-BiLSTM 網(wǎng)絡(luò)的鋰電池SOC預(yù)測方法。其總體思路是首先將歸一化后的數(shù)據(jù)作為CNN 網(wǎng)絡(luò)的輸入,通過卷積網(wǎng)絡(luò)進(jìn)行特征提取,然后引入BiLSTM 網(wǎng)絡(luò)進(jìn)行特征的長期依賴性學(xué)習(xí),再加入一個(gè)全連接層來預(yù)測SOC,通過設(shè)置dropout 參數(shù)來防止過度擬合。模型結(jié)構(gòu)如圖3 所示。
圖3 CNN-BiLSTM網(wǎng)絡(luò)模型結(jié)構(gòu)
為了驗(yàn)證模型的有效性,本文采用的實(shí)驗(yàn)數(shù)據(jù)集是來自馬里蘭大學(xué)CALCE 電池研究小組K2 鋰電池測試數(shù)據(jù)[8],在2.6 A 下對蓄電池進(jìn)行恒流充電,充電至電壓為4.2 V,再恒壓放電至電流<0.08 A,休息2 min 并測量電阻,再休息1 min,以此得到電池的各項(xiàng)參數(shù)。數(shù)據(jù)集共有16 241 個(gè)采樣文件,包括訓(xùn)練集和測試集兩部分。訓(xùn)練集包含14 000 個(gè)樣本,測試集包含2 741 個(gè)樣本,選取電池的電壓、電流和內(nèi)阻作為特征,每個(gè)樣本對應(yīng)于該時(shí)間點(diǎn)電池的電壓、電流、內(nèi)阻和SOC值。具體參數(shù)如圖4、圖5 所示。
圖4 部分?jǐn)?shù)據(jù)電壓和電流
圖5 部分?jǐn)?shù)據(jù)內(nèi)阻和SOC值
首先對樣本數(shù)字字段進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化。數(shù)據(jù)標(biāo)準(zhǔn)化過程將消除指標(biāo)之間的維度影響,解決數(shù)據(jù)指標(biāo)之間的不可比較性,使指標(biāo)保持在同一數(shù)量級,適合于綜合比較評價(jià)。將數(shù)據(jù)全部標(biāo)準(zhǔn)化到[0,1]的范圍內(nèi),經(jīng)過特征縮放后,梯度下降過程更加簡單,收斂速度更快。數(shù)據(jù)標(biāo)準(zhǔn)化公式如下:
式中:xi是樣本在i時(shí)刻的監(jiān)測數(shù)據(jù),min(xi)和max(xi)分別是樣本所有時(shí)刻數(shù)據(jù)的最小值和最大值;Z是歸一化后的值。
基于CNN-BiLSTM 的鋰電池SOC預(yù)測過程如圖6 所示。在訓(xùn)練階段,對原始的數(shù)據(jù)集數(shù)據(jù)進(jìn)行預(yù)處理,然后將預(yù)處理后的訓(xùn)練集樣本放入模型中進(jìn)行訓(xùn)練。CNN 用于提取預(yù)處理后訓(xùn)練樣本的局部特征,BiLSTM 用于理解特征樣本對正向和反向的長期依賴性,以便進(jìn)行深度學(xué)習(xí)。最后,利用測試集對訓(xùn)練好的模型進(jìn)行測試,得出預(yù)測誤差和結(jié)果。
圖6 鋰電池SOC預(yù)測框架圖
接下來設(shè)定實(shí)驗(yàn)的評價(jià)指標(biāo)來反映模型的性能,并對模型的結(jié)果進(jìn)行評價(jià)。評價(jià)模型性能的指標(biāo)有多種,本文使用的評估指標(biāo)是均方根誤差(RMSE)和平均絕對誤差(MAE)。RMSE和MAE用于測量估計(jì)值和實(shí)際值之間的誤差,RMSE和MAE的值越小,偏差越小。RMSE和MAE公式如下:
式中:yi是真實(shí)SOC值;是預(yù)測SOC值。
將預(yù)處理后的數(shù)據(jù)輸入模型進(jìn)行訓(xùn)練。通過多次實(shí)驗(yàn),最終選取卷積神經(jīng)網(wǎng)絡(luò)的卷積核個(gè)數(shù)為15,大小為[2,1],移動(dòng)步長為[1,1],最大池化大小為[3,1]。激活函數(shù)選擇修正線性單元(Rectified Linear Unit,ReLU)函數(shù)。雙向長、短期記憶網(wǎng)絡(luò)的隱藏層數(shù)為3,節(jié)點(diǎn)數(shù)分別設(shè)為50、20 和100。初始學(xué)習(xí)率設(shè)為0.001,訓(xùn)練輪數(shù)epoch 為20,Dropout 參數(shù)均設(shè)置為0.1。全連接層的激活函數(shù)為ReLU,設(shè)置模型的優(yōu)化器為適應(yīng)性矩估計(jì)(Adaptive Moment Estimation,Adam)函數(shù)來更新模型的權(quán)重與偏置,損失函數(shù)使用均方誤差。
為了驗(yàn)證該算法的優(yōu)越性,通過Matlab 軟件同時(shí)進(jìn)行了四組對比實(shí)驗(yàn),分別采用GRU 模型、LSTM 模型、BiLSTM 模型和CNN-LSTM 模型進(jìn)行訓(xùn)練和預(yù)測。數(shù)據(jù)處理和訓(xùn)練過程的參數(shù)設(shè)置與所提預(yù)測網(wǎng)絡(luò)類似,這里不再贅述。最后,各模型的預(yù)測誤差如表1 所示。從結(jié)果可以看出,相比于其他模型,本文提出的模型效果最好,預(yù)測誤差最小。
表1 不同模型預(yù)測算法的比較 %
圖7 顯示了不同模型前5 輪訓(xùn)練在訓(xùn)練集上的損失函數(shù)曲線,以便我們更直觀、清晰地了解本文所提出模型的預(yù)測情況。從曲線可以看出,相比于其他模型,CNN-BiLSTM 模型所需的訓(xùn)練時(shí)間相對較短,模型損失函數(shù)收斂得非常快,并且穩(wěn)定在一個(gè)相當(dāng)?shù)偷闹?,取得了很好的效果?/p>
圖7 不同模型的損失函數(shù)部分曲線
圖8 顯示了SOC循環(huán)過程中的預(yù)測結(jié)果。從圖8 中可以看出,GRU、LSTM、BiLSTM 由于不能提取高級特征,其預(yù)測值與實(shí)際SOC值相差較大。相比之下,CNN-LSTM 網(wǎng)絡(luò)和所提出的CNN-BiLSTM 網(wǎng)絡(luò)預(yù)測的SOC更加平滑和準(zhǔn)確。總體看來,所提出的CNN-BiLSTM 網(wǎng)絡(luò)和CNN-LSTM 網(wǎng)絡(luò)都產(chǎn)生了令人滿意的結(jié)果,其中CNN-BiLSTM 網(wǎng)絡(luò)更好一些。
圖8 不同模型SOC預(yù)測的比較
實(shí)驗(yàn)結(jié)果基本符合預(yù)期,LSTM 的記憶門和遺忘門使得它在時(shí)間序列預(yù)測問題上有更好的表現(xiàn);GRU 作為LSTM 的一種變體,結(jié)構(gòu)更加簡單,也可以解決時(shí)間依賴問題,效果略好于LSTM;BiLSTM 分別從正向和反向提取信息,取得了比LSTM 更好的預(yù)測效果;CNN-LSTM 結(jié)合了CNN 和LSTM 兩者的優(yōu)點(diǎn),具有更快的訓(xùn)練速度和更好的效果。最后,從圖中可以明顯看出,本文介紹的基于CNN-BiLSTM 的SOC預(yù)測網(wǎng)絡(luò)預(yù)測效果最好,能夠進(jìn)一步提高預(yù)測精度。
本文提出了一種基于CNN-BiLSTM 網(wǎng)絡(luò)的鋰電池SOC預(yù)測方法。通過CNN 提取出鋰電池?cái)?shù)據(jù)中的高級特征,然后利用BiLSTM 解決單個(gè)CNN 不能考慮前、后時(shí)間特征的問題,同時(shí)避免了簡單RNN 引起的梯度爆炸或梯度消失等問題。CNN-BiLSTM 模型的RMSE和MAE值分別為21.704 0 和18.746 4,進(jìn)一步提高了精度。通過對比實(shí)驗(yàn)結(jié)果證明,CNNBiLSTM 預(yù)測網(wǎng)絡(luò)模型相比于GRU、LSTM、BiLSTM 和CNNLSTM 具有更高的精確性和有效性。然而,CNN 網(wǎng)絡(luò)在聯(lián)合網(wǎng)絡(luò)中的深度還不夠。如何利用更深層次的CNN 網(wǎng)絡(luò)來提高預(yù)測精度將是下一步工作的目標(biāo)。