Этот пример показывает, как анализировать 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 pdegplot(model,'FaceLabels','on') view(-134,-32) title('Bracket with Face Labels, Rear View')
Задайте модуль Янга и коэффициент Пуассона материала.
structuralProperties(model,'YoungsModulus',200e9, ... 'PoissonsRatio',0.3);
Задача имеет два граничных условия: задняя грань (грань 4) фиксирована, а передняя грань имеет приложенную нагрузку. Все другие граничные условия по умолчанию являются свободными контурами.
structuralBC(model,'Face',4,'Constraint','fixed');
Применить распределенную нагрузку в отрицательном значении -направление на переднюю грань (грань 8).
structuralBoundaryLoad (model,'Face',8,'SurfaceTraction',[0;0;-1e4]);
Сгенерируйте и постройте 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]
Нахождение максимального отклонения кронштейна в -направление.
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.
Постройте график компонентов вектора решения. Максимальные отклонения в -направление. Поскольку деталь и загрузки симметричны, -размещение и -размещение симметричное, и -размещение антисимметрично относительно осевой линии.
Здесь в стандартной программе графического изображения используется 'jet'
палитра, которая имеет синий цвет, представляющий наименьшее значение, и красный цвет, представляющий наивысшее значение. Загрузка кронштейна заставляет поверхность 8 опуститься вниз, поэтому максимум -размещение выглядит синим.
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')