This tutorial is related to analyzing the deflection and stress distribution of a cantilever beam. A fixed-free cantilever beam, (Young’s Modulus 𝐸, 𝑏×ℎ cross-section, length 𝐿) is supported at its left-hand end. A Force 𝐹 is applied at a distance 𝑎 from the left-hand end. We will first calculate the shape of the deflected beam and plot the result of deflection, shear and bending moment diagram. Next, we will generate a 2D contour map of the stress distribution along the beam.
Length of the beam, L = 1000 mm
Width of the beam, b = 50 mm
Height of the beam, h = 155 mm
Distance of the force location, a = 800 mm
Modulus of elasticity, E = 200 Gpa
Applied force, F = 25 KN
The shape of the deflected beam is calculated as [2-4],
The moment of inertia is calculated as,
I = 1/12 bh^3
The following Matlab codes are used to calculate the beam deflection and plot the results.
close all
clear
clc
% Parameters from the question
E = 200*10^9;
a = 0.8;
b = 0.05;
h = 0.155;
I = (1/12)*(b*h^3);
f = 25000;
x = 0:0.01:0.8;
delta_1 = - (f*x.^2)./(6.*E.*I).*(3.*a - x); % for 0 <= x <= a
delta_2 = - (f*a.^2)./(6.*E.*I).*(3.*x - a); % for a <= x <= L
figure(1)
plot(x, delta_1)
xlabel('Length (m)')
ylabel('Beam Deflection (m)')
title('Cantilever Beam Deflection for 0 <= x <= a')
figure(2)
plot(x, delta_2)
xlabel('Length (m)')
ylabel('Beam Deflection (m)')
title('Cantilever Beam Deflection for a <= x <= L')
The shear force and bending moment diagrams for the fixed free cantilever beam is shown below:
The Matlab codes for the calculation of shear and bending moments as well as plotting these diagrams are provided below.
MATLAB Codes
close all
clear
clc
L = 1; % Unit in meters
n = 2; % Number of point loads on the beam
for i = 1:n
fprintf('Enter the point load and distance where load acts for %d node\n',i)
Wc(i)=input('Enter the load in Newton\n');
Lc(i) = input('Enter the distance of the point load from the fixed end\n');
if Lc(i)>L || Lc(i)<0
error('Please check the Length')
end
end
NL = zeros(1,n);
NW = zeros(1,n);
for i=1:n
[a,b]=max(Lc);
NL(i)=a;
NW(i)=Wc(b);
Lc(b)=[];
Wc(b)=[];
end
NL(n+1) = 0;
% Shear force diagram
figure(1)
Ra = sum(NW);
if NL(1)==L
X1 = L;
F1 = NW(1);
elseif i==1
X1 = [L NL(1) NL(1) 0];
F1 = [0 0 Ra Ra];
else
X1 = [L NL(1)];
F1 = [0 0];
end
S=[]; X=[]; F=[];
if n>=2
for i=2:n+1
x = [NL(i-1) NL(i)];
S= [S NW(i-1)];
f = sum(S);
X= [X x];
F = [F f f];
end
end
subplot(2,1,1)
plot([X1 X],[F1 F],'b')
xlim([0 L]);
hline = refline(0,0);
hline.Color = 'k';
legend('Shear Force','Reference')
title('Shear Force Diagram of Cantilever Beam')
xlabel('Length of the Beam in Meter')
ylabel('Shear Force in Newton')
hold on
grid on
fprintf('Reaction Force =%d N\n',Ra)
% Bending moment diagram
subplot(2,1,2)
if NL(1)<L
X1=NL(1): L;
M1 = zeros(size(X1));
plot(X1,M1,'r')
hold on
grid on
end
Xm=[];
Mm=[];
for i=1:n
X = NL(i+1):0.1:NL(i);
M = -(NW(1,1:i)*((NL(1,1:i))'-newX(X,i))) ;
Xm =[X Xm];
Mm =[M Mm];
end
plot(Xm,Mm,'r')
xlim([0 L]);
hline = refline(0,0);
hline.Color = 'k';
legend('Bending Moment','Reference')
title('Bending Moment Diagram of Cantilever Beam')
xlabel('Length of the Beam in Meter')
ylabel('Bending Moment in Newton-Meter')
hold off
grid on
function x = newX(X,i)
[~,d] = size(X);
x = zeros(i,d);
for j=1:i
x(j,1:d) = X;
end
end
The bending stress in the beam is calculated as [2-4],
Where, δ is calculated as,
In the following, the stress distributions for the cantilever beam are shown. The Matlab codes are appended after the results.
MATLAB CODES
close all
clear
clc
% Parameters from the question
L = 1;
E = 200*10^9;
a = 0.8;
b = 0.05;
h = 0.155;
I = (1/12)*(b*h^3);
f = 25000;
M1 = f*a;
M2 = f*(L-a);
x = 0:0.01:0.8;
y = 0:0.01:0.8;
delta_1 = - (f*x.^2)./(6.*E.*I).*(3.*a - x); % for 0 <= x <= a
delta_2 = - (f*a.^2)./(6.*E.*I).*(3.*x - a); % for a <= x <= L
sigma_1 = (M1.*delta_1)./I;
x = rand(100,1)*4-2;
y = rand(100,1)*4-2;
z = (M1.*((f*x.^2)./(6.*E.*I).*(3.*a - x)))./I;
z1 = (M2.*((f*a.^2)./(6.*E.*I).*(3.*x - a)))./I;
F = TriScatteredInterp(x,y,z);
ti = -1:.25:1;
[qx,qy] = meshgrid(ti,ti);
qz = F(qx,qy);
figure(1)
scatter3(x,y,z)
title('Mesh Plot for 0 <= x <= a')
hold on
mesh(qx,qy,qz)
figure(2)
contour(qx,qy,qz)
title('Contour Plot for 0 <= x <= a')
F = TriScatteredInterp(x,y,z1);
ti = -1:0.25:1;
[qx,qy] = meshgrid(ti,ti);
qz = F(qx,qy);
figure(3)
scatter3(x,y,z)
title('Mesh Plot for a <= x <= L')
hold on
mesh(qx,qy,qz)
figure(4)
contour(qx,qy,qz)
title('Contour Plot for a <= x <= L')
REFERENCES
[1] MATLAB 2020b Academic Version from MathWorks (https://www.mathworks.com/)
[2] Budynas-Nisbett, "Shigley's Mechanical Engineering Design," 8th Ed.
[3] Gere, James M., "Mechanics of Materials," 6th Ed.
[4] Lindeburg, Michael R., "Mechanical Engineering Reference Manual for the PE Exam," 13th Ed.
[5] Solid Mechanics Part I: An Introduction to Solid Mechanics by Piaras Kelly
#FixedFreeBeam #CantileverBeam #StressDistribution #ShearForce #BendingMoment #Matlab