陳 誠 皮志勇 趙英龍 廖 玄 張明敏 李 勇
(1. 國網(wǎng)湖北省電力公司荊門供電公司 荊門 448000;2. 湖南大學電氣與信息工程學院 長沙 410000)
近年來,為實現(xiàn)“碳達峰,碳中和”戰(zhàn)略目標,中國正在加大電動汽車的發(fā)展速度[1]。鋰離子電池因其能量密度高、重量輕、使用壽命長,在電動汽車領(lǐng)域的使用相當廣泛[2-4]。然而,鋰電池的安全性依然是其大規(guī)模商業(yè)應用過程中面臨的主要挑戰(zhàn)。
鋰電池的荷電狀態(tài)(State of charge,SOC)是電池運行的重要參數(shù),對其進行精準估計對電池的安全穩(wěn)定運行有著非常重要的作用[5-6]。
SOC的值不能直接進行測量,只能通過監(jiān)測電壓、電流等運行參數(shù)對SOC的值進行估計[7-8]。目前常用來進行SOC估計的方法包括原理法、模型法和數(shù)據(jù)驅(qū)動法。
原理法主要是指基于SOC的定義方式實現(xiàn)SOC值估計的方法,包括安時積分法和開路電壓法[9-10]。安時積分法將電流進行積分運算,因此,這種開環(huán)方法將導致累積誤差的產(chǎn)生。開路電壓法利用電池開路電壓與SOC對應的函數(shù)關(guān)系來計算SOC,一般來說,使用開路電壓法可對安時積分法進行修正,但電池的記憶性特點(即歷史的電壓、電流大小會影響當前電壓值大小)會增大該方法的誤差,故綜合來看,原理法的估計精度不高。模型法是利用電池模型的參數(shù)對電池SOC進行估計,其估計精度較高,主要包括擴展卡爾曼濾波法和滑模觀測器法[11-15]。這類方法嚴重依賴對電池模型和電池參數(shù)的準確獲取。然而,在不同溫度和不同循環(huán)壽命下,電池內(nèi)部的物理屬性會發(fā)生變化,導致電池模型參數(shù)發(fā)生變化。因此,需要進行大量的試驗來對模型參數(shù)值進行標定,導致該類方法整體的復雜性增加。
數(shù)據(jù)驅(qū)動法不需要對電池進行建模,并且具有較高的估計精度,基礎(chǔ)方法為誤差反向傳播(Back propagation,BP)神經(jīng)網(wǎng)絡(luò)[16-18]。但是利用BP神經(jīng)網(wǎng)絡(luò)進行SOC估計的精度不高,主要原因是電池的SOC不僅和當前測量參數(shù)有關(guān),還會受到過去測量參數(shù)影響,而BP神經(jīng)網(wǎng)絡(luò)不具備記憶性,造成SOC估計精度下降。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)具備良好的記憶性,可有效提升BP神經(jīng)網(wǎng)絡(luò)的估計精度[19-20]。但是,僅僅使用循環(huán)神經(jīng)網(wǎng)絡(luò)難以滿足高精度的估計要求。
循環(huán)神經(jīng)網(wǎng)絡(luò)的初始參數(shù)值嚴重影響著SOC估計精度,因此利用算法優(yōu)化循環(huán)神經(jīng)網(wǎng)絡(luò)的初始值是提高神經(jīng)網(wǎng)絡(luò)估計精度的有效手段。常用于優(yōu)化神經(jīng)網(wǎng)絡(luò)初始值的算法包括粒子群算法(Particle swarm optimization,PSO)、思維進化算法(Mind evolutionary algorithm,MEA)等。林海飛等[21]采用PSO-BP算法預測煤層瓦斯,預測精度由BP神經(jīng)網(wǎng)絡(luò)的7.5%~14.5%,提高至PSO-BP神經(jīng)網(wǎng)絡(luò)的2.4%~4.8%。陳穎等[22]使用SAMEA-BP對電池SOC進行估計,驗證了SAMEA具有良好的適應性,并且精度高于BP算法。遺傳算法(Genetic algorithm,GA)模擬了達爾文生物進化論和遺傳學機理,可以有效地優(yōu)化神經(jīng)網(wǎng)絡(luò),提高神經(jīng)網(wǎng)絡(luò)的精度[23-26]。但是,遺傳算法容易出現(xiàn)早熟等問題,嚴重影響著遺傳算法的精度。傳統(tǒng)的方法是在交叉變異算子之后加入災變算子,來增加遺傳算法的全局搜索能力,但是合適的災變規(guī)模一直是亟待解決的問題。
基于上述分析,本文提出基于自適應災變遺傳-循環(huán)神經(jīng)網(wǎng)絡(luò)(ACGA-RNN)的聯(lián)合算法用于對鋰電池SOC的精確估計。首先介紹遺傳算法,并在加入災變算子后對遺傳算法進行自適應改進;再利用自適應災變遺傳算法對循環(huán)神經(jīng)網(wǎng)絡(luò)進行預訓練,融合成為ACGA-RNN聯(lián)合算法;最后,結(jié)合鋰電池充放電數(shù)據(jù),采用不同的方法估計鋰電池SOC,從而對比分析傳統(tǒng)方法與所提改進方法的精確度。此外,基于不同工況的試驗數(shù)據(jù)測試了所提方法與傳統(tǒng)方法下的SOC估計精度。測試結(jié)果表明,與傳統(tǒng)方法比較而言,所提出的ACGA-RNN聯(lián)合算法的SOC估計精度高,魯棒性強。
為了避免遺傳算法過早收斂到局部最優(yōu)解,在進化的過程中,引入了災變過程。當遺傳算法在迭代早期多次迭代之后,最優(yōu)個體始終沒有更新,這就表明遺傳算法陷入了局部最優(yōu)解,這個現(xiàn)象被稱為早熟。此時,為了增加個體的多樣性,隨機移除并更新部分比較劣質(zhì)的個體,以提高遺傳算法的全局搜索的能力。
傳統(tǒng)災變算法中,災變規(guī)模c是一個重要的參數(shù),代表災變個體的數(shù)量,一般是不變的,但是不變的災變數(shù)量不能很好地滿足算法需求。
如果選取的災變規(guī)模過小,則在迭代前期種群的多樣性不能得到很好擴充;如果選取的災變規(guī)模過大,則在迭代后期,較大的災變規(guī)模會降低收斂速率,并且不斷的擾動也會使得到的最優(yōu)解受到干擾。考慮到恒定的災變規(guī)模c無法兼顧算法的全局搜索能力與收斂速度,因此,遺傳算法在前期需要較大的災變規(guī)模防止出現(xiàn)早熟問題,在中期需要快速變小的災變規(guī)模來滿足中期搜索與快速收斂的要求,在后期則需要較小且平穩(wěn)的災變規(guī)模來保障解的收斂[27]。
在神經(jīng)網(wǎng)絡(luò)中可用tanh函數(shù)作為神經(jīng)元的激活函數(shù),其定義為
tanh函數(shù)在不同區(qū)間范圍內(nèi)表現(xiàn)出明顯的線性與非線性差異,其值在(-4, 4)外的兩端幾乎保持不變,在中心點(0, 0)附近其值迅速變化,與災變規(guī)模需要的變化規(guī)律相適應,因此可以通過適當?shù)钠揭?、反轉(zhuǎn)和壓縮變換得到自適應災變規(guī)模的表達式如下
式中,cmax和cmin分別為最大和最小災變規(guī)模;k和K分別為當前迭代次數(shù)和最大迭代次數(shù)。當最大災變規(guī)模取值過大時,可能會導致算法跳過最優(yōu)解。當最小災變規(guī)模取值過小時,可能會導致算法失去后期跳出局部最小值的能力。一般而言,災變規(guī)模取個體數(shù)量的10%。綜合考慮算法收斂性能與尋優(yōu)能力,通過反復試驗對比,本文選取cmax=50,cmin=5,K=1 000?;谑?2)中所提出的自適應規(guī)則,災變規(guī)模在迭代過程中的自適應變化如圖1所示。從圖1可以看出,本文提出的自適應災變規(guī)模算法隨著迭代次數(shù)增加可使災變規(guī)模在最大和最小災變規(guī)模之間進行自適應改變,從而適應不同時期對災變規(guī)模的不同需求。
圖1 自適應災變規(guī)模
循環(huán)神經(jīng)網(wǎng)絡(luò)是帶有記憶性的神經(jīng)網(wǎng)絡(luò),它可以儲存神經(jīng)網(wǎng)絡(luò)以前的狀態(tài),其主要參數(shù)為狀態(tài)-狀態(tài)權(quán)值、狀態(tài)-輸入權(quán)值、狀態(tài)-輸出權(quán)值、狀態(tài)閾值和輸出閾值,其符號分別為U、W、V、bh、by。
循環(huán)神經(jīng)網(wǎng)絡(luò)的正向傳播公式為
式中,ht為t時刻隱藏層的輸出。運用式(3)可以得到RNN的輸出。當RNN正向傳播過程完畢,則開始誤差反向傳播的過程。RNN基于時序反向傳播誤差(Back-propagation through time,BPTT)公式如下
通過正向傳播和反向傳遞的方式,RNN神經(jīng)網(wǎng)絡(luò)不斷地被訓練,當?shù)竭_一定誤差范圍或最大迭代次數(shù)時,則停止訓練,得到訓練好的RNN。誤差的定義式為
式中,SOCt為SOC的真實值;SOCt0為SOC的估計值。根據(jù)式(5)可以計算出一次正向傳播的誤差。
首先,將RNN的隨機初始權(quán)值和閾值進行編碼,得到ACGA的初始種群結(jié)構(gòu)。使用鋰離子電池SOC、電池端電壓、電流數(shù)據(jù)作為ACGA適應度函數(shù)的輸入,利用ACGA優(yōu)化RNN的參數(shù),可以得到較優(yōu)的初始權(quán)值和閾值,再利用BPTT訓練RNN,加速RNN的收斂。此方法得到訓練好的網(wǎng)絡(luò),即ACGA-RNN。最終可以利用得到的ACGA-RNN,實現(xiàn)對鋰離子電池SOC值的估計。詳細流程如圖2所示。利用ACGA-RNN預測SOC的具體步驟如下。(1) 根據(jù)鋰電池數(shù)據(jù)確定RNN結(jié)構(gòu),并由RNN結(jié)構(gòu)編碼得到遺傳算法初始種群結(jié)構(gòu),其中,種群長度L為
圖2 ACGA-RNN預測鋰離子電池SOC流程圖
式中,L1、L2、L3分別為RNN的輸入層、隱含層以及輸出層節(jié)點數(shù)。本文選擇的三層神經(jīng)網(wǎng)絡(luò)的輸入為電壓電流,輸出為SOC。另外,L1=2,L2=8,L3=1。
(2) 初始化ACGA參數(shù)。
(3) 將個體解碼得到RNN權(quán)值和閾值,利用鋰電池數(shù)據(jù)得到網(wǎng)絡(luò)的SOC輸出,以網(wǎng)絡(luò)輸出與SOC真實值的誤差絕對值為適應度函數(shù)。
(4) 運行ACGA,找到最優(yōu)個體并輸出,將個體編碼解碼,得到RNN的最優(yōu)初始權(quán)值和閾值。某次利用ACGA得到的最優(yōu)初始權(quán)值及閾值如表1所示,其適應度變化曲線如圖3所示。可以看出,在初期引入較大災變規(guī)模時,算法依然可以迅速收斂,體現(xiàn)了自適應災變規(guī)模的優(yōu)越性。
表1 RNN最優(yōu)參數(shù)
圖3 適應度曲線圖
(5) 使用鋰電池訓練集訓練RNN,快速收斂,得到訓練好的神經(jīng)網(wǎng)絡(luò),并完成驗證,其中,RNN的訓練超參數(shù)如表2所示。
表2 RNN訓練超參數(shù)
鋰電池試驗中電壓和電流數(shù)據(jù)數(shù)值差別較大,這將使各個數(shù)據(jù)在輸入時的權(quán)值發(fā)生改變,影響神經(jīng)網(wǎng)絡(luò)性能,因此,本文首先對鋰電池試驗數(shù)據(jù)進行歸一化處理,將數(shù)據(jù)范圍映射到0~1。
式中,xi、xmin、xmax和ix分別為試驗數(shù)據(jù)向量、試驗數(shù)據(jù)的最小值、試驗數(shù)據(jù)的最大值和歸一化的試驗數(shù)據(jù)。
以方均根誤差(Root mean square error,RMSE)和平均絕對誤差(Mean absolute error,MAE)作為網(wǎng)絡(luò)的評價指標,其表達式如下。
方均根誤差可表示為
平均絕對誤差可表示為
式中,Tk和Ok分別為實際值和預測值。
本節(jié)中測試數(shù)據(jù)采用美國馬里蘭大學鋰電池的試驗數(shù)據(jù)[28]。該試驗中使用Arbin BT200電池試驗系統(tǒng)對三星INR 18650-20R電池進行測試。具體電池參數(shù)如表3所示。
表3 電池主要參數(shù)
試驗采集的數(shù)據(jù)為鋰電池的電壓、電流、電荷以及采樣時間等。利用鋰電池試驗數(shù)據(jù),使用安時積分法得到電池的SOC數(shù)據(jù)。
首先,使用鋰離子電池動態(tài)應力測試(Dynamic stress test,DST)工況進行測試,該工況是由美國先進電池協(xié)會設(shè)計,是模擬電動汽車最常用、最具有代表性的試驗工況之一,其電壓電流曲線如圖4所示。
圖4 DST工況電壓電流曲線
本文選擇訓練數(shù)據(jù)500組,驗證數(shù)據(jù)500組,驗證數(shù)據(jù)和訓練數(shù)據(jù)均在時間上均勻取樣。將RNN算法、GA-RNN算法和ACGA-RNN聯(lián)合算法的預測結(jié)果進行對比,結(jié)果如圖5和表4所示。
表4 DST工況SOC估計結(jié)果
圖5 DST工況測試結(jié)果
圖5所示SOC誤差值為誤差的絕對值。由圖5和表4可以看出,經(jīng)遺傳算法優(yōu)化之后,RNN算法的SOC估計精度得到了有效提高,方均根誤差與平均絕對誤差相較于傳統(tǒng)RNN降低了1%以上。相對于GA-RNN算法,改良后的ACGA-RNN聯(lián)合算法的SOC估計誤差得到了進一步降低,方均根誤差與平均絕對誤差分別由3.45%、2.49%降至1.98%、1.48%。由此可以看出,ACGA-RNN聯(lián)合算法在鋰電池SOC值估計上比傳統(tǒng)的RNN算法與GA-RNN算法更具準確性。表4還給出了估計模型訓練完成后實際運行中估計一次SOC的時間。由表4可以看出,所提聯(lián)合算法的估計時間為47 μs。國家標準對電池管理系統(tǒng)(Battery management system,BMS)的測試中[29],測試采樣的時間間隔為1 s,因此所提出方法在時效方面完全可以滿足電動汽車SOC估計的需求。另外,所比較的三種方法估計時間相近,這是因為基于三種方法訓練出的模型結(jié)構(gòu)相同、參數(shù)大小不同,最終使得估計時間上有略微差異。
由于實際運行中鋰電池充放電工況并不單一,因此,測試鋰電池的SOC估計算法在鋰電池處于不同運行工況下的魯棒性能十分重要。魯棒性良好的神經(jīng)網(wǎng)絡(luò)可以運用于各種工況的SOC估計,實現(xiàn)SOC估計的實時在線運行。
本文選擇北京動態(tài)應力測試(BJDST)工況來進行神經(jīng)網(wǎng)絡(luò)魯棒性的測試。該工況模擬了北京奧運會純電動公交車90路的運行狀況。因此,該工況作為鋰電池實際運行的工況,可以有效地檢驗鋰離子電池SOC估計的準確度。本節(jié)中測試數(shù)據(jù)采用美國馬里蘭大學鋰電池的試驗數(shù)據(jù)[28],試驗中通過Arbin BT200電池試驗系統(tǒng)對三星INR 18650-20R電池進行測試。BJDST工況的電壓電流曲線如圖6所示。
圖6 DST工況電壓電流曲線
本次神經(jīng)網(wǎng)絡(luò)使用DST數(shù)據(jù)訓練網(wǎng)絡(luò),使用BJDST工況500組數(shù)據(jù)驗證SOC估計結(jié)果。測試結(jié)果如圖7和表5所示。
圖7 BJDST工況測試結(jié)果
表5 BJDST工況SOC估計結(jié)果
圖7所示誤差為誤差值的絕對值。從圖7和表5可以看出,在BJDST測試工況下,各測試算法的SOC估計誤差稍微增大,但比較來說ACGA-RNN聯(lián)合算法依然表現(xiàn)出了最優(yōu)的估計精度,說明了ACGA-RNN聯(lián)合算法對鋰電池SOC估計具有良好的魯棒性和適應性。
由于鋰電池的實際工作溫度處于不斷變化中,測試所提ACGA-RNN聯(lián)合算法對不同溫度下鋰離子電池SOC估計的適應性能也尤為重要。為此,本節(jié)利用25 ℃下的DST數(shù)據(jù)訓練網(wǎng)絡(luò),并使用45 ℃和0 ℃下的DST數(shù)據(jù)驗證訓練好的網(wǎng)絡(luò)。本節(jié)中測試數(shù)據(jù)采用美國馬里蘭大學鋰電池的試驗數(shù)據(jù)[28],試驗中通過Arbin BT200電池試驗系統(tǒng)對三星INR 18650-20R電池進行測試。0 ℃、25 ℃、45 ℃下的電壓數(shù)據(jù)如圖8所示。不同溫度條件下的測試結(jié)果如圖9和表6所示。
圖8 DST工況不同溫度下電壓曲線
圖9 不同溫度測試結(jié)果
表6 不同溫度下SOC估計結(jié)果
圖9所示誤差值為誤差的絕對值。從圖9和表6可以看出,ACGA-RNN在45 ℃和0 ℃的DST測試工況下,SOC估計值的RMSE和MAE分別達到了2.12%、1.72%和2.23%、2.05%,雖然比25 ℃測試工況下的估計誤差稍微增加,但是ACGA-RNN估計精度依然良好,遠低于國家標準中SOC估計誤差上限5%的要求[29],說明ACGA-RNN聯(lián)合算法具有良好的延展性,對SOC估計在不同的溫度下具有良好的魯棒性和穩(wěn)定性。
本文提出了自適應災變遺傳-循環(huán)神經(jīng)網(wǎng)絡(luò)聯(lián)合算法,實現(xiàn)了在復雜運行工況下對鋰電池SOC值的精確估計,主要結(jié)論如下所示。
(1) 提出了自適應災變遺傳算法,提高了經(jīng)典遺傳算法的尋優(yōu)精度,并將自適應災變遺傳算法和RNN聯(lián)合構(gòu)成ACGA-RNN聯(lián)合算法,用于估計鋰電池SOC,可有效提升SOC估計精度。
(2) 根據(jù)測試結(jié)果可知,在DST工況與BJDST工況下,ACGA-RNN聯(lián)合算法的估計平均絕對誤差均小于RNN算法和GA-RNN算法的估計平均絕對誤差,驗證了ACGA-RNN聯(lián)合算法較傳統(tǒng)方法有著更好的性能。
(3) 在不同溫度的測試下,ACGA-RNN聯(lián)合算法在鋰電池SOC估計方面依然表現(xiàn)出良好的穩(wěn)定性。
所提出的ACGA-RNN聯(lián)合算法需要對三個矩陣進行乘法運算,過程中所涉及的運算量較大。未來工作主要在于優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),減少矩陣的維度和乘法數(shù)量,從而提高算法的運算效率。