exponenta event banner

structuralBC

Задание граничных условий для несущей модели

Описание

Стандартные граничные зависимости и смещения

пример

structuralBC(structuralmodel,RegionType,RegionID,'Constraint',Cval) задает одну из стандартных структурных граничных зависимостей. Здесь, Cval может быть 'fixed', 'free', 'roller', или 'symmetric'. Значение по умолчанию: 'free'.

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

пример

structuralBC(structuralmodel,RegionType,RegionID,'Displacement',Dval) принудительное перемещение на границе типа RegionType с RegionID Идентификационные номера.

пример

structuralBC(structuralmodel,RegionType,RegionID,'XDisplacement',XDval,'YDisplacement',YDval,'ZDisplacement',ZDval) задает компоненты x, y и z принудительного смещения.

structuralBC не требует указания всех трех компонентов. В зависимости от проблемы структурного анализа можно указать один или несколько компонентов, выбрав соответствующие аргументы и пропустив другие.

пример

structuralBC(structuralmodel,RegionType,RegionID,'RDisplacement',RDval,'ZDisplacement',ZDval) задает компоненты r- и z принудительного смещения для осесимметричной модели. Радиальная составляющая (r-составляющая) должна быть равна нулю на оси вращения.

structuralBC не требует указания обоих компонентов.

Гармонические, прямоугольные, треугольные и трапециевидные импульсы смещения

пример

structuralBC(structuralmodel,RegionType,RegionID,'XDisplacement',XDval,Name,Value)определяет форму и длительность изменяющегося во времени значения x-компонента принудительного смещения. Можно также указать форму и длительность других компонентов смещения следующим образом:

  • structuralBC(...,'YDisplacement',YDval,Name,Value) для y-компонента.

  • structuralBC(...,'ZDisplacement',ZDval,Name,Value) для z-компонента. Этот синтаксис используется для 3-D или осесимметричной модели.

  • structuralBC(...,'RDisplacement',RDval,Name,Value) для радиального компонента в осесимметричной модели.

Многоточечное ограничение

пример

structuralBC(structuralmodel,RegionType,RegionID,'Constraint','multipoint') задает многоточечное ограничение с использованием всех степеней свободы в комбинации геометрических областей, указанных RegionType и RegionID. Местоположение привязки для ограничения является геометрическим центром всех узлов в комбинации всех заданных геометрических областей.

Этот синтаксис необходим, если предполагается использовать результаты, полученные с помощью метода уменьшения порядка модели в Simscape™ Multibody™ Reduced Order Flexible Solid блок. Модели Simscape ожидают, что соединения во всех соединениях будут иметь шесть степеней свободы, в то время как дифференциальное уравнение Toolbox™ в частных производных использует две или три степени свободы в каждом узле. Установка многоточечной зависимости гарантирует, что все узлы и все степени свободы для указанных геометрических областей имеют жесткую зависимость с геометрическим центром всех указанных геометрических областей в целом в качестве опорной точки. Опорное расположение имеет шесть степеней свободы.

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

structuralBC(___,'Reference',Coords) указывает опорную точку для многоточечной зависимости вместо использования геометрического центра всех указанных областей в качестве опорной точки.

Используйте этот синтаксис с входными аргументами из предыдущего синтаксиса.

structuralBC(___,'Reference',Coords,'Radius',R) ограничивает область многоточечного ограничения узлами внутри окружности (для 2-D геометрии) или сферы (для 3-D геометрии) радиуса R вокруг опорной точки.

Векторизированная оценка для дескрипторов функций

structuralBC(___,'Vectorized','on') использует вычисление векторизованной функции при передаче дескриптора функции в качестве аргумента. Если функция вычисляет векторизированным образом, то использование этого аргумента экономит время. См. раздел Векторизация. Дополнительные сведения об этой оценке см. в разделе Некондиционные граничные условия.

Используйте этот синтаксис с любым из входных аргументов из предыдущих синтаксисов.

