倪水平,李慧芳
(河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南焦作 454003)
(*通信作者電子郵箱lihuifang1112@163.com)
美國(guó)先進(jìn)電池聯(lián)合會(huì)(United States Advanced Battery,USABC)將電池荷電狀態(tài)(State-Of-Charge,SOC)定義為:電池在一定放電倍率下,剩余電量與在相同條件下額定電量的比值。對(duì)電池SOC的準(zhǔn)確穩(wěn)定估計(jì)有助于保護(hù)電池不會(huì)因?yàn)檫^沖過放而引起電池?fù)p傷,這是電池管理的重要環(huán)節(jié)[1]。影響電池SOC 的因素有很多。在電池能夠正常使用的情況下,影響電池SOC預(yù)測(cè)的最主要因素是電流、電壓、電阻和環(huán)境溫度等。本文在室溫下對(duì)電池進(jìn)行循環(huán)充放電實(shí)驗(yàn)得到電流、電壓、電阻以及對(duì)應(yīng)的SOC,通過電流、電壓、電阻預(yù)測(cè)電池SOC。電流、電壓、電阻與電池SOC 之間具有非線性映射關(guān)系。
傳統(tǒng)的安時(shí)積分法具有累計(jì)誤差的缺陷[2],且需要提前獲得電池的初始SOC[3];傳統(tǒng)的開路電壓法需要相當(dāng)長(zhǎng)的測(cè)量時(shí)間[4];現(xiàn)有的Kalman 濾波法的計(jì)算量大[5]且需要預(yù)先建立復(fù)雜的電池模型[6-7],這會(huì)影響電池的SOC 估計(jì)精確度。神經(jīng)網(wǎng)絡(luò)法具有較強(qiáng)的非線性映射能力,反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network,BPNN)方法[8-10]被用于電池SOC 預(yù)測(cè)。隨著深度學(xué)習(xí)中卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)與循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)在多個(gè)領(lǐng)域的廣泛應(yīng)用,與深度學(xué)習(xí)相關(guān)的算法被用于電池SOC 的預(yù)測(cè)。RNN 可以有效保存歷史輸入信息,且具有時(shí)序記憶能力[11],但SimpleRNN(Simple Recurrent Neural Network)會(huì)隨著時(shí)間步的延長(zhǎng)而發(fā)生信息丟失。長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)依賴于過去樣本的輸入且有效解決了SimpleRNN 無法捕獲長(zhǎng)期依賴性的問題[12]。CNN 通過設(shè)置多個(gè)不同的卷積核達(dá)到充分提取輸入信息中不同特征之間深層高級(jí)特征的目的[13],CNN 結(jié)合RNN 的網(wǎng)絡(luò)模型同時(shí)具有提取輸入數(shù)據(jù)中高級(jí)特征和保存歷史輸入信息的能力。
針對(duì)電池SOC 預(yù)測(cè)精確度與穩(wěn)定性問題,本文提出一種將一維卷積神經(jīng)網(wǎng)絡(luò)(one-Dimensional Convolutional Neural Network,1D CNN)與LSTM 結(jié) 合 的1D CNN-LSTM(one-Dimensional Convolutional Neural Network combined with Long Short-Term Memory)模型預(yù)測(cè)電池SOC,利用1D CNN 提取數(shù)據(jù)的空間特征,LSTM保存歷史輸入信息。該方法在充分使用輸入數(shù)據(jù)的特征信息的同時(shí),又能保存歷史輸入信息并與當(dāng)前的輸入信息一起映射到當(dāng)前的預(yù)測(cè)SOC。與BPNN 模型、1D CNN 模型、門控循環(huán)單元(Gated Recurrent Unit,GRU)模型、1D CNN 與GRU 結(jié) 合 的1D CNN-GRU(one-Dimensional Convolutional Neural Network combined with Gated Recurrent Unit)模型、LSTM 模型和SimpleRNN 模型相比,1D CNN-LSTM模型具有更準(zhǔn)確穩(wěn)定的SOC預(yù)測(cè)效果。
1D CNN 與LSTM 循環(huán)神經(jīng)網(wǎng)絡(luò)聯(lián)合 的1D CNN-LSTM 深度神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示。輸入層Ct、Vt和Rt分別表示第t個(gè)樣本的電流、電壓和電阻。隱藏層由1D CNN 層與LSTM 層組成。一層全連接層(Fully Connected Layer,F(xiàn)CL)作為輸出層用于回歸預(yù)測(cè),該層將輸出預(yù)測(cè)值SOC。
圖1 1D CNN-LSTM模型結(jié)構(gòu)Fig.1 Structure of 1D CNN-LSTM model
CNN是由LeCun等[14]在深度學(xué)習(xí)研究中首次提出的一種成功的深度學(xué)習(xí)架構(gòu),同時(shí)也是一種有效用于特征提取和模式識(shí)別的前饋神經(jīng)網(wǎng)絡(luò)[15],最常應(yīng)用在圖像領(lǐng)域中的監(jiān)督學(xué)習(xí)問題上,例如計(jì)算機(jī)視覺、圖像識(shí)別等。CNN可通過卷積層的濾波器提取輸入數(shù)據(jù)之間的相互關(guān)系。
CNN 使用少量參數(shù)捕捉輸入數(shù)據(jù)的空間特征,并將其組合起來形成高級(jí)數(shù)據(jù)特征,最終將這些高級(jí)數(shù)據(jù)特征輸入全連接層進(jìn)行進(jìn)一步的回歸預(yù)測(cè)或分類預(yù)測(cè)。
典型的CNN 結(jié)構(gòu)由輸入層、卷積層、池化層、全連接層和輸出層組成。經(jīng)過多個(gè)濾波器操作之后,CNN 可以通過逐層的卷積和池化操作提取數(shù)據(jù)特征。濾波器可根據(jù)輸入數(shù)據(jù)的大小以及提取特征的需要設(shè)置適當(dāng)?shù)拇翱诖笮∫约按翱诨瑒?dòng)的步幅大小。典型卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 典型卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structure of typical CNN
由于CNN 已經(jīng)成功地應(yīng)用于二維圖像的處理方面,因此也可以將相同的思想用于處理一維數(shù)據(jù)[16]。在卷積層中,輸入的數(shù)據(jù)信息在流向下一層之前需要經(jīng)過卷積操作和激活函數(shù)的計(jì)算。該操作如式(1)所示:
式中:Wcnn表示濾波器的權(quán)重系數(shù),即卷積核;xt表示第t個(gè)輸入樣本數(shù)據(jù)信息;*表示xt與Wcnn之間的離散卷積運(yùn)算;bcnn為偏置參數(shù),將在對(duì)模型進(jìn)行訓(xùn)練時(shí)通過學(xué)習(xí)獲得;σcnn表示激活函數(shù);ht表示卷積操作結(jié)束后的輸出數(shù)據(jù)。單個(gè)輸入樣本由電流、電壓和電阻組成。含有3 個(gè)神經(jīng)元節(jié)點(diǎn)的一維卷積層的計(jì)算過程如圖3所示。
圖3 一維卷積層機(jī)制Fig.3 1D convolutional layer mechanism
每個(gè)神經(jīng)元均包含一個(gè)濾波器。輸入數(shù)據(jù)將與每一個(gè)濾波器作卷積操作,結(jié)果將會(huì)被堆疊在一起作為輸出數(shù)據(jù)。例如,當(dāng)使用濾波器(-1,0),滑動(dòng)窗口的步長(zhǎng)為1,沒有偏置參數(shù)時(shí),則第1 個(gè)輸出為C1×(-1) +V1× 0=-C1,第2 個(gè)輸出為V1×(-1) +R1× 0=-V1;當(dāng)使用濾波器(0,1),窗口的滑動(dòng)步長(zhǎng)為1,沒有偏置參數(shù)時(shí),則第1 個(gè)輸出為C1×0+V1×1=V1,第2 個(gè)輸出為V1×0+R1×1=R1;當(dāng)使用濾波器(1,0),窗口的滑動(dòng)步長(zhǎng)為1,沒有偏置參數(shù)時(shí),則第1 個(gè)輸出為C1×1+V1×0=C1,第2個(gè)輸出為V1× 1+R1× 0=V1。
一個(gè)卷積層通常包含多個(gè)具有相同維度大小的不同的濾波器[16]。為獲取不同的數(shù)據(jù)特征,在一維卷積層中設(shè)置相同大小的不同濾波器。濾波器的大小不能超過單個(gè)樣本數(shù)據(jù)的大小。若輸入的單個(gè)樣本數(shù)據(jù)維度為p,濾波器窗口的高度為q,則經(jīng)過一維卷積操作后輸出的單個(gè)樣本數(shù)據(jù)維度為p-q+1。如圖3 所示,一個(gè)一維卷積層中設(shè)置3 個(gè)高度(q)均為2 的濾波器,輸入的樣本數(shù)據(jù)維度(p)為3,則該樣本數(shù)據(jù)經(jīng)過一個(gè)濾波器時(shí)輸出的特征樣本維度為3-2+1=2。
由于本文中樣本數(shù)據(jù)的單個(gè)樣本高度為3,本文將濾波器的高度設(shè)置為2。不同的濾波器會(huì)提取不同的數(shù)據(jù)特征。卷積層的卷積操作可以可視化為一個(gè)相同大小的滑動(dòng)窗口,以一定的步長(zhǎng)沿著輸入數(shù)據(jù)移動(dòng)。對(duì)于窗口的每次停留,輸入數(shù)據(jù)被檢查的部分將會(huì)和過濾器之間作內(nèi)部積的計(jì)算,并將計(jì)算結(jié)果作為輸出數(shù)據(jù)的一個(gè)特征元素。
對(duì)于空間維度較低的數(shù)據(jù),可以使用卷積層來提取數(shù)據(jù)特征,而無需添加池化層。
SimpleRNN 可有效解決非線性數(shù)值型時(shí)間序列的回歸預(yù)測(cè)問題,但在對(duì)模型進(jìn)行訓(xùn)練的過程中,隨著時(shí)間步的推移,會(huì)發(fā)生梯度下降或者梯度爆炸的現(xiàn)象。這將會(huì)使得前期的歷史輸入信息發(fā)生丟失或者產(chǎn)生無效信息,從而導(dǎo)致預(yù)測(cè)結(jié)果錯(cuò)誤。隨著SimpleRNN 層的增加,網(wǎng)絡(luò)最終將變得不可訓(xùn)練。為解決上述問題,Hochreiter等[17]提出了LSTM算法,該算法可以將數(shù)據(jù)信息存儲(chǔ)到更長(zhǎng)的時(shí)間步長(zhǎng)。LSTM 卷積神經(jīng)網(wǎng)絡(luò)的展開圖如圖4 所示,其中Xn與hn分別表示模型的第n個(gè)輸入數(shù)據(jù)與輸入數(shù)據(jù)所對(duì)應(yīng)的輸出數(shù)據(jù)。
圖4 LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)Fig.4 LSTM recurrent neural network
對(duì)于有規(guī)律的數(shù)值型時(shí)間序列,即當(dāng)時(shí)間(序列順序)對(duì)數(shù)據(jù)很重要時(shí),Xn表示一個(gè)數(shù)據(jù)批量,這一個(gè)數(shù)據(jù)批量組成一個(gè)樣本;當(dāng)序列順序?qū)π蛄袛?shù)據(jù)不重要時(shí),Xn表示單個(gè)樣本點(diǎn)。如本文的實(shí)驗(yàn)數(shù)據(jù)為序列順序不重要的序列數(shù)據(jù),則Xn表示由電流、電壓和電阻組成的單個(gè)樣本,hn表示第n個(gè)樣本的預(yù)測(cè)值SOC。LSTM的單元結(jié)構(gòu)如圖5所示。
圖5 LSTM單元結(jié)構(gòu)Fig.5 LSTM cell structure
LSTM單元可使用有效信息填充狀態(tài)單元,也可刪除無效信息。這個(gè)過程中使用的結(jié)構(gòu)稱為門限。門限由1個(gè)sigmoid函數(shù)點(diǎn)乘1 個(gè)矩陣組成。sigmoid 函數(shù)輸出1 個(gè)0 到1 之間的數(shù)值來描述每個(gè)信息通過門限的程度,其中0 表示所有信息禁止通過,1表示所有信息通過。
LSTM的更新公式如式(2)~(6)所示:
其中:σ和tanh 分別表示sigmoid 激活函數(shù)和雙曲正切激活函數(shù);W和b分別表示權(quán)值矩陣和偏置參數(shù);xt表示LSTM 單元在t時(shí)刻的輸入;ht表示在t時(shí)刻xt對(duì)應(yīng)單元的輸出;ct表示LSTM 在t時(shí)刻的狀態(tài)單元。整個(gè)LSTM 單元包括3個(gè)門限,即遺忘門ft、輸入門it和輸出門ot。
實(shí)驗(yàn)硬件設(shè)施使用Intel Xeon Gold 5118 CPU@2.30 GHz服務(wù)器,Window10 旗艦版64 位操作系統(tǒng),16 GB 運(yùn)行內(nèi)存和500 GB 硬盤。編程軟件為Jupyter Notebook,并以基于TensorFlow 的深度學(xué)習(xí)框架Keras 作為支撐,實(shí)現(xiàn)1D CNNLSTM聯(lián)合神經(jīng)網(wǎng)絡(luò)仿真模型的構(gòu)建。
本文從美國(guó)馬里蘭(Maryland)大學(xué)的高級(jí)生命周期工程中心(Center for Advanced Life Cycle Engineering,CALCE)[18]電池研究小組獲取K2 型號(hào)LiFePO4 電池的部分測(cè)試數(shù)據(jù)作為本文的實(shí)驗(yàn)數(shù)據(jù),在恒溫下對(duì)K2 型號(hào)LiFePO4 電池進(jìn)行恒流放電,再進(jìn)行恒壓充電,一次放電過程和一次充電過程為一個(gè)充放電循環(huán)。CALCE 電池研究小組已對(duì)K2 型號(hào)LiFePO4電池進(jìn)行多次循環(huán)充放電實(shí)驗(yàn)并記錄了實(shí)驗(yàn)數(shù)據(jù)。
獲取CALCE中編號(hào)為K2-016的數(shù)據(jù)包中的部分?jǐn)?shù)據(jù),共包括16 219 個(gè)樣本數(shù)據(jù)。將這16 219 個(gè)樣本劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集3 個(gè)數(shù)據(jù)集,其中訓(xùn)練集包含11 364 個(gè)樣本,驗(yàn)證集包含2 430 個(gè)樣本,測(cè)試集包含2 425 個(gè)樣本。訓(xùn)練集的電流、電壓、電阻和實(shí)際SOC 分別如圖6(a)、圖6(b)、圖7(a)和圖7(b)所示。
圖7 訓(xùn)練集電阻和實(shí)際SOCFig.7 Resistance and actual SOC of training set
測(cè)試集的電流、電壓、電阻和實(shí)際SOC 分別如圖8(a)、圖8(b)、圖8(c)和圖8(d)所示。
圖8 測(cè)試集電流、電壓、電阻和實(shí)際SOCFig.8 Current,voltage,resistance and actual SOC of test set
SOC 與電流、電壓和電阻的關(guān)系分別如圖9(a)、圖9(b)和圖9(c)所示。圖9中的電流、電壓、電阻和實(shí)際SOC 均為測(cè)試集中的數(shù)據(jù)。
圖9 SOC與電流、電壓、電阻的關(guān)系Fig.9 Relation between SOC and current,voltage,resistance
電池剩余電量SOC 保持在0~1的數(shù)值,而電流、電壓和電阻的取值范圍差別較大,為提高算法的訓(xùn)練速度和靈敏性,因此需要對(duì)原始訓(xùn)練集、驗(yàn)證集和測(cè)試集的輸入數(shù)據(jù)(電流、電壓、電阻)作標(biāo)準(zhǔn)化處理。因?yàn)樵谀P陀?xùn)練過程中使用取值范圍差別較大的數(shù)據(jù)時(shí),模型雖會(huì)自動(dòng)適應(yīng)這種取值范圍不同的數(shù)據(jù),但模型的學(xué)習(xí)過程將會(huì)變得困難。這里選用的數(shù)據(jù)標(biāo)準(zhǔn)化處理方法如式(7)所示:
表1 原始電流、電壓和電阻Tab.1 Origin current,voltage and resistance
表2 標(biāo)準(zhǔn)化后的電流、電壓和電阻Tab.2 Standardized current,voltage and resistance
在1D CNN-LSTM 模型中,設(shè)置一層具有192 個(gè)神經(jīng)元節(jié)點(diǎn)的1D CNN 層,一層具有64 個(gè)神經(jīng)元節(jié)點(diǎn)的LSTM 層,一層具有一個(gè)節(jié)點(diǎn)的全連接層(又稱為密集連接層)。為防止模型在訓(xùn)練過程中發(fā)生過擬合,設(shè)置LSTM 層的層間dropout 值為0.5,循環(huán)dropout 值為0.2;設(shè)置模型最大迭代步數(shù)為10 000;模型訓(xùn)練時(shí)的批處理大小為64。
為加快模型收斂,并降低模型學(xué)習(xí)周期,相比于Sigmoid等激活函數(shù),采用修正線性單元(Rectified Linear Unit,ReLU)激活函數(shù)會(huì)明顯減少模型整個(gè)學(xué)習(xí)過程中的計(jì)算量[19]。因此在1D CNN 層與LSTM 層均設(shè)置ReLU 非線性激活函數(shù)。ReLU函數(shù)如式(8)所示:
其中:x表示上一層神經(jīng)網(wǎng)絡(luò)的輸出向量。ReLU 使得輸入的正值不變,負(fù)值變?yōu)?,這種操作將減少參數(shù)間的依存關(guān)系,使神經(jīng)網(wǎng)絡(luò)具有稀疏性,緩解過擬合問題。
在模型訓(xùn)練、驗(yàn)證和測(cè)試的過程中,在前向傳播的最后一步使用均方誤差(Mean Square Error,MSE)作為模型誤差函數(shù)。并使用平均絕對(duì)誤差(Mean Absolute Error,MAE)作為驗(yàn)證模型電池SOC 預(yù)測(cè)效果的指標(biāo)函數(shù)。MSE 與MAE 如式(9)和式(10)所示:
其中:yk和分別表示在k時(shí)刻的實(shí)際SOC 與預(yù)測(cè)SOC。MSE和MAE 均可用來衡量預(yù)測(cè)目標(biāo)與實(shí)際目標(biāo)之間的偏差。MSE是實(shí)際目標(biāo)和預(yù)測(cè)目標(biāo)之間差的平方,然后再求和平均,平方數(shù)據(jù)更容易作微分操作,因此MSE 常被用作回歸預(yù)測(cè)時(shí)的損失函數(shù)。MAE 是絕對(duì)誤差的平均值,能較好地反映預(yù)測(cè)目標(biāo)與實(shí)際目標(biāo)之間誤差的實(shí)際情況。
在1D CNN-LSTM 模型訓(xùn)練的過程中,使用Adam[20]優(yōu)化函數(shù)更新模型的權(quán)重與偏置。Adam 的更新過程如式(11)~(15)所示:
其中:mt和nt分別表示t時(shí)刻梯度的一階矩估計(jì)和二階矩估計(jì),是E[ft(θt)]和E的近似表示;分別表示對(duì)mt和nt的修正,是對(duì)期望的近似無偏估計(jì);θt表示模型參數(shù)。Adam 函數(shù)為Keras 深度學(xué)習(xí)框架中的內(nèi)置函數(shù)可直接調(diào)用,且Adam 中的參數(shù)使用文獻(xiàn)[20]中得到的參數(shù)設(shè)置作為默認(rèn)參數(shù)設(shè)置,其中學(xué)習(xí)率α為0.001,衰減因子β1和β2分別為0.9和0.999,常量ε為10-8。
③戶外廁所應(yīng)布置在院子角落,盡量位于居室和廚房下風(fēng)向,以保證廁所面南、向陽(yáng)、通風(fēng)的要求,儲(chǔ)糞池位置選擇要考慮宜于清掏和出渣需要。
1D CNN-LSTM模型的訓(xùn)練過程如下所示。
步驟1 隨機(jī)初始化模型參數(shù)。設(shè)置完成1D CNN-LSTM模型;隨機(jī)初始化模型的權(quán)重和偏差。
步驟2 模型前向傳播過程。計(jì)算1D CNN-LSTM 模型隱藏層與輸出層的輸出。
步驟3 模型反向傳播過程。計(jì)算隱藏層和輸出層的誤差以及偏導(dǎo)數(shù)。
步驟4 權(quán)重訓(xùn)練。將通過反向傳播得到的偏導(dǎo)數(shù)用于更新網(wǎng)絡(luò)權(quán)重和偏差。
步驟5 判斷是否達(dá)到最大迭代步數(shù)。若達(dá)到最大迭代步數(shù),則模型訓(xùn)練結(jié)束,否則將目前的迭代步數(shù)增加1,并回到步驟2。
使用訓(xùn)練集(11 364樣本)訓(xùn)練設(shè)置完成的1D CNN-LSTM模型,使用驗(yàn)證集(2 430 樣本)驗(yàn)證模型每一步的訓(xùn)練效果。為防止模型在驗(yàn)證集上發(fā)生過擬合,最后使用測(cè)試集(2 425樣本)測(cè)試最終模型。
為確定合適的訓(xùn)練步數(shù),圖10 繪制訓(xùn)練集與驗(yàn)證集在模型訓(xùn)練過程中每一步的MSE,訓(xùn)練步數(shù)從0 步增加到10 000步。如圖10 所示,MSE 在模型訓(xùn)練到300 步以后迅速下降到0.01%以下。模型的訓(xùn)練MSE 和驗(yàn)證MSE 在4 000~6 500 和8 200~8 900 這兩個(gè)訓(xùn)練步數(shù)區(qū)間內(nèi)觀測(cè)到波動(dòng),MSE 突然增加,但很快穩(wěn)定下來,之后又增加。說明Adam 優(yōu)化算法從一個(gè)局部最優(yōu)值跳躍到另一個(gè)局部最優(yōu)值。訓(xùn)練和驗(yàn)證MSE均在6 500 步到8 200 步之間達(dá)到全局最小值。本文將1D CNN-LSTM模型的最佳訓(xùn)練步數(shù)設(shè)置為7 000步。
圖10 訓(xùn)練步數(shù)從0到10 000時(shí)模型訓(xùn)練MSE值與驗(yàn)證MSE值Fig.10 Training MSE and verification MSE of model when training step number varies from 0 to 10 000
1D CNN-LSTM 模型隱藏層中有1D CNN 層 和LSTM 層。1D CNN 層中神經(jīng)元節(jié)點(diǎn)個(gè)數(shù)的設(shè)置與LSTM 層中神經(jīng)元節(jié)點(diǎn)個(gè)數(shù)的設(shè)置都將影響模型的SOC 估計(jì)效果。分別對(duì)1D CNN 層與LSTM 層中神經(jīng)元節(jié)點(diǎn)數(shù)量的設(shè)置進(jìn)行分析。將LSTM 層的神經(jīng)元節(jié)點(diǎn)數(shù)量設(shè)為N1,1D CNN 層的神經(jīng)元節(jié)點(diǎn)數(shù)量設(shè)為N2。
在1D CNN-LSTM 模型隱藏層中,分析LSTM 層中設(shè)置不同神經(jīng)元節(jié)點(diǎn)數(shù)量對(duì)1D CNN-LSTM 模型SOC 預(yù)測(cè)結(jié)果的影響,只改變N1的大小并固定模型中的其他設(shè)置。設(shè)置一層具有64 個(gè)神經(jīng)元節(jié)點(diǎn)的1D CNN 層,濾波器高度為2;設(shè)置一層具有N1個(gè)神經(jīng)元節(jié)點(diǎn)的LSTM 層,N1取6、64、192、320;批處理大小為64。LSTM 層中設(shè)置不同神經(jīng)元節(jié)點(diǎn)數(shù)量的模型預(yù)測(cè)誤差如圖11所示。
圖11 LSTM層中設(shè)置不同神經(jīng)元節(jié)點(diǎn)數(shù)量的模型預(yù)測(cè)誤差Fig.11 Model prediction error under different numbers of neuron nodes of LSTM layer
隨著LSTM 層神經(jīng)元節(jié)點(diǎn)數(shù)量N1的增加,MSE、MAE與最大誤差開始呈現(xiàn)下降的趨勢(shì),但隨著N1的持續(xù)增加,這3個(gè)指標(biāo)又呈現(xiàn)上升的趨勢(shì)。當(dāng)N1為64 時(shí),1D CNN-LSTM 模型的指標(biāo)MSE、MAE 和最大誤差均保持最小。LSTM 層中設(shè)置不同節(jié)點(diǎn)數(shù)量時(shí)的1D CNN-LSTM模型MSE、MAE和最大誤差如圖12所示。
圖12 LSTM層中設(shè)置不同神經(jīng)元節(jié)點(diǎn)數(shù)量時(shí)模型MSE、MAE和最大誤差Fig.12 MSE,MAE and maximum error of model under different numbers of neuron nodes of LSTM layer
同理,分析1D CNN 層中設(shè)置不同神經(jīng)元節(jié)點(diǎn)數(shù)量對(duì)1D CNN-LSTM 模型SOC 預(yù)測(cè)結(jié)果的影響,只改變N2的大小并固定模型中的其他設(shè)置。設(shè)置一層具有64 個(gè)神經(jīng)元節(jié)點(diǎn)的LSTM 層;設(shè)置一層具有N2個(gè)神經(jīng)元節(jié)點(diǎn)的1D CNN 層,濾波器高度為2,N2取6、64、192、320;批處理大小為64。
1D CNN 層中設(shè)置不同節(jié)點(diǎn)數(shù)量時(shí)的模型MSE、MAE 和最大誤差如表3 所示。隨著1D CNN 層神經(jīng)元節(jié)點(diǎn)數(shù)量N2的增加,MSE、MAE 與最大誤差開始呈現(xiàn)下降的趨勢(shì);但隨著N2的持續(xù)增加,這3 個(gè)指標(biāo)又呈現(xiàn)上升的趨勢(shì)。雖然當(dāng)N2為192 時(shí),1D CNN-LSTM 模型的指標(biāo)MAE 較N2為64 時(shí)有所升高,但模型的指標(biāo)MSE 與最大誤差均下降,當(dāng)模型指標(biāo)MSE較小時(shí),模型具有更好的穩(wěn)定性。為提高1D CNN-LSTM 模型預(yù)測(cè)準(zhǔn)確度與穩(wěn)定性,并避免由于模型過于復(fù)雜而導(dǎo)致模型過擬合,應(yīng)適當(dāng)?shù)卦龃驨1和N2。
表3 1D CNN層中設(shè)置不同節(jié)點(diǎn)數(shù)量時(shí)的MSE、MAE和最大誤差Tab.3 MSE,MAE and maximum error of model under different numbers of neuron nodes of 1D CNN layer
通過上述分析,本文將模型中的1D CNN 層神經(jīng)元節(jié)點(diǎn)數(shù)量設(shè)置為192,LSTM層神經(jīng)元節(jié)點(diǎn)數(shù)量設(shè)置為64。
批處理大小為一次訓(xùn)練時(shí)的樣本數(shù)量,將整個(gè)樣本分成幾個(gè)小批量,輸入到1D CNN-LSTM 模型中。在模型訓(xùn)練過程中分析不同批處理大小對(duì)1D CNN-LSTM 模型SOC 預(yù)測(cè)結(jié)果的影響,將只改變批處理大小的設(shè)置并固定模型中的其他設(shè)置。根據(jù)上述對(duì)隱藏層節(jié)點(diǎn)數(shù)量設(shè)置的研究,設(shè)置一層具有192個(gè)神經(jīng)元節(jié)點(diǎn)的1D CNN 層,濾波器高度為2;設(shè)置一層具有64 個(gè)神經(jīng)元節(jié)點(diǎn)的LSTM 層;批處理大小取64 和192。設(shè)置不同批處理大小的模型預(yù)測(cè)誤差如圖13所示。
圖13 設(shè)置不同批處理大小的模型預(yù)測(cè)誤差Fig.13 Predicted errors under different batch sizes
設(shè)置不同批處理大小的1D CNN-LSTM模型MSE、MAE和最大誤差如表4 所示。隨著批處理大小的增加,模型的MSE、MAE 和最大誤差均呈現(xiàn)升高趨勢(shì),即模型的SOC 預(yù)測(cè)效果在變差。因此本文將批處理大小設(shè)置為64。
表4 設(shè)置不同批處理大小時(shí)的模型MSE、MAE和最大誤差Tab.4 MSE,MAE and maximum error of model under different batch sizes
在1D CNN-LSTM 模型隱含層中,分析隱藏層中層數(shù)的設(shè)置對(duì)1D CNN-LSTM 模型SOC 預(yù)測(cè)結(jié)果的影響,只改變隱藏層的層數(shù)設(shè)置并固定模型中的其他設(shè)置。設(shè)1D CNN 層的層數(shù)為M1,設(shè)LSTM層的層數(shù)為M2。
分析1D CNN 層與LSTM 層的層數(shù)的設(shè)置對(duì)模型SOC 預(yù)測(cè)結(jié)果的影響,只改變M1與M2的大小并固定模型中的其他設(shè)置。設(shè)置M1層具有192 個(gè)神經(jīng)元節(jié)點(diǎn)的1D CNN 層,濾波器高度為2;設(shè)置M2層具有64個(gè)神經(jīng)元節(jié)點(diǎn)的LSTM 層;批處理大小取64;M1取1和2。M2取1和2。如圖14為M1與M2分別取不同值時(shí)模型的預(yù)測(cè)誤差。
圖14 設(shè)置不同隱藏層數(shù)量時(shí)的模型預(yù)測(cè)誤差Fig.14 Prediction errors under different hidden layer numbers
設(shè)置不同隱藏層層數(shù)時(shí)的模型MSE、MAE 和最大誤差如表5 所示。當(dāng)M1與M2均為1 時(shí),1D CNN-LSTM 模型的3 個(gè)指標(biāo)均保持最?。划?dāng)M1為1 且M2為2 時(shí),模型的3 個(gè)指標(biāo)均升高;當(dāng)M1為2且M2為1時(shí),模型的MSE、MAE和最大誤差升高的幅度更明顯。M1和M2數(shù)量的增加并沒有提高模型的預(yù)測(cè)精確度。
表5 設(shè)置不同隱藏層層數(shù)時(shí)的模型MSE、MAE和最大誤差Tab.5 MSE,MAE and maximum error of model under different hidden layer numbers
通過實(shí)驗(yàn)分析,本文將在1D CNN-LSTM 模型中設(shè)置一層1D CNN層與一層LSTM層。
對(duì)比分析1D CNN-LSTM 模型與1D CNN 模型、BPNN 模型、1D CNN-GRU 模型、LSTM 模型、GRU 模型和SimpleRNN 模型的電池SOC預(yù)測(cè)效果。
BPNN 模型、1D CNN 模型與1D CNN-LSTM 模型的SOC預(yù)測(cè)誤差如圖15所示。
圖15 1D CNN-LSTM模型、1D CNN模型和BPNN模型的預(yù)測(cè)誤差Fig.15 Prediction errors of 1D CNN-LSTM model,1D CNN model and BPNN model
與1D CNN-LSTM模型相比,1D CNN模型與BPNN模型不依賴于過去樣本的輸入,圖15 中顯示這兩種模型預(yù)測(cè)誤差值具有較大波動(dòng)。1D CNN-LSTM 模型因?yàn)橛蠰STM 層的存在而具有保存歷史輸入信息的能力。相比之下,1D CNN-LSTM 模型的SOC 預(yù)測(cè)值更準(zhǔn)確和平滑。1D CNN-LSTM 模型的最大預(yù)測(cè)誤差為0.99%。與1D CNN 模型和BPNN 模型相比,1D CNN-LSTM模型的最大預(yù)測(cè)誤差率分別降低了1.05個(gè)百分點(diǎn)和1.31個(gè)百分點(diǎn)。
1D CNN-LSTM 模型與1D CNN-GRU 模型因?yàn)橛蠰STM 與GRU 的存在才具有保存歷史輸入信息的能力。LSTM 與GRU均是為了優(yōu)化SimpleRNN 而提出的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。針對(duì)本文的電池SOC 預(yù)測(cè)問題,LSTM 與GRU 具有不同的預(yù)測(cè)效果。在本文的實(shí)驗(yàn)中,1D CNN-LSTM 模型比1D CNN-GRU 模型更適合電池SOC 的預(yù)測(cè)。與1D CNN-GRU 模型相比,1D CNN-LSTM 模型的最大預(yù)測(cè)誤差率降低了1.95 個(gè)百分點(diǎn)。1D CNN-LSTM 模型和1D CNN-GRU 模型的電池SOC 預(yù)測(cè)誤差如圖16所示。
圖16 1D CNN-LSTM模型和1D CNN-GRU模型的預(yù)測(cè)誤差Fig.16 Prediction errors of 1D CNN-LSTM model and 1D CNN-GRU model
1D CNN-LSTM 模型、1D CNN 模型、BPNN 模型、1D CNNGRU 模型、LSTM 模型、GRU 模型和SimpleRNN 模型的MSE、MAE 和最大誤差如表6 所示。BPNN 模型為典型的非線性映射模型,全部由全連接層組成,該模型不具有從輸入數(shù)據(jù)中提取高級(jí)數(shù)據(jù)特征的能力,也不具有保存歷史輸入信息的能力。1D CNN模型由一維卷積層和全連接層組成,該模型則能夠從輸入數(shù)據(jù)中提取高級(jí)數(shù)據(jù)特征。由表6 可知,LSTM 模型、GRU 模型和SimpleRNN 模型的MSE、MAE 和最大誤差均較大,其最大誤差分別達(dá)到了27.61%、62.75%和47.84%,因此僅使用循環(huán)神經(jīng)網(wǎng)絡(luò)的模型不能降低SOC 的預(yù)測(cè)誤差,可將CNN 與RNN 相結(jié)合達(dá)到降低電池SOC 預(yù)測(cè)誤差的目的。1D CNN-LSTM 模型由一維卷積層與LSTM 層和全連接層組成,1D CNN-GRU 模型由一維卷積層與GRU 層和全連接層組成,由表6 可知,與1D CNN 模型、BPNN 模型、1D CNN-GRU 模型、LSTM 模型、GRU 模型和SimpleRNN 模型相比,1D CNN-LSTM模型的最大預(yù)測(cè)誤差率分別降低了1.05、1.31、1.95、26.62、61.76 和46.85 個(gè)百分點(diǎn)。對(duì)比模型的具體參數(shù)設(shè)置如表7所示。
表6 七種電池SOC預(yù)測(cè)模型的MSE、MAE和最大誤差Tab.6 MSE,MAE and maximum error of 7 kinds of battery SOC prediction models
上述7 種電池SOC 預(yù)測(cè)模型的輸出層中均設(shè)置一層僅含有一個(gè)節(jié)點(diǎn)且無激活函數(shù)的全連接層輸出預(yù)測(cè)值SOC,且所有模型均具有相同的優(yōu)化函數(shù)、隱層激活函數(shù)、誤差函數(shù)和批處理大小。7種電池SOC預(yù)測(cè)模型設(shè)置如表7所示。
表7 七種電池SOC預(yù)測(cè)模型設(shè)置Tab.7 Settings of 7 kinds of battery SOC prediction models
針對(duì)電池的SOC 預(yù)測(cè)穩(wěn)定性及準(zhǔn)確度問題,本文提出一維CNN 與LSTM 結(jié)合的SOC 預(yù)測(cè)模型,該方法通過一維CNN有效地提取數(shù)據(jù)的高級(jí)數(shù)據(jù)特征,達(dá)到充分獲取輸入數(shù)據(jù)中重要信息的目的,并通過使用LSTM 循環(huán)神經(jīng)網(wǎng)絡(luò)保存歷史輸入信息,使前期的輸入信息與當(dāng)前的輸入一起映射到當(dāng)前的輸出。通過分析模型中隱藏層層數(shù)、1D CNN 層與LSTM 層神經(jīng)元節(jié)點(diǎn)數(shù)、和批處理大小的變化對(duì)1D CNN-LSTM 模型SOC 預(yù)測(cè)效果的影響,最終確定模型的最優(yōu)設(shè)置。1D CNNLSTM 模型的MSE、MAE 和最大預(yù)測(cè)誤差分別為0.002 9%、0.402 7%和0.99%。滿足電池SOC 的估計(jì)要求。為進(jìn)一步降低電池SOC 的預(yù)測(cè)誤差,可進(jìn)一步考慮將注意力機(jī)制應(yīng)用于電池SOC 的預(yù)測(cè),注意力機(jī)制具有關(guān)注輸入數(shù)據(jù)中重要信息的能力,并結(jié)合循環(huán)神經(jīng)網(wǎng)絡(luò)達(dá)到降低電池SOC 預(yù)測(cè)誤差的目的。