c语言求解热传导方程,二维稳态导热问题的数值解法.docx
核科學與技術學院
《傳熱學》
二維穩態導熱問題的
數值解法作業
姓名:羅曉
學號: 2014151214
班級:任課教師:李磊,張智剛
哈爾濱工程大學
核科學與技術學院
2016 年 11月 28 日
1
問題重述:
第一題:
如圖所示,一個無限長矩形柱體,其橫截面的邊長分別為
L1 和
L2,常物性。該問題可視為二維穩態導熱問題, 邊界條件如圖中所示,
其中 L1
, 2
,
w1
℃, w2
℃, λ
。
=0.6m L =0.4m
T =60
T
=20
=200 W/(mK)
1)
編寫程序求解二維導熱方程。
2)
繪制 x=L1/2 和 y=L2/2 處的溫度場,并與解析解進行比較。已
知矩形內的溫度場的解析解為:
t x, y
t w1
tw2 sin x L1
sh y
L1 。
sh L2
L1
第二題
將第一題中 y
L2 處的邊界條件變為 t tw 2 ,其他條件不變。
1) 編寫程序求解二維導熱方程并計算從
y=0 處導入的熱量 2 。
當 L2 L1 時,該二維導熱問題可簡化為一維導熱問題。 在一維的近
似下,試計算從 y=0 處導入的熱量 1 ,并比較不同 L2/L1 下 2 1 的比值。由該問題的解析解可知:
L /L
1
0.007
0.01
0.05
0.08
0.1
2
2
1
0.9987
0.9912
0.956
0.93
0.912
解:(第一題第一問)
對于此問題, 由于可以視為二維穩態導熱問題,由二維穩態熱傳導
2
2t
2 t
0
基本方程:
2
y2
x
用數值法對該區域進行節點劃分(如下圖所示):x 方向上一共劃分M
個節點, y 方向上一共劃分N 個節點。
可以將以上方程改為:
tm 1,nt m 1,n
2tm,n
tm,n 1
tm, n 1
2tm,n
0
x2
y2
如果我們取
x
y
則有: tm,n
t m 1,n
tm 1,n
t m 1,n
tm 1,n
4
考慮到節點位置的特殊性,我們在此將節點的種類進行如下劃分,并
給出節點的離散方程。
節點類別下標變化范圍離散方程
am=M;
t M ,ntw1
n=1,2,3,4.........N-1;
bm=0,1,2,3,4,.......M;tm, N tw1 t w2 sin( x / L1)
3
n=N;
c
m=1,2,3,4.......
M-1;
n=1,2,3,4.........
N-1;
d
m=0;
n=1,2,3,4........
N-1;
e
m=0,1,2,3.........
M;
n=0;
t m 1, n
tm 1, n
t m 1, n
tm 1, n
t m , n
4
t1,ntw1
tm,1tw1
由于本題中 L1/L2=3/2, 我們取節點 M=61,N=41 ,則一共可得到61*41
個內節點。
我們采用兩種方法進行編程如下:
編寫程序如下進行迭代計算(注:所用軟件為 Matlab2014a,下同)。
編程源代碼見 附錄一 :
得到的溫度分布如下圖所示:
采用 C 語言進行編程(編程軟件為 visual studio community2015 ,下同)
4
編程源代碼見 附錄二 ;
迭代初值為 0.000000,
迭代次數為 1326,
得到結果見 附件一;
第一題第二問 :
在 第 一 問 C 程 序 得 到 的 結 果 中 查 找 (m=40;1=0,1,2,....40) 和
m=1,1,2.....60;n=20)時的溫度值,就可得到 x=L1/2 和 y=L2/2 處的溫度
離散點的值,見 附件二。
按 照 理 論 值 , y=L2/2
時,溫度場的解析解為
sh
y
L1
t x, yt w1 tw2 sin x L1 sh
L
2
L
tw1 tw2 sin x L1 5.01835
1
將解析法的值與迭代法的值做差得到溫度誤差,用matlab 畫圖,程
序見附錄三 :
結果如下:
5
同理可得 x=L1/2 時解析法的值與迭代法的值做差得到的溫度誤差的
擬合曲線如下(編程見附錄四 ):
由此可見迭代法求解的溫度場和解析解之間還存在一定的誤差,不過
溫度場的總體趨勢還是相同的。
第二題第一問
編程方法和第一題第一問類似,只需改變一個邊界條件。
這里我們采用matlb 編寫程序(編程源代碼見附錄五);:
6
從從 y=0 處導入的熱量
2 可以看成是從 n=1 到 n=2 節點傳入的熱量,
(假設矩形柱體的高度為 1m)
t 1 , 2
t 1 ,1
t 2 , 2
總結
以上是生活随笔為你收集整理的c语言求解热传导方程,二维稳态导热问题的数值解法.docx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言1至1000能被7或11 个数20
- 下一篇: jmeter linux安装,Linux