24 9 月, 2025 Useful

除錯 Abaqus 模型

68 點擊次數

這篇文章全面探討在 Abaqus/Standard 中除錯模型的流程,特別著重於收斂問題的解決。文章詳細比較 Abaqus/StandardAbaqus/Explicit,說明迭代方法與策略,並強調理解模型特性、採取系統化方法,以及在面對問題時保持韌性的必要性。

Abaqus/Standard 中對模型進行除錯可能很複雜,尤其當在結構模擬中遭遇收斂問題時。

本文聚焦於 Abaqus 模型的除錯,也就是修復 Abaqus/Standard 中的收斂問題。除錯可以指涉多種事情:從建立網格並修正網格問題,到更正基本建模錯誤、拼錯的關鍵字等。然而,這篇文章的目標是學會如何修復 Abaqus/Standard 中的收斂問題。

Abaqus/Standard 是最初的 Abaqus 求解器程式碼,可追溯至 1980 年代早期。它是一個有限元素求解器程式碼,也稱為隱式求解器,功能多樣。涵蓋從一般非線性靜態與動態模擬到線性模擬,包括線性動力學、熱傳、聲學、壓電效應等。

Abaqus/Standard 在一般模擬中採用增量式、迭代式方法。它建構於「牛頓–拉弗森(Newton-Raphson)」法之上,這是一種針對收斂問題的數值技術,並且需要一套完整的除錯策略。

此方法若成功完成,即得到所謂的「收斂」;若失敗,則導致未收斂。為有效處理未收斂,區分這兩種狀態極為重要。

相較之下,Abaqus/Explicit 是約在 1992 年發佈的動態顯式套件。它是一個顯式求解器,運作於根本不同的求解技術上。Abaqus/Explicit 具備多種功能,如一般非線性動態模擬、熱傳,以及與結構耦合的聲學、大變形方法,以及適用於複雜 3D 接觸模型的強健接觸演算法。

作為一個動態顯式分析套件,Abaqus/Explicit 不使用 牛頓–拉弗森法,因此不會有收斂問題。然而,顯式程式碼可能面臨數值穩定性顧慮。

Abaqus/Standard 中遭遇嚴重收斂問題的使用者,可以考慮切換至 Abaqus/Explicit。由於兩種求解器的介面相當相似,轉換至 Abaqus/Explicit 有助於緩解在 Abaqus/Standard 模擬中遇到的收斂挑戰。

第一個範例涉及一個單元素模型,其中包含一個連接器元素,並施加一個力。非線性的彈簧剛度用以平衡該力。連接器元素為「笛卡兒–卡丹(Cartesian-Cardan)」連接器。其相對運動的第一個分量具有非線性剛度,而其他相對運動分量受到拘束。

由於彈簧在一個方向上為非線性,此模型相對直觀,並使用靜態載重步。這表示我們要測試在載荷下彈簧會被拉伸多遠。當針對收斂問題進行除錯時,辨識關鍵的模型特性非常重要:

  1. 具有非線性剛度的連接器元素
  2. 邊界條件,包括連接器運動拘束
  3. 集中載重
  4. 靜態程式(Static procedure)

即使不需要除錯,我們也必須理解模型中的這些特性。理解如何使用這些模型特性,與理解它們可能造成的問題一樣重要,例如:

  1. 非線性彈簧可能具有非單調的力–撓度行為。
  2. 多重拘束可能彼此干擾
  3. 隨動載重(Follower loads)可能需要非對稱求解器
  4. 模擬過程可能為準靜態(quasi-static),導致靜態分析失敗

對潛在陷阱的知識是透過訓練與經驗所建立,對幾乎任何複雜的人類工作而言皆是如此。透過訓練,能避免僅仰賴經驗學習,同時增強辨識與有效解決挑戰的能力。

在以下範例中,模型維持原樣無法完成。第一件事是查看狀態檔(status file)。有些人可能偏好在 Abaqus/Viewer 中使用 Job Diagnostic,但我們將採用文字檔。綠色文字表示收斂問題。

Abaqus Standard simulation error log showing convergence problem and analysis not completed

日誌檔(log file)包含一則錯誤代碼訊息,但這些屬於較底層、與系統相關的問題,需另行調查。在此,我們面對的是常見的收斂問題。一旦辨識出分析突然終止的問題,就必須檢視訊息檔(message file)

Abaqus simulation message file showing convergence error and analysis termination due to increment limits.

一開始,當在 Abaqus/Viewer 中開啟 ODB,並顯示最後儲存結果的變形形狀時,檢視檔案末端會對我們很有幫助。在此案例中,訊息表示所需時間小於指定的最小值,這是一則常見訊息。

