廖根興,趙盈盈,高雁鳳,王斌銳
(1.中國計量大學工程訓練中心,浙江杭州 310018;2.中國計量大學機電工程學院,浙江杭州 310018)
采用鋰離子電池的巡檢機器人需依據(jù)電池荷電狀態(tài)(SOC)進行決策,如返回充電站自主充電、執(zhí)行作業(yè)任務、休眠等待指令等,電池SOC估算是電子裝置、新能源汽車等應用的電池管理系統(tǒng)(BMS)中防止電池過充或過放等電池安全應用的關鍵問題之一[1]。
SOC估算的基礎是鋰電池的模型與參數(shù)辨識,等效電路模型用常用的電容、電阻等元器件來描述電池的工作特性[2];二階Thevenin 電路模型可以描述電池的極化效應及濃差效應,更好地反映鋰離子電池的動靜態(tài)特性[3];模型的在線參數(shù)辨識相對于離線參數(shù)辨識,考慮了電池的SOC、充放電倍率、工作電壓、環(huán)境溫濕度以及電池的循環(huán)次數(shù)等各種因素,可以更好地反映電池工作的實際情況。
在模型參數(shù)辨識的基礎上,采用擴展卡爾曼濾波算法(EKF)將非線性系統(tǒng)線性化;利用KF 算法對線性系統(tǒng)進行最優(yōu)狀態(tài)估計,在初值誤差較大的情況下,可以自動更新,逐漸趨近真實值。EKF 算法可較精確地估算電池的SOC,估算結(jié)果更為精確,不僅能消除安時積分法的SOC初值不確定和開路電壓法無法實時在線估算電池SOC值的問題,也能避免人工神經(jīng)網(wǎng)絡(ANN)算法所需的大量實驗數(shù)據(jù)[4-5]。
本文選用了鋰電池的二階Thevenin 等效電路模型,采用遺忘因子遞推最小二乘法(FFRLS)算法進行參數(shù)辨識,仿真驗證計算值與實測值誤差在-1.3%之內(nèi),效果良好;再利用EKF 算法估算鋰電池的SOC。在此基礎上,開發(fā)了一套基于STM32 微控制器的軟硬件系統(tǒng),并進行了測試,SOC估算誤差在6%之內(nèi),可應用于自行研制的地鐵站臺巡檢機器人。
本文選擇二階Thevenin 等效電路作為鋰離子電池模型,如圖1 所示。
圖1 鋰電池二階Thevenin等效電路模型
二階Thevenin 模型電路結(jié)構(gòu)由UOC(開路電壓)、R0(歐姆電阻)、R1、R2、C1和C2構(gòu)成。R1和C1描述電池反應中的電化學極化反應;R2和C2描述電池反應中的濃差極化反應;UL為電池的端電壓;I為等效模型電路中的電流。根據(jù)基爾霍夫定律,由電路模型可得電壓和電流的關系式:
電池放電時,電壓有遲滯性,需靜置一段時間后才能達到穩(wěn)定值,因此電池放電、長時間靜置后所測得的電壓開路電壓OCV與SOC曲線標定后才可作為標準曲線。本文采用松下NCR18650B 鋰離子動力電池,額定電壓4.2 V,額定容量3.4 Ah,實驗環(huán)境溫度為25 ℃,測試方法與步驟為:(1)首先將電池恒流-恒壓充電至充電上限電壓4.2 V,靜置1 h;(2)以0.5C放電0.2 h,即額定容量的10%,靜置1 h后測試電池電壓;(3)再以0.5C繼續(xù)放電0.2 h,即額定容量的10%,靜置1 h 后再次測試電壓;(4)循環(huán)放電,當電壓降至放電截止電壓2.5 V 時,終止循環(huán),靜置1 h。
將SOC和測試得到的OCV電壓值在Matlab 中進行多項式擬合,當階數(shù)為6 次時,擬合效果最好,圖2 為電池OCVSOC標定曲線。
圖2 OCV-SOC標定曲線
OCV和SOC的數(shù)據(jù)經(jīng)6次擬合后,其數(shù)學關系表達式為:
1.3.1 等效電路的數(shù)學模型
選擇FFRLS 算法對二階Thevenin 等效電路模型進行在線參數(shù)辨識。先建立對應圖1 的等效電路模型的數(shù)學模型[6],將電池視為一個單輸入單輸出動態(tài)系統(tǒng),根據(jù)電池等效電路模型的電氣關系,電流I作為系統(tǒng)的輸入,電壓U作為系統(tǒng)的輸出,得到含有模型參數(shù)的差分方程系數(shù),最終求得電池模型參數(shù)。
電流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。
參數(shù)辨識需確定系統(tǒng)采樣時間和已知電池運行時的開路電壓值、端電壓以及電流值。在Matlab 編程環(huán)境下,參數(shù)辨識的具體流程為:(1)確定θ'(0)、P(0)的初始值大小和遺忘因子λ 的值;(2)利用安時積分法估算電池SOC(0);(3)利用OCVSOC的曲線關系,求出開路電壓UOC(0);(4)載入測試數(shù)據(jù)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)計算電路模型中各個參數(shù)值。
EKF 算法根據(jù)檢測獲得電池的電壓和電流值及FFRLS算法辨識所得等效電路參數(shù),通過遞推運算得到電池SOC最小方差估算[7-8]。EKF 算法的實質(zhì)是將非線性系統(tǒng)線性化處理,利用泰勒公式展開后僅留下一階項,二階以及二階以上的高階項均省略,得到近似線性的系統(tǒng),再利用KF 算法進行濾波迭代,最后得到最優(yōu)估計值。EKF 算法非線性系統(tǒng)的狀態(tài)方程和觀測方程為:
式中:x(k)為k時刻系統(tǒng)的狀態(tài)變量;u(k)為k時刻系統(tǒng)的輸入變量;w(k)為k時刻系統(tǒng)的過程噪聲;f[x(k),u(k)]為系統(tǒng)狀態(tài)有關的非線性函數(shù);y(k)為k時刻系統(tǒng)的輸出變量;g[x(k),u(k)]為系統(tǒng)狀態(tài)變量及輸出變量有關的的非線性函數(shù);v(k)為k時刻系統(tǒng)的觀測噪聲。
2.1.1 EKF 算法線性化處理
式(9)可寫成式(10)類似線性系統(tǒng)狀態(tài)方程和輸出方程的形式:
2.1.2 KF 算法迭代
初始化過程,在k時刻,有:
預測過程,系統(tǒng)狀態(tài)預測方程和系統(tǒng)狀態(tài)協(xié)方差預測方程為:
校正過程,系統(tǒng)反饋增益方程、系統(tǒng)濾波方程和系統(tǒng)誤差協(xié)方差矩陣更新方程分別為:
鋰離子動力電池采用等間隔恒流放電實驗,Matlab 的仿真結(jié)果如圖3~4 所示。圖3 為實測曲線和EKF 仿真曲線對比圖。圖4 為實測曲線和EKF 仿真曲線誤差圖。相較于電池的真實值,EKF 算法估算SOC具有較高的精度,估算誤差最大為-1.3%。
圖3 實測曲線和EKF仿真曲線對比圖
圖4 實測曲線和EKF仿真曲線誤差圖
機器人電源設計主要包括主控板設計、采集電路設計、I2C 通信和信息顯示電路設計、鋰離子電池組設計,圖5 為機器人電源設計的主控電路板。該SOC估算系統(tǒng)可實現(xiàn)鋰離子電池組單體電池電壓、總電流采集,電池組六節(jié)電池的SOC估算,數(shù)據(jù)采集后上傳等功能。
圖5 機器人電源設計主控電路板
主控板微控制器選擇ST 意法半導體公司的STM32F103C8T6,這款微控制器是基于ARM Cortex-M 內(nèi)核STM32 系列的32 位微控制器。電池組電壓、電流測量與采集選取TI 公司的bq76930,這是TI 公司的專用電池監(jiān)控芯片,數(shù)據(jù)采集準確,穩(wěn)定性高,可操作性強,寄存器設置與數(shù)據(jù)傳輸皆采用I2C 協(xié)議。微控制器與bq76930 通信采用I2C 協(xié)議,上位機的數(shù)據(jù)傳輸采用串口通信方式傳輸。
系統(tǒng)軟件設計采用Keil MDK 開發(fā)工具,完成電池電壓、電流、溫度各個參數(shù)值的測量以及電池組SOC數(shù)據(jù)的估算,圖6 為系統(tǒng)的軟件主程序流程圖。
圖6 系統(tǒng)主程序流程圖
STM32 微控制器通過I2C 協(xié)議設置好bq76930 芯片的寄存器,每次循環(huán)時讀取數(shù)據(jù)寄存器的值,轉(zhuǎn)換成電壓、電流值并顯示。
本文SOC估算采用了EKF 算法,程序初始化時通過OCV-SOC的關系得到SOC的初始值,隨著電池組的工作,通過計算可得當前時刻的SOC值,并由前一時刻的預測誤差來估算當前時刻的預測誤差,進而得到當前時刻的SOC最優(yōu)估計值,算法子程序流程圖如圖7 所示。
圖7 電池組SOC估算程序流程圖
基于STM32微控制器的巡檢機器人鋰電池SOC估算系統(tǒng)采集電壓、電流和溫度數(shù)據(jù),用EKF 算法計算并顯示出SOC值,從系統(tǒng)讀取的SOC值做為實驗值;記錄SOC值后關斷電路,靜置1 h,測量電池兩端電壓,根據(jù)OCV-SOC標定曲線得到SOC值作為標準值。將SOC實驗值與從OCV-SOC標定曲線得到的標準值進行比較,如圖8所示,兩者誤差不超過6%。
圖8 SOC估算精度測試
鋰電池SOC估算系統(tǒng)能確保電池組安全可靠工作,延長電池組的使用壽命,同時可以提供數(shù)據(jù)給機器人控制系統(tǒng)作出最佳任務決策。本文建立了二階Thevenin 等效電路模型并采用FFRLS 算法進行在線參數(shù)辨識。用EKF 算法對SOC進行估算,并在Matlab 軟件中進行仿真,仿真結(jié)果表明EKF算法對電池組SOC估算誤差最大為-1.3%。采用STM32 微控制器和bq76930 芯片完成SOC估算系統(tǒng)的軟硬件設計并進行測試,經(jīng)測試,誤差不大于6%,可用于巡檢機器人控制系統(tǒng),下一步將研究如何改進以提高精度。