deflection analysis of bracket
this example shows how to analyze a 3-d mechanical part under an applied load using the finite element analysis model and determine the maximal deflection.
create model with geometry
the first step in solving this linear elasticity problem is to create an
femodel
object for structural analysis with a geometry representing a
simple bracket.
model = femodel(analysistype="structuralstatic", ... geometry="bracketwithhole.stl");
plot geometry
plot the front and rear views of the geometry with face labels.
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")
specify structural properties of material
specify young's modulus and poisson's ratio of the material.
model.materialproperties = ... materialproperties(youngsmodulus=200e9, ... poissonsratio=0.3);
apply boundary conditions and loads
the problem has two boundary conditions: the back face (face 4) is fixed, and the front face (face 8) has an applied load. all other boundary conditions, by default, are free boundaries.
model.facebc(4) = facebc(constraint="fixed");
apply a distributed load in the negative z-direction to the front face.
model.faceload(8) = faceload(surfacetraction=[0;0;-1e4]);
generate mesh
generate a mesh and assign the result to the model. this assignment updates the mesh
stored in the geometry
property of the model. plot the mesh.
model = generatemesh(model);
figure
pdemesh(model);
title("mesh with quadratic tetrahedral elements")
calculate solution
calculate the solution by using the solve
function.
result = solve(model)
result = staticstructuralresults with properties: displacement: [1×1 festruct] strain: [1×1 festruct] stress: [1×1 festruct] vonmisesstress: [5993×1 double] mesh: [1×1 femesh]
examine solution
find the maximal deflection of the bracket in the z-direction.
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.
plot results interactively
visualize the displacement components and the von mises stress by using the visualize pde results live editor task. the maximal deflections are in the z-direction. because the bracket and the load are symmetric, the x-displacement and z-displacement are symmetric, and the y-displacement is antisymmetric with respect to the center line.
first, create a new live script by clicking the new live script button in the file section on the home tab.
on the insert tab, select task > visualize pde results. this action inserts the task into your script.
to plot the z-displacement, follow these steps. to plot the
x- and y-displacements, follow the same steps,
but set component to x
and
y
, respectively.
in the select results section of the task, select
result
from the drop-down list.in the specify data parameters section of the task, set type to
displacement
and component toz
.in the specify visualization parameters section of the task, clear the deformation check box.
here, the blue color represents the lowest displacement value, and the red color represents the highest displacement value. the bracket load causes face 8 to dip down, so the maximum z-displacement appears blue.
to plot the von mises stress, in the specify data
parameters section of the task, set type to
stress
and component to von
mises
.
plot results at the command line
you also can plot the results, such as the displacement components and the von mises
stress, at the matlab® command line by using the pdeplot3d
function.
figure pdeplot3d(result.mesh,colormapdata=result.displacement.ux); title("x-displacement") colormap("jet")
figure pdeplot3d(result.mesh,colormapdata=result.displacement.uy) title("y-displacement") colormap("jet")
figure pdeplot3d(result.mesh,colormapdata=result.displacement.uz) title("z-displacement") colormap("jet")
figure pdeplot3d(result.mesh,colormapdata=result.vonmisesstress) title("von mises stress") colormap("jet")