Объект структурного граничного условия

bc = structuralBC(___) возвращает объект структурного граничного условия, используя любой из входных аргументов из предыдущих синтаксисов.

Примеры

свернуть все

Наложите фиксированные границы и тягу на два конца биметаллического кабеля.

Создайте модель несущей конструкции.

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)

Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

Для каждого металла укажите модуль Юнга и коэффициент Пуассона.

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(0.2,0.1,0.05);

Назначьте геометрию несущей модели и постройте ее график.

structuralModel.Geometry = gm;
pdegplot(structuralModel,'FaceLabels','on','FaceAlpha',0.5)

Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

Задайте модуль Юнга, коэффициент Пуассона и плотность массы.

structuralProperties(structuralModel,'YoungsModulus',74e9,...
                                     'PoissonsRatio',0.42,...
                                     'MassDensity',19.29e3);

Укажите гравитационную нагрузку на балку.

structuralBodyLoad(structuralModel,'GravitationalAcceleration',[0;0;-9.8]);

Укажите, что грань 5 является фиксированной границей.

structuralBC(structuralModel,'Face',5,'Constraint','fixed');

Задайте смещение по оси Z на грани 3 модели. Оставляя смещения x и y неопределенными, можно разрешить перемещение грани 3 в направлениях x и y.

structuralBC(structuralModel,'Face',3,'ZDisplacement',0.0001);

Создайте сетку и решите модель.

generateMesh(structuralModel);
R = solve(structuralModel); 

Постройте график деформированной формы с x-компонентом нормального напряжения.

pdeplot3D(structuralModel,'ColorMapData',R.Stress.sxx,'Deformation',R.Displacement)

Теперь задайте все три смещения на одной грани. Здесь z-смещение одинаково, но x- и y-смещения оба равны нулю. Грань 3 не может перемещаться в направлениях x и y.

structuralBC(structuralModel,'Face',3,'Displacement',[0;0;0.0001]); 
R = solve(structuralModel);
pdeplot3D(structuralModel,'ColorMapData',R.Stress.sxx,'Deformation',R.Displacement)

Таким образом, уточнение 'Displacement',[0;0;0.0001] эквивалентно заданию 'XDisplacement',0,'YDisplacement',0,'ZDisplacement',0.0001.

structuralBC(structuralModel,'Face',3,'XDisplacement',0, ...
                                      'YDisplacement',0, ...
                                      'ZDisplacement',0.0001); 
R = solve(structuralModel);
pdeplot3D(structuralModel,'ColorMapData',R.Stress.sxx,'Deformation',R.Displacement)

Проанализируйте вращающийся диск с радиальным сжатием на ступице из-за прессовой посадки. Внутренний радиус диска составляет 0,05, а внешний - 0,2. Толщина диска 0,05 при посадке с натягом 50E-6. Для этого анализа упростите 3D осесимметричную модель до 2-й модели.

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

structuralmodel = createpde('structural','static-axisymmetric');

Модель 2-D представляет собой прямоугольную полосу, размер по оси X которой простирается от ступицы до внешней поверхности и размер по оси Y которой простирается по высоте диска. Создайте геометрию, указав координаты четырех углов полосы. Для осесимметричных моделей панель инструментов предполагает, что ось вращения является вертикальной осью, проходящей через r = 0, что эквивалентно x = 0.

