ペナルティ法による接触定式化
理論と物理
接触問題の基礎
先生、FEMの「接触問題」って何がそんなに難しいんですか?
接触問題は本質的に非線形だ。3つの理由がある:
1. 状態の変化 — 接触面が「接触/非接触」の二値。荷重で状態が変わる
2. 不等式拘束 — 貫通(penetration)が起きてはいけない:$g \geq 0$
3. 摩擦 — Coulomb摩擦は「固着/すべり」の状態変化を含む
不等式拘束…通常のFEMの等式拘束(SPC等)とは本質的に違うんですね。
通常のFEMは $[K]\{u\} = \{F\}$ の等式を解くが、接触は「$g \geq 0$ かつ $g \cdot p = 0$」というKKT条件(Karush-Kuhn-Tucker条件)を満たす必要がある。$g$ はギャップ、$p$ は接触圧。
ペナルティ法の原理
ペナルティ法は最もシンプルな接触処理手法。「貫通に比例する反力」を加える:
$k_p$ がペナルティ剛性(接触剛性)。$g_n$ が法線方向の貫通量。
接触面にバネを入れるイメージですね。
まさにそう。ペナルティ法は接触面に非常に硬いバネを配置する。貫通が起きると反力が発生し、貫通を押し戻す。
ペナルティ剛性の設定
ペナルティ剛性 $k_p$ の設定が結果を左右する:
- $k_p$ が大きすぎる → 条件数が悪化。収束困難
- $k_p$ が小さすぎる → 貫通量が過大。不正確
目安:$k_p \approx 10 \sim 100 \times E \cdot A / L$(接触面の剛性のオーダー)。多くのソルバーは自動計算。
自動計算に任せるのが安全ですか?
大部分のケースではそう。AbaqusやAnsysの自動ペナルティ剛性は良い出発点。問題が起きたときだけ手動調整する。
ペナルティ法の長所と短所
| 長所 | 短所 |
|---|---|
| 実装がシンプル | 貫通が完全にはゼロにならない |
| 追加DOFが不要 | ペナルティ剛性の設定が結果に影響 |
| 陽解法と相性が良い | 大きな$k_p$で条件数悪化 |
| 多くのソルバーのデフォルト | — |
「貫通がゼロにならない」のが最大の弱点ですか。
$k_p$ が有限である限り、微小な貫通は避けられない。貫通量が板厚の1%以下なら実用上問題ない。それ以上ならLagrange multiplier法を検討する。
まとめ
要点:
- 接触は不等式拘束の非線形問題 — 状態変化+摩擦
- ペナルティ法 = 接触面にバネ — $F = k_p \cdot g_n$
- $k_p$ の設定が鍵 — 大きすぎると収束困難、小さすぎると貫通過大
- 多くのソルバーが自動計算 — 手動調整は問題時のみ
- 貫通は完全ゼロにならない — 板厚の1%以下を目標
Courant1943年の罰則法
ペナルティ法の数学的起源はRichard Courantが1943年に発表した論文「Variational methods for the solution of problems of equilibrium and vibrations」にある。制約付き変分問題に大きな係数(ペナルティ)を乗じた項を追加して無制約問題に変換するアイデアは、当初は楕円型偏微分方程式の境界条件処理に使われ、1970年代にOden & Kim(1977)らが接触FEMへ体系的に応用した。
各項の物理的意味
- 慣性項(質量項):$\rho \ddot{u}$、つまり「質量×加速度」。急ブレーキで体が前に投げ出された経験はありませんか? あの「持っていかれる感じ」がまさに慣性力です。重い物体ほど動き出しにくく、動き出したら止まりにくい。地震で建物が揺れるのも、地面が急に動いたのに建物の質量が「置いていかれる」から。静解析ではこの項をゼロにしますが、それは「ゆっくり力をかけるから加速度は無視できる」という仮定です。衝撃荷重や振動問題では絶対に省略できません。
- 剛性項(弾性復元力):$Ku$ や $\nabla \cdot \sigma$。ばねを引っ張ると「戻ろうとする力」を感じますよね? あれがフックの法則 $F=kx$ であり、剛性項の本質です。では質問——鉄の棒とゴム紐、同じ力で引っ張るとどちらが伸びるでしょうか? 当然ゴムです。この「伸びにくさ」がヤング率 $E$ であり、剛性を決めます。よくある勘違い:「剛性が高い=強い」ではありません。剛性は「変形しにくさ」、強度は「壊れにくさ」で、別の概念です。
- 外力項(荷重項):体積力 $f_b$(重力など)と表面力 $f_s$(圧力、接触力など)。こう考えてみてください——橋の上のトラックの重さは「中身全体にかかる力」(体積力)、タイヤが路面を押す力は「表面だけにかかる力」(表面力)。風圧、水圧、ボルトの締付力…すべて外力です。ここでありがちな失敗:荷重の方向を間違える。「引張」のつもりが「圧縮」になっていた——笑い話に聞こえますが、3D空間で座標系が回転していると実際に起こります。
- 減衰項:レイリー減衰 $C\dot{u} = (\alpha M + \beta K)\dot{u}$。ギターの弦を弾いてみてください。音は鳴り続けますか? いいえ、徐々に小さくなりますよね。振動エネルギーが空気抵抗や弦の内部摩擦で熱に変わるからです。車のショックアブソーバーも同じ原理——わざと振動エネルギーを吸収して乗り心地を良くしています。もし減衰がゼロだったら? 建物は地震の後いつまでも揺れ続けることになります。実際にはそうならないので、適切な減衰の設定が重要です。
仮定条件と適用限界
次元解析と単位系
| 変数 | SI単位 | 注意点・換算メモ |
|---|---|---|
| 変位 $u$ | m(メートル) | mm入力時は荷重・弾性率もMPa/N系に統一すること |
| 応力 $\sigma$ | Pa(パスカル)= N/m² | MPa = 10⁶ Pa。降伏応力との比較時に単位系の不一致に注意 |
| 歪み $\varepsilon$ | 無次元(m/m) | 工学歪みと対数歪みの区別に注意(大変形時) |
| 弾性率 $E$ | Pa | 鋼: 約210 GPa、アルミ: 約70 GPa。温度依存性に注意 |
| 密度 $\rho$ | kg/m³ | mm系ではtonne/mm³(= 10⁻⁹ tonne/mm³ for 鋼) |
| 力 $F$ | N(ニュートン) | mm系ではN、m系ではNで統一 |
数値解法と実装
ペナルティ法の実装
ペナルティ法は各ソルバーでどう設定しますか?
Abaqus
```
*CONTACT PAIR, INTERACTION=contact_prop
slave_surface, master_surface
*SURFACE INTERACTION, NAME=contact_prop
*SURFACE BEHAVIOR, PENALTY
```
Abaqusのデフォルトはペナルティ法。*SURFACE BEHAVIOR, PENALTYで明示的に指定。
Nastran
```
BCTABLE, ...
BCPARA, CTYPE, UGLYPEN $ ペナルティ法
```
NastranのSOL 101/106/400で接触定義。
Ansys
```
MP, MU, cid, 0.3 ! 摩擦係数
KEYOPT, cid, 2, 1 ! ペナルティ法
```
またはWorkbenchのContact設定でFormulation=Penalty。
LS-DYNA
```
*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE
$ ペナルティ法がデフォルト
```
LS-DYNAの接触は全てペナルティ法ベース。陽解法で最も自然な手法。
接触の検出
ペナルティ法の手順(各反復で):
1. 接触検出 — マスター面の上でスレーブ節点の最近点を探索
2. ギャップ計算 — $g_n$ = スレーブ節点とマスター面の距離
3. 貫通判定 — $g_n < 0$ なら接触。反力 $F_n = k_p |g_n|$
4. 摩擦力計算 — $F_t = \mu F_n$(すべり)or 固着
5. 全体方程式に反映 — ペナルティ力を右辺に追加
接触検出が計算コストの大部分を占めるんですか?
大規模モデル(数十万の接触要素対)では接触検出が計算時間の30〜50%を占めることがある。Bucket sortやKD-treeなどの高速探索アルゴリズムが使われる。
まとめ
ペナルティ剛性の選択則
接触ペナルティ係数εの選択はペナルティ法の実用上の最重要課題だ。εが小さすぎると浸透量が許容値を超え、大きすぎると剛性行列の条件数が悪化して収束が遅くなる。LS-DYNAのデフォルト設定では、接触面の最小要素剛性k_e(=E×t×A)の0.1倍をεに自動設定する「SOFT=0」アルゴリズムが採用されており、異種材料接触(例:鋼-樹脂)では手動チューニングが推奨される。
線形要素(1次要素)
節点間を線形補間。計算コストは低いが、応力の精度が低い。せん断ロッキングに注意(低減積分やB-bar法で緩和)。
2次要素(中間節点付き)
曲線的な変形を表現可能。応力精度が大幅に向上するが、自由度は約2〜3倍に増加。推奨:応力評価が重要な場合。
完全積分 vs 低減積分
完全積分:過剰拘束(ロッキング)のリスク。低減積分:アワーグラスモード(零エネルギーモード)のリスク。適材適所で選択。
アダプティブメッシュ
誤差指標(ZZ推定量等)に基づく自動細分化。応力集中部の精度を効率的に向上。h法(要素分割)とp法(次数増加)がある。
ニュートン・ラフソン法
非線形解析の標準的手法。接線剛性マトリクスを毎反復更新。収束半径内で2次収束するが、計算コストが高い。
修正ニュートン・ラフソン法
接線剛性マトリクスを初期値または数反復毎に更新。各反復のコストは低いが、収束速度は線形的。
収束判定基準
力の残差ノルム: $||R|| / ||F_{ext}|| < \epsilon$(一般に $\epsilon = 10^{-3}$〜$10^{-6}$)。変位増分ノルム: $||\Delta u|| / ||u|| < \epsilon$。エネルギーノルム: $\Delta u \cdot R < \epsilon$
荷重増分法
全荷重を一度に負荷せず、小刻みに増加させる。弧長法(Riks法)は荷重-変位関係の極値点を越えて追跡可能。
直接法 vs 反復法のたとえ
直接法は「連立方程式を筆算で正確に解く」方法——確実だが大規模問題では時間がかかりすぎる。反復法は「当て推量を繰り返して正解に近づく」方法——最初は大雑把な答えだが、反復するたびに精度が上がる。辞書で言葉を探すとき、最初のページから順番に探す(直接法)より、見当をつけて開き、前後に調整する(反復法)方が効率的なのと同じ原理。
メッシュの次数と精度の関係
1次要素は「定規で曲線を近似する」——直線の折れ線で表現するため精度に限界がある。2次要素は「フレキシブルカーブ」——曲線的な変化を表現でき、同じメッシュ密度でも格段に精度が向上する。ただし、1要素あたりの計算コストは増えるため、トータルのコスト対効果で判断する。
実践ガイド
接触解析の実務
接触解析の実務でのポイントを教えてください。
マスター面とスレーブ面の選択
なぜ柔らかい側をスレーブにするんですか?
ペナルティ法ではスレーブ節点がマスター面に貫通しないように制御する。硬い面をスレーブにすると、柔らかいマスター面に「刺さって」しまう。逆にすればマスター面が硬いから「刺さりにくい」。
接触面のメッシュ
収束のコツ
接触解析の収束を改善する方法:
1. 初期ギャップをゼロに — 最初から接触している状態で始める
2. 荷重を段階的に — 初期増分を小さく
3. 接触安定化 — Abaqusの*CONTACT STABILIZATION
4. ペナルティ剛性の調整 — 自動から手動に変更
5. 摩擦を段階的に導入 — まず$\mu=0$で接触を確立、次に摩擦を追加
実務チェックリスト
「貫通量の確認」がペナルティ法の最重要チェックですね。
貫通が大きすぎれば接触圧が不正確。全接触面の貫通量をポストプロセッサで確認すること。
ヘルメット衝撃解析
バイク用ヘルメットの安全基準ECE 22.06(2020年)では、斜面衝突時の脳加速度(HIC値)をCAEで評価することが認められており、EPS(発泡スチロール)ライナーと繊維強化シェルの接触にペナルティ法が広く使われる。Shoei社の公開データでは、ABAQUS Explicitのペナルティ接触を用いたHIC解析が実測値の±12%以内を達成しており、2022年以降の新製品認証に活用されている。
解析フローのたとえ
解析の流れは、実は料理とそっくりです。まず材料を買い出し(CADモデルの準備)、下ごしらえをして(メッシュ生成)、火にかけて(ソルバー実行)、最後に盛り付ける(後処理で可視化)。ここで大事な問いかけ——料理で一番失敗しやすい工程はどこでしょう? 実は「下ごしらえ」なんです。メッシュの品質が悪いと、どんなに優秀なソルバーを使っても結果はめちゃくちゃになります。
初心者が陥りやすい落とし穴
あなたはメッシュ収束性を確認していますか? 「計算が回った=結果が正しい」と思っていませんか? これ、実はCAE初心者が最も陥りやすい罠です。ソルバーは与えられたメッシュで「それなりの答え」を必ず返します。でもメッシュが粗すぎれば、その答えは現実から大きくずれている。最低3段階のメッシュ密度で結果が安定することを確認する——これを怠ると「コンピュータが出した答えだから正しいはず」という危険な思い込みに陥ります。
境界条件の考え方
境界条件の設定は、試験の「問題文を書く」のと同じです。問題文が間違っていたら? どんなに正確に計算しても答えは間違いますよね。「この面は本当に完全固定なのか」「この荷重は本当に一様分布なのか」——現実の拘束条件を正しくモデル化することが、実は解析全体で最も重要なステップだったりします。
ソフトウェア比較
接触のソルバー比較
AnsysはAugmented Lagrangianが推奨なんですか?
AnsysのデフォルトはAugmented Lagrangian。ペナルティ法+反復的な貫通修正で、純粋なペナルティ法より貫通が小さい。Abaqusのデフォルトもペナルティだが、KINEMATIC(Lagrange multiplier)も広く使われる。
選定ガイド
LS-DYNAペナルティ法の歴史
John Hallquistが1976年にLLNLで開発したDYNA2Dから始まるLS-DYNAの接触実装は、当初はシンプルなノード-サーフェス型ペナルティ法だった。1989年のLS-DYNA3D V900でsegment-to-segment接触が追加され、より正確な面圧分布評価が可能になった。現行R15版では1解析モデルに最大10,000の接触定義を許容しており、自動車フルビークルクラッシュモデルでも使い切れない規模だ。
選定で最も重要な3つの問い
- 「何を解くか」:ペナルティ法による接触定式化に必要な物理モデル・要素タイプが対応しているか。例えば、流体ではLES対応の有無、構造では接触・大変形の対応能力が差になる。
- 「誰が使うか」:初心者チームならGUIが充実したツール、経験者ならスクリプト駆動の柔軟なツールが適する。自動車のAT車(GUI)とMT車(スクリプト)の違いに似ている。
- 「どこまで拡張するか」:将来の解析規模拡大(HPC対応)、他部門への展開、他ツールとの連携を見据えた選択が長期的なコスト削減につながる。
先端技術
Mortar法
Mortar法はペナルティ法の弱点(メッシュ依存性、貫通)を克服する最新の接触手法。接触条件を弱形式(積分形式)で課し、メッシュの非適合に強い。AbaqusのSURFACE TO SURFACE接触がMortarベース。
IGA接触
等幾何解析(IGA)のNURBS基底で接触面を記述。曲面の接触が滑らかで、通常のFEMのメッシュ依存の接触圧振動がない。
摩擦の微視的モデル
表面の微視的な粗さをモデル化して摩擦係数を「予測」する研究。マルチスケール接触力学。
まとめ
GPUペナルティ接触の高速化
2020年以降、ペナルティ接触の浸透検出と力計算をGPUで並列実行するアーキテクチャが実用段階に入っている。Ansys LS-DYNA GPU版(2022年リリース)では、バケットソートによる近傍探索をCUDAカーネルで実装し、100万要素規模の自動車クラッシュ解析でCPU比最大8倍の高速化を達成している。GPU接触の精度はCPU版との差異0.1%以内が公式に保証されている。
トラブルシューティング
接触解析のトラブル
接触解析でよくあるトラブルを教えてください。
収束しない
接触解析の収束困難は最も一般的なトラブル。対策:
1. 初期増分を小さく(0.1→0.01→0.001)
2. 接触安定化を使用(*CONTACT STABILIZATION)
3. 初期ギャップを除去(最初から接触状態に)
4. 摩擦を段階的に導入($\mu=0$→$\mu=0.1$→$\mu=0.3$)
5. ペナルティ剛性を下げる(貫通は増えるが収束しやすい)
貫通量が大きい
ペナルティ剛性が小さすぎる。$k_p$を上げるか、Augmented Lagrangian法に切り替え。
接触圧にチェッカーボードパターン
1次要素(TET4, HEX8完全積分)の接触面で圧力が振動する。C3D10M(Abaqus)に切り替えるか、二次要素の低減積分を使う。
スレーブがマスターに食い込む
マスター/スレーブの選択が逆。「硬い側=マスター」の原則を確認。
まとめ
エネルギー誤差と砂時計
ペナルティ接触解析での典型的な失敗として「hourglass(砂時計)エネルギーの過大」がある。低次縮減積分要素とペナルティ接触を組み合わせると、接触力がhourglass変形を刺激し数値的に発散するケースがある。2008年のLivermore Software社のベンチマーク報告では、ERODED_SINGLE_SURFACE接触でhourglassエネルギーが全変形エネルギーの15%を超えると結果信頼性が著しく低下することが示され、hourglassコントロールの強化か接触定式化の変更が勧告された。
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——ペナルティ法による接触定式化の問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
関連トピック
なった
詳しく
報告