exponenta event banner

structuralBoundaryLoad

Задайте граничные загрузки для структурной модели

Синтаксис

structuralBoundaryLoad(structuralmodel,RegionType,RegionID,'SurfaceTraction',STval,'Pressure',Pval,'TranslationalStiffness',TSval)
structuralBoundaryLoad(structuralmodel,'Vertex',VertexID,'Force',Fval)
structuralBoundaryLoad(___,'Vectorized','on')
structuralBoundaryLoad(___,'Pressure',Pval,Name,Value)
structuralBoundaryLoad(structuralmodel,'Vertex',VertexID,'Force',Fval,Name,Value)
boundaryLoad = structuralBoundaryLoad(___)

Описание

пример

structuralBoundaryLoad(structuralmodel,RegionType,RegionID,'SurfaceTraction',STval,'Pressure',Pval,'TranslationalStiffness',TSval) задает поверхностную тягу, давление и переводную жесткость на контуре типа RegionType с идентификационными номерами RegionID. Можно задать переводную жесткость для статического, переходного, или модального анализа. Чтобы задать давление или поверхностную тягу, structuralmodel должен быть статичным или переходным. Структурные модели для модального анализа не могут иметь давления или поверхностной тяги.

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

  • Давление должно быть задано в направлении, которое нормально к контуру. Положительное значение давления действует в контур (например, сжатие). Отрицательное значение давления действует далеко от контура (например, всасывание).

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

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

Граничная загрузка по умолчанию является граничным условием без напряжения.

пример

structuralBoundaryLoad(structuralmodel,'Vertex',VertexID,'Force',Fval) задает сконцентрированную силу в вершине с номером VertexID.

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

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

пример

structuralBoundaryLoad(___,'Pressure',Pval,Name,Value) позволяет вам задать форму и длительность непостоянного импульса давления для переходной структурной модели, не создавая указатель на функцию. При использовании этого синтаксиса необходимо задать модель, тип области и ID области и давление. Поверхностная тяга и переводная жесткость являются дополнительными аргументами.

пример

structuralBoundaryLoad(structuralmodel,'Vertex',VertexID,'Force',Fval,Name,Value) позволяет вам задать форму и длительность непостоянной сконцентрированной силы для переходной структурной модели, не создавая указатель на функцию.

boundaryLoad = structuralBoundaryLoad(___) возвращает граничный объект загрузки.

Примеры

свернуть все

Применяйтесь закрепил контуры и тягу на двух концах биметаллического кабеля.

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

structuralModel = createpde('structural','static-solid');

Создайте вложенные цилиндры, чтобы смоделировать биметаллический кабель.

gm = multicylinder([0.01,0.015],0.05);

Присвойте геометрию структурной модели и постройте геометрию.

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

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

structuralProperties(structuralModel,'Cell',1,'YoungsModulus',110E9, ...
                                              'PoissonsRatio',0.28);
structuralProperties(structuralModel,'Cell',2,'YoungsModulus',210E9, ...
                                              'PoissonsRatio',0.3);

Укажите, что стоит 1, и 4 зафиксированные контуры.

structuralBC(structuralModel,'Face',[1,4],'Constraint','fixed')
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: [1 4]
                Vectorized: 'off'

   Boundary Constraints and Enforced Displacements
              Displacement: []
             XDisplacement: []
             YDisplacement: []
             ZDisplacement: []
                Constraint: "fixed"

   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: []

   Boundary Loads
                     Force: []
           SurfaceTraction: [3x1 double]
                  Pressure: []
    TranslationalStiffness: []

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

structuralModel = createpde('structural','static-solid');

Создайте геометрию блока.

gm = multicuboid(20,10,5);

Присвойте геометрию структурной модели и постройте геометрию.

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

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

structuralProperties(structuralModel,'YoungsModulus',30, ...
                                     'PoissonsRatio',0.3);

Нижняя поверхность блока является опорой на эластичную основу (пружина). Чтобы смоделировать эту основу, задайте переводную жесткость.

