Теплопередача в блоке с полостью

Этот пример показывает, как решить для распределения тепла в блоке с полостью.

Рассмотрим блок, содержащий прямоугольную трещину или полость. Левая сторона блока нагревается до 100 степеней С. В правой части блока тепло течет от блока к окружающему воздуху с постоянной скоростью, для примера -10W/m2. Все остальные контуры изолированы. Температура в блоке в начальное время t0=0 0 степени. Цель состоит в том, чтобы смоделировать распределение тепла в течение первых пяти секунд.

Создайте модель теплового анализа

Первым шагом в решении задачи теплопередачи является создание модели теплового анализа. Это контейнер, который содержит геометрию, свойства теплового материала, внутренние источники тепла, температуру на контурах, тепловые потоки через контуры, mesh и начальные условия.

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

Импорт геометрии

Добавьте геометрию блока к тепловой модели с помощью geometryFromEdges функция. Файл описания геометрии для этой задачи называется crackg.m.

geometryFromEdges(thermalmodel,@crackg);

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

pdegplot(thermalmodel,'EdgeLabels','on')
ylim([-1,1])
axis equal

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

Определение тепловых свойств материала

Задайте теплопроводность, массовую плотность и удельную теплоту материала.

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

Применение граничных условий

Задайте температуру на левый край следующим 100, и постоянный тепловой поток к наружу через правое ребро как -10. Тулбокс использует изолирующее граничное условие по умолчанию для всех других контуров.

thermalBC(thermalmodel,'Edge',6,'Temperature',100);
thermalBC(thermalmodel,'Edge',1,'HeatFlux',-10);

Установка начальных условий

Установите начальное значение 0 для температуры.

thermalIC(thermalmodel,0);

Сгенерируйте Mesh

Создание и построение mesh.

generateMesh(thermalmodel);
figure
pdemesh(thermalmodel)
title('Mesh with Quadratic Triangular Elements')

Figure contains an axes. The axes with title Mesh with Quadratic Triangular Elements contains 2 objects of type line.

Задайте время решения

Установите время решения от 0 до 5 секунд на шагах 1/2.

tlist = 0:0.5:5;

Вычислите решение

Используйте solve функция для вычисления решения.

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

      Temperature: [1320x11 double]
    SolutionTimes: [0 0.5000 1 1.5000 2 2.5000 3 3.5000 4 4.5000 5]
       XGradients: [1320x11 double]
       YGradients: [1320x11 double]
       ZGradients: []
             Mesh: [1x1 FEMesh]

Оценка теплового потока

Вычислите плотность теплового потока.

[qx,qy] = evaluateHeatFlux(thermalresults);

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

Постройте график решения на конечном временном шаге t = 5,0 секунд с изотермическими линиями с помощью контурного графика и постройте график векторного поля теплового потока со стрелами.

pdeplot(thermalmodel,'XYData',thermalresults.Temperature(:,end), ...
                     'Contour','on',...
                     'FlowData',[qx(:,end),qy(:,end)], ...
                     'ColorMap','hot')

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