在開發車輛電池系統時,關鍵在于精確監測電池的狀態,如電壓、電流、剩余容量和溫度,并優化充放電策略以延長行駛距離,實施故障安全控制以防過充或過放電,以及進行溫度管理以保證電池壽命。
利用 Simscape Battery 工具箱,開發者可以創建電池模型,設計電池組,并開發管理系統算法。通過系統級仿真驗證電池管理系統 BMS 設計的各項功能,深入了解電池組的動態行為,并探索 BMS 算法的有效性,包括監控電芯電壓和溫度、估計荷電狀態(SOC)和健康狀態(SOH)、控制充電曲線、平衡電芯 SOC 等。
但是電池開發工程師在開發過程中,常常遇到一些常見的問題。我們簡單總結一下這些共性問題,如下:
答疑專家
楚駿楠
主要負責物理建模,系統仿真,以及虛擬車輛建模與優化的解決方案。曾在博格華納和天合擔任仿真工程師。獲得上海交通大學機械工程碩士學位。
張香春博士? ? ?
MathWorks 總部首席應用工程師
專注于電池建模和電池管理系統設計。在 2022 年加入 MathWorks 之前,他在戴森公司擔任高級研究經理,負責固態電池的研發工作。他在鋰離子電池領域有著 18 年的工作經驗,并且他的電池建模方面的研究成果已被引用 3900 次。此外,他還在美國獲得了 12 項關于電池的專利(包括電池管理系統算法)。他在清華大學獲得了工學學士和碩士學位,并在美國密歇根大學安娜堡分校獲得了機械工程博士學位。在密歇根大學期間,他的研究方向是鋰離子電池的多尺度多物理場建模,包括力學、熱產生和電化學動力學的結合。
◆??◆??◆??◆
問題 1.?
我在使用擴展卡爾曼濾波 EKF 做 SOC 估計算法,但是算法結果并不是很準確,是有哪些原因引起的呢?
卡爾曼濾波(Kalman Filter,KF)是一種有效的遞歸濾波器,用于線性動態系統中的狀態估計。它能夠基于一系列含有噪聲的測量數據,通過預測-更新的過程,估計出系統狀態的最優估計值。卡爾曼濾波的基本思想是結合對系統模型的了解(預測)和新的測量數據(更新),以最小化估計的協方差(即估計的不確定性),從而得到一個關于系統狀態的最優估計。隨著時間累積,方差變小,狀態估計值精度提高。
如果用 Simulink 中的方框圖表達其原理。如下:
這樣的算法我們如何應用在電池荷電狀態(State of Charge, SOC)的估計上呢?
在電池管理系統(Battery Management System, BMS)中,荷電狀態(State of Charge, SOC)是描述電池剩余電量的關鍵參數。然而,SOC 不能直接測量,必須通過電池的電壓、電流和溫度等可測量的參數來估計。
我們使用卡爾曼濾波就是為了估計出電池的 SOC。
而這里我們需要一個被控對象模型,即電池模型。一般電池模型我們使用的是等效電路模型。
這里我們用狀態空間方程表達被控對象即電池的等效電路的模型表達。輸入輸出和狀態均如圖表示。
那么,用卡爾曼濾波方法估算電池 SOC 的算法框圖就可以表達為以下圖示:
由于等效電路的電池模型是非線性的,因此卡爾曼濾波算法被升級為擴展卡爾曼濾波算法的方法。
和安時積分法相比較而言,可以做個簡單理解。
使用開路電壓+安時積分法估算電池 SOC, 只有電流傳感器的信息,而使用卡爾曼濾波算法,則是同時使用了電流和電壓的信息。因此可以彌補前者的不準確性質。但是,卡爾曼濾波算法的準確性驗證仍有需要依靠綜合基于高精度傳感器的開路電壓與安時積分的方法來進行驗證。
關于 EKF 的電池 SOC 估計,Simscape Battery 提供了以下模塊 。?
SOC Estimator (Adaptive Kalman Filter)【1】
SOC Estimator (Adaptive Kalman Filter, Variable Capacity)【2】
SOC Estimator (Kalman Filter)【3】
SOC Estimator (Kalman Filter, Variable Capacity)【4】
基于上述分析,我們可以理解,如果使用 EKF 估算 SOC 不準確,可能存在的原因有以下幾點:?
模型不準確:EKF 的性能高度依賴于用于描述電池行為的數學模型的準確性。如果模型不能準確反映電池的實際動態行為,包括其非線性特性,那么估計結果將不可避免地出現偏差。
過程噪聲和觀測噪聲的估計不準確:EKF 需要對過程噪聲和觀測噪聲進行估計。如果這些噪聲的統計特性(如均值和方差)估計不準確,將直接影響到濾波器的性能。
參數漂移:電池的參數(如內阻)可能會因為老化、溫度變化等因素隨時間變化。如果 EKF 模型未能適應這些參數的變化,將影響 SOC 估計的準確性。
非線性問題的線性化誤差:EKF 通過對非線性模型進行線性化來處理非線性問題。這個線性化過程可能引入誤差,尤其是在電池行為高度非線性的情況下。
在處理非線性系統估計問題時, 擴展卡爾曼濾波器(EKF)在設計時通常假設過程噪聲和測量噪聲是不相關的。這種假設簡化了濾波器的設計,但在實際應用中可能不總是成立。
對于最后這兩點,我們可以用用無跡卡爾曼濾波 UKF 的算法來解決。無跡卡爾曼濾波器(UKF)在處理過程噪聲和測量噪聲時采用了不同于 EKF 的方法。UKF 通過選擇一組代表性的點(稱為 sigma 點)來近似系統狀態的概率分布,并將這些點通過系統的非線性函數傳遞,以此來直接處理非線性問題。這種方法的關鍵優勢之一在于它不需要顯式計算雅可比矩陣或海森矩陣(Hessian matrix),從而避免了線性化誤差。
但是 UKF 和 EKF 都很難解決電池模型不準確的問題。
問題 2.?
既然 EKF 和 UKF 的性能高度依賴于用于描述電池行為的數學模型的準確性,那么如何搭建更準確的等效電路模型呢?如何獲取等效電路的參數呢?
脈沖放電實驗是用來獲取電池等效電路模型(ECM)參數的實驗。?
具體實驗是對電池施加短時的高電流放電脈沖,通常持續數秒鐘,然后讓電池恢復一段時間(通常是放電時間的兩倍或更長),再施加短時的高電流充電脈沖。通過這種方式,可以模擬電池在實際使用中遇到的快速負載變化。
在不同的 SOC 水平上重復上述實驗步驟,以獲得電池在其工作范圍內的全面性能數據。通過分析脈沖期間和恢復期間的電壓響應,可以估計電池的內阻、電容性能以及其他電化學參數
有了脈沖放電實驗數據后,就可以對等效電路參數進行參數估計來得到電池模型。
對于脈沖放電實驗的參數估計,MATLAB 提供的 Parameter Estimation 工具是一個常用的工具。
(點擊播放視頻)
Simscape Battery 提供了一個案例,展示了如何通過 MATLAB 腳本的方法使用 HPPC 實驗數據進行 ECM 的參數估計。
Characterize Battery Cell for Electric Vehicles【5】
同時,Model Base Calibration 工具箱也提供了電池參數估計的方法,有興趣的同學可以嘗試以下鏈接。
Calibrate Powertrain Blockset and Simscape Battery Blocks?【6】
當等效電路模型(ECM)參數建模與實際電池不一致時,原因可能較為復雜,涉及多個方面:
模型選擇與適用性:ECM 在處理中等電流水平下的電池行為時效果良好,但在高電流或需要深入了解電化學反應的場景下可能不夠精確。此時,更復雜的模型,如單粒子模型(SPM)或電化學模型,能更好地描述電池內部的復雜過程。
溫度控制的精確性:電池性能與溫度密切相關。如果 HPPC 實驗中的溫度控制不夠精確,或電芯實際溫度與預期存在偏差,將直接影響模型參數的準確估計。因此,采用加熱電偶、溫度控制箱等技術保持電池溫度的穩定與均勻至關重要。
實驗數據質量:高質量的實驗數據是確保模型準確性的基礎。數據采集過程中的噪聲、測量誤差或數據處理方法的不當都會影響最終模型參數的準確性。
在進行電池參數估計的實驗過程中,確實需要特別注意一些關鍵問題,以確保數據的準確性和實驗的有效性。下面是一些建議:
充放電脈沖不宜過長 :
過長的充放電脈沖可能導致電池過熱,影響電池的健康狀態和實驗數據的準確性。短脈沖可以減少由于電池內部反應導致的熱積累,更接近電池的實際工作狀態。
電池實驗過程中保證電池溫度與實驗箱一致:
電池實驗過程中電池溫度的準確性是非常重要的。可以考慮在電池板上增加散熱片,使電池獲得良好的散熱,從而使電池溫度與實驗箱溫度一致。進而保證溫度的可靠性。
大規模電池 Pack 實驗的數據真實性:
在大規模電池 Pack(包含數百個電芯和多個熱電偶)的實驗中,確保每個電芯的數據真實準確是非常挑戰的。由于電芯之間存在微小的差異,以及熱電偶數量有限,可能無法精確反映每個電芯的真實狀態。因此盡可能增加測量點,使用更多的熱電偶和電壓、電流傳感器。同時,可以采用分組策略,對 Pack 內的電芯進行分組測量,以提高數據的代表性和準確。
理論上,充電倍率本身不應直接影響等效電路模型(ECM)的參數估計,因為 ECM 的參數(如電阻、電容)旨在描述電池內部的電氣特性,這些特性應當是固有的,與充電或放電的速率無關。然而,在實際應用中,充電倍率可能間接影響參數估計的準確性,主要通過以下途徑:
非線性效應:電池在不同倍率下的非線性行為可能不易通過簡單的 ECM 參數來描述。
這是最關鍵的一個因素。可以嘗試把 ECM 參數(例如電阻和電容)變成與電流相關的查表等參數,或者是使用單粒子電化學模型。
溫度變化:高倍率充電可能引起電池溫度升高,而 ECM 參數(如內阻)通常與溫度有關。
動態行為:高倍率下電池內部的快速反應可能影響其電氣特性,從而影響參數估計。
實際操作中需要考慮這些間接影響,并采取措施(如溫度控制)來提高模型準確性。
◆??◆??◆??◆
問題 3.?
對于鋰離子磷酸鐵(LiFePO4)的電池有回滯特性。如何來進行電池建模?
鋰離子磷酸鐵(LiFePO4,簡稱 LFP)電池因其獨特的化學結構,展現出明顯的回滯(Hysteresis)性,即電池的 OCV-SOC 曲線在充電和放電過程中不重合。
OCV 隨著電池的先前狀態(充電或放電)而變化,這一現象主要由電極活性材料中不同固相的存在、反應路徑滯后以及相關的熱動力學效應所引起。在充放電過程中,電極活性材料的鋰化和脫鋰化會導致不同的固相產生,這些固相在電極表面的存在和共存會引起機械應力,進而影響電流流動。
為準確描述LFP電池的回滯特性, Simscape Battery 在 2024a 的版本中引入了新的特性。電池等效電路塊采用了 Gregory Plett 提出的單狀態滯后模型,它通過引入一個回滯電壓項來模擬電池的回滯行為。
電池會根據下面的公式來計算 OCV。
在不考慮電池熱模型的情況下,最大滯后電壓僅依賴于電池的電荷狀態(SOC)。這種情況下,最大滯后電壓(maximumHysteresisVoltage(SOC)可以通過充電和放電開路電壓(OCV)曲線之間的差異來確定。具體而言,最大滯后電壓等于充放電 OCV 曲線之間差異的一半:
滯后狀態 (hysteresisState) 可以通過一階特征方程來表示,這種方程通常用于描述系統狀態隨時間變化的動態特性。在電池模型中,考慮滯后效應時,滯后狀態的變化可以用以下一階微分方程來描述:
hysteresisState 代表在時間 (t) 的滯后狀態。
hysteresisState 是滯后狀態隨時間的變化率。
rateHysteresis?是一個常數,
Icell?是電池電流,其絕對值的使用確保了變化率始終為正,反映了充電和放電都能影響滯后狀態。
Ccell?是是電池容量,以安時(Ah)表示,代表電池的總充電容量。
你可以通過下面的鏈接查看在 Simscape Battery 2024a 版本中電池回滯特性的案例。
Model Voltage Hysteresis in Battery【7】
在這個例子中,你可以打開電池的回滯特性設置。查看器回滯特性的結果繪圖如下:
◆??◆??◆??◆
問題 4.?
鋰離子磷酸鐵電池 LFP 的開路電壓(OCV)具有明顯的平臺期特性,這意味著在一定的電荷狀態(SOC)范圍內,電池的 OCV 變化很小。這個特性給精確建模帶來挑戰,尤其是在需要準確估計 SOC 的應用中。那么如何應對呢?
高分辨率的 OCV-SOC 曲線:通過精確測量,獲得高分辨率的 OCV 與 SOC 之間的關系。這需要在控制環境中對電池進行緩慢充放電,以減小由于電流引起的內阻損失,更準確地測量 OCV。
考慮采用帶有遲滯特性的電池模型:把遲滯電壓狀態作為 EKF ? SOC 估計的狀態量之一。這也可以幫助 SOC 估計的精確性。
電化學模型:相比于簡單的等效電路模型(ECM),采用基于電化學原理的模型可以更準確地描述LFP電池的行為,包括 OCV 的平臺期特性。電化學模型能夠考慮到電池內部的物理和化學過程,但這種模型通常更復雜,計算成本更高。
數據驅動模型:利用機器學習等數據驅動方法來建模 OCV 與 SOC 的關系。通過收集大量的電池充放電數據,可以訓練出能夠準確預測 OCV 平臺期的模型。這種方法可以適應不同工作條件下的電池行為,但需要大量的訓練數據。
◆??◆??◆??◆
問題 5.
電池的參數( 容量)可能會因為老化、衰退變化等因素隨時間變化。如果 EKF/UKF 模型未能適應這些參數的變化,將影響 SOC 估計的準確性。那么如何來處理進行電池老化特性的估計呢?
電池的健康狀態(State of Health, SOH)是衡量電池性能衰減和壽命的重要指標。SOH 估計算法主要是為了評估電池的當前狀態與其初始狀態相比的變化程度。具體來說,SOH 估計算法主要估計以下幾個參數:
容量衰減:電池能夠儲存和釋放的電量隨時間減少。
內阻增加:電池內部對電流流動的阻礙增大。
功率衰減:電池單位時間內提供的最大能量降低。
在實際 BMS 的開發中,電池的健康狀態(SOH)估計和狀態量(如狀態的電荷,SOC)估計常常在電池管理系統(BMS)中一起考慮和實現。電池的 SOH 影響其容量和內阻,這直接影響 SOC 的準確估計。反過來,SOC 的變化和充放電行為也會影響電池的老化速度和 SOH。因此,將 SOH 和 SOC 估計結合起來可以提高整體的估計準確性和系統性能。
SOH 估計通常基于以下方法之一或其組合:
容量衰減法:通過比較電池當前容量和初始容量的比值來估計 SOH。
內阻增加法:通過測量電池內阻的變化來估計 SOH。
(SOH 也可以通過使用機器學習算法,根據歷史和實時數據來預測電池的SOH)
我們在上文中指出,可以通過 EKF/UKF 估算電池 SOC 狀態,電池的內阻狀態。那么 SOH 就可以與 SOH 一起估計。
以下是一個案例。
根據容量衰減估計電池運行狀況【8】
此示例說明如何使用卡爾曼濾波器估算電池容量和健康狀態 (SOH)。電池的初始充電狀態 (SOC) 等于 0.5。估算器使用 SOC 的初始條件等于 0.8。電池可持續充電和放電 50 小時。該示例使用擴展卡爾曼濾波器估算電池容量(以安培小時為單位)和 SOC。電池容量的估計誤差小于 4%。使用擴展卡爾曼濾波器估算 SOC。使用固定容量時,估計的 SOC 值與真實值不同。為了演示估算器的功能并限制仿真的持續時間,本示例對增加的容量衰減率進行了建模。
這里的 SOC 估計(考慮容量衰退)模塊就是考慮了 SOH 的信息。可以看到,其中輸入信號估算的容量 cap_est 是來自于容量衰退模塊的計算結果。那么容量衰退模塊的算法是有多種多樣的。可以是離線的模型,也可以是在線的方法,如卡爾曼濾波的方法。上面這個例子是使用了在線的卡爾曼濾波的算法。
以下是卡爾曼濾波算法對容量估計的計算公式:
注意,這里的 SOC 不能夠由安時積分法來計算出的。
除了使用卡爾曼濾波估算容量,還有一些容量估計算法如 Recursive Least Squares 的算法
在 2024a 的版本中 Simscape Battery 提供了 Recursive Least Squares 的算法。
Battery capacity estimator using least-squares algorithms - Simulink - MathWorks 中國【9】
2023b?之后 Simscape battery 提供了一系列的電池狀態估計的算法,可以幫助用戶快速搭建 BMS 系統。
◆??◆??◆??◆
問題 6.?
對于等效電路模型(ECM)的參數如何進行驗證?
選擇一個或多個代表性的驅動循環(drive cycle),這些循環應該能夠覆蓋電池在預期使用場景下的典型操作條件。對實際電池系統進行測試,收集電池的真實電壓、電流等數據。將仿真得到的電池電壓與實際測量的電池電壓進行對比。計算兩者之間的誤差,分析誤差分布和特點。誤差可以用多種方式表達,例如絕對誤差、相對誤差、均方根誤差(RMSE)等。如果誤差在 5mV 以內,可以認為是可以接受的。這個標準可能會根據具體應用要求有所不同。如果是用來做 SOC 估計,那么需要理解電壓差對 SOC 估計精度的影響。當然,為了增強驗證的廣泛性和可靠性,可以考慮使用不同的驅動循環進行多次測試和驗證,還需要考慮溫度帶來的影響。
◆??◆??◆??◆
問題 7.?
EKF SOC 估計算法發現,換了一些測試場景后不準確了。
除了上文提出的一些原因之外,很重要一點是,EKF 算法的驗證必須在被控對象模型的輸出信號上加噪聲。另外, EKF 協方差調試也是很重要的一個環節。
◆??◆??◆??◆
總結
還有一些行業常見的熱點問題,如:?
回滯特性參數的獲得,如何來設計實驗?
在電池老化特性中,需要不僅考慮電池容量的衰減,還要考慮等效電路中,R0, R1 等參數的變化,這也會影響 SOC 的估計,進而對 SOH 算法的計算量帶來負擔,如何解決 ??
HPPC 實驗過于耗時,尤其是等待電池 OCV 穩定的時間,是否有辦法用基于路況的電池實驗數據進行電池參數的估計呢?
單粒子模型(Single Particle Model)如何搭建及驗證?
......?
審核編輯:黃飛
?
評論
查看更多