计算传热学大作业

  • 格式:doc
  • 大小:147.00 KB
  • 文档页数:10

计算传热学作业

1、 一块厚度为2h=200mm的钢板,放入Tf=1000℃的炉子中加热,两表面换热系数h=174W/(m2.℃),钢板的导热系数k=34.8 W/(m. ℃),热扩散率a=5.55×10-6m2/s,初始温度Ti=20℃.

求温度场的数值解;分别用显示、C-N、隐式

解:

1、数学模型

该问题属于典型的一维非稳态导热问题。由于钢板两面对称受热,板内温度分布必以其中心截面为对称面。因此,只要研究厚度为的一半钢板即可。将x轴的原点置于板的中心截面上。

这一半钢板的非稳态导热的数学描述为

2、计算区域离散化:

该一维非稳态导热问题可当做二维问题处理,有时间坐标和空间坐标x。采用区域离散方法A,将空间区域等分为m个子区域,得到m+1个节点。如下图所示,纵坐标为时间,从一个时到另一个时层的间隔即时间步长为t,每个时层都会对下一时层产生影响。空间与时间网格交点(i,k),代表了时空区域的一个节点,其温度为,离散方法如下图。综合考虑计算效率同时保证数值计算格式的稳定性,本文取空间步长x=0.01m,时间步长t=5s,对半平板空间的离散共得到11个节点。 xTaT2200TT00xxTxTThxTf)(

图 时间-空间区域离散化

3、离散方程组

对于一维非稳态方程,扩散项采用中心差分,非稳态项取时间向前差分。扩散项根据时层采用不同的处理方法,得到了三种格式的离散方程组,即显式、隐式、C-N格式,等式左右分属不同的时层。

(1) 显示差分格式:

内部节点:]][[]][1[]][[2]][1[]1][[2jiTjiTjiTjiTxtajiT

左边界:]][0[21]][1[2]1][0[22jTxtajTxtajT

右边界:fTjTxktahjTxtajTxtajT]][10[2]][10[21]][9[2]1][10[22

(2) 隐式差分格式:

内部节点:]][[]1][1[]1][[21]][1[222jiTjiTxtajiTxtajiTxta

左边界:]][0[]1][0[)21(]1][1[222jTjTxtajTxta

右边界:]][10[2]1][9[)2]1][10[)21(2jTxkthajTxtajTxktha

(3)C-N差分格式:

内部节点:

]][1[]][[2]][1[2]][[]1][1[]1][[21]1][1[22222jiTjiTjiTxtajiTjiTxtajiTxtajiTxta左边界:]][1[]][0[)1(]1][1[)]1][0[)1(222jTjTxtajTxtajTxta

右边界:fTxkthajTxtajTxtaxkthajTxtajTxtaxktha2]][9[]][10[)1(]1][9[)]1][10[)1(2222

4、计算结果

节点 0 1 2 3 4 5 6 7 8 9 10

显式

997.197592 997.203574 997.221492 997.251271 997.292784 997.345852 997.410251 997.485704 997.571890 997.668441 997.774945

隐式 997.197592 997.203574 997.221492 997.251271 997.292784 997.345852 997.410251 997.485704 997.571890 997.668441 997.774945

C-N格式 997.197592 997.203574 997.221492 997.251271 997.292784 997.345852 997.410251 997.485704 997.571890 997.668441 997.774945

精确解 997.188 997.194 997.212 997.242 997.283 997.336 997.401 997.477 997.563 997.66 997.767

源程序代码:

显式:#include

#include

#include

#include

#include

#include

double T[11][5000];

main() 格式

{

int i,j;

double k;/*µ¼ÈÈϵÊý*/

double h;/*»»ÈÈϵÊý*/

double a;/*ÈÈÀ©É¢ÂÊ*/

double x1,t1;/*x1±íʾλÖò½³¤£¬ti±íʾʱ¼ä²½³¤*/

double T0;/*T0±íʾ³õʼζÈ*/

double Tf;/*Tf±íʾ¯ÎÂ*/

double p,q;

h=174;

k=34.8;

a=0.00000555;

T0=20;

Tf=1000;

x1=0.01;

t1=5;

/*T[199][j]=(T[198][j]+h*x1*Tf/k)/(1+h*x1/k);*/

for(i=0;i<=10;i++) T[i][0]=T0;

for(j=0;j<4999;j++)

{ T[0][j+1]=2*a*t1*(T[1][j]-T[0][j])/(x1*x1)+T[0][j];

for(i=1;i<10;i++)

{

p=a*(T[i+1][j]-2*T[i][j]+T[i-1][j])/(x1*x1);

/*q=(T[i][j+1]-T[i][j])/t1;

q=p;*/

T[i][j+1]=p*t1+T[i][j];

}

T[10][j+1]=2*h*a*t1*(Tf-T[10][j])/(x1*k)+2*a*t1*(T[9][j]-T[10][j])/(x1*x1)+T[10][j];

}

for(i=0;i<=10;i++)

{

printf("%f",T[i][4999]);/*´òÓ¡Êä³ö*/

printf("\n");

}

system("pause");

}

隐式:#include

#include

#include

#include

#include

#include

double T[11][5000];

main()

{

int i,j;

double k;/*µ¼ÈÈϵÊý*/

double h;/*»»ÈÈϵÊý*/

double a;/*ÈÈÀ©É¢ÂÊ*/

double x1,t1;/*x1±íʾλÖò½³¤£¬t1±íʾʱ¼ä²½³¤*/

double T0;/*T0±íʾ³õʼζÈ*/

double Tf;/*Tf±íʾ¯ÎÂ*/

double A[11],B[11],C[11],D[11],P[11],Q[11];

h=174;

k=34.8;

a=0.00000555;

T0=20;

Tf=1000;

x1=0.01;

t1=5;

for(i=0;i<=10;i++)

T[i][0]=T0;

for(j=1;j<=4999;j++)

{

for(i=1;i<=9;i++) A[i]=a*t1/(x1*x1);

A[0]=0;

A[10]=2*a*t1/(x1*x1);

for(i=0;i<=9;i++)B[i]=-(1+2*a*t1/(x1*x1));

B[0]=-(1+2*a*t1/(x1*x1));

B[10]=-(1+2*a*t1*h/(k*x1))-2*a*t1/(x1*x1);

for(i=1;i<=9;i++)

C[i]=a*t1/(x1*x1);

C[0]=2*a*t1/(x1*x1);

C[10]=0;

for(i=0;i<=9;i++)D[i]=-T[i][j-1];

D[10]=-2*a*t1*h*Tf/(k*x1)-T[10][j-1];

for(i=1;i<=10;i++)

{A[i] = A[i] / B[i-1];

B[i] = B[i] - C[i-1] * A[i];

D[i] = D[i] - A[i] * D[i-1];}

T[10][j] = D[10] / B[10];

for(i=9;i>=0;i--)

T[i][j] = (D[i] - C[i] * T[i+1][j]) / B[i];

}

for(i=0;i<=9;i++)

{