Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

FEA Project Report - Alireza Khorshidi

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

School of Engineering

Brown University

FEA Project
Finite Element Analysis of a Timoshenko Beam

Instructor: Prof. Bower

Alireza Khorshidi

12/11/13
Introduction [1]: The theory of Timoshenko beam was developed early in the twentieth century

by the Ukrainian-born scientist Stephan Timoshenko. Unlike the Euler-Bernoulli beam, the

Timoshenko beam model accounts for shear deformation and rotational inertia effects.

Therefore, the Timoshenko beam can model thick (short) beams and sandwich composite beams.

The stiffness of the Timoshenko beam is lower than the Euler-Bernoulli beam, which results in

larger deflections under static loading and buckling. The limiting case of infinite shear modulus

will neglect the rotational inertia effects, and therefore will converge to the ordinary Euler-

Bernoulli beam.

Dimension Analysis: The variables in the problem are 𝑤, 𝜃, 𝑞, 𝐸, 𝐼, 𝐿, 𝐺, 𝐴 and there are two

independent variables. Therefore, I expect that the solution finally be a function in the following

form:

𝐼 𝐴 𝐸 𝑞
𝑤/𝐿 = 𝑓1 � 4 , 2 , , �, (1)
𝐿 𝐿 𝐺 𝐸𝐿

𝐼 𝐴 𝐸 𝑞 (2)
𝜃 = 𝑓2 � 4 , 2 , , �.
𝐿 𝐿 𝐺 𝐸𝐿

Theoretical Formulation [2]: In the Timoshenko theory, the displacement field is assumed to

be

𝑢𝑥 (𝑥, 𝑦) = −𝑦 𝜃(𝑥), 𝑢𝑦 (𝑥, 𝑦) = 𝑤(𝑥). (3)

Therefore, the strain components are

1
𝜕𝑢𝑥
𝜀𝑥𝑥 = = −𝑦 𝜃 ′ (𝑥), 𝜀𝑦𝑦 = 0, 𝛾𝑥𝑦 = −𝜃(𝑥) + 𝑤 ′ (𝑥), (4)
𝜕𝑥

and the stress components are (assuming plane stress):

𝜈
𝜎𝑥𝑥 = −𝐸𝑦𝜃 ′ (𝑥), 𝜎𝑦𝑦 = −𝐸 𝑦 𝜃 ′ (𝑥), 𝜎𝑥𝑦 = 𝜅𝐺 𝛾𝑥𝑦 = 𝜅𝐺 �𝑤 ′ (𝑥) − 𝜃(𝑥)�.
1 − 𝜈2

(5)

The potential energy of the beam (𝜋) is

1 1
𝜋 = � 𝜎𝑥𝑥 𝜀𝑥𝑥 𝑑𝑉 + � 𝜎𝑥𝑦 𝜀𝑥𝑦 𝑑𝑉 − � 𝑞(𝑥)𝑤(𝑥)𝑑𝑥 (6)
2 2

Substituting the expressions of strains and stresses into Eq. (6) yields

1 1
𝜋 = 2 ∫ 𝐸𝜀𝑥𝑥 2 𝑑𝑉 + 2 ∫ 𝜅𝐺𝛾𝑥𝑦 2 𝑑𝑉 − ∫ 𝑞(𝑥)𝑤(𝑥)𝑑𝑥 =

1 1
2
∫ ∫ 𝐸𝑦 2 (𝜃 ′ (𝑥))2 𝑑𝐴𝑑𝑥 + 2 ∫ ∫ 𝜅𝐺(−𝜃(𝑥) + 𝑤 ′ (𝑥))2 𝑑𝐴𝑑𝑥 − ∫ 𝑞(𝑥)𝑤(𝑥)𝑑𝑥.