g = decsg([3 4 0.05 0.2 0.2 0.05 -0.025 -0.025 0.025 0.025]');

Включите геометрию в модель.

geometryFromEdges(structuralmodel,g);

Постройте график геометрии с метками кромок и вершин.

figure
pdegplot(structuralmodel,'EdgeLabels','on','VertexLabels','on')
xlim([0 0.3])
ylim([-0.05 0.05])

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

Задайте модуль Юнга, коэффициент Пуассона и плотность массы.

structuralProperties(structuralmodel,'YoungsModulus',210e9, ...
                                     'PoissonsRatio',0.28, ...
                                     'MassDensity',7700);

Приложите центробежную нагрузку из-за вращения диска. Предположим, что диск вращается со скоростью 104,7 рад/с.

structuralBodyLoad(structuralmodel,'AngularVelocity',1047);

Примените радиальное смещение на ступице диска к пресс-посадке модели.

structuralBC(structuralmodel,'Edge',4,'RDisplacement',50e-6);

Зафиксируйте осевое смещение точки на ступице, чтобы предотвратить движение жесткого тела.

structuralBC(structuralmodel,'Vertex',1,'ZDisplacement',0);

Создайте сетку.

generateMesh(structuralmodel);

Решите модель.

structuralresults = solve(structuralmodel);

Постройте график радиального смещения диска.

figure
pdeplot(structuralmodel, ...
        'XYData',structuralresults.Displacement.ur, ...
        'ColorMap','jet')
axis equal
xlim([0 0.3])
ylim([-0.05 0.05])

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

Постройте график кругового (кольцевого) напряжения.

figure
pdeplot(structuralmodel, ...
        'XYData',structuralresults.Stress.sh, ...
        'ColorMap','jet')
axis equal
xlim([0 0.3])
ylim([-0.05 0.05])

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

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

Создайте переходную динамическую модель для 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)

Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

Задайте модуль Юнга, коэффициент Пуассона и массовую плотность материала.

structuralProperties(structuralmodel,'YoungsModulus',210E9, ...
                                     'PoissonsRatio',0.3, ...
                                     'MassDensity',7800);

Закрепите один конец балки.

structuralBC(structuralmodel,'Face',5,'Constraint','fixed');

Выполните синусоидальное перемещение в направлении y на конце, противоположном неподвижному концу балки.

yDisplacementFunc = @(location,state) ones(size(location.y))*1E-4*sin(50*state.time);
structuralBC(structuralmodel,'Face',3,'YDisplacement',yDisplacementFunc)
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: 3
                Vectorized: 'off'

   Boundary Constraints and Enforced Displacements
              Displacement: []
             XDisplacement: []
             YDisplacement: [function_handle]
             ZDisplacement: []
                Constraint: []
                    Radius: []
                 Reference: []

   Boundary Loads
                     Force: []
           SurfaceTraction: []
                  Pressure: []
    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 проблемы.

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)

Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

Задайте модуль Юнга, коэффициент Пуассона и массовую плотность материала.

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);

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

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

model = createpde('structural','static-planestress'); 

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

length = 1;
width = 0.5;
radius = 0.1;
R1 = [3 4 -length length length -length ...
          -width -width  width   width]';
