馬青云,王順利,余 鵬,鄒傳云
(西南科技大學信息工程學院,四川綿陽 621010)
為保護環(huán)境和節(jié)約不可再生能源,國家大力發(fā)展新能源。在新能源中,鋰離子電池發(fā)展迅速,應用廣泛,特別是在新能源汽車[1-2]、大規(guī)模儲能、特種機器人中起著極為重要的作用。為保護電池和延長電池的使用壽命,提出了電池管理這一理念,包括SOC[3]、SOH、SOP、SOE 等。其中,電池的荷電狀態(tài)是電池管理最重要的因素之一,影響SOC的因素包括溫度[4-5]、電池的老化程度、電池使用環(huán)境的噪聲等。
常見的估算方法包括安時積分法、開路電壓法、卡爾曼濾波法、神經(jīng)網(wǎng)絡法[6-7]、支持向量機[8-9]等。安時積分法雖然簡單方便,但SOC的初始狀態(tài)不易于獲得。開路電壓法則需要電池擱置一段時間來穩(wěn)定內(nèi)部的化學反應,才能保證開路電壓穩(wěn)定。因此,開路電壓法只能離線估算。擴展卡爾曼(EKF)和無跡卡爾曼算法(UKF)估算SOC,則是利用一定的方法把非線性系統(tǒng)轉(zhuǎn)化為線性系統(tǒng)。本文提出了用自適應FFRLS 對模型參數(shù)進行在線辨識,增加了可實用性。且用遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡預測k時刻EKF 的非線性誤差等,不僅可以補償EKF 的非線性等誤差,而且也降低了對等效模型精度的要求。
在選取電池的等效模型時,可以選取含有RC 電路的模型,RC 電路可以用來模擬電池的極化反應,但RC 電路不宜過多,過多會導致計算越來越復雜。本文構(gòu)建的是二階RC等效模型,在普通的Thevenin 等效模型基礎(chǔ)上再添加了一組RC 電路,可以更加準確地模擬電池內(nèi)部的化學反應,RC 階數(shù)也不高,在提高了估算精度的同時,計算程度也并不復雜,二階RC 等效模型如圖1 所示。
圖1 二階RC 等效模型
在圖1 中,Uoc表示開路電壓,UL表示端電壓,R0為歐姆內(nèi)阻,C1、C2表示極化電容,R1、R2表示極化電阻。根據(jù)基爾霍夫斯基定律,分析所構(gòu)建的戴維南等效電路模型,可得到等效電路的電壓和電流表達式,如式(1)所示:
對如圖1 所示的二階RC 等效模型,開路電壓可以通過SOC來表示。將等效電路模型離散化,結(jié)合SOC定義式(2),選擇狀態(tài)空間變量、輸入變量和輸出變量,可以獲得離散狀態(tài)空間方程,見式(3)和(4):
式中:η 為庫侖效率;Δt為采樣時間間隔;w為狀態(tài)誤差;v為測量誤差;QN為額定容量。
在RLS 的基礎(chǔ)上引進了遺忘因子,可以避免數(shù)據(jù)飽和,弱化舊數(shù)據(jù)加強新數(shù)據(jù)的影響。遺忘因子過大,弱化舊數(shù)據(jù)的能力就很小,遺忘因子過小,跟蹤能力雖然增強但抑制噪聲的能力就會大大降低,因此提出自適應遺忘因子的FFRLS,遞推公式為:
式中:K為遞推增益;P為協(xié)方差;λ 為遺忘因子;T 為矩陣的轉(zhuǎn)置。遺忘因子的自適應:
式中:εk為預測值與真實值的誤差;l為開窗大??;λL為最小遺忘因子;ρ 為閾值。當dk大于閾值ρ 時,遺忘因子立刻減小到λL,隨著數(shù)據(jù)的增加在慢慢增大遺忘因子,以此來增加抗噪能力。
EKF 通過一階泰勒展開,雖然使非線性系統(tǒng)轉(zhuǎn)化為線性系統(tǒng),但是忽略了高階項,會產(chǎn)生一定的誤差。特別對高度非線性電池而言,產(chǎn)生的誤差更大,單獨使用自適應擴展卡爾曼估算SOC的誤差較大。針對此類非線性誤差,提出了CEKF 算法,用一些方法去補償EKF 線性化過程中產(chǎn)生的非線性誤差。
EKF 算法是估算SOC常用的基本方法。EKF 估算SOC步驟如下:
第一步:計算k時刻的預測值和對應的協(xié)方差矩陣。
式中:A為狀態(tài)轉(zhuǎn)移矩陣;B為控制矩陣;P為誤差協(xié)方差;Qk為外部噪聲。
第二步:計算卡爾曼增益。
式中:K為卡爾曼增益;C為系統(tǒng)測量矩陣;Rk為測量噪聲。
第三步:跟新狀態(tài)預測值和對應的協(xié)方差。
式中:UL為實時所測得的開路電壓值;Uk為根據(jù)預測值和KVL 定理所得的預測開路電壓值。
雖然BP 神經(jīng)網(wǎng)絡應用廣泛,但是由于無法準確獲得最優(yōu)初始參數(shù)和閾值,使得網(wǎng)絡訓練迭代次數(shù)多,訓練時間久,每次訓練的結(jié)果也不一樣,且誤差也較大等等。因此,針對這些問題,提出用遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡,尋找BP 神經(jīng)網(wǎng)絡最優(yōu)的初始權(quán)值和閾值。
普通的BP 神經(jīng)網(wǎng)絡算法采用的是梯度下降法進行迭代訓練,但梯度下降法僅利用了目標函數(shù)的一階倒數(shù)進行訓練。迭代次數(shù)較多,迭代時間較長,最終的誤差也不理想。因此在梯度下降法的基礎(chǔ)上提出了用數(shù)值優(yōu)化的方法去訓練,這不僅利用了目標函數(shù)的一階倒數(shù)也利用了目標函數(shù)的二階倒數(shù)信息。具體描述如式(10)所示:
式中:X k為網(wǎng)絡所有權(quán)值和偏置值所組成的向量;S(X k)為X的各分量組成的向量空間中的搜索方向;ηk為在S(X k)的方向上,使f(X k+1)達到極小步長。網(wǎng)絡權(quán)值的尋優(yōu)就可以分為兩個步驟:先確定當前迭代的最佳搜索方向S(X k),然后在此方向上尋求最優(yōu)迭代步長。搜索方向如式(11)所示。
式中:H k為海森矩陣,是一個二階倒數(shù)矩陣。開始時,λ 取一個很大的值,此時相當于步長很小的梯度下降法;隨著最優(yōu)點的接近,λ 減小到零。通常f(X k+1)<f(X k)時,減小λ;否則增大λ。
遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡包括:BP 神經(jīng)網(wǎng)絡結(jié)構(gòu)的確定、遺傳算法優(yōu)化權(quán)值和閾值、BP 神經(jīng)網(wǎng)絡訓練及預測。其中,BP 神經(jīng)網(wǎng)絡一般采用一層隱含層,遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡整體流程圖如圖2 所示。
圖2 GA 優(yōu)化BP流程圖
BP 網(wǎng)絡部分是四輸入和一輸出,輸入層神經(jīng)元數(shù)為4,隱含層神經(jīng)元數(shù)可選10,輸出層神經(jīng)元數(shù)為1,則網(wǎng)絡結(jié)構(gòu)是4-10-1。整個BP 神經(jīng)網(wǎng)絡待優(yōu)化的參數(shù)為61 個,編碼的二進制位數(shù)可以根據(jù)自身參數(shù)的變化范圍和期望精度進行調(diào)整,本文權(quán)值和閾值編碼選擇6 位二進制數(shù)。為了使預測值和期望值更加接近,選擇預測樣本的預測值與期望值的誤差矩陣的范數(shù)作為目標函數(shù)輸出,即可由目標函數(shù)計算適應度函數(shù)。選擇算子采用隨機遍歷抽樣,交叉算子選擇單點交叉算子。
在MATLAB 上建立一個四輸入一輸出的三層BP 神經(jīng)網(wǎng)絡,隱含層選取神經(jīng)元10 個,期望值設置為10-5,最大迭代次數(shù)為2 000 次,采用L-M 方法訓練。遺傳算法優(yōu)化的BP 網(wǎng)絡的輸入向量是擴展卡爾曼k時刻初始電池SOC的估計值Sk|k-1和極化電壓Uk|k-1,SOC的卡爾曼增益KSOC和極化電容的增益KC,輸出向量則是擴展卡爾曼估算的SOC和理論值SOC的差值。此算法的本質(zhì)是,用遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡對EKF 估算的SOC進行非線性等誤差補償,以此來提高SOC的精度。改進的CEKF 整體流程圖如圖3 所示。
在圖3 的SOC估算的過程中,SOC非線性誤差補償?shù)墓綖椋篠OCr=SOCEKF+ErrBP,對EKF 進行非線性誤差補償可以進一步提高SOC的精度,降低了對模型精度的要求。
圖3 改進的CEKF整體流程圖
本實驗選取的是出廠容量標定為70 Ah 的三元鋰電池,實際測量容量是69.27 Ah,數(shù)據(jù)讀取時間間隔是0.1 s,電壓上限為4.5 V,電壓下限為2.5 V,電流上限為100 A,電流下限為-100 A,電池相關(guān)數(shù)據(jù)是通過深圳市亞科源科技有限公司提供的BTS200-100-104 實驗平臺獲取的。
DST 在線辨識的預測電壓和真實電壓如圖4 所示。
圖4 DST電壓
由圖4 得,預測電壓和真實電壓的誤差最大不超過1.5%,且基本穩(wěn)定在0.5%內(nèi),表明自適應FFRLS 的在線辨識效果較好。
在GA 優(yōu)化BP 神經(jīng)網(wǎng)絡的過程中,在每代的種群中挑選最優(yōu)的個體(本文的最優(yōu)個體是預測值與期望值的誤差矩陣范數(shù)最小的個體),記錄每代最小誤差矩陣范數(shù)。誤差變化曲線如圖5。
由圖5 得,種群中的最優(yōu)個體隨著遺傳代數(shù)的增加而進化,具體表現(xiàn)為隨著遺傳代數(shù)的增加,誤差越來越小。把GA優(yōu)化的最優(yōu)初值帶入BP 神經(jīng)網(wǎng)絡算法,既可以增加神經(jīng)網(wǎng)絡的預測能力,也使BP 神經(jīng)網(wǎng)絡每次運行的結(jié)果也一樣,增加系統(tǒng)的穩(wěn)定性。
圖5 BBDST進化曲線
在實際應用中,鋰電池的電流是復雜多變的,對電池的動態(tài)性能要求是嚴格的,也給復雜工況下鋰電池SOC的估算帶來了困難。為了驗證本文算法提出的可靠性,用DST 工況進行驗證,進行對比分析。實驗結(jié)果如圖6 所示。
圖6 DST實驗結(jié)果
由圖6 得,改進的CEKF 最大誤差最大為1.169 5%,比CEKF 少0.715 2%,比EKF 少5.140 5%;平均誤差為0.683 6%,比CEKF 少0.540 1%,比EKF 減少了1.915 4%;均方根誤差為0.755 9%,比CEKF 少0.540 3%,比EKF 減少了2.248 9%。由圖6(b)的誤差圖得,改進的CEKF 各方面誤差都小于EKF 和CEKF,且最大的誤差都在2%以內(nèi),精確度比EKF、CEKF 算法更高,誤差穩(wěn)定性也比EKF、CEKF 好,可以更好地追蹤SOC的理論值,更適合用于SOC的估算。
為了進一步驗證該算法在實際應用中的有效性,進行BBDST 實驗工況驗證。BBDST 工況模擬的是北京公交車行駛過程中的起動、加速、減速等情況。SOC估算結(jié)果如圖7 所示。
由圖7 得,改進的CEKF 最大誤差最大為2.381 9%,比CEKF 少了0.854 8%,比EKF 少了4.359 1%;平均誤差為0.575 3%,比CEKF 減少了0.430 1%,比EKF 減少了1.553 9%;均方根誤差為0.709 1%%,比CEKF 減少了0.374 2%,比EKF減少了1.745 6%。從圖7(b)誤差圖得,改進的CEKF 比EKF算法的最大誤差、平均誤差、均方根誤差都較小,且誤差更加穩(wěn)定,誤差范圍也都在2%左右。
圖7 BBDST實驗結(jié)果
(1)本文以二階Thevenin 等效模型為基礎(chǔ),采用自適應FFRLS 算法進行在線參數(shù)辨識,最大誤差為2%,誤差穩(wěn)定在1.5%,實時跟蹤能力較強,在線辨識效果較好;
(2)本文提出的GA 優(yōu)化BP 算法對鋰電池SOC的估算。通過遺傳算法確定BP 神經(jīng)網(wǎng)絡權(quán)值的初值,可以大大減少迭代次數(shù),增加神經(jīng)網(wǎng)絡的預測能力;
(3)通過實際鋰電池測量的DST 和BBDST 工況實驗,對比改進的CEKF 和EKF 與理論值的誤差。結(jié)果表明,在兩種工況下,改進的CEKF 比EKF 估算SOC的最大誤差、平均誤差都要小,且改進的CEKF 的最大誤差不超過2.5%,整體誤差也比EKF 的整體誤差也要穩(wěn)定,穩(wěn)定性較好,即改進的CEKF 比EKF 能更加準確地跟蹤估算鋰電池的SOC。