thermalBC

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

Описание

пример

thermalBC(thermalmodel,RegionType,RegionID,'Temperature',Tval) добавляет температурное граничное условие к thermalmodel. Граничное условие применяется к областям типа RegionType с идентификационными номерами в RegionID.

пример

thermalBC(thermalmodel,RegionType,RegionID,'HeatFlux,HFval) добавляет граничное условие потока тепла к thermalmodel. Граничное условие применяется к областям типа RegionType с идентификационными номерами в RegionID.

Примечание

Используйте thermalBC с HeatFlux параметр, чтобы задать тепло течет к или из внешнего источника. Чтобы задать внутреннее выделение тепла, то есть, источники тепла, которые принадлежат геометрии модели, используют internalHeatSource.

пример

thermalBC(thermalmodel,RegionType,RegionID,'ConvectionCoefficient',CCval,'AmbientTemperature',ATval) добавляет граничное условие конвекции к thermalmodel. Граничное условие применяется к областям типа RegionType с идентификационными номерами в RegionID.

пример

thermalBC(thermalmodel,RegionType,RegionID,'Emissivity',REval,'AmbientTemperature',ATval) добавляет граничное условие излучения к thermalmodel. Граничное условие применяется к областям типа RegionType с идентификационными номерами в RegionID.

thermalBC = thermalBC(___) возвращает тепловой объект граничного условия.

Примеры

свернуть все

Примените температурное граничное условие на два ребра квадрата.

thermalmodel = createpde('thermal');
geometryFromEdges(thermalmodel,@squareg);
thermalBC(thermalmodel,'Edge',[1,3],'Temperature',100)
ans = 
  ThermalBC with properties:

               RegionType: 'Edge'
                 RegionID: [1 3]
              Temperature: 100
                 HeatFlux: []
    ConvectionCoefficient: []
               Emissivity: []
       AmbientTemperature: []
               Vectorized: 'off'

Примените граничное условие потока тепла на две поверхности блока.

thermalmodel = createpde('thermal','transient');
gm = importGeometry(thermalmodel,'Block.stl');
thermalBC(thermalmodel,'Face',[1,3],'HeatFlux',20)
ans = 
  ThermalBC with properties:

               RegionType: 'Face'
                 RegionID: [1 3]
              Temperature: []
                 HeatFlux: 20
    ConvectionCoefficient: []
               Emissivity: []
       AmbientTemperature: []
               Vectorized: 'off'

Примените граничное условие конвекции на четыре поверхности блока.

thermalModel = createpde('thermal','transient');
gm = importGeometry(thermalModel,'Block.stl');
thermalBC(thermalModel,'Face',[2 4 5 6], ...
                       'ConvectionCoefficient',5, ...
                       'AmbientTemperature',27)
ans = 
  ThermalBC with properties:

               RegionType: 'Face'
                 RegionID: [2 4 5 6]
              Temperature: []
                 HeatFlux: []
    ConvectionCoefficient: 5
               Emissivity: []
       AmbientTemperature: 27
               Vectorized: 'off'

Примените граничное условие излучения на четыре поверхности блока.

thermalmodel = createpde('thermal','transient');
gm = importGeometry(thermalmodel,'Block.stl');
thermalmodel.StefanBoltzmannConstant = 5.670373E-8;
thermalBC(thermalmodel,'Face',[2,4,5,6],...
                       'Emissivity',0.1,...
                       'AmbientTemperature',300)
ans = 
  ThermalBC with properties:

               RegionType: 'Face'
                 RegionID: [2 4 5 6]
              Temperature: []
                 HeatFlux: []
    ConvectionCoefficient: []
               Emissivity: 0.1000
       AmbientTemperature: 300
               Vectorized: 'off'

Используйте указатели на функцию, чтобы задать тепловые граничные условия, которые зависят от координат.

Создайте тепловую модель для анализа переходных процессов и включайте геометрию. Геометрия является стержнем с круглым сечением. 2D модель является прямоугольной полосой, y-размерность которой расширяет от оси симметрии до наружной поверхности, и чья x-размерность расширяет по фактической длине стержня.

thermalmodel = createpde('thermal','transient');
g = decsg([3 4 -1.5 1.5 1.5 -1.5 0 0 .2 .2]');
geometryFromEdges(thermalmodel,g);

Постройте геометрию.

figure
pdegplot(thermalmodel,'EdgeLabels','on');
xlim([-2 2]);
ylim([-2 2]);
title 'Rod Section Geometry with Edge Labels';

Примите, что существует источник тепла в левом конце стержня и фиксированной температуры в правильном конце. Наружная поверхность стержня обменивается теплом со средой из-за конвекции.

Задайте граничные условия для модели. Ребро в y = 0 (ребро 1) приезжает ось симметрии. Никакое тепло не передается в направлении, нормальном к этому ребру. Этот контур моделируется как изолированный контур по умолчанию.

Температура в правильном конце стержня (ребро 2) является фиксированной температурой, T = 100 C. Задайте граничное условие для ребра 2 можно следующим образом.

thermalBC(thermalmodel,'Edge',2,'Temperature',100)
ans = 
  ThermalBC with properties:

               RegionType: 'Edge'
                 RegionID: 2
              Temperature: 100
                 HeatFlux: []
    ConvectionCoefficient: []
               Emissivity: []
       AmbientTemperature: []
               Vectorized: 'off'

Коэффициент конвекции для наружной поверхности стержня (ребро 3) зависит от y-координаты, 50 лет. Задайте граничное условие для этого ребра можно следующим образом.

outerCC = @(location,~) 50*location.y;
thermalBC(thermalmodel,'Edge',3,...
                       'ConvectionCoefficient',outerCC,...
                       'AmbientTemperature',100)
ans = 
  ThermalBC with properties:

               RegionType: 'Edge'
                 RegionID: 3
              Temperature: []
                 HeatFlux: []
    ConvectionCoefficient: @(location,~)50*location.y
               Emissivity: []
       AmbientTemperature: 100
               Vectorized: 'off'

Поток тепла в левом конце стержня (ребро 4) является также функцией y-координаты, 5 000 лет. Задайте граничное условие для этого ребра можно следующим образом.

leftHF = @(location,~) 5000*location.y;
thermalBC(thermalmodel,'Edge',4,'HeatFlux',leftHF)
ans = 
  ThermalBC with properties:

               RegionType: 'Edge'
                 RegionID: 4
              Temperature: []
                 HeatFlux: @(location,~)5000*location.y
    ConvectionCoefficient: []
               Emissivity: []
       AmbientTemperature: []
               Vectorized: 'off'

Входные параметры

свернуть все

Тепловая модель, заданная как ThermalModel объект. Модель содержит геометрию, mesh, тепловые свойства материального, внутреннего источника тепла, граничных условий и начальных условий.

Пример: thermalmodel = createpde('thermal','steadystate')

Геометрический тип области, заданный как 'Edge' или 'Face'.

Пример: thermalBC(thermalmodel,'Face',1,'Temperature',72)

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

Геометрический ID области, заданный как вектор положительных целых чисел. Найдите идентификаторы области при помощи pdegplot с 'FaceLabels' (3-D) или 'EdgeLabels' (2D) набор значений к 'on'.

Пример: thermalBC(thermalmodel,'Edge',2:5,'Temperature',72)

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

Температурное граничное условие, заданное как номер или указатель на функцию. Используйте указатель на функцию, чтобы задать температуру, которая зависит от пробела, время или температура. Функция должна иметь форму

Tval = Tfun(location,state)

Решатель передает location данные как массив структур с полями location.x, location.y, и, для 3-D проблем, location.z. state данные являются массивом структур с полями state.u, state.ux, state.uy, state.uz (для 3-D проблем), и state.time (для переходных проблем). state.u поле содержит вектор решения. state.ux, state.uy, state.uz поля являются оценками частных производных решения в соответствующих точках структуры местоположения. state.time поле содержит время в точках оценки.

Tfun должен возвратить вектор-строку Tval с количеством столбцов равняются количеству точек оценки, M = length(location.x).

Пример: thermalBC(thermalmodel,'Face',1,'Temperature',72)

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

Нагрейте граничное условие потока, заданное как номер или указатель на функцию. Используйте указатель на функцию, чтобы задать поток тепла, который зависит от пробела, время или температура. Функция должна иметь форму

HFval = HFfun(location,state)

Решатель передает location данные как массив структур с полями location.x, location.y, и, для 3-D проблем, location.z. state данные являются массивом структур с полями state.u, state.ux, state.uy, state.uz (для 3-D проблем), и state.time (для переходных проблем). state.u поле содержит вектор решения. state.ux, state.uy, state.uz поля являются оценками частных производных решения в соответствующих точках структуры местоположения. state.time поле содержит время в точках оценки.

HFfun должен возвратить вектор-строку HFval с количеством столбцов равняются количеству точек оценки, M = length(location.x).

Пример: thermalBC(thermalmodel,'Face',[1,3],'HeatFlux',20)

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

Конвекция к окружающему граничному условию, заданному как номер или указатель на функцию. Используйте указатель на функцию, чтобы задать коэффициент конвекции, который зависит от пробела, время или температура. Функция должна иметь форму

CCval = CCfun(location,state)

Решатель передает location данные как массив структур с полями location.x, location.y, и, для 3-D проблем, location.z. state данные являются массивом структур с полями state.u, state.ux, state.uy, state.uz (для 3-D проблем), и state.time (для переходных проблем). state.u поле содержит вектор решения. state.ux, state.uy, state.uz поля являются оценками частных производных решения в соответствующих точках структуры местоположения. state.time поле содержит время в точках оценки.

CCfun должен возвратить вектор-строку CCval с количеством столбцов равняются количеству точек оценки, M = length(location.x).

Задайте температуру окружающей среды с помощью AmbientTemperature аргумент. Значение ConvectionCoefficient положительно для конвекции тепла в окружающую среду.

Пример: thermalBC(thermalmodel,'Edge',[2,4],'ConvectionCoefficient',5,'AmbientTemperature',60)

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

Коэффициент излучаемости излучения, заданный как номер в области значений (0,1). Используйте указатель на функцию, чтобы задать излучаемость излучения, которая зависит от пробела, время или температура. Функция должна иметь форму

REval = REfun(location,state)

Решатель передает location данные как массив структур с полями location.x, location.y, и, для 3-D проблем, location.z. state данные являются массивом структур с полями state.u, state.ux, state.uy, state.uz (для 3-D проблем), и state.time (для переходных проблем). state.u поле содержит вектор решения. state.ux, state.uy, state.uz поля являются оценками частных производных решения в соответствующих точках структуры местоположения. state.time поле содержит время в точках оценки.

REfun должен возвратить вектор-строку REval с количеством столбцов равняются количеству точек оценки, M = length(location.x).

Задайте температуру окружающей среды с помощью AmbientTemperature аргумент и Stefan-постоянная-Больцмана с помощью тепловых свойств модели. Значение Emissivity положительно для теплового излучения в окружающую среду.

Пример: thermalmodel.StefanBoltzmannConstant = 5.670373E-8; thermalBC(thermalmodel,'Edge',[2,4,5,6],'Emissivity',0.1,'AmbientTemperature',300)

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

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

Пример: thermalBC(thermalmodel,'Edge',[2,4],'ConvectionCoefficient',5,'AmbientTemperature',60)

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

Выходные аргументы

свернуть все

Обработайте к тепловому граничному условию, возвращенному как объект. thermalBC сопоставляет тепловое граничное условие с геометрической областью.

Введенный в R2017a