structuralBoundaryLoad

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

Описание

пример

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

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

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

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

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

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

пример

structuralBoundaryLoad(structuralmodel,'Vertex',VertexID,'Force',Fval) задает сконцентрированную силу в вершине с VertexID номер. Можно задать силу только если structuralmodel статическая, переходная модель, или частотной характеристики. Структурные модели для модального анализа не могли сконцентрировать силу.

structuralBoundaryLoad(___,'Vectorized','on') использование векторизовало вычисление функции, когда вы передаете указатель на функцию в качестве аргумента. Если ваш указатель на функцию вычисляет векторизованным способом, то использование этого аргумента экономит время. Смотрите Векторизацию (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"
                    Radius: []
                 Reference: []

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

Задайте поверхностную тягу для поверхностей 2 и 5.

structuralBoundaryLoad(structuralModel,'Face',[2,5],'SurfaceTraction',[0;0;100])
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: [2 5]
                Vectorized: 'off'

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

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

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

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

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

gm = multicuboid(20,10,5);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

model.Geometry = gm;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

fmodel = createpde('structural','frequency-solid');

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

importGeometry(fmodel,'TuningFork.stl');
figure
pdegplot(fmodel,'FaceLabels','on')

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

structuralBoundaryLoad(fmodel,'Face',11,'Pressure',1);

Теперь задайте зависимую частотой загрузку давления, например, p=e-(ω-1000)2/100000.

pLoad = @(location,state) exp(-(state.frequency-1E3).^2/1E5);
structuralBoundaryLoad(fmodel,'Face',12,'Pressure',pLoad);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

structuralmodel.Geometry = gm;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

Пример: 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 как указатель на функцию, функция должна возвратить вектор-строку, где каждый столбец соответствует значению давления, за пределами координирует обеспеченный решателем. В случае переходной структурной модели, Pval также может быть функция времени. В случае частотной характеристики структурная модель, 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 объект.

Больше о

свернуть все

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

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

  • Поверхностная тяга на контуре

  • Давление, нормальное к контуру

  • Сконцентрированная сила в вершине

  • Распределенная пружинная жесткость для каждого поступательного направления раньше моделировала эластичную основу

  • Вынужденное смещение и его компоненты

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

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