楊春生 牛紅濤 隋良紅 李明興
摘 要: 電池荷電狀態(tài)(SOC)用于表征電池的剩余電量,是全釩液流電池的一個(gè)重要參數(shù)。在此介紹常用的釩電池SOC預(yù)測方法,并對(duì)比其優(yōu)缺點(diǎn)?;陔姵豐OC的非線性特征,提出采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測釩電池的SOC,并采用L?M優(yōu)化算法以及貝葉斯正則化算法對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化。使用貝葉斯正則化改進(jìn)的神經(jīng)網(wǎng)絡(luò)在對(duì)項(xiàng)目中全釩液流電池測試過程實(shí)時(shí)預(yù)測SOC。實(shí)驗(yàn)結(jié)果表明,采用貝葉斯正則化算法改進(jìn)的神經(jīng)網(wǎng)絡(luò)能夠提高SOC的實(shí)時(shí)預(yù)測精度,具有很好的實(shí)用前景。
關(guān)鍵詞: 釩電池; 荷電狀態(tài); BP神經(jīng)網(wǎng)絡(luò); 貝葉斯正則化算法
中圖分類號(hào): TN915?34; TP301.6 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)08?0158?04
Application of BP neural network improved by Bayesian regularization algorithm in VRB SOC prediction
YANG Chunsheng1, NIU Hongtao1, SUI Lianghong1, LI Mingxing2
(1. National Institute of Measurement and Testing Technology, Chengdu 610021, China;
2. School of Manufacturing Science and Engineering, Sichuan University, Chengdu 610064, China)
Abstract: The state of charge (SOC) is an important parameter of VRB to character the remaining capacity of the battery. In this paper, the common prediction methods of VRB SOC are introduced, and the advantages and disadvantages are compared. Based on the nonlinear characteristic of VRB SOC, the method of using BP neural network to predict VRB SOC is proposed. The BP neural network was optimized with Levenberg?Marquardt optimization algorithm and Bayesian regularization algorithm. The neural network improved with Bayesian regularization can predict SOC in real time in VRB testing process. The experimental results show that the neural network improved by Bayesian regularization algorithm can improve the real?time prediction accuracy of SOC, and has good application prospect.
Keywords: VRB; SOC; BP neural network; Bayesian regularization algorithm
0 引 言
隨著傳統(tǒng)化石能源的不斷消耗,能源供應(yīng)已越發(fā)緊張,燃燒化石能源帶來的環(huán)境問題已經(jīng)給國民經(jīng)濟(jì)發(fā)展帶來嚴(yán)重負(fù)擔(dān)并威脅國民健康。調(diào)整能源結(jié)構(gòu)已迫在眉睫,國家也制定了一系列的政策措施,推動(dòng)新型可再生能源的發(fā)展。大規(guī)模儲(chǔ)能設(shè)備是風(fēng)能等新型清潔能源存儲(chǔ)、輸送的關(guān)鍵設(shè)備,近年來一直是研究重點(diǎn)。全釩液流電池是一種根據(jù)釩離子價(jià)態(tài)改變進(jìn)行能量交換的一種液流電池,有望在今后大規(guī)模儲(chǔ)能領(lǐng)域扮演重要角色。電池荷電狀態(tài)(SOC)是電池管理的一個(gè)重要參數(shù),表征電池放電的剩余電量。電池SOC在電池放電過程中受到電池端電壓、電流、電池內(nèi)阻以及電池溫度的影響[1]。在釩電池測試工作過程中,實(shí)時(shí)有效地監(jiān)控釩電池的SOC狀態(tài),對(duì)于提高釩電池的電化學(xué)性能和安全性能具有重要意義。
1 釩電池SOC常用預(yù)測方法
電池SOC不能夠直接測量,只能夠通過測量某時(shí)刻電池其他參數(shù)估計(jì)得到[2]。常用于預(yù)測電池SOC的方法包括:安時(shí)積分法、開路電壓法、內(nèi)阻法、卡爾曼濾波法和神經(jīng)網(wǎng)絡(luò)法。安時(shí)積分法通過對(duì)電流進(jìn)行積分求得放掉的電量。電池初始時(shí)刻的電量減去電池放出的電量,即為電池剩余電量。這種估計(jì)方法只考慮了電流的影響,忽略了很多因素的影響,其缺陷是無法準(zhǔn)確知道初始時(shí)刻的荷電狀態(tài)以及存在誤差積累問題[2?4]。開路電壓法是根據(jù)電池的SOC與電池開路電壓存在一定的聯(lián)系。通過測多個(gè)點(diǎn)進(jìn)行曲線擬合,得到SOC與開路電壓的關(guān)系。這種方法算法簡單,但是開路電壓與工作電壓不同,兩者的差別受到電流引起的極化效應(yīng)影響,因此無法在電池工作時(shí)動(dòng)態(tài)測量SOC[5]。內(nèi)阻法由于電池的內(nèi)阻非常小,而且在電池動(dòng)態(tài)工作時(shí)候,很難測量[6],不易推廣??柭鼮V波法需要建立一個(gè)高精度的電池模型才能達(dá)到預(yù)測精度[6?7]。神經(jīng)網(wǎng)絡(luò)法具有非線性的基本特征,有很強(qiáng)的學(xué)習(xí)能力。根據(jù)Kolmogorov定理,一個(gè)三層前向網(wǎng)絡(luò)具有對(duì)任意精度連續(xù)函數(shù)的逼近能力[8]。因此,使用神經(jīng)網(wǎng)絡(luò)預(yù)測釩電池SOC具有明顯的優(yōu)勢(shì)。
2 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和原理分析
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),廣泛應(yīng)用于非線性逼近[9]。如圖1所示,BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包含輸入層、隱含層和輸出層三個(gè)層次。網(wǎng)絡(luò)在層與層之間是全連接的,每一層神經(jīng)元之間無連接。輸入層和輸出層的神經(jīng)元個(gè)數(shù)由具體要求確定。隱含層節(jié)點(diǎn)數(shù)對(duì)網(wǎng)絡(luò)性能影響較大,增加節(jié)點(diǎn),可以提高網(wǎng)絡(luò)的性能,但訓(xùn)練時(shí)間較長。目前仍然是根據(jù)經(jīng)驗(yàn)確定隱含層節(jié)點(diǎn)數(shù),通常在5~15之間。
原理算法上,內(nèi)部信息處理集中在網(wǎng)絡(luò)隱含層。以隱含層的一個(gè)神經(jīng)元K1為例,它的輸入值包括輸入層神經(jīng)元的所有輸出值的加權(quán)和K1神經(jīng)元的閾值b1。輸入的權(quán)值[ω11,ω12,…,ωki]和b1是可調(diào)整的。神經(jīng)元將求得的加權(quán)和與閾值b1之和通過神經(jīng)元內(nèi)的傳輸函數(shù)得到K1神經(jīng)元的輸出結(jié)果。隱含層傳輸函數(shù)是一個(gè)非線性函數(shù),最常用的是logsig函數(shù)或tansig函數(shù),輸出層函數(shù)可以是線性函數(shù)purelin函數(shù)[10]。
標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)絡(luò)采用最速梯度下降法訓(xùn)練網(wǎng)絡(luò)。訓(xùn)練過程包括信號(hào)的正向傳遞和誤差的反向傳遞。信號(hào)通過各層的神經(jīng)元之間的傳遞,最終得到網(wǎng)絡(luò)的輸出值。訓(xùn)練網(wǎng)絡(luò)時(shí)除了需要原始的輸入數(shù)據(jù)外,還需要一個(gè)目標(biāo)輸出結(jié)果。每一次網(wǎng)絡(luò)的輸出與目標(biāo)結(jié)果之差視為網(wǎng)絡(luò)的輸出誤差。通過以上信號(hào)正向傳遞的分析知道,網(wǎng)絡(luò)的輸出結(jié)果以及誤差實(shí)際上是關(guān)于各個(gè)權(quán)值的函數(shù)。網(wǎng)絡(luò)的第h次迭代的輸出性指標(biāo)以輸出誤差能量表示:
[e(h)=12j=0Je2j(h)] (1)
式中:J表示輸出值個(gè)數(shù);ej表示第j個(gè)輸出與對(duì)應(yīng)目標(biāo)輸出之差。當(dāng)誤差值大于訓(xùn)練設(shè)置的目標(biāo)性能參數(shù)時(shí),調(diào)整各神經(jīng)元的輸入權(quán)值,使得權(quán)值朝著最速梯度下降方向調(diào)整。這個(gè)過程是從后向前逐層調(diào)整,直到輸出誤差達(dá)到要求或者設(shè)定步數(shù)完成為止。這種算法的一大缺點(diǎn)在于網(wǎng)絡(luò)可能按照梯度下降收斂到某個(gè)局部極小值而非全局的最小值。
3 BP網(wǎng)絡(luò)改進(jìn)算法和網(wǎng)絡(luò)建立
3.1 L?M優(yōu)化算法trainlm[11?12]
L?M(Levenberg?Marquardt)算法可以有效提高BP神經(jīng)網(wǎng)絡(luò)的收斂速度和降低預(yù)測誤差值。L?M算法按照式(2)對(duì)網(wǎng)絡(luò)權(quán)值進(jìn)行迭代。
[ω(h+1)=ω(h)-[JTJ+μI]-1JTe] (2)
式中,[μ]是可以調(diào)整的非負(fù)數(shù),當(dāng)誤差較小,則減小[μ]值,當(dāng)誤差較大,則增加[μ]的值。由于避免計(jì)算Hessian矩陣,大大降低了計(jì)算量,因而比起最速梯度下降法,L?M的收斂速度很快,但是L?M算法對(duì)于內(nèi)存的占用更大。
3.2 貝葉斯正則化算法trainbr
Trainbr[13?16]算法是在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,在常規(guī)均方差性能函數(shù)基礎(chǔ)上引入對(duì)性能函數(shù)的修正函數(shù)。
[f(ω)=αEω+βEd] (3)
式中:[f(ω)]為修正后的性能函數(shù);[Eω]為網(wǎng)絡(luò)所有權(quán)值的均方誤差;[Ed]為網(wǎng)絡(luò)輸出結(jié)果均方誤差;[α],[β]為正則化參數(shù)。網(wǎng)絡(luò)通過自適應(yīng)方法自動(dòng)根據(jù)訓(xùn)練結(jié)果調(diào)整[α],[β]值以調(diào)整網(wǎng)絡(luò)權(quán)值。由于[α],[β]參數(shù)按照常規(guī)方式很難確定,貝葉斯正則化算法思想就是將權(quán)值參數(shù)設(shè)為隨機(jī)變量,根據(jù)權(quán)值的概率密度確定最優(yōu)的權(quán)值函數(shù)。文獻(xiàn)[13?16]對(duì)該算法的具體過程步驟做了詳細(xì)介紹。采用trainbr可以有效改善擬合曲線的誤差。
3.3 BP神經(jīng)網(wǎng)絡(luò)建立
本文需要預(yù)測的是一組由5節(jié)單體釩電池串聯(lián)組成的釩電池組在實(shí)際放電過程中的實(shí)時(shí)SOC值。工作過程中對(duì)電池工作溫度進(jìn)行控制,著重考慮溫度相同情況下電池端電壓和放電電流對(duì)SOC的影響,通過Matlab神經(jīng)網(wǎng)絡(luò)工具箱建立BP神經(jīng)網(wǎng)絡(luò)。輸入層神經(jīng)元為電池電壓V輸入和電流I輸入。輸出層只有一個(gè)神經(jīng)元,輸出SOC的預(yù)測結(jié)果。隱含層通過經(jīng)驗(yàn)公式和實(shí)際訓(xùn)練效果確定,當(dāng)隱含層設(shè)為10個(gè)節(jié)點(diǎn)時(shí)比較合理。
在對(duì)網(wǎng)絡(luò)訓(xùn)練之前,需要將訓(xùn)練樣本數(shù)據(jù)進(jìn)行歸一化預(yù)處理。數(shù)據(jù)的歸一化操作能夠使網(wǎng)絡(luò)避免由于輸入數(shù)據(jù)量級(jí)差異而導(dǎo)致的誤差,提高網(wǎng)絡(luò)的泛化能力。由于此處采用tansig函數(shù)作為傳輸函數(shù),將其輸出值限定在(-1,1)之間,所以需要將電壓值和電流值都?xì)w一化到 (-1,1)內(nèi)[17]。數(shù)據(jù)歸一化處理計(jì)算公式如下:
[xi=2xi-xmin-xmaxxmax-xmin] (4)
式中:[xi]為歸一化后的數(shù)據(jù);[xi]為原始數(shù)據(jù);[xmin,xmax]為初始數(shù)據(jù)的最小值和最大值。釩電池在正常測試過程中,電池電壓在4.5~9 V之間,所以將最小值和最大值設(shè)為4.5和9。釩電池單次放電為恒流放電,因此整個(gè)過程中電流的最大值和最小值沒有差別。考慮電池在多種電流下的恒流放電,以擴(kuò)展網(wǎng)絡(luò)預(yù)測的工況范圍,將電流的最大值設(shè)為9 A,最小值設(shè)為2 A。這個(gè)范圍包含了釩電池在40~120 mA/cm2的電流密度區(qū)間,涵蓋了項(xiàng)目要求的所有測試電流大小。輸入的目標(biāo)值SOC以百分號(hào)為單位表示,因此它的最大值是100,最小值是0。
本BP網(wǎng)絡(luò)的訓(xùn)練樣本由三種電流密度下的100組數(shù)據(jù)組成。一共為300個(gè)數(shù)據(jù),將電壓和電流歸一化后,組成一個(gè)2行300列的矩陣,作為輸入。同時(shí)建立三個(gè)BP神經(jīng)網(wǎng)絡(luò),設(shè)置輸入層和隱含層傳遞函數(shù)為tansig函數(shù);輸出層為purelin函數(shù),設(shè)定輸出誤差值0.001,學(xué)習(xí)率為0.05。三個(gè)網(wǎng)絡(luò)分別采用traingd,trainlm和trainbr算法訓(xùn)練。
訓(xùn)練的網(wǎng)絡(luò)對(duì)80 mA/cm2電流密度下的樣本模擬輸出SOC值反歸一化到0~100后與目標(biāo)值的比較結(jié)果如圖2和圖3所示。顯然采用貝葉斯正則化算法的模型更好。
4 試驗(yàn)結(jié)果與分析
將通過貝葉斯正則化算法訓(xùn)練好的BP網(wǎng)絡(luò)保存于Matlab安裝目錄下,釩電池充放電監(jiān)控系統(tǒng)上位機(jī)軟件由LabVIEW編寫,LabVIEW通過調(diào)用Matlab腳本VI調(diào)用這個(gè)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),對(duì)釩電池在多個(gè)不同電流密度下的放電實(shí)驗(yàn)進(jìn)行采樣,對(duì)每一個(gè)采樣時(shí)刻進(jìn)行SOC值估計(jì)并動(dòng)態(tài)顯示。
實(shí)驗(yàn)中所測試的釩電池按照電流密度60 mA/cm2、80 mA/cm2和120 mA/cm2,對(duì)應(yīng)電流為4.42 A,5.89 A和8.81 A對(duì)電池進(jìn)行放電測試。電池充放電監(jiān)控系統(tǒng)每一秒采集電池放電實(shí)時(shí)端電壓和電流值,通過軟件歸一化后作為網(wǎng)絡(luò)輸入。每一組實(shí)驗(yàn)隨機(jī)抽取了20個(gè)預(yù)測點(diǎn),預(yù)測結(jié)果與其真實(shí)值如圖4所示,其預(yù)測誤差值分布如圖5所示。
圖5中誤差分布集中分布在±0.5%,最大誤差值-1.5%。
從圖2和圖3幾種曲線的對(duì)比看出相比較于標(biāo)準(zhǔn)的最速梯度下降法和常用的L?M優(yōu)化算法,采用貝葉斯正則化算法訓(xùn)練的網(wǎng)絡(luò)的逼近結(jié)果更能接近真實(shí)值。實(shí)際上對(duì)于L?M算法3%的訓(xùn)練誤差,已經(jīng)可以認(rèn)為是一個(gè)不錯(cuò)的結(jié)果,本實(shí)驗(yàn)只采用貝葉斯正則化算法而非L?M算法的原因就是,因?yàn)榻?jīng)過trainlm算法訓(xùn)練的網(wǎng)絡(luò)對(duì)訓(xùn)練樣本實(shí)現(xiàn)了較好的擬合,而對(duì)于訓(xùn)練樣本之外的新樣本表現(xiàn)的誤差會(huì)更大。實(shí)際應(yīng)用中樣本不可能將所有預(yù)測的結(jié)果都包含,否則就不需要再進(jìn)行預(yù)測了。因此本試驗(yàn)需要一個(gè)能夠具有很好的推廣作用的神經(jīng)網(wǎng)絡(luò),能夠通過網(wǎng)絡(luò)對(duì)小樣本所反映的規(guī)律準(zhǔn)確的反應(yīng)。貝葉斯正則化算法訓(xùn)練的神經(jīng)網(wǎng)絡(luò),具有對(duì)輸入噪聲不敏感的特點(diǎn),因而訓(xùn)練的誤差更小,具有更好的推廣能力。因此用貝葉斯正則化算法訓(xùn)練好的網(wǎng)絡(luò)來實(shí)時(shí)預(yù)測電池放電過程中SOC狀態(tài)比較理想。
5 結(jié) 語
釩電池SOC值是表征釩電池放電過程中的剩余電量的一項(xiàng)重要參數(shù),無法直接測試,只能通過多個(gè)實(shí)時(shí)參數(shù)對(duì)其進(jìn)行估計(jì)。
本文在控制放電溫度條件下,分析了常用三層BP神經(jīng)網(wǎng)絡(luò)對(duì)于SOC非線性曲線逼近的原理,在參考了L?M算法對(duì)BP網(wǎng)絡(luò)優(yōu)化的基礎(chǔ)上,提出運(yùn)用貝葉斯正則化算法訓(xùn)練改進(jìn)BP網(wǎng)絡(luò)應(yīng)用于釩電池SOC的預(yù)測。對(duì)比通過訓(xùn)練樣本的訓(xùn)練結(jié)果,證明貝葉斯正則化算法的訓(xùn)練結(jié)果更優(yōu)。運(yùn)用該算法訓(xùn)練的神經(jīng)網(wǎng)絡(luò)作為預(yù)測工具,對(duì)釩電池多個(gè)放電電流情況下實(shí)時(shí)SOC值進(jìn)行實(shí)時(shí)動(dòng)態(tài)預(yù)測。結(jié)果顯示,預(yù)測絕對(duì)誤差低于±2%,證明方法是準(zhǔn)確可行的。
參考文獻(xiàn)
[1] 萬永凱.混合動(dòng)力電動(dòng)汽車鋰離子電池SOC估計(jì)方法研究[D].武漢:武漢理工大學(xué),2013.
[2] 杜濤,李愛魁,馬軍,等.動(dòng)力電池SOC預(yù)估方法研究進(jìn)展[J].電源技術(shù),2015,39(4):844?845.
[3] 王熙俊,張勝寒,張秀麗,等.全釩液流電池SOC監(jiān)測方法綜述[J].華北電力技術(shù),2015(3):66?70.
[4] 林成濤,王軍平,陳全世.電動(dòng)汽車SOC估計(jì)方法原理與應(yīng)用[J].電池,2004,34(5):376?378.
[5] 周曉鳳,趙又群.電動(dòng)汽車動(dòng)力電池SOC估算研究[J].機(jī)械科學(xué)與技術(shù),2014,33(2):263?266.
[6] 李國進(jìn),董第永,陳雙.磷酸鐵鋰電池的SOC預(yù)測[J].計(jì)算機(jī)仿真,2015,32(3):163?168.
[7] 李正國,孟凡琨.SVM和Kalman濾波大功率動(dòng)力電池SOC預(yù)估方法的研究[J].中國測試,2013,39(5):92?95.
[8] SHI P, BU C G, ZHAO Y W. The ANN models for SOC/BRC estimation of Li?ion battery [C]// Proceedings of 2005 IEEE International Conference on Information Acquisition. [S.l.]: IEEE, 2005: 560?564.
[9] 周品.Matlab神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)與應(yīng)用[M].北京:清華大學(xué)出版社,2013.
[10] 陳明,武冬,郅曉娜,等.Matlab神經(jīng)網(wǎng)絡(luò)原理與實(shí)例精講[M].北京:清華大學(xué)出版社,2013.
[11] 苑倩,劉金枝,楊鵬.基于BP神經(jīng)網(wǎng)絡(luò)的鋰電池SOC在線預(yù)測[J].河北工業(yè)大學(xué)學(xué)報(bào),2014,43(5):15?20.
[12] 尹安東,張萬興,趙韓,等.基于神經(jīng)網(wǎng)絡(luò)的磷酸鐵鋰電池SOC預(yù)測研究[J].電子測量與儀器學(xué)報(bào),2011,25(5):433?437.
[13] 楊海深,傅紅卓.基于貝葉斯正則化BP神經(jīng)網(wǎng)絡(luò)的股票指數(shù)預(yù)測[J].科學(xué)技術(shù)與工程,2009,9(12):3306?3310.
[14] 楊琴,謝淑云.BP神經(jīng)網(wǎng)絡(luò)在洞庭湖氨氮濃度預(yù)測中的應(yīng)用[J].水資源與水工程學(xué)報(bào),2006,17(1):65?70.
[15] 田凱,孫永泰,高慧,等.貝葉斯算法BP神經(jīng)網(wǎng)絡(luò)缺陷量化研究[J].中國測試,2014,40(3):93?97.
[16] 宋雷,黃騰,方劍,等.基于貝葉斯正則化BP神經(jīng)網(wǎng)絡(luò)的GPS高程轉(zhuǎn)換[J].西南交通大學(xué)學(xué)報(bào),2008,43(6):724?728.
[17] 蔡信,李波,汪宏華,等.基于神經(jīng)網(wǎng)絡(luò)模型的動(dòng)力電池SOC估計(jì)研究[J].機(jī)電工程,2015,32(1):128?132.