structuralBoundaryLoad(structuralModel,'Face',1,'TranslationalStiffness',[0;0;30])
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: 1
                Vectorized: 'off'

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

   Boundary Loads
                     Force: []
           SurfaceTraction: []
                  Pressure: []
    TranslationalStiffness: [3x1 double]

Задайте значение силы в вершине геометрии.

Создайте структурную модель для статического анализа твердой (3-D) проблемы.

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

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

gm = multicuboid(0.2,0.01,[0.01 0.01],'Zoffset',[0 0.01]);

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

model.Geometry = gm;

Постройте геометрию и отобразите метки поверхности. Вращайте геометрию так, чтобы вы видели метки поверхности на левой стороне.

figure 
pdegplot(model,'FaceLabels','on');
view([-67 5])

Постройте геометрию и отобразите метки вершины. Вращайте геометрию так, чтобы вы видели метки вершины на правой стороне.

figure 
pdegplot(model,'VertexLabels','on','FaceAlpha',0.5)
xlim([-0.01 0.1])
zlim([-0.01 0.02])
view([60 5])

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

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

Укажите, что стоит 5, и 10 зафиксированные контуры.

structuralBC(model,'Face',[5 10],'Constraint','fixed');

Задайте сконцентрированную силу в вершине 6.

structuralBoundaryLoad(model,'Vertex',6,'Force',[0;10^4;0])
ans = 
  StructuralBC with properties:

                RegionType: 'Vertex'
                  RegionID: 6
                Vectorized: 'off'

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

   Boundary Loads
                     Force: [3x1 double]
           SurfaceTraction: []
                  Pressure: []
    TranslationalStiffness: []

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

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

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

Создайте геометрию, состоящую из тонкой 3-D пластины и маленькой пластины в центре. Включайте геометрию в модель и постройте его.

gm = multicuboid([5,0.05],[5,0.05],0.01);
structuralmodel.Geometry=gm;
pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)

Увеличьте масштаб, чтобы видеть метки поверхности на маленькой пластине в центре.

figure
pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.25)
axis([-0.2 0.2 -0.2 0.2 -0.1 0.1])

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

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

Укажите, что все поверхности на периферии тонкой 3-D пластины являются зафиксированными контурами.

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

Примените гармонично переменную нагрузку давления на маленькую поверхность в центре пластины.

plungerLoad = @(location,state)5E7.*sin(25.*state.time);
structuralBoundaryLoad(structuralmodel,'Face',12,'Pressure',plungerLoad)
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: 12
                Vectorized: 'off'

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

   Boundary Loads
                     Force: []
           SurfaceTraction: []
                  Pressure: @(location,state)5E7.*sin(25.*state.time)
    TranslationalStiffness: []

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

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

Задайте гармонично переменное давление в центре тонкой 3-D пластины путем определения ее частоты.

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

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

Создайте геометрию, состоящую из тонкой 3-D пластины и маленькой пластины в центре. Включайте геометрию в модель и постройте его.

gm = multicuboid([5,0.05],[5,0.05],0.01);
structuralmodel.Geometry=gm;
pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)

Увеличьте масштаб, чтобы видеть метки поверхности на маленькой пластине в центре.

figure
pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.25)
axis([-0.2 0.2 -0.2 0.2 -0.1 0.1])

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

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

Укажите, что все поверхности на периферии тонкой 3-D пластины являются зафиксированными контурами.

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

Примените гармонично переменную нагрузку давления на маленькую поверхность в центре пластины.

structuralBoundaryLoad(structuralmodel,'Face',12,'Pressure',5E7,'Frequency',25)
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: 12
                Vectorized: 'off'

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

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

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

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

Создайте переходную структурную модель.

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

Импортируйте и постройте геометрию.

importGeometry(structuralModel,'BracketWithHole.stl');
pdegplot(structuralModel,'FaceLabels','on')
view(-20,10)

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

structuralProperties(structuralModel,'YoungsModulus',200e9, ...
                                     'PoissonsRatio',0.3,...
                                     'MassDensity',7800);

Укажите, что стоят 4, фиксированный контур.

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

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

structuralBoundaryLoad(structuralModel,'Face',7,'Pressure',10^5,...
                                       'StartTime',0.1,'EndTime',0.5)
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: 7
                Vectorized: 'off'

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

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

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

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

