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) ограничивает область для многоточечного ограничения узлами внутри окружности (для 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);

Сгенерируйте 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 осесимметричную модель до модели 2-D.

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

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

Сгенерируйте 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 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);

Сгенерируйте 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';

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

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

Пример: 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 Свойств.

Подробнее о

свернуть все

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

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

Совет

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

Введенный в R2017b