exponenta event banner

TransientThermalResults

Нестационарный тепловой раствор и производные количества

Описание

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

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

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

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

Создание

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

Свойства

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

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

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

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

Типы данных: 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.

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

  • Теплопроводность 10 Вт/( m⋅∘C)

  • Массовая плотность 2 кг/м3

  • Удельная теплота составляет 0,1 Дж/( kg⋅∘C)

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

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

  • Теплопроводность 2 Вт/( m⋅∘C)

  • Массовая плотность 1 кг/м3

  • Удельная теплота составляет 0,1 Дж/( kg⋅∘C)

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

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

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

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

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

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

thermalIC(thermalmodel,0);

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

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.

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

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

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

Модель 2-D представляет собой прямоугольную полосу, 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. 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 поддерживают при постоянной температуре Т = 100 ° С.

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

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

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

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

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

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

thermalIC(thermalmodel,0);

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

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