TransientThermalResults

Переходное тепловое решение и выведенные количества

Описание

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

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

Интерполировать температуру или ее градиент к пользовательской сетке (например, заданный meshgridИспользование interpolateTemperature или evaluateTemperatureGradient.

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

Создание

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

Свойства

развернуть все

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

Mesh конечного элемента, возвращенная как объект FEMesh Properties.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

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 object. The axes object 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);

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

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

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

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

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

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

2D модель является прямоугольной полосой, x-размерность которой расширяет от оси симметрии до наружной поверхности и чья 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 object. The axes object 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);

Постройте температурное распределение в 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 object. The axes object with title Transient Temperature at Final Time (50000 seconds) contains 12 objects of type patch, line.

Введенный в R2017a