Derivation of The Beam Sti Ness Matrix
Derivation of The Beam Sti Ness Matrix
home
PDF (letter size)
1 Introduction
2 Direct method
2.1 Examples using the direct beam stiffness matrix
2.1.1 Example 1
2.1.2 Example 2
2.1.3 Example 3
3 Finite elements (adding more elements)
3.1 Example 3 redone with 2 elements
4 Generating shear and bending moments diagrams
5 Finding the stiffness matrix using methods other than direct method
5.1 Virtual work method for derivation of the stiffness matrix
5.2 Potential energy (minimize a functional) method to derive the stiffness matrix
6 References
Chapter 1
Introduction
A short review for solving the beam problem in 2D is given. The deflection curve, bending moment and shear force diagrams are calculated for a beam subject to
bending moment and shear force using direct stiffness method and then using finite elements method by adding more elements. The problem is solved first by finding
the stiffness matrix using the direct method and then using the virtual work method.
Chapter 2
Direct method
2.1 Examples using the direct beam stiffness matrix
2.1.1 Example 1
2.1.2 Example 2
2.1.3 Example 3
Starting with only one element beam which is subject to bending and shear forces. There are 4 nodal degrees of freedom. Rotation at the left and right nodes of the
beam and transverse displacements at the left and right nodes. The following diagram shows the sign convention used for external forces. Moments are always
positive when anti-clockwise direction and vertical forces are positive when in the positive y direction.
The two nodes are numbered 1 and 2 from left to right. M 1 is the moment at the left node (node 1), M 2 is the moment at the right node (node 2). V 1 is the vertical
force at the left node and V 2 is the vertical force at the right node.
The above diagram shows the signs used for the applied forces direction when acting in the positive sense. Since this is a one dimensional problem, the displacement
field (the unknown being solved for) will be a function of one independent variable which is the x coordinate. The displacement field in the vertical direction is
called v (x). This is the vertical displacement of point x on the beam from the original x − axis. The following diagram shows the notation used for the
coordinates.
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 1/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
dv(x)
Angular displacement at distance x on the beam is found using θ (x) = dx . At the left node, the degrees of freedom or the displacements, are called v 1 , θ 1
and at the right node they are called v 2 , θ 2 . At an arbitrary location x in the beam, the vertical displacement is v (x) and the rotation at that location is θ (x).
In the direct method of finding the stiffness matrix, the forces at the ends of the beam are found directly by the use of beam theory. In beam theory the signs are
different from what is given in the first diagram above. Therefore, the moment and shear forces obtained using beam theory (M B and V B in the diagram below) will
have different signs when compared to the external forces. The signs are then adjusted to reflect the convention as shown in the diagram above using M and V .
For an example, the external moment M 1 is opposite in sign to M B1 and the reaction V 2 is opposite to V B2 . To illustrate this more, a diagram with both sign
conventions is given below.
The goal now is to obtain expressions for external loads M i and R i in the above diagram as function of the displacements at the nodes
{d} = {v 1 , θ 1 , v 2 , θ 2 } .
T
T
In other words, the goal is to obtain an expression of the form {p} = [K] {d} where [K] is the stiffness matrix where {p} = {V 1 , M 1 , R 2 , M 2 } is the
nodal forces or load vector, and {d} is the nodal displacement vector.
In this case [K] will be a 4 × 4 matrix and {p} is a 4 × 1 vector and {d} is a 4 × 1 vector.
dM B1
Starting with V 1 . It is in the same direction as the shear force V B1 . Since V B1 =
dx
then
dM B1
V1 =
dx
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 2/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
Since from beam theory M B1 = −σ (x)
I
y
, the above becomes
I dσ (x)
V1 = −
y dx
−y
But σ (x) = Eε (x) and ε (x) =
ρ
where ρ is radius of curvature, therefore the above becomes
d 1
V 1 = EI ( )
dx ρ
2
d u
( ) 2
1 dx 2 du 1 d u
Since ρ
= 3/2
and for a small angle of deflection dx
≪ 1 then ρ
= (
dx
2
) , and the above now becomes
2
du
(1+( ) )
dx
3
d u (x)
V 1 = EI
3
dx
Before continuing, the following diagram illustrates the above derivation. This comes from beam theory.
Now M 1 is obtained. M 1 is in the opposite sense of the bending moment M B1 hence a negative sign is added giving M 1 = −M B1 . But M B1 = −σ (x)
I
therefore
I
M 1 = σ (x)
y
I
= Eε (x)
y
−y I
= E( )
ρ y
1
= −EI ( )
ρ
2
d w
= −EI
2
dx
V2 is now found. It is in the opposite sense of the shear force V B2 , hence a negative sign is added giving
V 2 = −V B2
dM B2
= −
dx
I
Since M B2 = −σ (x)
y
, the above becomes
I dσ (x)
V2 =
y dx
−y
But σ (x) = Eε (x) and ε (x) =
ρ
where ρ is radius of curvature. The above becomes
d 1
V 2 = −EI ( )
dx ρ
2
d w
( ) 2
2
1 dw 1 d u
But and for small angle of deflection hence then the above becomes
dx
= 3/2
≪ 1 = ( 2
)
ρ 2 dx ρ dx
dw
(1+( ) )
dx
3
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 3/23
11/18/24, 4:40 PM
And
v (x)
{d} = ⎨
⎩
v2
⎧v 1 ⎫
θ2
θ1
⎬ = ⎨
⎭ ⎩
2
⎧
{p} = ⎨
v 2 = v (x)|
⎧a 0 ⎫
⎩
a1
a2
a3
⎬ =
3
⎝
=
−
0
2
⎪∣
θ 2 = θ (x)|
a0 + a1 L + a2 L + a3 L
V 2 = −EI
M 2 = −σ (x)
⎧ V1 ⎫
⎩
M1
M2
x=L
a 1 + 2a 2 L + 3a 3 L
2
⎛
⎝
3
2
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
2
V2
2
a0
a1
⎬ =
2
⎝
θ1 +
1
0
Derivation Of The Beam Stiffness Matrix
= −Eε (x)
= −E (
= EI (
= EI
⎬ = ⎨
v (x) = a 0 + a 1 x + a 2 x
θ (x) =
dv (x)
dx
x=L
v2 −
−
0
L
L
1
2
2
⎩
2
d u
dx
x=0
= a0 + a1 L + a2 L
θ2 −
θ2 +
ρ
The following is a summary of what was found so far. Notice that the above expressions are evaluates at x
⎧ EI
−EI
3
d u (x)
= −σ (x)
−y
−EI
v1
θ1
dx
EI
L
3
, the field displacement function from Eq. (A) can now be written as a function of the nodal displacements
I
= a 1 + 2a 2 x + 3a 3 x
= a 1 + 2a 2 L + 3a 3 L
L
2
L
3
2
3
d u(x)
d u
dx
3
dx
d u
dx
3
d u(x)
dx
+ a3 x
Polynomial of degree 3 is used since there are 4 degrees of freedom, and a minimum of 4 free parameters is needed. Hence
And
v 1 = v (x)|
θ 1 = θ (x)|
x=0
= a0
= a1
v1 −
v1 −
I
2
2
−
, therefore
L
x=0
x=L
1
x=0
2
2
1
x=L
+ a3 L
⎞ ⎧v 1 ⎫
L
⎨
⎩
θ1
v2
θ2
θ1
3
⎬
⎭
⎫
v2
= 0
The RHS of the above is now expressed as function of the nodal displacements v 1 , θ 1 , v 2 , θ 2 . To do that, the field displacement v (x) which is the transverse
displacement of the beam is assumed to be a polynomial in x of degree 3 or
2 3
1
2
2L
⎠
3
2
and at x
3L
0
2⎠
= L
⎞⎧
⎩
. Accordingly to obtain the nodal end
a0 ⎫
a1
a2
a3
⎬
⎭
(1)
(A)
(2)
(3)
(4)
(5)
4/23
11/18/24, 4:40 PM
Or in matrix form
v (x) = a 0 + a 1 x + a 2 x
v (x) = (1 − 3
= (
= v 1 + xθ 1 − 2
L
1
3
(L
x
3
2
2
+ 2
− 3Lx
x
2
3
3
L
Where N i are called the shape functions. The shape functions are
And
Also N 3 (0)
and
Hence
= 0
= 1
and N 3 (L)
and N 1 (L)
= 1 and
= 0
3
2
+ 2x )
v2 −
θ1 +
x − 2
⎪∣⎜ ⎟
+ a3 x
v (x) = (N 1 (x)
v (x) = [N ] {d}
dN 2 (x)
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
dx
x
L
L
1
3
N 1 (x)
N 2 (x)
N 3 (x)
N4
as expected. Also
dN 2 (x)
dx
dN 4 (x)
dx
dN 4 (x)
dx
{p} = ⎨
1
2
θ2 −
θ1 −
(x)
⎠
x=L
x
x=0
x=0
x=L
3
(L x − 2Lx
⎞
3
=
2
=
v1 −
θ2 +
3
Derivation Of The Beam Stiffness Matrix
N 2 (x)
L
⎛
L
2
1
− 2
(L
(L
2
3
The shape functions have thus been verified. The stiffness matrix is now found by substituting Eq. (5A) into Eq. (1), repeated below
⎧ V1 ⎫
⎩
M1
V2
M2
⎬ =
⎭
2
(L
2
1
⎛ EI
⎝
3
+ x )
1
θ 1 )x
2
x
L
θ2 − 3
N 3 (x)
2
(L x − 2Lx
(3Lx
(−Lx
− 3Lx
− 4Lx + 3x )
− 4Lx + 3x )
(−2Lx + 3x )
(−2Lx + 3x )
−EI
−EI
EI
2
3
d v(x)
dx
d v
dx
+ (
d v
dx
3
d v(x)
dx
2
x
2
x
− 2x )
2
(3Lx
+ x )
3
2
x=L
2
L
1
+
2
v1 + 2
θ1 +
N 4 (x)) ⎨
+ 2x )
2
+ x )
2
3
x=0
x=0
x=L
x=0
x=L
3
x=0
x=L
⎠
3
2
x
)⎨
⎠
3
⎧v 1 ⎫
− 2x )
⎧v 1 ⎫
= 1
= 0
= 0
= 1
1
θ1
v2
θ2
θ1
v2
θ2
2
v1 + 3
θ2 +
⎭
x
L
L
2
2
(−Lx
3
v1 −
v2 − 2
2
L
L
2
3
3
+ x )) ⎨
v 2 )x
v2
θ1
v2
⎬
⎩
θ2
3
⎧v 1 ⎫
(5A)
5/23
11/18/24, 4:40 PM
But
And
And
And
And
And
And
⎪⎜ ⎟
⎧ V1 ⎫
⎩
M1
V2
M2
dx
dx
dx
dx
⎬ =
dx
dx
N 1 (x) =
N 2 (x) =
dx
dx
3
2
3
N 1 (x) =
N 2 (x) =
2
⎛ EI
⎝
−EI
−EI
EI
N 3 (x) =
N 4 (x) =
N 3 (x) =
N 4 (x) =
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
Derivation Of The Beam Stiffness Matrix
d
dx
=
dx
dx
dx
12
=
1
1
3
2
3
2
2
3
2
L
−12
L
(N 1 v 1 + N 2 θ 1 + N 3 v 2 + N 4 θ 2 ) ⎞
1
(N 1 v 1 + N 2 θ 1 + N 3 v 2 + N 4 θ 2 )
(N 1 v 1 + N 2 θ 1 + N 3 v 2 + N 4 θ 2 )
(N 1 v 1 + N 2 θ 1 + N 3 v 2 + N 4 θ 2 )
dx
dx
dx
dx
d
d
3
2
3
dx
(12x − 6L)
(6x − 4L)
L
1
L
dx
(L
(L x − 2Lx
dx
(L
(6L − 12x)
2
d
dx
3
(6x − 2L)
3
(L x − 2Lx
2
3
(3Lx
(−Lx
(3Lx
(−Lx
− 3Lx
− 3Lx
2
2
+ x )
2
+ 2x )
− 2x )
− 2x )
+ x )
+ x )
3
3
+ 2x )
2
+ x )
3
3
3
3
⎠
(6)
6/23
11/18/24, 4:40 PM
{p} = ⎨
⎛
M1
M2
⎝ EI (
EI
L
V2
−EI (
⎧ V1 ⎫
⎩
M1
V2
M2
⎭
⎬ =
⎛
⎝
⎬ =
EI
L
3
L
1
3
1
−(12x − 6L)
=
3
⎛ EI
−EI
−EI
⎝ EI
(12x − 6L)v 1 +
(12x − 6L)
EI
L
12
−12
3
⎛
⎝
d
dx
(12x − 6L)v 1 +
dx
dx
dx
x=L
3
(12L − 6L)
12
6L
−12
6L
3
3
2
x=0
2
3
(N 1 v 1 + N 2 θ 1 + N 3 v 2 + N 4 θ 2 )
12
6L
−
EI (
−EI (
12
−6L
[K] =
3
6L
4L
2L
L
L
2
2
1
−L(6x − 4L)
EI
L
12
L(6x − 4L)
= L
3
3
v1 +
−6L
v1 +
(6x − 4L)θ 1 +
6L
and x
⎝
Derivation Of The Beam Stiffness Matrix
(N 1 v 1 + N 2 θ 1 + N 3 v 2 + N 4 θ 2 )
(N 1 v 1 + N 2 θ 1 + N 3 v 2 + N 4 θ 2 )
(N 1 v 1 + N 2 θ 1 + N 3 v 2 + N 4 θ 2 )
(6x − 4L)θ 1 +
12
4L
L (6L − 4L)
−12
−6L
−6L
12
6L
−12
6L
L
= 0
6L
6
L
6
2
x=L
2L
−6L
4L
θ1 −
x=0
6L
12
θ1 −
as
6L
4L
−6L
2L
⎞⎧
2
12
12
Knowing the stiffness matrix means knowing the nodal displacements {d} when given the forces at the nodes. The power of the finite element method now comes
3. v (x) = [N ] {d} is calculated by assuming v (x) is a polynomial. This gives the displacement v (x) to use to evaluate the transverse displacement
anywhere on the beam and not just at the end nodes.
4. θ (x) =
dv(x)
dx
=
d
dx
[N ] {d} is obtained to evaluate the rotation of the beam any where and not just at the end nodes.
5. The strain ϵ (x) = −y [B] {d} is found, where [B] is the gradient matrix [B]
6. The stress from σ = Eϵ = −Ey [B] {d} is found.
7. The bending moment diagram from M (x) = EI [B] {d} is found.
8. The shear force diagram from V (x) =
dx
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
M (x) is found.
=
3
−(6L − 12x)
v2 +
(6L − 12x)
−6L
−6L
after all the nodal displacements v 1 , θ 1 , v 2 , θ 2 are calculated by solving {p} = [K] {d}. This is because the polynomial v (x) is now completely determined
and hence v (x) and θ (x) can now be evaluated for any x along the beam and not just at its end nodes as the case with finite difference method. Eq. 5A above can
now be used to find the displacement v (x) and θ (x) everywhere.
v (x) = [N ] {d}
(6L − 12x)v 2 +
−12
−6L
(6L − 12L)
v1 ⎫
θ1
v2
θ2
⎬
−12
12
dx
−12
2
12
12
[N ]
x=0
x=L
(6L − 12x)v 2 +
3
x=0
x=L
L
2
−6L
θ2 )
6L
2L
4L
N 4 (x)) ⎨
.
θ1
v2
⎞
θ2 )
x=0
x=L
⎬
x=0
⎠
x=L
⎧v 1 ⎫
⎩
θ2
⎭
L
2L
2
L (6L − 2L)
1
2
L
6
(6x − 2L)θ 2 )
(6x − 2L)θ 2 )
−L(6x − 2L)
L(6x − 2L)
6L
2
6L
−6L
⎠
v
x=0
x=L
⎞ ⎧ 1⎫
⎩
θ1
v2
⎬
θ2
x=0
x=L
⎞⎧
⎭
⎨
⎩
⎞
v1 ⎫
θ1
v2
θ2
⎬
⎭
(7)
7/23
11/18/24, 4:40 PM
2.1.1 Example 1
P=400;
L=144;
E=30*10^6;
I=57.1;
A=(E*I/L^3)*[12
6*L
-12
6*L
];
4*L^2
-6*L
2*L^2
load=[P;P*L;-P;0];
which gives
x =
-0.2324
-0.0024
6*L
-6*L
12
-6*L
x=A(3:end,3:end)\load(3:end)
= 0
v2
θ2
} . Let E
⎪⎜ ⎟
A one span beam, a cantilever beam of length L, with point load P at the free end
⎧ R ⎫
⎩
−P
M1
⎬ =
= 30 × 10
-6*L;
-12
2*L^2;
4*L^2
⎭
6
{
0
EI
} =
6*L;
L
3
EI
3
(
⎛
psi (steel), I
−6L
Derivation Of The Beam Stiffness Matrix
The beam stiffness matrix is now used to solve few beam problems. Starting with simple one span beam
The first step is to make the free body diagram and show all moments and forces at the nodes
is the given force. M 2 since there is no external moment at the right end. Hence {p}
12
6L
−12
6L
= 57 in
4L
6L
−6L
2L
Therefore the vertical displacement at the right end is v 2 = 0.2324 inches (downwards) and θ 2
found, the field displacement function is completely determined.
{d} = ⎨
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
⎧v 1 ⎫
⎩
θ1
v2
θ2
⎬ = ⎨
⎭ ⎩
2
,L
−0.2324
−0.0024
⎬
⎭
−12
−6L
12
−6L
−6L
4L
2
= 144 in
0
= [K] {d}
){
6L
2L
−6L
4L
θ2
2
, and P
= −0.0024
⎫
⎠
v
for this system is
⎞ ⎧ 1⎫
⎩
θ1
v2
θ2
⎬
Now is an important step. The known end displacements from boundary conditions is substituted into {d}, and the corresponding row and columns from the above
system of equations are removed1. Boundary conditions indicates that there is no rotation on the left end (since fixed). Hence v 1 = 0 and θ 1 = 0. Hence the only
unknowns are v 2 and θ 2 . Therefore the first and the second rows and columns are removed, giving
−P 12 v2
}
8/23
11/18/24, 4:40 PM
From Eq. 5A
But L
v (x) = [N ] {d}
= 144
To verify, let x
= (N 1 (x)
= (
= 144
1
0.002 4
L
3
(L
in the above
3
(Lx
− 3Lx
2
2
3
+ 2x )
L
L
0.232 4
3
1
2
N 4 (x)) ⎨
(2x
2
v (x) = 3.992 0 × 10
v (x = 144) = 3.992 0 × 10
⎩
(L x − 2Lx
−0.2324
−0.0024
3
⎬
⎪⎪
⎧
− 3Lx )
= −0.232 40
Derivation Of The Beam Stiffness Matrix
2
0
+ x )
Now instead of removing rows/columns for the known boundary conditions, a 1 is put on the diagonal. Starting again with
⎩
−P
0
M1
⎬ =
= 30 × 10
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
0
−P
0
⎬ =
⎭
0
EI
L
3
6
0
0
⎫
EI
psi, I
3
⎛
⎝
12
6L
−12
6L
= 57 in
1
4
−8
0
−8
6L
4L
−6L
2L
,L
3
x
⎫
144
−6L
= 144
0
12
L
−12
−6L
−6L
1
3
12
(3Lx
− 1.695 6 × 10
3
− 1.695 6 × 10
−6L
4L
in, P
2L
−6L
4L
2
2
6L
2 ⎠
⎞⎧
= 400
⎨
⎩
− 2x )
2
θ1
v2
θ2
0⎫
⎩
⎬
v2
θ2
−5
⎭
3
lb
v
x
⎞ ⎧ 1⎫
−5
2
L
1
144
2
2
(−Lx
2 3
⎧
+ x )) ⎨
⎩
0
−0.2324
−0.0024
⎫
9/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
E=30*10^6;
I=57.1;
A=(E*I/L^3)*[12 6*L -12 6*L;
6*L 4*L^2 -6*L 2*L^2;
-12 -6*L 12 -6*L;
6*L 2*L^2 -6*L 4*L^2
];
load=[0;0;-P;0]; %put zeros for known B.C.
A(:,1)=0; A(1,:)=0; A(1,1)=1; %put 1 on diagonal
A(:,2)=0; A(2,:)=0; A(2,2)=1; %put 1 on diagonal
A
Gives
A =
1.0e+07 *
0.0000 0 0 0
0 0.0000 0 0
0 0 0.0007 -0.0496
0 0 -0.0496 4.7583
Then
sol=A\load %SOLVE
Gives
sol =
0
0
-0.2324
-0.0024
The same solution is obtained as before, but without the need to remove rows/column from the stiffness matrix. This method might be easier for programming than
the first method of removing rows/columns.
The rest now is the same as was done earlier and will not be repeated.
2.1.2 Example 2
This is the same example as above, but the vertical load P is now placed in the middle of the beam
In using stiffness method, all loads must be on the nodes. The vector {p} is the nodal forces vector. Hence equivalent nodal loads are found for the load in the
middle of the beam. The equivalent loading is the following
Now that equivalent loading is in place, we continue as before. Making a free body diagram showing all loads (including reaction forces)
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 10/23
11/18/24, 4:40 PM
P=400;
L=144;
E=30*10^6;
I=57.1;
A=(E*I/L^3)*[12
6*L
-12
6*L
];
x =
4*L^2
-6*L
2*L^2
load=[-P/2;P*L/8];
x=A(3:end,3:end)\load
Gives
-0.072630472854641
-0.000605253940455
Therefore
6*L
-6*L
12
-6*L
and since E = 30 × 10
6
v2
θ2
⎩
}
R − P /2
M 1 − P L/8
−P /2
P L/8
⎬ =
EI
L
3
R − P /2
M 1 − P L/8
⎝
⎫
−P /2
P L/8
-12
2*L^2;
-6*L;
4*L^2
6L
−12
6L
= 57 in
=
{
{d} = ⎨
EI
L
⎩
θ1
v2
θ2
R − P /2 =
4
3
and L
{p} = [K] {d}
⎬ =
−P /2
P L/8
6*L;
⎬ = ⎨
⎝
⎩
} =
⎧v 1 ⎫
EI
0
3
⎛
⎝
Derivation Of The Beam Stiffness Matrix
EI
−0.072630472854641
−0.000605253940455
4L
−6L
2L
12
6L
−12
6L
2
⎬
⎭
(
12
−6L
6L
4L
−6L
2L
2
4L
0
−12
−6L
12
−6L
This is enough to obtain v (x) as before. Now the reactions R and M 1 can be determined if needed. Going back to the full {p}
12 6L
0.871 57 − 3.631 5 × 10
3.631 5 × 10
= 144
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
EI
L
3
−12
−6L
12
−6L
−3
(0.871 57 − 3.631 5 × 10
in and P = 400
6L
2L
−6L
4L
L − 0.871 57
lb, then
2
−3
){
⎞⎧
−3
−3
L
v2
θ2
2
}
2
6L
2L
−6L
4L
⎫
2
2 ⎠
There is no need to determine R and M 1 at this point since these rows will be removed due to boundary conditions v 1 = 0 and θ 1 = 0 and hence those
quantities are not needed to solve the equations. Note that the rows and columns are removed for the known boundary displacements before solving
{p} = [K] {d}. Hence, after removing the first two rows and columns, the above system simplifies to
v
⎞ ⎧ 1⎫
⎩
θ1
v2
θ2
0
⎬
−0.072630472854641
−0.000605253940455
−3
L)
⎫
⎭
, results in
= [K] {d}
11/23
11/18/24, 4:40 PM
R =
and M 1
Since L
144
= 144
6
(30×10 )57
− P L/8 =
(0.871 57 − 3.631 5 × 10
EI
L
3
= (
v (x) =
2.1.3 Example 3
1
L
−3
v (x) = [N ] {d}
v (x) = (N 1 (x)
6.052 5 × 10
= 1.945 9 × 10
(144)) + 400/2
(3Lx
6.052 5 × 10
2
(144)
2
2
−3
N 2 (x)
N 2 (x)
− 2x )
−4
−8
−4
2
L ) + P L/8 ,
(Lx
x
2
((144)x
3
. Therefore
L
R = 400 lb
N 3 (x)
1
2
− x ) +
(−Lx
− 6.304 7 × 10
hence
M 1 = 28 762 lb-f t
Now that all nodal reactions are found, the displacement field is found and the deflection curve can be plotted.
N 3 (x) N 4 (x)) ⎨
N 4 (x)) ⎨
2 3
0.072 63
3
− x ) +
L
−6
⎩
θ1
v2
3
⎬
⎪
Derivation Of The Beam Stiffness Matrix
⎧v 1 ⎫
⎧
θ2
−0.072630472854641
−0.000605253940455
+ x )) (
⎭
−0.072630472854641
−0.000605253940455
0.072 63
(144)
x
2
(2x
3
3
)
− 3Lx )
(2x
3
0
Assuming the beam is fixed on the left end as above, but simply supported on the right end, and the vertical load P now at distance a from the left end and at
distance b from the right end, and a uniform distributed load of density m lb/in is on the beam.
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
2
− 3 (144)x )
⎫
12/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
In the above, the left end reaction forces are shown as R 1 and moment reaction as M 1 and the reaction at the right end as R 2 . Starting by finding equivalent loads
for the point load P and equivalent loads for for the uniform distributed load m. All external loads must be transferred to the nodes for the stiffness method to work.
Equivalent load for the above point load is
Using free body diagram, with all the loads on it gives the following diagram (In this diagram M is the reaction moment and R 1 , R 2 are the reaction forces)
Now that all loads are on the nodes, the stiffness equation is applied
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 13/23
11/18/24, 4:40 PM
Hence
θ2 = (
⎪ ⎜ ⎟⎪
⎧R
M −
R2 −
= 7.719 9 × 10
Pa b
L
2
v (x) = [N ] {d}
v (x) = (N 1 (x)
Chapter 3
Finite elements (adding more elements)
3.1 Example 3 redone with 2 elements
2
P b (L+2a)
P ab
2
L
P a (L+2b)
= 0, θ 1 = 0 v 2 = 0
= (N 1 (x)
=
L
+
2
−3
= 3.722 9 × 10
3
3
2
2
−
mL
,
12
(144)
rad
(−Lx
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
−
mL
2
12
θ2 = (
Substituting numerical values for the above as given at the top of the problem results in
(1000)(0.625 (144))
mL
mL
2
2
2
{p} = [K] {d}
Pa b
L
⎫
⎬ =
N 2 (x)
N 2 (x)
−7
x
Pa b
3
L
(0.375 (144))
+ x ) (7.719 9 × 10
3
Derivation Of The Beam Stiffness Matrix
2
EI
L
3
12
N 3 (x)
N 3 (x)
− 5.361 × 10
⎛
⎝
12
6L
−12
6L
mL
12
+
2
L
−6L
)(
6L
4L
2L
(200)(144)
12
2
4EI
N 4 (x)) ⎨
N 4 (x)) ⎨
−3
−5
x
)
2
θ1
v2
⎬
L
−12
−6L
⎩
12
−6L
. Therefore the first, second and third rows/columns are removed giving
2
+
mL
2
=
EI
3
4L θ 2
2
θ2
⎭
)(
⎧v 1 ⎫
⎩
6L
2L
−6L
4L
7.719 9 × 10
2
−3
⎭
⎞⎧
⎠
⎨
144
4 (30 × 10 ) (57)
⎬
v1 ⎫
θ1
v2
θ2
6
⎬
14/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
Finite elements generated displacements are smaller in value than the actual analytical values. To improve the accuracy, more elements are added. To add more
elements, the beam is divided into 2,3,4 and more beam elements. To show how this works, example 3 above is solved again using two elements. It is found that
displacement field v (x) becomes more accurate (By comparing the the result with the exact solution based on using the beam 4th order differential equation. It is
found to be almost the same with only 2 elements)
There is 6 total degrees of freedom. two at each node. Hence the stiffness matrix for the whole beam (including both elements) will be 6 by 6. For each element
however, the same stiffness matrix will be used as above and that will remain as before 4 by 4.
The stiffness matrix for each element is found and then the global stiffness matrix is assembled. Then {p global } = [K global ] {d global } is solved as before. The
first step is to move all loads to the nodes as was done before. This is done for each element. The formulas for equivalent loads remain the same, but now L becomes
L/2. The following diagram show the equivalent loading for P
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 15/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
Now the above two diagrams are put together to show all equivalent loads with the original reaction forces to obtain the following diagram
{p} = [K] {d} for each element is now constructed. Starting with the first element
L
m( )
2
⎛ R1 − ⎞
2 L L
12 6( ) −12 6( )
⎛ 2 2 ⎞
⎧v 1 ⎫
2
L
m( )
2
2 2
M1 − L L L L
12
EI 6( ) 4( ) −6 ( ) 2( ) θ1
2 2 2 2
Pb (
2 L
+2a) m(
L
) = ⎨ ⎬
2 2 3 L L
− − L −12 −6 ( ) 12 −6 ( ) v2
3
2 ( ) 2 2
(L/2) 2 ⎩ ⎭
2 2 θ2
L 2 L 2
⎝ L L L L ⎠
m(
2
) m(
2
)
P ab
2 6( ) 2( ) −6 ( ) 4( )
2 2 2 2
⎝ − − 2 ⎠
12 12 L
( )
2
The 2 systems above are assembled to obtain the global stiffness matrix equation giving
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 16/23
⎜ ⎟ ⎜ ⎟⎪
11/18/24, 4:40 PM
⎝
−2
R3 −
R1 −
M1 −
2
Pb (
Pa (
m(
L
−2
12
+2a)
)
3
2
P ab
+2b)
)
3
+
m(
m(
2
2
12
− 2
)
L
Pa b
(
)
2
2
⎝
2
L
m(
−2
2
)
2
)
determined. The following code displays the deflection curve for the above beam
clear all; close all;
P=400;
L=144;
E=30*10^6;
I=57.1;
m=200;
a=0.125*L;
b=0.375*L;
A=E*I/(L/2)^3*[1
0
0
0
0
0
A
0;
0
0
0
0
load =
0
0
-15075
-8100
0
1
0
0
0
0
load = [0;
0;
0
0
0
0
0
24
0
0
0
0
0
8*(L/2)^2
0
6*L/2 2*(L/2)^2
P*a^2*b/(L/2)^2+(m*(L/2)^2)/12]
sol=A\load
Gives
A =
1.0e+08 *
0.0000
0 0.0000
0
0
0
0
0;
6*L/2;
0 2*(L/2)^2;
1
0
0;
0 4*(L/2)^2];
-(m*L/2) - 2*P*b^2*(L/2+2*a)/(L/2)^3;
-2*P*a*b^2/(L/2)^2;
0
0.0011
0
0
0.0198
0
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
0
⎞
⎝
2
Pb (
m(
⎛−2
0
0
1.9033
0
0.4758
=
(L/2)
L
−2
12
(
+2a)
As was mentioned earlier, another method would be to remove the rows/columns which results in
Pb (
2
EI
P ab
(L/2)
(L/2)
m(
0
)
− 2
−2
12
3
Pa b
+2a)
0
0
0
0.0000
0
⎛
2
2
2
P ab
+
6(
6(
2
12
−12
m(L/2)
− 2
)
0
Pa b
(
L
2
)
)
m(
2
= 0
2
L
4(
−6 (
2(
2
6(
Giving the same solution. There are 3 unknowns to solve for. Once these unknowns are solved for, v (x) for the first element and for the second element are fully
0
0
0.0198
0.4758
0
0.9517
⎞
⎠
L
(
L
)
)
EI
=
2
)
Derivation Of The Beam Stiffness Matrix
0;
0
⎛
⎝
−6 (
EI
2
0
)
3
−6 (
6(
⎝
−12
12 + 12
−12
1 0
6(
24
6(
L
) + 6(
24
2
)
)
L
)
)
8(
2(
8(
2(
2
)
)
−6 (
4(
= 0
2
L
)
2
2
L
)
6(
2(
−6 (
2(
6(
2(
4(
2
0
L
2
2
) + 6(
+ 4(
2
L
)
2
)
)
2(
4(
2
⎠
2
2
)
6(
⎝
θ3
L
⎠
v2
L
⎞
)
θ2
⎞
⎠
⎝
−12
−6 (
−6 (
⎛
0
12
v2
θ2
θ3
L
0
⎞
⎠
)
)
6(
2(
−6 (
4(
0
2
)
)
2
2
⎞
⎠
⎧v 1 ⎫
⎩
θ1
v2
θ2
v3
θ3
⎬
17/23
11/18/24, 4:40 PM
87750
sol =
0
0
-0.2735
-0.0019
0
0.0076
Hence
v elem2 (x) = (N 1 (x)
= (N 1 (x)
= (N 1 (x)
= (
(
v elem2 (x) =
≤ x ≤ L
)
= −0.2735
3
((
v elem1 (x) = (N 1 (x)
0.030 4
N 2 (x)
N 2 (x)
N 2 (x)
L
3
2
− 3(
(x
(N 1 (x)
= (
3
2.188
The above polynomial is the transverse deflection of the beam for the region 0
N 3 (x)
N 3 (x)
N 4 (x))
)x
−
2
2
(
1
+ 2x )
)
Lx ) −
3
⎪⎜⎟
in (downwards displacement) and θ 2
(3 (
(2x
2
−0.2735
3
⎞
N 2 (x)
N 2 (x)
−0.0019
)x
N 4 (x)) ⎨
N 4 (x))
0.0076
3
0.007 6
L
2
2
N 3 (x)
− 2x )
Lx ) −
⎧v 2 ⎫
⎛
−0.2735
2
⎞
. The following is a plot of the deflection curve using the above 2 equations
Derivation Of The Beam Stiffness Matrix
θ2
θ3
−0.0019
2
N 3 (x)
0.0076
((
(
3
4
= −0.0019
2
⎠
) x − 2(
2
L x − Lx
(
0.007 6
≤ x ≤ L/2 v (x)
L
L
N 4 (x)) ⎨
N 4 (x)) ⎨
2
0
v2
2
⎬
When the above plot is compared to the case with one element, the deflection is seen to be larger now. Comparing the above to the analytical solution shows that the
deflection now is almost exactly the same as the analytical solution. Hence by using only two elements instead of one element, the solution has become more
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
(− (
2
(x
)x
2
radians and θ 3
⎧ 0 ⎫
⎩
θ2
2
⎧v 1 ⎫
−
⎭
)x
θ1
v2
θ2
+ x )
3
+ x ) −
2
2
⎬
3
3
+ x )) (
Lx )
2
= 0.0076
−0.2735
−0.0019
2.188
L
L
3
)
2
)
2
(
(− (
8
L
radians. v (x) polynomial is now
3
)x
−
3
2
2
Lx
3
+ x ))
2
⎛
⎝
−0.2735
3
+ 2x )
⎞
−0.0019
0.0076
⎠
18/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
accurate and almost agrees with the analytical solution.
The following diagram shows the deflection curve of problem three above when using one element and two elements on the same plot to help illustrate the difference
in the result more clearly.
The analytical deflection for the beam in problem three above (fixed on the left and simply supported at the right end) when there is uniformly loaded with w lbs per
unit length is given by
2
wx
2 2
v (x) = − (3L − 5Lx + 2x )
48EI
While the analytical deflection for the same beam but when there is a point load P at distance a from the left end is given by
3 2 2 2 3
v (x) = −P (⟨L − a⟩ (3L − x)x + L (3(L − a)(L − x)x + 2L⟨x − a⟩ ))
Therefore, the analytical expression for deflection is given by the sum of the above expressions, giving
2
wx 3 3
2 2 2 2 2
v (x) = − (3L − 5Lx + 2x ) − P (⟨L − a⟩ (3L − x)x + L (3(L − a)(L − x)x + 2L⟨x − a⟩ ))
48EI
The following diagram is a plot of the analytical deflection with the two elements deflection calculated using Finite elements above.
In the above, the blue dashed curve is the analytical solution, and the red curve is the finite elements solution using 2 elements. It can be seen that the finite element
solution for the deflection is now in a very good agreement with the analytical solution.
Chapter 4
Generating shear and bending moments diagrams
After solving the problem using finite elements and obtaining the field displacement function v (x) as was shown in the above examples, the shear force and
2
d v(x)
bending moments along the beam can be calculated. Since the bending moment is given by M (x) = −EI
dx
2
and shear force is given by
3
dM d v(x)
V (x) =
dx
= −EI
dx
then these diagrams are now readily plotted as shown below for example three above using the result from the finite elements with
3
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 19/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
2.188 3 3 2 0.007 6 3 1 2
3
(2x − Lx ) − 2
(x − Lx ) 0 ≤ x ≤ L/2
L 2 L 2
v (x) = }
0.030 4 3 1 2 0.007 6 1 2 2 3 2.188 1 3 3 2 3
(x − Lx ) − ( L x − Lx + x ) − ( L − Lx + 2x ) L/2 ≤ x ≤ L
2 2 3
L 2 L 4 L 8 2
Hence
−0.0076(6x−L) 2.188(12x−3L)
2
+ 3 0 ≤ x ≤ L/2
L L
M (x) = −EI }
0.0076(6x−2L) 0.0304(6x−L) 2.188(12x−3L)
L/2 ≤ x ≤ L
− 2
+ 2
− 3
L L L
6 4
using E = 30 × 10 psi and I = 57 in and L = 144 in, the bending moment diagram plot is
The bending moment diagram clearly does not agree with the bending moment diagram that can be generated from the analytical solution given below (generated
using my other program which solves this problem analytically)
The reason for this is because the solution v (x) obtained using the finite elements method is a third degree polynomial and after differentiating twice to obtain the
2
dx
2
) the result becomes a linear function in x while in the analytical solution case, when the load is distributed, the solution
v (x) is a fourth degree polynomial. Hence the bending moment will be quadratic function in x in the analytical case.
Therefore, in order to obtain good approximation for the bending moment and shear force diagrams using finite elements, more elements will be needed.
Chapter 5
Finding the stiffness matrix using methods other than direct method
5.1 Virtual work method for derivation of the stiffness matrix
5.2 Potential energy (minimize a functional) method to derive the stiffness matrix
1. Variational method (minimizing a functional). This functional is the potential energy of the structure and loads.
2. Weighted residual. Requires the differential equation as a starting point. Approximated in weighted average. Galerkin weighted residual method is the most
common method for implementation.
3. Virtual work method. Making the virtual work zero for an arbitrary allowed displacement.
In virtual work method, a small displacement is assumed to occur. Looking at small volume element, the amount of work done by external loads to cause the small
displacement is set equal to amount of increased internal strain energy. Assuming the field of displacement is given by u = {u, v, w} and assuming the external
T
loads are given by {p} acting on the nodes, hence these point loads will do work given by {δd} {p} on that unit volume where {d} is the nodal displacements.
In all these derivations, only loads acting directly on the nodes are considered for now. In other words, body forces and traction forces are not considered in order to
simplify the derivations.
T
The increase of strain energy is {δε} {σ} in that same unit volume.
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 20/23
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
T T
{δd} {p} = {δε} {σ}
T T
{δd} {p} = ∫ {δε} {σ}dV (1)
V
Assuming that displacement can be written as a function of the nodal displacements of the element results in
u = [N ] {d}
Therefore
δu= [N ] {δd}
T T T
{δu} ={δd} [N ] (2)
Since {ε} = ∂ {u} then {ε} = ∂ [N ] {d} = [B] {d} where B is the strain displacement matrix [B] = ∂ [N ] , hence
T T T
{δε} = {δd} [B] (3)
T T T
{δd} {p} − ∫ {δd} [B] [E] [B] {d}dV = 0
V
Since {δd} and {d} do not depend on the integration variables they can be moved outside the integral, giving
T T
{δd} ({p} − {d} ∫ [B] [E] [B]dV ) = 0
V
Since the above is true for any admissible δd then the only condition is that
T
{p} = {d} ∫ [B] [E] [B]dV
V
T
[K] = ∫ [B] [E] [B]dV
V
knowing [B] allows finding [k] by integrating over the volume. For the beam element though, u =v (x) the transverse displacement. This means
2
d
[B] =
dx
2 . Recalling from the above that for the beam element,
[N ]
1 3 2 3 1 2 2 3 1 2 3 1 2 3
[N ] = ( 3
(L − 3Lx + 2x ) 2
(L x − 2Lx + x ) 3
(3Lx − 2x ) 2
(−Lx + x ))
L L L L
Hence
2
d
1 1 1 1
[B] = [N ] = ( 3
(−6L + 12x) 2
(−4L + 6x) 3
(6L − 12x) 2
(−2L + 6x) )
2 L L L L
dx
Hence
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 21/23
11/18/24, 4:40 PM
[K] = ∫
= ∫
= EI ∫
= EI ∫
= EI
=
V
EI
L
[B]
⎪⎜ ⎟
⎧
⎝
T
6L
−12
6L
3
12
12
[E] [B]dV
12
2
(−6L + 12x) ⎫
(−4L + 6x)
3
(6L − 12x)
(−2L + 6x)
Setting ∂Π
∂{d}
= 0
5
2
2
(−6L + 12x)⎫
(−4L + 6x)
4L
−6L
2L
(6L − 12x)
(−2L + 6x)
L
L
6L
= [K]D
1
6
6
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm
−
−
⎬E (
(6L − 12x)
6
(6L − 12x)
12
−12
−6L
12
−6L
12
5.2 Potential energy (minimize a functional) method to derive the stiffness matrix
given by 12 ∫ V {σ} {ε}dV and the work done by external loads is {d} {p}, hence
6
6
3
2
⎬(
−
1
6L
2L
−6L
4L
L
3
= [E] {ε}
2
1
3
2
(−6L + 12x)
⎠
−
L
1
L
5
1
5
4
L
1
2
L
1
4
1
(4L − 6x)
(−4L + 6x)
(−4L + 6x)
This method is very similar to the first method actually. It all comes down to finding a functional, which is the potential energy of the system, and minimizing this
with respect to the nodal displacements. The result gives the stiffness matrix.
Let the system total potential energy by called Π and let the total internal energy in the system be U and let the work done by external loads acting on the nodes be
Ω, then
, hence
Π =
1
2
Π =
Now the rest follows as before. Assuming that displacement can be written as a function of the nodal displacements {d}, hence
∫
V
{d}
0 = {d} ∫
1
2
∫
{σ}
V
T
{σ}
Π = U − Ω
Work done by external loads have a negative sign since they are an external agent to the system and work is being done onto the system. The internal strain energy is
T T
[B]
V
= {d}
[B]
2
{ε}dV − {d}
u = [N ] {d}
T
[B]
T
T
[E]
3
−
(6L − 12x)
L
3
L
(6L − 12x)
1
5
1
5
T
−
{p}
L
1
6
1
6
(6L − 12x)
(6L − 12x)
T
1
= ∂ [N ]
{p}
2
(−2L + 6x) )dV
L
2
2
(−2L + 6x) )dx
, hence
−
L
1
L
5
1
4
5
(2L − 6x) (6L − 12x) ⎞
L
1
4
(2L − 6x)
2
(1)
(4)
22/23
⎠
11/18/24, 4:40 PM Derivation Of The Beam Stiffness Matrix
T
[K] = ∫ [B] [E] [B]dV
V
Chapter 6
References
1. A first course in Finite element method, 3rd edition, by Daryl L. Logan
2. Matrix analysis of framed structures, 2nd edition, by William Weaver, James Gere
1Instead of removing rows/columns for known boundary conditions, we can also just put a on the diagonal of the stiffness matrix for that boundary conditions. I will do this example again using
1
this method
https://www.12000.org/my_notes/stiffness_matrix/stiffness_matrix_report.htm 23/23