次元解析とCAEシミュレーション
理論と物理
なぜ次元解析がCAEに不可欠か
先生、次元解析ってCAEとどう関係するんですか? 大学の物理で「単位を揃えましょう」みたいな話は聞いたことありますけど、シミュレーションの現場で本当に使うんですか?
ざっくり言うと、シミュレーション結果のサニティチェックに必須だ。出力された応力の次元がPaになっているか、熱流束がW/m²かを確認するだけで、入力ミスによるバグの半分は見つかる。
えっ、半分も? そんなに単位ミスって多いんですか?
多い。有名な例だと、1999年のNASA Mars Climate Orbiter。ロッキード側がポンド力(lbf)で出力したデータを、NASAがニュートン(N)として読み込んで軌道計算した結果、探査機が火星大気に突入して失われた。3億2800万ドルの損失が、たった1つの単位系ミスで起きた。
3億ドル…! それは怖い。CAEでも同じことが起きるんですね。
しかも次元解析にはもう一つ強力な使い道がある。Buckinghamのπ定理でパラメータを無次元化すれば、実験のスケーリング則を導出できる。風洞試験の1/10モデルで得た結果を実物に外挿するとか、CFDの計算領域を縮小してメッシュ数を減らすとか、実務で毎日使う技術だ。
次元の基礎と次元斉次の原理
じゃあ、まず基本から教えてください。「次元」って具体的に何を指すんですか?
物理量の「種類」を表すラベルだ。SIでは7つの基本次元がある。CAEで特に重要なのは次の4つ:
- 質量 M(kg)
- 長さ L(m)
- 時間 T(s)
- 温度 Θ(K)
すべての物理量は、これらの基本次元のべき乗の積で表現できる。例えば力は:
応力なら力÷面積だから:
そして次元斉次の原理(principle of dimensional homogeneity):物理的に意味のある方程式では、等号の両辺の次元が必ず一致しなければならない。もし一致しなければ、その方程式は間違いだ。
つまりFEMの支配方程式 $[K]\{u\} = \{F\}$ でも、左辺の次元(剛性×変位)と右辺の次元(力)が一致してないとダメ、ってことですか?
その通り。確認してみよう。剛性の次元は $[K] = \mathrm{M \, T^{-2}}$(N/m = kg/s²)、変位は $[u] = \mathrm{L}$(m)。だから左辺は $\mathrm{M \, L \, T^{-2}}$ = 力の次元。ちゃんと合っている。これが崩れていたら入力データの単位系が混在している証拠だ。
Buckingham π定理
先生がさっき言ってたBuckingham π定理って、具体的にはどういう定理なんですか?
一言で言えば「物理問題を支配する独立な無次元パラメータの数を教えてくれる定理」だ。
Buckingham π定理の主張:
ある物理現象が $n$ 個の物理量 $q_1, q_2, \ldots, q_n$ で記述され、それらが $k$ 個の独立な基本次元(M, L, T, Θなど)で表されるとき、この現象を支配する独立な無次元パラメータ(π グループ)の数は:
つまり元の物理問題を $p$ 個の無次元数だけで完全に記述できる。変数の数が減るから、パラメータスタディの回数が激減する。
具体的な例で見てみたいです。例えば管内流れの圧力損失だとどうなりますか?
いい質問だ。管内流れの圧力損失 $\Delta p$ に関係する物理量を列挙しよう:
- $\Delta p$(圧力損失): $\mathrm{M \, L^{-1} \, T^{-2}}$
- $V$(流速): $\mathrm{L \, T^{-1}}$
- $D$(管径): $\mathrm{L}$
- $L$(管長): $\mathrm{L}$
- $\rho$(密度): $\mathrm{M \, L^{-3}}$
- $\mu$(粘度): $\mathrm{M \, L^{-1} \, T^{-1}}$
- $\varepsilon$(表面粗さ): $\mathrm{L}$
$n = 7$ 変数、基本次元 $k = 3$(M, L, T)だから、$p = 7 - 3 = 4$ 個のπグループが存在する。
つまり管の圧力損失は $f = \phi(Re, L/D, \varepsilon/D)$ という形で表される。7変数の問題が4つの無次元パラメータに整理された。CFDのパラメータスタディで全組み合わせをやる代わりに、Reと $L/D$ と $\varepsilon/D$ だけ振ればいい。
なるほど! 元が7変数だと仮に各5水準で $5^7 = 78,125$ ケースだけど、4変数なら $5^4 = 625$ ケースで済むってことですか。計算コストが100分の1以下に…!
そういうことだ。これが次元解析の真骨頂——計算コストの劇的な削減と、物理の本質的なパラメータの特定を同時にやってくれる。
主要な無次元数の導出
Reynolds数以外にも、CAEでよく使う無次元数ってどんなものがありますか? 導出方法も含めて教えてほしいです。
CAEで頻繁に登場する無次元数を3つ、導出過程と一緒に見ていこう。
1. Reynolds数 Re — 流体解析の最重要パラメータ
慣性力と粘性力の比。流れが層流か乱流かを判定する。
導出: Navier-Stokes方程式を代表長さ $L$、代表速度 $V$ で無次元化する。対流項 $\rho(\mathbf{v} \cdot \nabla)\mathbf{v}$ のスケールは $\rho V^2/L$、粘性項 $\mu \nabla^2 \mathbf{v}$ のスケールは $\mu V/L^2$。両者の比が:
実務では、管内流れで $Re < 2300$ なら層流、$Re > 4000$ なら乱流。CFDで乱流モデル($k$-$\varepsilon$、SST $k$-$\omega$ 等)を使うかどうかの判断基準だ。
2. Nusselt数 Nu — 熱伝達解析の基本
対流熱伝達と伝導熱伝達の比。熱伝達係数の無次元表現。
導出: エネルギー方程式を無次元化する。壁面での熱流束 $q = h(T_w - T_\infty)$ と、流体内の伝導 $q = k_f \Delta T / L$ の比をとると $Nu = hL/k_f$。$Nu = 1$ なら「対流がなくても同じ」、$Nu = 100$ なら「対流で熱が100倍速く運ばれている」という意味だ。
つまり、Ansys Fluentで共役熱伝達のシミュレーションをしたとき、壁面のNusselt数を計算すれば「対流冷却がどれくらい効いているか」が分かるんですね。
その通り。しかもNu数には経験相関式がたくさんある。例えば乱流管内流れなら Dittus-Boelter式:
CFDの結果がこの相関式と大きくずれていたら、メッシュ不足か乱流モデルの選択ミスを疑うべきだ。これが次元解析によるサニティチェックだ。
3. Biot数 Bi — 固体内の温度分布の判定
外部熱抵抗と内部熱抵抗の比。集中定数モデルが使えるかどうかの判定基準。
ここで $L_c$ は特性長さ(= 体積/表面積)、$k_s$ は固体の熱伝導率。$Bi < 0.1$ なら固体内の温度分布はほぼ均一と見なせるから、3D熱解析をやらなくても集中定数モデル(ニュートンの冷却則)で十分。
それって実務でどう使うんですか?
例えばアルミ製の電子部品($k_s \approx 200$ W/(m·K))を自然対流で冷却する場合。部品サイズ10mm、$h \approx 10$ W/(m²·K) だとすると:
Bi数が極めて小さいから、部品内の温度勾配は無視できる。つまり3Dメッシュを切って熱解析する必要がない。一方、プラスチック筐体($k_s \approx 0.2$ W/(m·K))だと $Bi = 0.5$ になるから、内部温度分布を考慮した3D解析が必要になる。
解析の前にBi数を計算するだけで、3D解析が必要かどうか判断できるんですね。すごく実用的だ…!
CAEで頻出する無次元数一覧
| 無次元数 | 定義 | 物理的意味 | CAEでの用途 |
|---|---|---|---|
| $Re$ | $\rho V L / \mu$ | 慣性力/粘性力 | 乱流モデル選択、メッシュ設計($y^+$) |
| $Nu$ | $h L / k_f$ | 対流/伝導 | 熱伝達解析の検証、相関式との比較 |
| $Bi$ | $h L_c / k_s$ | 外部/内部熱抵抗 | 集中定数モデルの適用可否判定 |
| $Pr$ | $\nu / \alpha = c_p \mu / k_f$ | 運動量拡散/熱拡散 | 熱境界層の厚さ推定 |
| $Ma$ | $V / c$ | 流速/音速 | 圧縮性流れの判定($Ma > 0.3$) |
| $Gr$ | $g \beta \Delta T L^3 / \nu^2$ | 浮力/粘性力 | 自然対流解析のレジーム判定 |
| $We$ | $\rho V^2 L / \sigma$ | 慣性力/表面張力 | 液滴・噴霧の分裂判定 |
| $CFL$ | $V \Delta t / \Delta x$ | 情報伝播/格子間隔 | 陽解法の安定条件($CFL \leq 1$) |
相似則とスケーリング
相似則の3条件
「相似則」って言葉はよく聞くんですが、ちゃんと理解できてない気がします。風洞試験の縮小モデルとかで使うやつですよね?
そう。相似則(シミリチュード)とは、「縮小モデル(模型)の結果を実物に正しくスケーリングするための条件」だ。3つの相似条件がある:
- 幾何学的相似:形状が相似(全寸法がスケール比 $\lambda_L$ で一致)
- 運動学的相似:速度場が相似(速度比 $\lambda_V$ が全点で一致)
- 力学的相似:作用する力の比が一致(関連する全ての無次元数が一致)
3番目の「力学的相似」が一番難しそうですね。全ての無次元数を同時に一致させるのは無理じゃないですか?
鋭い。実は一般に全ての無次元数を同時に満たすことは不可能だ。例えば船舶の模型試験では、Reynolds数(粘性支配)とFroude数(重力波支配)を同時に一致させることができない。だから実務では「支配的な無次元数だけを一致させる」という部分相似を使う。
スケーリング則の導出例
具体的にスケーリング則を導出する手順を見てみたいです。
風洞試験を例にしよう。実物の自動車(全長 $L_p = 5$ m)の1/5模型($L_m = 1$ m)を風洞で試験する。Reynolds数を一致させたい場合:
同じ空気($\nu_m = \nu_p$)を使うなら:
実車が時速100 km/hで走行するなら、模型には500 km/h(約 Mach 0.4)の風速が必要になる。圧縮性の影響が出始めるから、実際には加圧風洞を使って密度を上げるか、完全なReynolds数一致を諦めて補正するんだ。
なるほど、スケーリングには限界もあるんですね。抗力係数や揚力係数はどうなりますか?
Reynolds数が一致していれば、抗力係数 $C_D$ は模型と実物で同じになる:
模型で $C_D = 0.30$ が得られたら、実車でも $C_D = 0.30$。実車の抗力は $F_{D,p} = \frac{1}{2} \rho V_p^2 A_p \times 0.30$ で計算できる。これがスケーリング則の威力だ。
CAEにおけるモデル縮小
これってCFDのシミュレーションにも応用できるんですか?
もちろん。特に以下の場面で威力を発揮する:
- メッシュ独立性検討の効率化:無次元座標で結果を整理すれば、異なるメッシュ密度の比較が容易
- 計算領域の縮小:対称性・周期性の活用。無次元解が同じなら、計算領域を1/4にしても同じ物理を捉えられる
- パラメータスタディの計画:無次元パラメータ空間でDOE(実験計画法)を設計すれば、必要なケース数を最小化できる
- 実験との比較:無次元数で整理すれば、異なるスケール・流体の実験データと直接比較可能
構造解析でも同じ考え方が使えますか?
使える。例えば弾性問題なら、応力を無次元化して:
無次元化した応力はヤング率 $E$、荷重パラメータ $P/(EL^2)$、ポアソン比 $\nu$、形状比だけの関数になる。つまり材料や寸法が変わっても、これらの無次元パラメータが同じなら同じ無次元応力分布が得られる。FEMの結果を一般化できるということだ。
実践ガイド
単位系の選択と統一
理論は分かりました。実務でCAEモデルを作るとき、単位系はどうやって管理するんですか?
最初にルールを決める。CAEで一般的に使われる単位系は次の3つだ:
| 単位系 | 長さ | 質量 | 時間 | 力 | 応力 | 密度 | 主な用途 |
|---|---|---|---|---|---|---|---|
| SI | m | kg | s | N | Pa | kg/m³ | 学術、大スケール |
| mm-tonne-s | mm | tonne | s | N | MPa | tonne/mm³ | 構造解析(最も一般的) |
| mm-kg-ms | mm | kg | ms | kN | GPa | kg/mm³ | 衝突・陽解法 |
構造解析で最も多いのは mm-tonne-s系 だ。CADが通常mmで作られるから、長さをmmのまま使える。ただし密度に注意が必要で、鉄の密度は $7.85 \times 10^{-9}$ tonne/mm³ という非常に小さい数値になる。ここで $7850$ kg/m³ をそのまま入れるのが典型的な単位系ミスだ。
密度の桁が10桁も違う! そりゃバグるわけだ…。
だからこそ次元解析が武器になる。結果の応力が $10^{12}$ Pa(テラパスカル級)になったら、「鋼の引張強さは400 MPa程度のはず」と比べて一瞬で桁違いだと分かる。次元的に正しい値の概算を手計算で持っておくことが、最強のデバッグツールなんだ。
サニティチェック手順
具体的にサニティチェックの手順を教えてください。
解析結果を受け取ったら、以下の5ステップを必ず実行する:
- 単位の桁チェック:応力がPaかMPaか、変位がmかmmか。結果の桁が期待値と合っているか
- 次元チェック:$[K]\{u\} = \{F\}$ の各項の次元が一致しているか。反力の合計が外力と釣り合っているか
- 保存則チェック:エネルギー保存、質量保存、運動量保存が成り立っているか。CFDなら残差が十分小さいか
- 無次元数チェック:Re数、Nu数、CFL数が物理的に妥当な範囲か
- 概算値との比較:梁理論、平板近似、Moody線図など、手計算で得られる概算値と比較。1桁以上ずれていたら要調査
5番目の「概算値との比較」って、先輩エンジニアがよく「オーダー感」って言うやつですか。
まさにそれだ。例えば片持ち梁の先端たわみは $\delta = PL^3/(3EI)$ で概算できる。FEMの結果がこの値の10倍なら拘束条件のミス、1/1000なら荷重の入力ミスを疑う。「FEMの結果が正しいかどうかを判定するために手計算をする」——これがプロのCAEエンジニアのやり方だ。
ツール別の単位系設定
各ソルバーで単位系を設定するとき、注意すべきことはありますか?
ソルバーごとの癖をまとめよう:
| ソルバー | 単位系の扱い | 注意点 |
|---|---|---|
| Abaqus | 単位系の概念なし(ユーザー責任で統一) | 入力ファイル(.inp)に単位ヘッダがないため、ドキュメンテーション必須。密度・弾性率・荷重を全て整合させるのはユーザーの責任 |
| Ansys Mechanical | Workbenchで単位系を選択可能 | GUIで設定した単位系とAPDLコマンドの数値の整合性に注意。MPデータベースの単位はSI固定 |
| Nastran | 単位系の概念なし(ユーザー責任) | PARAM, WTMASSで質量変換係数を指定可能。BDFファイルのコメントに単位系を明記するのがベストプラクティス |
| OpenFOAM | SI固定 | 全てm-kg-s。CADからmmで取り込んだジオメトリは必ずスケーリング(scaleMesh)が必要 |
| COMSOL | GUI上で単位系を管理 | 方程式ビューで次元チェックが可能。異なる単位系のコンポーネントを結合する際は自動変換を確認 |
| LS-DYNA | 単位系の概念なし(ユーザー責任) | 衝突解析ではmm-kg-ms系が事実上の標準。重力加速度を $9.81 \times 10^{-3}$ mm/ms² にすることを忘れがち |
ソフトウェアにおける次元管理
各ソルバーの単位系の扱い
ソルバーによって単位の扱いがバラバラなのは困りますね。自動でチェックしてくれる機能はないんですか?
残念ながら、Abaqus・Nastran・LS-DYNAのような「単位フリー」のソルバーでは自動チェックはできない。ユーザーが全責任を持つ。だからモデルセットアップシートを作ることを強く勧める。こんな感じだ:
| 物理量 | 記号 | 採用単位 | 入力値 | 次元チェック |
|---|---|---|---|---|
| 長さ | $L$ | mm | — | $\mathrm{L}$ |
| 質量 | $m$ | tonne | — | $\mathrm{M}$ |
| 時間 | $t$ | s | — | $\mathrm{T}$ |
| ヤング率 | $E$ | MPa | $2.1 \times 10^5$ | $\mathrm{M \, L^{-1} \, T^{-2}} ✓$ |
| 密度 | $\rho$ | tonne/mm³ | $7.85 \times 10^{-9}$ | $\mathrm{M \, L^{-3}} ✓$ |
| 荷重 | $F$ | N | $1000$ | $\mathrm{M \, L \, T^{-2}} ✓$ |
| 応力(出力) | $\sigma$ | MPa | — | $\mathrm{M \, L^{-1} \, T^{-2}} ✓$ |
このシートを最初に作っておけば、チームメンバー全員が同じ単位系を使えますね。
無次元化機能
ソルバー側に無次元化の機能ってあるんですか?
一部のソルバーには組み込みの無次元化機能がある:
- COMSOL:方程式ビューで各項の次元を表示。不整合があれば警告を出す。非常に便利
- Ansys Fluent:境界条件を無次元数(Re, Ma等)で指定可能。Reference Valuesパネルで基準値を設定
- OpenFOAM:dimensionedScalar型で次元情報を保持。次元の不一致はコンパイル時にエラーになる
特にOpenFOAMの次元チェック機能は秀逸で、例えば以下のようなコードでは:
dimensionedScalar nu("nu", dimViscosity, 1e-6); // m²/s
dimensionedScalar rho("rho", dimDensity, 1000); // kg/m³
// nu * rho は dimViscosity * dimDensity = 動粘度 × 密度 = 粘度の次元
// もし nu + rho としたら、次元不一致でコンパイルエラー!
コンパイル時に次元チェックしてくれるのはすごいですね。Abaqusにもこういう機能がほしい…。
Abaqusにはないから、Pythonスクリプトで自作する手もある。入力ファイル(.inp)をパースして、材料パラメータの桁数チェック、荷重と応力の期待値比較を自動化している企業は多い。次元解析は「ツールに頼る」より「自分の物理感覚で判定する」力を鍛えることが重要だ。
先端トピック
分数次元とフラクタル解析
次元解析の「先端」って、どんな研究が進んでるんですか?
面白い分野がいくつかある。まず分数次元微積分(fractional calculus)。古典的な次元解析は整数次元(L¹, T², etc.)だが、分数階微分を使うと粘弾性材料の記憶効果や異常拡散を自然にモデル化できる。例えばCreep挙動を:
$\alpha = 1$ なら通常の弾性体、$\alpha = 0$ なら完全粘性体。中間の $\alpha$ で粘弾性を表現できる。この場合の次元解析では $[t^\alpha]$ の次元が $\mathrm{T}^\alpha$ になるから、無次元数の構成がかなり複雑になる。
機械学習と次元解析の融合
最近流行りの機械学習と次元解析って関係ありますか?
大いにある。最近注目されているのがDimensionally Consistent Neural Networksだ。ニューラルネットワークの入力を無次元数に限定し、出力も無次元量にすることで、物理法則と整合したサロゲートモデルを構築できる。
例えば、100ケースのCFDデータから空力係数を予測するニューラルネットワークを作る場合:
- 素朴なアプローチ:速度・密度・粘度・長さ・角度をそのまま入力 → 単位系が変わると精度が崩壊
- 次元解析ベース:$Re$, $Ma$, 迎角 $\alpha$ を入力 → 単位系に依存しない汎化性能
PINN(Physics-Informed Neural Networks)でも、損失関数に次元整合性の制約を入れることで、学習データが少なくても物理的に妥当な予測ができるようになる。
次元解析って200年以上前からある理論なのに、最先端のAI技術にも効くんですね。基礎って大事だ…。
トラブルシューティング
単位系ミスに起因する典型的バグ
先生も単位系ミスで痛い目にあったことありますか?
若い頃に何度もやった。典型的なパターンをまとめておこう:
| 症状 | 原因 | 見破り方(次元解析) | 対策 |
|---|---|---|---|
| 応力が $10^9$ 倍大きい | 長さをmmで入力したのに密度をkg/m³で入力 | 応力の期待値(MPaオーダー)と比較して桁が異常 | 単位系チェックシートで密度の変換を確認 |
| 固有振動数が $10^3$ 倍高い | 質量が$10^6$ 倍小さい(kg/m³ → tonne/mm³ 変換忘れ) | $f \propto \sqrt{K/M}$、Mが小さいとfが大きくなる | 総質量のチェック(手計算と比較) |
| 熱解析で温度が発散 | 熱伝導率の単位が W/(m·K) のまま mm系に入力 | Bi数を計算して妥当性チェック | $k$ の単位を mW/(mm·K) に変換 |
| CFDで速度が異常 | 動粘度の入力ミス(SI値をmm系に入力) | Re数を逆算して妥当な流れ場か確認 | Re数から入力パラメータを逆算して照合 |
| 衝突解析で部品が貫通 | LS-DYNAでの時間単位ミス(sとms) | 運動エネルギーの概算値と比較 | 接触力の時系列を確認、$F \cdot \Delta t$ の次元チェック |
固有振動数のやつ、すごく多そうですね。密度の桁を間違えるだけで振動数が1000倍になるなんて…。
一番多いバグだ。対策は簡単で、モデルの総質量を手計算と比較する。体積 × 密度で概算した質量と、ソルバーが出力する質量が一致すれば、少なくとも密度の入力は正しい。これを「マスチェック」と呼んで、どの企業でもレビューの第一項目にしている。
次元検証チェックリスト
最後に、実務で使えるチェックリストを作ってもらえませんか?
よし、解析モデルの作成時と結果確認時に使えるチェックリストをまとめよう:
解析前チェック(入力)
- □ 採用単位系を文書化した(SI / mm-tonne-s / mm-kg-ms)
- □ CADモデルの長さ単位を確認した(mm → m変換の要否)
- □ 材料データの単位をすべて変換・確認した(特に密度!)
- □ 荷重の単位を確認した(N, kN, MPa等)
- □ 重力加速度の値が単位系と整合している(9.81 m/s² or 9810 mm/s²)
- □ 温度の単位を確認した(K or ℃ — 多くのソルバーは絶対温度を要求)
- □ 総質量を手計算と比較した(マスチェック)
解析後チェック(出力)
- □ 応力の桁が期待値と一致(構造鋼なら降伏応力 250〜400 MPa付近)
- □ 変位の桁が期待値と一致(梁理論等の概算値と比較)
- □ 反力の合計 = 外力の合計(力の釣り合い)
- □ エネルギーバランスが成立(外部仕事 ≈ 内部ひずみエネルギー)
- □ 無次元数が物理的に妥当な範囲(Re, Nu, Bi, CFL等)
- □ 結果を無次元化して文献値・経験式と比較
このチェックリスト、印刷してデスクに貼っておきます。次元解析って地味に見えるけど、シミュレーションの品質を根本から支える技術なんですね。
その通りだ。どんなに高価なソルバーを使っても、入力データの単位が間違っていたらゴミしか出てこない。"Garbage in, garbage out" を防ぐ最初の防壁が次元解析なんだ。物理の基本を大切にしてくれ。
なった
詳しく
報告