exponenta event banner

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

В этом примере показано, как упростить 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 поддерживают при постоянной температуре Т = 100 ° С.

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

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

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

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

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

Создайте сетку.

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');

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

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.