陳 麗
(1.蘭州理工大學(xué)電氣工程與信息工程學(xué)院 蘭州 730050)(2.甘肅省先進工業(yè)過程控制重點實驗室 蘭州 730050)(3.蘭州理工大學(xué)電氣與控制工程國家級實驗教學(xué)示范中心 蘭州 730050)
鋰電池因其容量大、質(zhì)量輕、高能量密度以及長循環(huán)壽命等突出品質(zhì)而持續(xù)幫助鋰電池在電動汽車儲能設(shè)備市場上占據(jù)主導(dǎo)地位[1]。為保證鋰離子電池的動力性和安全性需要一套完善的電池管理系統(tǒng)(Battery Management System,BMS)對其進行有效的控制和管理。其中,電池的荷電狀態(tài)(State of Charge,SOC)能夠反映電池的能量狀態(tài),獲取準(zhǔn)確的SOC值是實現(xiàn)對BMS的基礎(chǔ)[2~3]。準(zhǔn)確地估算SOC能提高電池的利用率和延長電池的使用壽命,防止其出現(xiàn)過充或放電現(xiàn)象。考慮到鋰電池本身復(fù)雜電化學(xué)特性,SOC無法直接測量,而且SOC與電池電壓、電流、溫度等參數(shù)間表現(xiàn)出強烈的非線性關(guān)系[4],使得準(zhǔn)確估算SOC是一大挑戰(zhàn)。
常用的SOC估計方法有傳統(tǒng)估計法、基于模型的方法以及基于數(shù)據(jù)驅(qū)動的方法。其中,傳統(tǒng)估計法有開路電壓法、安時積分法、內(nèi)阻法和放電實驗法等。
開路電壓法具有最高的估計精度,但要求電池充分靜置達到平衡狀態(tài)后才能測量開路電壓,無法實現(xiàn)SOC的在線估計[5~6];安時積分法操作簡單,可實現(xiàn)在線估計,但不能確定初值,而且電流傳感器受到溫度、噪聲以及其他擾動的影響,容易出現(xiàn)測量電流值的累積誤差而使SOC估計精度降低的現(xiàn)象;內(nèi)阻法需精確測量電池的內(nèi)阻值,對測量儀器的要求非常高,而且電池內(nèi)阻隨電池壽命有顯著變化,因此僅使用電池內(nèi)阻難以精確計算SOC值;放電試驗法對設(shè)備和試驗條件的要求高,而且無法在線估計電池SOC;基于模型的方法是以等效電路模型為基準(zhǔn),結(jié)合卡爾曼濾波類算法進行估算,所以卡爾曼濾波系列算法對模型依賴程度較高。同時,等效電路模型的參數(shù)在估計過程很容易受到電池老化、溫度、循環(huán)時間、放電率、電壓和噪聲等因素的影響,會使估算的結(jié)果出現(xiàn)較大的誤差,且隨著電路模型推導(dǎo)的數(shù)學(xué)模型復(fù)雜度的增加,從而產(chǎn)生計算量大等問題;與基于模型的方法不同,數(shù)據(jù)驅(qū)動法對模型精度和環(huán)境條件不敏感,不需要建立物理模型,可通過電池電流、電壓等數(shù)據(jù)進行充分訓(xùn)練學(xué)習(xí)后建立電流、電壓和 SOC 的映射關(guān)系[7~9]。但該方法通常需要較高的計算成本和較長的處理時間,并且精度在很大程度上取決于訓(xùn)練數(shù)據(jù)。文獻[10]提出了一種遺傳算法的BP網(wǎng)絡(luò)(GA-BP)對蓄電池SOC估算方法。文獻[11]將基于遺傳算法的徑向基函數(shù)(GA-RBF)神經(jīng)網(wǎng)絡(luò)對鋰電池SOC的估算,提高了算法的自適應(yīng)能力。
針對傳統(tǒng)的BP算法容易陷入局部最小點而不是全局最優(yōu)點,且在實際使用中容易產(chǎn)生梯度消失和爆炸等問題,利用學(xué)習(xí)速度與泛化性能都更具優(yōu)勢的ESN網(wǎng)絡(luò),挖掘電池電流與SOC之間的非線性函數(shù)關(guān)系,建立了基于ESN網(wǎng)絡(luò)的SOC預(yù)測模型,該方法只需要訓(xùn)練和計算輸出權(quán)矩陣,減少了計算量。并與其它算法進行了比較分析。最后,通過Matlab軟件編程,驗證了本文所提方法的可行性。
ESN是由德國H.Jaeger等于2001年首次提出的一種新型的遞歸神經(jīng)網(wǎng)絡(luò)[12]。ESN網(wǎng)絡(luò)主要由三個部分組成:帶輸入節(jié)點的線性輸入層、帶神經(jīng)元的非線性儲備池和帶輸出節(jié)點的線性輸出層,如圖1為回聲狀態(tài)網(wǎng)絡(luò)結(jié)構(gòu)示意圖。其中儲備池層由隨機生成的、稀疏連接的大量神經(jīng)元構(gòu)成。ESN算法突出優(yōu)點是訓(xùn)練速度快、簡單,且輸入連接權(quán)值和儲備池內(nèi)部連接權(quán)值在訓(xùn)練和使用過程中基本不變,因此ESN網(wǎng)絡(luò)的權(quán)值和閾值只需要簡單的線性回歸即可計算得到,這樣能確保其解為全局最優(yōu)解[13]。
圖1 回聲狀態(tài)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
假設(shè)系統(tǒng)有K維輸入單元、N維內(nèi)部單元和L維輸出單元的ESN網(wǎng)絡(luò),通過式(1)來表示n時刻輸入矩陣、內(nèi)部狀態(tài)矩陣以及輸出矩陣。
回聲狀態(tài)網(wǎng)絡(luò)的內(nèi)部更新狀態(tài)如式(2)和式(3)所示。
式中,Win、W、Wback、和Wout分別表示輸入、內(nèi)部連接、輸出反饋和輸出的權(quán)重矩陣,權(quán)重矩陣的大小依次為N×K、N×N、N×L和L×(K+L+N),其中W矩陣是高度稀疏的;表示神經(jīng)元激活函數(shù);表示輸出節(jié)點的輸出函數(shù),通常是線性函數(shù)。
ESN神經(jīng)網(wǎng)絡(luò)在訓(xùn)練前需要對Win、Wback進行初始化,且在訓(xùn)練和使用過程中基本不變,因此在ESN神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程中只需要對輸出權(quán)重進行訓(xùn)練和調(diào)整。以下是具體回聲狀態(tài)網(wǎng)絡(luò)的建立流程。
1)初始化
在訓(xùn)練ESN神經(jīng)網(wǎng)絡(luò)之前需要設(shè)置儲備池的規(guī)模N、譜半徑SR、稀疏度SD和輸入縮放尺度IS等參數(shù),且這些參數(shù)之間沒有相關(guān)性。此外,還要將輸入權(quán)值矩陣Win、儲備池的內(nèi)部連接權(quán)值矩陣W和輸出反饋矩陣Wback進行初始化。
2)訓(xùn)練
在訓(xùn)練階段中,首先要對訓(xùn)練樣本進行預(yù)處理;其次使用固定輸入權(quán)值矩陣Win將輸入序列u(n)輸入到儲備池中,通過固定的儲備池連接權(quán)值矩陣W稀疏地相互連接,使儲備池內(nèi)部矩陣x(n)通過式(2)更新,最后通過線性函數(shù)處理得到網(wǎng)絡(luò)輸出y(n),如式(3)所示。
為了計算Wout矩陣,需要從m時刻記錄內(nèi)部狀態(tài)變量和相應(yīng)的樣本數(shù)據(jù),并以向量:
構(gòu)成矩陣B(P-m+1,K+N),以向量:
構(gòu)成矩陣T(P-m+1,L)。
由系統(tǒng)狀態(tài)數(shù)據(jù)和樣本數(shù)據(jù),通過線性回歸得到輸出連接權(quán)Wout。由于內(nèi)部狀態(tài)變量x(n)與網(wǎng)絡(luò)實際輸出之間為線性關(guān)系,故利用網(wǎng)絡(luò)實際輸出逼近網(wǎng)絡(luò)期望輸出y(n):
out為矩陣Wout的元素)的過程需要保證網(wǎng)絡(luò)的均方誤差最小。則問題轉(zhuǎn)化為求解以下的優(yōu)化問題:
從數(shù)學(xué)的觀點看,這是一個線性回歸問題,可歸結(jié)為求矩陣B的逆矩陣問題,即Wout=B-1T,至此ESN的訓(xùn)練過程回聲狀態(tài)結(jié)束[14]。
3)使用
通過以上ESN神經(jīng)網(wǎng)絡(luò)的初始化和訓(xùn)練過程,可直接將輸入向量加載到輸入節(jié)點完成計算,進而在輸出節(jié)點得到結(jié)果。圖2為回聲狀態(tài)網(wǎng)絡(luò)的建立流程。
圖2 回聲狀態(tài)網(wǎng)絡(luò)的建立流程
通常鋰離子電池SOC標(biāo)準(zhǔn)值的獲取需要對鋰離子電池進行放電實驗,然而放電實驗法需要對電池做長時間的靜置處理,無法進行在線測量,耗費時間較長且充放電電流必須為恒定的值,因此不宜用作仿真參考或在實際工程中應(yīng)用。為獲取電池電壓、電流及SOC的值,參考文獻[15~16],本文首先以Matlab/Simulink庫中的電池模塊為基本元件,以美國環(huán)境保護署制定的城市道路循環(huán)工況(UDDS工況)下兩組不同的放電激勵對鋰離子電池放電模型進行放電仿真。其中,圖3為電池模塊驗證實驗Simulink仿真圖。
圖3 電池模塊驗證實驗Simulink仿真圖
本文所用電池模塊的基本參數(shù)如下。
E0=3.7V,Q=12Ah,R=0.0056Ω,IC為UDDS工況下兩組不同的放電電流,得到電池模塊輸出電池電流及SOC如表1所示。其中第一組電池電流I對應(yīng)的SOC估計值如表1的第二列,第二組電池電流I對應(yīng)的SOC估計值如表1的第四列,兩組電流各1000個電流數(shù)據(jù)點。實驗分析中將該SOC值作為實際值SOCS。
本文將表1的兩組數(shù)據(jù)經(jīng)過篩選,得到了如圖4和如圖5的兩組電池電流和SOC值,兩組各800個數(shù)據(jù)點。
圖4 電池電流值
圖5 電池SOC值
表1 部分放電試驗數(shù)據(jù)
考慮該網(wǎng)絡(luò)本身繁瑣程度和計算精度,以電池仿真獲得數(shù)據(jù)電流為輸入,以SOC為輸出,構(gòu)造基于ESN網(wǎng)絡(luò)的SOC誤差預(yù)測模型。根據(jù)圖4和圖5的電流和SOC的值,將其中第一組作為訓(xùn)練集,第二組作為測試集。
為了驗證ESN算法構(gòu)建SOC預(yù)測模型方法的有效性,選擇合適的輸入和輸出至關(guān)重要。作為典型的非線性時變系統(tǒng),電池在運行過程中,頻繁變化的電流是描述電池動態(tài)特性不可或缺的特征量。同時考慮到ESN網(wǎng)絡(luò)的參數(shù)對最終預(yù)測性能的影響,本文通過選擇得到回聲狀態(tài)網(wǎng)絡(luò)最優(yōu)的參數(shù),其中W的稀疏度和譜半徑一般選取在1%~5%和[0,1]之間,以及選擇2%的稀疏度和矩陣的譜半徑為0.6。
在ESN網(wǎng)絡(luò)中,儲備池的大小決定ESN網(wǎng)絡(luò)的最終預(yù)測性能,也反映了網(wǎng)絡(luò)處理非線性問題的能力。在一定范圍內(nèi),儲備池神經(jīng)元的數(shù)量越多,通過儲備池呈現(xiàn)的動態(tài)系統(tǒng)越復(fù)雜,從而網(wǎng)絡(luò)的非線性處理能力越強。對于非線性系統(tǒng),當(dāng)儲備池神經(jīng)元不足時,網(wǎng)絡(luò)對系統(tǒng)的非線性預(yù)測能力會減弱,從而產(chǎn)生欠擬合現(xiàn)象;當(dāng)儲備池中的神經(jīng)元數(shù)量達到一定數(shù)量時,線性擬合能力將不再有明顯增強。此時,盲目增加神經(jīng)元數(shù)量會使網(wǎng)絡(luò)計算復(fù)雜化,并會導(dǎo)致神經(jīng)元過剩和過度擬合現(xiàn)象。因此,儲備池神經(jīng)元數(shù)量的選取需要找到一個折中。
圖6、圖7分別是儲備池神經(jīng)元的數(shù)量為50的ESN網(wǎng)絡(luò)預(yù)測模型結(jié)果和誤差。本文所提出的基于ESN網(wǎng)絡(luò)的鋰離子電池SOC估算方法,前50s預(yù)測產(chǎn)生的最大誤差比較明顯,且具有放大的趨勢;與前50s預(yù)測產(chǎn)生的最大絕對誤差為0.9相比,預(yù)測時間到200s時最大絕對誤差變?yōu)?.39,相比于前50s此預(yù)測模型中的最大絕對誤差減少了51%;同樣與前200s時預(yù)測中的最大誤差相比,預(yù)測時間到600s時,最大絕對誤差為0.23,減少了67%;由此可見,隨著時間的增加,將大大提高了ESN網(wǎng)絡(luò)訓(xùn)練的預(yù)測效果,同時其誤差也逐漸減少。
圖6 儲備池神經(jīng)元為50的ESN預(yù)測模型結(jié)果
圖7 儲備池神經(jīng)元為50的ESN預(yù)測模型誤差
圖8、圖9分別是儲備池神經(jīng)元數(shù)量為200的ESN網(wǎng)絡(luò)預(yù)測模型結(jié)果和誤差,其最大絕對誤差為0.2。根據(jù)不同神經(jīng)元數(shù)量的選取得到訓(xùn)練的預(yù)測模型的誤差可知,隨著儲備池神經(jīng)元的數(shù)量不斷增加,ESN網(wǎng)絡(luò)預(yù)測模型的誤差逐漸減少。由此可證明,儲備池神經(jīng)元數(shù)量的多少對ESN網(wǎng)絡(luò)的最終預(yù)測性能起著決定作用。
圖8 儲備池神經(jīng)元為200的ESN預(yù)測模型結(jié)果
圖9 儲備池神經(jīng)元為200的ESN預(yù)測模型誤差
為了滿足電池SOC估計誤差不超過5%的應(yīng)用需求。本文采用儲備池神經(jīng)元為500的ESN網(wǎng)絡(luò)預(yù)測電池SOC,其結(jié)果如圖10所示。由圖中曲線對比結(jié)果可以看出,基于ESN網(wǎng)絡(luò)預(yù)測的電池SOC值更貼近于SOC實際值曲線。圖11為ESN網(wǎng)絡(luò)預(yù)測電池SOC的誤差,由圖中曲線結(jié)果可以看出,其最大誤差值為0.036,這也證明ESN網(wǎng)絡(luò)對鋰離子電池SOC具有很好的估算能力。
圖10 儲備池神經(jīng)元為500的ESN預(yù)測模型結(jié)果
圖11 儲備池神經(jīng)元為500的ESN預(yù)測模型誤差
表2為儲備池不同神經(jīng)元數(shù)量對ESN網(wǎng)絡(luò)的影響。如表所示,所提出的SOC估算方法,儲備池神經(jīng)元數(shù)量為50時的均方根誤差、平均絕對誤差和平均絕對百分比誤差分別是10.65%、7.83%和11.43%,儲備池神經(jīng)元數(shù)量為200時,均方根誤差、平均絕對誤差和平均絕對百分比誤差分別是2.21%、1.65%和2.34%,而儲備池神經(jīng)元數(shù)量為500時,均方根誤差、平均絕對誤差和平均絕對百分比誤差分別是0.64%、0.44%和0.64%,即在提高神經(jīng)網(wǎng)絡(luò)神經(jīng)元數(shù)量的情況下,基于ESN網(wǎng)絡(luò)的鋰離子電池SOC估算方法能夠獲得較高的精度。
表2 儲備池不同神經(jīng)元數(shù)量對ESN網(wǎng)絡(luò)的影響
為了進一步驗證ESN網(wǎng)絡(luò)的實用性和泛化能力,在相同神經(jīng)元個數(shù)都為500的情況下,采用傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)與其對比,圖12為BP神經(jīng)網(wǎng)絡(luò)SOC預(yù)測模型結(jié)果。由圖中可知,其實際SOC值與ESN網(wǎng)絡(luò)估算SOC值相差比較大。同時也證明了ESN網(wǎng)絡(luò)對鋰離子電池預(yù)測具有較高的精度。
圖12 BP神經(jīng)網(wǎng)絡(luò)SOC預(yù)測模型結(jié)果
本文建立了基于ESN網(wǎng)絡(luò)的鋰離子電池SOC估算模型,分析儲備池中神經(jīng)元個數(shù)為50、200和500對預(yù)測結(jié)果的影響,驗證了神經(jīng)元數(shù)量的增加提高了該模型的對鋰離子電池SOC的預(yù)測能力。并將此模型與BP神經(jīng)網(wǎng)絡(luò)建立的預(yù)測模型進行對比,證實了基于ESN網(wǎng)絡(luò)的SOC預(yù)測模型的可行性與優(yōu)越性。但由于實驗環(huán)境條件的局限,本文只考慮了電流對鋰離子SOC預(yù)測模型的影響,未將電池溫度等因素考慮在內(nèi)。下一步的主要工作是考慮多種因素下SOC的建立,提高SOC估計的準(zhǔn)確性以確保電池能夠安全穩(wěn)定的運行。