錯誤訊息經常反覆強調我們已知的問題。檢視訊息檔時,通常會看到錯誤發生前模型變形形狀的圖像。但因為這是單元素模型,可視化的內容並不多。

如今既已辨識錯誤原因——過度回退(excessive cutbacks)——即可沿著訊息檔回溯,記下關鍵節點與元素,並在變形網格中定位它們。辨識數字中的模式很重要,因此提出以下問題會有幫助:

  1. 是否同一群節點一再出現最大殘差
  2. 是否同一群節點持續造成接觸問題
  3. 最大修正量是否總在少數幾個節點上?
  4. 塑性是否似乎在同一群元素中失控?等等。

這些數字模式能協助你辨識造成問題的網格區域,你可以在顯示的網格中快速定位這些實體。

現在作業過程被突然中斷;希望這時你有儲存一些過程的數據。你必須提出一個假設來緩解問題,此假設必須與已識別的問題網格區域以及模型特性所固有的潛在議題相一致。

為了精煉此假設,你必須透過動畫應力/位移等值圖細查已知結果。有了可行假設,下一步是修改模型以處理該假設中的問題。

若幸運的話,實施修正後問題便會解決。然而,若問題持續或出現新複雜度,可能是假設不正確所致。在此類情況中,尤其是面對收斂問題時,堅持檢查是很重要的。

在這個案例中,問題出現在節點 2。這在我們的預期之內,因為在兩個節點中它是唯一自由運動的節點。網格處於平衡,但在稍微更大的載重下,尋找另一個平衡狀態會發生困難。這導向一個假設:非線性剛度存在某些不尋常的問題。

Abaqus convergence check log showing residual force and displacement correction with divergence warning.

為了更透徹的了解,我們需要實施一項訓練中推廣的技巧:位移控制載入(displacement-controlled loading)。我們可以不施加力,而是以邊界條件拉伸彈簧並觀察結果。此模型原本採用簡單的力控制載入,很容易轉換為位移控制。我們可以修改模型,並透過施加固定位移成功完成分析。

Abaqus simulation input and output log showing displacement control loading with successful analysis completion.

力–位移曲線顯示,非單調的力–撓度行為阻礙了在靜態程序中進行力的斜坡載入(ramping)。這清楚表示:當載重約在 2.0 附近時,不存在接近原平衡態的平衡狀態。此行為源自 Abaqus 靜態模擬中的預設振幅(amplitude)設定,使力的施加更為複雜。

Force versus displacement plot from Abaqus displacement control analysis showing nonlinear equilibrium instability at node 2.

有幾個可行的解法可用來處理此問題:

  1. 內插對應於載重 2.0 的位移並重新執行。
  2. 執行兩步驟模擬,並切換至力控制,如下所示。
  3. 使用相對較新的 *STEP CONTROL 選項。
Abaqus input file with step control method and node output table showing successful finite element analysis completion.

此範例展示了非線性模擬除錯的更廣泛複雜性,並凸顯以有條理的方法來識別並解決收斂問題的必要性。

Finite element analysis model showing structural deformation of circular plate with central hole under load.

第二個範例說明有限元素分析中常見的一種收斂問題:使用薄的彈性圓盤沿軸向拉過具有橢圓截面剛性環。圓盤應該被完整拉過,但模擬失敗,出現令人緊張的訊息,表示分析尚未完成。此範例凸顯了在此類模擬中,因收斂問題而引發的常見困難。

Abaqus input file snippet showing static step definition, velocity boundary conditions, and output requests.

我們來檢視載重步(load step)。該步驟已使用位移控制載入,因此指望藉由切換到位移控制來解決問題是不可能的。

重要的模型特性包括:

  1. 二次六面體元素型式 C3D20RH
  2. 超彈性(hyperelastic)材料
  3. 一般接觸(General Contact)
  4. 邊界條件
  5. 剛體拘束
  6. 靜態程式

一旦識別出模型的關鍵特性,下一步是找出陷阱並理解如何使用這些特性以產出高品質結果。在將超彈性材料用於模型之前,理解其在預期應變範圍內的穩定性非常重要。

我們可能遇到接觸方面的問題。例如,在 Abaqus/Standard 中的接觸模型若發生收斂問題,我們可能需要啟用非對稱求解器。接觸分析可能需要非對稱求解器,尤其在存在摩擦時。我們必須避免過度拘束,並留意當模擬像此類準靜態過程時,與靜態程式之間可能發生的衝突。

Abaqus simulation log showing step interruption and message indicating analysis has not been completed.

模型僅完成了步驟的一部分,系統便提示分析尚未完成。此訊息檔包含大量負特徵值(negative eigenvalue)訊息。依據殘差時間平均力(time average force),模型處於可接受的平衡狀態

