exponenta event banner

thermalIC

Установка начальных условий или начальных предположений для тепловой модели

Описание

пример

thermalIC(thermalmodel,T0) задает начальную температуру или начальное предположение для температуры для всей геометрии.

пример

thermalIC(thermalmodel,T0,RegionType,RegionID) задает начальную температуру или начальное предположение для температуры для определенной области геометрии.

пример

thermalIC(thermalmodel,Tresults) устанавливает начальную температуру или начальное предположение для температуры с использованием раствора Tresults из предыдущего теплового анализа той же геометрии и сетки. Если Tresults достигается путем решения нестационарной тепловой задачи, thermalIC использует решение Tresults для последнего шага времени.

пример

thermalIC(thermalmodel,Tresults,iT) устанавливает начальную температуру или начальное предположение для температуры с использованием раствора Tresults для временного шага iT из предыдущего теплового анализа той же геометрии и сетки.

thermalIC = thermalIC(___)для любого предыдущего синтаксиса возвращает дескриптор объекту «thermal initial conditions».

Примеры

свернуть все

Создайте тепловую модель, импортируйте геометрию и установите начальную температуру равной 0 для всей геометрии.

thermalModel = createpde('thermal','transient');
geometryFromEdges(thermalModel,@lshapeg);
thermalIC(thermalModel,0)
ans = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: [1 2 3]
    InitialTemperature: 0

Задайте различные начальные условия для каждой части L-образной геометрии мембраны.

Создайте модель и включите 2-D геометрию.

thermalModel = createpde('thermal','transient');
geometryFromEdges(thermalModel,@lshapeg);
pdegplot(thermalModel,'FaceLabels','on')
axis equal
ylim([-1.1 1.1])

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

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

thermalIC(thermalModel,0,'Face',1)
ans = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: 1
    InitialTemperature: 0

thermalIC(thermalModel,10,'Face',2)
ans = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: 2
    InitialTemperature: 10

thermalIC(thermalModel,75,'Face',3)
ans = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: 3
    InitialTemperature: 75

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

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

Установите начальную температуру в стержне в зависимости от координаты y, например 103 (0,2-y2).

T0 = @(location)10^3*(0.2 - location.y.^2);
thermalIC(thermalmodel,T0)
ans = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: 1
    InitialTemperature: @(location)10^3*(0.2-location.y.^2)

Создайте тепловую модель и включите квадратную геометрию.

thermalmodel = createpde('thermal','transient');
geometryFromEdges(thermalmodel,@squareg);
pdegplot(thermalmodel,'FaceLabels','on')
ylim([-1.1,1.1])
axis equal

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

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

thermalProperties(thermalmodel,'ThermalConductivity',500,...
                               'MassDensity',200,...
                               'SpecificHeat',100);

internalHeatSource(thermalmodel,2);
thermalBC(thermalmodel,'Edge',[1,3],'Temperature',100);
thermalIC(thermalmodel,0);

Создайте сетку, решите проблему и постройте график решения.

generateMesh(thermalmodel);
tlist = 0:0.5:10;
result1 = solve(thermalmodel,tlist)
result1 = 
  TransientThermalResults with properties:

      Temperature: [1541x21 double]
    SolutionTimes: [1x21 double]
       XGradients: [1541x21 double]
       YGradients: [1541x21 double]
       ZGradients: []
             Mesh: [1x1 FEMesh]

pdeplot(thermalmodel,'XYData',result1.Temperature(:,end))

Figure contains an axes. The axes contains an object of type patch.

Теперь возобновите анализ и решите проблему в течение времени от 10 до 15 секунд. В качестве исходного условия используйте ранее полученный раствор в течение 10 секунд. Поскольку 10 секунд - последний элемент в tlist, не требуется указывать индекс времени решения. По умолчанию thermalIC использует последний индекс решения.

thermalIC(thermalmodel,result1)
ans = 
  NodalThermalICs with properties:

    InitialTemperature: [1541x1 double]

Решите проблему и постройте график решения.

result2 = solve(thermalmodel,10:0.5:15)
result2 = 
  TransientThermalResults with properties:

      Temperature: [1541x11 double]
    SolutionTimes: [10 10.5000 11 11.5000 12 12.5000 13 13.5000 14 14.5000 15]
       XGradients: [1541x11 double]
       YGradients: [1541x11 double]
       ZGradients: []
             Mesh: [1x1 FEMesh]

pdeplot(thermalmodel,'XYData',result2.Temperature(:,end))

Figure contains an axes. The axes contains an object of type patch.

Чтобы использовать ранее полученное решение для определенного времени решения вместо последнего, укажите индекс времени решения в качестве третьего параметра thermalIC. Например, используйте решение в момент времени 5 секунд, который является 11-м элементом в tlist.

tlist(11)
ans = 5
thermalIC(thermalmodel,result1,11);
result2 = solve(thermalmodel,5:0.5:15)
result2 = 
  TransientThermalResults with properties:

      Temperature: [1541x21 double]
    SolutionTimes: [1x21 double]
       XGradients: [1541x21 double]
       YGradients: [1541x21 double]
       ZGradients: []
             Mesh: [1x1 FEMesh]

pdeplot(thermalmodel,'XYData',result2.Temperature(:,end))

Figure contains an axes. The axes contains an object of type patch.

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

свернуть все

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

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

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

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

Тип геометрической области, указанный как 'Vertex', 'Edge', 'Face', или 'Cell' для модели 3-D. Для модели 2-D используйте 'Vertex', 'Edge', или 'Face'.

Пример: thermalIC(thermalmodel,10,'Face',1)

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

Идентификатор геометрической области, заданный как вектор положительных целых чисел. Поиск идентификаторов регионов с помощью pdegplot.

Пример: thermalIC(thermalmodel,10,'Edge',2:5)

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

Решение тепловой модели, указанное как ThermalResults объект. Создать Tresults с помощью solve.

Индекс времени, заданный как положительное целое число.

Пример: thermalIC(thermalmodel,Tresults,21)

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

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

свернуть все

Перевести в исходное состояние, возвращенное в виде GeometricThermalICs или NodalThermalICs объект. Посмотрите свойства GeometricThermalICs и свойства NodalThermalICs.

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

Подробнее

свернуть все

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

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

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

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

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

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

  • Температура на границе

  • Тепловой поток через границу

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

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

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

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

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