这个例子演示了如何对由三层不同材料制成的空心球进行三维瞬态热传导分析。
球体受到不均匀的外部热流的影响。
这个问题的物理性质和几何形状在Singh,Jain和Rizwan-Uddin(参见参考)中描述了该问题的分析解决方案。球体的内表面始终具有零的温度。外半球有积极的 值具有非均匀热流,定义为
和 为球面上各点的方位角和仰角。一开始,球面上所有点的温度都是零。
为瞬态热分析创建热模型。
ThermalModel = Createpde(“热”,瞬态的);
创建一个多层球体使用multisphere
函数。将结果几何图形赋给热模型。这个球体有三层材料,内芯是空心的。
通用= multisphere(1、2、4、6,“空白”,真的,假的,假的,假的);thermalmodel。几何=通用;
绘制几何形状并显示细胞标签和面部标签。用一个FaceAlpha
0.25,这样内层的标签是可见的。
图('位置'[10800400]);次要情节(1、2、1)pdegplot (thermalmodel,“FaceAlpha”,0.25,'Celllabel',“上”) 标题('具有细胞标签的几何形状')子图(1,2,2)pdegplot(ThermalModel,“FaceAlpha”,0.25,“FaceLabel”,“上”) 标题(“带有面部标签的几何图形”)
为几何体生成一个网格。选择一个足够粗的网格尺寸来加速求解,但又足够细的网格尺寸来合理准确地表示几何图形。
generatemesh(ThermalModel,'hmax'1);
为球体的每一层指定导热系数、质量密度和比热。材料属性是无量纲值,不是由真实的材料属性给出的。
thermalProperties (thermalmodel'细胞',1,“ThermalConductivity”,1,...“MassDensity”,1,...'细分'1);thermalProperties (thermalmodel'细胞'2,“ThermalConductivity”2,...“MassDensity”,1,...'细分',0.5);thermalProperties (thermalmodel'细胞',3,“ThermalConductivity”,4,...“MassDensity”,1,...'细分', 4/9);
指定边界条件。最内面始终具有零的温度。
thermalBC (thermalmodel'脸',1,“温度”,0);
球体的外表面有一个外部热流。用热边界条件的函数形式来定义热流。
功能qflux = ExternalHeatFlux(区域,〜)
[PHI,THETA,〜] = CART2SPH(Region.x,Region.y,Region.z);
Theta = Pi / 2 - θ;%变换为0 <= theta <= pi
id = phi > 0;
qflux = zeros(大小(区域.x));
Qflux (ids) =θ(ids) ^ 2。*(π-θ(ids)) ^ 2 ^ 2 *φ(ids)。*(π-φ(ids)) ^ 2;
结束
在表面画出通量。
[PHI,THETA,R] = MeshGrid(Linspace(0,2 * Pi),Linspace(-PI / 2,PI / 2),6);[x,y,z] = sph2cart(phi,theta,r);Region.x = x;区域.Y = y;Region.z = z;Flux = ExternalHeatFlux(区域,[]);图SURF(X,Y,Z,助焊剂,'linestyle',“没有”)轴平等的视图(130年,10)colorbar包含'X'ylabel'是'zlabel'z'标题('外部磁通量')
将这个边界条件包含到模型中。
thermalBC (thermalmodel'脸',4,...'eachflux'@externalHeatFlux,...矢量化的,“上”);
在所有点定义初始温度为零为零。
Thermalic(ThermalModel,0);
定义时间步向量,求解瞬态热问题。
tlist = [0,2,5:5:50];r =解决(ThermalModel,Tlist);
绘制轮廓几次,对于所有图的轮廓水平相同,确定解决方案中的温度范围。最小温度为零,因为它是球体内表面上的边界条件。
tmin = 0;
从最终时间步骤解决方案中找到最高温度。
tmax = max(r.temperature(:,结束));
绘制范围内的等高线Tmin.
来达峰时间
当时TLIST.
.
h =图;为i = 1:numel(tlist)'colormapdata',R.Temperature(:,i)) caxis([Tmin,Tmax]) view(130,10) title(['时的温度'num2str(tlist(i))]);m(i)= getFrame;结束
要在计算机上运行此示例时查看轮廓的影片,请执行以下行:
电影(M,2)
可视化横截面上的温度轮廓。首先,定义一个点的矩形网格 飞机在哪里 .
[YG, ZG] = meshgrid (linspace (6100), linspace (6100);XG = 0(大小(YG));
插值网格点的温度。对几个时间步长进行插值,观察温度轮廓的变化。
tindex = [2,3,5,7,9,11];varnames = {'time_index','time_step'};index_step = table(tindex。',tlist(tindex)。',“VariableNames”, varNames);disp (index_step);
Time_index Time_step __________ _________ 2 2 3 5 5 15 7 25 9 35 11 45
TG = interpolateTemperature (R, XG, YG、ZG tIndex);
在横截面上定义几何球形层。
t = linspace(0, 2 *π);ylayer1 = cos (t);zlayer1 =罪(t);ylayer2 = 2 * cos (t);zlayer2 = 2 * sin (t);ylayer3 = 4 * cos (t);zlayer3 = 4 * sin (t);ylayer4 = 6 * cos (t);zlayer4 = 6 * sin (t);
绘制范围内的等高线Tmin.
来达峰时间
对应于时间指标的时间步长tIndex
.
图('位置',[10,10,1000,550]);为i = 1:numel(tIndex) subplot(2,3,i) contour(YG,ZG,重塑(TG(:,i),size(YG)),'showtext',“上”)彩色杆标题(['时的温度'num2str(tlist(tindex(i)))]);抓住在caxis ([Tmin,达峰时间])轴平等的用于参考的球形层的%绘制边界。绘图(Ylayer1,Zlayer1,'K',“线宽”,1.5)绘图(Ylayer2,Zlayer2,'K',“线宽”1.5)情节(ylayer3 zlayer3,'K',“线宽”,1.5)绘图(Ylayer4,Zlayer4,'K',“线宽”,1.5)结束
[1] Singh,Suneet,P. K. Jain和Rizwan-Uddin。“多层球体中的三维,不稳定导热的分析解决方案。”asme。J.传热。138(10),2016,PP。101301-101301-11。