主要内容

具有温度相关性质的传热问题

这个例子展示了如何求解热导率随温度变化的热方程。实例显示了一个在中心有一个矩形空腔的矩形块的理想化热分析。

瞬态传导换热的偏微分方程为:

ρ C p T t - k T f

在哪里 T 是温度, ρ 是物质密度, C p 比热是,和 k 是热导率。 f 是身体内部产生的热量,在这个例子中是零。

稳态解:恒定热导率

创建一个稳态热模型。

thermalmodelS = createpde(“热”“稳态”);

创建一个2-D几何图形,绘制一个矩形的大小块和第二个矩形的大小插槽。

R1 =[3 4 -。5 .5 .5 -。5 -。8 -。8 .8 .8];R2 =[3 4 -。05 .05 .05 -。05 -。4 -。4 .4 .4];GDM = [r1;r2) ';

从第一个矩形中减去第二个矩形,创建带槽的块。

G = decsg(gdm,“R1-R2”,[R1的R2的]“);

将decsg格式转换为几何对象。在模型中包含几何图形。

geometryFromEdges (thermalmodelS g);

绘制显示边缘标签的几何图形。下面将在函数中使用边缘标签来定义边界条件。

图pdegplot (thermalmodelS,“EdgeLabels”“上”);轴([-。9 .9 -。9。9]);标题“显示边缘标签的块几何”

图中包含一个轴对象。标题为“显示边缘标签的Block Geometry”的axis对象包含9个类型为line, text的对象。

将左侧边缘的温度设置为100度。在右边的边缘,有一个规定的热流出块。顶部和底部边缘以及腔内的边缘都是绝缘的,也就是说,没有热量通过这些边缘传递。

thermalBC (thermalmodelS“边缘”6“温度”, 100);thermalBC (thermalmodelS“边缘”, 1“HeatFlux”, -10);

指定材料的热导率。首先,考虑恒定的热导率,例如等于1。稍后,考虑热导率是温度的函数的情况。

thermalProperties (thermalmodelS“ThermalConductivity”1);

创建一个元素不大于0.2的网格。

generateMesh (thermalmodelS“Hmax”, 0.2);图pdeplot (thermalmodelS);轴平等的标题显示有限元网格的块

图中包含一个轴对象。标题为Block with Finite Element Mesh的axis对象包含2个类型为line的对象。

计算稳态解。

R = solve(thermalmodelS);T = r .温度;图pdeplot (thermalmodelS,“XYData”T“轮廓”“上”“ColorMap”“热”);轴平等的标题“温度,稳态解”

图中包含一个轴对象。标题为Temperature, Steady State Solution的坐标轴对象包含12个类型为patch, line的对象。

瞬态解决方案:恒定导热系数

创建一个瞬态热模型,并包括几何。

thermalmodelT = createpde(“热”瞬态的);R1 =[3 4 -。5 .5 .5 -。5 -。8 -。8 .8 .8];R2 =[3 4 -。05 .05 .05 -。05 -。4 -。4 .4 .4];GDM = [r1;r2) ';G = decsg(gdm,“R1-R2”,[R1的R2的]“);geometryFromEdges (thermalmodelT g);

指定热导率,质量密度和材料的比热。

thermalProperties (thermalmodelT“ThermalConductivity”, 1...“MassDensity”, 1...“SpecificHeat”1);

定义边界条件。在瞬态情况下,左边缘的温度在time=0时为零,并在0.5秒内上升到100度。您可以找到helper函数transientBCHeatedBlockmatlab / R20XXx / / pde的主要例子

thermalBC (thermalmodelT“边缘”6“温度”, @transientBCHeatedBlock);

在右边的边缘,有一个规定的热流出块。

thermalBC (thermalmodelT“边缘”, 1“HeatFlux”, -10);

顶部和底部边缘以及腔内的边缘都是绝缘的,即没有热量通过这些边缘传递。

创建一个元素不大于0.2的网格。

msh = generateMesh(thermalmodelT,“Hmax”, 0.2);图pdeplot (thermalmodelT);轴平等的标题显示有限元网格的块

图中包含一个轴对象。标题为Block with Finite Element Mesh的axis对象包含2个类型为line的对象。

计算瞬态解。执行从0到5秒的瞬态分析。工具箱每隔0.1秒保存一次解决方案,以便可以创建作为时间函数的结果图。

Tlist = 0:.1:5;thermalIC (thermalmodelT 0);R = solve(thermalmodelT,tlist);T = r .温度;

有两个图对于理解这种暂态分析的结果是有用的。第一个是最终时刻的温度曲线。第二个是块中特定点的温度图,在这种情况下,靠近右边缘的中心,作为时间的函数。为了识别靠近右边缘中心的节点,可以方便地定义这个短效用函数。

getClosestNode = @ (p, x, y)最小值((p (1:) - x)。^ 2 + (p (2:) - y)。^ 2);

调用此函数获取靠近右边缘中心的节点。

[~,nid] = getClosestNode(msh. exe)。节点,.5,0);

下图并排显示了这两个图。此时的温度分布与上面稳态解得到的温度分布非常相似。在右侧边缘,在小于半秒的时间内,温度小于零。这是因为热量离开块体的速度比从左边缘到达块体的速度快。在超过三秒的时间里,温度基本上达到了稳定状态。

H =数字;.位置=[1 1 2 1].*位置;次要情节(1、2、1);轴平等的pdeplot (thermalmodelT“XYData”T(:,结束),“轮廓”“上”...“ColorMap”“热”);轴平等的标题“温度,最终时间,瞬态解”次要情节(1、2、2);轴平等的,情节(tlist T(国家免疫日:));网格标题“右边缘温度随时间变化的函数”;包含“时间,秒”ylabel“温度摄氏度”

图中包含2个轴对象。轴对象1的标题为温度,最终时间,瞬态解决方案包含12个类型为补丁,行对象。axis对象2的标题为“右边缘温度作为时间的函数”,包含一个类型为line的对象。

稳态解:温度依赖性热导率

材料属性是因变量的函数是很常见的。例如,假设热导率是温度的简单线性函数:

K = @(~,状态)0.3+0.003*state.u;

在这种情况下,变量u就是温度。在这个例子中,假设密度和比热不是温度的函数。

thermalProperties (thermalmodelS“ThermalConductivity”、k);

计算稳态解。与恒定导电性情况相比,右侧边缘的温度较低。这是因为在温度较低的地区,电导率较低。

R = solve(thermalmodelS);T = r .温度;图pdeplot (thermalmodelS,“XYData”T“轮廓”“上”“ColorMap”“热”);轴平等的标题“温度,稳态解”

图中包含一个轴对象。标题为Temperature, Steady State Solution的坐标轴对象包含12个类型为patch, line的对象。

瞬态解:温度依赖性热导率

现在执行瞬态分析与温度有关的电导率。

thermalProperties (thermalmodelT“ThermalConductivity”、钾、...“MassDensity”, 1...“SpecificHeat”1);

使用相同的时间跨度Tlist = 0:.1:5对于线性的情况。

thermalIC (thermalmodelT 0);R = solve(thermalmodelT,tlist);T = r .温度;

画出最后一个时间步的温度和右边边缘的温度作为时间的函数。最终时间步的温度图与线性分析的可比图仅略有不同:右边缘的温度略低于线性情况。温度随时间变化的曲线与线性情况有很大不同。由于在较低的温度下导电率较低,热量需要更长的时间才能到达块的右边缘。在线性情况下,温度在3秒左右基本上是恒定的,但在非线性情况下,温度曲线在5秒时开始变平。

H =数字;.位置=[1 1 2 1].*位置;次要情节(1、2、1);轴平等的pdeplot (thermalmodelT“XYData”T(:,结束),“轮廓”“上”...“ColorMap”“热”);轴平等的标题“温度,最终时间,瞬态解”次要情节(1、2、2);轴平等的情节(tlist(1:尺寸(T, 2))、T (nid:));网格标题“右边缘温度随时间的非线性函数”;包含“时间,秒”ylabel“温度摄氏度”

图中包含2个轴对象。轴对象1的标题为温度,最终时间,瞬态解决方案包含12个类型为补丁,行对象。axis对象2的标题为“右边缘温度作为时间(非线性)的函数”,包含一个类型为line的对象。