FEMモデルレビューチェックリスト
理論と物理
概要 — なぜチェックリストが必要か
モデルレビューチェックリストって具体的に何をチェックするんですか? 解析を実行する前に見るものですよね?
そうだ。FEMモデルの品質保証で、解析実行前にメッシュ品質、境界条件、材料特性、荷重条件を体系的に確認するためのリストだよ。NASAの「FEM Best Practices」(NASA-STD-5002A)では35項目のチェックリストが規定されていて、航空宇宙の構造解析では必ずこれを通す。
35項目もあるんですか! でも自分のチームでそこまで厳密にやってるところ、あまり聞かないですけど…
残念ながら、多くの現場では「メッシュを切ってソルバーに投げて、収束したらOK」になりがちだ。でも実際には、収束した=正しい結果ではない。例えば自動車の衝突シミュレーションで、ボルト接合をTied Contactで近似したのに検証しないまま進めて、実機試験と全く合わないケースは珍しくない。
自分のチームでも最低限のチェックリストを作って、レビュー者のサインオフを必須にするのがベストプラクティスだ。解析者本人ではなく、別のエンジニアがレビューすることで、思い込みによるミスを防げる。
なるほど、ダブルチェック体制が大事なんですね。具体的にはどんな項目を見ればいいんですか?
大きく分けて6つのカテゴリがある:
- メッシュ品質チェック — アスペクト比、スキューネス、ヤコビアンなどの指標
- 境界条件の検証(BC Verification) — 拘束の妥当性、過拘束の有無
- 材料特性の検証 — ヤング率・ポアソン比の値と単位系の整合性
- 荷重条件のレビュー — 荷重ケースの網羅性、荷重値の根拠
- Free-Freeモードチェック — 拘束なしモーダル解析で接続性を検証
- 反力バランスチェック — $\sum F = 0$、$\sum M = 0$ の確認
チェックリストの数理的基盤
チェックリストって「手順書」みたいなイメージですけど、数式も関係するんですか?
もちろん。チェック項目の多くは定量的な判定基準を持っている。例えば反力バランスチェックは、次の式で評価する:
この $\varepsilon_{bc}$ が 0.1%以下であることが一般的な合格基準だ。さらに、モーメントの釣り合いも確認する:
力とモーメントの両方を確認しないとダメなんですね。力だけ合っててもモーメントがずれてたら意味がないと。
その通り。例えば片持ち梁の先端に集中荷重 $P$ をかけた場合、固定端の反力は $R_y = P$(力の釣り合い)、反モーメントは $M = P \cdot L$(モーメントの釣り合い)になるはずだ。FEMの出力でこれを確認する。もし値がずれていたら、どこかに境界条件の設定ミスか、荷重の定義漏れがある。
メッシュ品質については、全体剛性方程式:
この剛性マトリクス $[K]$ は各要素の剛性マトリクス $K_e$ を組み立てたものだ。要素剛性は数値積分で計算される:
ここで $|J(\xi_g)|$ はヤコビアン行列式だ。要素が歪むとヤコビアンが劣化し、積分精度が落ちる。だからメッシュ品質チェックでヤコビアン比を確認するんだ。負のヤコビアンが出たら、その要素は反転していて物理的に意味をなさない。
あー、数式の背景を知ると、なぜ「アスペクト比5以下」とかの基準があるのか納得できますね。単なる経験則じゃなくて、数値積分の精度に直結してるんだ。
NASAの品質保証体系
NASAのチェックリストってどんな内容なんですか? 全部で35項目って言ってましたよね。
NASA-STD-5002A「Structural Analysis and Test Requirements」と、その補足ドキュメントNASA-HDBK-5014に詳しい。主な項目をカテゴリ別にまとめるとこうなる:
| カテゴリ | チェック項目(代表例) | 項目数 |
|---|---|---|
| 形状忠実度 | CADとの形状差分、簡略化の妥当性記録 | 4 |
| メッシュ品質 | アスペクト比、スキューネス、ヤコビアン、接続性 | 7 |
| 材料特性 | ヤング率/ポアソン比の出典、温度依存性、単位系 | 5 |
| 境界条件 | 拘束DOF数、対称条件、接触定義 | 6 |
| 荷重条件 | 荷重ケース網羅性、安全率の適用 | 5 |
| 解析実行 | 収束判定基準、ソルバー警告の確認 | 4 |
| 結果検証 | 反力バランス、エネルギーバランス、Free-Freeチェック | 4 |
すごい体系的ですね。航空宇宙以外の分野でも使えますか?
もちろん。自動車、原子力、医療機器の各業界でも、NASAのフレームワークを参考に独自のチェックリストを作っているところが多い。例えば自動車ではEuro NCAPの衝突解析ガイドラインで類似の要求がある。ポイントは「自分たちの解析でどこが一番リスクが高いか」を特定して、そこに重点を置いたチェックリストを作ることだ。
反力バランス式の物理的意味
- $\sum R_{reaction}$(反力合計):全拘束点で計算された反力の総和。拘束面のないDOFでは反力はゼロ。ソルバーの出力ファイル(.f06, .sta, .rst等)から直接取得可能。
- $\sum F_{applied}$(印加荷重合計):ユーザーが定義した全荷重の総和。分布荷重の場合は積分値として計算。重力を含む場合は総質量 $\times g$ を加算。
- $\varepsilon_{bc}$(バランス誤差):この値が大きい場合、境界条件の定義漏れ、荷重の作用面の指定ミス、または数値的なエラーを示唆する。
ヤコビアンと要素品質の関係
- ヤコビアン行列式 $|J|$ はアイソパラメトリック写像の局所的な「歪み度」を表す。正方形→正方形の写像では $|J| = $ 一定(理想値)
- $|J| \leq 0$ の要素は「反転要素」であり、物理的に非意味。多くのソルバーは解析前にエラーとして検出する
- $|J|$ の最小/最大比(ヤコビアン比)が0.3以下の場合、精度劣化が顕著。六面体要素では0.5以上を推奨
数値解法と実装
メッシュ品質チェック
メッシュ品質のチェックって、具体的にはどの指標をどの基準で見ればいいんですか? ソフトによって出てくる指標がバラバラで困ってます。
主要な品質指標は5つある。これはソルバーに関係なく共通だ:
| 指標 | 定義 | 理想値 | 合格基準 | NGだとどうなる |
|---|---|---|---|---|
| アスペクト比 | 最長辺/最短辺 | 1.0 | < 5.0 | 応力精度の低下、特に曲げ問題 |
| ヤコビアン比 | $|J|_{min} / |J|_{max}$ | 1.0 | > 0.3 | 積分精度劣化、負なら反転要素 |
| ワーピング角 | 面の非平面度 | 0° | < 15° | シェル要素の剛性評価誤り |
| スキューネス | 内角の理想角からの偏差 | 0 | < 0.7 | 収束性の悪化 |
| テーパー比 | 対辺の長さ比の偏差 | 0 | < 0.5 | 応力分布の歪み |
全部の要素が基準を満たす必要がありますか? 複雑な形状だと一部は基準を超えちゃいそうですが…
いい質問だ。現実的には 99%以上の要素が基準を満たしていることが目安。NG要素が存在する場合は、その要素が注目領域(応力集中部、破壊判定領域)にないことを確認する。応力をレポートする領域にNG要素があったら、その結果は信用できない。
実務では「品質ヒストグラム」を出力して、分布を確認するのが定石だ。HypermeshならQuality Indexパネル、AnsysならMesh Metricsで一発で見られる。
境界条件の検証(BC Verification)
境界条件のチェックって、「ここを固定しました」って見ればわかる気がするんですけど、何をそんなに確認するんですか?
境界条件はFEM解析で最もミスが多い箇所だ。以下を必ず確認する:
- 過拘束の有無:静定問題の3D固体なら拘束は6DOF(3並進+3回転)が基本。それ以上に拘束すると人工的な応力が発生する
- 拘束の位置と方向:ボルト穴の内面を固定すべきところで外面を固定していないか、円筒座標系の設定は正しいか
- 対称条件の妥当性:対称面上の面外変位を拘束しているか、反対称荷重では反対称BCになっているか
- 接触定義の妥当性:Tied/Bonded接触のマスター・スレーブ面の選択、摩擦係数の設定
過拘束って、多く固定すればするほど安全側な気がしますけど、ダメなんですか?
それはよくある誤解だ。過拘束すると構造が本来持つ変形を阻害して、現実には存在しない応力が計算される。例えば熱膨張する配管の両端を全DOF固定すると、実際にはフランジが滑る部分に巨大な仮想応力が出てしまう。結果として「危険」と判定されるけど、実際は全く問題ない — これは偽陽性であり、設計判断を狂わせる。
Free-Freeモードチェック
Free-Freeモードチェックって何ですか? 「フリーフリー」って拘束なしってことですよね? なんでわざわざ拘束を外すんですか?
まさにその通り。境界条件を一切与えずにモーダル解析(固有値解析)を行うテストだ。目的は3つある:
- モデルの接続性検証:全てのパーツが正しく結合されていれば、剛体モードは6個(3並進+3回転)のみ。7個以上出たら、どこかのパーツが浮いている(接続漏れ)
- 剛体モード周波数の確認:6つの剛体モードの固有振動数は理論上ゼロ。FEMでは数値誤差で完全にゼロにはならないが、$f_{rigid} < 0.01\,\text{Hz}$ が目安。1Hz以上あったら問題
- 質量の妥当性確認:Free-Freeの7番目以降の弾性モード形状を見て、物理的に妥当な変形パターンか確認する
え、剛体モードが7個出たら接続漏れ? 実際にそれで助かったケースってあるんですか?
実務ではしょっちゅうだよ。特にアセンブリモデルで部品が100個以上あるような場合、Tied Contactの定義漏れが1箇所でもあると、その部品だけ宙に浮く。静解析では「特異マトリクス」エラーで止まるけど、荷重ケースによってはたまたま収束してしまうこともある。Free-Freeチェックはそういう「静かな不具合」を事前に炙り出す、非常に強力な手法だ。
やり方は簡単。NastranならSOL 103でSPC指定なし、Abaqusなら*FREQUENCYステップでBC無し。計算コストも通常の解析の10分の1以下で済む。
実践ガイド
材料特性の検証
材料特性のチェックって、ヤング率とポアソン比を入力するだけじゃないんですか? MILハンドブックの値をそのまま使えばいいと思ってたんですけど…
値そのものより単位系の整合性が一番怖い。実務で最も多い致命的ミスは「ヤング率の単位を間違える」ことだ。例えば:
| 単位系 | ヤング率(鋼) | 密度(鋼) | よくあるミス |
|---|---|---|---|
| SI (m, kg, s, Pa) | 2.1 × 1011 Pa | 7850 kg/m³ | GPaのまま入力 → 1000倍ズレ |
| mm, t, s, MPa | 2.1 × 105 MPa | 7.85 × 10-9 t/mm³ | 密度をkg/m³のまま入力 |
| mm, kg, ms (衝突) | 210 GPa → 210 kN/mm² | 7.85 × 10-6 kg/mm³ | 時間単位msを忘れる |
うわ、mm-t-s系の密度、めちゃくちゃ小さい数値ですね。これ間違えたらどうなるんですか?
密度を間違えると慣性力・重力荷重・固有振動数が全部狂う。静解析で重力なしなら気づかないこともあるが、動解析やモーダル解析では結果が桁違いにおかしくなる。チェックリストでは以下を確認する:
- 入力した材料特性の出典を記録(ハンドブック名、試験報告書番号)
- モデル全体の総質量を計算し、実物の重量と比較(誤差2%以内が目安)
- 温度依存性がある場合、使用温度範囲でのデータが正しく入力されているか
- 複合材料の場合、積層順序と繊維配向角が設計図面と一致しているか
荷重条件のレビュー
荷重条件のレビューって、荷重の値を確認するだけですよね?
値だけじゃない。荷重のレビューでは5つのWを確認する:
- What(何を):荷重の種類 — 集中荷重、分布荷重、圧力、重力、熱荷重、強制変位
- Where(どこに):荷重の作用面・作用点 — 正しい節点セット/面セットに適用されているか
- Which direction(どの方向に):座標系の向き — グローバル座標系かローカル座標系か
- When(いつ):荷重の時間履歴 — ステップ順序、ランプ関数、突入荷重の立ち上がり時間
- Why(なぜその値か):荷重の根拠 — 設計基準書、試験データ、安全率の適用
「Why」まで確認するんですか? 荷重値は設計部門からもらうだけだと思ってました。
設計部門からの荷重仕様書を鵜呑みにしないのがプロの姿勢だ。例えば「10kNの荷重をかけてください」と言われたとき、それが極限荷重(UL)なのか制限荷重(LL)なのかで安全率の適用が変わる。航空宇宙では UL = LL × 1.5 が標準だが、「10kNが極限荷重で、安全率はすでに含まれている」のか「10kNは制限荷重で、解析側で1.5をかける」のかで結果が50%も変わる。
反力バランスチェック
反力バランスの具体的なチェック手順を教えてください。実際にどうやればいいですか?
手順はシンプルだけど、多くの人がサボるところだ:
- 解析を実行する
- 全拘束点の反力を合算する(X, Y, Z各方向とモーメント3方向)
- 全印加荷重を合算する(重力を含めて)
- 両者を比較する:$\varepsilon_{bc} < 0.1\%$ であることを確認
ソルバー別の確認方法:
| ソルバー | 反力出力の確認方法 |
|---|---|
| Nastran | .f06ファイルの OLOAD RESULTANT と SPCFORCE RESULTANT を比較 |
| Abaqus | History Outputの RF1, RF2, RF3 を拘束セットで合計。または .dat ファイルの反力出力 |
| Ansys Mechanical | Force Reaction プローブを拘束面に追加して出力 |
| Ansys APDL | PRRSOL コマンドで反力の合計を出力 |
Nastranの OLOAD RESULTANT って見たことある! あれってそういう使い方だったんですね。いつもスキップしてました…
.f06の最も重要な情報が集まっている部分だ。ここを見れば、荷重の漏れ、拘束の過不足が一発でわかる。チームのチェックリストには「.f06のRESULTANT確認」を必須項目にしておくべきだ。
レビュー運用フロー
チェックリストがあっても、結局使われないと意味ないですよね。チームでどう運用すればいいですか?
運用のポイントは3つだ:
- セルフチェック → ピアレビューの2段階制:まず解析者自身がチェックリストを埋める。次に別のエンジニアがレビューして署名する。自分のミスは自分では見つけにくいからだ
- チェックリストのテンプレート化:ExcelやConfluenceでテンプレートを作り、プロジェクトごとにコピーして使う。ゼロから毎回作ると面倒で省略されがち
- 解析報告書にチェックリストを添付:チェック結果をレポートの付録にする。将来トレーサビリティが必要になったとき(不具合調査、規格監査など)に証跡になる
実務用チェックリスト(簡易版20項目)
NASAの35項目をベースに、一般的な構造解析で最低限確認すべき20項目をまとめた。各項目を確認してレビュー者がサインオフする運用を推奨。
| # | カテゴリ | チェック項目 | 判定基準 |
|---|---|---|---|
| 1 | 形状 | CADからの簡略化箇所を記録したか | 記録あり |
| 2 | 形状 | 板厚・断面寸法は図面と一致しているか | 誤差<1% |
| 3 | メッシュ | アスペクト比が全要素で基準以下か | <5.0(99%以上) |
| 4 | メッシュ | ヤコビアン比が正であるか | >0.3(全要素) |
| 5 | メッシュ | 応力集中部に十分なメッシュ密度があるか | 最低3層以上 |
| 6 | メッシュ | メッシュ収束性を3水準で確認したか | 収束誤差<5% |
| 7 | 材料 | ヤング率の単位がモデルの単位系と一致しているか | 一致 |
| 8 | 材料 | 密度の値から計算した総質量が実物と合うか | 誤差<2% |
| 9 | 材料 | 材料特性の出典を記録したか | 出典明記 |
| 10 | BC | 拘束DOFは物理的に妥当か(過拘束でないか) | 妥当 |
| 11 | BC | 対称条件の適用は正しいか | 正しい |
| 12 | BC | 接触定義(Tied等)のマスタ/スレーブは正しいか | 正しい |
| 13 | 荷重 | 荷重値の根拠が明確か(仕様書番号等) | 根拠明記 |
| 14 | 荷重 | 荷重の作用面/作用点は正しい位置か | 正しい |
| 15 | 荷重 | 重力荷重の方向と大きさは正しいか | 正しい |
| 16 | 検証 | Free-Freeモードで剛体モードが6個か | 6個 |
| 17 | 検証 | 剛体モード周波数が0.01Hz以下か | <0.01Hz |
| 18 | 検証 | 反力合計と荷重合計のバランスは合うか | 誤差<0.1% |
| 19 | 検証 | 変位・応力のオーダーが物理的に妥当か | 妥当 |
| 20 | 検証 | ソルバーの警告メッセージを確認したか | 警告なし or 既知 |
初心者が陥りやすい落とし穴
最も多い致命的なミスは「収束した=正しい」と思い込むこと。ソルバーが正常終了しても、境界条件が間違っていれば結果は全くの偽物だ。コンター図が「きれいに見える」ことと「物理的に正しい」ことは全く別の話。必ず反力バランスと変位のオーダー確認を行うこと。
チェックリストは「面倒な作業」ではなく「保険」
航空機事故調査で「プリフライトチェックリストを省略した」が原因として挙がるのと同じで、FEM解析でもチェックリストの省略は将来の設計不具合に直結する。チェックリストに5分使えば、手戻り数日を防げる。
ソフトウェア比較
ソルバー別チェック機能
各ソルバーで自動的にチェックしてくれる機能ってあるんですか? 全部手動だと大変ですよね。
主要なソルバーとプリプロセッサには、モデルチェック機能が組み込まれている:
| ツール | 自動チェック機能 | 出力先 |
|---|---|---|
| Nastran | GROUNDCHECK(剛体変位チェック)、WEIGHTCHECK(質量チェック)、ELQUALITY(要素品質) | .f06ファイル |
| Abaqus | *MODEL CHANGE(非アクティブ要素検出)、Data Check解析(実行前検証)、Element Quality警告 | .dat / .msg |
| Ansys Mechanical | Mesh Metrics(品質ヒストグラム)、Solver Output(警告/エラー一覧) | Workbench Solution Information |
| Hypermesh | Quality Index、Check Elems、Penetration Check(接触干渉) | GUI表示 + レポート出力 |
| Femap | Model Check → Coincident Nodes、Free Edges、Duplicate Elements | Message Log |
NastranのGROUNDCHECKって初めて聞きました! それって何をチェックするんですか?
GROUNDCHECKは剛性マトリクスに剛体モードが6個あるかを数値的に検証する機能だ。Free-Freeモードチェックと似ているが、モーダル解析を走らせなくても剛性マトリクスの特性から判定できる。Case Controlに GROUNDCHECK=YES と書くだけで、.f06に結果が出る。
WEIGHTCHECKは WEIGHTCHECK=YES で、モデルの総質量と重心位置を出力する。これも.f06に出力されるので、設計値と照合するのに便利だ。
すごい! たった1行追加するだけでチェックできるなら、毎回やらない理由がないですね。
その通り。チームのNastranテンプレートに最初から入れておくのがベストだ。Abaqusなら*PREPRINT, MODEL=YES, HISTORY=NOでData Check解析が走る。計算コストはほぼゼロだから、やらない理由はない。
先端技術
自動化とAI支援レビュー
チェックリストの将来って、やっぱりAIで自動化される方向ですか?
すでに一部は自動化が進んでいる。3つのレベルがある:
- レベル1:スクリプト自動化 — Pythonスクリプトでメッシュ品質チェック、反力合計計算、質量チェックを自動実行。NastranならPyNastranライブラリ、AbaqusならAbaqus Scripting Interfaceで実装可能。多くの企業がすでに導入済み
- レベル2:ルールベースチェッカー — SIMULIA Isight、Altair HyperStudyなどのプロセス自動化ツールに「判定条件」を組み込み、NG項目があれば解析を中断する仕組み
- レベル3:機械学習支援 — 過去の解析モデル(正解/不正解ラベル付き)でCNNを学習させ、メッシュパターンやBC設定の異常を検出する研究が進行中。ただし実用レベルはまだ限定的
レベル1のスクリプト自動化なら、自分でもすぐ始められそうですね!
そうだ。例えばNastranの.f06からOLOAD RESULTANTとSPCFORCE RESULTANTを正規表現で抽出して、差分を自動計算するスクリプトなら50行で書ける。チームで共有すれば、チェック漏れが劇的に減る。「手動チェック項目をゼロにする」のが理想だが、まずは反力バランスと質量チェックの自動化から始めるのが現実的だ。
もう一つの先端的な動きはデジタルスレッド(Digital Thread)の概念だ。CAD→CAE→試験→量産の全工程でモデル情報を一貫管理し、チェックリストの各項目がどの工程のどのデータに基づいているかをトレースできるようにする。Siemens TeamcenterやDassault 3DEXPERIENCEプラットフォームが推進している。
トラブルシューティング
レビュー漏れが引き起こす典型的な事故
チェックリストをちゃんとやらなかったら、実際にどんな問題が起きるんですか? 怖い話を聞かせてください(笑)
笑い事じゃないんだけど、実務で本当にあった(または起きうる)ケースを紹介しよう:
| レビュー漏れ項目 | 起きたこと | 防止策 |
|---|---|---|
| 単位系の確認漏れ | ヤング率をGPaのまま(本来MPa系)入力 → 変位が1/1000に。「剛性十分」と誤判定し、実機で破損 | 総質量チェックで単位系の整合性を検証 |
| 接触定義の確認漏れ | アセンブリの1箇所でTied Contactが定義漏れ → 荷重が伝達されず、その部品の応力がゼロ | Free-Freeモードチェックで接続性を検証 |
| 荷重の方向確認漏れ | 座標系の符号を間違え、圧縮荷重が引張荷重に → 座屈が検出されず、実機で座屈破壊 | 変形図の目視確認 + 反力の方向チェック |
| 過拘束の確認漏れ | 配管モデルの両端を全固定 → 熱応力が過大に計算され、不要な設計変更を実施(コスト数百万円) | 拘束DOF数の物理的妥当性レビュー |
| メッシュ収束性の未確認 | 応力集中部のメッシュが粗すぎ → 応力値がメッシュ密度に依存し、設計判定が不安定 | 最低3水準のメッシュ収束性確認 |
うわ、単位系ミスで実機破損って…。解析結果を信じて設計したのに、そもそもの入力が間違ってたってことですよね。
そうだ。だからこそ「結果を見る前に入力を検証する」のがチェックリストの本質なんだ。美しいコンター図が出てから間違いに気づくと、すでにスケジュールの遅延が発生している。入力段階で5分のチェックをするか、結果が出てから数日の手戻りをするか——答えは明らかだよね。
はい、完全に理解しました。まず自分のチームでも簡易版の20項目チェックリストから始めてみます!
いいね。最初は負担に感じるかもしれないが、1ヶ月も続ければ体に染み付く。そうなれば「チェックリストなしで解析を提出するのが怖い」と感じるようになるはずだ。それがプロのエンジニアの感覚だよ。
「解析が合わない」と思ったときのデバッグフロー
- まず反力バランスを確認——力の釣り合いが合わないなら、結果の検討以前に入力の問題。境界条件と荷重定義を見直す
- Free-Freeチェックを実行——接続性に問題がないか、剛体モードが6個かを確認。7個以上なら結合漏れ
- 総質量を確認——実物の重量と照合。大きくずれていたら材料特性(特に密度)の単位系を疑う
- 変形図を確認——コンター図の前に、変形アニメーションを見る。物理的に不自然な変形パターンがないか
- 1つだけ変えて再実行——複数の変更を同時に行わない。科学実験と同じ「対照実験」の原則を守る
なった
詳しく
報告