C1 = [1 0 0 radius 0 0 0 0 0 0]';
gdm = [R1 C1];
ns = char('R1','C1');
g = decsg(gdm,'R1- C1',ns');
geometryFromEdges(model,g);

Постройте график геометрии, отображая метки кромок.

figure
pdegplot(model,'EdgeLabels','on');
axis([-1.2*length 1.2*length ...
      -1.2*width  1.2*width])

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

Постройте график геометрии, отображая метки вершин.

figure
pdegplot(model,'VertexLabels','on');
axis([-1.2*length 1.2*length ...
      -1.2*width  1.2*width])

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

Укажите модуль Юнга и коэффициент Пуассона материала.

structuralProperties(model,'YoungsModulus',210E9,'PoissonsRatio',0.3);

Установите нулевое значение X-компонента смещения на левом крае пластины, чтобы противостоять приложенной нагрузке.

structuralBC(model,'Edge',3,'XDisplacement',0);

Примените тягу поверхности с ненулевым x-компонентом на правом крае пластины.

structuralBoundaryLoad(model,'Edge',1,'SurfaceTraction',[100000 0]);

Установите нулевое значение Y-компонента смещения в левом нижнем углу (вершина 3), чтобы ограничить движение жесткого тела.

structuralBC(model,'Vertex',3,'YDisplacement',0);

Создание сетки с помощью Hmax для управления размером сетки. Тонкая сетка позволяет точно фиксировать градацию в решении.

generateMesh(model,'Hmax',radius/6);

Решите проблему.

R = solve(model); 

Постройте график x- компонент нормального распределения напряжений.

pdeplot(model,'XYData',R.Stress.sxx);
axis equal
colormap jet
title 'Normal Stress Along x-Direction';

Figure contains an axes. The axes with title Normal Stress Along x-Direction contains an object of type patch.

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

Создайте переходную структурную модель для 3-D проблемы.

structuralmodel = createpde('structural','transient-solid');

Создайте геометрию и включите ее в модель. Постройте график геометрии.

gm = multicuboid(0.1,0.01,0.01);
structuralmodel.Geometry = gm;
pdegplot(structuralmodel,'EdgeLabels','on','FaceAlpha',0.5)

Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

Задайте модуль Юнга, коэффициент Пуассона и массовую плотность материала.

structuralProperties(structuralmodel,'YoungsModulus',70E9, ...
                                     'PoissonsRatio',0.3, ...
                                     'MassDensity',2700);

Создайте сетку.

generateMesh(structuralmodel);

Задайте многоточечное ограничение на правой стороне балки. Для повышения производительности установите ограничение для набора кромок, ограничивающих правую сторону балки, а не для всей грани.

structuralBC(structuralmodel,'Edge',[4,6,9,10],'Constraint','multipoint')
ans = 
  StructuralBC with properties:

                RegionType: 'Edge'
                  RegionID: [4 6 9 10]
                Vectorized: 'off'

   Boundary Constraints and Enforced Displacements
              Displacement: []
             XDisplacement: []
             YDisplacement: []
             ZDisplacement: []
                Constraint: "multipoint"
                    Radius: []
                 Reference: []

   Boundary Loads
                     Force: []
           SurfaceTraction: []
                  Pressure: []
    TranslationalStiffness: []

   Time Variation of Force, Pressure, or Enforced Displacement
                 StartTime: []
                   EndTime: []
                  RiseTime: []
                  FallTime: []

   Sinusoidal Variation of Force, Pressure, or Enforced Displacement
                 Frequency: []
                     Phase: []

Таким же образом установите многоточечное ограничение в левой части балки.

structuralBC(structuralmodel,'Edge',[2,8,11,12],'Constraint','multipoint')
ans = 
  StructuralBC with properties:

                RegionType: 'Edge'
                  RegionID: [2 8 11 12]
                Vectorized: 'off'

   Boundary Constraints and Enforced Displacements
              Displacement: []
             XDisplacement: []
             YDisplacement: []
             ZDisplacement: []
                Constraint: "multipoint"
                    Radius: []
                 Reference: []

   Boundary Loads
                     Force: []
           SurfaceTraction: []
                  Pressure: []
    TranslationalStiffness: []

   Time Variation of Force, Pressure, or Enforced Displacement
                 StartTime: []
                   EndTime: []
                  RiseTime: []
                  FallTime: []

   Sinusoidal Variation of Force, Pressure, or Enforced Displacement
                 Frequency: []
                     Phase: []

Уменьшить модель до всех режимов в диапазоне частот [-Inf,500000] и степеней свободы интерфейса.

R = reduce(structuralmodel,'FrequencyRange',[-Inf,500000])
R = 
  ReducedStructuralModel with properties:

                     K: [34x34 double]
                     M: [34x34 double]
              NumModes: 22
           RetainedDoF: [1x144 double]
    ReferenceLocations: [3x2 double]
                  Mesh: [1x1 FEMesh]

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

свернуть все

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

Пример: structuralmodel = createpde('structural','transient-solid')

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

Нельзя использовать следующие типы геометрических областей, если указать 'roller' или 'symmetric' значение граничной зависимости Cval:

  • 'Edge' для модели 3-D

  • 'Vertex' для модели 2-D или 3-D

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.1)

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

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

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.01)

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

