一维非稳态导热的数值计算
(完整word版)一维非稳态导热的数值计算

int i,j,l;
float cha;
float a,x,y,Fo,Bi;
float t[N][K],b[N][K];
/*打印出题目*/
printf("\t\t\t一维非稳态导热问题\t\t");
printf("\n\t\t\t\t\t\t----何鹏举\n");
printf("\n题目:补充材料练习题三\n");
/*时刻为零时,赋予初场温度*/
for(i=0;i<N;i++)
t[i][0]=1000;
/*循环开始,每次计算一个时刻*/
for(j=0;j<K-1;j++)
{
for(i=0;i<N;i++)
b[i][j]=t[i][j];
/*下面对每一个时刻进行迭代求解对应的温度分布,公式按传热学课本P178页公式*/
y=1;/*y代表Δτ*/
x=0.05/(N-1);
a=34.89/(7800*712);
Fo=(a*y)/(x*x);
Bi=233*x/34.89;
printf("\n显示格式条件:");
printf("\n1、Fo=%3.1f<0.5\t",Fo);
printf("\t2、1-2Fo*Bi-2Fo=%4.2f>0\n\n",1-2*Fo*Bi-2*Fo);
{
printf("\n");
l=0;
}
}ห้องสมุดไป่ตู้
getchar();/*为了是生成的exe文件结果算的后不会立即退出,方便观看*/
传热学-学习课件-4-4 一维非稳态导热问题的数值求解

1
2
a x2
2h cx
2
a x2
t
i
N
1
2h cx
tf
③对称点
t (i)
-1
t (i)
2
传热学 Heat Transfer
2.直接用差分代替微分
①向前差分(forward difference)
i
t
t
i
n
1
t
i
n
n,i
②向后差分(backward difference)
t
t
i
n
t
i
n
1
n,i
i n,i+1
n-1,i n,i n+1,
t
i
n
1
t
n
i
a
t (i1) n 1
2
t
( n
i
1
)
x2
t (i1) n 1
(1,1)
n,i-1 i
n
x
整理成隐式格式:
传热学 Heat Transfer
传热学 Heat Transfer
主讲老师:王舫 适用专业:能源与动力工程专业
传热学 Heat Transfer
§4.4 一维非稳态导热问题的数值求解
在非稳态导热问题中,不但需要对空间区域进 行离散,还需要对时间变量进行离散,接下来以一 个一维非稳态导热问题为例,重点介绍对非稳态项 的离散方法,以及不同离散方法对计算带来的影响 等。
第三章第三节 一维非稳态导热的分析解

θ
( x,τ θ0
)
=
μ1
+
2 sin μ1 sin μ1 cos
μ1
cos(
μ1
e x ) − μ12F0 δ
θ
(0,τ θ0
)
=
θ m (τ θ0
)
=
μ1
+
2 sin μ 1 sin μ1 cos
μ1
e − μ12 F0
第三节一维非稳态导热的分析解
θ
( x,τ θ0
)
=
μ1
+
2 sin μ1 sin μ1 cos
式中常数a ,b ,c ,d 见P75表3-3 a`,b`,c`,d`见P75表3-4
第三节一维非稳态导热的分析解
3 正规热状况的实用计算方法-线算图法
诺谟图
以无限大平板为例,F0>0.2 时,取其级数首项即可
θ (x,τ ) =θ0
μ1
+
2sin μ1 sin μ1 cos
μ1
e−μ12
F0
cos(μ1
第三节一维非稳态导热的分析解
上式化为:
∂θ = a ∂ 2θ
∂τ
∂x 2
θ =θ0
∂θ = 0 ∂x
0 < x < δ ,τ > 0 τ =0 x=0
− λ ∂θ = hθ x = δ ∂x
第三节一维非稳态导热的分析解
用分离变量法可得其分析解为:
θ
( x,τ θ0
)
=
∞
∑
n =1
2 sin( β nδ ) cos( β n x) β nδ + sin( β nδ ) cos( β nδ
4-3非稳态导热的数值计算

t k 1 i 1
)
tik
已知k时层的温度值,求k+1 时层的温度值要联立求解方 程组,即求解复杂,但无条件稳定(、x的取值不受 限制)。
三、边界节点的离散方程
t
1. 第三类边界条件:已知tf、h
tf、h
L
节点的热平衡:
N-1点导入 对流换热传 N节点内
+
=
N点的热量 入N点的热量 能的增量 0 1 N 1 N x
2t ( x2 )i,k
tk i 1
tk i 1
2tik
(x)2
节点 时层
( t
)i,k
t k 1 i
tik
空间用中心差分格式 时间用向前差分格式
将上面两式代入微分方程:
t k 1 i
tik
a
tk i 1
tk i 1
(x)2
2tik
有缘学习更多+谓ygd3076考证资料或关注桃报:奉献教育(店铺)
tik 1
k N
稳定性条件: 1 2Fo Bi 2Fo 0
或:
Fo 1 2Bi 2
2. 第二类边界条件:已知qw
建立节点0的差分方程(显式格式) t
t k 1 0
2Fo t1k
(1
2Fo)t0k
tf、
L
稳定性条件:
1 2Fo 0
0 1 N 1 N x 绝热
THANKS
非稳态导热 的数值计算
讨论: 一维、无内热源、常物性、非稳态导热
t f (x, )
t
a
2t x 2
一、显式差分格式
1. 内节点
k 1
1) 离散化: t f (x, )
k
数值传热学一维非稳态导热

