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'

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

Создайте тепловую модель для переходного анализа и включите геометрию. Геометрия представляет собой стержень с круглым сечением. Модель 2-D является прямоугольной полосой, размер 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';

Figure contains an axes. The axes with title Rod Section Geometry with Edge Labels contains 5 objects of type line, text.

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

Задайте граничные условия для модели. Значение ребра при 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 y. Задайте граничное условие для этого ребра следующим образом.

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-координаты, 5000y. Задайте граничное условие для этого ребра следующим образом.

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 объект. Модель содержит геометрию, сетку, тепловые свойства материала, внутренний источник тепла, граничные условия и начальные условия.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задайте температуру окружающей среды используя AmbientTemperature аргумент и константа Стефана-Больцмана с использованием свойств тепловой модели. Значение 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 объект. См. ThermalBC Свойств.

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

Подробнее о

свернуть все

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

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

  • Теплопроводность материала

  • Массовая плотность материала

  • Удельная теплота материала

  • Внутренний источник тепла

  • Температура на контуре

  • Тепловой поток через контур

  • Коэффициент конвекции на контуре

  • Коэффициент излучательной способности на контуре

  • Начальная температура

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

thermalProperties(model,'ThermalConductivity',@myfun)
internalHeatSource(model,'Face',2,@myfun)
thermalBC(model,'Edge',[3,4], ...
                'ConvectionCoefficient',@myfun, ...
                'AmbientTemperature',27)
thermalIC(model,@myfun)

Функция должна иметь форму:

function thermalVal = myfun(location,state)

Решатель передает location и state данные для вашей функции:

  • location - Структура, содержащая следующие поля:

    • location.x - X-координата точки или точки

    • location.y - Y-координата точки или точки

    • location.z - Для 3-D или осесимметричной геометрии координата Z точки или точки

    • location.r - Для осесимметричной геометрии r-координата точки или точки

    Кроме того, для граничных условий решатель передает эти данные в location структура:

    • location.nx - x-компонент вектора normal в точке вычисления или точках

    • location.ny - y-компонент вектора normal в точке оценки или точках

    • location.nz - Для 3-D или осесимметричной геометрии z-компонент вектора нормали в точке вычисления или точках

    • location.nz - Для осесимметричной геометрии z-компонент вектора нормали в точке вычисления или точках

  • state - структура, содержащая эти поля для переходных или нелинейных задач:

    • state.u - Температуры в соответствующих точках структуры местоположения

    • state.ux - Оценки x-составляющей температурных градиентов в соответствующих точках структуры местоположения

    • state.uy - Оценки y-составляющей температурных градиентов в соответствующих точках локационной структуры

    • state.uz - Для 3-D или осесимметричной геометрии оценивает z-составляющую градиентов температуры в соответствующих точках структуры местоположения

    • state.ur - Для осесимметричной геометрии оценки r-компонента градиентов температуры в соответствующих точках локационной структуры

    • state.time - Время в точках оценки

Свойства теплового материала (теплопроводность, массовая плотность и удельная теплота) и внутренний источник тепла получают эти данные от решателя:

  • location.x, location.y, location.z, location.r

  • Идентификатор поддомена

  • state.u, state.ux, state.uy, state.uz, state.r, state.time

Граничные условия (температура на контуре, тепловой поток, коэффициент конвекции и коэффициент излучения) получают эти данные от решателя:

  • location.x, location.y, location.z, location.r

  • location.nx, location.ny, location.nz, location.nr

  • state.u, state.time

Начальная температура получает следующие данные от решателя:

  • location.x, location.y, location.z, location.r

  • Идентификатор поддомена

Для всех тепловых параметров, кроме теплопроводности, ваша функция должна вернуть вектор-строку thermalVal с количеством столбцов, равным количеству точек оценки, например M = length(location.y).

Для теплопроводности ваша функция должна вернуть матрицу thermalVal с количеством строк, равным 1, Ndim, Ndim*(Ndim+1)/2, или Ndim*Ndim, где Ndim 2 для задач 2-D и 3 для задач 3-D. Количество столбцов должно равняться количеству точек оценки, например M = length(location.y). Для получения дополнительной информации о размерностях матрицы, см. c Коэффициент для specifyCofficients.

Если свойства зависят от времени или температуры, убедитесь, что ваша функция возвращает матрицу NaN правильного размера при state.u или state.time являются NaN. Решатели проверяют, является ли задача зависящей от времени передачей NaN значения состояния и поиск возвращенных NaN значения.

Введенный в R2017a