段雙明,張勝利
(現(xiàn)代電力系統(tǒng)仿真控制與綠色電能新技術(shù)教育部重點實驗室(東北電力大學(xué)),吉林 吉林 132012)
鋰離子電池由于其高能量密度、長循環(huán)壽命和無記憶效應(yīng)的優(yōu)點被廣泛應(yīng)用在電動汽車、新能源發(fā)電和移動電子設(shè)備等領(lǐng)域[1-2]。模型參數(shù)辨識是電池建模的重要步驟,辨識結(jié)果的準(zhǔn)確性直接影響模型的精確性,而模型參數(shù)直接影響現(xiàn)有電池故障診斷效果[3-4]和電池狀態(tài)估計精度[5-6]。因此,實現(xiàn)精確的參數(shù)辨識對于電池管理至關(guān)重要。
在線參數(shù)辨識可以根據(jù)電池所處的環(huán)境和狀態(tài)實時修正模型參數(shù),因此被大量研究。文獻(xiàn)[7]提出滑動窗口差分遺忘因子遞推最小二乘法,選擇自適應(yīng)變時間寬度的數(shù)據(jù)來更新遺忘因子,實現(xiàn)了對遺忘因子的進(jìn)一步控制,但只驗證了在電池參數(shù)不發(fā)生變化情況下的結(jié)果,對于變化參數(shù)的情況并未討論。文獻(xiàn)[8]針對電池模型不同部位的收斂時間的不同特點,使用RLS(recursive least squares)和擴(kuò)展卡爾曼濾波異步辨識二階等效電路模型,驗證了電壓誤差從零初值收斂到確定參數(shù)的收斂時間,同樣存在的問題是在參數(shù)發(fā)生變化的情況下,并未說明參數(shù)收斂時間。文獻(xiàn)[9]使用粒子群優(yōu)化模擬退火算法對三種不同類型的電池模型參數(shù)進(jìn)行辨識,展示了所提方法在不同模型間的通用性,但所用方法并未驗證在實時參數(shù)辨識上的計算時間問題。文獻(xiàn)[10]提出使用恒流間歇滴定技術(shù)建立等效電路模型參數(shù)的精確查找表,對不同溫度下的電池參數(shù)進(jìn)行精確表征,但這需要大量的前期實驗時間,并且同一型號的電池存在不一致性差異,隨著使用時間的增加,查找表精度會越來越差。文獻(xiàn)[11]針對鋰離子電池組提出了一種改進(jìn)的復(fù)合等效建模方法和拼接卡爾曼濾波算法,提高了荷電狀態(tài)的預(yù)測精度。文獻(xiàn)[12]提出了一種改進(jìn)的前饋-長短期記憶(FF-LSTM)建模方法,通過有效地考慮電流、電壓和溫度等因素,實現(xiàn)了精確的全生命周期SOC預(yù)測。
在電流變化頻繁的運(yùn)行條件下,極化電容參數(shù)會劇烈變化,而RLS 適用于參數(shù)變化緩慢的系統(tǒng),當(dāng)參數(shù)變化劇烈時,辨識參數(shù)誤差會增大[13],故針對電池參數(shù)發(fā)生變化時導(dǎo)致辨識誤差的問題,本文提出自適應(yīng)多層RLS參數(shù)辨識方法,所提方法根據(jù)層數(shù)變化來更新參數(shù),以提升算法參數(shù)跟蹤能力。設(shè)計層數(shù)選擇器,根據(jù)誤差e(k)值的變化選擇層數(shù),減小計算量,搭建仿真實驗平臺,驗證所提方法的正確性和有效性。
由于戴維南模型精度較高且計算量不大,本文選擇戴維南模型作為電池待辨識模型,其結(jié)構(gòu)如圖1所示。戴維南模型由受控電壓源、歐姆內(nèi)阻和并聯(lián)的電阻以及電容組成,電壓源表示電池的開路電壓(open circuit voltage,OCV),其值會隨著SOC 的變化而改變。歐姆內(nèi)阻R0代表了當(dāng)電流流過模型時所產(chǎn)生的瞬態(tài)電壓降,歐姆內(nèi)阻由電極材料電阻、電解液電阻等組成,是體現(xiàn)電池健康狀態(tài)(state of health,SOH)的重要指標(biāo)[14]。并聯(lián)的電阻電容分別是極化內(nèi)阻RP和極化電容CP,其可以描述當(dāng)電池充電或放電時電壓的瞬態(tài)變化[15]。圖1 所示戴維南模型電流和電壓關(guān)系可以由公式(1)描述。
圖1 戴維南電池模型Fig.1 Theveinan battery model
式(1)中,UP為極化電壓,Ut為端電壓,i為充電或放電電流,Uocv為開路電壓。進(jìn)行參數(shù)辨識前需要將該時域模型轉(zhuǎn)化為外源性自回歸模型[16]。令Ul=Uoc-Ut,可得傳遞函數(shù):
對式(2)使用雙線性變換[17]:
式中,z為離散化運(yùn)算子,Ts為采樣間隔,可得傳遞函數(shù)的離散形式為:
中間參數(shù)a1、b0、b1可分別表示為:
從式(4)可得離散模型:
式中,y(k)為端電壓矩陣,φ(k)為輸入矩陣,θ(k)為參數(shù)矩陣,分別表示為:
獲得參數(shù)矩陣θ(k)后,可根據(jù)式(8)解出戴維南模型的參數(shù)值。
在最小二乘方法中,為使給定的數(shù)據(jù)和假定的信號或無噪聲數(shù)據(jù)之差的平方達(dá)到最小,即最小化式(9)。在公式(9)中,當(dāng)遺忘因子λ為1 時,式(9)為標(biāo)準(zhǔn)的最小二乘法。當(dāng)λ小于1 時,隨著i的增加,指數(shù)λk-i會越來越大,這表示新數(shù)據(jù)更新參數(shù)的權(quán)重大于舊數(shù)據(jù),因此實現(xiàn)對時變系統(tǒng)的參數(shù)跟蹤[18]。
遞推最小二乘為式(9)的遞推形式,其迭代公式如下:
式(10)~式(13)中,K(k)為增益矩陣,P(k)為協(xié)方差矩陣,I為單位矩陣,λ通常取0.95~1。遺忘因子的取值會對參數(shù)辨識的結(jié)果產(chǎn)生影響。例如在第k次的計算中,λ越小,第k次之前的數(shù)據(jù)點對第k次參數(shù)更新所占的比例越小。傳統(tǒng)的RLS參數(shù)更新受限于指數(shù)遺忘的形式,當(dāng)系統(tǒng)參數(shù)變化劇烈時,存在參數(shù)誤差。本文提出使用層數(shù)更新參數(shù)的自適應(yīng)多層RLS法,以提升對快速變化參數(shù)辨識的精度。
電池參數(shù)會隨著SOC、電流和溫度的變化而變化,AMLRLS從各層得出的參數(shù)中,計算電壓誤差中參數(shù)量所占的比例,提取誤差中的參數(shù)量,從而減小參數(shù)誤差。為了形成多層RLS結(jié)構(gòu),對于式(6)所表示的系統(tǒng),在第一層RLS中,根據(jù)式(14)可將系統(tǒng)重新表示為式(15)的形式,其中下標(biāo)Ln表示第n層,即把式(6)的y(k)作為第一層的yL1(k),把θ(k)作為第一層的θL1(k)。
式(14)中,yL1(k)表示第k次的端電壓,θL1(k)表示第一層的參數(shù)大小,根據(jù)第一層的辨識結(jié)果,可得第一層的電壓誤差為:
展開yL1(k)后為:
θL1(k) -可表示為θL2(k),作為第一層參數(shù)估計后的參數(shù)誤差矩陣。在第二層中,RLS用來估計第一層產(chǎn)生的參數(shù)誤差θL2(k)。和第一層相似,第二層的估計誤差如式(18)所示:
展開yL2(k)后為:
后面每一層的yL(k)取計算上一層估計參數(shù)的電壓誤差,例如在第(m-1)層中,其估計的參數(shù)為θL(m-1)(k),θL(m-1)(k)所產(chǎn)生的誤差[θL(m-1)(k) -]作為下一層待估計的參數(shù),如式(20)所示[13]:
得到第(m- 1)層的yLm(k)后,第(m- 1)層的ek和與第一層RLS類似,分別為:
式中,Kk增益矩陣為第一層的增益矩陣,即所有層共用一個Kk增益矩陣。達(dá)到規(guī)定的計算層數(shù)后,第k次數(shù)據(jù)點的參數(shù)就是第k次所有層的參數(shù)之和,即:
隨著層數(shù)的增加,參數(shù)誤差會越來越小,但參數(shù)誤差減小到一定程度后噪聲對參數(shù)的影響增大,考慮更多的層數(shù)帶來更多的計算負(fù)擔(dān),選擇合適的層數(shù)是必要的。當(dāng)參數(shù)變化更劇烈時,因為RLS的指數(shù)遺忘性質(zhì)會導(dǎo)致參數(shù)誤差變大,而參數(shù)誤差體現(xiàn)在e(k)上,故可以通過增加RLS 層數(shù)對參數(shù)誤差進(jìn)行補(bǔ)償,因此合理的RLS層數(shù)應(yīng)該和參數(shù)變化有關(guān)。此外,當(dāng)參數(shù)誤差小到一定程度后繼續(xù)增加層數(shù)以減小誤差并不合理,因為足夠小的誤差下噪聲所占的比例會變大,故層數(shù)不應(yīng)太大。綜上,層數(shù)選擇器的設(shè)計如式(24)所示:
式(24)中,round()代表取整數(shù)函數(shù),Lmin為最小層數(shù),h為敏感系數(shù),ebase為允許誤差,e(k)為k時刻的誤差,h表示了L(k)隨誤差e(k)變化的快慢,h取值為0~1,當(dāng)h接近1時,L(k)變化加快,h接近0時,L(k)變化變慢。根據(jù)式(24)可以得出:當(dāng)e(k)大于ebase時,L(k)會增加;當(dāng)e(k)小于ebase時,L(k)會減小,因此通過增加層數(shù)來減小誤差是可行的。層數(shù)選擇器的加入使誤差控制在可以接受的范圍內(nèi),并且減小了計算量。結(jié)合層數(shù)選擇器后,AMLRLS參數(shù)辨識步驟如表1所示。
表1 AMLRLS參數(shù)辨識流程Table 1 The parameters identification steps of AMLRLS
為了驗證所提方法在參數(shù)變化時跟蹤參數(shù)的能力,本文使用MATLAB仿真電池戴維南等效電路模型,采樣頻率設(shè)置為1Hz。其中模型參數(shù)設(shè)定為R0=0.07Ω,RP=0.01Ω,CP設(shè)置為1000~1200F 的變化值。分別使用三種方法對變化的極化電容CP進(jìn)行辨識,AMLRLS遺忘因子設(shè)置為0.99,最大層數(shù)為4,最小層數(shù)為1,AFFRLS最大遺忘因子設(shè)置為0.99,最小遺忘因子設(shè)置為0.98,RLS遺忘因子設(shè)置為0.99。仿真結(jié)果如圖2所示。圖2(a)為極化電容以2000 s為周期變化的情況,結(jié)果顯示在參數(shù)發(fā)生變化后,三種方法依次收斂至真實值。得益于以多層結(jié)構(gòu)更新參數(shù),AMLRLS 與真實值最為靠近,在最短的時間內(nèi)逼近真實值。AFFRLS收斂至真實值的時間大于AMLRLS,但AFFRLS具有改變遺忘因子的優(yōu)勢,這使得其在小于RLS的時間內(nèi)收斂至設(shè)定的準(zhǔn)確值,RLS收斂至真實值的時間最長,辨識到的參數(shù)有明顯的時間滯后。圖2(b)為極化電容以1000 s為周期變化的情況,其辨識結(jié)果與圖2(a)類似,不同的是由于參數(shù)變化頻率加快,算法辨識值和真實值之差有所增大。
圖2 算法辨識以不同周期變化的極化電容Fig.2 Algorithmic identification of polarizing capacitors with varying time periods.
表2 統(tǒng)計了圖2 三種算法辨識結(jié)果與真實值的平均絕對誤差(mean absolute error, MAE),其中圖2(a)中AMLRLS 的MAE 是RLS 的37.5%,是AFFRLS 的55.4%。圖2(b)在極化電容參數(shù)變化頻率增加的情況下,三種方法的MAE 比圖2(a)的結(jié)果都有所增加,在圖2(b)中,AMLRLS 的MAE 是RLS的31.0%,是AFFRLS的53.5%。根據(jù)以上分析,可以得出當(dāng)極化電容參數(shù)變化的頻率越大,AMLRLS的MAE相較于RLS的提升越大。
表2 極化電容以不同頻率變化的平均絕對誤差對比Table 2 Comparison of mean absolute error of polarized capacitance at different frequencies
在參數(shù)辨識之前,需要進(jìn)行實驗確定電池的SOC和OCV曲線,SOC與OCV的關(guān)系可用式(25)的多項式表示[19]:
式中,ci為多項式系數(shù)。首先,將電池以1 C倍率的恒定電流進(jìn)行充電,充電至截止電壓4.2 V,隨后以恒定電壓4.2 V 進(jìn)行恒壓充電,當(dāng)電流降低到0.01 C時,停止充電,此時電池已經(jīng)充滿,充滿后每次以1/20C的電流放10%的電量,放電后間隔2 個小時,并記錄此時的SOC-OCV 對應(yīng)值,之后進(jìn)行下一次放電。經(jīng)過以上實驗,可以得出SOCOCV 的11 個對應(yīng)點。為了得出SOC-OCV 曲線,需要使用MATLAB曲線擬合工具箱對SOC-OCV點進(jìn)行擬合,擬合的結(jié)果如圖3所示。圖中11個點分別對應(yīng)了SOC從0至1時開路電壓從3.2 V至4.2 V的變化情況。
圖3 SOC-OCV擬合曲線Fig.3 SOC-OCV fitting curve
電池在實際使用中,電池參數(shù)在不斷發(fā)生變化[20],為了驗證所提方法在模型參數(shù)變化情況下的優(yōu)勢,本文使用DST(dynamic stress test)和FUDS(federal urban driving schedule)兩種電流變化比較大的電流文件來進(jìn)行實驗。實驗數(shù)據(jù)均來源于馬里蘭大學(xué)鋰電池數(shù)據(jù)集,實驗電池型號為INR 18650-20R,容量2000mAh。DST 和FUDS電壓電流的特點分別如圖4所示,從圖中可以看出FUDS與DST電流變化的幅值相同,但FUDS的電流變化相對更頻繁,且兩種電流文件中電壓不斷下降,電池總體呈放電趨勢。實驗所設(shè)置的溫度為25 ℃,實驗電池初始SOC為80%。辨識后根據(jù)電壓誤差的大小作為電池參數(shù)辨識是否準(zhǔn)確的依據(jù),電壓誤差的計算方法為[7]:
圖5 是根據(jù)式(26)得到的電壓誤差。在圖5(a)的DST 電流文件中,可以看出相同的部分為在電流變化較大的情況下,電壓誤差也相對較大,這是因為在電流變化大時,電池參數(shù)發(fā)生變化,而算法并不能及時地收斂至變化的電池參數(shù),而AMLRLS使用多層結(jié)構(gòu)遞推分離出電壓誤差中的參數(shù)量,故在2000~8000 s 這一階段的AMLRLS 的最大電壓誤差要小于作為對比的AFFRLS和RLS,這驗證了所提方法在參數(shù)變化情況下可以降低電壓誤差的優(yōu)點。另外,在開始和結(jié)束時間段3種方法的電壓誤差均高于中間時間段。在FUDS 電流文件中,電流變化頻繁,在電流變化大時AMLRLS 低電壓誤差的優(yōu)勢并不明顯。為了更直觀地評價所提方法的優(yōu)勢,分別計算DST 電流文件和FUDS 電流文件下的平均絕對誤差(27)和均方根誤差(28)。在式(27)和式(28)中,Vtest為實驗所測得的電壓,Vmodel為電池等效電路模型的電壓,N為總數(shù)據(jù)點個數(shù)。
圖5 DST電流文件和FUDS電流文件下電壓誤差Fig.5 Voltage error under DST current file and FUDS current file
計算結(jié)果如表3 所示,從表中數(shù)據(jù)可以看出,本文所用方法無論是絕對誤差還是均方根誤差都小于RLS和AFFRLS,對比AFFRLS和RLS的結(jié)果,AFFRLS作為RLS的改進(jìn)算法得益于變化的遺忘因子的優(yōu)勢可以減小電壓平均絕對誤差和電壓均方根誤差。而AMLRLS以改變RLS層數(shù)遞推計算電壓誤差中的參數(shù)所占的比例,從而從電壓誤差中提取出參數(shù)值,這使得AMLRLS在DST和FUDS下電壓誤差均小于AFFRLS。比較DST電流文件和FUDS電流文件,由于FUDS電流文件中電流變化比DST電流文件中電流變化更加頻繁,這導(dǎo)致DST電流文件下的誤差要小于FUDS電流文件下的誤差。
表3 DST和FUDS下電壓誤差的比較Table 3 Comparison of voltage errors under DST and FUDS
圖6(a)和圖6(b)分別為所提方法在DST電流文件下的層數(shù)分布和層數(shù)統(tǒng)計,在圖6(a)中,層數(shù)分布的形狀與DST 電流形狀具有相似性,這是因為受到電流變化的影響,電池參數(shù)會發(fā)生變化,層數(shù)選擇器則選擇較高的層數(shù)使更新的參數(shù)更接近變化后的參數(shù)值,這使電流和層數(shù)產(chǎn)生了形狀上的關(guān)聯(lián)。在圖6(b)中,DST 共有10630 個數(shù)據(jù)點,74.8%的數(shù)據(jù)點為一層,共7948個。3層和4層的數(shù)據(jù)點占比最小,分別為6.1%和6.9%,計算至兩層的數(shù)據(jù)點高于計算了3 層和4 層的數(shù)據(jù)點,占比為12.2%。
圖6 DST下AMLRLS層數(shù)分布和層數(shù)統(tǒng)計Fig.6 The layer distribution and layer count statistics under DST for AMLRLS.
圖7(a)和圖7(b)分別為所提方法在FUDS 電流文件下的層數(shù)分布和層數(shù)統(tǒng)計。在圖7(a)中,2層、3 層和4 層的數(shù)量相較于DST 更為密集。圖7(b)的情況和圖6(b)類似,層數(shù)多的數(shù)據(jù)點占比小,計算到一層的數(shù)據(jù)點占比仍然是最多的,與圖6(b)不同的是計算至2~4層的數(shù)據(jù)點占比提高了,這是因為FUDS 電流變化頻率更高,導(dǎo)致電壓誤差e(k)始終較高,故層數(shù)選擇器偏向選擇較高的層數(shù)。圖6(b)和圖7(b)表明了加入了層數(shù)選擇器后,層數(shù)選擇器可以根據(jù)e(k)選擇合適的層數(shù),避免了所有數(shù)據(jù)點計算至最大層數(shù)導(dǎo)致計算量變大的劣勢。
圖7 FUDS下AMLRLS層數(shù)分布和層數(shù)統(tǒng)計Fig.7 The layer distribution and layer count statistics under FUDS for AMLRLS
為了驗證所提方法在不同情況下的性能,本文使用不同溫度和初始SOC 對電池進(jìn)行參數(shù)辨識,得出的電壓誤差如表4所示。對于DST電流文件下的實驗結(jié)果,當(dāng)設(shè)定溫度為0 ℃、初始SOC 為50%時,RLS 的MAE 和RMSE(Root Mean Square Error)最大,AMLRLS 的MAE 和RMSE 最小;在80%初始SOC 的情況下,AMLRLS 電壓MAE 和RMSE同樣小于其他兩種方法。對比這兩組不同初始SOC的誤差我們發(fā)現(xiàn),以80%初始SOC進(jìn)行實驗的電壓MAE 和RMSE 要小于50%初始SOC 的情況,這說明在相同的溫度下較大的初始SOC 其電壓誤差較??;同時對比誤差大小也說明了在0 ℃時,即使初始SOC 不同,AMLRLS 電壓誤差都會小于RLS和AFFRLS。對于DST電流文件下45 ℃的情況,也能得出上述結(jié)論。另外,比較0 ℃和45 ℃的結(jié)果,可以看出在不同的溫度下,本文所提方法均可降低電壓MAE和RMSE。
表4 不同情況下的電壓誤差比較Table 4 Comparison of voltage errors in different cases
對比DST 電流文件和FUDS 電流文件的結(jié)果,可以看出FUDS 電流文件下的電壓誤差普遍大于DST電流文件,這是因為FUDS的電流變化相較于DST更加頻繁??傊?,綜合以上結(jié)果,我們發(fā)現(xiàn)在不同的溫度、不同初始SOC 和不同電流文件下本文所提方法的電壓MAE和RMSE均小于對比方法,驗證了所提方法的有效性和適用性。
為了對比各類算法的計算時間,并體現(xiàn)層數(shù)選擇器的作用,本文針對DST 工況和FUDS 工況對算法參數(shù)辨識時間進(jìn)行對比。使用的計算機(jī)CPU為Intel i5-6300HQ,默認(rèn)頻率為2.3GHz。辨識時間對比結(jié)果如表5所示,在DST工況和FUDS工況中,RLS所用時間最短,AFFRLS所用時間略高于RLS,本文所提方法計算時間高于AFFRLS 和RLS,在DST 工況下,AMLRLS 計算時間是RLS的1.66 倍,是AFFRLS 的1.61 倍;在FUDS 工況下,AMLRLS 計算時間是RLS 的1.94 倍,是AFFRLS 的1.8 倍。本文另外對比了在沒有設(shè)置層數(shù)選擇器的情況下AMLRLS 的計算時間,結(jié)果如表5第二行所示,在DST工況下,AMLRLS計算時間為所提算法未設(shè)置層數(shù)選擇器情況下的62%;在FUDS工況下,AMLRLS計算時間為所提算法未設(shè)置層數(shù)選擇器情況下的71%,這驗證了在設(shè)置層數(shù)選擇器后,所提方法的計算時間將大幅減小。
表5 算法辨識時間對比Table 5 Algorithm identification time comparison
本文首先對基礎(chǔ)的RLS算法進(jìn)行改進(jìn),以算法中的參數(shù)更新公式和電壓誤差更新公式作為RLS多層結(jié)構(gòu)的基礎(chǔ),將本層的電壓誤差作為下一層參數(shù)更新的目標(biāo)值,進(jìn)而在下一層計算中分離出電壓誤差中的參數(shù)量,使其更準(zhǔn)確地辨識變化的電池參數(shù)。每次參數(shù)辨識的層數(shù)需要根據(jù)不同的辨識精度而變化,而不是設(shè)定固定的層數(shù)值,故設(shè)計層數(shù)選擇器以第一層辨識結(jié)果電壓誤差作為選擇合理層數(shù)的依據(jù),最終形成AMLRLS 算法。AMLRLS 算法的不同之處在于其更新參數(shù)并非以控制遺忘因子的大小來實現(xiàn)的,而是改變RLS層數(shù),這使得其參數(shù)辨識結(jié)果實現(xiàn)了更低的電壓誤差。仿真結(jié)果顯示,對于參數(shù)變化頻率越大的電池,AMLRLS的優(yōu)勢越明顯。實驗在不同溫度、不同初始SOC 和不同電流下驗證了AMLRLS 具有較強(qiáng)的適用性。已經(jīng)做的工作并未對歷史辨識數(shù)據(jù)進(jìn)行充分利用,故未來的研究工作將圍繞如何把歷史的辨識數(shù)據(jù)融合進(jìn)AMLRLS辨識計算中這一問題展開。