𝐿 𝐿 𝐿
1 1
⇒ 𝜋 = 𝐸𝐼 � (𝜃 ′ (𝑥))2 𝑑𝑥 + 𝜅𝐺𝐴 � (−𝜃(𝑥) + 𝑤 ′ (𝑥))2 𝑑𝑥 − � 𝑞(𝑥)𝑤(𝑥)𝑑𝑥 (7)
2 0 2 0 0

And therefore, the variation in the potential energy is

𝐿 𝐿 𝐿
𝑑𝜃(𝑥) 𝑑𝛿𝜃 𝑑𝑤(𝑥) 𝑑𝛿𝑤
𝛿𝜋 = 𝐸𝐼 � 𝑑𝑥 + 𝜅𝐺𝐴 � �𝜃(𝑥) − � �𝛿𝜃 − � 𝑑𝑥 − � 𝑞(𝑥)𝛿𝑤𝑑𝑥
0 𝑑𝑥 𝑑𝑥 0 𝑑𝑥 𝑑𝑥 0 (8)
=0

2
Next the FEA interpolation for 𝑤(𝑥), 𝜃(𝑥), 𝛿𝑤, and 𝛿𝜃 should be introduced [3].

𝑤(𝑥) = � 𝑁 𝑎 𝑤 𝑎 , 𝜃(𝑥) = � 𝑁 𝑎 𝜃 𝑎 ,
𝑎 𝑎
(9)
𝛿𝑤 = � 𝑁 𝑏 𝛿𝑤 𝑏 , 𝛿𝜃 = � 𝑁 𝑏 𝛿𝜃 𝑏
𝑏 𝑏

Plugging the above interpolations into Eq. (8) yields:

𝐿 𝐿
𝑎
𝑑𝑁 𝑎 𝑑𝑁 𝑏
𝑏 𝑎 𝑎
𝑑𝑁 𝑎 𝑎 𝑏 𝑏
𝑑𝑁 𝑏
𝛿𝜋 = 𝐸𝐼𝜃 𝛿𝜃 � 𝑑𝑥 + 𝜅𝐺𝐴 � �𝑁 𝜃 − 𝑤 � �𝑁 𝛿𝜃 − 𝛿𝑤 𝑏 � 𝑑𝑥
0 𝑑𝑥 𝑑𝑥 0 𝑑𝑥 𝑑𝑥
(10)
𝐿
− 𝛿𝑤 𝑏 � 𝑞(𝑥)𝑁 𝑏 𝑑𝑥 = 0
0

which should hold for any 𝛿𝑤 𝑏 and 𝛿𝜃 𝑏 , and therefore

𝐿 𝐿 𝐿
𝑑𝑁 𝑎 𝑑𝑁 𝑏 𝑎 𝑎
𝑑𝑁 𝑏
�𝜅𝐺𝐴 � 𝑑𝑥� 𝑤 + �−𝜅𝐺𝐴 � 𝑁 𝑑𝑥� 𝜃 = � 𝑞(𝑥)𝑁 𝑏 𝑑𝑥.
𝑎 (11a)
0 𝑑𝑥 𝑑𝑥 0 𝑑𝑥 0

𝐿 𝐿 𝐿
𝑑𝑁 𝑎 𝑏 𝑑𝑁 𝑎 𝑑𝑁 𝑏
�−𝜅𝐺𝐴 � 𝑁 𝑑𝑥� 𝑤 𝑎 + �𝜅𝐺𝐴 � 𝑁 𝑎 𝑁 𝑏 𝑑𝑥 + � 𝐸𝐼 𝑑𝑥 � 𝜃 𝑎 = 0. (11b)
0 𝑑𝑥 0 0 𝑑𝑥 𝑑𝑥

The above integrals should first be calculated using Gaussian quadrature scheme, and then

assembling over all the elements yields

𝑲𝒖 = 𝑭, (12)

where 𝒖 = {𝑤 1 𝑤2 𝑤3 … 𝑤𝑁 𝜃1 𝜃2 … 𝜃 𝑁 }T .

Finally 𝒖 is computed as 𝒖 = 𝑲−𝟏 𝑭 [3].

