传热学数值计算大作业一选题《传热学》第四版P179页例题4-3二相关数据及计算方法1.厚2δ=0.06m的无限大平板受对称冷却,故按一半厚度作为模型进行计算2.δ=0.03m,初始温度t0=100℃,流体温度t∞=0℃;λ=40W/(m.K),h=1000W/(m2.K),Bi=h*△x/λ=0.25;3.设定Fo=0.25和Fo=1两种情况通过C语言编程(源程序文件见附件)进行数值分析计算;当Fo=0.25时,Fo1/(2*(1+Bi)),理论上出现正确的计算结果;当Fo=1时,Fo1/(2*(1+Bi)),Fo0.5,理论上温度分布出现振荡,与实际情况不符。三网格划分将无限大平面的一半划分为6个控制体,共7个节点。△x=0.03/N=0.03/6=0.005,即空间步长为0.005m四节点离散方程绝热边界节点即i=1时,tij+1=2Fo△ti+1j+(1-2Fo△)tij内部节点即0iN+1时,tij+1=Fo△(ti+1j+ti-1j)+(1-2Fo△)tij对流边界节点即i=N+1时,tij+1=tij(1-2Fo△Bo△-2Fo△)+2Fo△ti-1j+2Fo△Bo△tf五温度分布线图(origin)六结果分析1空间步长,时间步长对温度分布的影响空间步长和时间步长决定了Bo和Fo,两者越小计算结果越精确,但同时计算所需的时间就越长。2Fo数的大小对计算结果的影响编程时对Fo=1及0.25的情况分别进行了计算,发现当Fo=1时,各点温度随时间发生振荡,某点的温度高反而会使下一时刻的温度变低,违反了热力学第二定律,因此在计算中对Fo的选取有限制。为了保证各项前的系数均为正值,对于内节点,Fo0.5;对于对流边界节点,Fo1/(2*(1+Bi))。3备注在Fo=0.25时,为了反映较长时间后温度的分布,取T=600,并选取了其中部分时刻的温度输出进行画图。图像显示,随着时间的增长,各点温度趋向一致。而当Fo=1时由于结果会出现振荡,只取T=6观察即可。附录1C语言源程序当步长为0.005,Fo=1的程序#includestdio.h#includemath.hvoidmain(){intN=6;/*网格划分后计算区域共N个控制体*/intT=6;/*共计算0~T时刻的温度变化*/floatt[7][7],c[7][7];/*将节点和时间对应构成二维数组*//*参数设定*/inti,j,tf,r,h,min;floatBi,x,Fo;Fo=1;x=0.03/N;tf=0;/*边界对流换热温度为0摄氏度*/r=40;h=1000;Bi=h*x/r;/*0时刻温度均为100摄氏度,即对各点设定初值*/for(i=0;i=N;i++)t[i][0]=100;/*对T0时刻各节点的温度进行计算*/for(j=0;jT;j++){for(i=0;i=N;i++)c[i][j]=t[i][j];min=1;while(min0.00001){for(i=0;i=N;i++){if(i==0)t[i][j+1]=2*Fo*t[i+1][j]+(1-2*Fo)*t[i][j];/*绝热边界离散方程*/elseif((i!=0)&&(i!=N))t[i][j+1]=Fo*(t[i+1][j]+t[i-1][j])+(1-2*Fo)*t[i][j];/*中间所有节点的离散方程*/elseif(i==N)t[i][j+1]=t[i][j]*(1-2*Fo*Bi-2*Fo)+2*Fo*t[i-1][j]+2*Fo*Bi*tf;/*对流换热边界节点的离散方程*/}min=0;for(i=0;i=N;i++)min=min+abs(t[i][j]-c[i][j]);min=min/(N+1);}}/*输出各时刻相应节点的温度值*/printf(\n当步长为0.005,Fo=1,0~6时刻,间隔1个时间步长时计算的温度分布为:\n);intn=0;for(j=T;j=0;j--)for(i=0;i=N;i++){printf(%7.2f,t[i][j]);n=n+1;if(n==(N+1)){printf(\n);n=0;}}getchar();}当步长为0.005,Fo=0.25的程序#includestdio.h#includemath.hvoidmain(){intN=6;/*网格划分后计算区域共N个控制体*/intT=600;/*共计算0~T时刻的温度变化*/floatt[7][601],c[7][601];/*将节点和时间对应构成二维数组*//*参数设定*/inti,j,tf,r,h,min;floatBi,x,Fo;Fo=0.25;x=0.03/N;tf=0;/*边界对流换热温度为0摄氏度*/r=40;h=1000;Bi=h*x/r;/*0时刻温度均为100摄氏度,即对各点设定初值*/for(i=0;i=N;i++)t[i][0]=100;/*对T0时刻各节点的温度进行计算*/for(j=0;jT;j++){for(i=0;i=N;i++)c[i][j]=t[i][j];min=1;while(min0.00001){for(i=0;i=N;i++){if(i==0)t[i][j+1]=2*Fo*t[i+1][j]+(1-2*Fo)*t[i][j];/*绝热边界离散方程*/elseif((i!=0)&&(i!=N))t[i][j+1]=Fo*(t[i+1][j]+t[i-1][j])+(1-2*Fo)*t[i][j];/*中间所有节点的离散方程*/elseif(i==N)t[i][j+1]=t[i][j]*(1-2*Fo*Bi-2*Fo)+2*Fo*t[i-1][j]+2*Fo*Bi*tf;/*对流换热边界节点的离散方程*/}min=0;for(i=0;i=N;i++)min=min+abs(t[i][j]-c[i][j]);min=min/(N+1);}}/*输出各时刻相应节点的温度值*/printf(\n当步长为0.005,Fo=0.25,30~0时刻,间隔5个时间步长时计算的温度分布为:\n);intn=0;for(j=30;j=0;j=(j-5))for(i=0;i=N;i++){printf(%7.2f,t[i][j]);n=n+1;if(n==(N+1)){printf(\n);n=0;}}printf(\n当步长为0.005,Fo=0.25,600~31时刻,间隔30个时间步长时计算的温度分布为:\n);for(j=T;j=31;j=(j-30))for(i=0;i=N;i++){printf(%7.2f,t[i][j]);n=n+1;if(n==(N+1)){printf(\n);n=0;}}getchar();}