二维导热物体温度场的数值模拟Word格式.docx

上传人:b****8 文档编号:22412489 上传时间:2023-02-04 格式:DOCX 页数:15 大小:164.05KB
下载 相关 举报
二维导热物体温度场的数值模拟Word格式.docx_第1页
第1页 / 共15页
二维导热物体温度场的数值模拟Word格式.docx_第2页
第2页 / 共15页
二维导热物体温度场的数值模拟Word格式.docx_第3页
第3页 / 共15页
二维导热物体温度场的数值模拟Word格式.docx_第4页
第4页 / 共15页
二维导热物体温度场的数值模拟Word格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

二维导热物体温度场的数值模拟Word格式.docx

《二维导热物体温度场的数值模拟Word格式.docx》由会员分享,可在线阅读,更多相关《二维导热物体温度场的数值模拟Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

二维导热物体温度场的数值模拟Word格式.docx

依照实验时得点划分网格:

建立节点物理量的代数方程 

对于内部节点,由∆x=∆y,有 

 

由于本实验为恒壁温,不涉及对流,故内角点,边界点代数方程与该式相同。

设立迭代初场,求解代数方程组。

图中,除边界上各节点温度为已知且不变外,其余各节点均需建立类似3中的离散方程,构成一个封闭的代数方程组。

为场的初始温度,代入方程组迭代,直至相邻两次内外传热值之差小于0.01,认为已达到迭代收敛。

四、编程及结果

1)源程序 

#include<

stdio。

h〉

#include<

math.h〉

intmain()

{

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;

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;

}

i<

=15;

