One-dimensional Heat Conduction: Example 1

Prof. Kazuhiro Fukuyo, Ph.D.
Yamaguchi University
Last updated: July 20th, 2011

例題を解く

数値計算(コントロールボリューム法)を用いて次の熱伝導の問題を解く。
【例題1】
温度TL = 300K (27℃)の大気中に長時間放置されていた厚さ0.2[m]の平板の一面を, 温度TH = 500[K]の熱源に接触させたとき,20[s]後の平板内の厚み方向の温度分布を求めよ。
ただし,熱源に接する面の温度は常にTHに等しいとする。また平板の熱伝導率λ,密度ρ, 比熱cはすべて一定とし,以下の値をとる。λ = 237.0[W/mK],ρ = 2688[kg/m^3],c = 905.0[J/(kg K)]。
(出典[1])

コントロールボリュームの定義

文献[1]では「陰解法」を使用しているが,ここではni個の格子点とコントロールボリュームを用いて 「陽解法」で計算する。

格子点と距離の定義を図1に示す。

heat-01-01.png(9325 byte)
図1 格子点と距離の定義

格子点は温度を計算する点である。熱源に接する格子点の番号を1,大気側の格子点の番号をniとする。 格子点1と格子点niのそれぞれを包むコントロールボリュームの幅は通常のコントロールボリュームの半分程度なので, これらは通常「半コントロールボリューム」と呼ばれる[2]。

格子点の位置はx(1) = 0, ..., x(i), ..., x(ni)で定義される。 また,コントロールボリュームの幅はdx(1), ..., dx(i), ..., dx(ni)で定義される。 さらに格子点i-1と格子点iの距離はdg(i-1)で定義される。

先に格子点の位置を決定しておき,その後でコントロールボリュームの境界が 格子点同士のちょうど中間に来るように定義すると,x()とdx()とdg()の間の関係は次のようになる。

dg(1) = x(2) - x(1)
......
dg(i-1) = x(i) - x(i-1)
dg(i) = x(i+1) - x(i)
......
dg(ni-1) = x(ni) - x(ni-1)

dx(1) = dg(1)/2
dx(2) = dg(1)/2 + dg(2)/2
......
dx(i) = dg(i-1)/2 + dg(i)/2
......
dx(ni-1) = dg(i-2)/2 + dg(i-1)/2
dx(ni) = dg(ni-1)/2

コントロールボリュームの幅や格子点の間隔は シミュレーションの分野ではしばしば「メッシュ間隔」とも呼ばれ, シミュレーションの空間分解能を表すために使われる。

離散化方程式

1次元の熱伝導方程式は次の式で表される:

heat-01-02.png(810 byte)

この式を格子点iについて「陽解法」で離散化すると次のようになる:

(t(i) - to(i)) / dt =
alpha * ((to(i+1) - to(i)) / dg(i) - (to(i) - to(i-1)) / dg(i-1)) / dx(i)

ここで,to(i)は現在の温度,t(i)は未来(dt時刻後)の温度を表す。 またalpha = αは温度伝導率で,α = λ / (ρ* c)である。

上式を整理すると次のようになる:

t(i) =
alpha * dt / (dg(i) * dx(i)) * to(i+1) +
alpha * dt / (dg(i-1) * dx(i)) * to(i-1) +
(1 - alpha * dt * (1 / (dg(i) * dx(i)) + 1 / (dg(i-1) * dx(i)))) * to(i)

見やすくするために,ae(i) = alpha * dt / (dg(i) * dx(i)), aw(i) = alpha * dt / (dg(i-1) * dx(i))と置くと,上式は次のように書き直される:

t(i) =
ae(i) * to(i+1) +
aw(i) * to(i-1) +
(1 - ae(i) - aw(i)) * to(i)

上式を見て分かるように,to(i+1), to(i-1), to(i)の係数を合計すると1になる。 つまり,未来の温度t(i)は現在の温度to(i+1), to(i-1), to(i)の加重平均なのである。

アルゴリズム

陽解法による数値計算は極めてシンプルである。

初期条件to(1) = TH, to(2) = ... = to(i) = ... = to(ni) = TLに設定したうえで, i = 2〜ni-1について上の離散化方程式を適用すれば,dt時間後の温度 t(2), ..., t(ni-1)が求まる。

そしてさらにdt時間後の温度を予測したければ,to(2) = t(2), ..., to(ni-1) = t(ni-1) というように温度のデータを更新したうえで,改めて上の離散化方程式を適用して t(2), ..., t(ni-1)を算出すればよい。

すなわち,dt時間ずつ小刻みに計算を繰り返せば, 目的とする時間の温度分布が求められるわけである。

安定性

陽解法はシンプルで理解しやすいが,安定性の点で問題がある。to(i)の係数, (1 - ae(i) - aw(i))がマイナスの値になると,計算が不安定になる。 これを防ぐためにはdg(i), dx(i),すなわち空間分解能と dt,すなわち時間分解能をうまくバランスさせることが必要である。


実際に計算

必要なパラメータを入力し,計算を実施してみる。

初期温度(TL): [K]
熱源温度(TH): [K]
熱伝導率(λ): [W/m K]
密度(ρ): [kg/m^3]
比熱(c): [J/(kg K)]
板の厚さ(width): [m]
格子点数: [-]
計算終了時刻: [s]
時間分割数: [-]

結果は以下の通りである:


参考文献
[1] 香月正司,中山顕『熱流動の数値シミュレーション―基礎からプログラムまで―』(森北出版株式会社,1990年),pp.15 - 18
[2] スハス・V・パタンカー著,水谷幸夫,香月正司訳『コンピュータによる熱移動と流れの数値解析』(森北出版株式会社,1985年),pp.52 - 53

<back>