internalHeatSource
指定热模型的内部热源
语法
描述
internalHeatSource (
指定热模型的内部热源。这个语法表明整个几何图形都是一个热源。thermalmodel
,heatSourceValue
)
请注意
使用internalHeatSource
用于指定内热发生器,即用于指定属于模型几何结构的热源。要指定来自外部源的热流入,请使用thermalBC
函数与HeatFlux
参数。
internalHeatSource (
指定类型的几何区域thermalmodel
,heatSourceValue
,RegionType
,RegionID
)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,例如, .
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))
始终确保你的函数返回一个矩阵南
大小正确的时候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))
时变热源函数
函数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;结束结束
输入参数
thermalmodel
- - - - - -热模型
ThermalModel
对象
热模型,指定为aThermalModel
对象。该模型包含几何形状、网格、材料的热特性、内部热源、边界条件和初始条件。
例子:Thermalmodel = createpde("thermal","steadystate")
RegionType
- - - - - -几何区域类型
“面子”
|“细胞”
几何区域类型,指定为“面子”
二维模型或“细胞”
一个三维模型。
例子:internalHeatSource (thermalmodel, 25岁的“细胞”,1)
数据类型:字符
|字符串
RegionID
- - - - - -几何区域ID
正整数向量
heatSourceValue
- - - - - -热源值
数量|函数处理
热源值,用数字或函数句柄表示。使用函数句柄指定依赖于空间、时间或温度的内部热源。详细信息请参见更多关于.
例子:internalHeatSource (thermalmodel, 25)
数据类型:双
|function_handle
labeltext
- - - - - -内热源标签
特征向量|字符串
内部热源的标签,指定为字符矢量或字符串。
数据类型:字符
|字符串
输出参数
heatSource
-热源手柄
HeatSourceAssignment
对象
手柄到热源,作为一个返回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.x
,location.y
,location.z
,location.r
子域ID
state.u
,state.ux
,state.uy
,state.uz
,state.r
,state.time
边界条件(边界上的温度、热通量、对流系数和辐射发射率系数)从求解器获得这些数据:
location.x
,location.y
,location.z
,location.r
location.nx
,location.ny
,location.nz
,location.nr
state.u
,state.time
初始温度由求解器得到如下数据:
location.x
,location.y
,location.z
,location.r
子域ID
对于所有热参数,除了热导率,你的函数必须返回一个行向量thermalVal
例如,列的数量等于计算点的数量,M =长度(location.y)
.
对于热导率,函数必须返回一个矩阵thermalVal
行数等于1,Ndim
,Ndim * (Ndim + 1) / 2
,或Ndim * Ndim
,在那里Ndim
对于二维问题是2,对于三维问题是3。列的数量必须等于求值点的数量,例如:M =长度(location.y)
.矩阵的维数请参见c系数为特定系数.
如果属性依赖于时间或温度,请确保函数返回的矩阵为南
大小正确的时候state.u
或state.time
是南
.求解器通过传递来检查问题是否与时间相关南
状态值和查找返回值南
值。
非恒定热参数函数中的附加参数
要在函数中使用附加参数,请将(接受附加参数的)函数包装为仅接受位置
而且状态
参数。例如:
thermalVal =...@(位置、状态)myfunWithAdditionalArgs(位置、状态、__arg1最长...)thermalBC(模型,“边缘”3,“温度”,thermalVal) thermalVal = @(location) myfunWithAdditionalArgs(location,arg1,arg2...)thermalVal thermalIC(模型)
版本历史
在R2017a中引入R2021b:标签来提取用于的稀疏线性模型控制系统工具箱
现在您可以添加一个标签的内部热源使用linearizeInput
函数。这个函数可以让你把内部热源传递到线性化
函数,该函数提取稀疏线性模型以与控制系统工具箱一起使用。
Beispiel offnen
Sie haben eine geänderte版本dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
MATLAB-Befehl
你的身体和身体之间的联系MATLAB-Befehl
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。