exponenta event banner

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.

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

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

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-й) набор значений к'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-компонент вектора нормали в точке оценки или точках

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

    • 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 Коэффициент для specifyCoefficients.

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

Представлен в R2017a