Tags: , , , ,


PROBLEM 1: Axial Stresses and Deformations

Problem Description

A rigid plate $\mathit{B}$ is fastened to both bars $\mathit{A}$ and $\mathit{C}$, as shown is Figure 1. Bar $\mathit{C}$ is fastened to bar $\mathit{D}$, which has its end fastened to a rigid support. The end of bar $\mathit{A}$ is free. $l_{A}$, $l_{C}$, $l_{D}$ are the lengths of the bars $\mathit{A}$, $\mathit{C}$, and $\mathit{D}$ respectively, and their diameters are $d_{A}=d$, $d_{C}=d$, and $d_{D}=1.5d$. Load $F_{1}$ is applied to the rigid plate $\mathit{B}$ $($distributed uniformly around the circumference of the rigid plate $\mathit{B})$, and load $F_{2}$ is applied at the centroid of the end cross-section of bar $\mathit{B}$.

Figure 1
Figure 1: Axial bar under loading

Objectives

Determinining the axial stresses in bars $\mathit{A}$, $\mathit{C}$, and $\mathit{D}$, deformations of the bars and total deformation of the system.

For the numerical application the following values could be used:

  • $F_{1} = 64000 \hspace{1pt} N$
  • $F_{2} = 192000 \hspace{1pt} N$
  • $d = 45 \hspace{1pt} mm$
  • $l_{A} = 170 \hspace{1pt} mm$
  • $l_{C} = 144.5 \hspace{1pt} mm$
  • $l_{D} = 255 \hspace{1pt} mm$
  • Young’s modulus $E = 21\cdot10^4 \hspace{1pt} MPa$

Solution

Analytical solution

The bar is divided into components, and the internal forces are calculated, passing sections through each component. Free-body diagrams are developed for portions of the bar, as shown in Figure 2A.

Figure 2
Figure 2: Free-body diagrams

The free-body diagram of the system, namely bar $\mathit{D}$, bar $\mathit{C}$, plate $\mathit{B}$, and bar $\mathit{A}$, contains only one unknown force; the reaction force $\mathit{R}$ at the rigid support. From the equilibrium equation of the system, reaction $\mathit{R}$, or the reaction force of the rigid support on bar D, is:

  • $\sum_{}^{}\mathrm{F}_{x}^{A,B,C,D}=0$
  • $\Leftrightarrow R+F_{1}-F_{2}=0$
  • $\Leftrightarrow R = F_{2}-F_{1}$

The MATLAB program starts with the declaration of variables as symbolic scalar variables by using syms function:

Untitled
clear; clc; close all
syms F_1 F_2
syms d_A d_C d_D d E l_A l_C l_D

Then, the internal forces are calculated for each portion of the bar. The equilibrium equation of the free-body diagram for bar $A$, in the interval $3–4$, Figure 2B, gives the internal force $T_{34}$:

  • $\sum_{}^{}\mathrm{F}_{x}^{}=0$
  • $\Leftrightarrow T_{34}-F_{2}=0$
  • $\Leftrightarrow T_{34}=F_{2}$

For the interval 1–3, Figure 2C, the equilibrium equation of the free-body diagram gives the internal force $T_{13}$:

  • $\sum_{}^{}\mathrm{F}_{x}^{}=0$
  • $\Leftrightarrow T_{13}+F_{1}-F_{2}=0$
  • $\Leftrightarrow T_{13}=F_{2}-F_{1}$

The above obtained equilibrium equations are written in MATLAB as follows:

Untitled
T_34 = F_2;
T_13 = F_2-F_1;

The cross-section areas of each bar $A$, $C$, and $D$ are calculated as follows:

  • $A_{A}=\frac{\pi d_{A}^{2}}{4}$
  • $A_{C}=\frac{\pi d_{C}^{2}}{4}$
  • $A_{D}=\frac{\pi d_{D}^{2}}{4}$

In MATLAB, the cross-section areas are calculated and the results are printed with:

Untitled
d_A = d;
d_C = d;
d_D = 1.5*d;
 
