Установите начальные условия или начальное предположение для тепловой модели
thermalIC(
устанавливает начальную температуру или начальное предположение температуры на всю геометрию.thermalmodel
,T0
)
thermalIC(
устанавливает начальную температуру или начальное предположение для температуры в конкретную геометрическую область.thermalmodel
,T0
,RegionType
,RegionID
)
thermalIC(
устанавливает начальную температуру или начальное предположение температуры с помощью решения thermalmodel
,Tresults
)Tresults
из предыдущего теплового анализа на той же геометрии и mesh. Если Tresults
получается путем решения переходной тепловой задачи, thermalIC
использует решение Tresults
для последнего временного шага.
thermalIC(
устанавливает начальную температуру или начальное предположение температуры с помощью решения thermalmodel
,Tresults
,iT
)Tresults
для временного шага iT
из предыдущего теплового анализа на той же геометрии и mesh.
для любого предыдущего синтаксиса возвращает указатель на объект тепловых начальных условий.thermalIC
= thermalIC(___)
Создайте тепловую модель, импортируйте геометрию и установите начальную температуру равной 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])
Установите начальные условия.
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, например, .
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
Задайте свойства материала и внутренний источник тепла, и установите граничные условия и начальные условия.
thermalProperties(thermalmodel,'ThermalConductivity',500,... 'MassDensity',200,... 'SpecificHeat',100); internalHeatSource(thermalmodel,2); thermalBC(thermalmodel,'Edge',[1,3],'Temperature',100); thermalIC(thermalmodel,0);
Сгенерируйте mesh, решите задачу и постройте график решения.
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))
Теперь возобновите анализ и решите задачу за время от 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))
Чтобы использовать ранее полученное решение для определенного времени решения вместо последнего, задайте индекс времени решения как третий параметр 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))
thermalmodel
- Тепловая модельThermalModel
объектТепловая модель, заданная как ThermalModel
объект. Модель содержит геометрию, сетку, тепловые свойства материала, внутренний источник тепла, граничные условия и начальные условия.
Пример: thermalmodel = createpde('thermal','steadystate')
T0
- Начальная температура или начальное предположение о температуреНачальная температура или начальное предположение температуры, заданные как число или указатель на функцию. Используйте указатель на функцию, чтобы задать пространственно изменяющуюся начальную температуру. Для получения дополнительной информации смотрите Дополнительные сведения.
Типы данных: double
| function_handle
RegionType
- Тип геометрической области'Vertex'
| 'Edge'
| 'Face'
| 'Cell'
только для модели 3-DТип геометрической области, заданный как 'Vertex'
, 'Edge'
, 'Face'
, или 'Cell'
для модели 3-D. Для модели 2-D используйте 'Vertex'
, 'Edge'
, или 'Face'
.
Пример: thermalIC(thermalmodel,10,'Face',1)
Типы данных: char
| string
RegionID
- Идентификатор геометрической областиИдентификатор геометрической области, заданный как вектор положительных целых чисел. Поиск идентификаторов областей при помощи pdegplot
.
Пример: thermalIC(thermalmodel,10,'Edge',2:5)
Типы данных: double
Tresults
- Решение тепловой моделиThermalResults
объектРешение тепловой модели, заданное как ThermalResults
объект. Создание Tresults
при помощи solve
.
iT
- Временной индексИндекс времени, заданный как положительное целое число.
Пример: thermalIC(thermalmodel,Tresults,21)
Типы данных: double
thermalIC
- Ручка в начальное условиеGeometricThermalICs
| объекта NodalThermalICs
объектУказатель на начальное условие, возвращенный как GeometricThermalICs
или NodalThermalICs
объект. Смотрите Свойства Geometric Thermal IC s и Свойства Nodal Thermal IC s.
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-компонент вектора 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
значения.
Свойства Geometric Thermal IC s | internalHeatSource
| Свойства NodalThermalIC | setInitialConditions
| thermalBC
| thermalProperties
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.