Постройте график решения или поверхностного mesh для 3-D задачи
pdeplot3D(
строит график решения в узловых местоположениях как цвета на поверхности геометрии 3-D, указанной в model
,'ColorMapData',results.NodalSolution)model
.
pdeplot3D(
строит графики температуры в узловых местоположениях для 3-D модели теплового анализа.model
,'ColorMapData',results.Temperature)
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 К на левую сторону блока (поверхность 1) и постоянную температуру 573 К на правую сторону блока (поверхность 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')
Создайте модель 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
- Объект MeshMesh
свойство PDEModel
объект | выход generateMesh
Объект Mesh, заданный как 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
для скалярной задачи УЧП и компонента решения для многокомпонентной системы PDE.
Пример: 'ColorMapData',results.NodalSolution
Пример: 'ColorMapData',results.NodalSolution(:,1)
Типы данных: double
'FlowData'
- Данные для квивер-графикаДанные для графика полей градиента, заданные как разделенная запятой пара, состоящая из 'FlowData'
и M
-by- 3
матрица, где M
количество узлов сетки. 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 геометрии1
(по умолчанию) | вещественный номер из 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
аргумент пары "имя-значение". The pdeplot3D
функция выбирает значение по умолчанию на основе самой геометрии и величины деформации.
Пример: 'DeformationScaleFactor',1000
Типы данных: double
h
- Указатели на графические объектыУказатели на графические объекты, возвращенные как вектор.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.