丁穩(wěn)房,付曉光,張軒豪
(湖北工業(yè)大學(xué)太陽能高效利用及儲能運行控制湖北省重點實驗室,武漢 430068)
近年來,可再生能源的發(fā)電形式愈加受到關(guān)注。晴天有充足的太陽能,陰天風能相對充沛,太陽能與風能可以做到互補發(fā)電。但是光能和風能的隨機性給電能的供給帶來了不確定性,因此互補發(fā)電系統(tǒng)必須配備儲能裝置[1],這些儲能裝置當中,儲能電池最為常見。
電池的荷電狀態(tài)(state of charge, SOC)是電池剩余電量和額定容量的比值[2]。為保證儲能裝置安全可靠的運行,就必須精確估算SOC。SOC的估算方法大致可以分為三類:第一類是安時積分法[3]等傳統(tǒng)方法;第二類是神經(jīng)網(wǎng)絡(luò)算法[4]等數(shù)據(jù)驅(qū)動的算法;第三類是H∞濾波法[5]、滑模觀測器法[6]等基于模型的算法。這三類方法中,傳統(tǒng)方法沒有反饋修正環(huán)節(jié),且依據(jù)的是某些可測變量與SOC之間的關(guān)系,這種關(guān)系是經(jīng)驗性的;數(shù)據(jù)驅(qū)動的算法依賴于所選取的樣本且計算量大,且考慮到的SOC影響因素有限;而基于模型的算法是目前研究的熱點之一。在所有基于模型的算法當中,擴展卡爾曼濾波(extended Kalman filter, EKF)算法應(yīng)用最廣。EKF算法是一種基于模型的算法,通過建立電池等效電路模型對SOC作最小方差估計。但是基于模型的算法有一個共同的問題,算法的精度受到模型的影響。朱智超等[7]指出SOC、電流等都會對電池模型的精度產(chǎn)生影響。而且普遍使用的一階電阻-電容(resistor-capacitance, RC)等效模型是n階RC等效模型簡化后的產(chǎn)物,無法準確反應(yīng)電池的動態(tài)響應(yīng)過程,階躍電流會對模型誤差產(chǎn)生影響。以2 V 300 Ah的閥控式鉛酸蓄電池為實驗對象,提出一種模糊雙卡爾曼濾波(fuzzy dual Kalman filter, FDKF)算法,即:建立一階RC等效模型,將模型參數(shù)轉(zhuǎn)換為自回歸各態(tài)歷經(jīng)(autoregressive exogenous, ARX)模型的形式進行辨識,運用卡爾曼濾波(Kalman filter, KF)算法更新其參數(shù),考慮到電流和階躍電流對模型誤差的影響,獲取電流與電流變化量的數(shù)據(jù)并用模糊算法來決定SOC估算時觀測噪聲協(xié)方差值,最后運用EKF算法估算SOC。
由于電池是非線性系統(tǒng),而KF算法只能用于線性系統(tǒng),所以電池的SOC估算需要使用EKF算法。
EKF算法是基于模型的算法,要使用EKF算法估算SOC,就需要建立合適的電池等效電路模型。目前普遍采用的是如圖1所示的只含有一個RC環(huán)節(jié)的一階RC等效模型。一個極化電阻和一個極化電容構(gòu)成一個RC環(huán)節(jié)。
OCV為開路電壓;RΩ為歐姆內(nèi)阻;Cp為極化電容;Rp為極化電阻;Up為極化電壓;UL為電池的端電壓;IL為工作電流
依據(jù)基爾霍夫電流和電壓定律分別有:
(1)
式(1)中:OCV為開路電壓;RΩ為歐姆內(nèi)阻;Cp為極化電容;Rp為極化電阻;Up為極化電壓;UL為電池的端電壓;IL為工作電流。其中歐姆內(nèi)阻、極化電阻和極化電容可以通過在線方法或采用離線方法獲得。采用間歇脈沖放電的方法可以獲得的離線模型參數(shù)如表1所示。
表1 一階RC等效模型參數(shù)
儲能電池SOC估算的狀態(tài)方程為
(2)
通過一階泰勒展開式將式(2)線性化得到:
(3)
式(3)中:QN為電池的總?cè)萘?;T為采樣時間,取1 s;η為庫倫效率。
根據(jù)式(1)儲能電池SOC估算的測量方程可以表達為
yk=g(xk,IL,k)+vk=OCVk+Up,k+RΩ,IL,k+vk
(4)
式(4)中:vk為k時刻的荷電狀態(tài)估算觀測噪聲,其協(xié)方差值記為R;yk為k時刻的端電壓;OCVk為k時刻的開路電壓。
EKF算法估算SOC的具體的步驟可以分為以下三步:
(5)
(6)
接下來進行循環(huán)計算:k=1,2,…。
第二步時間更新。
狀態(tài)估計和誤差協(xié)方差的時間更新:
(7)
(8)
第三步測量更新。
(9)
狀態(tài)估計和誤差協(xié)方差的測量更新:
(10)
(11)
式(11)中:I為單位矩陣。
根據(jù)式(4),測量方程可以轉(zhuǎn)化為
yk-OCVk=Up,k+RΩIL,k
(12)
用jk表示k時刻的端電壓yk與k時刻的開路電壓OCVk之間的差值。
根據(jù)式(3)得到:
(13)
綜合式(12)、式(13),可得:
(14)
式(14)轉(zhuǎn)換為ARX模型的形式,可以表達為
jk+1=akjk+bkIL,k+ckIL,k+1
(15)
記模型參數(shù)θk=(ak,bk,ck)T,有:
(16)
于是模型參數(shù)辨識的測量方程為
(17)
準確的電池參數(shù)辨識是精準估算SOC的前提。目前大多數(shù)的參數(shù)辨識都是采用離線辨識方法。但是離線辨識方法不僅耗費時間,而且離線辨識過程中存在的噪聲導(dǎo)致辨識結(jié)果不準確。而在線辨識方法可以彌補這一缺陷,KF算法就可以用來在線辨識參數(shù)。
要同時估算電池的SOC和參數(shù),可以采用聯(lián)合卡爾曼濾波(joint Kalman filter,JKF)算法或者雙卡爾曼濾波(dual Kalmar filter,DKF)算法。JKF算法把要辨識的參數(shù)當作狀態(tài)變量的分量,增加運算當中矩陣的行數(shù),從而導(dǎo)致更加復(fù)雜的矩陣運算[8]。DKF算法則是運用EKF算法估算SOC并用KF算法辨識電池參數(shù),這樣避免了增加狀態(tài)變量的分量而導(dǎo)致的復(fù)雜矩陣運算。便采用DKF算法估算SOC并辨識模型參數(shù)。
儲能電池模型參數(shù)辨識的狀態(tài)方程為
(18)
KF算法辨識參數(shù)的具體的步驟可以分為以下三步。
(19)
(20)
接下來進行循環(huán)計算:k=1,2,…。
第二步時間更新。
狀態(tài)估計和誤差協(xié)方差的時間更新:
(21)
(22)
第三步測量更新。
(23)
狀態(tài)估計和誤差協(xié)方差的測量更新:
(24)
(25)
使用EKF算法估算SOC的誤差主要分為兩部分:一部分是時間更新部分產(chǎn)生的誤差,由電池老化造成的容量誤差和電流測量誤差組成;一部分是測量更新部分產(chǎn)生的誤差,由電壓測量誤差和模型誤差組成,其中模型誤差占據(jù)主導(dǎo)地位[9]。為方便討論將電壓測量誤差也算入模型誤差,于是k時刻的模型誤差emodel,k可以由電壓殘差表示,即k時刻的電壓測量值Umeasurement,k與k時刻的估算值Uestimation,k之差:
emodel,k=Umeasurement,k-Uestimation,k
(26)
若只考慮模型誤差,k時刻SOC估算的估算誤差,即瞬態(tài)誤差esoc,k為
(27)
將式(9)代入式(27),有:
esoc,k=
(28)
SOC估算進入穩(wěn)態(tài)的時候,有穩(wěn)態(tài)誤差:
(29)
從式(29)可以看出,觀測噪聲協(xié)方差值無法影響穩(wěn)態(tài)誤差esoc。
故當模型誤差較大的時候,增大觀測噪聲協(xié)方差值可以減小模型誤差帶來的SOC估算的瞬態(tài)誤差。
電池模型容易受到多方面影響。盡管做到了在線辨識模型參數(shù),但是只含有有限個RC環(huán)節(jié)的模型通常無法準確地反映其瞬態(tài)響應(yīng)(包含電流的階躍突變),基于一階RC等效模型轉(zhuǎn)換得來ARX模型也是如此。用1 s內(nèi)電流變化量來表征階躍電流的影響,用電壓殘差值來表征電池的模型誤差,通過對比電池在30、45、60 A恒流放電情形下在1 s內(nèi)電流突然變化10、20、30 A的電壓殘差值,檢驗電流與階躍電流對模型誤差的影響。
如表2所示,電流恒定時,電壓殘差值隨著1 s內(nèi)電流變化量的增加而變大;而1 s內(nèi)電流變化量恒定時,電壓殘差值隨著電流的增加而變大。實驗說明電流的階躍突變越厲害,模型誤差越大,且階躍突變前的電流越大,模型誤差越大。
表2 模型誤差的影響因子
模糊算法是一種模擬人的推理決策思維的控制方式[10],將所測數(shù)據(jù)經(jīng)過模糊化處理轉(zhuǎn)化為模糊量,再由經(jīng)驗制定的模糊規(guī)則進行推理得到輸出并去模糊化得到輸出量[11]。
采用模糊算法設(shè)計一個兩輸入單輸出系統(tǒng),通過改變電流與1 s內(nèi)電流變化量的大小調(diào)整觀測噪聲的協(xié)方差值抑制原有模型誤差帶來的不利影響。其中輸入變量為電流I和1 s內(nèi)電流變化量的dI,輸出變量為噪聲的協(xié)方差值R,這里噪聲的協(xié)方差也可以被認為是一個一階方陣。
為保證實驗所用的閥控式鉛酸蓄電池的安全可持續(xù)使用,電流I的物理論域選取(0 60),1 s內(nèi)電流變化量dI的物理論域選取(0 60),觀測噪聲的協(xié)方差值R的物理論域選取(0 10)。電流I和1 s內(nèi)電流變化量dI這兩個輸入量選用low、mid、high三個模糊語言變量來描述,觀測噪聲的協(xié)方差值R選用low、midlow、mid、midhigh、high五個模糊語言變量來描述,從low到high各個變量依次代表所取物理論域內(nèi)由小到大的數(shù)值。輸入變量電流I與1 s內(nèi)電流變化量dI的隸屬度函數(shù)和輸出變量觀測噪聲的協(xié)方差值R的隸屬度函數(shù)如圖2 所示。
圖2 輸入變量與輸出變量的隸屬度函數(shù)
這個兩輸入單輸出系統(tǒng)的具體模糊規(guī)則為
If(Iis low)and(dIis low)then(Ris low);
If(Iis low)and(dIis mid)then(Ris midlow);
If(Iis low)and(dIis high)then(Ris mid);
If(Iis mid)and(dIis low)then(Ris midlow);
If(Iis mid)and(dIis mid)then(Ris mid);
If(Iis mid)and(dIis high)then(Ris midhigh);
If(Iis high)and(dIis low)then(Ris mid);
If(Iis high)and(dIis mid)then(Ris midhigh);
If(Iis high)and(dIis high)then(Ris high);
將最后得到的輸出變量觀測噪聲的協(xié)方差R代入式(9),即完成FDKF估算SOC的全過程。
采用的實驗平臺由被測試的儲能電池、電池測試系統(tǒng)和測試用的計算機組成。儲能電池選用2 V 300 Ah的閥控式鉛酸蓄電池,電池測試系統(tǒng)選用新威公司的高性能電池檢測系統(tǒng)。實驗在25 ℃的實驗室恒溫環(huán)境下進行,驗證風光互補發(fā)電系統(tǒng)的儲能電池在無風無光且工況電流突變的儲能工況下SOC的估算。
將實驗用的儲能電池在實驗室恒溫環(huán)境下充電至SOC為1,擱置一段時間后按如圖3所示自定義的工況進行放電試驗,采樣頻率取1 s,分別利用EKF算法、DKF算法和FDKF算法進行SOC估算,其中EKF算法采用如表1所示模型參數(shù),DKF算法辨識了參數(shù),但沒有建立模糊控制系統(tǒng)調(diào)整觀測噪聲的協(xié)方差值。三種算法的SOC估算曲線如圖4所示,SOC估算誤差曲線如圖5所示,三種算法的誤差對比如表3所示。
圖3 工況電流
由表3可知,F(xiàn)DKF算法的最大誤差為0.39%,要小于EKF算法算得的3.92%和DKF算法算得的1.12%,F(xiàn)DKF算法的估算誤差的平均值為0.13%,要小于EKF算法算得的0.65%和DKF算法估算得到的0.60%,說明DKF算法的估算精度要優(yōu)于EKF算法,而利用模糊算法修正觀測噪聲協(xié)方差值的FDKF算法優(yōu)于DKF算法。
圖4 SOC估算曲線
圖5 SOC估算誤差曲線
表3 EKF、DKF和FDKF誤差對比
為驗證FDKF算法的收斂性,取SOC的真實初值為1,將FDKF算法的SOC初值設(shè)為0.6,由圖6可知,SOC初值存在誤差的情形下,估算值在1 500 s左右收斂于參考值。
圖6 FDKF算法收斂性分析
荷電狀態(tài)(SOC)的估算一直都是電池領(lǐng)域的難點問題,提出一種FDKF算法估算SOC,即基于ARX模型用KF算法辨識參數(shù),并用模糊控制算法來調(diào)整觀測噪聲協(xié)方差值,最后用EKF算法估算SOC。通過對比實驗,在某儲能工況下,利用模糊算法調(diào)整觀測噪聲協(xié)方差值的FDKF算法要優(yōu)于沒有利用模糊算法調(diào)整觀測噪聲協(xié)方差值的DKF算法,在線辨識參數(shù)的DKF算法又要優(yōu)于采用離線模型參數(shù)的 EKF算法。