数值传热学一维非稳态导热
数值传热学一维非稳态导热是一个拟表达热量输运多方面考虑下的相关分析技术,例如光斑热传递,带有间断层热传导,恒定物质热传导等等。
本文将重点简要介绍一维非稳态导热模型中的理论方法,为解决该问题提供重要基础。
首先,我们讨论的一维非稳态导热模型是一维的,在这种模型中,温度的变化是由上下相邻的单元格热传导加权平均值决定的,从一个单元格到另一个单元格的变化必须满足偏微分方程的通用表达式。
其次,根据以上的假设,一维非稳态导热的数值解将以定义的步长迭代,用于求解温度在不同单元中的变化。
在数值模拟中,需要对边界条件、热导率和温度输入进行有效描述,以确定最终的解答模式。
同时,本次分析中,利用有限差分和蒙特卡罗方法来求解温度场。
这种有趣且可行的做法,不但实现了所需求解的模式,而且能够精确地给出结果。
此外,在电脑指令中,采取该方法对数值运算很有效,从而提高了计算机解的精度和实现的质量。
最后,一维非稳态导热模型是在一定物理场中进行计算的,通用性很强,其能够很好地模拟简单模型中物理场的变化。
因此,它经常被用于诸如热管道传热、滑动轴热传导、负载温度场仿真等多种领域的研究。
总而言之,一维非稳态导热的数值模拟具有良好的数学基础、使用简单的算法以及电脑指令,从而实现快速求解热传导问题的目的,是今后研究的重要课题。
一维圆柱非稳态导热方程求解

一维圆柱非稳态导热方程求解引言在工程和科学领域中,导热方程是研究物体内部温度分布变化的重要方程。
本文将介绍一维圆柱非稳态导热方程的求解方法。
问题描述考虑一个半径为 R 的圆柱体,其内部由一个材料填充。
我们想要求解该圆柱体内部的温度分布,其中的热传导过程遵循非稳态导热方程。
在一维情况下,非稳态导热方程可以表示为:equation1equation1其中,T 是温度关于时间和半径的函数,α 是热扩散系数。
数值方法为了求解该方程,我们将应用有限差分法,离散化时间和半径的变量。
首先,我们将时间区域 [0, T] 离散化为 N 个等间距的时间步长,得到:equation2equation2其中,Δt 是时间步长,N 是总的时间步数。
接下来,我们将半径区域 [0, R] 离散化为 M 个等间距的半径步长,得到:equation3equation3其中,Δr 是半径步长,M 是总的半径步数。
将温度T 在时间和半径的离散点上进行近似,我们可以写出离散的导热方程为:equation4equation4其中,上标 n 表示时间步数,下标 i 表示半径步数。
由于我们已经将时间和半径离散化,上述方程可以重写为一个递推关系:equation5equation5数值实验我们将通过一个简单的数值实验来验证我们的数值方法。
设定圆柱体半径 R = 1,热扩散系数α = 1。
令边界条件为半径为 R 处的温度始终为 0,初始条件为半径为 R/2 处的温度为 1,其他位置的温度为 0。
在使用递推关系计算之前,需要选择合适的时间步长Δt 和半径步长Δr。
一般来说,选择小的步长可以提高数值解的准确性,但同时也会增加计算时间。
在这里,我们选择Δt = 0.001,Δr = 0.1。
我们使用一个循环来逐步计算每个时间步骤的温度分布,并在每个时间步骤结束后,使用画图软件绘制温度分布图。
结果与讨论经过数值计算和绘图,我们得到了随时间演化的温度分布图。
热传导和导热系数的计算