A_A = pi*(d_A^2)/4;
A_C = pi*(d_C^2)/4;
A_D = pi*(d_D^2)/4;
fprintf('A_A = $s \n', char(A_A))
fprintf('A_C = $s \n', char(A_C))
fprintf('A_D = $s \n', char(A_D))
fprintf('\n')
 

The axial stresses on bars $A$, $C$, $D$, namely $\sigma_{A}$, $\sigma_{C}$, and $\sigma_{D}$, are calculated using:

  • $\sigma_{A}=\sigma_{34}=\frac{T_{34}}{A_{A}}=\frac{F_{2}}{A_{A}}=\frac{4F_{2}}{\pi d_{A}^{2}}$
  • $\sigma_{C}=\sigma_{23}=\frac{T_{13}}{A_{C}}=\frac{F_{2}-F_{1}}{A_{C}}=\frac{4(F_{2}-F_{1})}{\pi d_{C}^{2}}$
  • $\sigma_{D}=\sigma_{12}=\frac{T_{13}}{A_{D}}=\frac{F_{2}-F_{1}}{A_{D}}=\frac{4(F_{2}-F_{1})}{\pi d_{D}^{2}}$

In MATLAB, the axial stresses are calculated with:

Untitled
sigma_A=T_34/A_A;
sigma_C=T_13/A_C;
sigma_D=T_13/A_D;
fprintf('sigma_A = %s \n',char(sigma_A))
fprintf('sigma_C = %s \n',char(sigma_C))
fprintf('sigma_D = %s \n',char(sigma_D))
fprintf('\n')

Considering the followings:

  • Hooke's law of elasticity: $\sigma=E\epsilon$, that is, for small deformations, the stress is directly proportional to the strain (that produced it),
  • and the elastic strain expression: $\epsilon=\frac{\delta}{l}$, where $l$ is the bar length, $\epsilon$ is the Greek symbol used to designate strain (dimensionless), $\delta$ is the total strain (or bar elongation),

the axial displacements (i.e. the amount of elongation obtained by applying tensile load to a straight bar) of bars $C$, $D$ and the system are calculated from:

  • Axial displacement of bar $D$:
  • $$ \delta_{12}=\frac{T_{13}l_{D}}{A_{D}E}=\frac{(F_{2}-F_{1})l_{D}}{A_{D}E} $$
  • Axial displacement of bar $C$:
  • $$ \delta_{23}=\frac{T_{13}l_{C}}{A_{C}E}=\frac{(F_{2}-F_{1})l_{C}}{A_{C}E} $$
  • Axial displacement of bars $D$ and $C$:
  • $$ \delta_{13}=\delta_{12}+\delta_{23}=\frac{T_{13}l_{D}}{A_{D}E} $$ $$ =\frac{(F_{2}-F_{1})l_{D}}{A_{D}E}+\frac{(F_{2}-F_{1})l_{C}}{A_{C}E} $$ $$ =\frac{(F_{2}-F_{1})}{E}\left( \frac{l_{D}}{A_{D}}+\frac{l_{C}}{A_{C}} \right) $$
  • Axial displacement of bar $A$:
  • $$ \delta_{34}=\frac{T_{34}l_{A}}{A_{A}E}=\frac{F_{2}l_{A}}{A_{A}E} $$
  • Total axial displacement of the system:
  • $$ \delta_{14}=\delta_{13}+\delta_{34} $$ $$ =\frac{(F_{2}-F_{1})}{E}\left( \frac{l_{D}}{A_{D}}+\frac{l_{C}}{A_{C}} \right) +\frac{F_{2}l_{A}}{A_{A}E} $$

In MATLAB, the axial displacement of the bars and system are calculated with:

Untitled
delta_12=T_13*l_D/(A_D*E);
delta_23=T_13*l_C/(A_C*E);
delta_13=delta_12+delta_23;
delta_34=T_34*l_A/(A_A*E);
delta_14=delta_13+delta_34;
fprintf('delta_12 = %s \n',char(delta_12))
fprintf('delta_23 = %s \n',char(delta_23))
fprintf('delta_13 = %s \n',char(delta_13))
fprintf('delta_34 = %s \n',char(delta_34))
fprintf('delta_41 = %s \n\n',char(delta_14))

