Постройте решение или поверхностную mesh для 3-D проблемы
pdeplot3D(
строит решение в узловых местоположениях как цвета на поверхности 3-D геометрии, заданной в model
,'ColorMapData',results.NodalSolution)model
.
pdeplot3D(
строит температуру в узловых местоположениях для 3-D тепловой аналитической модели.model
,'ColorMapData',results.Temperature)
pdeplot3D(
строит напряжение фон Мизеса и показывает деформированную форму для 3-D модели структурного анализа.model
,'ColorMapData',results.VonMisesStress,'Deformation',results.Displacement)
pdeplot3D(___,
строит поверхностную mesh, данные в узловых местоположениях, или и mesh и данные, в зависимости от Name,Value
)Name,Value
парные аргументы. Используйте любые аргументы от предыдущих синтаксисов.
возвращает указатель на график, с помощью любого из предыдущих синтаксисов.h
= pdeplot3D(___)
Постройте решение для УЧП на поверхности геометрии. Во-первых, создайте модель PDE и импортируйте 3-D файл геометрии. Задайте граничные условия и коэффициенты. Поймайте в сети геометрию и решите задачу.
model = createpde; importGeometry(model,'Block.stl'); applyBoundaryCondition(model,'dirichlet','Face',[1:4],'u',0); specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',2); generateMesh(model); results = solvepde(model)
results = StationaryResults with properties: NodalSolution: [12691x1 double] XGradients: [12691x1 double] YGradients: [12691x1 double] ZGradients: [12691x1 double] Mesh: [1x1 FEMesh]
Доступ к решению в узловых местоположениях.
u = results.NodalSolution;
Постройте решение u
на поверхности геометрии.
pdeplot3D(model,'ColorMapData',u)
Решите 3-D установившуюся тепловую задачу.
Создайте тепловую модель для этой проблемы.
thermalmodel = createpde('thermal');
Импортируйте и постройте геометрию блока.
importGeometry(thermalmodel,'Block.stl'); pdegplot(thermalmodel,'FaceLabel','on','FaceAlpha',0.5) axis equal
Присвойте свойства материала.
thermalProperties(thermalmodel,'ThermalConductivity',80);
Применяйтесь постоянная температура 100 °C к левой стороне блока (столкнитесь 1), и постоянная температура 300 °C к правой стороне блока (столкнитесь 3). Все другие поверхности изолируются по умолчанию.
thermalBC(thermalmodel,'Face',1,'Temperature',100); thermalBC(thermalmodel,'Face',3,'Temperature',300);
Поймайте в сети геометрию и решите задачу.
generateMesh(thermalmodel); thermalresults = solve(thermalmodel)
thermalresults = SteadyStateThermalResults with properties: Temperature: [12691x1 double] XGradients: [12691x1 double] YGradients: [12691x1 double] ZGradients: [12691x1 double] Mesh: [1x1 FEMesh]
Решатель находит температуры и градиенты температуры в узловых местоположениях. Чтобы получить доступ к этим значениям, используйте thermalresults.Temperature
, thermalresults.XGradients
, и так далее. Например, постройте температуры в узловых местоположениях.
pdeplot3D(thermalmodel,'ColorMapData',thermalresults.Temperature)
Для 3-D установившейся тепловой модели оцените поток тепла в узловых местоположениях и в точках, заданных x
Y
, и z
координаты.
Создайте тепловую модель для установившегося анализа.
thermalmodel = createpde('thermal');
Создайте следующую 3-D геометрию и включайте ее в модель.
importGeometry(thermalmodel,'Block.stl'); pdegplot(thermalmodel,'FaceLabels','on','FaceAlpha',0.5) title('Copper block, cm') axis equal
Предположение, что это - медный блок, теплопроводность блока приблизительно .
thermalProperties(thermalmodel,'ThermalConductivity',4);
Применяйтесь постоянная температура 373 K к левой стороне блока (столкнитесь 1), и постоянная температура 573 K к правой стороне блока (столкнитесь 3).
thermalBC(thermalmodel,'Face',1,'Temperature',373); thermalBC(thermalmodel,'Face',3,'Temperature',573);
Примените граничное условие потока тепла к нижней части блока.
thermalBC(thermalmodel,'Face',4,'HeatFlux',-20);
Поймайте в сети геометрию и решите задачу.
generateMesh(thermalmodel); thermalresults = solve(thermalmodel)
thermalresults = SteadyStateThermalResults with properties: Temperature: [12691x1 double] XGradients: [12691x1 double] YGradients: [12691x1 double] ZGradients: [12691x1 double] Mesh: [1x1 FEMesh]
Оцените поток тепла в узловых местоположениях.
[qx,qy,qz] = evaluateHeatFlux(thermalresults);
figure
pdeplot3D(thermalmodel,'FlowData',[qx qy qz])
Создайте сетку, заданную x
Y
, и z
координаты, и оценивают поток тепла к сетке.
[X,Y,Z] = meshgrid(1:26:100,1:6:20,1:11:50); [qx,qy,qz] = evaluateHeatFlux(thermalresults,X,Y,Z);
Измените qx
qy
, и qz
векторы и график получившийся поток тепла.
qx = reshape(qx,size(X)); qy = reshape(qy,size(Y)); qz = reshape(qz,size(Z)); figure quiver3(X,Y,Z,qx,qy,qz)
В качестве альтернативы можно задать сетку при помощи матрицы точек запроса.
querypoints = [X(:) Y(:) Z(:)]'; [qx,qy,qz] = evaluateHeatFlux(thermalresults,querypoints); qx = reshape(qx,size(X)); qy = reshape(qy,size(Y)); qz = reshape(qz,size(Z)); figure quiver3(X,Y,Z,qx,qy,qz)
Создайте модель структурного анализа для 3-D проблемы.
structuralmodel = createpde('structural','static-solid');
Импортируйте геометрию и постройте ее.
importGeometry(structuralmodel,'SquareBeam.stl'); pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)
Задайте модуль Молодежи и отношение Пуассона.
structuralProperties(structuralmodel,'PoissonsRatio',0.3, ... 'YoungsModulus',210E3);
Укажите, что стоят 6, фиксированный контур.
structuralBC(structuralmodel,'Face',6,'Constraint','fixed');
Задайте поверхностную тягу для поверхности 5.
structuralBoundaryLoad(structuralmodel,'Face',5, ... 'SurfaceTraction', ... [0;0;-2]);
Сгенерируйте mesh и решите задачу.
generateMesh(structuralmodel); structuralresults = solve(structuralmodel);
Постройте деформированную форму с напряжением фон Мизеса с помощью масштабного коэффициента по умолчанию. По умолчанию, pdeplot3D
внутренне определяет масштабный коэффициент на основе размерностей геометрии и величины деформации.
figure pdeplot3D(structuralmodel, ... 'ColorMapData',structuralresults.VonMisesStress, ... 'Deformation',structuralresults.Displacement)
Постройте те же результаты с масштабным коэффициентом 500.
figure pdeplot3D(structuralmodel, ... 'ColorMapData',structuralresults.VonMisesStress, ... 'Deformation',structuralresults.Displacement, ... 'DeformationScaleFactor',500)
Постройте те же результаты без масштабирования.
figure pdeplot3D(structuralmodel, ... 'ColorMapData',structuralresults.VonMisesStress)
Оцените напряжение фон Мизеса в луче при гармоническом возбуждении.
Создайте переходную динамическую модель для 3-D проблемы.
structuralmodel = createpde('structural','transient-solid');
Создайте геометрию и включайте ее в модель. Постройте геометрию.
gm = multicuboid(0.06,0.005,0.01); structuralmodel.Geometry = gm; pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5) view(50,20)
Задайте модуль Молодежи, отношение Пуассона и массовую плотность материала.
structuralProperties(structuralmodel,'YoungsModulus',210E9, ... 'PoissonsRatio',0.3, ... 'MassDensity',7800);
Зафиксируйте один конец луча.
structuralBC(structuralmodel,'Face',5,'Constraint','fixed');
Примените синусоидальное смещение вдоль направления Y на конце напротив фиксированного конца луча.
structuralBC(structuralmodel,'Face',3, ... 'YDisplacement',1E-4, ... 'Frequency',50);
Сгенерируйте mesh.
generateMesh(structuralmodel,'Hmax',0.01);
Определите нулевое начальное перемещение и скорость.
structuralIC(structuralmodel,'Displacement',[0;0;0],'Velocity',[0;0;0]);
Решите модель.
tlist = 0:0.002:0.2; structuralresults = solve(structuralmodel,tlist);
Оцените напряжение фон Мизеса в луче.
vmStress = evaluateVonMisesStress(structuralresults);
Постройте напряжение фон Мизеса в течение прошлого такта.
figure pdeplot3D(structuralmodel,'ColorMapData',vmStress(:,end)) title('von Mises Stress in the Beam for the Last Time-Step')
Решите электромагнитную задачу и найдите электрический потенциал и полевое распределение для 3-D геометрии, представляющей пластину отверстием.
Создайте электромагнитную модель для электростатического анализа.
emagmodel = createpde('electromagnetic','electrostatic');
Импортируйте и постройте геометрию, представляющую пластину отверстием.
gm = importGeometry(emagmodel,'PlateHoleSolid.stl'); pdegplot(gm,'FaceLabels','on','FaceAlpha',0.3)
Задайте вакуумную проницаемость в системе СИ модулей.
emagmodel.VacuumPermittivity = 8.8541878128E-12;
Задайте относительную проницаемость материала.
electromagneticProperties(emagmodel,'RelativePermittivity',1);
Задайте плотность заряда для целой геометрии.
electromagneticSource(emagmodel,'ChargeDensity',5E-9);
Примените граничные условия напряжения на поверхности стороны и поверхность, ограничивающую отверстие.
electromagneticBC(emagmodel,'Voltage',0,'Face',3:6); electromagneticBC(emagmodel,'Voltage',1000,'Face',7);
Сгенерируйте mesh.
generateMesh(emagmodel);
Решите модель.
R = solve(emagmodel)
R = ElectrostaticResults with properties: ElectricPotential: [4359x1 double] ElectricField: [1x1 FEStruct] ElectricFluxDensity: [1x1 FEStruct] Mesh: [1x1 FEMesh]
Постройте электрический потенциал.
figure
pdeplot3D(emagmodel,'ColorMapData',R.ElectricPotential)
Постройте электрическое поле.
pdeplot3D(emagmodel,'FlowData',[R.ElectricField.Ex ... R.ElectricField.Ey ... R.ElectricField.Ez])
Создайте модель PDE, включайте геометрию и сгенерируйте mesh.
model = createpde; importGeometry(model,'Tetrahedron.stl'); mesh = generateMesh(model,'Hmax',20,'GeometricOrder','linear');
Постройте поверхностную mesh.
pdeplot3D(model)
В качестве альтернативы можно построить mesh при помощи mesh
как входной параметр.
pdeplot3D(mesh)
Другой подход должен использовать узлы и элементы mesh как входные параметры для pdeplot3D
.
pdeplot3D(mesh.Nodes,mesh.Elements)
Отобразите метки узла на поверхности простой mesh.
pdeplot3D(model,'NodeLabels','on') view(101,12)
Отобразите метки элемента.
pdeplot3D(model,'ElementLabels','on') view(101,12)
model
— Объект моделиPDEModel
возразите | ThermalModel
возразите | StructuralModel
возразите | ElectromagneticModel
объектОбъект модели в виде PDEModel
объект, ThermalModel
объект, StructuralModel
объект или ElectromagneticModel
объект.
Пример: model = createpde(3)
Пример: thermalmodel = createpde('thermal','steadystate')
Пример: structuralmodel = createpde('structural','static-solid')
Пример: emagmodel = createpde('electromagnetic','electrostatic')
mesh
— Объект ячейкиMesh
свойство PDEModel
возразите | выход generateMesh
Объект ячейки в виде Mesh
свойство PDEModel
возразите или как выход generateMesh
.
Пример: model.Mesh
nodes
— Узловые координатыУзловые координаты в виде 3 NumNodes матрицей. NumNodes является количеством узлов.
elements
— Матрица смежности элемента в терминах идентификаторов узлаМатрица смежности элемента в терминах идентификаторов узла в виде 4 NumElements или 10 NumElements матрицей. Линейные сетки содержат только угловые узлы. Для линейных сеток матрица смежности имеет четыре узла на 3-D элемент. Квадратичные сетки содержат угловые узлы и узлы посреди каждого ребра элемента. Для квадратичных сеток матрица смежности имеет 10 узлов на 3-D элемент.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
pdeplot3D(model,'NodeLabels','on')
ColorMapData
— Данные, чтобы построить как окрашенный поверхностьюДанные, чтобы построить как цветная поверхность в виде разделенной запятой пары, состоящей из 'ColorMapData'
и вектор-столбец с числом элементов, которое равняется числу точек в mesh. Как правило, эти данные являются решением, возвращенным solvepde
для скалярной проблемы УЧП и компонента решения для многокомпонентной системы УЧП.
Пример: 'ColorMapData',results.NodalSolution
Пример: 'ColorMapData',results.NodalSolution(:,1)
Типы данных: double
FlowData
— Данные для графика полей градиентаДанные для графика полей градиента в виде разделенной запятой пары, состоящей из 'FlowData'
и M
- 3
матрица, где M
количество узлов mesh. FlowData
содержит x, y и значения z поля в точках mesh. Установите FlowData
можно следующим образом:
results = solvepde(model);
[cgradx,cgrady,cgradz] = evaluateCGradient(results);
pdeplot3D(model,'FlowData',[cgradx cgrady cgradz])
pdeplot3D
строит действительную часть комплексных данных.
Пример: 'FlowData',[cgradx cgrady cgradz]
Типы данных: double
Mesh
— Индикатор, чтобы показать mesh'off'
(значение по умолчанию) | 'on'
Индикатор, чтобы показать mesh в виде разделенной запятой пары, состоящей из 'Mesh'
и 'on'
или 'off'
. Задайте 'on'
показать mesh в графике.
Пример: 'Mesh','on'
Типы данных: char |
string
NodeLabels
— Метки узла'off'
(значение по умолчанию) | 'on'
Узел помечает в виде разделенной запятой пары, состоящей из 'NodeLabels'
и 'off'
или 'on'
.
Пример: 'NodeLabels','on'
Типы данных: char |
string
ElementLabels
— Метки элемента'off'
(значение по умолчанию) | 'on'
Элемент помечает в виде разделенной запятой пары, состоящей из 'ElementLabels'
и 'off'
или 'on'
.
Пример: 'ElementLabels','on'
Типы данных: char |
string
FaceAlpha
— Поверхностная прозрачность для 3-D геометрии
(значение по умолчанию) | вещественное число от 0
через 1
Поверхностная прозрачность для 3-D геометрии в виде разделенной запятой пары, состоящей из 'FaceAlpha'
и вещественное число от 0
через 1
. Значение по умолчанию 1
не указывает ни на какую прозрачность. Значение 0
указывает на полную прозрачность.
Пример: 'FaceAlpha',0.5
Типы данных: double
Deformation
— Деформированная форма для моделей структурного анализаFEStruct
объект, представляющий значения смещения в узлахДеформированная форма для моделей структурного анализа в виде разделенной запятой пары, состоящей из 'Deformation'
и FEStruct
объект, представляющий значения смещения в узлах. Смещение FEStruct
объект является свойством StaticStructuralResults
, TransientStructuralResults
, и FrequencyStructuralResults
.
В недеформированной форме центральные узлы в квадратичных сетках всегда добавляются на полурасстоянии между углами. Когда вы строите деформированную форму, центральные узлы могут переехать от центров ребра.
Пример: 'Deformation',results.Displacement
DeformationScaleFactor
— Масштабный коэффициент для графического вывода деформированной формыМасштабный коэффициент для графического вывода деформированной формы в виде разделенной запятой пары, состоящей из 'DeformationScaleFactor'
и положительное число. Используйте этот аргумент вместе с Deformation
аргумент пары "имя-значение". pdeplot3D
функция выбирает значение по умолчанию на основе самой геометрии и на величине деформации.
Пример: 'DeformationScaleFactor',1000
Типы данных: double
h
— Указатели на графические объектыУказатели на графические объекты, возвращенные как вектор.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.