Анализ отклонений кронштейна

Этот пример показывает, как анализировать 3-D механическую часть под приложенной нагрузкой с помощью анализа конечных элементов (FEA) и определить максимальное отклонение.

Создание модели структурного анализа

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

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

Импорт геометрии

Импортируйте STL- файла модели простого скобки с помощью importGeometry функция. Эта функция восстанавливает грани, ребра и вершины модели. Он может объединять некоторые грани и ребра, поэтому числа могут отличаться от чисел родительской модели CAD.

importGeometry(model,'BracketWithHole.stl');

Постройте график геометрии, отобразив метки граней.

figure
pdegplot(model,'FaceLabels','on')
view(30,30);
title('Bracket with Face Labels')

Figure contains an axes. The axes with title Bracket with Face Labels contains 3 objects of type quiver, patch, line.

figure
pdegplot(model,'FaceLabels','on')
view(-134,-32)
title('Bracket with Face Labels, Rear View')

Figure contains an axes. The axes with title Bracket with Face Labels, Rear View contains 3 objects of type quiver, patch, line.

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

Задайте модуль Янга и коэффициент Пуассона материала.

structuralProperties(model,'YoungsModulus',200e9, ...
                           'PoissonsRatio',0.3);

Применение граничных условий и нагрузок

Задача имеет два граничных условия: задняя грань (грань 4) фиксирована, а передняя грань имеет приложенную нагрузку. Все другие граничные условия по умолчанию являются свободными контурами.

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

Применить распределенную нагрузку в отрицательном значении z-направление на переднюю грань (грань 8).

structuralBoundaryLoad (model,'Face',8,'SurfaceTraction',[0;0;-1e4]);

Сгенерируйте Mesh

Сгенерируйте и постройте mesh.

generateMesh(model);
figure
pdeplot3D(model)
title('Mesh with Quadratic Tetrahedral Elements');

Вычислите решение

Используйте solve функция для вычисления решения.

result = solve(model)
result = 
  StaticStructuralResults with properties:

      Displacement: [1x1 FEStruct]
            Strain: [1x1 FEStruct]
            Stress: [1x1 FEStruct]
    VonMisesStress: [5993x1 double]
              Mesh: [1x1 FEMesh]

Исследуйте решение

Нахождение максимального отклонения кронштейна в z-направление.

minUz = min(result.Displacement.uz);
fprintf('Maximal deflection in the z-direction is %g meters.', minUz)
Maximal deflection in the z-direction is -4.43075e-05 meters.

Графическое изображение компонентов вытеснения

Постройте график компонентов вектора решения. Максимальные отклонения в z-направление. Поскольку деталь и загрузки симметричны, x-размещение и z-размещение симметричное, и y-размещение антисимметрично относительно осевой линии.

Здесь в стандартной программе графического изображения используется 'jet' палитра, которая имеет синий цвет, представляющий наименьшее значение, и красный цвет, представляющий наивысшее значение. Загрузка кронштейна заставляет поверхность 8 опуститься вниз, поэтому максимум z-размещение выглядит синим.

figure
pdeplot3D(model,'ColorMapData',result.Displacement.ux)
title('x-displacement')
colormap('jet')

figure
pdeplot3D(model,'ColorMapData',result.Displacement.uy)
title('y-displacement')
colormap('jet')

figure
pdeplot3D(model,'ColorMapData',result.Displacement.uz)
title('z-displacement')
colormap('jet')

График напряжения фон Мизеса

Постройте графики значений напряжения фон Мизеса в узловых местоположениях. Используйте ту же jet палитра.

figure
pdeplot3D(model,'ColorMapData',result.VonMisesStress)
title('von Mises stress')
colormap('jet')