海 濤,范攀龍,王 鈞
(1.廣西大學電氣工程學院,廣西南寧 530004;2.華藍設計(集團)有限公司,廣西南寧 530004)
實現“碳達峰、碳中和”的目標是我國未來發展的主要基調之一,光伏發電、風力發電等綠色無污染的發電方式得到人們的重視,尤其是光伏發電的發展十分迅速[1]。光伏發電極易受環境影響導致其發電不穩定,在直接與參與并網時極易對電網造成損害,因此光伏發電系統中需要加入蓄電池儲能增強并網的可控性進而提升其電能質量[2]。蓄電池作為一個電能的中轉站對光伏發電有著至關重要的作用,其工作狀態監測以及充放電模式的選擇等都需要通過SOC的預測進行判斷[3]。
常用的電池SOC預估方法有直接測量法和模型驅動法,其中直接測量法通常使用開路電壓法和安時積分法,開路電壓法需要將電池靜置一段時間之后才能準確得出其SOC值,不能進行實時的SOC預估,安時積分法則會有較大的累積誤差產生[4-6]。模型驅動法則是通過搭建電池的等效電路模型模擬電池的狀態,采用濾波的方法進行SOC預估,通常經過卡爾曼濾波來實現電池SOC的估值[7],該方法具有較好的實時性并且誤差較低,但是對系統要求較高,系統需是線性系統否則將會存在系統發散的問題。在卡爾曼濾波的基礎上逐步完善,提出了EKF 算法[8-9],通過將非線性系統線性化的方式,實現了非線性系統中也能進行SOC預估且系統穩定運行。此外,也有通過神經網絡算法進行SOC的預估[10],該方式可用于SOC的實時預估不過存在運算復雜且容易受到訓練數據的影響,對不同類型和型號的電池預測誤差較大。
本文針對電池SOC預估首先對EKF 算法進行了建模的仿真與分析,同時對UKF 算法進行了建模與仿真,結合兩種算法的仿真結果分析,提出了聯合EKF-UKF 算法進行SOC預估的方法。針對三種算法的仿真結果進行了對比分析,驗證了聯合EKF-UKF 算法可以有效降低SOC預估的誤差。
電池的等效電路模型可以將電池的基礎參數轉換為數值表示出來,通過等效模型更加方便對電池進行數學分析。常見的電池模型有等效電路模型、電化學模型等,其中等效電路模型的應用較為普遍,常見的等效電路模型有Thevenin模型、PNGV 模型等,Thevenin 模型根據電池內部的性質進行搭建,在此以其為對象進行研究。Thevenin 模型如圖1 所示。

圖1 Thevenin電池模型
結合該模型可得電流、電壓之間的關系并給出了電池SOC與其電流之間的關系如式(1):
式中:Uoc為電池的開路電壓;Ro為電池內阻;Cp為極化電容;Rp為極化電阻;I為輸出電流;Up為極化電容兩端電壓;UL為輸出電壓。
Thevenin 模型內各項電池基礎參數辨識參考文獻[11]的試驗方法,以充電電壓4.2 V,標稱充電電流為0.25C~1C的18650 鋰電池進行HPPC 測試實驗,并在不同SOC下進行測試與記錄,從而得出仿真模型中電池基礎參數與SOC的關系。另外,開路電壓與SOC之間具有一定的函數關系,通過實驗獲得靜置一段時間之后處于穩定狀態時刻電池的開路電壓與SOC狀態,經過多次重復測量并進行數據記錄同時對所得數據進行擬合,可得SOC與開路電壓之間函數關系。SOCOCV 曲線如圖2 所示。

