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