Section 5.2 of Chapter 5: 2D Beam Element, Linear Case
Beam Finite Element — Timoshenko Beam Model
A two-node planar beam element with axial deformation, bending deformation, and transverse shear deformation.
2D beamTimoshenkoLinear analysisMATLAB
01
Model and kinematics
A straight, prismatic two-node beam element of constant cross-section is analysed in the global xy plane. Small strains, small displacements, and linear elastic material behaviour are assumed [1].
The local xˉ axis coincides with the neutral axis of the element, while yˉ is a principal axis of the cross-section. The angle θ defines the orientation of the local frame with respect to the global frame.
Figure 1. Global and local coordinate systems and positive element displacement components.Figure 2. Timoshenko kinematic quantities at a cross-section: normal rotation φ, cross-section rotation ψ, and shear angle β.
Each node has the local degrees of freedom uˉ, vˉ, and ψ. The global nodal displacement components are u, v, and ψ. The local element vector is:
uˉel=⎩⎨⎧uˉ1vˉ1ψ1uˉ2vˉ2ψ2⎭⎬⎫
The rotation angle of the normal, the rotation angle of the cross-section, and the shear angle have the following expressions:
φ=dxˉdvˉ,ψ=φ−β,β=GA0T
The rotation of the cross-section is related to the bending moment by:
dxˉdψ=EIM
The nodal angular degree of freedom is ψ, the rotation of the cross-section, not φ, the rotation of the normal.
The Euler–Bernoulli model is recovered when β=0, so that φ=ψ.
02
Generalized strains and stresses
For the Timoshenko beam, the generalized strain vector and its work-conjugate generalized stress vector are:
Here E and G are Young's modulus and the shear modulus; A, A0, and I are the cross-sectional area, effective shear area, and second moment of area. The generalized strains are the axial strain ε0, shear angle β, and curvature κ. Their work-conjugate generalized stresses are the axial force N, shear force T, and bending moment M.
For the nodal-load case used below, the shear force and therefore β are constant within an element. Consequently,
dxˉdβ=0,dxˉdψ=dxˉdφ,M=EIdxˉdφ
T=−dxˉdM=−EIdxˉ2d2φ=−EIdxˉ3d3vˉ
Combining the shear constitutive relation with equilibrium gives:
β=GA0T=−GA0EIdxˉ3d3vˉ
03
Interpolation
Let ξ=xˉ/L, with 0≤ξ≤1. Linear interpolation is used for the axial displacement and cubic interpolation for the transverse displacement:
The interpolation uses the normal rotations φ1=ψ1+β and φ2=ψ2+β. Applying the third derivative to the cubic polynomial and using the shear relation gives:
This energy-based form is particularly convenient in nonlinear finite element formulations, where the residual vector and tangent stiffness are obtained by successive differentiation of the same potential.
06
Numerical examples
The numerical data for both examples are defined in gen.m. For a cantilever with L=100mm, E=2×105MPa, G=E/2.5, width 5mm, and thickness 2mm, the loads F=10N and H=35N give vmax=5mm in the Euler–Bernoulli model and vmax=5.0015mm in the Timoshenko model. Here F is the vertical force applied at the free end. The two values are practically identical because shear deformation is negligible for this slender beam.
With thickness 20mm and F=104N, the corresponding values are 5mm and 5.15mm. The difference, about three percent, is the contribution of transverse shear deformation.
07
MATLAB programs
The package contains five commented files. gen.m defines the model; deriv.m evaluates the generalized strain rows; stiff.m uses two-point Gauss integration and assembles the structure; stress.m recovers N, T, and M; and main.m runs the analysis and plots the results.
stiff.mTwo-point Gauss integration
%*** stiff.m ***
for ig = 1:2
xc = 1/2*(1 + xg(ig));
deriv
kel = kel + L/2*(ea*ep1*ep1' + ga*be1*be1' + ei*ka1*ka1');
end
K(ip,ip) = K(ip,ip) + R'*kel*R;
MATLAB compatibility
Tested in MATLAB R2024a. The code uses standard MATLAB syntax and is expected to be compatible with newer MATLAB versions. No additional toolbox is required.