Abaqus convergence check log showing severe discontinuity errors and time increment too small termination.

此時讓我們提出一個合理的工作假設,我們遵循了接觸最佳實務:採用一般接觸,並因摩擦啟用了非對稱求解器。超彈性材料是穩定的。由於幾何位置的關係,也不存在過度拘束的可能性。

因為存在大量持續的負特徵值訊息,這再加上部分結果的動畫,導致我們提出屈曲(buckling)的假設。我們需要一個解法策略來延續後屈曲(post-buckling)行為,並將圓盤完全拉過。各種技術(例如 Riks 法、靜態穩定化準靜態隱式動力學顯式動力學)都可能協助我們解決此問題。

讓我們把程序從靜態切換到 Abaqus/Standard 中的準靜態隱式動力學

Abaqus input file with quasi-static step, velocity boundary conditions, and control parameters showing successful analysis completion.

我們允許非常小的遞增步長,並增加回退(cutback)次數。在某些情況下,模擬原本能以相對較大的增量平順進行,但觀察到屈曲行為時,我們必須轉換為較小的增量。有時,可能需要極小的增量以及超過預設值 5 次的回退。在進行隱式動力學時,必須將時間視為物理量,而非像在靜態分析中那樣的「正規化(normalized)」量。

Finite element simulation model of circular plate with central hole showing structural deformation under load.

此一收斂問題的解答在於修改模擬程序。藉由穿越曲線中的問題區段,得以讓模擬成功完成。

Finite element mesh model showing contact simulation between cylindrical roller and flat surface in Abaqus

最後一個範例是一個超彈/黏彈(hyperelastic/viscoelastic)的 O 形環先被壓縮,接著鬆弛。上圖中的綠色圓形組件代表 O 形環。在靜態步驟中,剛性板將 O 形環壓入彈性材料中的槽內。在第二步中,使用 *VISCO 程式,板保持固定,而密封件進行鬆弛

此模型的特性包括一般接觸邊界條件對稱平面。當分析執行時,顯示第一步未完成。除錯流程包含徹底檢視部分結果、動畫以及訊息檔,以找出問題來源。

alt="Abaqus convergence log showing severe discontinuity iteration with contact points changing from sticking to slipping.

訊息檔指出雖然平衡狀態良好,但存在接觸問題。請注意關於「黏著(sticking)」與「滑移(slipping)」的訊息。

工作假說(working hypothesis)是 O 形環正經歷黏滑(stick-slip)行為,這導致靜態程式發生問題。一個變通作法是使用準靜態隱式動力學。在這個案例中,切換程式使情況更糟,這是可能發生的。訊息檔指出在節點 4 與 4559(位於槽的銳邊)處出現「邊-面接觸(edge-to-face contact)」問題。

Abaqus convergence check log with contact penetration error and finite element mesh visualization showing simulation divergence.

我們來檢視一般接觸中的邊。可在 Abaqus/Viewer 中於接觸域視覺化 GENERAL_CONTACT_EDGES_3。我們注意到在對稱邊界上有不需要的邊。在 Abaqus/Standard 的一般接觸中有選項可將邊從接觸域移除,讓我們移除那些邊並再試一次。

一旦整個模型可運行,我們可以考慮改回靜態程式,一次只改一項通常效果最佳,以免同時改變程式。

Abaqus Viewer visualization of general contact edges showing unwanted symmetry boundaries in finite element model.

我們正在修改接觸以消除對稱面上的邊,並將第一步切換為動力學程式。這造成實際時間(physical time)與黏彈效應,同時也帶來慣性效應,這表示我們必須密切注意此步驟的時間。

我在該步驟使用 0.1 的時間,並設定30 秒的鬆弛時間。由於對於這個小型 O 形環而言,載入速率相較於鬆弛時間並不長,0.1 對此步驟而言似乎是合適的時間。

雖然步驟 1 成功,但模擬再次失敗。我們通過了壓縮步驟並進入 VISCO 步驟,但仍告失敗。透過分析部分結果動畫步驟二最後儲存的結果,在減積分網格中觀察到一種變形型態

Abaqus simulation result showing hourglassing issue in C3D8RH elements with deformed seal model and analysis not completed.

密封件變形形狀的圖顯示 C3D8RH 元素發生鐘口形(hourglassing),此時需要再堅持一下,我們可以移除減積分元素,改用全積分元素以消除鐘口形效應。下一步是將六面體元素改為 C3D8H,再試一次。重新執行後得到完整結果。結果現在成功了。接下來我們可以慢慢地進行模型精緻化

Abaqus finite element simulation showing von Mises stress distribution in contact model with cylindrical roller and block.
Abaqus simulation log output showing step data and message indicating the analysis has completed successfully.

