TransientThermalResults

Переходное тепловое решение и производные величины

Описание

A TransientThermalResults объект содержит значения температуры и градиента в форме, удобной для графического изображения и постобработки.

Температура и ее градиент вычисляются в узлах треугольного или четырехгранного mesh, сгенерированной generateMesh. Значения температуры в узлах появляются в Temperature свойство. Время решения появляется в SolutionTimes свойство. Три компонента градиента температуры в узлах появляются в XGradients, YGradients, и ZGradients свойства. Можно извлечь значения решения и градиента для заданных временных индексов из Temperature, XGradients, YGradients, и ZGradients.

Чтобы интерполировать температуру или ее градиент в пользовательскую сетку (для примера, заданную как meshgrid), использование interpolateTemperature или evaluateTemperatureGradient.

Чтобы оценить тепловой поток теплового решения в узловых или произвольных пространственных местоположениях, используйте evaluateHeatFlux. Чтобы вычислить интегрированное тепло скорости потока жидкости нормальное к заданному контуру, используйте evaluateHeatRate.

Создание

Решите переходную тепловую задачу, используя solve функция. Эта функция возвращает переходное тепловое решение как TransientThermalResults объект.

Свойства

расширить все

Все переходные тепловые модели

Конечный элемент mesh, возвращенный как объект Свойств FEMesh.

Значения температуры в узлах, возвращенные в виде вектора или матрицы.

Типы данных: double

Время решения, возвращенное как вектор действительных чисел. SolutionTimes является тем же самым, что и tlist вход в solve.

Типы данных: double

Неаксисимметричные модели

x -компонент градиента температуры в узлах, возвращенный в виде вектора или матрицы.

Типы данных: double

y -компонент градиента температуры в узлах, возвращенный в виде вектора или матрицы.

Типы данных: double

z -компонент градиента температуры в узлах, возвращенный в виде вектора или матрицы.

Типы данных: double

Осесимметричные модели

r -компонент градиента температуры в узлах, возвращенный в виде вектора или матрицы.

Типы данных: double

z -компонент градиента температуры в узлах, возвращенный в виде вектора или матрицы.

Типы данных: double

Функции объекта

evaluateHeatFluxОцените тепловой поток теплового решения в узловых или произвольных пространственных местоположениях
evaluateHeatRateОцените интегрированное тепло скорости потока жидкости нормальным к заданным контурам
evaluateTemperatureGradientОцените градиент температуры теплового решения в произвольных пространственных местоположениях
interpolateTemperatureИнтерполируйте температуру в тепловом результате в произвольных пространственных местоположениях

Примеры

свернуть все

Решите 2-D переходную тепловую задачу.

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

thermalmodel = createpde('thermal','transient');

Создайте геометрию и включите ее в модель.

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);
pdegplot(thermalmodel,'EdgeLabels','on','FaceLabels','on')
xlim([-1.5 4.5])
ylim([-0.5 3.5])
axis equal

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

Для квадратной области присвойте следующие тепловые свойства:

  • Теплопроводность 10W/(mC)

  • Массовая плотность составляет 2kg/m3

  • Удельное тепло 0.1J/(kgC)

thermalProperties(thermalmodel,'ThermalConductivity',10, ...
                               'MassDensity',2, ...
                               'SpecificHeat',0.1, ...
                               'Face',1);

Для алмазной области присвойте следующие тепловые свойства:

  • Теплопроводность 2W/(mC)

  • Массовая плотность составляет 1kg/m3

  • Удельное тепло 0.1J/(kgC)

thermalProperties(thermalmodel,'ThermalConductivity',2, ...
                               'MassDensity',1, ...
                               'SpecificHeat',0.1, ...
                               'Face',2);

Предположим, что алмазообразная область является источником тепла с плотностью 4W/m2.

internalHeatSource(thermalmodel,4,'Face',2);

Применить постоянную температуру 0C по сторонам квадратной пластины.

thermalBC(thermalmodel,'Temperature',0,'Edge',[1 2 7 8]);

Установите начальную температуру равной 0 ° C.

thermalIC(thermalmodel,0);

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

generateMesh(thermalmodel);

Динамика для этой задачи очень быстрая. Температура достигает устойчивого состояния примерно за 0,1 секунды. Чтобы захватить интересную часть динамики, установите время решения на logspace(-2,-1,10). Эта команда возвращает 10 логарифмических интервалов времени решения между 0,01 и 0,1.

tlist = logspace(-2,-1,10);

Решить уравнение.

thermalresults = solve(thermalmodel,tlist)
thermalresults = 
  TransientThermalResults with properties:

      Temperature: [1481x10 double]
    SolutionTimes: [1x10 double]
       XGradients: [1481x10 double]
       YGradients: [1481x10 double]
       ZGradients: []
             Mesh: [1x1 FEMesh]

Постройте график решения с помощью изотермических линий с помощью контурного графика.

T = thermalresults.Temperature;
pdeplot(thermalmodel,'XYData',T(:,10),'Contour','on','ColorMap','hot')

Figure contains an axes. The axes contains 12 objects of type patch, line.

Анализ теплопередачи в стержне с круглого сечения и внутренней тепловой генерации путем упрощения 3-D осесимметричной модели к 2-D модели.

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

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

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

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

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

geometryFromEdges(thermalmodel,g);

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

figure
pdegplot(thermalmodel,'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(thermalmodel,'ThermalConductivity',k,...
                                'MassDensity',rho,...
                                'SpecificHeat',cp);

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

internalHeatSource(thermalmodel,q);

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

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

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

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

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

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

Укажите, что начальная температура в штоке равна нулю.

thermalIC(thermalmodel,0);

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

generateMesh(thermalmodel);

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

tfinal = 50000;
tlist = 0:100:tfinal;
result = solve(thermalmodel,tlist)
result = 
  TransientThermalResults with properties:

      Temperature: [259x501 double]
    SolutionTimes: [1x501 double]
       RGradients: [259x501 double]
       ZGradients: [259x501 double]
             Mesh: [1x1 FEMesh]

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

T = result.Temperature;

figure 
pdeplot(thermalmodel,'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.

Введенный в R2017a