Wolfram Language™

Valores propios y funciones propias de un cigüeñal

Calcule los valores propias y funciones propias de un cigüeñal montado.

Especifique un Graphics3D.

In[1]:=
In[2]:=
Needs["NDSolve`FEM`"] mesh = ToElementMesh[DiscretizeGraphics[gr], "MeshOrder" -> 1]
Out[2]=

Especifique el operador de estrés en tres dimensiones.

muestre la entrada completa de Wolfram Language
In[3]:=
stressOperator[ Y_, \[Nu]_] := {Inactive[ Div][({{0, 0, -((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu])))}, {0, 0, 0}, {-(Y/(2 (1 + \[Nu]))), 0, 0}}.Inactive[Grad][ w[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{0, -((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu]))), 0}, {-(Y/(2 (1 + \[Nu]))), 0, 0}, {0, 0, 0}}.Inactive[Grad][ v[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{-((Y (1 - \[Nu]))/((1 - 2 \[Nu]) (1 + \[Nu]))), 0, 0}, {0, -(Y/(2 (1 + \[Nu]))), 0}, {0, 0, -(Y/(2 (1 + \[Nu])))}}.Inactive[Grad][ u[x, y, z], {x, y, z}]), {x, y, z}], Inactive[Div][({{0, 0, 0}, {0, 0, -((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu])))}, {0, -(Y/( 2 (1 + \[Nu]))), 0}}.Inactive[Grad][ w[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{0, -(Y/(2 (1 + \[Nu]))), 0}, {-((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu]))), 0, 0}, {0, 0, 0}}.Inactive[Grad][u[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{-(Y/(2 (1 + \[Nu]))), 0, 0}, {0, -((Y (1 - \[Nu]))/((1 - 2 \[Nu]) (1 + \[Nu]))), 0}, {0, 0, -(Y/(2 (1 + \[Nu])))}}.Inactive[Grad][ v[x, y, z], {x, y, z}]), {x, y, z}], Inactive[Div][({{0, 0, 0}, {0, 0, -(Y/(2 (1 + \[Nu])))}, {0, -(( Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu]))), 0}}.Inactive[Grad][ v[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{0, 0, -(Y/(2 (1 + \[Nu])))}, {0, 0, 0}, {-((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu]))), 0, 0}}.Inactive[Grad][u[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{-(Y/(2 (1 + \[Nu]))), 0, 0}, {0, -(Y/(2 (1 + \[Nu]))), 0}, {0, 0, -(( Y (1 - \[Nu]))/((1 - 2 \[Nu]) (1 + \[Nu])))}}.Inactive[Grad][ w[x, y, z], {x, y, z}]), {x, y, z}]}

Especifique las restricciones tales que el límite del cigüeñal se mantiene fijo en estas posiciones.

In[4]:=
Subscript[\[CapitalGamma], D] = DirichletCondition[#, {y <= 0.1, y >= 890}] & /@ {u[x, y, z] == 0., v[x, y, z] == 0., w[x, y, z] == 0.};

Encuentre valores propios y funciones propias.

In[5]:=
{vals, funs} = NDEigensystem[ Join[stressOperator[10^9, 33/100], Subscript[\[CapitalGamma], D]], {u, v, w}, {x, y, z} \[Element] mesh, 5];

Inspeccione los valores propios.

In[6]:=
vals
Out[6]=

Visualice la quinta función propia del cigüeñal comparada con su posición en reposo usando el paquete de elementos finitos.

muestre la entrada completa de Wolfram Language
In[7]:=
Show[ ToBoundaryMesh[mesh][ "Wireframe"[ "MeshElementStyle" -> {Directive[Opacity[0.15], EdgeForm[], FaceForm[Gray]]}]], ElementMeshDeformation[mesh, funs[[5]], "ScalingFactor" -> 100000][ "Wireframe"[AspectRatio -> Automatic, "MeshElementStyle" -> Directive[EdgeForm[], FaceForm[Gray]]]], ImageSize -> 600, ViewPoint -> Left ]
Out[7]=