Eqs. (11) has been implemented in a Matlab code. The code is self-explanatory, and is given in

the Appendix. The next section is devoted to the results.

3
Results:

The Timoshenko beam subjected to uniform load distribution with different boundary conditions

has been already solved analytically. The table below summarized the analytical results [4]; in

this table 𝜈 is the displacement, and the subscripts E and T correspond to Euler-Bernouli beam

and Timoshenko beam, respectively.

For 𝑞 = −1000, 𝐿 = 10, 𝑏 = 1, ℎ = 2, 𝐸 = 5 ∗ 106 , 𝜈 = 0.3, 𝜅 = 5/6, the simply-supported

Timoshenko beam is solved with FEA and analytically. The below table compare the results:

4
Table 2: Displacements of the simply supported Timoshenko beam

Node No Position Exact Results FEA Results


1 0 0.0000 0
2 1 -0.0137 -0.0134
3 2 -0.0257 -0.0253
4 3 -0.0350 -0.0345
5 4 -0.0409 -0.0403
6 5 -0.0430 -0.0423
7 6 -0.0409 -0.0403
8 7 -0.0350 -0.0345
9 8 -0.0257 -0.0253
10 9 -0.0137 -0.0134
11 10 0.0000 0

The next example is the cantilever beam with the same loading, material properties, and

geometries as the previous example. One hundred elements have been used for this example.

The deformed shape of the beam is shown below:

Fig 1: Displacements of the Cantilever Beam


0
-0.05 0 0.2 0.4 0.6 0.8 1
-0.1
-0.15
-0.2 Displacement of Cantilever
-0.25 Beam
-0.3
-0.35
-0.4
-0.45

The maximum displacement at the end of the beam is 0.3906. For the limiting case of 𝜅 → ∞,

the special case of Euler-Bernoulli beam is obtained. In this example, the maximum

5
displacement of the Euler-Bernoulli beam is calculated as 0.3750. And so, the shear deformation

is around 4% of the total displacement in the Timoshenko beam.

In the FEA code, first two Gaussian points were used for all integrations. However, the

convergence was relatively slow, and therefore, I finally ended up with two integration points for

the bending part of the stiffness matrix and one integration point for the shear part of the stiffness

matrix.

References:

[1] http://en.wikipedia.org/wiki/Timoshenko_beam_theory

[2] Theory of Elasticity, Stephen Timoshenko

[3] Class lecture notes

[4] S. Cutrona, S. Di Lorenzo, A. Pirrotta, Timoshenko vs Euler-Bernoulli beam: fractional

visco-elastic behavior.

6
Appendix: The Matlab code used for the above calculations is given below:

function Bending_of_Timoshenko_Beam_V3
%................................................................

% MATLAB Code for FE Analysis of Timoshenko Beam under Bending

clc;
clear all

