接触チャタリング(状態振動) — トラブルシューティング
トラブルシューティング手順
チャタリングが出たとき、具体的にどういう順番で調べていけばいいですか?
まず収束履歴を確認しよう。Abaqusなら.staファイル、Ansysならsolution.outでコンタクトの状態変化回数を追跡できる。
ステップ1:接触ペアの確認
どの接触ペアでチャタリングが発生しているか特定する。Abaqusでは.msgファイルにSEVERE DISCONTINUITYの発生箇所が記録される。AnsysではCNCHECKコマンドで接触ステータスを可視化できる。
特定のペアだけで起きていれば、そこを集中的に直せばいいってことですね。
ステップ2:メッシュ品質の確認
接触面のメッシュを確認する。以下をチェック:
- slave面の要素サイズがmaster面より細かいか
- 接触面に歪んだ要素がないか(アスペクト比 < 5:1)
- 節点が相手面の要素エッジ上に集中していないか
ステップ3:ペナルティ剛性の調整
Abaqusなら*SURFACE BEHAVIOR, PRESSURE-OVERCLOSURE=LINEARでペナルティ剛性を陽に指定する。AnsysならFKNを0.01から段階的に上げていく。Marc ならCONTACT TABLEのBIAS因子を調整する。
あまり下げすぎると貫通しちゃいませんか?
いい質問だ。ペナルティ剛性を下げると確かに接触面の貫通量(penetration)が増える。COPEN(接触開口量)やCPRESS(接触圧)をモニタリングして、貫通量が要素サイズの10%以下に収まっていることを確認しよう。
ステップ4:安定化ダンピングの導入
それでも解決しない場合は接触安定化を導入する。Abaqusでは:
```
*CONTACT CONTROLS, STABILIZE=0.001, TANGENTIAL FACTOR=0.001
```
Ansysでは:
```
STABILIZE,ON,ENERGY,0.001
```
0.001っていう値はどこから来るんですか?
経験的な初期値だ。大きすぎると結果に影響するし、小さすぎると安定化の効果がない。散逸エネルギーの割合を確認しながら調整する。散逸エネルギー比が1%以下なら結果への影響は無視できるレベルだ。
予防策
- 接触面のメッシュは相手面と同等以上の密度にする
- 初期接触状態を
*CONTACT PAIR, ADJUSTで事前に調整する - 荷重は小さなステップから段階的に増加させる
SMALL SLIDINGが適用できるケースでは有限すべりより安定する- Mortar法(Abaqus)やMPC法(Ansys)はnode-to-surface法よりチャタリングに強い
接触問題って地味だけど、実務では一番ハマりやすいところですよね。今後はまずメッシュを揃えるところから意識します。
トラブル解決の考え方
デバッグのイメージ
CAEのトラブルシューティングは「探偵の推理」に似ている。エラーメッセージ(証拠)を集め、状況(設定の変更履歴)を整理し、仮説(原因の推定)を立て、検証(設定の変更と再実行)を繰り返す。
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——接触チャタリング(状態振動)の問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
ソルバーエラーの原因特定に費やす時間は、もっと短くできるはず。 — Project NovaSolverはエラー診断体験の改善を研究テーマの一つとしています。
接触チャタリング(状態振動)の実務で感じる課題を教えてください
Project NovaSolverは、CAEエンジニアが日々直面する課題——セットアップの煩雑さ、計算コスト、結果の解釈——の解決を目指しています。あなたの実務経験が、より良いツール開発の原動力になります。
実務課題アンケートに回答する →