热传导和导热系数的计算热传导是指热量在物体内部由高温区向低温区传递的过程,它是固体、液体和气体等物质的一种基本热传递方式。
热传导的计算通常涉及到导热系数这个物理量,它是一个材料特性,用来描述材料内部热量传递的能力。
一、热传导的基本公式1.一维稳态热传导:对于一维稳态热传导,热量在物体内部的传递可以用傅里叶定律来描述:[ q = -kA ]其中,( q ) 是单位面积的热流量(W/m^2),( k ) 是导热系数(W/m·K),( A ) 是物体的横截面积(m^2),( ) 是温度梯度(K/m)。
2.二维和三维稳态热传导:对于二维和三维稳态热传导,热量在物体内部的传递可以用傅里叶定律的微分形式来描述:[ = ]其中,( q ) 是单位体积的热流量(W/m^3),( t ) 是时间(s),( ) 是热扩散系数(m^2/s),( T ) 是温度(K或°C),( ) 是温度梯度的二阶导数。
二、导热系数的定义和影响因素导热系数(k)是描述材料内部热量传递能力的物理量,单位为W/m·K。
导热系数反映了材料在单位厚度、单位温差条件下,单位时间内通过单位面积的热量。
2.影响因素:a)材料的种类:不同材料的导热系数不同,金属的导热系数一般较大,而绝缘材料的导热系数较小。
b)温度:材料的导热系数随温度的变化而变化,一般情况下,随着温度的升高,导热系数增大。
c)湿度:对于多孔材料,湿度对导热系数有较大影响,湿度越大,导热系数越大。
d)孔隙率:对于多孔材料,孔隙率越大,导热系数越小。
三、常见材料的导热系数以下是一些常见材料的导热系数(单位:W/m·K):1.金属:40-460(如铜:380,铝:237)2.木材:0.1-0.2(如松木:0.14,柚木:0.2)3.塑料:0.1-1.5(如聚乙烯:0.4,聚丙烯:1.0)4.玻璃:1-2(如普通玻璃:1.1,高强度玻璃:1.6)5.空气:0.026(在常温常压下)四、热传导和导热系数的应用1.建筑领域:热传导和导热系数的计算在建筑领域具有重要意义,可以用于设计保温层、隔热材料等,以提高建筑的能源效率。
一维非稳态导热CRANK-NICOLSON解法

