TransientThermalResults

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

Описание

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

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

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

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

Создание

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

Свойства

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

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

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

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

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

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

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

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

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

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

  • Теплопроводность 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/m3.

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

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

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

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

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

Введенный в R2017a