Numerical solution

To numerically calculate the axial stress and displacements, first the numerical data, given in the problem description, is introduced into the MATLAB code and then the symbolic variables are substituted with the numerical data. For the first part, two cell arrays are introduced. The string values (the symbolic variables) of the numerical data are put into cell array lists and their numerical values in cell array listn. For the second part, MATLAB’s symbolic substitution function subs is used to replace the symbolic variables in lists with their respective values from the listn, then they are displayed on the screen.

Untitled
%numerical application
lists={F_1,F_2,d,l_A,l_C,l_D, E};
listn={192000,64000,45,170,144.5,255,21*10^4};
F1n=subs(F_1,lists,listn);
F2n=subs(F_2,lists,listn);
T_13n=subs(T_13,lists,listn);
T_34n=subs(T_34,lists,listn);
fprintf('F1 = %s(N)\n', char(F1n))
fprintf('F2 = %s (N)\n', char(F2n))
fprintf('T_13 = %s (N)\n', char(T_13n))
fprintf('T_34 = %s (N)\n', char(T_34n))
fprintf('\n')

In a similar way the numerical values of each bar diameter are displayed and values of cross-section are calculated by using MATLAB’s eval function then displayed:

Untitled
d_An=subs(d_A,lists,listn);
d_Cn=subs(d_C,lists,listn);
d_Dn=subs(d_D,lists,listn);
A_An=subs(A_A,lists,listn);
A_Cn=subs(A_C,lists,listn);
A_Dn=subs(A_D,lists,listn);
fprintf('d_A = %s (mm)\n',char(d_An))
fprintf('d_C = %s (mm)\n',char(d_Cn))
fprintf('d_D = %s (mm)\n',char(d_Dn))
fprintf('A_A = %s (mm^2)\n',eval(char(A_An)))
fprintf('A_C = %s (mm^2)\n',eval(char(A_Cn)))
fprintf('A_D = %s (mm^2)\n',eval(char(A_Dn)))
fprintf('\n')

The numerical values of each bar length are expressed in MATLAB by:

Untitled
l_An=subs(l_A,lists,listn);
l_Cn=subs(l_C,lists,listn);
l_Dn=subs(l_D,lists,listn);
fprintf('l_A = %s (mm)\n',char(l_An))
fprintf('l_C = %s (mm)\n',char(l_Cn))
fprintf('l_D = %s (mm)\n',char(l_Dn))
fprintf('\n')

Finally, the numerical values of the axial stresses are calculated and displayed in MATLAB with:

Untitled
sigma_An=subs(sigma_A,lists,listn);
sigma_Cn=subs(sigma_C,lists,listn);
sigma_Dn=subs(sigma_D,lists,listn);
fprintf('sigmA_A = %s (MPa)\n',eval(char(sigma_An)))
fprintf('sigmA_C = %s (MPa)\n',eval(char(sigma_Cn)))
fprintf('sigmA_D = %s (MPa)\n',eval(char(sigma_Dn)))
fprintf('\n')

and the results are:

Untitled
sigma_A = 4.024066e+01 (MPa)
sigma_C = -8.048131e+01 (MPa)
sigma_D = -3.576947e+01 (MPa)

The numerical values of the axial displacement of the bars and the system are calculated in MATLAB with:

Untitled
delta_12n=subs(delta_12,lists,listn);
delta_23n=subs(delta_23,lists,listn);
delta_13n=subs(delta_13,lists,listn);
delta_34n=subs(delta_34,lists,listn);
delta_14n=subs(delta_14,lists,listn);
delta_24n=delta_34n+delta_23n;
fprintf('delta_12 = %s (mm)\n',eval(char(delta_12n)))
fprintf('delta_14 = %s (mm)\n',eval(char(delta_14n)))
fprintf('delta_23 = %s (mm)\n',eval(char(delta_23n)))
fprintf('delta_34 = %s (mm)\n',eval(char(delta_34n)))
fprintf('delta_24 = %s (mm)\n',eval(char(delta_24n)))
fprintf('\n')

