力の残差発散
力の残差発散とは
先生、.staファイルを見たら残差ノルム(FORCE RESIDUAL)がどんどん大きくなっています。
理論と物理
力の残差とは何か
「力の残差」という言葉をよく見ますが、具体的に何を指しているんですか?単に計算誤差のことですか?
いい質問だ。力の残差(Force Residual)は、有限要素法の非線形反復計算において、釣り合い方程式がどれだけ満たされていないかを定量的に示す指標だ。例えば、弾塑性解析では、ある反復ステップでの応力場から求まる節点力ベクトル
外力は最初に与えるものだから変わらないですよね?だとすると、残差が大きくなる原因は内部節点力の計算が間違っているからですか?
計算が「間違っている」というより、「現在の変位予測値に基づく応力が、真の釣り合い状態からずれている」という状態だ。例えば、降伏応力235MPaの鋼材(SS400)で、ある要素の相当応力が300MPaと計算された場合、材料は塑性域にある。このとき、弾性マトリクスだけを使って変位を更新すると、内部節点力の見積もりが実際の材料挙動と大きく食い違い、残差が発散する原因になる。
なるほど。では、残差の「発散」は、反復を重ねるごとにこの
その通りだ。通常、Newton-Raphson法などの反復解法では、残差ノルムが収束基準(例えば1.0e-3)を下回るまで減少する。しかし、発散とは、反復ごとに残差が減少せず、逆に増大し、最終的に数値的にオーバーフローする現象を指す。これは、ヤコビアン(接線剛性マトリクス)が正しく更新されていない、または物理的に不安定な状態を無理やり解こうとしていることを示唆している。
数値解法と実装
ソルバー設定の影響
力の残差発散を防ぐための、ソルバーレベルの設定にはどんなものがありますか?「自動安定化」のような機能は内部的に何をしているんですか?
主要な対策はいくつかある。第一に「ラインサーチ」だ。これは、Newton-Raphson法で求まる変位増分
仮想的な粘性…ということは、物理的に不正確な結果を生むリスクはありませんか?
鋭い指摘だ。そのリスクは常にある。例えば、Ansys Mechanicalで「安定化」を過度に強くかけると、構造物の実際の座屈荷重を過大評価する可能性がある。重要なのは、安定化によって収束した結果の「エネルギー比」を確認することだ。Abaqusの`.msg`ファイルでは、安定化による仮想仕事(ALLSD)が全内部エネルギー(ALLIE)のごく一部(例えば0.1%未満)に収まっているかをチェックする。これを無視すると、見かけ上収束したが物理的に無意味な解を得る危険性がある。
反復回数の上限(例えば「最大反復回数=100」)を増やせば、発散せずに収束する可能性は高くなりませんか?
一般的には、単に反復回数を増やしても解決しない。力の残差が発散するということは、解の探索方向が根本的に間違っているか、解が存在しない状況にある。100回で発散する問題が、1000回で突然収束することはまずない。むしろ、初期増分サイズ(Initial Increment Size)を小さくする(例えば0.001から0.0001にする)方が、接線剛性マトリクスの更新が有効に働き、発散を回避できる可能性が高い。これは、負荷経路に沿ってより密に解を追跡するためだ。
実践ガイド
発散時の調査手順
解析を実行したら力の残差が発散しました。最初に何を確認すべきですか?ログファイルのどこを見ればいいですか?
まず、発散が起こった「ステップ」と「インクリメント」を特定せよ。Abaqusなら`.sta`ファイル、Ansysなら`solve.out`に、各インクリメントの残差履歴が出力されている。次に、そのインクリメントの「直前」の結果を可視化する。特に、塑性ひずみが集中している領域、変位が異常に大きい要素、または接触により大きな圧縮を受けて変形が特異な要素(アスペクト比が極端に悪化した要素)がないかを探す。
要素の変形が特異、というのは具体的にどう判断すれば?
ソフトウェアの要素品質チェック機能を使う。例えば、Abaqus/CAEで「Verify Mesh」を実行し、アスペクト比(Aspect Ratio)が20を超える要素や、内角が10度以下/170度以上の要素をハイライトする。あるいは、発散直前のインクリメントで、相当塑性ひずみ(PEEQ)が局所的に0.5(50%)を超えるような要素があれば、それは現実的ではなく、材料モデルが破綻しているか、大変形理論の適用限界を超えている可能性が高い。
接触解析で発散することが多いと聞きます。発散を防ぐためのモデリング上のコツは?
接触による発散の多くは、初期貫通または急激な接触状態の変化が原因だ。対策は3つある。第一に、初期接触状態を厳密に定義する。Ansysでは`CNCHECK`コマンドで初期接触状態をレビューせよ。第二に、接触剛性(Normal Stiffness)を適切に設定する。デフォルト値(Abaqusでは「Augmented Lagrange」の剛性)が高すぎると振動、低すぎると貫通を引き起こす。剛性を「スケールファクター」で1.0から0.01に下げて試す価値はある。第三に、接触面の離散化を一致させる。主従面のメッシュサイズが大きく異なると、残差の発散を招きやすい。
ソフトウェア比較
各ソルバーの挙動と設定
Abaqus/StandardとAnsys Mechanical、COMSOLで、力の残差発散に対するデフォルトの挙動や強み・弱みに違いはありますか?
大きな違いがある。Abaqus/Standardは非常に堅牢なNewton-Raphson法の実装で、ラインサーチと「自動インクリメントサイズ制御」がデフォルトで強力に働く。収束しない場合、インクリメントサイズを0.25倍、0.0625倍…と自動的に切り下げて再試行する。一方、Ansys Mechanical(デフォルトソルバー)はよりアグレッシブで、収束が遅いと判断すると「バイセクション」と呼ばれる手法で負荷レベルを半分に下げる。COMSOLは「定弾性予測子」など多様な予測子を選択でき、非線形が強い問題では「定数(弾性)」予測子から始めることで発散を防ぎやすい。
「強い非線形」とは具体的にどの程度のことを指すのですか?数値的な目安は?
定量的な目安の一つは、あるインクリメントでの最大変位増分の大きさだ。例えば、部品の代表長さが100mmのモデルで、1インクリメントで10mm以上の変位増分が生じようとしている場合、それは「強い幾何学的非線形」が働いていると言える。材料非線形では、1インクリメントで相当塑性ひずみが0.1(10%)を超える増分が生じる場合、同様に強い非線形だ。このような場合、Abaqusでは「フルNewton」ではなく「準Newton(BFGS)」法をソルバーオプションで選択すると、接線剛性マトリクスの更新コストを下げつつ収束させられる可能性がある。
Explicitソルバー(Abaqus/ExplicitやLS-DYNA)では「力の残差発散」という概念はないのですか?
その通り、明示的動解析では「静的な釣り合い方程式」を反復的に解かない。代わりに、中心差分法に基づき時間積分を行う。したがって、力の残差そのものは計算されず、発散も起こらない。代わりに問題となるのは「エネルギー発散」だ。特に、時間積分の安定条件であるCourant条件を満たさない大きな時間増分ステップ(例えば、最小要素サイズ1mmの鋼材でステップ時間が2e-7秒を超える場合)を設定すると、数値的な不安定性が増大し、運動エネルギーが爆発的に増加する現象が起きる。これがExplicitソルバー版の「発散」だ。
トラブルシューティング
具体的なエラーと対策
「THE SOLUTION APPEARS TO BE DIVERGING. CONVERGENCE IS JUDGED UNLIKELY.」(Abaqusのエラー)が出ました。このメッセージの後、具体的に取るアクションは?
これはAbaqus/Standardが発散を検知した標準的なメッセージだ。まず、`.dat`ファイルの末尾近くで、発散したインクリメント番号を確認する。次に、その1つ前のインクリメント(収束した最後のインクリメント)の結果をリスタートファイル(.res)から読み込み、可視化する。そこで、以下のチェックリストを実行せよ:1) 接触定義に隙間や貫通はないか、2) 材料データ(特に塑性データ)に不連続点や極端に小さな勾配がないか(例えば、降伏後の塑性硬化係数が1MPa以下)、3) 大きな変形を受けた要素が折り畳まれていないか。その後、リスタートから解析を再開し、インクリメントサイズを手動で小さく(例えば0.1倍に)設定して実行する。
材料データに「不連続点」とは?
例えば、JIS G 3131 SPHCのような軟鋼の応力-ひずみ曲線を、弾性域から突然、一定の降伏応力(235MPa)の完全弾塑性に切り替える入力をする場合だ。数学的には勾配(硬化係数)が無限大から0に不連続に変化する。このような入力は、ソルバーが接線剛性を計算する際に極端な数値振動を引き起こし、残差発散の原因になる。現実的には、非常に小さな勾配(例えば硬化係数10MPa)を持つ小さな領域を降伏直後に定義して、数値的に滑らかな移行をさせるべきだ。
メッシュを細かくすると、かえって発散しやすくなるときがあります。なぜですか?
これには主に二つの理由がある。第一に、メッシュを細かくすると、ひずみ集中がより局所的に、かつ鋭く表現される。例えば、切欠き根部の要素で、ひずみが理論的に無限大に近づく場合、メッシュを細かくするほど1要素あたりのひずみ増分は大きくなり、材料モデルの適用限界を超えやすくなる。第二に、メッシュ依存性のある降伏現象(例えばダメージモデル)を使っている場合、要素サイズが小さくなるほど局所的な軟化が顕著になり、剛性マトリクスが特異(正定値でなくなる)に近づき、発散を招く。この対策には、要素サイズに依存しないようにひずみの局所化を制御する「非局所化理論」や「ひずみ勾配理論」の導入が必要になるが、汎用ソフトウェアでは限界がある。
最終手段として、「発散するインクリメントの手前で解析を止めて、それを最終結果として使う」ことはできますか?
技術的には可能だが、強く推奨しない。収束した最後のインクリメントは、力の釣り合いが「許容誤差内で」成立している状態だ。その次のインクリメントで発散するということは、その負荷レベルでは物理的に安定な平衡状態が存在しない(座屈や破壊が起きている)か、数値モデルが破綻しているかのどちらかだ。前者の場合、発散直前の結果は「限界荷重」の近似値として参考にはなるが、変形や応力の分布は不正確な可能性が高い。結果を使用するならば、少なくとも、発散原因が数値的なもの(接触設定不良など)ではなく、物理的な限界(塑性崩壊)によるものであることを、別の手段(例えば、より緩やかな増分法やアーク長法)で確認した上で、限界値として扱うべきだ。
関連トピック
なった
詳しく
報告