廖根興,趙盈盈,高雁鳳,王斌銳
(1.中國計量大學工程訓練中心,浙江杭州 310018;2.中國計量大學機電工程學院,浙江杭州 310018)
采用鋰離子電池的巡檢機器人需依據電池荷電狀態(SOC)進行決策,如返回充電站自主充電、執行作業任務、休眠等待指令等,電池SOC估算是電子裝置、新能源汽車等應用的電池管理系統(BMS)中防止電池過充或過放等電池安全應用的關鍵問題之一[1]。
SOC估算的基礎是鋰電池的模型與參數辨識,等效電路模型用常用的電容、電阻等元器件來描述電池的工作特性[2];二階Thevenin 電路模型可以描述電池的極化效應及濃差效應,更好地反映鋰離子電池的動靜態特性[3];模型的在線參數辨識相對于離線參數辨識,考慮了電池的SOC、充放電倍率、工作電壓、環境溫濕度以及電池的循環次數等各種因素,可以更好地反映電池工作的實際情況。
在模型參數辨識的基礎上,采用擴展卡爾曼濾波算法(EKF)將非線性系統線性化;利用KF 算法對線性系統進行最優狀態估計,在初值誤差較大的情況下,可以自動更新,逐漸趨近真實值。EKF 算法可較精確地估算電池的SOC,估算結果更為精確,不僅能消除安時積分法的SOC初值不確定和開路電壓法無法實時在線估算電池SOC值的問題,也能避免人工神經網絡(ANN)算法所需的大量實驗數據[4-5]。
本文選用了鋰電池的二階Thevenin 等效電路模型,采用遺忘因子遞推最小二乘法(FFRLS)算法進行參數辨識,仿真驗證計算值與實測值誤差在-1.3%之內,效果良好;再利用EKF 算法估算鋰電池的SOC。在此基礎上,開發了一套基于STM32 微控制器的軟硬件系統,并進行了測試,SOC估算誤差在6%之內,可應用于自行研制的地鐵站臺巡檢機器人。
本文選擇二階Thevenin 等效電路作為鋰離子電池模型,如圖1 所示。

圖1 鋰電池二階Thevenin等效電路模型
二階Thevenin 模型電路結構由UOC(開路電壓)、R0(歐姆電阻)、R1、R2、C1和C2構成。R1和C1描述電池反應中的電化學極化反應;R2和C2描述電池反應中的濃差極化反應;UL為電池的端電壓;I為等效模型電路中的電流。根據基爾霍夫定律,由電路模型可得電壓和電流的關系式:

電池放電時,電壓有遲滯性,需靜置一段時間后才能達到穩定值,因此電池放電、長時間靜置后所測得的電壓開路電壓OCV與SOC曲線標定后才可作為標準曲線。本文采用松下NCR18650B 鋰離子動力電池,額定電壓4.2 V,額定容量3.4 Ah,實驗環境溫度為25 ℃,測試方法與步驟為:(1)首先將電池恒流-恒壓充電至充電上限電壓4.2 V,靜置1 h;(2)以0.5C放電0.2 h,即額定容量的10%,靜置1 h后測試電池電壓;(3)再以0.5C繼續放電0.2 h,即額定容量的10%,靜置1 h 后再次測試電壓;(4)循環放電,當電壓降至放電截止電壓2.5 V 時,終止循環,靜置1 h。
將SOC和測試得到的OCV電壓值在Matlab 中進行多項式擬合,當階數為6 次時,擬合效果最好,圖2 為電池OCVSOC標定曲線。

圖2 OCV-SOC標定曲線
OCV和SOC的數據經6次擬合后,其數學關系表達式為:

1.3.1 等效電路的數學模型
選擇FFRLS 算法對二階Thevenin 等效電路模型進行在線參數辨識。先建立對應圖1 的等效電路模型的數學模型[6],將電池視為一個單輸入單輸出動態系統,根據電池等效電路模型的電氣關系,電流I作為系統的輸入,電壓U作為系統的輸出,得到含有模型參數的差分方程系數,最終求得電池模型參數。
電流I為輸入激勵,令y=OCV-U為輸出響應,對式(1)~(3)進行拉普拉斯變換及簡化變換,利用s=[x(k)-x(k-1)]/T,s2=[x(k)-2x(k-1)+x(k-2)]/T2進行離散化,得到差分方程:



1.3.2 FFRLS 辨識算法
二階Thevenin 等效電路模型的最小二乘形式為:

