Распределение тепла в круговом цилиндрическом штоке

Этот пример показывает, как упростить 3-D осесимметричную тепловую задачу до 2-D задачи с помощью симметрии вокруг оси вращения тела.

Этот пример анализирует теплопередачу в стержне с круглым сечением. В нижней части стержня расположен источник тепла, а в верхней - фиксированная температура. Внешняя поверхность стержня обменивается теплом с окружением из-за конвекции. В сложение стержень сам генерирует тепло из-за радиоактивного распада. Цель состоит в том, чтобы найти температуру в стержне как функцию времени.

Геометрия модели, свойства материала и граничные условия должны быть симметричными относительно оси вращения. Тулбокс принимает, что ось вращения является вертикальной осью, проходящей через r = 0.

Установившееся решение

Во-первых, вычислите установившееся решение. Если окончательное время в переходном анализе достаточно велико, переходное решение в конечном времени должно быть близко к установившемуся решению. При сравнении этих двух результатов можно проверить точность переходного анализа.

Создайте установившуюся тепловую модель для решения аксизимметрической задачи.

thermalModelS = createpde('thermal','steadystate-axisymmetric');

Модель 2-D является прямоугольной полосой, размер X которой простирается от оси симметрии до внешней поверхности, а размер Y простирается по фактической длине штока (от -1,5 м до 1,5 м). Создать геометрию можно путем определения координат четырех углов.

g = decsg([3 4 0 0 .2 .2 -1.5 1.5 1.5 -1.5]');

Включите геометрию в модель.

geometryFromEdges(thermalModelS,g);

Постройте график геометрии с метками ребер.

figure
pdegplot(thermalModelS,'EdgeLabels','on')
axis equal

Figure contains an axes. The axes contains 5 objects of type line, text.

Стержень состоит из материала с этими тепловыми свойствами.

k = 40; % Thermal conductivity, W/(m*C)
rho = 7800; % Density, kg/m^3
cp = 500; % Specific heat, W*s/(kg*C)
q = 20000; % Heat source, W/m^3

Для статического анализа задайте теплопроводность материала.

thermalProperties(thermalModelS,'ThermalConductivity',k);

Укажите внутренний источник тепла.

internalHeatSource(thermalModelS,q);

Задайте граничные условия. Нет тепла, переданного в направлении, перпендикулярном оси симметрии (ребро 1). Вам не нужно изменять граничное условие по умолчанию для этого ребра. Ребро 2 поддерживают при постоянной температуре T = 100 ° C.

thermalBC(thermalModelS,'Edge',2,'Temperature',100);

Задайте граничное условие конвекции на внешнем контуре (ребро 3). Окружающая температура на внешнем контуре составляет 100 ° C, и коэффициент теплопередачи равен50W/(mC).

thermalBC(thermalModelS,'Edge',3,...
                        'ConvectionCoefficient',50,...
                        'AmbientTemperature',100);

Тепловой поток в нижней части штока (ребро 4) 5000W/m2.

thermalBC(thermalModelS,'Edge',4,'HeatFlux',5000);

Сгенерируйте mesh.

msh = generateMesh(thermalModelS);
figure
pdeplot(thermalModelS)
axis equal

Figure contains an axes. The axes contains 2 objects of type line.

Решите модель и постройте график результата.

result = solve(thermalModelS);
T = result.Temperature;
figure
pdeplot(thermalModelS,'XYData',T,'Contour','on')
axis equal
title 'Steady-State Temperature'

Figure contains an axes. The axes with title Steady-State Temperature contains 12 objects of type patch, line.

Переходное решение

Создайте переходную тепловую модель для решения аксизимметрической задачи.

thermalModelT = createpde('thermal','transient-axisymmetric');

Используйте ту же геометрию и mesh, что и для статического анализа.

g = decsg([3 4 0 0 .2 .2 -1.5 1.5 1.5 -1.5]');
geometryFromEdges(thermalModelT,g);

thermalModelT.Mesh = msh;

Задайте теплопроводность, массовую плотность и удельную теплоту материала.

thermalProperties(thermalModelT,'ThermalConductivity',k,...
                                'MassDensity',rho,...
                                'SpecificHeat',cp);

Задайте внутренний источник тепла и граничные условия.

internalHeatSource(thermalModelT,q);

thermalBC(thermalModelT,'Edge',2,'Temperature',100);
thermalBC(thermalModelT,'Edge',3,...
                        'ConvectionCoefficient',50,...
                        'AmbientTemperature',100);
thermalBC(thermalModelT,'Edge',4,'HeatFlux',5000);

Укажите, что начальная температура в стержне составляет 0 ° C.

thermalIC(thermalModelT,0);

Вычислите переходное решение для времени решения от t = 0 до t = 50000 секунд.

tfinal = 50000;
tlist = 0:100:tfinal;
result = solve(thermalModelT,tlist);

Постройте график распределения температуры t = 50000 секунд.

T = result.Temperature;

figure 
pdeplot(thermalModelT,'XYData',T(:,end),'Contour','on')
axis equal
title(sprintf('Transient Temperature at Final Time (%g seconds)',tfinal))

Figure contains an axes. The axes with title Transient Temperature at Final Time (50000 seconds) contains 12 objects of type patch, line.

Найдите температуру на нижней поверхности стержня: сначала у центральной оси, а затем на внешней поверхности.

Tcenter = interpolateTemperature(result,[0.0;-1.5],1:numel(tlist));
Touter = interpolateTemperature(result,[0.2;-1.5],1:numel(tlist));

Постройте график температуры в левом конце стержня как функцию времени. Внешняя поверхность стержня подвергается воздействию окружение с постоянной температурой 100 ° C. Когда температура поверхности стержня менее 100 ° C, окружение нагревает стержень. Внешняя поверхность немного теплее внутренней оси. Когда температура поверхности превышает 100 ° C, окружение охлаждает стержень. Внешняя поверхность становится более прохладной, чем внутренняя часть штока.

figure
plot(tlist,Tcenter)
hold on
plot(tlist,Touter,'--')
title 'Temperature at the Bottom as a Function of Time'
xlabel 'Time, s'
ylabel 'Temperature, C'
grid on
legend('Center Axis','Outer Surface','Location','SouthEast')

Figure contains an axes. The axes with title Temperature at the Bottom as a Function of Time contains 2 objects of type line. These objects represent Center Axis, Outer Surface.