and the results are:

Untitled
delta_12 = -4.343436e-02 (mm)
delta_14 = -6.623740e-02 (mm)
delta_23 = -5.537881e-02 (mm)
delta_34 = 3.257577e-02 (mm)
delta_24 = -2.280304e-02 (mm)

Diagrams

The force, stress and displacement diagrams (Figure 3) are obtained using the following MATLAB code:

Untitled
%Force Diagram
subplot(3,1,1)
ForceDdraw(T_13n,T_34n,l_An,l_Cn,l_Dn);
%Displacement Diagram
subplot(3,1,2)
DisplacementDdraw(delta_14n,delta_13n,...
delta_12n,l_An,l_Cn,l_Dn);
%Stress Diagram
subplot(3,1,3)
StressDdraw(sigma_An,sigma_Cn,...
sigma_Dn,l_An,l_Cn,l_Dn);

Figure 3
Figure 3: Force, stress and displacement diagrams

Three MATLAB functions are used to obtain the diagrams, namely: ForceDdraw, StressDdraw and DisplacementDdraw, by using the line function, which takes two input arguments. This function plots lines in the current axes by connecting the data in both input vectors (or matrices). In this case, both input arguments are vectors, where the first vector is the $x$-coordinates and the second vector the $y$-coordinates. Because both input vectors are of equal length, the line function plots a single line each time it is used. The codes for the three MATLAB functions are as follows:

  • The MATLAB function ForceDdraw is:
  • Untitled
    function []=ForceDdraw(F1A,F2A,l1,l2,l3,l4)
    xlabel('Bar Length (mm)'), ylabel('Force (kN)')
    title('Force Diagram')
    hold on; grid on
    axis equal; axis on
    axis([-100 700 -200 200 ])
    hold on;
    scale_F=1000;
    hold on
    l=line([0 (l1+l2+l3)], [0 0]);
    l=line([(l1+l2+l3) (l1+l2+l3)], [0 F1A/scale_F]);
    l=line([(l1+l2+l3) (l1+l2+l3)-(l3)],...
    [F1A/scale_F F1A/scale_F]);
    l=line([(l1+l2+l3)-l3 (l1+l2+l3)-(l3)],...
    [F1A/scale_F F1A/scale_F]);
    l=line([(l1+l2+l3)-l3 (l1+l2+l3)-(l2+l3)],...
    [F1A/scale_F F1A/scale_F]);
    l=line([(l1+l2+l3)-(l2+l3) (l1+l2+l3)-(l2+l3)],...
    [F1A/scale_F F2A/scale_F]);
    l=line([0 (l1+l2+l3)-(l2+l3)],...
    [F2A/scale_F F2A/scale_F]);
    l=line([0 0], [F2A/scale_F 0]);
    set(l,'Color','blue');
    end

  • The MATLAB function StressDdraw is:
  • Untitled
    function []=StressDdraw(sigma1,sigma2,sigma3,l1,l2,l3)
    xlabel('Bar Length (mm)'), ylabel('Stress (MPa)')
    title('Stress Diagram')
    hold on; grid on
    axis equal; axis on
    axis([-100 700 -200 200])
    hold on;
    scale_S=1;
    hold on
    l=line([0 (l1+l2+l3)],[0 0]);
    l=line([(l1+l2+l3) (l1+l2+l3)],[0 sigma3]);
    l=line([(l1+l2+l3) (l1+l2+l3)-(l3)],...
    [sigma3/scale_S sigma3/scale_S]);
    l=line([(l1+l2+l3)-(l3) (l1+l2+l3)-(l3)],...
    [sigma3/scale_S sigma2/scale_S]);
    l=line([(l1+l2+l3)-(l3) (l1+l2+l3)-(l2+l3)],...
    [sigma2/scale_S sigma2/scale_S]);
    l=line([(l1+l2+l3)-(l2+l3) (l1+l2+l3)-(l2+l3)],...
    [sigma2/scale_S sigma1/scale_S]);
    l=line([0 (l1+l2+l3)-(l2+l3)],...
    [sigma1/scale_S sigma1/scale_S]);
    l=line([0 0],[sigma1/scale_S 0]);
    set(l,'Color','blue');
    end

  • The MATLAB function DisplacementDdraw is:
  • Untitled
    function []=DisplacementDdraw(delta1,delta2,delta3,l1,l2,l3)
    xlabel('Bar Length (mm)'), ylabel('Displacement (mm x 10^{-3})')
    title('Displacement Diagram')
    hold on; grid on
    axis equal; axis on
    axis([-100 700 -200 200])
    hold on;
    scale_D=10^(-3);
    hold on
    l=line([0 (l1+l2+l3)], [0 0]);
    l=line([(l1+l2+l3) (l1+l2+l3)-(l3)],...
    [0 delta3/scale_D]);
    l=line([(l1+l2+l3)-(l3) (l1+l2+l3)-(l2+l3)],...
    [delta3/scale_D delta2/scale_D]);
    l=line([(l1+l2+l3)-(l2+l3) (l1+l2+l3)-(l1+l2+l3)],...
    [delta2/scale_D delta1/scale_D]);
    l=line([0 0], [delta1/scale_D 0]);
    set(l,'Color','blue');
    end

