求解器的設置經驗

連續寫了不少流程化的東西,後面還有很多的內容需要完善,是個長期的事兒,今天想分享一些關於求解器的小技巧。

求解器這一塊兒的內容在之前的分享中基本沒有提及,實際上求解器是我們完成模型計算的根本。先來看看研究的基本界面:

在鋰離子電池模擬中,我們最常用到的是「Time Dependent with Initialization」,也就是帶初始化的瞬態這個研究方法。

這個求解器中包含了兩個求解步驟:

第一個步驟是電流分布初始化,第二個就是瞬態。

我以最常用的熱電耦合模型來說明,明確一點,耦合一定是發生在不同物理場之間的,通過一些參數或變數交換產生影響的過程,耦合的兩個或多個物理場可以是同一維度,也可以是不同維度。

打開第一個步驟,如下圖所示:

這裡可以看到物理場與變數選擇下方的固體傳熱物理場前方有一個嘆號,這是因為固體傳熱物理場中沒有與電流分布初始化相關的模型變數,在進行計算前要把固體傳熱物理場從第一個求解步驟中刪去。

接下來看看瞬態步驟:

這需要注意的是時間單位與時間範圍的設置。

下面就開始乾貨時間,上面兩個只是求解步驟,並不是求解器,真正有用的東西都在求解器的設置中,在求解前是不顯示求解器的,這需要我們選擇「顯示默認求解器」來把這個傢伙找出來。

終於看到瞬態求解器了,今天分享兩個小技巧,一個和分離式求解器有關,一個與全耦合求解器有關。

當我們同時將兩個物理場全部搭建,我們自動生成的求解器就會默認使用分離式求解器,這種求解器在求解熱電耦合模型的時候,會將溫度作為分離步進行求解計算,我們可能會遇到這樣一個問題:構建的模型在低倍率下計算的很順利,但是電流倍率提高以後(10C或30C以上),就不能計算了,錯誤提示是找不到一致的初始值或者是除以0,又或者是哪個參數關係式會報錯。此時可以用階躍函數作為大電流邊界條件的過渡,如果還是不行,就要通過分離步動手了。

默認的非線性方法是常數(牛頓),在求解的邊界條件比較極端的時候,可能會因為初始的非線性過大而導致在設定的非線性方法里找不到初始值,改為自動可以極大地改善這種情況,同時能夠加快模型的計算速度,同時不影響精度。

在做內短路這種短時間大倍率的模型時,這是改善模型收斂性的重要方法。

另一種情況是:我們先建立了電化學模型,想先計算一下,確定模型是不是能夠順利計算,此時發現求解器發生了變化,「Fully Coupled」(全耦合)代替了分離式求解器,這個時候即使添加完耦合關係,求解器也不會更新,解決的方法有兩個:

1. 刪除求解器,重新生成的求解器會回到默認的分離式求解器,按照上述方法進行調整;

2. 調整全耦合求解設置:

改動非線性方法或將最大迭代次數加一。

如果上述的方法都不適用,考慮是模型設置或者參數有問題。


推薦閱讀:

comsol4.2 如何正確使用PDE模式?
comsol怎麼快速入門?
不同的有限元軟體,如ansys,comsol,結構計算時,位移基本一致,但應力常常相差不少。這是什麼原因呢?
comsol兩流場耦合的邊界條件如何設置?
簡要介紹comsol的建模及應用?

TAG:COMSOLMultiphysics | 锂离子电池 | 新能源 |