В этом примере показано, как проанализировать 3-D механическую деталь при приложенной нагрузке с помощью анализа конечных элементов (МКЭ) и определить максимальное отклонение.
Первым шагом в решении задачи линейной упругости является создание модели структурного анализа. Это контейнер, содержащий геометрию, свойства конструкционного материала, параметры демпфирования, нагрузки на тело, граничные нагрузки, граничные зависимости, интерфейсы виража, начальное смещение и скорость и сетку.
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');
Приложите распределенную нагрузку в отрицательном направлении z к передней грани (грань 8).
structuralBoundaryLoad (model,'Face',8,'SurfaceTraction',[0;0;-1e4]);
Создание и печать сетки.
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' colormap, который имеет синий цвет, представляющий наименьшее значение, и красный цвет, представляющий наибольшее значение. Нагрузка на кронштейн заставляет грань 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 colormap.
figure pdeplot3D(model,'ColorMapData',result.VonMisesStress) title('von Mises stress') colormap('jet')
