计算传热学大作业
- 格式: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个节点。 xTaT2200TT00xxTxTThxTf)(
图 时间-空间区域离散化
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
右边界:fTxkthajTxtajTxtaxkthajTxtajTxtaxktha2]][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++)
{