PROBLEM 2: Bending and Shear Stresses

Problem Description

A Lever $(1)$ with length $AC = l$ is fit on a tapered lever bar $(2)$ denoted by $AB$. The lever is subjected at its end to a horizontal force $F$, as shown in Figure 4. The lever bar has radius $r$ and length $d$.

For the numerical application the following values could be used:

  • $F = 250 \hspace{1pt} N$
  • $d = 200 \hspace{1pt} mm$
  • $l = 250 \hspace{1pt} mm$
  • $h = 50 \hspace{1pt} mm$
  • $r = 9 \hspace{1pt} mm$

Figure 4
Figure 4: Lever under loading

Objectives

  • Determining the normal and shear stresses of an element located on the free surface of lever bar $(2)$ at a distance $h$ from the hexagonal base (the element is parallel to the plane determined by the axes $x$, $y$).
  • Constructing the Mohr’s circle and determining the principal planes and stresses.

Solution

The force $F$ causes bending moment (pure bending) and a torque (twisting moment) on the bar. Thus, bending induces bending stresses, which are normal stresses, and shear stresses distributed over the cross section.

The normal and shear stresses of a general element parallel to the plane determined by the axes $x$, $y$ located at a distance $h$ from the hexagonal base are $\sigma_{y}$ and $\tau_{yz}$ respectively.

Bending Stresses

$\sigma_{y}$ is the bending stress distribution over the bending height, for the case of pure bending:

\[\sigma_{y}(z)=\frac{M_{b,x}}{I_{x}}\cdot z\]

The different subscripts express that the bending stress in $y$ direction is distributed over the bending height defined here by the $z$ coordinate, and $x$ is the neutral axis.

  • $M_{b,x}$ is the bending moment, it equals to:
\[M_{b,x}=F\cdot (d-h)\]
  • $I_{x}$ is the area moment of inertia (also referred to as second moment of area). It is a geometrical property of a shape describing the distribution of points around an axis. In classical mechanics it is used as a measure of a body’s resistance against bending. For a circular cross-section it equals to:
\[I_{x} = \frac{\pi D^{4}}{64} = \frac{\pi r^{4}}{4}\]
  • The bending height $z$ is the perpendicular distance of a point along the cross-section of the bar from its neutral axis, and when calculating the maximum bending stress then $z$ equals to $r$, because it is where the bending stress is at its maximum value along the cross-section.

The bending stress equation shows that the bending stress increases linearly as the bending moment and the distance from the neutral axis increase, and it decreases as the area moment of inertia increases. The maximum stress occurs at the fibers furthest from the neutral axis. The term $\frac{z}{I_{x}}$ depends only on the geometry of the cross-section.

Thus, the maximum bending stress equals to:

\[\sigma_{y}=\frac{M_{b,x}}{I_{x}}\cdot r\]

Shear Stresses

Torsion is the twisting of an object, caused by a moment acting about the object’s longitudinal axis. A moment which tends to cause twisting is called torque.