圖2 SOC-OCV曲線
SOC-OCV 曲線的函數關系式如下:
各項系數分別為a0=3.177、a1=0.146 2、a2=-1.214 e-2、a3=5.28 e-4、a4=-1.267 e-5、a5=1.689 e-7。
通過開路電壓法可以獲得電池的SOC初始值,但是在測量時需要將電池靜置較長時間才能獲得準確值,不適合實時SOC獲取,一般通過EKF 算法來實現電池的實時SOC估計。EKF 算法實際上是一個非線性系統線性化的過程,通過將非線性函數的泰勒展開式進行一階線性化處理并忽略高階項,從而將卡爾曼濾波算法應用到非線性系統中[11]。對非線性函數f和h在x=處進行一階泰勒級數展開,以此實現非線性函數的線性化,可得線性化過后的函數展開式為:
可得此時的卡爾曼增益Kk+1:
通過卡爾曼增益對狀態變量和均方誤差的估計值進行更新,修正獲得k+1 時刻的狀態變量以及均方誤差的最優估計值,其中E是n×m的單位矩陣,n是狀態向量的維數,m是觀測向量的維數;過程噪聲w與測量噪聲v是相互獨立的高斯白噪聲,它們的取值受電池類型的影響,Q和R分別是其方差。
結合式(1)將其電流、電壓關系聯合并進行離散化,得其狀態方程:
此時的觀測方程如式(8)所示:
將初始值代入上述計算過程中,即可開始對SOC值進行一系列循環迭代,其循環過程如下述的五個步驟,通過不斷循環計算使得SOC估計值不斷逼近真實值。
第一步是對k時刻的狀態進行預測:
第二步是通過計算x(k|k-1) 的估計誤差求取對應x(k|k-1) 的協方差矩陣:
第三步是求取k時刻的卡爾曼增益:
第四步是依據實時測量開路電壓Uoc,估計現有狀態的最優估計值:
第五步是更新噪聲協方差:
依照上述步驟進行仿真模型的搭建,其整體EKF 估算SOC模型如圖3 所示,其中包括模擬電流輸入、電池仿真模型、EKF 預測模型、誤差輸入四個主要部分。

圖3 EKF估算SOC仿真模型
其中動態應力測試輸入模塊參考模擬北京公交工況下動力電池組測試工況(Beijing bus dynamic stress test,BBDST),其電流輸入曲線如圖4 所示。通過BBDST 工況電流輸入模擬電池在復雜工況下的頻繁充、放電過程,以此驗證EKF 模型在復雜工況下進行SOC預測的實時性和準確性。

圖4 BBDST工況電流輸入曲線
在BBDST 工況下,通過EKF 算法獲得的SOC估計值與真實值輸出曲線如圖5(a)所示,其誤差曲線如圖5(b)所示。由誤差曲線可知在EKF 算法預估電池SOC時準確性較高,尤其是當系統趨于穩定后系統誤差始終保持在3%以內,在整個仿真過程中SOC估算誤差大多維持在2%以內,但是會出現SOC局部誤差較大(2%~3%之間)的現象,其中最大誤差為7.2%,出現在系統工作開始階段。


圖5 EKF算法下SOC預測曲線與誤差曲線
無跡卡爾曼濾波(UKF)摒棄了非線性函數線性化的做法,基于卡爾曼濾波框架采用無跡變換(unscented transform,UT)處理均值和協方差的非線性傳遞問題。該算法使用系統狀態變量的概率分布替代EKF 算法中忽略高階項的方法降低計算誤差,同時不需要重復計算Jacobian 矩陣可以降低計算復雜度。基于UKF 的SOC計算當中,無跡變換有著非常重要的作用,而無跡變換的關鍵就是采樣點(即Sigma 點)的獲取及其對應權重的確定。設狀態變量x的維數為n,和P分別為其均值和協方差矩陣,y為觀測變量,假設在非線性系統中獲取2n+1 個采樣點,即:
此時對應的權值如式(15),其中β>0,一般取0.2≤α≤1,λ均為縮放比例參數。
UKF 算法計算過程示意圖如圖6 所示。在實現過程上類似EKF 算法,其大致過程分為預測和更新兩個階段,與EKF算法的不同點在于該算法需要進行Sigma 點的選擇,在此則通過對稱采樣策略選出與原狀態具有相同均值與協方差的Sigma 點,然后開始通過循環迭代對SOC值進行求解。

圖6 UKF算法計算過程示意圖
首先是預測過程,對k+1 時刻的系統狀態變量進行預測:
聯立式(15)~(17)進行Sigma 點更新,將采樣點k+1 時刻的預測值代入觀測方程得到k+1 時刻觀測預測值,從而加權得到k+1 時刻測量值的均值。
計算k+1 時刻測量值的方差矩陣以及狀態量與觀測量的協方差,如式(19):
然后就是部分數據的更新過程,對下一時刻的卡爾曼增益與相關狀態變量進行更新,其中k+1 時刻的卡爾曼增益如式(20):
通過式(21)進行系統狀態變量和誤差矩陣的更新:
依據UKF 算法的思想重新搭建仿真模型,對SOC進行估算,觀察其仿真結果如圖7。其中圖7(a)為UKF 算法下實時SOC與真實SOC輸出曲線,圖7(b)為UKF 算法下預估SOC與真實SOC的誤差曲線。由誤差曲線可知,在誤差趨于穩定后,其值穩定在2%以內,并且誤差基本趨于穩定不會出現較大的突變誤差,從系統開始工作到誤差收縮趨于穩定的時間略長于EKF 算法,且在初始狀態的誤差較大。

