1次元熱伝導方程式のフーリエ級数解法 ― 簡易モデルを用い...
TRANSCRIPT
1次元熱伝導方程式のフーリエ級数解法
― 簡易モデルを用いた地熱発電の シミュレーション ―
渡辺幸信
2018年6月7日 エネルギー工学演習II
1
1.はじめに
本演習では1次元熱伝導方程式のフーリエ級数による解法を用いて数値計算する方法を学ぶ。地熱発電の簡単なコンピュータモデルを考案し、エネルギー取り出しの数値予測を行う。
http://eco.nikkeibp.co.jp/article/special/20100721/104312/
2
2.地熱発電モデルと一次元熱伝導方程式(1)
• 地質学の経験則: 100m掘る毎に約3℃上昇
• 地表10℃ 10,000mの深さ 310℃
• 計算を簡単にするため、割れ口(フラック)は一様な形で周期的に並んでおり、 2つのフラック間は距離d離れていると 仮定する。
• 各フラックペアの平行面の間には厚さdの岩盤の層があり、その熱はフラックを通って流れる水によって持ち去られる。岩盤・水の界面の表面積を十分大きくとることで熱源の岩盤を無限平行平板と見なし、1次元熱伝導問題に帰着して扱う。
3
2.地熱発電モデルと一次元熱伝導方程式(2)
岩盤
初期温度分布
岩 盤
岩 盤
水 水
水
X方向
発電所の運転中、水の温度T1は熱媒体の動作
温度と一定に保たれているとする。
X方向
4
d
2.地熱発電モデルと一次元熱伝導方程式(3)
• 解くべき1次元熱伝導方程式
• 単位面積を通る熱流速 (熱伝導のフーリエの式から)
• 熱交換する岩盤・水と境界の表面積を A とすると熱流
• 時刻 t までに発生した熱エネルギーは
5
2
2 ),(),(
x
txT
ct
txT
: 熱伝導度[W/mK] : 岩盤の密度[kg/m3] : 岩盤の比熱[J/kg K]
c
x
txTtxq
),(),(
0
),(),0()(
xx
txTAtqAtP
t
dttPtQ0
)()(
3.フーリエ級数を用いた解法(1) • 初期条件&境界条件
• (1)式の特殊解 – x =0 と x=d で時間に依存しない値をとるものと仮定すると
6
初期条件: t=0での温度分布 T(x,0) 境界条件: t>0で T(0,t)=T(d,t)=T1
,2,1 ),()(sin),()(
ntax
d
ntxT n
n 定数
)()(
2
tad
n
cdt
tdan
n
t
d
n
cata nn
2
exp)0()(
変数分離
位置x 時間t
各自確かめよ(宿題)
3.フーリエ級数を用いた解法(2)
• 特殊解の線形結合もそれ自身が方程式の解であるので、特殊解を次式のように重ね合わせ、初期条件を満足するようにする。
7
1
1 sin)(),(n
n xd
ntaTtxT
1
1
1
sin)0(
sin)0()0,(
n
nn
n
n
xka
xd
naTxT
dxxkTxTd
a n
d
n )sin()0,(2
)0(0
1
フーリエ級数の係数 フーリエ級数展開
初期条件t=0
3.フーリエ級数を用いた解法(3) 8
0
1
)0,(0
)0,(,0
TxTdx
TxTdxx
,6,4,20
,5,3,1)(4
)sin(2
)sin()0,(2
)0(
10
010
01
n
nTTn
dxxkTTd
dxxkTxTd
a
n
d
n
d
n
初期条件
フーリエ級数の係数
各自確かめよ(宿題)
3.フーリエ級数を用いた解法(4)
• 1次元熱伝導方程式の解:
• 熱流 P(t) や時刻 t までに発生した熱エネルギー Q(t) :
9
10
)exp()0(),(
)(n
nnn
x
tbkaAx
txTAtP
1
0)exp(1
)0()()(
n
n
n
nnt
tbb
kaAdttPtQ
)exp(sin)0(),(1
1 tbxkaTtxT n
n
nn
d
nkn
2
d
n
cbn
無限級数展開
• 温度分布 T(x,0) を計算するために、x軸上の[0,d]区間を id 個の小区間に分割して、id+1個の で刻み幅 の分点を得る。これらの分点での温度は
• 実際の数値計算では上式の右辺のようにnmaxまでの有限個の和で打ち切る。
4.プログラミング (1) 10
)exp(sin)0(),()(max
1
1 tbxkaTtxTtT n
n
n
innii
di iiihx ,,2,1,0 ,
di
dh
0 d h 2h ih
4.プログラミング (2) 11
)exp(sin)0(),()(max
1
1 tbxkaTtxTtT n
n
n
innii
Doループによる反復演算
do i =m, n, k ! 始値m 終値n 増分値k の doループ wa = wa + 1 ! mからn以下の範囲で、iをkずつ増加させた演算
enddo
本日の演習課題(1) 12
1) プログラミングに関する問題 ① 図2のサンプルプログラムには2箇所誤りがある。 これらを訂正しなさい。 サンプルプログラム download先: ② 次に、read文やwrite文を用いて、入力や出力部を 作成してプログラムを完成させよ。
http://enep.ence.kyushu-u.ac.jp/lectures06.html
サンプルプログラム 13
)exp(sin)0(),()(max
1
1 tbxkaTtxTtT n
n
n
innii
サンプルプログラム(続き) 14
サンプルプログラム(続き) 15
16
誤り訂正箇所 17
do n=1, nmax, 2
t(i)= t(i) + an0*sin(kn*x(i))*en
)exp(sin)0(),()(max
1
1 tbxkaTtxTtT n
n
n
innii
演習のヒント 18
read文とwrite文による標準入出力(画面上での入出力)
open文により出力ファイルを開いてデータを書きだす
integer i
real(8) a
write(*,’(a¥)’) ‘input i, a : ‘ ! 入力を促す表示(改行を抑制) read(*,*) i, a ! 標準入力(キーボードから) write(*,*) ‘i, a = ‘, i, a ! 標準出力(ディスプレイ画面へ)
open(20,file=‘output.dat’) ! ファイル番号20番で出力ファイル
! output.datを開く write(20,*) ‘i, a = ‘, i, a ! iとaの値をoutput.datに書きだす
close(20) ! ファイルを閉じる
本日のレポート課題(2) 19
2) 下記の条件で計算を行い、計算プログラムの動作を確認せよ。 T0=300℃, T1=200℃, d=100m, A=1km2, t=1年,
nmax=1000
計算結果の温度分布を図示して 図3と一致しているかどうか調べよ。
200
220
240
260
280
300
320
0 20 40 60 80 100
Te
mp
era
ture
(d
eg
ree
s)
x (m)