Задайте краевые нагрузки для несущей модели
structuralBoundaryLoad(
задает поверхностную тягу, давление и поступательную жесткость на контуре типа structuralmodel
,RegionType
,RegionID
,'SurfaceTraction',STval
,'Pressure',Pval
,'TranslationalStiffness',TSval
)RegionType
с RegionID
Идентификационные номера.
Поверхностная тяга определяется как распределенные нормальные и тангенциальные силы, действующие на контур, разрешенные по глобальной Декартовой системе координат.
Давление должно быть задано в направлении, перпендикулярном контуру. В контур действует положительное значение давления (для примера, сжатия). Значение отрицательного давления действует от контура (для примера, всасывания).
Поступательная жесткость является распределенной жесткостью пружины для каждого поступательного направления. Поступательная жесткость используется для моделирования упругого фундамента.
structuralBoundaryLoad
не требует, чтобы вы задавали все три граничные нагрузки. В зависимости от задачи структурного анализа можно задать одну или несколько граничных нагрузок, выбрав соответствующие аргументы и опуская другие. Можно задать поступательную жесткость для любой несущей модели. Чтобы задать давление или поверхностную тягу, structuralmodel
должна быть статической, переходной или частотная характеристика моделью. Структурные модели для модального анализа не могут иметь давление или поверхностную тягу.
Граничная нагрузка по умолчанию является граничным условием без напряжения.
structuralBoundaryLoad(
задает концентрированную силу в вершине с structuralmodel
,'Vertex',VertexID
,'Force',Fval
)VertexID
номер. Задать силу можно только в том случае, если structuralmodel
является статической, переходной или частотная характеристика моделью. Структурные модели для модального анализа не могут иметь концентрированную силу.
structuralBoundaryLoad(___,'Vectorized','on')
использует векторизованное вычисление функции, когда вы передаете указатель на функцию в качестве аргумента. Если указатель на функцию вычисляется векторизированным образом, то использование этого аргумента экономит время. См. Векторизация. Для получения дополнительной информации об этой оценке см. «Неконстантные граничные условия».
Используйте этот синтаксис с любыми входными параметрами из предыдущих синтаксисов.
structuralBoundaryLoad(___,'Pressure',
позволяет вам задать форму и длительность неконстантного импульса давления и гармонического возбуждения для переходной структурной модели, не создавая указателя на функцию. При использовании этого синтаксиса необходимо задать модель, тип области и идентификатор области и давление. Поверхностная тяга и поступательная жесткость являются необязательными аргументами. Этот синтаксис не работает для статических, модального анализа и моделей частотной характеристики.Pval
,Name,Value
)
structuralBoundaryLoad(
позволяет вам задать форму и длительность неконстантной концентрированной силы и гармонического возбуждения для переходной структурной модели, не создавая указателя на функцию.structuralmodel
,'Vertex',VertexID
,'Force',Fval
,Name,Value
)
возвращает объект краевой нагрузки.boundaryLoad
= structuralBoundaryLoad(___)
Применить фиксированные контуры и тягу на двух концах биметаллического кабеля.
Создайте несущую модель.
structuralModel = createpde('structural','static-solid');
Создайте вложенные цилиндры, чтобы смоделировать биметаллический кабель.
gm = multicylinder([0.01,0.015],0.05);
Присвойте геометрию несущей модели и постройте график геометрии.
structuralModel.Geometry = gm; pdegplot(structuralModel,'CellLabels','on','FaceLabels','on','FaceAlpha',0.4)
Для каждого металла задайте модуль Юнга и отношение Пуассона.
structuralProperties(structuralModel,'Cell',1,'YoungsModulus',110E9, ... 'PoissonsRatio',0.28); structuralProperties(structuralModel,'Cell',2,'YoungsModulus',210E9, ... 'PoissonsRatio',0.3);
Задайте, что грани 1 и 4 являются фиксированными контурами.
structuralBC(structuralModel,'Face',[1,4],'Constraint','fixed')
ans = StructuralBC with properties: RegionType: 'Face' RegionID: [1 4] Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: "fixed" Radius: [] Reference: [] Boundary Loads Force: [] SurfaceTraction: [] Pressure: [] TranslationalStiffness: []
Задайте поверхностную тягу для граней 2 и 5.
structuralBoundaryLoad(structuralModel,'Face',[2,5],'SurfaceTraction',[0;0;100])
ans = StructuralBC with properties: RegionType: 'Face' RegionID: [2 5] Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: [] Radius: [] Reference: [] Boundary Loads Force: [] SurfaceTraction: [3x1 double] Pressure: [] TranslationalStiffness: []
Создайте несущую модель.
structuralModel = createpde('structural','static-solid');
Создайте блок геометрию.
gm = multicuboid(20,10,5);
Присвойте геометрию несущей модели и постройте график геометрии.
structuralModel.Geometry = gm; pdegplot(structuralModel,'FaceLabels','on','FaceAlpha',0.5)
Задайте модуль Юнга и коэффициент Пуассона.
structuralProperties(structuralModel,'YoungsModulus',30, ... 'PoissonsRatio',0.3);
Нижняя грань блока опирается на упругий фундамент (пружину). Чтобы смоделировать это основание, задайте поступательную жесткость.
structuralBoundaryLoad(structuralModel,'Face',1,'TranslationalStiffness',[0;0;30])
ans = StructuralBC with properties: RegionType: 'Face' RegionID: 1 Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: [] Radius: [] Reference: [] Boundary Loads Force: [] SurfaceTraction: [] Pressure: [] TranslationalStiffness: [3x1 double]
Задайте значение силы в вершине геометрии.
Создайте несущую модель для статического анализа твердотельной (3-D) задачи.
model = createpde('structural','static-solid');
Создайте геометрию, которая состоит из двух кубоидов, сложенных друг на верхнюю часть друг друга.
gm = multicuboid(0.2,0.01,[0.01 0.01],'Zoffset',[0 0.01]);
Включите геометрию в несущую модель.
model.Geometry = gm;
Постройте график геометрии и отобразите метки граней. Поверните геометрию так, чтобы вы могли видеть метки граней с левой стороны.
figure pdegplot(model,'FaceLabels','on'); view([-67 5])
Постройте график геометрии и отобразите метки вершин. Поверните геометрию так, чтобы вы могли видеть метки вершин с правой стороны.
figure pdegplot(model,'VertexLabels','on','FaceAlpha',0.5) xlim([-0.01 0.1]) zlim([-0.01 0.02]) view([60 5])
Задайте модуль Юнга, отношение Пуассона и массовую плотность материала.
structuralProperties(model,'YoungsModulus',201E9,'PoissonsRatio',0.3);
Задайте, что грани 5 и 10 являются фиксированными контурами.
structuralBC(model,'Face',[5 10],'Constraint','fixed');
Задайте концентрированную силу в вершине 6.
structuralBoundaryLoad(model,'Vertex',6,'Force',[0;10^4;0])
ans = StructuralBC with properties: RegionType: 'Vertex' RegionID: 6 Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: [] Radius: [] Reference: [] Boundary Loads Force: [3x1 double] SurfaceTraction: [] Pressure: [] TranslationalStiffness: []
Используйте указатель на функцию, чтобы задать частотно-зависимое давление для модели частотной характеристики.
Создайте модель частотной характеристики для 3-D задачи.
fmodel = createpde('structural','frequency-solid');
Импортируйте и постройте график геометрии.
importGeometry(fmodel,'TuningFork.stl'); figure pdegplot(fmodel,'FaceLabels','on')
Задайте загрузку давлением на стойку (грань 11) как короткий прямоугольный импульс давления. В частотный диапазон этот импульс давления является модулем нагрузкой, равномерно распределенной по всем частотам.
structuralBoundaryLoad(fmodel,'Face',11,'Pressure',1);
Теперь задайте частотно-зависимую нагрузку давления, например, .
pLoad = @(location,state) exp(-(state.frequency-1E3).^2/1E5); structuralBoundaryLoad(fmodel,'Face',12,'Pressure',pLoad);
Используйте указатель на функцию, чтобы задать гармонически изменяющееся давление в центре тонкого 3-D диска.
Создайте переходную динамическую модель для 3-D задачи.
structuralmodel = createpde('structural','transient-solid');
Создайте геометрию, состоящую из тонкой 3-D пластины с небольшой пластиной в центре. Включите геометрию в модель и постройте график.
gm = multicuboid([5,0.05],[5,0.05],0.01); structuralmodel.Geometry = gm; pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)
Увеличьте изображение, чтобы увидеть метки граней на маленькой пластине в центре.
figure pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.25) axis([-0.2 0.2 -0.2 0.2 -0.1 0.1])
Задайте модуль Юнга, отношение Пуассона и массовую плотность материала.
structuralProperties(structuralmodel,'YoungsModulus',210E9,... 'PoissonsRatio',0.3,... 'MassDensity',7800);
Укажите, что все грани на периферии тонкого 3-D диска являются фиксированными контурами.
structuralBC(structuralmodel,'Constraint','fixed','Face',5:8);
Приложите гармонически изменяющуюся нагрузку давления к малой грани в центре диска.
plungerLoad = @(location,state)5E7.*sin(25.*state.time); structuralBoundaryLoad(structuralmodel,'Face',12,'Pressure',plungerLoad)
ans = StructuralBC with properties: RegionType: 'Face' RegionID: 12 Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: [] Radius: [] Reference: [] Boundary Loads Force: [] SurfaceTraction: [] Pressure: @(location,state)5E7.*sin(25.*state.time) TranslationalStiffness: [] Time Variation of Force, Pressure, or Enforced Displacement StartTime: [] EndTime: [] RiseTime: [] FallTime: [] Sinusoidal Variation of Force, Pressure, or Enforced Displacement Frequency: [] Phase: []
Задайте гармонически изменяющееся давление в центре тонкого 3-D диска путем определения его частоты.
Создайте переходную динамическую модель для 3-D задачи.
structuralmodel = createpde('structural','transient-solid');
Создайте геометрию, состоящую из тонкой 3-D пластины с небольшой пластиной в центре. Включите геометрию в модель и постройте график.
gm = multicuboid([5,0.05],[5,0.05],0.01); structuralmodel.Geometry=gm; pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)
Увеличьте изображение, чтобы увидеть метки граней на маленькой пластине в центре.
figure pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.25) axis([-0.2 0.2 -0.2 0.2 -0.1 0.1])
Задайте модуль Юнга, отношение Пуассона и массовую плотность материала.
structuralProperties(structuralmodel,'YoungsModulus',210E9,... 'PoissonsRatio',0.3,... 'MassDensity',7800);
Укажите, что все грани на периферии тонкого 3-D диска являются фиксированными контурами.
structuralBC(structuralmodel,'Constraint','fixed','Face',5:8);
Приложите гармонически изменяющуюся нагрузку давления к малой грани в центре диска.
structuralBoundaryLoad(structuralmodel,'Face',12,'Pressure',5E7,'Frequency',25)
ans = StructuralBC with properties: RegionType: 'Face' RegionID: 12 Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: [] Radius: [] Reference: [] Boundary Loads Force: [] SurfaceTraction: [] Pressure: 50000000 TranslationalStiffness: [] Time Variation of Force, Pressure, or Enforced Displacement StartTime: [] EndTime: [] RiseTime: [] FallTime: [] Sinusoidal Variation of Force, Pressure, or Enforced Displacement Frequency: 25 Phase: []
Создайте переходную несущую модель.
structuralModel = createpde('structural','transient-solid');
Импортируйте и постройте график геометрии.
importGeometry(structuralModel,'BracketWithHole.stl'); pdegplot(structuralModel,'FaceLabels','on') view(-20,10)
Задайте модуль Юнга и коэффициент Пуассона.
structuralProperties(structuralModel,'YoungsModulus',200e9, ... 'PoissonsRatio',0.3,... 'MassDensity',7800);
Задайте, что грань 4 является фиксированным контуром.
structuralBC(structuralModel,'Face',4,'Constraint','fixed');
Приложите прямоугольный импульс давления к грани 7 в направлении, нормальном к грани.
structuralBoundaryLoad(structuralModel,'Face',7,'Pressure',10^5,... 'StartTime',0.1,'EndTime',0.5)
ans = StructuralBC with properties: RegionType: 'Face' RegionID: 7 Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: [] Radius: [] Reference: [] Boundary Loads Force: [] SurfaceTraction: [] Pressure: 100000 TranslationalStiffness: [] Time Variation of Force, Pressure, or Enforced Displacement StartTime: 0.1000 EndTime: 0.5000 RiseTime: [] FallTime: [] Sinusoidal Variation of Force, Pressure, or Enforced Displacement Frequency: [] Phase: []
Задайте короткий импульс концентрированной силы в вершине геометрии.
Создайте несущую модель для статического анализа твердотельной (3-D) задачи.
structuralmodel = createpde('structural','transient-solid');
Создайте геометрию, которая состоит из двух кубоидов, сложенных друг на верхнюю часть друг друга.
gm = multicuboid(0.2,0.01,[0.01 0.01],'Zoffset',[0 0.01]);
Включите геометрию в несущую модель.
structuralmodel.Geometry = gm;
Постройте график геометрии и отобразите метки граней. Поверните геометрию так, чтобы вы могли видеть метки граней с левой стороны.
figure pdegplot(structuralmodel,'FaceLabels','on'); view([-67 5])
Постройте график геометрии и отобразите метки вершин. Поверните геометрию так, чтобы вы могли видеть метки вершин с правой стороны.
figure pdegplot(structuralmodel,'VertexLabels','on','FaceAlpha',0.5) xlim([-0.01 0.1]) zlim([-0.01 0.02]) view([60 5])
Задайте модуль Юнга, отношение Пуассона и массовую плотность материала.
structuralProperties(structuralmodel,'YoungsModulus',201E9, ... 'PoissonsRatio',0.3, ... 'MassDensity',7800);
Задайте, что грани 5 и 10 являются фиксированными контурами.
structuralBC(structuralmodel,'Face',[5 10],'Constraint','fixed');
Задайте короткий импульс концентрированной силы в вершине 6.
structuralBoundaryLoad(structuralmodel,'Vertex',6,'Force',[0;1000;0], ... 'StartTime',1,'EndTime',1.05)
ans = StructuralBC with properties: RegionType: 'Vertex' RegionID: 6 Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: [] Radius: [] Reference: [] Boundary Loads Force: [3×1 double] SurfaceTraction: [] Pressure: [] TranslationalStiffness: [] Time Variation of Force, Pressure, or Enforced Displacement StartTime: 1 EndTime: 1.0500 RiseTime: [] FallTime: [] Sinusoidal Variation of Force, Pressure, or Enforced Displacement Frequency: [] Phase: []
Задайте нулевое начальное перемещение и скорость.
structuralIC(structuralmodel,'Displacement',[0;0;0],'Velocity',[0;0;0])
ans = GeometricStructuralICs with properties: RegionType: 'Cell' RegionID: [1 2] InitialDisplacement: [3×1 double] InitialVelocity: [3×1 double]
Сгенерируйте мелкий mesh.
generateMesh(structuralmodel,'Hmax',0.02);
Поскольку нагрузка равна нулю для начального временного интервала и применяется только в течение короткого времени, решите модель для двух временных интервалов. Используйте первый временной интервал, чтобы найти решение перед импульсом силы.
structuralresults1 = solve(structuralmodel,0:1E-2:1);
Используйте второй временной интервал, чтобы найти решение во время и после импульса силы.
structuralIC(structuralmodel,structuralresults1)
ans = NodalStructuralICs with properties: InitialDisplacement: [511×3 double] InitialVelocity: [511×3 double]
structuralresults2 = solve(structuralmodel,[1.001:0.001:1.01 1.02:1E-2:2]);
Постройте график значения смещения в узле, соответствующем вершине 6, где вы приложили импульс концентрированной силы.
loadedNd = findNodes(structuralmodel.Mesh,'region','Vertex',6); plot(structuralresults2.SolutionTimes,structuralresults2.Displacement.uy(loadedNd,:))
structuralmodel
- Структурная модельStructuralModel
объектСтруктурная модель, заданная как StructuralModel
объект. Модель содержит геометрию, сетку, структурные свойства материала, нагрузки на тело, краевые нагрузки и граничные условия.
Пример: structuralmodel = createpde('structural','transient-solid')
RegionType
- Тип геометрической области'Edge'
для модели 2-D | 'Face'
для модели 3-DТип геометрической области, заданный как 'Edge'
для модели 2-D или 'Face'
для модели 3-D.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'SurfaceTraction',[0,0,100])
Типы данных: char
| string
RegionID
- Идентификатор геометрической областиИдентификатор геометрической области, заданный как положительное целое число или вектор положительных целых чисел. Поиск идентификаторов областей при помощи pdegplot
.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'SurfaceTraction',[0,0,100])
Типы данных: double
VertexID
- Идентификатор вершиныИдентификатор вершины, заданный как положительное целое число или вектор положительных целых чисел. Найдите идентификаторы вершин, используя pdegplot
.
Пример: structuralBoundaryLoad(structuralmodel,'Vertex',6,'Force',[0;10^4;0])
Типы данных: double
STval
- Распределенные нормальные и тангенциальные силы на контуреРаспределенные нормальные и тангенциальные силы на контуре, разрешенные по глобальной Декартовой системе координат, заданные как числовой вектор или указатель на функцию. Числовой вектор должен содержать два элемента для модели 2-D и три элемента для модели 3-D.
Функция должна вернуть матрицу с двумя строками для модели 2-D и матрицу с тремя строками для модели с 3-D. Каждый столбец матрицы должен соответствовать вектору поверхностной тяги в граничных координатах, предоставленных решателем. В случае переходного процесса или частотной характеристики, STval
также может быть функцией времени или частоты, соответственно. Для получения дополнительной информации смотрите Дополнительные сведения.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'SurfaceTraction',[0;0;100])
Типы данных: double
| function_handle
Pval
- Давление, нормальное к контуруДавление, нормальное к контуру, задается как число или указатель на функцию. В контур действует положительное давление (для примера, сжатия), в то время как отрицательное давление отходит от контура (для примера, всасывания).
Если вы задаете Pval
в качестве указателя на функцию функция должна вернуть вектор-строку, где каждый столбец соответствует значению давления в координатах контуров, предоставляемых решателем. В случае переходной структурной модели Pval
также может быть функцией времени. В случае структурной модели частотной характеристики, Pval
может быть функцией частоты (когда задан как указатель на функцию) или постоянным давлением с той же величиной для широкого частотного спектра. Для получения дополнительной информации смотрите Дополнительные сведения.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5)
Типы данных: double
| function_handle
TSval
- Распределенная жесткость пружиныРаспределенная жесткость пружины для каждого поступательного направления, используемого для моделирования упругого фундамента, заданная как числовой вектор или указатель на функцию. Числовой вектор должен содержать два элемента для модели 2-D и три элемента для модели 3-D. Пользовательская функция должна вернуть матрицу с двумя строками для модели 2-D и матрицу с тремя строками для модели с 3-D. Каждый столбец этой матрицы соответствует вектору жесткости в граничных координатах, предоставленных решателем. В случае переходного процесса или частотной характеристики, TSval
также может быть функцией времени или частоты, соответственно. Для получения дополнительной информации смотрите Дополнительные сведения.
Пример: structuralBoundaryLoad(structuralmodel,'Edge',[2,5],'TranslationalStiffness',[0;5500])
Типы данных: double
| function_handle
Fval
- Концентрированная силаКонцентрированная сила в вершине, заданная как числовой вектор или указатель на функцию. Используйте указатель на функцию, чтобы задать концентрированную силу, которая зависит от времени или частоты. Для получения дополнительной информации смотрите Дополнительные сведения.
Пример: structuralBoundaryLoad(structuralmodel,'Vertex',5,'Force',[0;0;10])
Типы данных: double
| function_handle
structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)
Используйте один или несколько аргументы пары "имя-значение", чтобы задать форму и длительность импульса давления или концентрированной силы и гармонического возбуждения только для переходной структурной модели. Задайте давление или значение силы, используя Pval
или Fval
аргумент, соответственно.
Можно смоделировать прямоугольный, треугольный и трапеций давления или импульсов концентрированной силы. Если время запуска 0, можно опустить указание на него.
Для прямоугольного импульса задайте время начала и конца.
Для треугольного импульса задайте время начала и любое два из следующих раз: время нарастания, время спада и время окончания. Можно также задать все три раза, но они должны быть последовательными.
Для трапециевидного импульса задайте все четыре раза.
Можно смоделировать гармоническое давление или концентрированную силовую нагрузку путем определения ее частоты и начальной фазы. Если начальная фаза равна 0, можно опустить указание на нее.
'StartTime'
- Время запуска нагрузки давления или концентрированной силыВремя запуска нагрузки давления или концентрированной силы, заданное как неотрицательное число. Задайте этот аргумент только для переходных несущих моделей.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'StartTime',1,'EndTime',3)
Типы данных: double
'EndTime'
- Время окончания давления или нагрузки концентрированной силыВремя окончания для нагрузки давления или концентрированной силы, заданное как неотрицательное число, равное или больше, чем начальное значение времени. Задайте этот аргумент только для переходных несущих моделей.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'StartTime',1,'EndTime',3)
Типы данных: double
'RiseTime'
- Время нарастания давления или нагрузки концентрированной силыВремя нарастания давления или нагрузки концентрированной силы, заданное в виде неотрицательного числа. Задайте этот аргумент только для переходных несущих моделей.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)
Типы данных: double
'FallTime'
- Время спада давления или нагрузки концентрированной силыВремя спада давления или нагрузки концентрированной силы, заданное как неотрицательное число. Задайте этот аргумент только для переходных несущих моделей.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)
Типы данных: double
'Frequency'
- Частота синусоидального давления или концентрированной силыЧастота синусоидального давления или концентрированной силы, заданная в виде положительного числа, в радианах на модуль времени. Задайте этот аргумент только для переходных несущих моделей.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'Frequency',25)
Типы данных: double
'Phase'
- Фаза синусоидального давления или концентрированной силыФаза синусоидального давления или концентрированной силы, заданная в виде неотрицательного числа, в радианах. Задайте этот аргумент только для переходных несущих моделей.
Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'Frequency',25,'Phase',pi/6)
Типы данных: double
boundaryLoad
- Указатель на краевую нагрузкуStructuralBC
объектУказатель на краевую нагрузку, возвращаемый как StructuralBC
объект. См. StructuralBC Свойств.
Используйте указатель на функцию, чтобы задать следующие структурные параметры, когда они зависят от пространства и, в зависимости от типа структурного анализа, время или частота:
Поверхностная тяга на контуре
Давление, нормальное к контуру
Концентрированная сила в вершине
Распределенная жесткость пружины для каждого поступательного направления, используемого для моделирования упругого фундамента
Принудительное перемещение и его компоненты
Начальное перемещение и скорость
Например, используйте указатели на функцию, чтобы задать нагрузку на давление, x -компонент принудительного перемещения и начальное перемещение для этой модели.
structuralBoundaryLoad(model,'Face',12,'Pressure',@myfun) structuralBC(model,'Face',2,'XDisplacement',@myfun) structuralIC(model,'Face',12,'Displacement',@myfun)
Функция должна иметь форму:
function structuralVal = 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.time
содержит время в точках оценки.
state.frequency
содержит частоту в точках оценки.
state.time
и state.frequency
являются скалярами.
Граничные ограничения и нагрузки получают эти данные от решателя:
location.x
, location.y
, location.z
, location.r
location.nx
, location.ny
, location.nz
, location.nr
state.time
или state.frequency
(в зависимости от типа структурного анализа)
Начальные условия получают эти данные от решателя:
location.x
, location.y
, location.z
, location.r
Идентификатор поддомена
Если параметр представляет значение вектора, такое как поверхностная тяга, жесткость пружины, сила или перемещение, ваша функция должна вернуть матрицу с двумя строками для модели 2-D и матрицу с тремя строками для модели 3-D. Каждый столбец матрицы соответствует значению параметров (вектору) в граничных координатах, предоставленных решателем.
Если параметр представляет скалярное значение, такое как давление или компонент перемещения, ваша функция должна вернуть вектор-строку, где каждый элемент соответствует значению параметров (скалярному) в координатах контуру, заданных решателем.
Если граничные условия зависят от state.time
или state.frequency
, убедитесь, что ваша функция возвращает матрицу NaN
правильного размера при state.frequency
или state.time
являются NaN
. Решатели проверяют, является ли задача нелинейной или зависящей от времени передачей NaN
значения состояния и поиск возвращенных NaN
значения.
structuralBC
| Свойства StructuralBC | structuralBodyLoad
| structuralDamping
| StructuralModel
| structuralProperties
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.