Модальный метод суперпозиции для структурной проблемы динамики

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

Модальный анализ

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

modelM = createpde('structural','modal-solid');

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

gm = multicuboid(0.05,0.003,0.003);
modelM.Geometry=gm;
pdegplot(modelM,'EdgeLabels','on','VertexLabels','on');
view([95 5])

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

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

msh = generateMesh(modelM);

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

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

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

structuralBC(modelM,'Edge',4,'Constraint','fixed');
structuralBC(modelM,'Vertex',7,'Constraint','fixed');

Решите задачу для частотного диапазона от 0 до 500 000. Рекомендуемый подход должен использовать значение, которое немного меньше, чем ожидаемая самая низкая частота. Таким образом используйте-0.1 вместо 0.

Rm = solve(modelM,'FrequencyRange',[-0.1,500000]);

Анализ переходных процессов

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

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

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

modelD.Geometry = gm;
modelD.Mesh = msh;

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

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

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

structuralBC(modelD,'Edge',4,'Constraint','fixed');
structuralBC(modelD,'Vertex',7,'Constraint','fixed');

Прикладывайте синусоидальную силу на углу напротив ограниченного ребра и вершины.

structuralBoundaryLoad(modelD,'Vertex',5,'Force',[0,0,10],'Frequency',7600);

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

structuralIC(modelD,'Velocity',[0;0;0],'Displacement',[0;0;0]);

Задайте относительные и абсолютные погрешности для решателя.

modelD.SolverOptions.RelativeTolerance = 1E-5;
modelD.SolverOptions.AbsoluteTolerance = 1E-9;

Решите модель с помощью метода прямой интеграции по умолчанию.

tlist = linspace(0,0.004,120);
Rd = solve(modelD,tlist)
Rd = 
  TransientStructuralResults with properties:

     Displacement: [1x1 FEStruct]
         Velocity: [1x1 FEStruct]
     Acceleration: [1x1 FEStruct]
    SolutionTimes: [1x120 double]
             Mesh: [1x1 FEMesh]

Теперь решите модель с помощью модальных результатов.

tlist = linspace(0,0.004,120);
Rdm = solve(modelD,tlist,'ModalResults',Rm)
Rdm = 
  TransientStructuralResults with properties:

     Displacement: [1x1 FEStruct]
         Velocity: [1x1 FEStruct]
     Acceleration: [1x1 FEStruct]
    SolutionTimes: [1x120 double]
             Mesh: [1x1 FEMesh]

Интерполируйте смещение в центре луча.

intrpUd = interpolateDisplacement(Rd,0,0,0.0015);
intrpUdm = interpolateDisplacement(Rdm,0,0,0.0015);

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

plot(Rd.SolutionTimes,intrpUd.uz,'bo')
hold on
plot(Rdm.SolutionTimes,intrpUdm.uz,'rx')
grid on
legend('Direct integration', 'Modal superposition')
xlabel('Time');
ylabel('Center of beam displacement')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Direct integration, Modal superposition.