接触チャタリング(状態振動)
接触チャタリングとは
先生、解析を回したら「contact chattering」って警告が大量に出て、全然収束しないんです…
接触チャタリングは、接触状態が反復ごとに開→閉→開→閉と振動する現象だよ。Newton-Raphson反復の中で、ある節点が「接触している」と判定された次の反復で「離れている」と判定され、それが延々と繰り返される。
なるほど、接触の判定が安定しないってことですね。どんなときに起きやすいんですか?
フラットな面同士の接触や、荷重が接触面に対して浅い角度で作用するケースで起きやすい。ペナルティ剛性が高すぎる場合にも発生するよ。
エラーメッセージと対策
Abaqus
メッセージ: ***WARNING: TOO MANY SEVERE DISCONTINUITY ITERATIONS. CHATTERING WILL BE TOLERATED
Abaqusでは*CONTACT CONTROLS, STABILIZEで接触安定化を有効にする。安定化の値は通常、接触剛性の1/1000程度から始めて調整する。増分サイズを小さくすることも効果的だ。
STABILIZEって、人工的な減衰を入れるってことですよね?
その通り。散逸エネルギー(ALLSD)が全体のひずみエネルギー(ALLSE)の5%以下であることを確認すれば、結果への影響は許容範囲内だ。
Nastran(SOL 400)
メッセージ: *** USER WARNING MESSAGE 7801 (NLITER): CONTACT STATUS CHANGED FOR N NODES
NastranではPARAM,CNTSTB(接触安定化)やBCTPARAのFRICパラメータの調整で対処する。BCTPARA,ERRORLMTで許容する接触状態変化回数を設定できる。
Ansys Mechanical
メッセージ: WARNING CP = xx.xxx TIME= xx:xx:xx Contact status is oscillating between OPEN and CLOSED for contact element xxxx
AnsysではSTABILIZEコマンド、またはFKN(法線方向ペナルティ剛性係数)をデフォルトの1.0から0.01〜0.1に下げる。PINBALL半径を大きくして接触検出範囲を広げることも有効だ。
OpenFOAM(固体接触)
OpenFOAMのsolidMechanicsモジュールではcontactOscillationDampingをtrueに設定し、dampingFactorを0.1〜0.5で調整する。
ソルバーごとに対策の名前は違うけど、やってることは似てるんですね。安定化ダンピングを入れるか、ペナルティ剛性を下げるか。
そうだね。もう一つ重要なのは、接触面のメッシュを揃えることだ。master面とslave面のメッシュサイズが大きく異なると、チャタリングの原因になる。理想的にはslave面のメッシュをmaster面より細かくする。
ソルバーエラーの原因特定に費やす時間は、もっと短くできるはず。 — Project NovaSolverはエラー診断体験の改善を研究テーマの一つとしています。
Project NovaSolver — CAE実務の課題に向き合う研究開発
「接触チャタリング(状態振動)をもっと効率的に解析できないか?」——私たちは実務者の声に耳を傾け、既存ワークフローの改善を目指す次世代CAEプロジェクトに取り組んでいます。具体的な機能はまだ公開前ですが、開発の進捗をお届けします。
進捗通知を受け取る →