式中:φ(k)=[UL(k-1)-UOC(k-1),UL(k-2)-UOC(k-2),I(k),I(k-1),I(k-2)]T;θ=[k1,k2,k3,k4,k5]T。
參數辨識需確定系統采樣時間和已知電池運行時的開路電壓值、端電壓以及電流值。在Matlab 編程環境下,參數辨識的具體流程為:(1)確定θ'(0)、P(0)的初始值大小和遺忘因子λ 的值;(2)利用安時積分法估算電池SOC(0);(3)利用OCVSOC的曲線關系,求出開路電壓UOC(0);(4)載入測試數據UL(k-1)-UOC(k-1),UL(k-2)-UOC(k-2),I(k),I(k-1),I(k-2),得到φ(k);(5)通過加入FFRLS 算法得到θ=[k1,k2,k3,k4,k5]T;(6)最后通過式(5)計算電路模型中各個參數值。
EKF 算法根據檢測獲得電池的電壓和電流值及FFRLS算法辨識所得等效電路參數,通過遞推運算得到電池SOC最小方差估算[7-8]。EKF 算法的實質是將非線性系統線性化處理,利用泰勒公式展開后僅留下一階項,二階以及二階以上的高階項均省略,得到近似線性的系統,再利用KF 算法進行濾波迭代,最后得到最優估計值。EKF 算法非線性系統的狀態方程和觀測方程為:

式中:x(k)為k時刻系統的狀態變量;u(k)為k時刻系統的輸入變量;w(k)為k時刻系統的過程噪聲;f[x(k),u(k)]為系統狀態有關的非線性函數;y(k)為k時刻系統的輸出變量;g[x(k),u(k)]為系統狀態變量及輸出變量有關的的非線性函數;v(k)為k時刻系統的觀測噪聲。
2.1.1 EKF 算法線性化處理
式(9)可寫成式(10)類似線性系統狀態方程和輸出方程的形式:

2.1.2 KF 算法迭代
初始化過程,在k時刻,有:

預測過程,系統狀態預測方程和系統狀態協方差預測方程為:

校正過程,系統反饋增益方程、系統濾波方程和系統誤差協方差矩陣更新方程分別為:

鋰離子動力電池采用等間隔恒流放電實驗,Matlab 的仿真結果如圖3~4 所示。圖3 為實測曲線和EKF 仿真曲線對比圖。圖4 為實測曲線和EKF 仿真曲線誤差圖。相較于電池的真實值,EKF 算法估算SOC具有較高的精度,估算誤差最大為-1.3%。

圖3 實測曲線和EKF仿真曲線對比圖

圖4 實測曲線和EKF仿真曲線誤差圖
機器人電源設計主要包括主控板設計、采集電路設計、I2C 通信和信息顯示電路設計、鋰離子電池組設計,圖5 為機器人電源設計的主控電路板。該SOC估算系統可實現鋰離子電池組單體電池電壓、總電流采集,電池組六節電池的SOC估算,數據采集后上傳等功能。

圖5 機器人電源設計主控電路板
主控板微控制器選擇ST 意法半導體公司的STM32F103C8T6,這款微控制器是基于ARM Cortex-M 內核STM32 系列的32 位微控制器。電池組電壓、電流測量與采集選取TI 公司的bq76930,這是TI 公司的專用電池監控芯片,數據采集準確,穩定性高,可操作性強,寄存器設置與數據傳輸皆采用I2C 協議。微控制器與bq76930 通信采用I2C 協議,上位機的數據傳輸采用串口通信方式傳輸。
系統軟件設計采用Keil MDK 開發工具,完成電池電壓、電流、溫度各個參數值的測量以及電池組SOC數據的估算,圖6 為系統的軟件主程序流程圖。

圖6 系統主程序流程圖
STM32 微控制器通過I2C 協議設置好bq76930 芯片的寄存器,每次循環時讀取數據寄存器的值,轉換成電壓、電流值并顯示。
本文SOC估算采用了EKF 算法,程序初始化時通過OCV-SOC的關系得到SOC的初始值,隨著電池組的工作,通過計算可得當前時刻的SOC值,并由前一時刻的預測誤差來估算當前時刻的預測誤差,進而得到當前時刻的SOC最優估計值,算法子程序流程圖如圖7 所示。

圖7 電池組SOC估算程序流程圖
基于STM32微控制器的巡檢機器人鋰電池SOC估算系統采集電壓、電流和溫度數據,用EKF 算法計算并顯示出SOC值,從系統讀取的SOC值做為實驗值;記錄SOC值后關斷電路,靜置1 h,測量電池兩端電壓,根據OCV-SOC標定曲線得到SOC值作為標準值。將SOC實驗值與從OCV-SOC標定曲線得到的標準值進行比較,如圖8所示,兩者誤差不超過6%。

圖8 SOC估算精度測試
鋰電池SOC估算系統能確保電池組安全可靠工作,延長電池組的使用壽命,同時可以提供數據給機器人控制系統作出最佳任務決策。本文建立了二階Thevenin 等效電路模型并采用FFRLS 算法進行在線參數辨識。用EKF 算法對SOC進行估算,并在Matlab 軟件中進行仿真,仿真結果表明EKF算法對電池組SOC估算誤差最大為-1.3%。采用STM32 微控制器和bq76930 芯片完成SOC估算系統的軟硬件設計并進行測試,經測試,誤差不大于6%,可用于巡檢機器人控制系統,下一步將研究如何改進以提高精度。