Beam Finite Element — Nonlinear Double-Clamped Beam
A two-node cubic Euler–Bernoulli beam formulation for linear elastic material, small strains, and moderately large displacements, solved by the Newton–Raphson method.
Euler–Bernoulli beamGeometric nonlinearityNewton–RaphsonMATLAB and ANSYS
01
Model and constitutive relations
A double-clamped beam is loaded at its midpoint by the force F[2].
MaterialLinear elastic
StrainSmall
DisplacementModerately large
Figure 1. Double-clamped beam, geometry, load, and displacement notation.
Points A and B are completely fixed. Because the axial displacements of both ends are restrained, an axial force develops as the beam deflects.
⎩⎨⎧uA=0vA=0φA=0
⎩⎨⎧uB=0vB=0φB=0
The displacement-dependent axial strain makes the problem nonlinear. For the Euler–Bernoulli beam model, the generalized strain and work-conjugate generalized stress vectors are:
ε={ε0κ},σ={NM}
In this planar analysis, T and Ty denote the same transverse force component, while M and Mz denote the same bending moment component.
Hooke's law is:
σ=Dε,D=[EA00EI]
or, component by component,
N=EAε0,M=EIκ
ε0
axial strain of the neutral axis
κ
curvature of the neutral axis
N
axial force
M
bending moment
E
Young's modulus
A,I
cross-sectional area and second moment of area
02
Cubic beam finite element
Figure 2. Two-node cubic beam finite element and its six nodal degrees of freedom.
With the normalized coordinate ξ=x/L, the axial displacement is interpolated linearly and the transverse displacement cubically. These are the standard Euler–Bernoulli interpolation functions used in Section 5.1 [1].
Element vectors and matrices are assembled in the standard way:
Ψ=el∑fel−F,Kt=el∑kel=el∑∂uel∂fel
The iterative process stops when the displacement-correction norm is smaller than the prescribed tolerance.
06
Example 1 — double-clamped beam
The beam has a rectangular cross-section w×t=5mm×1mm, span d=100mm, Young's modulus E=2×105MPa, and midpoint force F=100N. The MATLAB result agrees with the ANSYS large-deformation model. At the final load step,
vC=−1.86555mm,d∣vC∣=0.0186555,FN=8.01210
Although ∣vC∣/d<0.02, the difference from the linear response is clearly visible. The axial force induced by the two axial restraints is constant along the beam.
Figure 4. Force versus midpoint displacement. The MATLAB and ANSYS curves coincide; the linear response is also shown.Figure 5. Axial force versus midpoint displacement. The axial force is constant along the beam at every load step.
Figure 6. Shear-force diagram for F=100N.Figure 7. Bending-moment diagram for F=100N.Figure 8. Constant axial-force ratio along the beam: N/F=8.012.
07
Example 2 — cantilever
Consider a cantilever with w×t=5mm×1mm, L=100mm, E=2×105MPa, and a transverse free-end force F=4N. The normalized maximum displacement is:
linear model:presented method, 40 elements:exact elastica:Lvmax=3EIFL2=0.160Lvmax=0.1424Lvmax=0.1183
The error of the moderately large-displacement approximation relative to the exact elastica result is about 20%. The approximation is suitable when the slope φ is less than approximately 10∘≈0.175rad, for which
φ2=(dxdv)2≈0.03
This term is then small compared with unity [2]. In the present example, φmax≈0.21rad≈12∘.
Figure 9. Deformed cantilever: moderately large-displacement approximation and exact elastica.Figure 10. Cantilever load, displacement, and rotation notation.
08
MATLAB and ANSYS files
The MATLAB package contains the complete nonlinear analysis, result recovery, diagram generation, and a README. The code follows the element equations above: deriv.m evaluates ε0, κ, and their derivatives; stiff.m integrates and assembles fel and kel; and main.m performs the load-step and Newton–Raphson loops.
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.
The ANSYS macro uses symmetry: it models half of the beam, imposes the midpoint symmetry conditions, and applies F/2=50N to represent the 100N force on the complete beam. The macro was inspected against the model definition; ANSYS was not available in the local execution environment.