Torsion generates shear stresses and strains within the bar. Both shear strains and shear stresses increase linearly with the distance from the center of the cross-section, with the maximum shear stress and shear strain occurring on the outer surface.

The maximum shear stress due to torsion for a circular cross-section is given by the equation:

\[\tau = \frac{T_{y}\cdot r}{J_{p}}\]

This means, shear stress is a function of

  • the torque $T_{y}$, here: around the $y$ axis,
  • the distance from the center of the cross-section, here: equal to $r$; the distance to the edge,
  • and the polar moment of inertia $J_{p}$.

For a circular cross section, the polar moment of inertia is:

\[J_{p} = \frac{\pi \cdot r^{4}}{2}\]

The torque $T_{y}= F \cdot l$.

\[\Rightarrow \tau = \frac{2F \cdot l}{\pi \cdot r^{3}}\]

Stress Transformation and Mohr’s Circle

Considering a 2D stress element, corresponding to a state of plane stress (for example the $xy$-plane), the four faces of the element are under normal stresses and shear stresses. Supposing that this element is cut by an oblique plane with a normal at an arbitrary angle $\phi$ counterclockwise from the $x$ axis, then the values of the normal and shear stresses could be calculated by using the stress transformation equations:

  • $\sigma = \frac{\sigma_{x}+\sigma_{y}}{2}+\frac{\sigma_{x}-\sigma_{y}}{2}\cdot cos(2\phi)+\tau_{xy}\cdot sin(2\phi)$
  • $\tau = \frac{\sigma_{x}-\sigma_{y}}{2}\cdot sin(2\phi)+\tau_{xy}\cdot cos(2\phi)$

Differentiating the first equation with respect to $\phi$ and setting the result equal to zero maximizes $\sigma$ and gives:

  • $tan(2\phi)=\frac{2\tau_{xy}}{\sigma_{x}-\sigma_{y}}$

This equation defines two particular values for the angle $2\phi$, one of which defines the maximum normal stress $\sigma_{1}$ and the other, the minimum normal stress $\sigma_{2}$. These two stresses are called the principal stresses, and their corresponding directions, the principal directions. The angle between the two principal directions is $90°$. This equation can be obtained from the second equation of the stress transformation equations by setting $\tau =0$, meaning that the perpendicular surfaces containing principal stresses have zero shear stresses.

An important thing to note is that angles in Mohr’s circle are doubled compared to the stress element’s rotation angle. For example, by observing Mohr’s circle, there is a $180$ degree angle between the minimum and maximum principal stresses, whereas on the stress element the angle is $90$ degrees. This is why $2\phi$ notation is used on Mohr’s circle. $\phi$ is the angle of rotation of the stress element, and $2\phi$ is the corresponding angle on Mohr’s circle.

Formulas for the two principal stresses can be obtained by substituting the angle $2\phi$ in the first stress transformation equation:

  • $\sigma_{1}, \sigma_{2} =\frac{\sigma_{x}+\sigma_{y}}{2}\pm \sqrt{({\frac{\sigma_{x}-\sigma_{y}}{2})^{2}}+\tau_{xy}^{2}}$

In a similar manner, by differentiating the second stress transformation equation with respect to $\phi$ and setting the result equal to zero gives:

  • $tan(2\phi)=-\frac{\sigma_{x}-\sigma_{y}}{2\tau_{xy}}$

This defines the two values of $2\phi$ at which the shear stress $\tau$ reaches an extreme value (not maximum). The angle between the two surfaces containing the maximum shear stresses is $90°$.

Formulas for the two extreme-value shear stresses are obtained by substituting the angle $2\phi$ in the second stress transformation equation:

  • $\tau_{1}, \tau_{2} =\pm \sqrt{({\frac{\sigma_{x}-\sigma_{y}}{2})^{2}}+\tau_{xy}^{2}}$

Analytical solution

The MATLAB program starts with the declaration of variables as symbolic scalar variables by using syms function:

Untitled
clear; clc; close all
syms F l r d h phi

Then, the normal and shear stresses are calculated in MATLAB with:

