传热大作业二维导热物体温度场的数值模拟(等温边界条件)姓名:班级:学号:1墙角稳态导热数值模拟(等温条件)一、物理问题有一个用砖砌成的长方形截面的冷空气空道,其截面尺寸如下图所示,假设在垂直于纸面方向上冷空气及砖墙的温度变化很小,可以近似地予以忽略。在下列两种情况下试计算:(1)砖墙横截面上的温度分布;(2)垂直于纸面方向的每米长度上通过砖墙的导热量。外矩形长为3.0m,宽为2.2m;内矩形长为2.0m,宽为1.2m。第一种情况:内外壁分别均匀地维持在0℃及30℃;第二种情况:内外表面均为第三类边界条件,且已知:外壁:30℃,h1=10W/m2·℃,内壁:10℃,h2=4W/m2·℃砖墙的导热系数λ=0.53W/m·℃由于对称性,仅研究1/4部分即可。二、数学描写对于二维稳态导热问题,描写物体温度分布的微分方程为拉普拉斯方程02222ytxt这是描写实验情景的控制方程。三、方程离散2用一系列与坐标轴平行的网格线把求解区域划分成许多子区域,以网格线的交点作为确定温度值的空间位置,即节点。每一个节点都可以看成是以它为中心的一个小区域的代表。由于对称性,仅研究1/4部分即可。依照实验时得点划分网格:建立节点物理量的代数方程对于内部节点,由∆x=∆y,有)(411,1,,1,1,nmnmnmnmnmttttt由于本实验为恒壁温,不涉及对流,故内角点,边界点代数方程与该式相同。设立迭代初场,求解代数方程组。图中,除边界上各节点温度为已知且不变外,其余各节点均需建立类似3中的离散方程,构成一个封闭的代数方程组。以Ct000为场的初始温度,代入方程组迭代,直至相邻两次内外传热值之差小于0.01,认为已达到迭代收敛。四、编程及结果1)源程序#includestdio.h#includemath.hintmain(){intk=0,n=0;doublet[16][12]={0},s[16][12]={0};doubleepsilon=0.001;doublelambda=0.53,error=0;doubledaore_in=0,daore_out=0,daore=0;FILE*fp;3fp=fopen(data3,w);for(inti=0;i=15;i++)for(intj=0;j=11;j++){if((i==0)||(j==0))s[i][j]=30;if(i==5)if(j=5&&j=11)s[i][j]=0;if(j==5)if(i=5&&i=15)s[i][j]=0;}for(inti=0;i=15;i++)for(intj=0;j=11;j++)t[i][j]=s[i][j];n=1;while(n0){n=0;for(intj=1;j=4;j++)t[15][j]=0.25*(2*t[14][j]+t[15][j-1]+t[15][j+1]);for(inti=1;i=4;i++)t[i][11]=0.25*(2*t[i][10]+t[i-1][11]+t[i+1][11]);for(inti=1;i=14;i++)for(intj=1;j=4;j++)t[i][j]=0.25*(t[i+1][j]+t[i-1][j]+t[i][j+1]+t[i][j-1]);for(inti=1;i=4;i++)for(intj=5;j=10;j++)t[i][j]=0.25*(t[i+1][j]+t[i-1][j]+t[i][j+1]+t[i][j-1]);for(inti=0;i=15;i++)for(intj=0;j=11;j++)if(fabs(t[i][j]-s[i][j])epsilon)n++;for(inti=0;i=15;i++)for(intj=0;j=11;j++)s[i][j]=t[i][j];k++;//printf(%d\n,k);}for(intj=0;j=5;j++){for(inti=0;i=15;i++){printf(%4.1f,t[i][j]);fprintf(fp,%4.1f,t[i][j]);}printf(\n);fprintf(fp,\n);}4for(intj=6;j=11;j++){for(inti=0;i=5;i++){printf(%4.1f,t[i][j]);fprintf(fp,%4.1f,t[i][j]);}fprintf(fp,\n);printf(\n);}for(inti=1;i=14;i++)daore_out+=(30-t[i][1]);for(intj=1;j=10;j++)daore_out+=(30-t[1][j]);daore_out=4*(lambda*(daore_out+0.5*(30-t[1][11])+0.5*(30-t[15][1])));for(inti=5;i=14;i++)daore_in+=t[i][4];for(intj=5;j=10;j++)daore_in+=t[4][j];daore_in=4*(lambda*(daore_in+0.5*t[4][11]+0.5*t[15][4]));error=abs(daore_out-daore_in)/(0.5*(daore_in+daore_out));daore=(daore_in+daore_out)*0.5;printf(k=%d\n内墙导热=%f\n外墙导热=%f\n平均值=%f\n偏差=%f\n,k,daore_in,daore_out,daore,error);}2)结果截图七.总结与讨论51.由实验结果可知:等温边界下,数值解法计算结果与“二维导热物体温度场的电模拟实验“结果相似,虽然存在一定的偏差,但由于点模拟实验存在误差,而且数值解法也不可能得出温度真实值,同样存在偏差,但这并不是说数值解法没有可行性,相反,由于计算结果与电模拟实验结果极为相似,恰恰说明数值解法分析问题的可行性。用数值解法仅用计算机模拟就能解决某些复杂的工程问题,为复杂工程问题的求解提供了极大的便利。2.在实验中,内外边界散热量存在偏差,这在很大程度上是由于用数值计算分析问题时,采用离散平均的思想,用节点中心的温度代替节点的平均温度从而产生误差。不断提高所划分的网格数目,实验偏差会得到不断改善。3.通过这次的上机实验,对传热的很多问题和数值算法都有一定的加深理解和掌握,收获很多,同时对于个人的动手动脑及解决问题的能力都有一定的提高。同样,这也反过来证实了“二维导热物体温度场的电模拟实验”的正确性和可行性。//mm.cpp:定¡§义°?控?制?台¬¡§应®|用®?程¨¬序¨°的Ì?入¨?口¨²点Ì?。¡ê//#includestdafx.h#includestdio.h#includemath.hintmain(){intk=0,n=0;doublet[16][12]={0},s[16][12]={0};doubleepsilon=0.01;doublelambda=0.53,error=0;doubledaore_in=0,daore_out=0,daore=0;FILE*fp;fp=fopen(data3,w);for(inti=0;i=15;i++)for(intj=0;j=11;j++){if((i==0)||(j==0))s[i][j]=30;if(i==5)if(j=5&&j=11)s[i][j]=0;if(j==5)if(i=5&&i=15)s[i][j]=0;}for(inti=0;i=15;i++)for(intj=0;j=11;j++)t[i][j]=s[i][j];n=1;while(n0){6n=0;for(intj=1;j=4;j++)t[15][j]=0.25*(2*t[14][j]+t[15][j-1]+t[15][j+1]);for(inti=1;i=4;i++)t[i][11]=0.25*(2*t[i][10]+t[i-1][11]+t[i+1][11]);for(inti=1;i=14;i++)for(intj=1;j=4;j++)t[i][j]=0.25*(t[i+1][j]+t[i-1][j]+t[i][j+1]+t[i][j-1]);for(inti=1;i=4;i++)for(intj=5;j=10;j++)t[i][j]=0.25*(t[i+1][j]+t[i-1][j]+t[i][j+1]+t[i][j-1]);for(inti=0;i=15;i++)for(intj=0;j=11;j++)if(fabs(t[i][j]-s[i][j])epsilon)n++;for(inti=0;i=15;i++)for(intj=0;j=11;j++)s[i][j]=t[i][j];k++;//printf(%d\n,k);}for(intj=0;j=5;j++){for(inti=0;i=15;i++){printf(%4.1f,t[i][j]);fprintf(fp,%4.1f,t[i][j]);}printf(\n);fprintf(fp,\n);}for(intj=6;j=11;j++){for(inti=0;i=5;i++){printf(%4.1f,t[i][j]);fprintf(fp,%4.1f,t[i][j]);}fprintf(fp,\n);printf(\n);}for(inti=1;i=14;i++)daore_out+=(30-t[i][1]);for(intj=1;j=10;j++)daore_out+=(30-t[1][j]);daore_out=4*(lambda*(daore_out+0.5*(30-t[1][11])+0.5*(30-t[15][1])));for(inti=5;i=14;i++)daore_in+=t[i][4];for(intj=5;j=10;j++)daore_in+=t[4][j];7daore_in=4*(lambda*(daore_in+0.5*t[4][11]+0.5*t[15][4]));error=abs(daore_out-daore_in)/(0.5*(daore_in+daore_out));daore=(daore_in+daore_out)*0.5;printf(k=%d\n内¨²墙?导Ì?热¨¨¨q1=%f\n外ªa墙?导Ì?热¨¨¨q2=%f\n平?均¨´值¦Ìq=%f\n偏?差?error=%f\n,k,daore_in,daore_out,daore,error);getchar();}#includeiostream#includefstream#includeiomanipusingnamespacestd;intmain(){coutsetiosflags(ios::fixed);inti,j;doubletemp,q_in,q_out,q;doubleeps=1;doubleA[16][12];//设¦¨¨置?迭̨¹代䨲初?场?for(i=1;i16;i++){for(j=1;j6;j++)A[i][j]=0;}for(i=1;i6;i++){for(j=6;j12;j++)8A[i][j]=0;}for(i=0;i16;i++)A[i][0]=30;for(j=0;j12;j++)A[0][j]=30;//建¡§立¢¡é迭̨¹代䨲方¤?程¨¬组Á¨¦并¡é求¨®解awhile(eps1.0E-4){for(j=1;j5;j++)A[15][j]=(A[15][j+1]+A[15][j-1]+2*A[14][j])/4;for(i=5;i15;i++){for(j=1;j5;j++){A[i][j]=(A[i-1][j]+A[i+1][j]+A[i][j-1]