Задайте короткий сконцентрированный импульс силы в вершине геометрии.

Создайте структурную модель для статического анализа твердой (3-D) проблемы.

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

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

gm = multicuboid(0.2,0.01,[0.01 0.01],'Zoffset',[0 0.01]);

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

structuralmodel.Geometry = gm;

Постройте геометрию и отобразите метки поверхности. Вращайте геометрию так, чтобы вы видели метки поверхности на левой стороне.

figure 
pdegplot(structuralmodel,'FaceLabels','on');
view([-67 5])

Постройте геометрию и отобразите метки вершины. Вращайте геометрию так, чтобы вы видели метки вершины на правой стороне.

figure 
pdegplot(structuralmodel,'VertexLabels','on','FaceAlpha',0.5)
xlim([-0.01 0.1])
zlim([-0.01 0.02])
view([60 5])

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

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

Укажите, что стоит 5, и 10 зафиксированные контуры.

structuralBC(structuralmodel,'Face',[5 10],'Constraint','fixed');

Задайте короткий сконцентрированный импульс силы в вершине 6.

structuralBoundaryLoad(structuralmodel,'Vertex',6,'Force',[0;1000;0], ...
                             'StartTime',1,'EndTime',1.05)
ans = 
  StructuralBC with properties:

                RegionType: 'Vertex'
                  RegionID: 6
                Vectorized: 'off'

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

   Boundary Loads
                     Force: [3×1 double]
           SurfaceTraction: []
                  Pressure: []
    TranslationalStiffness: []

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

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

Задайте нулевое начальное смещение и скорость.

structuralIC(structuralmodel,'Displacement',[0;0;0],'Velocity',[0;0;0]) 
ans = 
  GeometricStructuralICs with properties:

             RegionType: 'Cell'
               RegionID: [1 2]
    InitialDisplacement: [3×1 double]
        InitialVelocity: [3×1 double]

Сгенерируйте мелкую сетку.

generateMesh(structuralmodel,'Hmax',0.02);

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

structuralresults1 = solve(structuralmodel,0:1E-2:1); 

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

structuralIC(structuralmodel,structuralresults1)
ans = 
  NodalStructuralICs with properties:

    InitialDisplacement: [511×3 double]
        InitialVelocity: [511×3 double]

structuralresults2 = solve(structuralmodel,[1.001:0.001:1.01 1.02:1E-2:2]);

Постройте значение смещения в узле, соответствующем вершине 6, где вы применили сконцентрированный импульс силы.

loadedNd = findNodes(structuralmodel.Mesh,'region','Vertex',6); 
plot(structuralresults2.SolutionTimes,structuralresults2.Displacement.uy(loadedNd,:))

Входные параметры

свернуть все

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

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'SurfaceTraction',[0,0,100])

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

Геометрический ID области, заданный как положительное целое число или вектор положительных целых чисел. Найдите, что идентификаторы области с помощью pdegplot, как показано в Создают Геометрию и Удаляют Контуры Поверхности или Импорт Файла STL.

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'SurfaceTraction',[0,0,100])

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Vertex',6,'Force',[0;10^4;0])

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'SurfaceTraction',[0;0;100])

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5)

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Edge',[2,5],'TranslationalStiffness',[0;5500])

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

Сконцентрированная сила в вершине, заданной как числовой вектор или указатель на функцию.

Пример: structuralBoundaryLoad(structuralmodel,'Vertex',5,'Force',[0;0;10])

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)

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

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

  • Для меандра задайте запуск и время окончания.

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

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

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

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

свернуть все

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'StartTime',1,'EndTime',3)

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'StartTime',1,'EndTime',3)

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'RiseTime',0.5,'FallTime',0.5,'EndTime',3)

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

Гармоническая загрузка давления или силы

свернуть все

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'Frequency',25)

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

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

Пример: structuralBoundaryLoad(structuralmodel,'Face',[2,5],'Pressure',10^5,'Frequency',25,'Phase',pi/6)

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

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

свернуть все

Обработайте к граничной загрузке, возвращенной как объект StructuralBC.

Введенный в R2017b