Смещение

Принудительное смещение, указанное как числовой вектор или дескриптор функции. Числовой вектор должен содержать два элемента для 2-D модели (включая осесимметричные модели) и три элемента для 3-D модели. Функция должна возвращать двухстрочную матрицу для 2-D модели и трехстрочную матрицу для 3-D модели. Каждый столбец матрицы должен соответствовать вектору принудительного смещения в граничных координатах, предоставленных решателем. В случае анализа переходных или частотных характеристик, Dval также может быть функцией времени или частоты соответственно. Дополнительные сведения см. в разделе Дополнительные сведения.

Обратите внимание, что при указании Dval для осесимметричной модели радиальное смещение по оси вращения всегда должно быть равно нулю.

Пример: structuralBC(structuralmodel,'Face',[2,5],'Displacement',[0;0;0.01])

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

x-компонент принудительного смещения, заданный как дескриптор числа или функции. Функция должна возвращать вектор строки. Каждый элемент этого вектора соответствует значению x-компонента принудительного смещения в граничных координатах, предоставленных решателем. В случае анализа переходных или частотных характеристик, XDval также может быть функцией времени или частоты соответственно. Дополнительные сведения см. в разделе Дополнительные сведения.

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.01)

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

y - компонент принудительного смещения, заданный как дескриптор числа или функции. Функция должна возвращать вектор строки. Каждый элемент этого вектора соответствует значению y-составляющей принудительного смещения в граничных координатах, обеспечиваемых решателем. В случае анализа переходных или частотных характеристик, YDval также может быть функцией времени или частоты соответственно. Дополнительные сведения см. в разделе Дополнительные сведения.

Пример: structuralBC(structuralmodel,'Face',[2,5],'YDisplacement',0.01)

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

Z-компонент принудительного смещения, заданный как обозначение или дескриптор функции. Функция должна возвращать вектор строки. Каждый элемент этого вектора соответствует значению z-составляющей принудительного смещения в граничных координатах, предоставленных решателем. Для анализа переходных или частотных характеристик: ZDval также может быть функцией времени или частоты соответственно. Дополнительные сведения см. в разделе Дополнительные сведения.

Можно указать ZDval для 3-D или осесимметричной модели.

Пример: structuralBC(structuralmodel,'Face',[2,5],'ZDisplacement',0.01)

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

r - компонент принудительного перемещения, заданный как дескриптор числа или функции. Функция должна возвращать вектор строки. Каждый элемент этого вектора соответствует значению r-компонента принудительного смещения в граничных координатах, предоставленных решателем. Для анализа переходных или частотных характеристик: RDval также может быть функцией времени или частоты соответственно. Дополнительные сведения см. в разделе Дополнительные сведения.

Можно указать RDval только для осесимметричной модели. RDval должно быть равно нулю на оси вращения.

Пример: structuralBC(structuralmodel,'Face',[2,5],'RDisplacement',0.01)

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

Стандартные структурные граничные зависимости, указанные как 'free','fixed','roller', 'symmetric', или 'multipoint'.

Вы не можете использовать 'roller' и 'symmetric' значения со следующими типами геометрических областей:

  • 'Edge' для модели 3-D

  • 'Vertex' для модели 2-D или 3-D

Пример: structuralBC(structuralmodel,'Face',[2,5],'Constraint','fixed')

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

Местоположение опорной точки для многоточечного ограничения, заданного как числовой вектор 2 на 1 (для 2-D геометрии) или 3 на 1 (для 3-D геометрии).

Пример: structuralBC(structuralmodel,'Vertex',[1,3,5:10],'Constraint','multipoint','Reference',[0;0;1])

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

Радиус окружности (для 2-D геометрии) или сферы (для 3-D геометрии) вокруг местоположения опорной точки для многоточечного ограничения, заданного как положительное число.

