Stress Strain, Principal Axes, and Mohr's Circle

General Stress State Rotated from the Principal Axes  System

This is a general state, we will rotate about the z-axis and compare the result to a general two-dimensional stress state.

σtensordiag=(({{(Subscript[σprinc, xx]), 0, 0}, {0, (Subscript[σprinc, yy]), 0}, {0, 0, (Subscript[σprinc, zz])}}));
σtensordiag//MatrixForm

Rotation about z-axis by angle θ

rotmat[θ_] :=(({{Cos[θ], -Sin[θ], 0}, {Sin[θ], Cos[θ], 0}, {0, 0, 1}}));
rotmat[θ]//MatrixForm

Transformation to general two-dimensional stress state coordinate system by rotating the principal system by θ around z-axis

σrot = Simplify[Transpose[rotmat[θ]].σtensordiag.rotmat[θ]];
σrot//MatrixForm

Writing the same equation in a slightly different way...

σrotalt =Collect[σrot//TrigReduce,{Cos[2θ],Sin[2 θ]}];
σrotalt//MatrixForm

Naming the coefficients of the rotated two-dimensional state:

σlabMat=(({{(Subscript[σlab, xx]), (Subscript[σlab, xy]), (Subscript[σlab, xz])}, {(Subscript[σlab, xy]), (Subscript[σlab, yy]), (Subscript[σlab, yz])}, {(Subscript[σlab, xz]), (Subscript[σlab, yz]), (Subscript[σlab, zz])}}))= σrotalt;
σlabMat//MatrixForm

Looking at the x-y components of stress (i.e, the upper-left  2×2 submatrix), notice that there are two invariants of the generalized two-dimensional  stress state: The trace and the determinant:

Simplify[(Subscript[σlab, xx]) + (Subscript[σlab, yy]) ]

Simplify[(Subscript[σlab, xx])  (Subscript[σlab, yy]) -((Subscript[σlab, xy]))^2]

Do not depend on θ; thus illustrating the invariance of these quantities under rotation of coordinate rotations.

Two-Dimensional Stress under Rotation: Mohr's Circle

1. (Subscript[σlab, xx])  in laboratory system rotated by θ from principal axis system

(Subscript[σlab, xx])

2. (Subscript[σlab, yy])  in laboratory system rotated by θ from principal axis system

(Subscript[σlab, yy])

3. (Subscript[σlab, xy])  in laboratory system rotated by θ from principal axis system

(Subscript[σlab, xy])

All z-components remain zero except the original diagonal term (Subscript[σlab, zz])

The above three equations can be graphically represented  as Mohr's circle of stress (see accompanying class notes). The equations show the way in which the stress tensor components in a two-dimensional state of stress (a "biaxial" stress state) vary with orientation of the coordinate system in which the stresses are described.

Example of Mohr's circle for two-dimensional body in uniaxial tension with (Subscript[σprinc, xx]) = 10 MPa and all other stress components equal to zero

uniaxial10= {(Subscript[σprinc, xx])->10,(Subscript[σprinc, yy])->0}

ParametricPlot[{(Subscript[σlab, xx]),(Subscript[σlab, xy])}/.uniaxial10
,{θ,0,π},AxesLabel->{"normal stress","shear stress"},AspectRatio->1,PlotLabel->" \t \t Mohr Circle for 10 MPa Uniaxial Tension",PlotStyle->{Thickness[0.01],Hue[1]}]

uniaxialother= {(Subscript[σprinc, xx])->30,(Subscript[σprinc, yy])->10}

ParametricPlot[{(Subscript[σlab, xx]),(Subscript[σlab, xy])}/.uniaxialother
,{θ,0,π},AxesLabel->{"normal stress","shear stress"},AspectRatio->1,PlotRange->{{0,40},{-20,20}},PlotLabel->" \t \t Mohr Circle for (Subscript[σprinc, xx])= 30   (Subscript[σprinc, yy])=10",PlotStyle->{Thickness[0.01],Hue[1]}]

Comparing this plot with Figure 10-3 in the lecture notes, we see that the maximum and minimum tensile stresses are 10 and 30 MPa (from intercepts with x axis), as expected, and the maximum shear stress is ±5 MPa and it is experienced on a plane oriented at 2θ = 90° or θ = 45° to the tensile axis (remember that angles on Mohr's circle plots are twice the angle in the body).

Visualization Example: Graphics for Mohr's Circle

This is a straightforward, but fairly lengthy, example of using mouse interaction to visualize Mohr's circle of stress. We use manipulate to set the state of stress and then calculate its orientation with respect to the principle axis to draw Mohr's circle.  Then, we use a Dynamic Locator that provides a handle to rotate the frame in which the stress tensor is calculated.

mohrs[off_,rad_] := {Red,Thick,Circle[{offset,0},radius]}

s12graph[s11_,s12_]:= {Darker[Orange],
Arrow[{{s11,s12},{0,s12}}],
Text[s12,{0,s12},{-1.5,-1.5},Background-> White]}

s22graph[s22_,s12_]:={Blue,Arrow[{{s22,-s12},{s22,0}}],
Text[s22,{s22,0},{0,-1},Background-> White]}

s11graph[s11_, s12_]:={Darker[Green],
Dynamic[Arrow[{{s11,s12},{s11,0}}]],
Dynamic[Text[s11,{s11,0},{0,1},Background-> White]]}

diamgraph[s11_,s12_, s22_]:={Line[{{s22,-s12},{s11,s12}}]}

anglegraph[twotheta_] :={Purple,Dashed,Circle[{offset,0},1.2*radius, {0,twotheta}], Text[Style["2θ="<>ToString[twotheta 180/Pi],Medium],{offset,0}+1.2*radius*{Cos[twotheta/2],Sin[twotheta/2]},Background->White]}

titlegraph[s11_,s12_,s22_]:=Text[MatrixForm[{{Text[Style[s11,Darker[Green],Large]],Text[Style[s12,Darker[Orange],Large]]},{Text[Style[s12,Darker[Orange],Large]],Text[Style[s22,Blue,Large]]}}]]

Visualization Example (cont'd) : Interacting with Mohr's Circle

Manipulate[
offset= ((Subscript[σ, 11])+(Subscript[σ, 22]))/2;
radius=((Subscript[σ, 11]) - (Subscript[σ, 22]))/2;
ThetaInit = ArcSin[(Subscript[σ, 12])/radius]/2;
DynamicModule[{twotheta=2ThetaInit, s11=3,s12=4,s22},LocatorPane[Dynamic[({radius Cos[twotheta]+offset,radius Sin[twotheta]}),(twotheta=Mod[Apply[ArcTan,(#-{offset,0})], 2 Pi])&],
s11 = Dynamic[offset + radius Cos[twotheta]];
s12= Dynamic[ radius Sin[twotheta]];
s22 = Dynamic[offset - radius Cos[twotheta]];
Graphics[
{
mohrs[offset,radius],
Dynamic[anglegraph[twotheta]],
Dynamic[diamgraph[s11,s12,s22]],
Dynamic[s12graph[s11,s12]] ,
Dynamic[s22graph[s22,s12]] ,
Dynamic[s11graph[s11,s12]] 
},Axes->True,AxesOrigin->{0,0},PlotLabel-> Dynamic[titlegraph[s11,s12,s22]]]
]
],{{(Subscript[σ, 11]) ,8}, -1,11},{{(Subscript[σ, 22]) , 3.0},-5,7},{{(Subscript[σ, 12]) , 2},-5,5},
FrameLabel->Text[Style["Mohr's Circle of Stress",Large]]]