接触解析の収束失敗
接触解析の収束失敗とは
先生、接触解析がどうしても収束しません。増分を小さくしても「TOO MANY ATTEMPTS MADE」で止まります。
理論と物理
接触問題の非線形性
接触解析で収束が難しいと言われるのは、そもそもなぜなんですか? 単に部品が当たるだけなのに。
「当たる」という状態の変化そのものが非連続だからです。接触力はギャップ関数
ラグランジュ乗数法は厳密に接触条件を満たすと聞きましたが、それでも収束しないのはなぜですか?
ラグランジュ乗数法は確かに貫通を許さない制約条件ですが、接触状態(active/inactive)の判定が増分ステップごとに変わる「状態非線形性」が残ります。例えば、Abaqus/StandardでAugmented Lagrangian法を使う場合、接触圧の修正を繰り返す内反復が必要で、これが発散することがあります。特に、面圧分布が急激に変化する「角」や「エッジ」での接触では、1ステップで接触セットが大きく変わることが原因です。
摩擦があるとさらに難しいと言われますが、理論的に何が追加されるんですか?
摩擦は「スティック」と「スリップ」というもう一つの状態変化を導入します。クーロン摩擦モデルでは、摩擦力
数値解法と実装
ソルバーと接触アルゴリズム
陰解法ソルバーで接触解析をする時、ニュートン・ラフソン法の1回の反復で、接触条件はどう処理されているんですか?
多くの商用ソフトでは「予測子-修正子」スキームを採用しています。予測ステップでは接触条件を固定して変位を求め、修正ステップで接触状態(貫通や引張り)をチェックし、剛性マトリックスや残差力を更新します。COMSOLの「連続接触」機能は、接触境界を滑らかな関数で近似して微分可能にし、この反復を安定化させる試みです。しかし、初期貫通が大きいと、予測ステップの時点で物理的に無理な変形が生じ、修正が追いつかなくなります。
接触探索(コンタクトサーチ)のアルゴリズムの違いは収束に影響しますか?
大きく影響します。単純な「ノード対サーフェス」では、従属側ノードが主側面から外れる「ポケット効果」で貫通が発生しやすく、残差力が振動します。一方、「サーフェス対サーフェス」アルゴリズム(AbaqusやMSC Marcの標準)は、接触圧や力の分布をより滑らかに扱え、収束性が向上します。ただし計算コストは高くなります。Ansysの「MPC-based」や「Pure Penalty」も、アルゴリズムの選択肢として用意されており、問題に応じて切り替える必要があります。
自動増分ステップ制御で、接触が原因でステップが小さくなりすぎることがあります。ソルバーは何を基準に「難しい」と判断しているんですか?
主に二つの基準です。一つはニュートン反復の収束率。例えば、反復5回以内に残差力のノルムが規定値(デフォルトで0.5%など)に収束しない場合。もう一つは接触状態の急激な変化量です。Abaqus/Standardでは、1増分ステップ内で接触状態が変化する要素の割合が一定値(デフォルトで約30%)を超えると、ステップを半分に割って再計算します。これが繰り返されると、最小増分サイズ(例:1e-8)に達して解析が停止します。
実践ガイド
モデル設定のチェックリスト
接触解析を始める前に、確実に確認すべきモデリング上のポイントは何ですか?
まずは「初期貫通の排除」です。CADアセンブリの隙間(Clearance)や干渉(Interference)をチェックし、設計通りにすり合わせます。Ansys SpaceClaimやCATIAの「クリアランス解析」機能を使うと良い。次に「接触面のメッシュ整合性」。接触する面同士でメッシュサイズや位置が極端に違うと、力の伝達が不安定になります。経験則として、従属側メッシュは主側メッシュより1.5倍程度細かくするのが目安です。
初期接触状態を「調整」する機能がありますが、これは物理的に正しいんですか?
「調整」は数値的安定化のための便宜的な処置です。Abaqusの「Contact Interference Fit」やAnsysの「Offset」機能は、微小な初期貫通や隙間をゼロに「寄せる」ことで、ソルバーが最初から接触状態を正しく判定できるようにします。ただし、大きな干渉(例えば0.1mm以上)を無理やり調整すると、予期しない初期応力が発生するので注意。あくまでメッシュのわずかな不一致(1e-3倍メッシュサイズ程度)を解消するためのものです。
荷重や変位の負荷方法で、収束を改善するコツはありますか?
「段階的負荷」が基本です。例えば、ボルト締結部の解析では、まずボルト軸力だけを負荷して接触を確立させ、その後で横荷重を加えます。また、変位制御は力制御より収束性が良い場合が多い。理由は、ソルバーが変位を直接制御できるため、接触面が「逃げる」現象を防げるからです。Ansysの「安定化(Damping)」機能も、最初の数ステップで人工的な減衰を加えて振動を抑えるもので、実務でよく使われます。
接触剛性(ペナルティ剛性)の値は、どう決めればいいですか?
経験的には、接触面周辺の最も硬い部材のヤング率とメッシュサイズから見積もります。一つの目安は、
ソフトウェア比較
各ソルバーの接触処理特徴
Abaqus/StandardとAbaqus/Explicitでは、接触の扱い方の根本的な違いは何ですか?
/Standardは陰解法で、前述の通り反復による厳密な接触条件の満足を目指します。一方、/Explicitは陽解法で、各タイムステップで現在の幾何情報に基づき接触力を直接計算します。反復がないため、複雑な接触状態変化(例えば、多数のパーツがばらばらに衝突する問題)では収束性で圧倒的に優位です。ただし、安定なタイムステップが非常に小さくなるため、準静解析には質量スケーリングなどの工夫が必要です。自動車のクラッシュ解析ではExplicitが、ボルトの締結解析ではStandardが向いています。
Ansys Mechanicalの「Program Controlled」と「Augmented Lagrange」の選択基準は?
「Program Controlled」はソフトウェアが内部で判断しますが、多くの場合、デフォルトは「Pure Penalty」です。これは計算が高速ですが、貫通量を許容値内に抑えるために高い接触剛性が必要で、振動の原因になります。「Augmented Lagrange」は、ペナルティ項にラグランジュ乗数の修正を加え、許容貫通量を指定(デフォルト0.1%接触ツール厚さ)しながら接触剛性を低く抑えられます。収束性が向上するため、特に非線形材料や大変形を伴う接触では、最初からAugmented Lagrangeを選択する実務家が多いです。
COMSOLの「連続接触」と「接触ペア」の違いは、収束性にどう関わりますか?
「接触ペア」はAbaqusなどと同様の離散的な接触アルゴリズムです。「連続接触」は、ギャップ関数を滑らかな関数(例えば、ロジスティック関数)で近似し、接触条件を連続化・微分可能化します。これにより、ニュートン法の反復が非常に安定し、収束半径が広がります。その代わり、厳密な「接触/非接触」の境界がぼやけ、微小な貫通や引張りが常に発生するというトレードオフがあります。微細な機構の初期挙動を調べるには連続接触が有効ですが、最終的な接触圧分布を精密に評価するには接触ペアが必要です。
無償・低価格ソフト(CalculiX, Code_Aster)の接触解析能力は、商用ソフトと比べてどうですか?
基本的なアルゴリズム(ペナルティ法、サーフェス対サーフェス)は実装されています。CalculiX(Abaqus風の入力)やCode_Aster(Salome-Meca環境)でも、単純な面圧接触解析は可能です。しかし、収束性を高めるための「裏技」的な機能(Ansysの「安定化」、Abaqusの「自動接触安定化」)や、高度なサーチアルゴリズム、エラー発生時の詳細な診断メッセージが不足しています。そのため、難しい問題では、ユーザー自身がメッシュや負荷条件を細かく調整する必要があり、経験が求められます。商用ソフトは、これらの「知見」がブラックボックス化され、自動化されている部分が大きいです。
トラブルシューティング
エラーメッセージと具体的対策
「TOO MANY ATTEMPTS MADE FOR THIS INCREMENT」(Abaqus)というエラーが出ました。まず何を疑うべきですか?
これはニュートン反復がデフォルトの上限(通常16回)で収束しなかったエラーです。まず、.msgファイルや.datファイルを確認し、どの反復で残差が振動しているか、接触状態が頻繁に切り替わっているかを調べます。具体的な対策は、(1) 初期増分サイズをさらに小さくする(例:1e-3から1e-5へ)、(2) 接触剛性スケールファクター(ペナルティ剛性)をデフォルト1.0から0.1に下げてみる、(3) 接触定義を「小スライディング」から「有限スライディング」に変更する(大変形の場合)、などです。
「The solver was unable to find a solution. Contact penetration is too large.」(Ansys)と言われました。これは物理的に貫通しているということですか?
数値的に許容された貫通量を超えた、という意味です。Augmented Lagrange法では「許容貫通量」を設定しますが、接触剛性が低すぎるか、荷重が急激すぎて、この許容量を超える貫通が計算上発生した状態です。対策は、接触剛性(Normal Stiffness)を上げるか、「Interface Treatment」で「Adjust to Touch」を適用して初期状態を修正することです。また、メッシュが粗すぎて接触面の曲率を表現できておらず、局所的に深く貫通している可能性もあるので、接触領域のメッシュを細かくするのも有効です。
解析は最後まで回ったのですが、結果を見たら接触面が「チラついて」変な模様が出ています。これは収束失敗とは違いますか?
これは「接触振動」または「接触チャタリング」と呼ばれる現象で、一種の数値的不安定性です。増分ステップごとに接触状態(active/inactive)が1要素単位でコロコロ変わることで発生します。見かけ上収束していても、物理的に不自然な結果です。原因は、接触面同士のメッシュが非整合で、かつ接触剛性が高すぎる場合が多い。対策は、(1) メッシュを整合させる、(2) 「サーフェス対サーフェス」接触を使用する、(3) 接触剛性を少し下げる、(4) Abaqusなら「スムージング」オプションを適用する、などです。この現象は、接触圧の積分値(総力)はそれほど狂わないが、局部応力は信用できないので注意が必要です。
摩擦を入れたら全く収束しなくなりました。摩擦係数0.1でもダメなのはなぜですか?
摩擦係数の絶対値よりも、「スティック/スリップ」の判定が安定しないことが問題です。対策は体系的です。第一に、最初の数ステップは摩擦係数を0にして接触状態を確立させ、その後、*MODEL CHANGE(Abaqus)や分析設定の分離(Ansys)で摩擦を有効化する。第二に、摩擦剛性(Tangential Stiffness)をデフォルトより下げてみる(例えば0.01倍)。第三に、摩擦モデルを「弾性すべり」微少すべりモデルに変更し、厳密なクーロン摩擦の不連続性を和らげる。これらを試してもダメな場合は、その接触面で本質的な「スティック」状態が物理的に成立していない(すべり続ける)可能性を疑う必要があります。
関連トピック
なった
詳しく
報告