徐勁力,郎錦峰,徐 維,劉佳俊
(武漢理工大學機電工程學院,湖北武漢 430070)
電池荷電狀態(tài)(SOC)估算能夠實時顯示電池剩余電量的狀況,是保障電池正常工作的基礎[1]。
離線和在線辨識是等效電路模型參數辨識的主要方法,前者得到的模型參數無法反映電池實時的動態(tài)特性,后者通過實時采集可測變量,模型參數辨識結果更為準確。遞推最小二乘法具有計算簡單、容易實現等特點,是在線辨識中應用較多的方法之一[2-4],然而由于遞推關系和數據量的增加,舊數據也一直影響著新輸入數據的遞推結果。
在電池SOC估算方面,初值準確與否對安時積分法估算SOC影響很大,容易造成誤差累積[5];需要長時間的靜置使得開路電壓法在線估算變得不方便[6];內阻法則受電池種類和數量等的影響,在實際中應用很少[7]。后來智能算法也被用來進行SOC估算,通過對大量的測量數據進行訓練和學習從而進行預測,典型的有支持向量機[8]、神經網絡[9]等,這類算法不依賴數學模型,但對數據集的質量和完整度有較高的要求。目前基于模型的估算方法中卡爾曼濾波(KF)算法最為常見,無跡卡爾曼濾波(UKF)算法使用無損變換,且避免求解雅可比矩陣,減小了非線性誤差[10],精度比擴展卡爾曼濾波(EKF)更高,但容易帶來協方差矩陣非正定的情況。
為了解決最小二乘法在參數辨識過程中出現“數據飽和”的情況,以及無跡卡爾曼濾波易出現協方差矩陣非正定的情況,本文在Thevenin 模型的基礎上,參數采用限定記憶最小二乘法辨識,電池SOC采用自適應平方根無跡卡爾曼濾波算法(ASRUKF)進行估算。
等效電路模型通過電路元件的組合來模擬電池特性,利用數學方法來建立不同參數之間的關系。圖1 為一階RC 電路模型,即Thevenin 等效電路模型,內部動態(tài)特性通過阻容網絡來模擬。歐姆電阻用R0表示;開路電壓為UOCV;用R1和C1分別表示極化電阻和電容;端電壓為Ut;U1為RC 回路的極化電壓;I為電流,充電時電流為正,放電時電流為負。
圖1 一階RC 電路模型
根據所建模型和電壓定律,可建立如下電路方程:
式中:SOC0為初始SOC值;η1為充放電效率,通常取1;容量用Cn表示;t0和t分別代表初始時刻和t時刻。
離散化處理之后,狀態(tài)空間方程如下:
式中:T為采樣時間;w為過程噪聲;v為測量噪聲,是用來模擬不確定性的高斯白噪聲,狀態(tài)變量為xk=[SOCk,U1,k],控制變量為uk=Ik,,觀測變量為yk=Ut,k。
本次實驗采用如圖2 所示的電池測試平臺,主要包括測試系統(tǒng)、恒溫箱、電池、數據采集設備等,三元鋰電池具體參數為:溫度為25 ℃,標稱容量2.5 Ah,充電截止電壓4.2 V,放電截止電壓2.75 V。
圖2 電池測試平臺
通過對電池的充放電測試,得到電池開路電壓的測試數據。為了能夠更好地反映電池OCV和SOC的關系,本文通過九階多項式來擬合OCV和SOC的關系曲線。由于遲滯效應,同一SOC值情況下,充電曲線和放電曲線之間存在電壓差值,因此采用取平均值的方法來進行曲線擬合,曲線如圖3 所示。
圖3 OCV-SOC擬合曲線
擬合曲線的評價參數RMSE為0.002 128,表明該曲線有較好的擬合效果。
針對等效電路模型的參數辨識,最常用的是遞推最小二乘法,但在遞推算法的過程中,隨著遞推次數和數據量的增加,在增加新數據的同時,舊數據一直影響著新數據的遞推結果。因此,針對上述存在的問題,提出了限定記憶最小二乘法來進行參數辨識。
這種方法在增加新數據的同時,剔除舊數據,依賴有限個最新數據來進行參數估計,記憶長度L始終保持不變,這樣能夠有效解決“數據飽和”帶來的問題[11]。
下面是限定記憶最小二乘法的遞推原理:
式中:h(k)為數據向量;z(k)為輸出量;θ 為參數向量。遞推公式如下:
在遞推初始時刻,需要對部分參數賦予初始值,通過遞推更新來對參數進行預測,其基本思想可用圖4 來表示。
圖4 限定記憶最小二乘法遞推示意圖
假設當前時刻為k,則根據上一時刻的參數值協方差、參數估計值以及增益可以遞推得到當前時刻的估算值,此時,需對記憶區(qū)間內的數據進行增刪更新,從而計算得到k+1 時刻的參數值。
結合模型辨識的精度以及辨識所用時間,參數辨識所選取的記憶長度為200。
根據所建立的等效電路模型可得到如下所示的函數:
將z(k+1)=hT(k)θ(k+1)+ν(k)以及h(k)和θ(k)代入限定記憶最小二乘法中進行參數辨識,進而可以求得電池模型對應參數的值。
為了驗證模型參數辨識的準確性,將辨識的模型參數帶入端電壓的求解公式中,可以得到端電壓的仿真值,將仿真值與實測值進行對比。通過上述實驗平臺模擬城市道路循環(huán)工況(UDDS),得到電壓和電流數據。將模型的參數辨識結果代入,模型的端電壓仿真值和實測值結果如圖5 所示。圖6為模型端電壓的誤差。
圖5 端電壓仿真值與實測值
圖6 模型端電壓誤差
從圖中可以看到,所建立模型參數辨識的整體精度較好,采用限定記憶最小二乘法LMRLS 辨識的模型端電壓仿真值和實測值的誤差大部分保持在0.02 V 以內,在15 300 s 左右,電池SOC降至10%,此時,模型的非線性增大導致端電壓誤差開始增大,最大為0.07 V;而最小二乘法RLS 辨識的模型端電壓仿真值和實測值誤差保持在0.04 V 以內,最大誤差達到0.08 V,前者的模型端電壓的均方根誤差RMSE為0.014 5,后者為0.0176,因此LMRLS 比RLS有更高的參數辨識精度。
無跡卡爾曼濾波(UKF)采用無損變換,其原理是利用概率密度分布近似的方法來處理非線性函數,其精度可達泰勒展開式的第三階。針對在誤差協方差迭代過程中易出現矩陣非正定問題,本文將協方差用協方差陣的平方根進行迭代,并結合自適應濾波器來進行SOC的估算。
平方根通過QR 分解和Cholesky 一階更新來獲得[12],自適應濾波器對迭代過程中的噪聲更新,避免噪聲不準確對估算結果的影響。
ASRUKF 的估算過程如下[13]:
(1)狀態(tài)函數初始化:
(2)構建Sigma 點:
(3)時間更新,對構建的Sigma 點進行狀態(tài)方程的處理,預測系統(tǒng)狀態(tài)量和誤差方差矩陣:
(4)對Sigma 點進行重采樣:
式中:dk=(1-b)/(1-bk+1),遺忘因子b介于0 到1 之間,這里取0.95。
對方差矩陣和誤差協方差進行更新:
(5)計算增益矩陣,并對估計量和方差進行更新:
根據限定記憶最小二乘法辨識的結果,代入公式(3)和(4),可完成SOC的估算。
為了驗證上述算法的準確性,將UDDS 工況的電流作為輸入,初始SOC值均設置為0.7。圖7 為UKF 和ASRUKF 估計結果與參考值的對比圖。圖8 為兩種算法的估算結果與參考值的誤差曲線。
圖7 UDDS工況下的SOC估算結果
圖8 UDDS 工況下的估算誤差曲線
從圖7 和圖8 可以看出,UKF 和ASRUKF 兩種算法都能夠比較快速地收斂到真實值附近,但是ASRUKF 相比UKF 有更好的估算結果。UKF 算法估算誤差大部分都在2%以下,最大誤差為4%,出現在SOC低于10%的時候,這是由于放電末段非線性增強導致;在SOC大于10%的時候,ASRUKF 的估算誤差均小于1%,在SOC小于10%的時候誤差增大,但是最大誤差也小于2%,不同算法的估計誤差如表1 所示。
表1 不同算法的估計誤差 %
與UKF 算法相比,ASRUKF 算法確保估算結果收斂,避免因干擾和計算誤差而導致協方差矩陣非正定,也減少了計算量,同時加入自適應算法使得狀態(tài)估計過程中能夠實時進行噪聲更新,提升了估算結果的準確性。
在Thevenin 等效電路模型的基礎上,針對最小二乘法在參數辨識過程中存在“數據飽和”的問題,模型參數采用限定記憶最小二乘法進行辨識,利用固定記憶長度的數據來減小舊數據累積對結果的影響,并通過工況端電壓來驗證模型辨識結果的準確性。采用自適應平方根無跡卡爾曼濾波來進行SOC估算,并與UKF 結果的對比分析,證明該方法有更高的估計精度。