% Material properties: E (modulus of elasticity), nu (Possion's ratio), G


% (shear modulus), kappa
E = 5000000; nu = 0.3; G = E/(2*(1+nu)); kappa = 1000000;

% Geometric properties: L (length of beam), h (thickness of beam)


% I: second moments of area
L = 10; h = 2;
I = h^3/12;
EI = E*I;

%Distributed load
q = -1000;

% Mesh
nelm = 100;
ncoords=linspace(0,L,nelm+1); % node coordinates

% Connectivity is the list of nodes for each element


for i=1:size(ncoords,2)-1
connect(i,1)=i;
connect(i,2)=i+1;
end
nnodes = nelm + 1; % nnodes is the total number of nodes
TotalDofs=2*nnodes; % TotalDofs: global number of degrees of freedom

% Computation of the system stiffness and residual matrices


[stiffness,resid]=...
GlobalStiffnessAndResidual(TotalDofs,nelm,connect,nnodes,q,EI,kappa,h,G,L);

% boundary conditions (simply-supported at both bords)


%fixedNodeW =[1 ; nnodes];
%fixedNodeTX=[];
% boundary conditions (clamped at both bords)
%fixedNodeW =[1 ; nnodes];
%fixedNodeTX=[1 ; nnodes];
% boundary conditions (cantilever)
fixedNodeW =[1];
fixedNodeTX=[1];
prescribedDof=[fixedNodeW; fixedNodeTX+nnodes];

7
% solution
%displacements=solution(TotalDofs,prescribedDof,stiffness,resid);

activeDof=setdiff((1:TotalDofs)', (prescribedDof));

U=stiffness(activeDof,activeDof)\resid(activeDof);
displacements=zeros(TotalDofs,1);
displacements(activeDof)=U;

% displacements
disp('Displacements and Rotations:')
%displacements=displacements1;
jj=1:TotalDofs; format
[jj' displacements]

end
%
%================= STIFFNESS MATRIX AND RESIDUAL VECTOR
================================
%
% This function computes the stiffness matrix and residual vector for
% Timoshenko beam
%
function [stiffness,resid]=...
GlobalStiffnessAndResidual(TotalDofs,nelm,connect,nnodes,q,EI,kappa,h,G,L)

stiffness=zeros(TotalDofs);
resid=zeros(TotalDofs,1);

% Computing bending contribution for the stiffness matrix

% Integration points and wieghts for bending


integrationpoints=[-0.577350269189626,0.577350269189626];
w=ones(1,2);
%
% Loop over elements
%
for e=1:nelm
indice=connect(e,:);
elmdof=[ indice indice+nnodes];
ndof=length(indice);
dett=L/(2*nelm);dxidx=1/dett;
%
% Loop over integration points
%
for intpt=1:size(w,2);
%
% Compute shape functions && derivatives wrt local coords
%
xi=integrationpoints(intpt);

8
N = shapefunctions(xi);
dNdxi = shapefunctionderivs(xi);
%
% Convert shape function derivatives:derivatives wrt global coords
%
dNdx=dNdxi*dxidx;
%
% Compute B matrix
%
B=zeros(2,2*ndof);
B(1,ndof+1:2*ndof) = dNdx(:);
%
% Compute K matrix and residual vector
%
stiffness(elmdof,elmdof) = stiffness(elmdof,elmdof) + transpose(B)*B*w(intpt)*dett*EI;
resid(indice) = resid(indice) + N*q*dett*w(intpt);
end
end
%
% Shear contribution for stiffness matrix
%
% Integration points and wieghts for shear
integrationpoints=[0];
w=[2];
%
% Loop over elements
%
for e=1:nelm
indice=connect(e,:);
elmdof=[ indice indice+nnodes];
ndof=length(indice);
%
% Loop over the integration points
%
for intpt=1:size(w,2) ;
%
% Compute shape functions && derivatives wrt local coords
%
xi=integrationpoints(intpt);
N = shapefunctions(xi);
dNdxi = shapefunctionderivs(xi);
%
% Convert shape function derivatives:derivatives wrt global coords
%
dNdx=dNdxi*dxidx;
%
% Compute B matrix
%

9
B=zeros(2,2*ndof);
B(2,1:ndof) = dNdx(:);
B(2,ndof+1:2*ndof) =- N;
%
% Compute K matrix
%
stiffness(elmdof,elmdof) = stiffness(elmdof,elmdof) + kappa*h*G*transpose(B)*B*w(intpt)*dett;
end

end

end
%
%================= SHAPE FUNCTIONS ==================================
%
% Calculates shape functions for various element types
%
function N = shapefunctions(xi)

N = zeros(2,1);
%
% 1D elements
%
N(1) = 0.5*(1.-xi(1));
N(2) = 0.5*(1.+xi(1));
end
%
%================= SHAPE FUNCTION DERIVATIVES ======================
%
function dNdxi = shapefunctionderivs(xi)

dNdxi = zeros(1,2);
%
% 1D elements
%
dNdxi(1) = -0.5;
dNdxi(2) = +0.5;
end
%
%

10

You might also like