一维非稳态导热CRANK-NICOLSON解法题目:数值计算一维非稳态导热,长度1米的不锈钢棒原来温度都是0度,一端温度突然变为300度,并保存不变,采用CRANK-NICOLSON 方法数值计算不锈钢内温度分布随时间的变化。
解法:一维导热微分方程边界条件为u(0,t)=0;u(a0,t)=300初值u(x,0)=0;主程序clcclearuX=1; %不锈钢长1米uT=2000; %时长2000秒M=10; %空间轴等分区间数N=1000; %时间轴等分区间数rou=8030; %不锈钢密度cp=502.48; %不锈钢热容kk=16.27; %不锈钢导热率D=kk/rou/cp; %扩散系数phi=inline('0'); %初值psi1=inline('0'); %左边界psi2=inline('300'); %右边界%计算步长dx=uX/M;%x的步长dt=uT/N;%t的步长x=(0:M)*dx;r=D*dt/dx/dx;%步长比Diag=zeros(1,M-1);%矩阵的对角线元素Low=zeros(1,M-2);%矩阵的下对角线元素Up=zeros(1,M-2);%矩阵的上对角线元素for i=1:M-2Diag(i)=1+r;Low(i)=-r/2;Up(i)=-r/2;endDiag(M-1)=1+r;%计算初值和边值U=zeros(M+1,N+1);for i=1:M+1U(i,1)=phi(x(i));endfor j=1:N+1U(1,j)=psi1(t(j));U(M+1,j)=psi2(t(j));endB=zeros(M-1,M-1);for i=1:M-2B(i,i)=1-r;B(i,i+1)=r/2;B(i+1,i)=r/2;endB(M-1,M-1)=1-r;%逐层求解,需要使用追赶法(调用函数EqtsForwardAndBackward)for j=1:Nb1=zeros(M-1,1);b1(1)=r*(U(1,j+1)+U(1,j))/2;b1(M-1)=r*(U(M+1,j+1)+U(M+1,j))/2;b=B*U(2:M,j)+b1;U(2:M,j+1)=zhuiganfa(Low,Diag,Up,b);endU=U';%作出图形xlabel('空间变量x')ylabel('时间变量t')shading interp程序用到了追赶法子程序,代码如下function x=zhuiganfa(L,D,U,b)%追赶法求解三对角线性方程组Ax=b%检查参数的输入是否正确n=length(D);m=length(b);n1=length(L);n2=length(U);if n-n1 ~= 1 || n-n2 ~= 1 || n ~= mdisp('输入参数有误!')x=' ';return;end%追的过程for i=2:nL(i-1)=L(i-1)/D(i-1);D(i)=D(i)-L(i-1)*U(i-1);endx=zeros(n,1);x(1)=b(1);for i=2:nx(i)=b(i)-L(i-1)*x(i-1);end%赶的过程x(n)=x(n)/D(n);for i=n-1:-1:1x(i)=(x(i)-U(i)*x(i+1))/D(i);endreturn;运行主程序,最终得到如图所示结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
传热学C 程序源 二维稳态导热的数值计算
2.1物理问题
一矩形区域,其边长L=W=1,假设区域内无内热源,导热系数为常数,三个边温度为T1=0,一个边温度为T2=1,求该矩形区域内的温度分布。
2.2 数学描述
对上述问题的微分方程及其边界条件为:2222T T
0x y
∂∂+=∂∂
x=0,T=T 1=0
x=1,T=T 1=0 y=0,T=T 1=0 y=1,T=T 2=1
该问题的解析解:
112121(1)sin n n n sh y T T n L x n T T n L sh W L ππππ∞=⎛⎫⋅ ⎪---⎛⎫⎝⎭=⋅ ⎪-⎛⎫
⎝⎭⋅ ⎪⎝⎭
∑
2.3数值离散
2.3.1区域离散
区域离散x 方向总节点数为N ,y 方向总节点数为M ,区域内任一节点用I,j 表示。
2.3.2方程的离散
对于图中所有的内部节点方程可写为:2222,,0i j i j
t t x y ⎛⎫⎛⎫
∂∂+= ⎪ ⎪∂∂⎝⎭⎝⎭
用
I,j
节点的二阶中心差分代替上式中的二阶导数,得:
+1,,-1,,+1,,-1
2
2
2+2+0i j i j i j
i j i j i j T T T T T T x y --+
=
上式整理成迭代形式:()()22
,1,-1,,1
,-12222+2()2()
i j i j i j i j i j y x T T T T T x y x y ++=++++ (i=2,3……,N -1),(j=2,3……,M -1)
补充四个边界上的第一类边界条件得:1,1j T T = (j=1,2,3……,M) ,1N j T T = (j=1,2,3……,M) ,1i j T T = (i=1,2,3……,N)
,2i M T T (i=1,2,3……,N)
#include<stdio.h> #include<math.h> #define N 10 #define K 11 main() {
int i,j,l; float cha;
float a,x,y,Fo,Bi;
float t[N][K],b[N][K]; /*打印出题目*/
printf("\t\t\t 一维非稳态导热问题\t\t"); printf("\n\t\t\t\t\t\t----何鹏举\n");
printf("\n 题目:补充材料练习题三\n");
y=1;/*y 代表Δτ*/
x=0.05/(N-1);
a=34.89/(7800*712); Fo=(a*y)/(x*x); Bi=233*x/34.89;
printf("\n 显示格式条件:");
printf("\n1、Fo=%3.1f<0.5\t",Fo);
printf("\t2、1-2Fo*Bi-2Fo=%4.2f>0\n\n",1-2*Fo*Bi-2*Fo); /*时刻为零时,赋予初场温度*/ for(i=0;i<N;i++) t[i][0]=1000;
/*循环开始,每次计算一个时刻*/
for(j=0;j<K-1;j++) {
for(i=0;i<N;i++) b[i][j]=t[i][j];
/*下面对每一个时刻进行迭代求解对应的温度分布,公式按传热学课本P178页公式*/ cha=1;
while(cha>0.001) {
for(i=0;i<N-1;i++) {
if(i==0)
t[i][j+1]=Fo*(t[i+1][j]+t[i+1][j])+(1-2*Fo)*t[i][j];/*当计算t[0]时,要用到t[-1],其中t[-1]=t[2]的(对称分布)*/
else
t[i][j+1]=Fo*(t[i+1][j]+t[i-1][j])+(1-2*Fo)*t[i][j];
t[N-1][j+1]=t[N-2][j]*(1-2*Fo*Bi-2*Fo)+2*Fo*t[N-1][j]+2*Fo*Bi*20;/*边界点温度用热平衡法推导出公式*/
}
cha=0;
for(i=0;i<N;i++)
cha=cha+abs(t[i][j]-b[i][j]);
cha=cha/N;
}
}
/*输出温度分布,其中l控制输出值的排列;这个结果是横轴为x,纵轴为τ的直角坐标下从左上角开始依次的*/
printf("\n经数值离散计算的温度分布为:\n");
l=0;
for(j=K-1;j>=0;j--)
for(i=0;i<N;i++)
{
if(t[i][j]>999.99)
printf("%6.1f ",t[i][j]);
else
printf("%6.2f ",t[i][j]);
l=l+1;
if(l==N)
{
printf("\n");
l=0;
}
}
getchar();/*为了是生成的exe文件结果算的后不会立即退出,方便观看*/
}。