
當模擬一個電池系統時,指定載荷曲線對于準確反映電池在實際應用中的運行情況至關重要。 COMSOL Multiphysics® 軟件和電池模塊中提供了多種方法,用于在電池模型中定義各種載荷曲線。這篇博客,我們將對這些方法進行討論,并詳細介紹如何實現。為了演示如何使用這些方法,我們來看幾個COMSOL Multiphysics® 案例庫中的模型示例。
簡介
在 COMSOL® 軟件中,通常通過定義和指定外加載荷來完成電池模型的構建,外加載荷可能是電流、功率、電壓或這些變量的組合。根據在模型中使用的電池接口,你可以選擇合適的邊界條件或運行模式,并設置相關值來滿足要模擬電池的運行要求。
例如,鋰離子電池,二元電解質電池 和 鉛酸電池 接口提供了各種電極條件選擇,用于模擬一般電流分布。另外,在像 單顆粒電池 和 集總電池 這樣的簡化電池接口中,可以選擇一種運行模式。對于電池組尺度,可以在 電池組 接口,通過設置電池組內的 電流導體 域的邊界條件來指定載荷。
COMSOL Multiphysics® 和電池模塊提供了多種方法,可用于表征分布持續時間、變化和循環模式,并將它們集成到你創建的表達式中,然后將這些信息作為外加載荷傳遞到物理場接口。在接下來的章節中,我們將討論這些方法。
充放電循環期間風冷圓柱形鋰離子電池的溫度分布。
函數
在 COMSOL Multiphysics® 中,我們可以選擇不同的函數來定義各種載荷曲線。利用這些函數,可以精確表征包括隨時間變化的模式和變量在內的載荷曲線特征。還可以將這些函數集成到表示載荷的表達式中,例如電池模型中使用的外加電流。在鋰離子電池等溫模型:一維教學案例中,用于產生恒定電流充放電循環的外加電流以及靜置期,都是使用 分段 函數定義的。該函數尤其適用于定義在已知時間間隔內變化的載荷。
同樣,在鋅-氧化銀電池等溫模型:一維教學案例中,采用了 分段 函數來定義放電電流密度脈沖分布。在圓柱形鋰離子電池熱建模:二維和圓柱形鋰離子電池熱建模:三維教學案例中,采用了 波形 函數來建立交替的充放電電流以及弛豫過程。在 可溶性鉛酸氧化還原液流電池教學案例中,采用了三個 矩形 函數定義由充電、放電和靜置過程組成的載荷循環。根據輸入和對所需載荷循環的了解,我們可以使用一個或多個函數和(或)不同類型的多個函數的組合來實現所需的分布。
載荷曲線的突然變化或不連續會導致數值不穩定。因此,在定義各種函數的載荷曲線時,必須在函數設置窗口中啟用平滑處理,以確保收斂性。瞬態求解器的任務是根據平滑過程的定義,求解載荷步驟之間的過渡問題。
分段 函數的 設置 窗口,定義了一個載荷曲線,突出顯示了平滑的應用,以改進函數的數值收斂性。
此外,如果我們可以獲得實驗載荷循環測量數據,并希望將實驗載荷曲線納入電池模型,則可以使用 插值 函數將實驗數據導入 COMSOL Multiphysics®。例如, 瞬態集總電池模型的參數估計教學案例就使用了這種函數,將插電式混合動力汽車電池的實驗動態載荷數據作為 集總電池 接口的外加載荷。
通過 插值 函數將實驗動態循環數據導入 COMSOL Multiphysics®,以確定外加載荷。
預定義充放電循環功能
如果要定義恒流/恒壓循環分布,可以使用預定義的 充放電循環 功能,該功能可在電池模塊中的所有電池和通用電化學接口中使用。使用此功能,我們能夠模擬連續的恒流和恒壓充放電循環,并可以選擇在循環之間加入靜置時間。如下圖所示,用戶可以自定義模式的順序,指定靜置時間,并分別設置恒流和恒壓模式下的電壓和電流閾值。在模擬時間允許的情況下,這組預定義的分布會一直重復。
充電-放電循環 節點的 設置 窗口包含兩個獨立的充電和放電模式,允許用戶在窗口中選擇包含或者不包含某些步驟,并輸入相應的值。該節點將根據 啟動模式 設置,以 充電 或 放電 模式開始循環。
該節點還包括一個循環計數變量,可在 結果 部分訪問或用于在瞬態求解器中設置停止條件。單顆粒鋰離子電池模型和鋰離子電池的容量衰減教學案例中就使用了這個功能指定恒流和恒壓分布。
內置節點 充放電循環 有一定的局限性:它主要依靠電壓和電流閾值在模式間切換,這可能不能完全符合你的要求。對于更復雜的載荷循環,應該考慮使用 事件 接口設置循環行為。
事件接口
我們在前文的 函數 部分提到,在使用不同函數定義載荷曲線時應用平滑處理,可以解決求解器在載荷突然轉換時的數值不收斂問題。在使用 事件 接口定義載荷曲線時,這種數值處理方法已被集成在內,因此可以增強用戶模型的收斂性。事件 接口使電池仿真人員能夠創建包含多個步驟和各種模式切換的不同載荷。這是通過確保載荷表達式包含一些通過 事件 接口定義的開關來實現的,從而允許一個載荷表達式采用不同的值。載荷表達式基于多個離散狀態變量建立,通過改變這些變量的值,來定義所需的載荷曲線。
在深入討論如何使用 事件 接口來定義所需的載荷曲線之前,有必要更深入地了解它的主要功能。您可以在 COMSOL Multiphysics® 的 數學>常微分和微分代數方程 接口分支下找到 事件 接口。它主要用于創建求解器事件。這些事件可分為兩類:顯式和隱式。顯式事件是預先確定在特定時間內發生的,例如在指定時刻按計劃關閉載荷。隱式事件則在滿足特定條件時發生,例如當電池電位達到預定的截止閾值時,需要修改外加電流或使電池處于靜置狀態。當觸發事件后,瞬態求解器會停止,并更改一個或多個離散狀態變量的值,然后重新啟動。值得注意的是,充放電循環 功能是基于事件運行的,并已經“在幕后”預先定義了隱式事件。
要了解有關 事件 接口及其實踐操作的更多信息,請瀏覽博客:使用事件接口模擬溫控器。
現在,我們已經了解了 事件 接口的工作原理、關鍵組件,以及它如何讓用戶根據特定條件或在特定點上修改模型,接下來,我們就可以探討它在載荷曲線定義中的應用。載荷曲線中的不同運行模式或步驟可以用一組 離散狀態 來表示。當這些狀態接收到不同的值,會像一組開關一樣,隨之改變載荷表達式的定義,如下圖所示。決定使用顯式還是隱式事件取決于當前載荷定義的具體情況。如果知道影響分布模式的變量變化的時間,就可以使用顯式事件。在時間未知的情況下,可以通過一組 指示器狀態 來詳細說明這些變量發生變化的條件和標準,例如電池性能因素的特定閾值。指示器狀態 會建立求解器用來觸發隱式事件的狀態變量。
在析鋰變形模型中,使用 事件 接口創建包括正向和反向電流占空比的 事件序列。
在 變量 部分被定義為 “i_app”,并傳遞給 鋰離子電池 接口中的 電極電流 條件的外加電極電流密度,是根據正向和反向狀態計算出的。循環執行此序列,詳請參閱事件序列 下面的 設置 窗口。
請注意,所有 隱式事件 和 顯式事件 節點都會在指定時間或滿足條件時觸發。它們在接口中的定義順序可能與分布中的預期變化順序不一致。右鍵單擊 事件 接口后,還可以使用另一個名為 事件序列 的選項,更直接地加入連續步驟。使用 事件序列 可以指定一系列事件,這些事件將按照列出的順序激活。添加 事件序列 后,您可以包含多個序列成員,每個成員都根據條件表達式或特定持續時間運行。此外,使用 事件序列 后,可以在 事件序列 設置窗口中選擇 循環 復選框。這樣,只要仿真時間允許,事件就可以重復發生,從而靈活地定義重復的循環。
如果希望事件序列在研究過程中反復循環,請選擇 循環復選框,如圖所示。
通過在事件觸發點為求解器設置 停止條件,隱式事件也可以終止仿真。這種方法通常比通過 停止表達式 定義的停止條件更加精確。如下圖所示,在具有熱力學電壓滯后的硅-石墨混合電極模型中,定義的所有隱式事件都會自動列在表中,當任何標記為活動的事件被觸發后,仿真就會停止。
當電極電位超過與 0% 電極充電狀態 (SOC) 對應的定義電極電位時,隱式事件 2 被觸發,并發出模擬結束的信號。
COMSOL Multiphysics® 中有很多電池模型都采用了這種方法,例如:
結束語
在這篇博客中,我們探討了在 COMSOL Multiphysics® 中可以定義載荷循環的各種方法。我們通過幾個案例模型演示了這些方法。這些寶貴的資源,可以幫助您了解如何在電池仿真中應用這些方法,以及深入學習在仿真項目中準確表示載荷曲線的最佳實踐和技術。
評論 (8)
浩 李
2024-11-05老師您好,我在使用事件功能給鋰離子電池定義充放電循環的電流時,求解器有時會“跳過“隱式事件(達到了隱式事件的觸發條件,但求解器沒有識別出來),我嘗試過減小事件容差,但是還會出現這種問題,請問該怎么修改求解器或者怎么調整事件呢。
Yi Fan Wang
2024-11-12 COMSOL 員工您可以嘗試修改軟件的計算步長,控制軟件的最大步長取值。您可以參考博客“http://www.zdgkjt.cn/support/knowledgebase/1254”。并且也可以嘗試調小計算容差。
Heng Huang
2024-11-15老師你好。我想在電池滿電狀態下以一個較低電壓值恒壓放電的功能,請問如何實現?能否通過PDE或者ODE來實現?通過鋰離子電池物理場中的電極電位接口會造成不收斂,初始值不一致。
Yi Fan Wang
2024-11-19 COMSOL 員工您好,恒壓狀態,在軟件設置中,最后還是通過電流邊界條件來施加。需要使用事件功能來寫,具體您可以參閱視頻“http://www.zdgkjt.cn/video-training/lithium-battery-training-cn-prt4”。
LL
2024-12-26老師您好,我想問一下 當充電到3V繼續用小倍率,再充到3V用更小倍率,隨后再用更小倍率繼續充至更高電壓,當用事件作為電壓判斷時,由于相同電壓為條件,有一個就無法識別,這種要怎么調整呢
yongchao wang
2024-12-31 COMSOL 員工理論上可以通過“事件”中的“事件序列”通過“序列成員”之間的轉變可以實現您描述的需求;另外如果方便可以將您的模型發送到“技術支持”,這樣可以結合您的模型給您具體的答復。
思昂 陳
2025-01-24事件接口中如果事件序列中涉及到隱形事件如何控制整個序列的循環次數
王 剛
2025-02-05 COMSOL 員工可以定義一個離散狀態變量,在隱式事件的“重新初始化”的表達式中對它進行累加 1,即可實現計數功能。