Untitled
I_x=pi*r^4/4; J_p=pi*r^4/2;
T_y=F*l;M_bx=F*(d-h);
sigma_x=0; sigma_y=M_bx*r/I_x;
tau=T_y*r/J_p;
fprintf('The normal and shear stress are \n');
fprintf('sigma_y = %s \n',char(sigma_y))
fprintf('tau = %s \n\n',char(tau))

This results in the following output:

Untitled
The normal and shear stress are
sigma_y = (4*F*(d - h))/(r^3*pi)
tau = (2*F*l)/(r^3*pi)

Then the element orientation and principal stresses are calculated in MATLAB with:

Untitled
[sigma_max,sigma_min,radius,center_circle...
,phi,phi_p,sigma_phi,tau_phi]=...
mohr2D(sigma_x,sigma_y,tau,phi);
fprintf('The principal stress orientation is \n');
fprintf('tan(2*phi) = %s \n\n',char(phi_p))
fprintf('sigma_max = %s \n',char(sigma_max))
fprintf('sigma_min = %s \n',char(sigma_min))
fprintf('\n')

For this, the user created function mohr2D(sigma_x,sigma_y,tau,phi) is required, to calculate:

  • the maximum normal stress $\sigma_{1}$ (sigma_max) and minimum normal stress $\sigma_{2}$ (sigma_min). Mohr's circle crosses the horizontal axis at these two locations, as the shear stress is zero. These two values can also be calculated by taking the $x$ coordinate of the circle's center, and adding or subtracting the circle radius
  • the radius (radius) of the Mohr's circle, which equals to $\sqrt{({\frac{\sigma_{x}-\sigma_{y}}{2})^{2}}+\tau_{xy}^{2}}$, which is also the value of the maximum shear stress
  • the center (center_circle) of the Mohr's circle, which is at $(\frac{\sigma_{x}+\sigma_{y}}{2},0)$
  • the angle $\phi$, named phi in the code, between the original stress element and the principal planes. $tan(2\phi)$ is named phi_p in the code.

This function is created by the following code:

Untitled
function [sigma_max,sigma_min,radius,...
center_circle,phi,phi_p,sigma_phi,tau_phi]=...
mohr2D(sigma_x,sigma_y,tau_xy,phi)
phi_p= 2*tau_xy/(sigma_x-sigma_y);
phi_radians= atan(phi_p)/2;
phi=(180*phi_radians)/(pi);
sigma_min=(sigma_x+sigma_y)/2-...
sqrt(((sigma_x-sigma_y)/2)^2+tau_xy^2);
sigma_max=(sigma_x+sigma_y)/2+...
sqrt(((sigma_x-sigma_y)/2)^2+tau_xy^2);
radius=sqrt(((sigma_x-sigma_y)/2)^2+tau_xy^2);
center_circle=(sigma_x+sigma_y)/2;
sigma_phi=(sigma_x+sigma_y)/2+...
((sigma_x-sigma_y)/2)*cos(2*phi)+...
tau_xy*sin(2*phi);
tau_phi=-((sigma_x-sigma_y)/2)*sin(2*phi)+...
tau_xy*cos(2*phi);
end

And the output of this code is:

Untitled
The principal stress orientation is
tan(2*phi) = -l/(d - h)
sigma_max = 2*((F^2*l^2)/(r^6*pi^2) + (F^2*(d - h)^2)/(r^6*pi^2))^(1/2) + (2*F*(d - h))/(r^3*pi)
sigma_min = (2*F*(d - h))/(r^3*pi) - 2*((F^2*l^2)/(r^6*pi^2) + (F^2*(d - h)^2)/(r^6*pi^2))^(1/2)

Numerical solution

For numerical calculations, the numerical data for the applied force $F$, the length of the lever $l$, the lever bar’s radius $r$ and length $d$, and the distance $h$ of the element on the lever bar are introduced in MATLAB as input with the code:

Untitled
%numerical application
lists={F,d,l,h,r};
listn={250,0.2,0.25,0.05,0.009};

The numerical values for the equivalent force system; torque $T_{y}$, force $F$ and bending moment $M_{b,x}$, is calculated and printed in MATLAB with:

