Abaqus不收斂怎么辦?
這里推薦大家有能力的可以深入閱讀ABAQUS幫助文檔分析手冊(Analysis Solution and Control)的內容,會對解決不收斂的問題有很大幫助。在2021版幫助文檔中入口如下圖所示

Abaqus中的求解類型分為顯示與隱士。顯示求解基于動力學方程,當前求解至于前一時刻的速度與位移有關,求解過程無需迭代,是有條件穩定,無條件收斂;隱式求解則基于虛功原理,一般需要迭代計算,無條件穩定,有條件收斂。
所以對于你提到的不收斂問題這里我就認為是針對隱式計算。
1.基礎不收斂問題
在模型計算報錯時,我們首先查看Job Monitor中的報錯信息,對于簡單的模型錯誤,例如材料、邊界、載荷定義錯誤、網格問題、關鍵字定義錯誤等都能在Job Monitor中直接看出。針對不同的問題針對修改就可以。這部分相信稍微有些經驗的CAEer都能自行解決。

2.不收斂的本質與進階解決方法
在接著講之前,我希望大家能夠了解模型收斂的本質是什么?
對于線性系統來說,一般不存在收斂問題。模型不收斂一般都是由于幾何非線性、材料非線性、邊界非線性。
有限元求解的過程是根據外力與內力平衡求解出各個節點的位移,根據位移再求解應力、應變等。對于非線性系統,載荷與位移的關系也通常是非線性的,如下圖所示。

我們的首要目的就是求解不同載荷下的位移。做法就是將一個完整求解過程細分為許多個小的過程。
這里就不得不提abaqus中的Step、increment與iterations。
這里舉一個例子,假如我們從冰箱里拿面包吃。
Step1:打開冰箱
Step2:拿面包
Step3:關上冰箱
Step4:吃面包
面包很大,不能一下吞下去,所以為了吃面包我們首先咬一口(Step4:increment1),然后要咀嚼很多口(Step4:increment1->iteration1->iteration2->......->iterationN);接著再咬一口(Step4:increment2),再次咀嚼(Step4:increment2->iteration1->iteration2->......->iterationN),直到把面包吃完。
可以看到為了把面包吃完將吃面包細分成了很多步驟,實際有限元計算時也是一樣,理解了上述三個參數的含義對后面的調參有重要意義。
我們通常說的不收斂是發生在“嚼面包”(iteration)過程中,當軟件嘗試很多次迭代發現物體的內力與外力差值仍然超過規定誤差時就會報出“不收斂”。
為了深入了解,我們這里舉個例子。將一個物體所受外力設為P,物體內力(作用在節點上)設為I。作用在節點上的內力是由與節點相連的單元的應力產生的。

一個物體處于平衡,則內力與外力相平衡。
為了求解上式,首先施加一個小的載荷增量 。根據位移為 時結構的切線剛度 以及載荷增量 計算位移修正值 ,最后計算出此時的位移 。

此時重新計算物體內力 ,可以得到你內力與外力的差值
這里的 就是衡量每次iteration是否收斂的標準。abaqus默認 小于結構所受平均力的0.5%則認為內力與外力 相平衡,但是此時還未認定為收斂,還需要檢查 是不是小于 ( )的1%(abaqus默認值),如果是則判定收斂,進入下一個迭代。
下一次迭代計算遇上個步驟相同,最后還是通過判斷內力與外力的殘差與來判斷該次迭代是否收斂。

那么對于復雜難以收斂的模型,如果你調整其他參數發現毫無作用時,可以適當調整判斷迭代收斂的這兩個參數:與
具體入口為:Step->Other->Genreal Solution Controls->Filed Equations

還可以調整 以及 ,但是這里作者也沒有搞明白是和含義,希望大神不吝賜教。
還可以調整增量步(increment),其中 和 是重要的兩個參數。因材料非線性、幾何非線性、摩擦產生的非單調收斂需要增加;因復雜的材料本構模型而導致雅可矩陣非對稱引起的不收斂需要增加。

3.總結
最后總結一下
首先我們需要根據報錯內容排查不收斂的原因,很多時候不收斂都是由于模型本身的問題,例如:邊界約束不足、部件重復導入、材料屬性輸入錯誤、網格質量太差等等。
還有一些不收斂是由于復雜模型以及邊界條件造成的,例如模型涉及到接觸時發生不收斂(這里我寫了一篇文章,大家可以參考里面的接觸設置進行調整開車小王子:有限元學習日記?(Abaqus中的接觸詳解)),可以修改主從接觸面;讓從面網格更密;修改接觸參數;增加接觸阻尼。
上述方法都嘗試過后,可以試著調整默認的收斂參數。也就是上文提到的 。但是這里要謹慎,因為這很有可能影響最終計算結果的精度。
最最后,大家收藏了記得點贊、關注一下呀!碼字不易,謝謝大家了!
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















