1次元非定常熱伝導の変数分離法
理論と物理
概要 — 変数分離法とは
変数分離法って熱伝導のどんな問題に使うんですか?
一様断面の平板・円柱・球の非定常温度分布を厳密に求める方法だ。偏微分方程式を「空間だけの関数」と「時間だけの関数」の積に分けて、固有関数展開で無限級数解を得る。
厳密解って言うと、FEMみたいな近似じゃなくてドンピシャの答えが出るってことですか?
そのとおり。ただし「物性値が温度に依存しない」「形状が単純(平板・円柱・球)」「境界条件が線形」という条件付きだ。この条件を満たす限り、得られる解は数学的に厳密。だからこそFEMの検証用ベンチマークとして極めて重要なんだ。
具体的にはどんな場面で使うんですか?
代表的な用途を3つ挙げよう。
- クエンチ(急冷)処理の内部温度予測 — 鋼材を水中に投入した後、中心温度がいつマルテンサイト変態点を通過するか。これを変数分離法で秒単位で予測できる
- FEM解の検証(V&V) — NAFEMS T2ベンチマーク問題は変数分離法の厳密解を参照値にしている
- 設計初期の概算 — コンクリート壁の日射応答、電子基板の突然通電時の温度上昇を、FEMを回す前に手計算で見積もる
へえ、FEMが正しいかどうかを確かめるための「答え合わせシート」みたいなものなんですね。
まさにそれ。変数分離法の解析解を知らずにFEMだけに頼るのは、電卓なしで暗算の答えを信じるようなものだ。
支配方程式と無次元化
まず基本の方程式から教えてください。
1次元の熱伝導方程式はこうだ。内部発熱なし、物性値一定の場合:
ここで $\alpha = k / (\rho c_p)$ は熱拡散率 [m²/s]、$k$ は熱伝導率、$\rho$ は密度、$c_p$ は比熱である。
$\alpha$ の値って材料ごとにどれくらい違うんですか?
ざっくり言うと、銅は $\alpha \approx 1.1 \times 10^{-4}$ m²/s、鋼は $\alpha \approx 1.2 \times 10^{-5}$ m²/s、コンクリートは $\alpha \approx 7 \times 10^{-7}$ m²/s。2桁以上差がある。銅の塊は一瞬で温まるけど、コンクリートの壁は何時間もかかるよね。
解析を統一的に扱うため、無次元温度 $\theta$ と 無次元数 を導入する:
ここで $T_i$ は初期温度、$T_\infty$ は周囲流体温度、$L$ は代表長さ(平板の半厚)、$h$ は熱伝達係数である。$\theta=1$ が初期状態、$\theta=0$ が定常状態(周囲温度と一致)に対応する。
変数分離の手順
いよいよ「変数分離」の中身ですね。具体的にどうやるんですか?
温度を「空間だけの関数 $X(x)$」と「時間だけの関数 $\Gamma(t)$」の積に分離するんだ:
これを熱伝導方程式に代入すると:
左辺は $t$ だけ、右辺は $x$ だけの関数なのに等しい……ということは、両方とも定数じゃないと辻褄が合わないってことですか?
その通り! それが変数分離法のキモだ。この定数 $-\lambda^2$ を分離定数と呼ぶ。マイナスを付けるのは、温度が時間とともに減衰する(発散しない)物理を反映するためだ。
これにより2つの常微分方程式が得られる:
時間の方は単純な指数減衰なんですね。空間の方は三角関数……なんだか波動方程式みたいですね?
いい着眼点だ。数学的には同じ形の固有値問題だからね。違いは波動は振動し続けるけど、熱伝導は $e^{-\alpha\lambda^2 t}$ のおかげで時間とともに減衰して定常状態に落ち着く。
境界条件と固有値方程式
$\lambda$ の値はどうやって決まるんですか?
境界条件を課すと、$\lambda$ が取り得る値が離散的な固有値 $\lambda_n$ に制限される。$\zeta_n = \lambda_n L$ と無次元化すると、境界条件の種類ごとに固有値方程式が決まるんだ。
厚さ $2L$ の平板で、中心 $x=0$ に対称条件、両面 $x=\pm L$ に各種境界条件を適用した場合:
| 境界条件 | 固有値方程式 | 固有関数 $X_n$ |
|---|---|---|
| 第1種(表面温度一定) | $\cos(\zeta_n) = 0$ すなわち $\zeta_n = (2n-1)\pi/2$ | $\cos(\zeta_n x/L)$ |
| 第2種(表面熱流束一定) | $\sin(\zeta_n) = 0$ すなわち $\zeta_n = n\pi$ | $\cos(\zeta_n x/L)$ |
| 第3種(対流: $-k \partial T/\partial x = h(T-T_\infty)$) | $\zeta_n \tan(\zeta_n) = \text{Bi}$ | $\cos(\zeta_n x/L)$ |
第3種の $\zeta_n \tan(\zeta_n) = \text{Bi}$ って、解けるんですか? tanが入ってるから手計算は無理そう……
超越方程式だから解析的には解けない。Newton法やBrent法で数値的に根を求める。教科書の付録にビオ数ごとの $\zeta_1$ の値が表になっているのを見たことがあるだろう? あれは事前に計算して表にしたものだ。例えば Bi=1 なら $\zeta_1 \approx 0.8603$ になる。
固有関数の直交性を利用すると、展開係数 $C_n$ が初期条件から一意に決まる。平板で初期温度が一様 $T_i$ の場合:
最終的な解は以下の無限級数で表される:
フーリエ数と1項近似
無限級数って、何項まで足せばいいんですか?
ここがこの手法の美しいところだ。$\exp(-\zeta_n^2 \text{Fo})$ の項を見てくれ。$n$ が大きいほど $\zeta_n$ も大きくなるから、指数関数的に急速に減衰する。Fo > 0.2 なら第1項($n=1$)だけで精度0.1%以内になる。
え、たった1項で? そんなに早く高次項が消えるんですか?
具体的に計算してみよう。第1種BCで $\zeta_1 = \pi/2 \approx 1.571$、$\zeta_2 = 3\pi/2 \approx 4.712$ とする。Fo=0.2 のとき:
- 第1項: $\exp(-\zeta_1^2 \times 0.2) = \exp(-0.493) \approx 0.611$ — まだ大きい
- 第2項: $\exp(-\zeta_2^2 \times 0.2) = \exp(-4.44) \approx 0.012$ — もう1%程度
- 第3項: $\exp(-\zeta_3^2 \times 0.2) = \exp(-12.3) \approx 4.5 \times 10^{-6}$ — 事実上ゼロ
だから「1項近似(one-term approximation)」で十分なんだ。ハイスラーチャートはまさにこの1項近似をグラフ化したものだよ。
1項近似を適用した中心温度 $\theta_0$($x=0$)の式:
逆に Fo が小さいとき、つまり加熱・冷却の初期段階ではたくさん項が必要ってことですね?
そう。Fo < 0.05 くらいの極初期だと100項以上必要になることもある。その場合は変数分離法ではなく半無限体の解(誤差関数解)を使う方が効率的だ。これは別のトピックで詳しくやろう。
円柱と球への拡張
平板以外にも使えるんですか?
無限円柱と球にも同じ手法が使える。座標系と固有関数が変わるだけだ。
| 形状 | 座標 | 固有関数 | 固有値方程式(第3種BC) |
|---|---|---|---|
| 平板 | 直交座標 $x$ | $\cos(\zeta_n x/L)$ | $\zeta_n \tan(\zeta_n) = \text{Bi}$ |
| 無限円柱 | 円柱座標 $r$ | $J_0(\zeta_n r/r_0)$ | $\zeta_n J_1(\zeta_n)/J_0(\zeta_n) = \text{Bi}$ |
| 球 | 球座標 $r$ | $\sin(\zeta_n r/r_0)/(\zeta_n r/r_0)$ | $1 - \zeta_n \cot(\zeta_n) = \text{Bi}$ |
$J_0$ って何ですか? 見たことない記号です。
第1種ベッセル関数の0次だ。円柱座標でラプラシアンを書くと、平板の $\cos$ や $\sin$ の代わりにベッセル関数が出てくる。Pythonなら scipy.special.j0(x) で一発計算できるから、実務上は怖くないよ。
各項の物理的意味
- 蓄熱項 $\rho c_p \partial T/\partial t$:単位体積あたりの熱エネルギー蓄積率。鉄のフライパンは熱しにくく冷めにくい($\rho c_p$ が大きい)が、アルミ鍋は熱しやすく冷めやすい。この積が大きいほど温度変化が緩やか。
- 熱伝導項 $k \partial^2 T/\partial x^2$:フーリエの法則に基づく熱輸送。温度分布の曲率(凹凸)に比例して熱が移動する。金属スプーンを熱い鍋に入れると持ち手まで熱くなるのは $k$ が大きいから。
- 熱拡散率 $\alpha = k/(\rho c_p)$:「どれだけ速く温度が均一化するか」を表す。大きいほど速く温度が拡散する。銅 ($1.1 \times 10^{-4}$) と木材 ($1.3 \times 10^{-7}$) で3桁の差がある。
- フーリエ数 $\text{Fo} = \alpha t / L^2$:無次元時間。熱が拡散した距離と物体サイズの比の2乗。Fo=1 は「熱が物体全体に行き渡った」状態に概ね対応する。
- ビオ数 $\text{Bi} = hL/k$:表面の対流抵抗と内部の伝導抵抗の比。Bi < 0.1 なら内部はほぼ一様温度(集中熱容量法が使える)。Bi > 100 なら表面温度は即座に $T_\infty$ になる(第1種BC近似)。
仮定条件と適用限界
- 物性値が温度に依存しない:$k$, $\rho$, $c_p$ が一定。大温度差(数百度以上)では温度依存性を無視できず、変数分離法は適用できない。FEMが必要。
- 等方性材料:熱伝導率が方向に依存しない。CFRP等の複合材料では異方性を考慮した別の手法が必要。
- 内部発熱なし:ジュール発熱や化学反応熱がある場合は、定常解との重ね合わせで対処可能な場合もある。
- 線形境界条件:放射($T^4$ に比例)を含む境界条件には直接適用できない。線形化近似が必要。
- 1次元問題:2次元以上の問題には、直交座標であれば各方向の解の積(product solution)として拡張可能。
次元解析と単位系
| 変数 | SI単位 | 典型値・注意点 |
|---|---|---|
| 温度 $T$ | K または °C | 温度差の計算はK, °Cどちらでも同じ。放射計算では絶対温度必須 |
| 熱伝導率 $k$ | W/(m·K) | 銅: 400、鋼: 50、コンクリート: 1.4、空気: 0.026 |
| 熱拡散率 $\alpha$ | m²/s | 銅: $1.1\times10^{-4}$、鋼: $1.2\times10^{-5}$、水: $1.4\times10^{-7}$ |
| 熱伝達係数 $h$ | W/(m²·K) | 自然対流: 5〜25、強制対流: 25〜250、水中急冷: 1,000〜10,000 |
| フーリエ数 Fo | 無次元 | Fo > 0.2 で1項近似適用可。実務で最も頻繁に使う判定基準 |
| ビオ数 Bi | 無次元 | Bi < 0.1 なら集中熱容量法。0.1 < Bi < 100 で変数分離法の出番 |
フーリエの情熱とナポレオン
変数分離法を確立したジョゼフ・フーリエ(1768-1830)は、ナポレオンのエジプト遠征に同行した経験がある。砂漠の猛烈な暑さと夜の極端な冷え込みを体感し、「なぜ温度はこのように変化するのか」という問いに取り憑かれたと言われている。1822年の名著『熱の解析的理論(Theorie analytique de la chaleur)』で変数分離法とフーリエ級数を発表したが、当時のラグランジュやラプラスは「任意の関数を三角関数の和で表せる」という主張を信じなかった。結局フーリエが正しかったわけだが、この論争が現代の関数解析学の出発点になった。
数値解法と実装
解析解の数値計算手順
変数分離法の解を実際にコンピュータで計算するには、どういう手順でやればいいですか?
手順は4ステップだ:
- 固有値の計算: $\zeta_n \tan(\zeta_n) = \text{Bi}$ をNewton法で解く。$n$ 番目の根は区間 $((n-1)\pi, \; (n-0.5)\pi)$ に必ず存在するので、Brent法で挟み込むのが確実
- 展開係数の計算: $C_n = 4\sin(\zeta_n) / (2\zeta_n + \sin(2\zeta_n))$ を各 $n$ について計算
- 級数の合算: 所望の $x$ と $t$(Fo)に対して $\theta = \sum C_n \cos(\zeta_n x/L) \exp(-\zeta_n^2 \text{Fo})$ を計算
- 打ち切り判定: $|C_n \exp(-\zeta_n^2 \text{Fo})| < \epsilon$(例えば $10^{-10}$)になったら級数を打ち切る
Pythonで書くとどんな感じですか?
SciPyを使えばこんな感じだ:
from scipy.optimize import brentq
import numpy as np
def eigenvalues_plate(Bi, N=50):
"""平板・第3種BCの固有値をN個求める"""
zeta = []
for n in range(1, N+1):
a = (n - 1) * np.pi + 1e-12
b = (n - 0.5) * np.pi - 1e-12
f = lambda z: z * np.tan(z) - Bi
zeta.append(brentq(f, a, b))
return np.array(zeta)
def theta_plate(x_L, Fo, Bi, N=50):
"""無次元温度 theta(x/L, Fo, Bi)"""
zn = eigenvalues_plate(Bi, N)
Cn = 4 * np.sin(zn) / (2*zn + np.sin(2*zn))
return np.sum(Cn * np.cos(zn * x_L)
* np.exp(-zn**2 * Fo))
FEMとの比較検証
この解析解を使って、FEMの結果をどうやって検証するんですか?
代表的なのがNAFEMS T2ベンチマークだ。厚さ0.1mの鋼板($\alpha = 3.5 \times 10^{-6}$ m²/s)の片面を100°Cに固定し、もう一方は断熱。32秒後の $x = 0.08$ m での温度を求める問題で、参照値は $T = 36.60$ °C だ。
FEMの結果がこの36.60°Cからどれくらいずれていたらダメなんですか?
一般的には1%以内($\pm 0.37$°C)なら合格。ただし、これはメッシュと時間刻みの両方が十分細かい場合の話だ。FEMの検証手順は:
- 粗いメッシュ×大きい時間刻みで解く
- メッシュを2倍に細分化して再解析 → 温度変化を確認
- 時間刻みを半分にして再解析 → 温度変化を確認
- 両方が1%以内に収まるまで繰り返す
- 最終結果を変数分離法の厳密解と比較
時間積分スキームの影響
FEMの時間積分法によって精度は変わりますか?
大いに変わる。主要な3つのスキームを比較しよう:
| スキーム | $\theta_{\text{method}}$ | 精度 | 安定性 | 備考 |
|---|---|---|---|---|
| 前進Euler(陽解法) | 0 | $O(\Delta t)$ | 条件付き安定: $\Delta t < \Delta x^2 / (2\alpha)$ | 時間刻みの制約が厳しい |
| Crank-Nicolson | 0.5 | $O(\Delta t^2)$ | 無条件安定 | 数値振動の可能性あり |
| 後退Euler(陰解法) | 1 | $O(\Delta t)$ | 無条件安定 | 安全だが拡散を過大評価 |
Crank-Nicolsonが一番精度いいのに「数値振動」があるって、怖いですね……
急激な温度変化(例えばクエンチの最初の瞬間)で、温度が物理的にあり得ないマイナスになったりする。これを避けるために、Ansysなどでは $\theta = 2/3$(Galerkin法)をデフォルトにしているソルバーもある。変数分離法の厳密解と比べることで、この種の数値アーティファクトを見つけられるんだ。
コンクリート壁の日射応答を手計算で
厚さ200mmのコンクリート壁($\alpha = 7 \times 10^{-7}$ m²/s)に突然の日射($\Delta T = 20$°C)が入射した場合を考えよう。1時間後のFo = $7 \times 10^{-7} \times 3600 / 0.1^2 = 0.252$。Fo > 0.2 なので1項近似が使えて、壁の内面温度変化は数°C程度と即座に見積もれる。JIS A 1470の断熱性能試験でも、この種の手計算が「FEMを回す前の妥当性チェック」として使われている。
実践ガイド
クエンチ(急冷)解析への応用
クエンチ処理って、実務ではどんなふうに変数分離法を使うんですか?
典型的なのは「直径50mmの鋼棒を850°Cから水中急冷する」ケースだ。無限円柱モデルで、水の熱伝達係数 $h = 5000$ W/(m²·K)、鋼の $k = 50$ W/(m·K) とすると:
- $\text{Bi} = h \cdot r_0 / k = 5000 \times 0.025 / 50 = 2.5$
- 固有値方程式 $\zeta_1 J_1(\zeta_1)/J_0(\zeta_1) = 2.5$ を解くと $\zeta_1 \approx 1.814$
- 中心温度が300°Cに達する時刻: $\theta_0 = (300 - 20)/(850 - 20) = 0.337$ から Fo を逆算
- $0.337 = C_1 \exp(-\zeta_1^2 \text{Fo})$ → $\text{Fo} \approx 0.152$ → $t = \text{Fo} \cdot r_0^2 / \alpha \approx 4.8$ 秒
わずか5秒弱で中心が300°Cまで冷えることが分かる。冷却速度から焼入れ硬さを予測する連続冷却変態(CCT)図との組み合わせが実務のポイントだ。
でも水中急冷って、沸騰したりして $h$ が一定じゃないですよね?
鋭い指摘だ。実際のクエンチでは膜沸騰→核沸騰→対流冷却と3段階で $h$ が劇的に変化する。変数分離法はあくまで $h$ 一定の近似。精密な解析にはFEMで $h(T)$ を温度関数として与える必要がある。ただし「おおよそ何秒で冷えるか」の概算には変数分離法で十分だ。
断熱材・多層壁の設計検討
多層壁にも使えますか? 建築とかで断熱材が挟まってるケースとか。
厳密にはNoだ。多層壁は各層の物性が異なるから、単純な変数分離法は使えない。ただし実用的なアプローチとして:
- 等価物性法: 多層壁を単一層に換算(等価 $\alpha$ を計算)して変数分離法を適用
- 各層で個別に変数分離: 界面で温度と熱流束の連続条件を課す(かなり数式が複雑になる)
- 実務ではFEMが無難: 層数が3以上なら1次元FEMの方が圧倒的に楽
単層の場合——例えば「厚さ50mmのグラスウール断熱材の片面を急に加熱したら、反対面は何分後に温まるか?」——にはそのまま使える。
商用ツールでの実装手順
実際のCAEソフトで検証用に変数分離法の問題を設定するとき、注意点はありますか?
いくつか落とし穴がある:
| 項目 | 注意点 |
|---|---|
| メッシュ | 1次元問題でも2D/3D要素を使わざるを得ないツールがある。平板なら1要素厚×多層方向にメッシュを切り、他2方向は対称条件で拘束 |
| 初期条件 | $T_i$ を全節点に均一に与える。Ansysでは IC,ALL,TEMP,850 |
| 時間刻み | Fo=0.2 に対応する時刻前後でモニタリング。Abaqusでは *HEAT TRANSFER, DELTMX=5 で最大温度変化を制限 |
| 物性値の温度依存性 | 検証目的なら必ず温度非依存に設定。COSMOLでは「Material: custom」で定数入力 |
| 出力 | 節点温度の時刻歴を出力。解析解と比較する位置(中心、表面、特定 $x$ )を事前に決めておく |
実務のコツ: フーリエ数で「筋のいい時間刻み」を決める
FEMの時間刻み $\Delta t$ を闇雲に決めていませんか? 変数分離法の知識を使えば、$\text{Fo} = \alpha \Delta t / \Delta x^2$ が 0.5 程度になるように $\Delta t$ を設定すると、陰解法なら安定かつ精度の良い結果が得られます。これは「1時間刻みで熱が隣の要素まで届く程度」という物理的直感に対応しています。
初心者が陥りやすい落とし穴
「Biが0.01だから内部温度は均一ですよね?」 —— 定常状態ならその通り。しかし過渡状態の初期段階(Fo < 0.2)では、Biが小さくても内部に温度勾配が生じ得ます。例えば、巨大なアルミブロック(Bi=0.005)を急に冷却した直後は、表面付近だけ温度が下がり、中心はまだ元のまま。集中熱容量法が使えるのは「十分時間が経ってから」です。Fo = 0 の瞬間はどんなBiでも温度勾配はゼロですが、直後の微小時間で表面温度が急変します。
境界条件の考え方: ビオ数で「支配的な抵抗」を見抜く
Biが大きい(Bi > 100)場合、冷却速度を決めているのは物体内部の伝導抵抗です。表面にいくら強力な冷媒を当てても、内部の熱が表面に到達するのが遅いためです。逆にBiが小さい(Bi < 0.1)場合、表面の対流抵抗が支配的で、物体内部はほぼ均一温度。熱伝達係数 $h$ の精度が結果を左右します。「自分の問題はどちらが支配的か?」をBiで判断してから解析に着手しましょう。
ソフトウェア比較
ツール別の非定常熱伝導対応
変数分離法の検証問題をCAEソフトで解くとき、ソフトごとの違いってありますか?
各ツールの非定常熱伝導の設定方法と、変数分離法の検証との相性を見てみよう。
| ツール | 解析タイプ指定 | 時間積分 | 検証との相性 |
|---|---|---|---|
| Ansys Mechanical | ANTYPE,TRANS | Generalized Trapezoidal ($\theta=2/3$ デフォルト) | APDLマクロで解析解との自動比較が容易 |
| Abaqus | *HEAT TRANSFER | 後退Euler(デフォルト) | Python scripting + odb でポスト処理自動化可能 |
| COMSOL | Heat Transfer → Time Dependent | BDF (可変次数) | 解析解を「Analytic」機能で直接入力して差をプロット可能 |
| OpenFOAM | laplacianFoam | Euler / Crank-Nicolson | Pythonスクリプトで後処理。固体のみならsolidDisplacementFoamは不要 |
COSMOLの「解析解を直接入力」って便利そうですね。
実際、COMSOL は式をGUIにそのまま打ち込めるから、変数分離法の検証が最も手軽にできるツールの一つだ。ただし「手軽=厳密」ではないので、固有値の計算精度は自分で確認する必要がある。
オープンソースツール
商用以外で変数分離法の解を計算できるツールはありますか?
- Python + SciPy: 前述のスクリプトで固有値計算から温度分布プロットまで完結。実質これが最も柔軟
- Wolfram Mathematica:
DSolveコマンドで記号的に導出可能。学術論文用に美しい数式出力が得られる - Octave / MATLAB:
fzeroで固有値を求め、besseljで円柱問題にも対応 - hteqn(Pythonライブラリ): 平板・円柱・球の変数分離解を関数呼び出し一発で計算。ハイスラーチャート値との自動照合機能付き
10行で書ける「変数分離法電卓」
Python + NumPy + SciPyがあれば、変数分離法の1次元非定常熱伝導解は10行で書ける。固有値をBrent法で50個求め、級数を足すだけだ。一度書いてしまえば「Bi=3の円柱で中心温度が半分になるまでの時間は?」といった問いに一瞬で答えられる。FEMソフトを起動するまでもない。筆者はこのスクリプトをデスクトップに常駐させている。
先端技術
PINNと変数分離法の融合
200年前のフーリエの手法が、最新のAI技術と関係あるんですか?
物理インフォームドニューラルネットワーク(PINN)の最新研究では、ネットワーク構造に変数分離法の「時間×空間」の構造をハードコードする手法が注目されている。
- 空間方向のサブネットワーク: 固有関数に近い基底を学習
- 時間方向のサブネットワーク: 指数減衰を学習
- 結果: 従来のPINNより桁違いに少ないデータで収束し、物理的に正しい解を保証できる
変数分離法の数学的構造が、200年の時を経てニューラルネットの「帰納バイアス」として復活したわけだ。
非フーリエ伝導への拡張
変数分離法が使えない「非フーリエ伝導」って何ですか?
フーリエの法則では「熱流束は温度勾配に瞬時に応答する」と仮定している。しかし超短パルスレーザー加熱(ピコ秒〜フェムト秒)や極低温(数K以下)では、熱の伝播に有限の速度がある。これを記述するのがCattaneo-Vernotte方程式:
2階の時間微分が入ると、波動方程式みたいですね。
まさにその通りで、「熱波(thermal wave)」が存在する。面白いことに、この方程式にも変数分離法を適用できる(固有値方程式の構造が変わるが)。ただし実用上は半導体のフェムト秒レーザー加工など、極めて限られた場面でしか必要にならない。通常のCAEではフーリエの法則で十分だ。
トラブルシューティング
級数が収束しない場合
級数を何項足しても温度が振動する、みたいなことは起きますか?
それは典型的な「Fo が極端に小さい」ときの症状だ。対処法を整理しよう:
| 症状 | 原因 | 対策 |
|---|---|---|
| 100項足しても収束しない | Fo < 0.01(極初期段階) | 変数分離法ではなく半無限体の誤差関数解を使う |
| 表面近くで温度が振動する(ギブス現象) | 不連続な初期条件(ステップ関数的) | 500項以上取るか、$x/L$ を0.95程度にして表面直上を避ける |
| 固有値の計算が失敗する | 探索区間の設定ミス | $\zeta_n$ の存在区間 $((n-1)\pi, (n-0.5)\pi)$ を厳密に守る。二分法から始めてNewton法に切り替え |
| 中心温度は合うが表面が合わない | ビオ数の入力ミス($L$ の定義が半厚か全厚か) | 変数分離法では $L$ = 半厚。FEMの入力と整合を確認 |
FEMと解析解が合わない場合
FEMの結果と変数分離法の解が数%ずれています。どちらが間違っているんでしょう?
まずは冷静に切り分けよう。チェックリストは以下の通り:
- 変数分離法側のチェック:
- 固有値を十分な個数(少なくとも20個)計算したか?
- $L$ の定義は半厚か全厚か? 教科書によって異なる
- 展開係数 $C_n$ の式は境界条件に対応したものを使っているか?
- FEM側のチェック:
- 物性値を温度非依存に設定したか? 温度依存テーブルが紛れ込んでいないか?
- メッシュ収束は確認したか? 特に表面近く(大きな温度勾配)は要細分化
- 時間刻みは十分小さいか? 自動時間刻みの最大値制限は適切か?
- 対称面の境界条件は正しいか? 断熱≠自由面
- 両者が一致しない場合: まず第1種BC(表面温度固定)で検証。これは最も単純で間違えにくい。第3種BCの検証は後回しにする
なるほど、最もシンプルなケースから攻めるのが鉄則なんですね。
そうだ。デバッグの基本は「変数を1つだけ変えて確認」。複雑な境界条件でいきなり検証しようとすると、どこが原因か分からなくなる。変数分離法は「確実に正しい答え」が手元にあるという絶大な強みがあるから、それを最大限活用しよう。
「解析が合わない」と思ったら
- まず Bi と Fo を確認 — 問題の性格を把握する。Bi < 0.1 なら集中熱容量法で十分なのに変数分離法を使っていないか?
- 最小ケースを作る — 1次元、第1種BC、均一初期条件。これで合わなければ基本的な設定ミス
- $L$ の定義を確認 — 変数分離法の教科書は「半厚」を使うが、FEMのモデルでは「全厚」で入力していることが多い
- グラフで比較 — 数値の一致を見る前に、温度-時間曲線をプロットして「形」が合っているか確認する。形が違えば境界条件のミス、形は合っているが値がずれるならスケールの問題
関連トピック
なった
詳しく
報告