for(intj=0;

=11;

t[i][j]=s[i][j];

n=1;

while(n〉0)

n=0;

for(intj=1;

=4;

t[15][j]=0.25*(2*t[14][j]+t[15][j—1]+t[15][j+1]);

for(inti=1;

t[i][11]=0。

25*(2*t[i][10]+t[i—1][11]+t[i+1][11]);

for(inti=1;

=14;

for(intj=1;

j〈=4;

t[i][j]=0。

25*(t[i+1][j]+t[i—1][j]+t[i][j+1]+t[i][j-1]);

for(intj=5;

=10;

t[i][j]=0。

25*(t[i+1][j]+t[i-1][j]+t[i][j+1]+t[i][j-1]);

for(inti=0;

j〈=11;

if(fabs(t[i][j]-s[i][j])〉epsilon)

n++;

i〈=15;

s[i][j]=t[i][j];

k++;

//printf("

%d\n”,k);

}

for(intj=0;

j〈=5;

{for(inti=0;

{printf(”%4.1f”,t[i][j]);

fprintf(fp,"

%4.1f”,t[i][j]);

}

printf(”\n”);

fprintf(fp,"

\n"

);

for(intj=6;

{for(inti=0;

i〈=5;

{printf("

%4。

1f”,t[i][j]);

fprintf(fp,"

%4.1f”,t[i][j]);

fprintf(fp,”\n"

printf(”\n”);

for(inti=1;

=14;

daore_out+=(30-t[i][1]);

for(intj=1;

j〈=10;

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;

daore_in+=t[i][4];

for(intj=5;

j〈=10;

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)结果截图

七.总结与讨论 

1。

由实验结果可知:

等温边界下,数值解法计算结果与“二维导热物体温度场的电模拟实验“结果相似,虽然存在一定的偏差,但由于点模拟实验存在误差,而且数值解法也不可能得出温度真实值,同样存在偏差,但这并不是说数值解法没有可行性,相反,由于计算结果与电模拟实验结果极为相似,恰恰说明数值解法分析问题的可行性。

用数值解法仅用计算机模拟就能解决某些复杂的工程问题,为复杂工程问题的求解提供了极大的便利。

2.在实验中,内外边界散热量存在偏差,这在很大程度上是由于用数值计算分析问题时,采用离散平均的思想,用节点中心的温度代替节点的平均温度从而产生误差。

不断提高所划分的网格数目,实验偏差会得到不断改善。

3.通过这次的上机实验,对传热的很多问题和数值算法都有一定的加深理解和掌握,收获很多,同时对于个人的动手动脑及解决问题的能力都有一定的提高。

同样,这也反过来证实了“二维导热物体温度场的电模拟实验”的正确性和可行性。

//mm.cpp:

定¡

§

义°

?

控?

制?

台¬

¡

应®

|用®

程¨

¬

序¨

°

的Ì

入¨

口¨

²

点Ì

ê

//

#include"

stdafx。

h”

stdio.h〉

#include〈math.h〉

intk=0,n=0;

doublet[16][12]={0},s[16][12]={0};

doubleepsilon=0。

01;

doublelambda=0.53,error=0;

FILE*fp;

fp=fopen(”data3”,”w”);

for(inti=0;

=15;

if((i==0)||(j==0))s[i][j]=30;

=5&&

j〈=11)s[i][j]=0;

if(i〉=5&

&

i<

=15)s[i][j]=0;

t[i][j]=s[i][j];

n=1;

while(n>

0)

{

=4;

t[15][j]=0。

25*(2*t[14][j]+t[15][j—1]+t[15][j+1]);

i〈=4;

25*(2*t[i][10]+t[i—1][11]+t[i+1][11]);

i〈=14;

for(intj=1;

j〈=4;

t[i][j]=0.25*(t[i+1][j]+t[i-1][j]+t[i][j+1]+t[i][j-1]);

i〈=4;

for(intj=5;

t[i][j]=0。

25*(t[i+1][j]+t[i-1][j]+t[i][j+1]+t[i][j-1]);

for(inti=0;

if(fabs(t[i][j]—s[i][j])〉epsilon)

s[i][j]=t[i][j];

//printf(”%d\n”,k);

j〈=5;

{for(inti=0;

{printf("

%4.1f"

t[i][j]);

fprintf(fp,”%4.1f”,t[i][j]);

\n”);

\n”);

=5;

t[i][j]);

fprintf(fp,”%4。

1f"

t[i][j]);

fprintf(fp,”\n”);

printf(”\n"

);

for(inti=1;

daore_out+=(30-t[i][1]);

for(intj=1;

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;

daore_in+=t[i][4];

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内¨

墙?

导Ì

热¨

¨

q1=%f\n外ª

a墙?

q2=%f\n平?

均¨

´

值¦

Ì

q=%f\n偏?

差?

error=%f\n"

,k,daore_in,daore_out,daore,error);

getchar();

#include<

iostream〉

#include〈fstream>

#include〈iomanip〉

usingnamespacestd;

cout〈〈setiosflags(ios:

fixed);

inti,j;

doubletemp,q_in,q_out,q;

doubleeps=1;

doubleA[16][12];

//设¦

置?

迭Ì

¹

代ä

初?

场?

for(i=1;

16;

{for(j=1;

6;

A[i][j]=0;

i〈6;

{for(j=6;

j〈12;

A[i][j]=0;

for(i=0;

i〈16;

A[i][0]=30;

for(j=0;

j〈12;

A[0][j]=30;

//建¡

立¢

é

方¤

组Á

¦

并¡

求¨

®

解a

while(eps〉1。

0E-4)

for(j=1;

A[15][j]=(A[15][j+1]+A[15][j-1]+2*A[14][j])/4;

for(i=5;

15;

j〈5;

A[i][j]=(A[i—1][j]+A[i+1][j]+A[i][j—1]+A[i][j+1])/4;

for(i=1;

11;

A[i][j]=(A[i-1][j]+A[i+1][j]+A[i][j-1]+A[i][j+1])/4;

{temp=A[i][11];

A[i][11]=(A[i+1][11-1]+A[i][11]+2*A[i][10])/4;

eps=A[i][11]-temp;

//计?

算?

体¬

外ª

a表À

ª

面?

量¢

q_out=0;

for(j=1;

q_out=q_out+A[0][j]-A[1][j];

i〈16;

q_out=q_out+A[i][0]-A[i][1];

q_out=q_out+(A[0][11]—A[10][1]+A[15][0]—A[15][1])/2;

q_out=q_out*0.53;

内¨

表À

面?

q_in=0;

for(i=5;

q_in=q_in+A[i][4]—A[i][5];

for(j=5;

12;

q_in=q_in+A[4][j]-A[5][j];

q_in=q_in+(A[15][4]-A[15][5]+A[4][11]-A[5][11])/2;

q_in=q_in*0。

53;

//计?

平?

和¨

相¨

¤

对?

误¨

q=(q_in+q_out)/2;

eps=abs(q_in-q_out);

//输º

出?

结¨

¢

果?

for(j=0;

{for(i=0;

{cout〈<

setprecision

(2)<

<

A[i][j]<

〈””;

}cout<

〈endl;

for(j=6;

12;

{cout〈〈setprecision

(2)<

〈A[i][j]〈〈"

”;

〈endl;

cout〈<

”墙?

=”<

〈q_in〈〈"

\n”;

="

〈q_out<

〈"

;

cout<

q=”<

q<

"

return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1