哈工大传热学虚拟仿真实验报告.docx
- 文档编号:11278130
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:17
- 大小:186.54KB
哈工大传热学虚拟仿真实验报告.docx
《哈工大传热学虚拟仿真实验报告.docx》由会员分享,可在线阅读,更多相关《哈工大传热学虚拟仿真实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
哈工大传热学虚拟仿真实验报告
HarbinInstituteofTechnology
传热学虚拟仿真实验报告
院系:
能源科学与工程学院
班级:
设计者:
学号:
指导教师:
董士奎
设计时间:
2016.11.7
传热学虚拟仿真实验报告
1应用背景
数值热分析在核工业、铁道、石油化工、航空航天、机械制造、能源、汽车交通、国防军工、电子、土木工程、造船、生物医学、轻工、地矿、水利、以及日用家电等各个领域都有广泛的应用。
2二维导热温度场的数值模拟
2.1二维稳态导热实例
假设一用砖砌成的长方形截面的冷空气通道,其截面如图2.1所示,假设在垂直于纸面方向上冷空气及砖墙的温度变化很小,可以近似地予以忽略。
图2.1一用砖砌成的长方形截面的冷空气通道截面
2.2二维数值模拟
基于模型的对称性,简化为如图所示的四分之一模型。
图2.2二维数值模拟
2.3建立离散方程
此时对于内部节点,如图2.3:
对于平直边界上的节点,如图2.4:
对于外部和内部角点,如图2.5:
图2.3内部节点图2.4平直边界上的节点图2.5内部角点和外部角点
对于对称边界(绝热边界),如图2.6:
图2.6对称边界(绝热边界)图2.7建立离散方程
此时显示格式、隐式格式依次为,如图2.7:
2.4C++程序
2.4.1程序流程图如下图2.8所示
图2.8程序流程图
2.4.2程序各变量含义如下图2.9所示
n_L1,n_L2,n_L3,n_L4,n_thick1,n_thick2分别为对应边的网格数。
2.4.3程序
#include
#include
intmain()
{
floatL1,L2,L3,L4,thick1,thick2;/*L1外矩形宽,L2外矩形长,L3内矩形宽,L4内矩形长,thick1宽度方向厚度,thick1长度方向厚度*/
intn_L1,n_L2,n_L3,n_L4,n_thick1,n_thick2;/*各边网格数*/
inti,j,n,number;/*n迭代次数*/
doubleeps=5.0e-6;
floatdelt_y1,delt_y2,delt_x1,delt_x2;
floatcond,conv_out,conv_in,tout,tin;/*cond导热系数conv_out外部对流换热系数conv_in内部对流换热系数tout外部环境温度tin内部环境温度*/
/*输入几何信息*/
printf("请输入L1:
");
scanf("%f",&L1);
printf("请输入L2:
");
scanf("%f",&L2);
printf("请输入L3:
");
scanf("%f",&L3);
printf("请输入L4:
");
scanf("%f",&L4);
/*输入网格信息*/
printf("请输入边L1网格数(<100):
");
scanf("%d",&n_L1);
printf("请输入边L2网格数(<100):
");
scanf("%d",&n_L2);
printf("请输入边L3网格数(<100):
");
scanf("%d",&n_L3);
printf("请输入边L4网格数(<100):
");
scanf("%d",&n_L4);
/*输入边界条件*/
printf("请输入材料导热系数(W/(m·K):
");
scanf("%f",&cond);
printf("请输入外部环境温度(K):
");
scanf("%f",&tout);
printf("请输入内部环境温度(K):
");
scanf("%f",&tin);
printf("请输入外部对流换热系数(W/(m2·K):
");
scanf("%f",&conv_out);
printf("请输入内部对流换热系数(W/(m2·K):
");
scanf("%f",&conv_in);
thick1=(L2-L4);
thick2=(L1-L3);
n_thick1=(n_L2-n_L4);
n_thick2=(n_L1-n_L3);
/**************网格大小*********************/
delt_x1=thick1/n_thick1;
delt_x2=L4/n_L4;
delt_y1=thick2/n_thick2;
delt_y2=L3/n_L3;
/*******************************************/
/*节点赋初值*/
doubletem0[100][100];/*节点温度tem0()上次迭代结果,tem()本次迭代结果*/
doubletem[100][100];
doublex[100][100];
doubley[100][100];
n=0;
do{
/*区域1内部节点温度*/
/*************************************************/
for(i=1;i { for(j=n_L3+1;j { tem0[i][j]=((tem[i+1][j]+tem[i-1][j])*delt_y1*delt_y1+(tem[i][j+1]+tem[i][j-1])*delt_x1*delt_x1)/2.0/(delt_y1*delt_y1+delt_x1*delt_x1); } } /*************************************************/ /*区域2内部节点温度*/ /*************************************************/ for(i=1;i { for(j=1;j { tem0[i][j]=((tem[i+1][j]+tem[i-1][j])*delt_y2*delt_y2+(tem[i][j+1]+tem[i][j-1])*delt_x1*delt_x1)/2.0/(delt_x1*delt_x1+delt_y2*delt_y2); } } /*************************************************/ /*区域3内部节点温度*/ /*************************************************/ for(i=n_thick1+1;i { for(j=n_L3+1;j { tem0[i][j]=((tem[i+1][j]+tem[i-1][j])*delt_y1*delt_y1+(tem[i][j+1]+tem[i][j-1])*delt_x2*delt_x2)/2.0/(delt_x2*delt_x2+delt_y1*delt_y1); } } /*************************************************/ /*区域1与区域2边界线*/ /*************************************************/ for(i=1;i { j=n_L3; tem0[i][j]=((tem[i+1][j]+tem[i-1][j])/2.0*(delt_y1+delt_y2)*delt_y1*delt_y2+tem[i][j+1]*delt_y2*delt_x1*delt_x1+tem[i][j-1]*delt_y1*delt_x1*delt_x1)/((delt_y1+delt_y2)*delt_y1*delt_y2+delt_y2*delt_x1*delt_x1+delt_x1*delt_x1*delt_y1); } /*************************************************/ /*区域1与区域3边界线*/ /*************************************************/ for(j=n_L3+1;j { i=n_thick1; tem0[i][j]=((tem[i][j+1]+tem[i][j-1])/2.0*(delt_x1+delt_x2)*delt_x1*delt_x2+tem[i-1][j]*delt_x2*delt_y1*delt_y1+tem[i+1][j]*delt_x1*delt_y1*delt_y1)/((delt_x1+delt_x2)*delt_x1*delt_x2+delt_x2*delt_y1*delt_y1+delt_y1*delt_y1*delt_x1); } /*************************************************/ /*******************边界条件**********************/ /*******************绝热边界条件(对称面)**********************/ /***右边界***/ for(j=n_L3+1;j { i=n_L2; tem0[i][j]=(2.0*tem[i-1][j]*delt_y1*delt_y1+(tem[i][j+1]+tem[i][j-1])*delt_x2*delt_x2)/2.0/(delt_x2*delt_x2+delt_y1*delt_y1); } /***下边界***/ for(i=1;i { j=0; tem0[i][j]=((delt_y2*tem[i-1][j]/2/delt_x1)+(delt_x1*tem[i][j+1]/delt_y2)+(delt_y2*tem[i+1][j]/2/delt_x1))/((delt_y2/2/delt_x1)+(delt_x1/delt_y2)+(delt_y2/2/delt_x1)); } for(i=n_thick1+1;i { j=n_L3; tem0[i][j]=((delt_y1*tem[i-1][j]/2/delt_x2)+(delt_x2*tem[i][j+1]/delt_y2)+(delt_y2*tem[i+1][j]/2/delt_x2)+(delt_x2*conv_in*tin))/((delt_y2/2/delt_x2)+(delt_x2/delt_y2)+(delt_y2/2/delt_x2)+(delt_x2*conv_in)); } /*******************外部对流边界条件**********************/ /***上边界***/ for(i=1;i { j=n_L1; tem0[i][j]=(cond*delt_y1*delt_y1*(tem[i-1][j]+tem[i+1][j])+2.0*cond*delt_x1*delt_x1*tem[i][j-1]+2.0*delt_y1*delt_x1*delt_x1*conv_out*tout)/(2.0*cond*delt_y1*delt_y1+2.0*cond*delt_x1*delt_x1+2.0*delt_y1*conv_out*delt_x1*delt_x1); } for(i=n_thick1+1;i { j=n_L1; tem0[i][j]=(cond*delt_y1*delt_y1*(tem[i-1][j]+tem[i+1][j])+2.0*cond*delt_x2*delt_x2*tem[i][j-1]+2.0*delt_y1*delt_x2*delt_x2*conv_out*tout)/(2.0*cond*delt_y1*delt_y1+2.0*cond*delt_x2*delt_x2+2.0*delt_y1*conv_out*delt_x2*delt_x2); } i=n_thick1; j=n_L1; tem0[i][j]=(cond*delt_y1*delt_y1*delt_x2*tem[i-1][j]+cond*delt_y1*delt_y1*delt_x1*tem[i+1][j]+cond*delt_x1*delt_x2*(delt_x1+delt_x2)*tem[i][j-1]+delt_y1*delt_x1*delt_x2*(delt_x1+delt_x2)*conv_out*tout)/(cond*delt_y1*delt_y1*delt_x2+cond*delt_y1*delt_y1*delt_x1+cond*delt_x1*delt_x2*(delt_x1+delt_x2)+delt_y1*conv_out*delt_x1*delt_x2*(delt_x1+delt_x2)); /***左边界***/ for(j=n_L3+1;j { i=0; tem0[i][j]=((cond*delt_x1*tem[i][j+1]/2/delt_y1)+(cond*delt_y1*tem[i+1][j]/delt_x1)+(cond*delt_x1*tem[i][j-1]/2/delt_y1)+(delt_y1*conv_out*tout))/((cond*delt_x1/2/delt_y1)+(cond*delt_y1/delt_x1)+(cond*delt_x1/2/delt_y1)+(delt_y1*conv_out)); } for(j=1;j { i=0; tem0[i][j]=((cond*delt_x1*tem[i][j+1]/2/delt_y2)+(cond*delt_y2*tem[i+1][j]/delt_x1)+(cond*delt_x1*tem[i][j-1]/2/delt_y2)+(delt_y2*conv_out*tout))/((cond*delt_x1/2/delt_y2)+(cond*delt_y2/delt_x1)+(cond*delt_x1/2/delt_y2)+(delt_y2*conv_out)); } i=0; j=n_L3; tem0[i][j]=((cond*delt_x1*tem[i][j+1]/2/delt_y1)+(cond*((delt_y1+delt_y2)/2)*tem[i+1][j]/delt_x1)+(cond*delt_x1*tem[i][j-1]/2/delt_y2)+(((delt_y1+delt_y2)/2)*conv_out*tout))/((cond*delt_x1/2/delt_y1)+(cond*((delt_y1+delt_y2)/2)/delt_x1)+(cond*delt_x1/2/delt_y2)+(((delt_y1+delt_y2)/2)*conv_out)); /*******************内部对流边界条件**********************/ /***上边界***/ for(i=n_thick1+1;i { j=n_L3; tem0[i][j]=(cond*delt_y1*delt_y1*(tem[i-1][j]+tem[i+1][j])+2.0*cond*delt_x2*delt_x2*tem[i][j+1]+2.0*delt_y1*delt_x2*delt_x2*conv_in*tin)/(2.0*cond*delt_y1*delt_y1+2.0*cond*delt_x2*delt_x2+2.0*delt_y1*conv_in*delt_x2*delt_x2); } /***左边界***/ for(j=1;j { i=n_thick1; tem0[i][j]=((cond*delt_x1*tem[i][j+1]/2/delt_y2)+(cond*delt_y2*tem[i-1][j]/delt_x1)+(cond*delt_x1*tem[i][j-1]/2/delt_y2)+(delt_y2*conv_in*tin))/((cond*delt_x1/2/delt_y2)+(cond*delt_y2/delt_x1)+(cond*delt_x1/2/delt_y2)+(delt_y2*conv_in)); } /*******************特殊点**********************/ /*******左下角********/ tem0[0][0]=(cond*delt_x1*delt_x1*tem[0][1]+cond*delt_y2*delt_y2*tem[1][0]+delt_y2*delt_y2*delt_x1*conv_out*tout)/(cond*delt_x1*delt_x1+cond*delt_y2*delt_y2+delt_y2*delt_y2*delt_x1*conv_out); /*******右下角********/ tem0[n_thick1][0]=(cond*delt_x1*delt_x1*tem[n_thick1][1]+cond*delt_y2*delt_y2*tem[n_thick1-1][0]+delt_y2*delt_y2*delt_x1*conv_in*tin)/(cond*delt_x1*delt_x1+cond*delt_y2*delt_y2+delt_y2*delt_y2*delt_x1*conv_in); /*******左上角********/ tem0[0][n_L1]=(cond*delt_y1*delt_y1*tem[1][n_L1]+cond*delt_x1*delt_x1*tem[0][n_L1-1]+delt_x1*delt_y1*(delt_y1+delt_x1)*conv_out*tout)/(cond*delt_y1*delt_y1+cond*delt_x1*delt_x1+delt_x1*delt_y1*(delt_y1+delt_x1)*conv_out); /*******右上角1********/ tem0[n_L2][n_L1]=(cond*delt_y1*delt_y1*tem[n_L2-1][n_L1]+cond*delt_x2*delt_x2*tem[n_L2][n_L1-1]+delt_x2*delt_y1*delt_x2*conv_out*tout)/(cond*delt_y1*delt_y1+cond*delt_x2*delt_x2+delt_y1*delt_x2*delt_x2*conv_out); /*******右上角2********/ tem0[n_L2][n_L3]=(cond*delt_y1*delt_y1*tem[n_L2-1][n_L3]+cond*delt_x2*delt_x2*tem[n_L2][n_L3+1]+delt_x2*delt_y1*delt_x2*conv_in*tin)/(cond*delt_y1*delt_y1+cond*delt_x2*delt_x2+delt_y1*delt_x2*delt_x2*conv_in); /*******内角点********/ tem0[n_thick1][n_L3]=(cond*(delt_y1+delt_y2)/delt_x1*tem[n_thick1-1][n_L3]+cond*(delt_x1+delt_x2)/delt_y1*tem[n_thick1][n_L3+1]+cond*delt_y1/delt_x2*tem[n_thick1+1][n_L3]+cond*delt_x1/delt_y2*tem[n_thick1][n_L3-1]+(delt_x2+delt_y2)*conv_in*tin)/(cond*(delt_y1+delt_y2)/delt_x1+cond*(delt_x1+delt_x2)/delt_y1+cond*delt_y1/delt_x2+cond*delt_x1/delt_y2+(delt_x2+delt_y2)*conv_in); /*******************判断是否收敛*********************/ number=0; for(i=0;i<=n_L2;i++) { for(j=0;j<=n_L1;j++) { if(fabs(tem0[i][j]-tem[i][j])>eps) { number++; } } } for(i=0;i<=n_L2;i++) { for(j=0;j<=n_L1;j++) { tem[i][j]=tem0[i][j]; } } n++; if(n%10000==0)printf("%d\n",n); }while(number>0&&n<1000000); /*计算各节点坐标*/ for(i=0;i<=n_L2;i++) { for(j=0;j<=n_L1;j++) { if(i<=n_thick1&&j<=n_L3) { x[i][j]=delt_x1*i; y[i][j]=delt_y2*j; } if(i<=n_thick1&&j>n_L3) { x[i][j]=delt_x1*i; y[i][j]=delt_y2*n_L3+delt_y1*(j-n_L3); } if(i>n_thick1&&j<=n_L3) { x[i][j]=n_thick1*delt_x1+delt_x2*(i-n_thick1); y[i][j]=j*delt_y2; } if(i>n_thick1&&j>n_L3) { x[i][j]=n_thick1*delt_x1+delt_x2*(i-n_thick1); y[i][j]=delt_y2*n_L3+delt_y1*(j-n_L3); } } } /*计算各节点坐标结束*/ ofstreamSaveFile("temperature.dat");/*输出计算结果*/ SaveFile<<"title=Temper
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 传热学 虚拟 仿真 实验 报告