【有限元】案例講解結構非線性模擬不收斂解決技巧
作者:可愛多
【有限元】案例講解結構非線性模擬不收斂解決技巧
主要通過分析一個揚聲器Kms(x)模擬不收斂的解決案例,來討論下有限元非線性計算時應該注意的事項,以及非線性計算時求解器設置。供各位參考。
昨天一個朋友用comsol分析一款支片(彈波)的Kms(x)時,用最大位移5mm計算時,收到一個錯誤提示:「達到最大牛頓迭代次數」。只能計算到2mm。我花了點時間幫助他解決了一下。就以此為案例,解剖下麻雀。
Comsol複雜模型的默認網格劃分/默認求解能力和非線性的計算能力相比較與其他軟體如Ansys或者ABAQUS是存在一定差距的,所以網格和求解器在求解複雜非線性模型時需要根據有限元計算理論進行一定的手動調整。
首先介紹下,Kms(x)的模擬分析大致有兩種思路:1.給定一個力,然後計算位移,力/位移就是Kms。2.給定一個位移,然後計算其他剛性部件的反作用力,力/位移就是Kms。這兩種思路對應的有限元軟體內部演算法也略有差異,不過一般使用專業軟體不需要考慮那麼深。
以下討論的解決技巧不局限於comsol,對其他軟體進行非線性模擬時出現不收斂也是適用的。
我的解決思路是這樣的:
1. 檢查結果。支片在2mm時顯然未拉伸至最大,所以不是因為變形過大造成不收斂。
2. 檢查求解記錄。通過查看求解器的收斂曲線,發現未相對誤差經過25次迭代之後未達到0.001,從而顯示不收斂。
3. 檢查參數。這個案例用的是給定一個位移,然後計算反作用力的方法。Comsol採用參數化掃描時,需要避開位移0點,否則Kms計算會出錯。所以位移設置修改為從-5.01mm計算到5mm。
4. 檢查物理場邊界/載荷設置。載入位移時,除需要計算方向指定位移外,將其他方向的位移設置為0。防止計算誤差導致在理論上不可能有位移的方向移動。
5. 檢查網格。網格足夠密。適當調稀疏了點,夠用就好。
6. 檢查求解器設置。這是這個案例最關鍵的部分。首先將最大迭代數從默認25修改為50,發現相對誤差還是大於0.001。所以再考慮將相對容差從默認0.001調整為0.002,當然這個會損失一定的精度。具體見下面的圖。
7. 順利求解完成。從結果來看,精度的損失是可以接收的,Kms(x)曲線光滑且走勢符合預期。當然其中經過多次參數嘗試和調整。不過大體思路就是這樣。遇到類似問題的朋友也可以照此解決。
最後,以comsol的結構非線性求解為例,大體講解下求解器的相關設置。有興趣的可以按下F1多看看官方的幫助文檔,這個是最專業的。
默認採用的是直接求解法,存在多個求解器。直接法一般是通過牛頓迭代法,轉化為線性問題,然後直接暴力展開矩陣求解。這種方法比較穩定,魯棒性強,不過內存佔用較多。
也可以修改為迭代求解,同樣存在多個求解器。相對直接求解,可以減少內存開銷,計算速度一般情況下會略快。不過相對更容易不收斂,不如直接法穩定。需要一個比較好的初始預估值,不然結果容易發散。
考慮不同非線性程度,可以考慮不同的非線性方法。默認就是定常的牛頓法。形狀畸變比較嚴重的結構,需要考慮使用比如自動高度非線性牛頓法。遇到不收斂的情況,有時也需要適當調整阻尼因子,以增加收斂性和魯棒性。
通常情況下非線性不收斂可以參考本案例,檢查好參數/物理場設置/網格/求解器即可。求解器優先選用默認的直接法求解,遇到問題優先調整迭代次數,還有問題再調整相對容差,最後再考慮更換求解方式或者調整其他參數。當然具體需要結合收斂曲線分析判斷。
查看原文aHR0cDovL3dlaXhpbi5xcS5jb20vci83VG10dFdYRWJUZ1NyU0hXOTJ6LQ== (二維碼自動識別)
推薦閱讀:
※機器人模擬平台V-REP學習入門
※Sentaurus TCAD安裝之jedit+TCAD宏包
※電力電子中PI參數的計算之二—— 應配置成什麼樣的系統呢?
TAG:有限元分析FEA | 仿真 | COMSOLMultiphysics |