剛体運動による接触不安定
剛体運動による接触不安定とは
先生、接触解析で「rigid body motion detected」っていうエラーが出ます。拘束条件はちゃんと設定してるはずなんですが…
理論と物理
剛体運動モードと接触拘束
「剛体運動による接触不安定」というエラーは、具体的にどういう物理的な状態を指しているんですか?
良い質問だ。これは、接触している物体が、接触面に垂直な方向以外の自由度で拘束されていない状態を指す。例えば、平らな床の上に置かれたブロックが、摩擦なしで横方向に自由に動ける状態だ。数値的には、全体剛性マトリクス
摩擦があれば解決するんですか?理論的な摩擦モデルはどう扱われるんですか?
摩擦を導入すれば、接線方向の剛性が生まれるので、多くの場合解決する。しかし、数値解析ではクーロン摩擦モデルが一般的で、滑りが始まる限界せん断力
接触面が完全に垂直じゃない、例えば5度傾いた面に物体が載っている場合は?
それでも不安定になる可能性はある。重力のような体積力が働く場合、その力のベクトルを接触面の法線方向と接線方向に分解する。接線方向成分
数値解法と実装
接触アルゴリズムとソルバー設定
ソフトウェアは、どうやって「剛体運動が可能か」を計算の最初で判断しているんですか?
直接法ソルバー(Abaqus/Standardのデフォルト)では、最初の反復で接触状態を仮定し、全体剛性マトリクスを組み立てる。そのマトリクスの特異性を、例えばLDLT分解の過程でピボットが極端に小さくなる(1e-12以下など)ことで検出する。反復法ソルバー(Ansys MechanicalのPCGなど)では、収束しないことで間接的に検出される。
「ペナルティ法」と「ラグランジュ乗数法」では、この問題へのアプローチが違うと聞きました。具体的な違いは?
その通りだ。ペナルティ法では、接触条件
「自動安定化」という機能でこのエラーが解消されるときがありますが、裏で何をしているんですか?
AnsysやAbaqusの「Automatic stabilization」は、仮想的なダンパーをシステムに追加する。具体的には、節点速度に比例する減衰力
実践ガイド
モデル設定のチェックリスト
このエラーが出たとき、最初に確認すべきモデル上のポイントは何ですか?
実務では以下の順で確認する。1) すべての接触ペアが正しく定義されているか(特に、3Dで見落としがちな側面)。2) 摩擦係数の設定(μ=0は赤信号)。3) 境界条件:接触面以外のどこかで、剛体運動を抑制するディスプレイスメント固定や遠ばねがあるか。4) 荷重の方向が、拘束されていない自由度を励振していないか。
「遠ばね」を使う具体的な設定を教えてください。剛性はどう決めれば?
COMSOLで「弱拘束」として、またはAbaqusで「Spring」要素として追加する。剛体運動を抑えたい節点に、剛性の低いバネを接続する。目安は、モデルの中で最も柔らかい構造部品の剛性の1/100から1/1000にする。例えば、板バネの曲げ剛性が1e3 N/mmなら、遠ばねは1〜10 N/mmに設定する。影響を最小限に抑えるため、反力モニタでそのバネの反力を確認し、無視できる程度(全体の0.1%以下)であることを確認せよ。
接触の初期嵌合を「Adjust」機能で調整する場合、どのくらいの距離まで許容できますか?
これは重要な設定だ。Ansysの「Adjust to Touch」やAbaqusの「Contact Adjustment」では、指定した許容値(デフォルトでモデル全体サイズの0.1%程度)以内の隙間または貫入を自動で修正する。しかし、これを大きすぎる値(例えば1mm)にすると、意図しない初期接触状態を作り、実際の剛体運動を隠してしまう。部品のクリアランスが明確な場合は、その値(例:JIS B 0401のすきまばめH7/g6で数十μm)を参考に、それより少し大きい値に設定するのが安全だ。
ソフトウェア比較
各ソルバーの挙動と対策
Ansys MechanicalとAbaqus/Standardで、このエラーへの対処法に違いはありますか?
挙動と推奨対策に違いがある。Ansys Mechanical(デフォルトソルバーは反復法のPCG)は、剛体運動があると収束せずに「Solution is not converging」で停止する傾向がある。「Weak Springs」オンの自動挿入が有効だ。一方、Abaqus/Standard(直接法ソルバー)は「Too many attempts made for this increment」や「Zero pivot」という明確なエラーメッセージを出す。こちらは「Stabilization」タブで減衰係数を定義するか、接触制御で「Automatic stabilization」を有効にするのが第一歩だ。
無料・オープンソースのCode_AsterやCalculiXではどうですか?
Code_Asterでは、接触に「CONTACT」コマンドを使うが、剛体運動があると計算が停止する。対策として「LIAISON_SOLIDE」という剛体リンク要素で仮想的な地面とつなぐ方法がマニュアルに記載されている。CalculiX(Abaqusと似た入力形式)では、「*CONTACT PAIR」で「STABILIZE」パラメータを指定できる。しかし、商用ソフトに比べて自動検出と修正の機能は限定的で、ユーザーがモデルの物理的な拘束不足を自分で見つけて修正する必要がより強い。
非線形ソルバーの「ニュートン・ラフソン法」が収束しないのと、この剛体運動エラーは関係ありますか?
大いに関係ある。ニュートン・ラフソン法は、各反復で接線剛性マトリクス
トラブルシューティング
エラーメッセージ別対策
Abaqusで「ZERO PIVOT」エラーが出ました。メッセージに出力される節点番号を確認したら、接触面の節点でした。どう解釈すれば?
それは典型的なケースだ。「ZERO PIVOT」は、その節点の特定の自由度(メッセージにDOFが表示される)に対して、剛性マトリクスの対角項が実質ゼロであることを意味する。接触面の節点で、かつDOFが接線方向(1,2,または3)を示していれば、摩擦なし接触でその方向の剛性がゼロである証拠だ。まずは摩擦係数を現実的な値(金属同士ならμ=0.1〜0.3)に設定し、再計算せよ。
自動安定化を有効にしたら計算は進みましたが、結果の反力が以前と比べて異常に大きくなりました。これはなぜですか?
それは安定化の減衰係数が大きすぎるサインだ。仮想ダンパーが発生する力
動解析(Explicit)に切り替えれば、この問題は回避できますか?
理論的には回避できる。Abaqus/ExplicitやLS-DYNAのような動的陽解法は、質量マトリクス
関連トピック
なった
詳しく
報告