圖7 UKF算法下SOC預測曲線與誤差曲線
通過仿真曲線可知在UKF 算法下初始狀態誤差過大、EKF 算法則是在穩定運行階段時誤差較大且存在局部誤差過大的特點,其對應缺點導致了在估值SOC時的誤差較大。與EKF 的截斷高階分量相比,UKF 是對非線性函數的概率密度分布進行近似而沒有線性化忽略高階項的算法,其每次迭代過程中需要進行兩次矩陣分解和多次的Sigma 點計算,在其精度提升的同時收斂速度也變慢了。在此提出EKF-UKF算法預估SOC,通過結合兩種算法的優點進一步提高SOC估值的準確性。
聯合EKF-UKF 算法基于二者基礎原理,通過分時段處理的策略估值SOC,在模型中進行分界值tc的設定,在不同時段采取不同算法對SOC估值,由以上仿真曲線可將tc設定在50~100 s 之間,在此將tc設為80 s。此時UKF 的誤差已經收斂到一個較小的值,不再大于EKF 算法。并且UKF 算法因為計算精度更高將會持續保持較低的預估誤差,在該策略下將會提升SOC預估值的準確度與穩定性。在實際應用中,算法的切換點針對不同類型的電池分別進行設定,其具體閾值根據多次實驗來求取誤差最小的時間點作為算法切換點。此外,電池類型、工作工況、所處工作環境等因素都會對電池SOC的預測產生影響,所述因素是相互耦合對模型產生影響的,該部分需要通過大量的實驗數據進行對比分析并搭建新的模型,這是本文的不足之處也是后續的研究重點。
仿真時間0~tc階段由EKF 算法完成SOC值估算;tc至仿真結束期間則通過UKF 算法完成接下來的估值,其中EKF 算法結束時狀態變量的值即為UKF 算法狀態變量的初始值。通過分時段處理的方法完成EKF-UKF 算法的仿真模型,在該模型下進行SOC估值,聯合上述EKF、UKF 仿真模型得出三者之間的誤差曲線對比如圖8 所示。對EKF、UKF、EKF-UKF三個模型下的仿真數據進行記錄,并通過整理分析對比三種算法的特點。

圖8 EKF-UKF算法下的誤差曲線對比圖
平均絕對誤差(mean absolute error,MAE)和均方根誤差(root mean square error,RMSE)是較為典型的性能衡量指標,前者可以對三種算法預測值與觀測值之間絕對誤差的平均值進行比較,通過式(22)計算得到;后者可以更好地反映出三種算法的誤差離散程度即預測值的穩定性,計算如式(23)所示。通過比較三種算法下誤差的MAE和RMSE來觀測其優缺點。
式中:Yi為觀測值;f(xi)為預測值;n為數據集中實例的數量。將所記錄的數據代入公式進行處理,分別得出仿真全過程以及穩定后三種算法的MAE和RMSE,如表1 所示。

表1 EKF、UKF和EKF-UKF誤差曲線分析
通過表1 的誤差曲線分析可知,在EKF 和UKF 預估SOC的整個過程中各有優缺點:EKF 算法的MAE略高于UKF,說明UKF 算法下進行SOC預估時的整體誤差均值更低;但是前者的RMSE要小于后者,說明EKF 算法估算SOC時誤差的波動性更小。但是,在穩定階段的誤差分析中,UKF 算法的MAE和RMSE均低于EKF,由此可見在兩種算法穩定運行時UKF 算法在誤差和穩定性上均優于EKF 算法。聯合EKFUKF 算法則通過結合二者的優點,在整個仿真過程中對MAE和RMSE進行了改善,其穩定運行階段的效果基本與UKF 算法保持一致。
通過實時準確地預估電池SOC可以提高蓄電池管理系統的工作效率以及電池本身的使用壽命,本文通過在MATLAB/Simulink 中搭建電池的Thevenin 模型,并采用EKF、UKF、聯合EKF-UKF 三種方法進行了SOC的預估,結合仿真結果可以得出以下結論:
(1)使用UKF 預估SOC的穩定誤差不超過2%,略優于EKF 算法,但前者的收斂速度不如后者;通過對誤差曲線進行分析可知,EKF 算法的整體穩定性優于UKF 算法,但是穩定運行階段則是UKF 算法更好。
(2)通過對UKF 和EKF 算法分析提出了聯合EKF-UKF 算法,由仿真結果可知該算法穩定誤差基本與UKF 算法保持一致,但是RMSE較前兩種算法有非常大的改善,有效提高了SOC預估值的穩定性。