Untitled
T=subs(T_y,lists,listn);
F=subs(F,lists,listn);
M_bx=subs(M_bx,lists,listn);
fprintf('The equivalent force system is given by\n');
fprintf('T_y = %s (Nm)\n', char(T))
fprintf('F_h = %s (N)\n', char(F))
fprintf('M_bx = %s (Nm)\n\n', char(M_bx))

resulting in:

Untitled
The equivalent force system is given by
T_y = 125/2 (Nm)
F_h = 250 (N)
M_bx = 75/2 (Nm)

The numerical values for the stress orientation and principal stresses are calculated and displayed in MATLAB with:

Untitled
%Mohr's circle
sigma_x=0;
sigma_y=eval(subs(sigma_y,lists,listn));
tau=eval(subs(tau,lists,listn));
sigma_max=eval(subs(sigma_max,lists,listn));
sigma_min=eval(subs(sigma_min,lists,listn));
radius=eval(subs(radius,lists,listn));
center_circle=eval(subs(center_circle,lists,listn));
phi=eval(subs(phi,lists,listn));
phi_p=eval(subs(phi_p,lists,listn));
fprintf('The principal stress orientation is \n');
fprintf('tan(2*phi) = %s \n', phi_p)
fprintf('or equivalently, \n')
fprintf('phi = %s degrees\n\n', phi)
fprintf('The principal stresses are \n');
fprintf('sigma_max = %f (MPa)\n', sigma_max*10^(-6))
fprintf('sigma_min = %f (MPa)\n', sigma_min*10^(-6))

resulting in:

Untitled
The principal stress orientation is
tan(2*phi) = -1.666667e+00
or equivalently,
phi = -2.951812e+01 degrees
The principal stresses are
sigma_max = 96.398467 (MPa)
sigma_min = -30.902605 (MPa)

Graphical Representation

The graphical representation of the Mohr’s circle (Figure 5) is obtained in MATLAB by calling the user created function mohr2Ddraw:

Untitled
%Mohr's Circle Diagram
mohr2Ddraw(sigma_x,sigma_y,tau,...
sigma_max,sigma_min,center_circle,radius)

Figure 5
Figure 5: Mohr's circle

The code for the mohr2Ddraw function is:

Untitled
%Mohr's circle drawing
function [] = mohr2Ddraw(sigma_x,sigma_y,tau_xy,...
sigma_max,sigma_min,center_circle,radius)
xlabel('sigma [Pa]'), ylabel('tau [Pa]')
title('Mohr''s Circle')
hold on; grid on
axis equal; axis on
x_axis=quiver(center_circle-1.5*radius,0,...
center_circle+3*radius,0,...
'Color','b','LineWidth',1.0);
set(x_axis,'Color','black');
y_axis=quiver(0,-1.5*radius,0,3.5*radius,...
'Color','b','LineWidth',1.0);
set(y_axis,'Color','black');
plot(center_circle, 0, 'o','Color', 'red');
viscircles([center_circle,0],radius);
text(double(radius/15),double(radius/10),'O','fontsize',12)
text(double(2*radius),double(radius/7),'sigma','fontsize',12)
text(double(radius/10),double(1.5*radius),'tau','fontsize',12)
line([sigma_y sigma_x],[tau_xy -tau_xy], 'LineWidth', 2)
hold on
plot([sigma_x sigma_x],[-tau_xy 0],'--', 'LineWidth', 2)
hold on
plot([sigma_y sigma_y],[tau_xy 0],'--', 'LineWidth', 2)
plot(sigma_y,tau_xy, '+','Color', 'green', 'LineWidth', 2);
plot(sigma_x,-tau_xy, '+','Color', 'green', 'LineWidth', 2);
plot(sigma_max,0, '*','Color', 'yellow', 'LineWidth', 2);
plot(sigma_min,0, '*','Color', 'yellow', 'LineWidth', 2);
text(double(sigma_max),-double(radius/7),'sigma-max','fontsize',10)
text(double(sigma_min),-double(radius/7),'sigma-min','fontsize',10)
end

Updated: