这个例子展示了如何求解热导率随温度变化的热方程。实例显示了一个在中心有一个矩形空腔的矩形块的理想化热分析。
瞬态传导换热的偏微分方程为:
在哪里 是温度, 是物质密度, 比热是,和 是热导率。 是身体内部产生的热量,在这个例子中是零。
创建一个稳态热模型。
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]);标题“显示边缘标签的块几何”
将左侧边缘的温度设置为100度。在右边的边缘,有一个规定的热流出块。顶部和底部边缘以及腔内的边缘都是绝缘的,也就是说,没有热量通过这些边缘传递。
thermalBC (thermalmodelS“边缘”6“温度”, 100);thermalBC (thermalmodelS“边缘”, 1“HeatFlux”, -10);
指定材料的热导率。首先,考虑恒定的热导率,例如等于1。稍后,考虑热导率是温度的函数的情况。
thermalProperties (thermalmodelS“ThermalConductivity”1);
创建一个元素不大于0.2的网格。
generateMesh (thermalmodelS“Hmax”, 0.2);图pdeplot (thermalmodelS);轴平等的标题显示有限元网格的块
计算稳态解。
R = solve(thermalmodelS);T = r .温度;图pdeplot (thermalmodelS,“XYData”T“轮廓”,“上”,“ColorMap”,“热”);轴平等的标题“温度,稳态解”
创建一个瞬态热模型,并包括几何。
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函数transientBCHeatedBlock
下matlab / R20XXx / / pde的主要例子
.
thermalBC (thermalmodelT“边缘”6“温度”, @transientBCHeatedBlock);
在右边的边缘,有一个规定的热流出块。
thermalBC (thermalmodelT“边缘”, 1“HeatFlux”, -10);
顶部和底部边缘以及腔内的边缘都是绝缘的,即没有热量通过这些边缘传递。
创建一个元素不大于0.2的网格。
msh = generateMesh(thermalmodelT,“Hmax”, 0.2);图pdeplot (thermalmodelT);轴平等的标题显示有限元网格的块
计算瞬态解。执行从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“温度摄氏度”
材料属性是因变量的函数是很常见的。例如,假设热导率是温度的简单线性函数:
K = @(~,状态)0.3+0.003*state.u;
在这种情况下,变量u就是温度。在这个例子中,假设密度和比热不是温度的函数。
thermalProperties (thermalmodelS“ThermalConductivity”、k);
计算稳态解。与恒定导电性情况相比,右侧边缘的温度较低。这是因为在温度较低的地区,电导率较低。
R = solve(thermalmodelS);T = r .温度;图pdeplot (thermalmodelS,“XYData”T“轮廓”,“上”,“ColorMap”,“热”);轴平等的标题“温度,稳态解”
现在执行瞬态分析与温度有关的电导率。
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“温度摄氏度”