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 ожидают, что связи во всех соединениях будут иметь шесть степеней свободы, в то время как Partial Differential Equation Toolbox™ использует две или три степени свободы в каждом узле. Установка многоточечного ограничения гарантирует, что все узлы и все степени свободы для заданных геометрических областей имеют твердое ограничение с геометрическим центром всех заданных геометрических областей в целом как контрольная точка. Ссылочное местоположение имеет шесть степеней свободы.

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

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

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

structuralBC(___,'Reference',Coords,'Radius',R) ограничивает область для многоточечного ограничения к узлам в кругу (для 2D геометрии) или сфера (для 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)

Для каждого металла задайте модуль Молодежи и отношение Пуассона.

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)

Задайте модуль Молодежи, отношение Пуассона и массовую плотность.

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

Сгенерируйте mesh и решите модель.

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. Для этого анализа упростите 3-D осесимметричную модель до 2D модели.

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

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

2D модель является прямоугольной полосой, 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])

Задайте модуль Молодежи, отношение Пуассона и массовую плотность.

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

Сгенерируйте mesh.

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
pdeplot(structuralmodel, ...
        'XYData',structuralresults.Stress.sh, ...
        'ColorMap','jet')
axis equal
xlim([0 0.3])
ylim([-0.05 0.05])

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

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

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)

Задайте модуль Молодежи, отношение Пуассона и массовую плотность материала.

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
pdegplot(model,'VertexLabels','on');
axis([-1.2*length 1.2*length ...
      -1.2*width  1.2*width])

Задайте модуль Молодежи и отношение Пуассона материала.

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

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

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

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

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

Задайте модуль Молодежи, отношение Пуассона и массовую плотность материала.

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

Сгенерируйте mesh.

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 объект. Модель содержит геометрию, mesh, структурные свойства материала, загрузок тела, граничных загрузок и граничных условий.

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

Геометрический тип области в виде 'Vertex', 'Edge', или, для 3-D модели, 'Face'.

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

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

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

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

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

Геометрический ID области в виде вектора из положительных целых чисел. Найдите идентификаторы области при помощи pdegplot.

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

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

Смещение

Вынужденное смещение в виде числового вектора или указателя на функцию. Числовой вектор должен содержать два элемента для 2D модели (включая осесимметричные модели) и три элемента для 3-D модели. Функция должна возвратить матрицу 2D строки для 2D модели и матрицу с тремя строками для 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' для 2D или 3-D модели

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

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

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

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

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

Радиус круга (для 2D геометрии) или сфера (для 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 объект.

Больше о

свернуть все

Степени свободы (число степеней свободы)

В Partial Differential Equation Toolbox каждый узел 2D или 3-D геометрии имеет две или три степени свободы (число степеней свободы), соответственно. Число степеней свободы соответствует поступательным смещениям. Если количеством точек mesh в модели является 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.xX-координата точки или точек

    • location.yY-координата точки или точек

    • location.z — Для 3-D или осесимметричной геометрии, z-координаты точки или точек

    • location.r — Для осесимметричной геометрии, r-координаты точки или точек

    Кроме того, для граничных условий, решатель передает эти данные в location структура:

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

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

    • 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

  • ID субдомена

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

Если параметр представляет скалярное значение, такое как давление или компонент смещения, ваша функция должна возвратить вектор-строку, где каждый элемент соответствует значению параметров (скаляр) за пределами координирует обеспеченный решателем.

Если граничные условия зависят от state.time или state.frequency, гарантируйте, что ваша функция возвращает матрицу NaN из правильного размера, когда state.frequency или state.time NaN. Решатели проверяют, является ли проблема нелинейной или зависящей от времени путем передачи NaN значения состояния и поиск возвращенного NaN значения.

Советы

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

Введенный в R2017b
Для просмотра документации необходимо авторизоваться на сайте