讓我們加密網格圓角化槽邊。通常當邊緣為圓角時較容易獲得收斂。圓角的半徑應足夠大,使網格得以貼合。若需要較銳利的邊,請使用更精細的網格。

Finite element simulation of cylindrical roller contact showing maximum principal stress distribution in Abaqus

一旦實施這些變更,模擬便成功。此範例展現了在解決收斂挑戰時堅持與適應的重要性。

有限元素模型的一般除錯技術與策略

Abaqus/Standard 中除錯收斂問題可能令人卻步。檢核清單(checklist)對於在你的模型中識別並解決這些挑戰非常重要。

以下是在 Abaqus/Standard 中有效除錯模型時需牢記的關鍵步驟:

  1. 了解你的模型特性以及如何正確使用它們。
  2. 識別你的模型特性可能引發的陷阱
  3. 應用所有可用資訊來形成假設。
    (1) 部分結果很有幫助。請記得在除錯時不要人為限制輸出
    (2) 閱讀錯誤/警告訊息並分析訊息檔
  4. 為該假設性問題定義一個變通作法(workaround)
  5. 初次嘗試失敗並不罕見。堅持是完成分析的關鍵。

最後要記住的是,透過訓練與經驗,我們可以理解特定功能的陷阱。訓練與經驗讓使用者能更敏銳地提出假設,並為收斂問題實作務實的解方。

以下是推薦的訓練課程與資源,以供進一步學習:

  1. Obtaining a Convergence Solution with Abaqus
  2. Modeling Contact and Resolving Convergence Issues with Abaqus
  3. Abaqus/Explicit: Advanced Topics
  4. Buckling, Post Buckling, and Collapse Analysis with Abaqus
  5. 任何訓練課程皆有助益

這些教育資源可於 SIMULIA 官方網站取得。若你希望強化在 Abaqus/Standard 收斂問題除錯上的解題能力,建議你探索這些訓練機會。

總結而言,在 Abaqus/Standard 中除錯收斂問題是一個繁複的過程,需要對模型特性與潛在問題有深入理解。訓練與經驗有助於準確建立假設,以實作成功的解決方案。牛頓–拉弗森法是該求解器的核心;當發生未收斂時,需採用系統化的方法進行診斷與修復。

部分結果、錯誤訊息與動畫在此過程中極為寶貴,並指引我們進行調整以達成成功結果。由於初始嘗試不見得能立即解決問題,因此毅力是必要的。

最終,系統化且具備知識的途徑,加上堅持不懈,是精通 Abaqus/Standard 有限元素模型除錯的關鍵。

若想進一步了解如何精通 Abaqus/Standard 的除錯,歡迎觀看我們的錄製課程

常見問題(FAQs)

問:如何找到使用某個 Abaqus 功能的範例,以熟悉其用法?
答: 你可以搜尋線上說明文件,或使用 Abaqus findkeyword 工具來尋找使用特定功能的範例。與這些範例相關的輸入檔在 Abaqus 安裝內容中已提供,你可以透過 Abaqus fetch 工具取得。

問:什麼是 Abaqus Verification Guide?它如何幫助我學習新功能?
答: Abaqus Verification Guide 包含測試案例,用以證實對於程式碼中一個或多個明確選項之數值模型實作,能產生預期結果。當你學習使用一項新功能時,執行這些問題能協助確保你正確地使用它。

問:什麼是 Abaqus/CAE 的 Job Diagnostics 工具?它如何協助我除錯模型?
答: Job Diagnostics 工具可讓你監控分析作業的進度,並理解作業的收斂行為。它提供每個**步驟、遞增(increment)、嘗試(attempt)與迭代(iteration)**的詳細資訊,協助你識別並修正模型中的問題。

問:Job Diagnostics 對話框 Residuals 分頁中的 average force 與 time average force 有何差異?
答: average force 為模型在特定時間步上所施加的力,而 time average force 則為整個分析期間力的平均值。Residuals 分頁會為每次迭代顯示兩者的數值,有助於你識別收斂問題的原因。

問:什麼是 Getting Started with Abaqus 外掛?它如何幫助我執行 Abaqus 範例?
答: Getting Started with Abaqus 外掛可讓你執行 Abaqus 說明文件中描述的範例。它會為每個範例建立模型作業,你可以在 Job 模組提交分析,並在 Visualization 模組檢視結果。該外掛也會擷取與範例相關的輸入檔並放在目前目錄中。

原文轉載來自: Ritu Singh – Debugging Abaqus Models

看更多其他文章:

電容式觸控螢幕感測器分析
極端環境下的產品設計,Abaqus結構分析能提供哪些優勢?
CST系統級RS模擬(四)——產生RS調變訊號