主要内容

internalHeatSource

指定热模型的内部热源

描述

例子

internalHeatSource (thermalmodelheatSourceValue指定热模型的内部热源。这个语法表明整个几何图形都是一个热源。

请注意

使用internalHeatSource用于指定内热发生器,即用于指定属于模型几何结构的热源。要指定来自外部源的热流入,请使用thermalBC函数与HeatFlux参数。

例子

internalHeatSource (thermalmodelheatSourceValueRegionTypeRegionID指定类型的几何区域RegionType身份证号码RegionID作为热源。总是指定heatSourceValue首先,然后指定RegionType而且RegionID

internalHeatSource (___“标签”,labeltext控件使用的内部热源添加标签linearizeInput函数。这个函数可以让你把内部热源传递到线性化功能,提取稀疏线性模型与控制系统工具箱™使用。

heatSource= internalHeatSource (___返回热源对象。

例子

全部折叠

创建瞬态热模型。

Thermalmodel = createpde(“热”“瞬态”);

导入几何图形。

gm = importGeometry(热模型,“SquareBeam.stl”);

设置导热系数为0.2,质量密度为2700年e-9,比热为920

thermalProperties (thermalmodel“ThermalConductivity”, 0.2,...“MassDensity”2700 e-9,...“SpecificHeat”, 920)
ans = ThermalMaterialAssignment with properties: RegionType: 'cell' RegionID: 1导热系数:0.2000 MassDensity: 2.7000e-06 SpecificHeat: 920

指定整个几何以该速率产生热量2的军医

internalHeatSource (thermalmodel、2)的军医
ans = HeatSourceAssignment with properties: RegionType: 'cell' RegionID: 1 HeatSource: 2.0000 -04 Label: []

创建一个稳态热模型。

thermalModel = createpde(“热”“瞬态”);

创建几何图形。

Sq1 = [3;4;0;3;3;0;0;0;3;3); D1 = [2; 4; 0.5; 1.5; 2.5; 1.5; 1.5; 0.5; 1.5; 2.5]; gd = [SQ1 D1]; sf =“于SQ1 + D1”;Ns = char(“于SQ1”“D1”);Ns = Ns ';Dl = decsg(gd,sf,ns);geometryFromEdges (thermalModel dl);

热导率为50,质量密度为2500,比热为600。

thermalProperties (thermalModel“ThermalConductivity”, 50岁,...“MassDensity”, 2500,...“SpecificHeat”, 600);

指定面1在25度产生热量。

internalHeatSource (thermalModel, 25岁,“面子”, 1)
ans = HeatSourceAssignment with properties: RegionType: 'face' RegionID: 1 HeatSource: 25 Label: []

使用函数句柄指定依赖于坐标的内部热源。

创建一个热模型进行瞬态分析,并包括几何。几何形状是一个具有圆形截面的杆。二维模型是一个矩形条带y-dimension从对称轴延伸到外表面,而其x-dimension扩展到杆的实际长度。

Thermalmodel = createpde(“热”“瞬态”);G = decsg([3 4 -1.5 1.5 1.5 -1.5 0 0 0.2 0.2]');geometryFromEdges (thermalmodel g);

由于放射性衰变,热量在棒内产生。因此,整个几何是一个内部的非线性热源,可以用的函数来表示y-coordinate,例如, 2000 y

Q = @(location,state)2000*location.y;

指定瞬态模型的内部热源。

internalHeatSource (thermalmodel q)
ans = HeatSourceAssignment with properties: RegionType: 'face' RegionID: 1 HeatSource: @(location,state)2000*location。y标签:[]

使用函数句柄指定依赖于时间的内部热源。

创建一个热模型进行瞬态分析,并包括几何。几何形状是一个矩形条。

Thermalmodel = createpde(“热”“瞬态”);G = decsg([3 4 -1.5 1.5 1.5 -1.5 0 0 0.2 0.2]');geometryFromEdges (thermalmodel g);

指定棒的热性能。

thermalProperties (thermalmodel“ThermalConductivity”现年40岁的...“MassDensity”, 7800,...“SpecificHeat”, 500);

指定边界条件和初始温度。

thermalBC (thermalmodel“边缘”2,“温度”, 100);thermalBC (thermalmodel“边缘”3,...“ConvectionCoefficient”, 50岁,...“AmbientTemperature”, 100);thermalIC (thermalmodel 0);

指定整个几何以20000的速率产生热量t在前500秒内,然后热源关闭。详细信息请参见时变热源函数

internalHeatSource (thermalmodel @heatSource);

生成网格,利用求解时间从0到50000秒求解模型,并绘制结果。

generateMesh (thermalmodel);Tfinal = 50000;Tlist = 0:100:tfinal;Result = solve(thermalmodel,tlist);T =结果。温度;图subplot(2,1,1) pdeploy (thermalmodel,“XYData”T (: 6),“轮廓”“上”)轴平等的标题(sprintf (“%g s的温度”,tlist(6))) subplot(2,1,2) pdeploy(热模型,“XYData”T(:,结束),“轮廓”“上”)轴平等的标题(sprintf (“%g s的温度”, tfinal))

图中包含2个轴对象。标题为500秒的轴对象1包含12个类型为patch、line的对象。标题为Temperature at 50000 s的坐标轴对象2包含12个类型为patch、line的对象。

始终确保你的函数返回一个矩阵大小正确的时候state.time.求解器通过传递来正确地识别与时间相关的问题状态值和查找返回值值。如果没有这个条件,求解器可能会失败或返回不正确的结果。

internalHeatSource (thermalmodel @heatSourceInvalid);Result = solve(thermalmodel,tlist);T =结果。温度;图subplot(2,1,1) pdeploy (thermalmodel,“XYData”T (: 6),“轮廓”“上”)轴平等的标题(sprintf (“%g s的温度”,tlist(6))) subplot(2,1,2) pdeploy(热模型,“XYData”T(:,结束),“轮廓”“上”)轴平等的标题(sprintf (“%g s的温度”, tfinal))

图中包含2个轴对象。标题为500秒的轴对象1包含12个类型为patch、line的对象。标题为Temperature at 50000 s的坐标轴对象2包含12个类型为patch、line的对象。

时变热源函数

函数Q =热源(位置,状态)Q =零(1,数字(位置。x));如果(isnan (state.time))当time=NaN告知时返回NaN计算出热源是时间的函数。Q(1,:) = NaN;返回结束如果state.time< 500 Q(1,:) = 20000*state.time;结束结束函数Q = heatSourceInvalid(位置,状态)%不检查NaNQ = 0 (1,numel(location.x));如果state.time< 500 Q(1,:) = 20000*state.time;结束结束

输入参数

全部折叠

热模型,指定为aThermalModel对象。该模型包含几何形状、网格、材料的热特性、内部热源、边界条件和初始条件。

例子:Thermalmodel = createpde("thermal","steadystate")

几何区域类型,指定为“面子”二维模型或“细胞”一个三维模型。

例子:internalHeatSource (thermalmodel, 25岁的“细胞”,1)

数据类型:字符|字符串

几何区域ID,指定为正整数向量。使用查找区域idpdegplot

例子:internalHeatSource (thermalmodel, 25岁的“细胞”,1:3)

数据类型:

热源值,用数字或函数句柄表示。使用函数句柄指定依赖于空间、时间或温度的内部热源。详细信息请参见更多关于

例子:internalHeatSource (thermalmodel, 25)

数据类型:|function_handle

内部热源的标签,指定为字符矢量或字符串。

数据类型:字符|字符串

输出参数

全部折叠

手柄到热源,作为一个返回HeatSourceAssignment对象。看到HeatSourceAssignment属性

heatSourceValue将热源值与几何区域相关联。

更多关于

全部折叠

指定热模型的非常数参数

当这些热参数依赖于空间、温度和时间时,使用函数句柄指定它们:

  • 材料的热导率

  • 材料的质量密度

  • 材料的比热

  • 内热源

  • 边界温度

  • 热通量通过边界

  • 边界上的对流系数

  • 边界上的辐射发射率系数

  • 初始温度(仅取决于空间)

例如,使用函数句柄来指定此模型的热导率、内部热源、对流系数和初始温度。

thermalProperties(模型,“ThermalConductivity”...@myfunConductivity) internalHeatSource(模型,“面子”2、@myfunHeatSource) thermalBC(模型、“边缘”(3、4),...“ConvectionCoefficient”@myfunBC,...“AmbientTemperature”27) thermalIC(模型、@myfunIC)

对于除初始温度外的所有参数,函数必须为:

函数thermalVal = myfun(位置,状态)

对于初始温度,函数必须为:

函数thermalVal = myfun(location)

中的数据进行计算和填充位置而且状态构造数组并将此数据传递给函数。您可以定义函数,使其输出依赖于此数据。你可以用任何名字来代替位置而且状态,但函数必须恰好有两个参数(如果函数指定初始温度,则只有一个参数)。

  • 位置-包含这些字段的结构:

    • location.x- - -x点的-坐标

    • location.y- - -y点的-坐标

    • location.z-对于三维或轴对称几何,使用z点的-坐标

    • location.r-对于轴对称几何,为r点的-坐标

    此外,对于边界条件,求解器将这些数据传递到位置结构:

    • location.nx- - - - - -x-法向量在评价点的分量

    • location.ny- - - - - -y-法向量在评价点的分量

    • location.nz-对于三维或轴对称几何,z-法向量在评价点的分量

    • location.nr-对于轴对称几何,r-法向量在评价点的分量

  • 状态包含这些字段的结构,用于瞬态或非线性问题:

    • state.u—位置结构对应点的温度

    • state.ux-估计的x-位置结构对应点的温度梯度分量

    • state.uy-估计的y-位置结构对应点的温度梯度分量

    • state.uz-对于三维或轴对称几何,估计的z-位置结构对应点的温度梯度分量

    • state.ur-对于轴对称几何,的估计r-位置结构对应点的温度梯度分量

    • state.time-评估点的时间

材料热特性(导热系数、质量密度和比热)和内热源从求解器得到这些数据:

  • location.xlocation.ylocation.zlocation.r

  • 子域ID

  • state.ustate.uxstate.uystate.uzstate.rstate.time

边界条件(边界上的温度、热通量、对流系数和辐射发射率系数)从求解器获得这些数据:

  • location.xlocation.ylocation.zlocation.r

  • location.nxlocation.nylocation.nzlocation.nr

  • state.ustate.time

初始温度由求解器得到如下数据:

  • location.xlocation.ylocation.zlocation.r

  • 子域ID

对于所有热参数,除了热导率,你的函数必须返回一个行向量thermalVal例如,列的数量等于计算点的数量,M =长度(location.y)

对于热导率,函数必须返回一个矩阵thermalVal行数等于1,NdimNdim * (Ndim + 1) / 2,或Ndim * Ndim,在那里Ndim对于二维问题是2,对于三维问题是3。列的数量必须等于求值点的数量,例如:M =长度(location.y).矩阵的维数请参见c系数为特定系数

如果属性依赖于时间或温度,请确保函数返回的矩阵为大小正确的时候state.ustate.time.求解器通过传递来检查问题是否与时间相关状态值和查找返回值值。

非恒定热参数函数中的附加参数

要在函数中使用附加参数,请将(接受附加参数的)函数包装为仅接受位置而且状态参数。例如:

thermalVal =...@(位置、状态)myfunWithAdditionalArgs(位置、状态、__arg1最长...thermalBC(模型,“边缘”3,“温度”,thermalVal) thermalVal = @(location) myfunWithAdditionalArgs(location,arg1,arg2...thermalVal thermalIC(模型)

版本历史

在R2017a中引入

全部展开