Пример: structuralBC(structuralmodel,'Vertex',[1,3,5:10],'Constraint','multipoint','Reference',[0;0;1],'Radius',0.2)

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

Аргументы пары «имя-значение»

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.01,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)

Используйте один или несколько аргументов пары имя-значение, чтобы указать форму и длительность изменяющегося во времени значения компонента смещения. Укажите значение смещения, используя один из следующих аргументов: XDval, YDval, ZDval, или RDval. Эти аргументы пары имя-значение нельзя использовать для указания нескольких изменяющихся во времени компонентов или для указания Dval значение.

Можно моделировать прямоугольные, треугольные и трапециевидные импульсы смещения. Если время начала равно 0, указывать его не требуется.

  • Для прямоугольного импульса укажите время начала и окончания.

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

  • Для трапециевидного импульса укажите все четыре раза.

Можно смоделировать гармоническое смещение, указав его частоту и начальную фазу. Если начальная фаза равна 0, указывать ее не требуется.

Прямоугольный, треугольный или трапециевидный импульс

свернуть все

Время начала компонента смещения, указанное как 0 или положительное число. Этот аргумент указывается только для переходных структурных моделей.

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.01,'StartTime',1,'EndTime',3)

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

Конечное время для компонента перемещения, указанное как положительное число, равное или большее значения начального времени. Этот аргумент указывается только для переходных структурных моделей.

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.01,'StartTime',1,'EndTime',3)

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

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

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.01,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)

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

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

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.01,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)

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

Гармоническое смещение

свернуть все

Частота синусоидальной составляющей смещения, определяемая как положительное число в радианах за единицу времени. Этот аргумент указывается только для переходных структурных моделей.

Пример: structuralBC(structuralmodel,'Face','XDisplacement',0.01,'Frequency',25)

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

Фаза синусоидальной составляющей смещения, определяемая как положительное число в радианах. Этот аргумент указывается только для переходных структурных моделей.

Пример: structuralBC(structuralmodel,'Face',[2,5],'XDisplacement',0.01,'Frequency',25,'Phase',pi/6)

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

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

свернуть все

Дескриптор граничного условия, возвращаемого как StructuralBC объект. См. раздел Свойства StructuralBC.

Подробнее

свернуть все

Степени свободы (DoF)

В инструментарии дифференциальных уравнений в частных производных каждый узел геометрии 2-D или 3-D имеет две или три степени свободы (DoF) соответственно. DoF соответствуют поступательным перемещениям. Если количество точек сетки в модели равно NumNodes, то панель инструментов присваивает идентификаторы степеням свободы следующим образом:

  • Числа от 1 до NumNodes соответствуют x-размещение в каждом узле.

  • Числа из NumNodes+1 кому 2*NumNodes соответствуют y-размещение в каждом узле.

  • Числа из 2*NumNodes+1 кому 3*NumNodes соответствуют z- смещение в каждом узле 3-D геометрии.

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

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

  • Поверхностная тяга на границе

  • Давление по нормали к границе

  • Сосредоточенная сила в вершине

  • Распределенная жесткость пружины для каждого поступательного направления, используемого для моделирования упругого основания

  • Принудительное перемещение и его компоненты

  • Начальное смещение и скорость

Например, используйте дескрипторы функций, чтобы указать нагрузку давления, 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-компонент вектора нормали в точке оценки или точках

    • location.ny - y-компонент вектора нормали в точке оценки или точках

    • 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 значения.

Совет

  • Ограничьте все движения жесткого тела, задав необходимое количество граничных условий. Если не ограничить все движения жесткого тела, вся геометрия может свободно вращаться или перемещаться. Результирующая линейная система уравнений является сингулярной. Система может занять много времени, чтобы сойтись, или она может вообще не сойтись. Если система сходится, решение включает большое движение жесткого тела в дополнение к деформации.

Представлен в R2017b