You are on page 1of 8

The Matrix Stiffness Method for 2D Trusses

CEE 421L. Matrix Structural Analysis


Department of Civil and Environmental Engineering
Duke University

Henri P. Gavin

Fall, 2014

Method
1. Number all of the nodes and all of the elements.
2. Identify the Displacement Degrees of Freedom in Global Directions.
Number all the structural degrees of freedom in your truss. In a 2D (planar) truss, each
node can have a maximum of two degrees of freedom: one in the global X-direction
and one in the global Y -direction. If a degree of freedom is restrained by a reaction,
then it doesn’t get a number.
3. Node Locations.
Write the (x, y) coordinates of each node using units consistent with E and A. In other
words, if E and A are given in kN/cm2 and cm2 , write the (x, y) coordinates in terms
of centimeters.
4. Define each element.
Draw each element of your truss individually and draw the local coordinates in the
global directions. For example if element number N is a diagonal truss element, and
the global directions are X: horizontal and Y: vertical, draw element number N like
this:
4
Bar Direction 3
2
(x , y )
2 2
1 Local Joint Number
2
θ
Element Coordinate 1
1 1
in Global Directions (x , y )
1 1
where 1,2,3,4 are the element coordinates of the truss element in the global directions.
The local coordinates are always numbered 1,2,3,4 with 1 and 3 pointing in the global
X direction (to the right) and with 2 and 4 pointing in the global Y direction (up).
Some or all of these four coordinates will line up with with the structural degrees of
freedom that you identified in step 2., above. The angle θ is the counter-clockwise angle
from element coordinate 1 to the truss element.
2 CEE 421L. Matrix Structural Analysis – Duke University – Fall 2014 – H.P. Gavin

5. Element Stiffness Matrices in Global Coordinates, K.


For each element, find its (4x4) element stiffness matrix, by evaluating the equations
below: q
L = (x2 − x1 )2 + (y2 − y1 )2

c = (x2 − x1 )/L

s = (y2 − y1 )/L
c2 cs −c2 −cs
 

EA  cs s2 −cs −s2 
K= 
.

−c2 −cs c2 cs 

L 
−cs −s2 cs s2

or by using the truss 2d element.m script in matlab. You should understand where
these equations come from, why this matrix is symmetric, why the diagonal terms are
all positive, and what the off-diagonal terms mean.

6. Structural Stiffness Matrix, Ks .


The structural stiffness matrix is a square, symmetric matrix with dimension equal to
the number of degrees of freedom. In this step we will fill up the structural stiffness
matrix using terms from the element stiffness matrices in global coordinates (from step
5.) This procedure is called matrix assembly.
Recall from step 4. how the element degrees of freedom (1,2,3,4) line up with the struc-
tural degrees of freedom in your problem. For example, coordinates (1,2,3,4) might line
up with degrees of freedom (3,4,7,8) of the truss. In this case, to assemble this element
into the structural stiffness matrix,

K(1,1) +> Ks(3,3) | K(1,2) +> Ks(3,4) | K(1,3) +> Ks(3,7) | K(1,4) +> Ks(3,8)
------------------|-------------------|-------------------|------------------
K(2,1) +> Ks(4,3) | K(2,2) +> Ks(4,4) | K(2,3) +> Ks(4,7) | K(2,4) +> Ks(4,8)
------------------|-------------------|-------------------|------------------
K(3,1) +> Ks(7,3) | K(3,2) +> Ks(7,4) | K(3,3) +> Ks(7,7) | K(3,4) +> Ks(7,8)
------------------|-------------------|-------------------|------------------
K(4,1) +> Ks(8,3) | K(4,2) +> Ks(8,4) | K(4,3) +> Ks(8,7) | K(4,4) +> Ks(8,8)

where the +> is short-hand for “is added to” .... K(1,3) is added to Ks(3,7).
Add each element into the structural stiffness matrix in this way to get Ks . Note that if
one end of the truss element is fully restrained in both the the X- and Y - directions, you
will need to place only four of the sixteen terms of the element’s 4x4 stiffness matrix.

7. Forces, p.
Create the force vector p, by finding the components of each applied force in the
directions of the global degrees of freedom. Create the force vector by placing these
force components into the force vector at the proper coordinates.

CC BY-NC-ND H.P. Gavin


The Matrix Stiffness Method for 2D Trusses 3

8. Deflections, d.
Find the deflections by inverting the stiffness matrix and multiplying it by the load
vector. You can do this easily in matlab: d = Ks \ p
9. Internal bar forces, T .
Again, recall how the global degrees of freedom line up with each element’s coordinates
(1,2,3,4). For example, in element number N from step 6., the local element deflections
in the global directions, v1 , v2 , v3 , v4 line up with the structural deflections deflections
d3 , d4 , d7 , d8 . The internal bar forces can be computed from:
EA EA
T = [(v3 − v1 )c + (v4 − v2 )s] = [(d7 − d3 )c + (d8 − d4 )s]
L L
where c and s are the direction cosine and sine for the element from step 5.
You should be able to derive this equation.
Knowing what each bar force is, the reactions can be easily computed with equilibrium
equations.

Notation

u = Element deflection vector in the Local coordinate system


q = Element force vector in the Local coordinate system
k = Element stiffness matrix in the Local coordinate system
... q = k u
T = Coordinate Transformation Matrix (orthonormal)
... T−1 = TT
v = Element deflection vector in the Global coordinate system
... u = T v
f = Element force vector in the Global coordinate system
... q = T f
K = Element stiffness matrix in the Global coordinate system
... K = TT k T
d = Structural deflection vector in the Global coordinate system
p = Structural load vector in the Global coordinate system
Ks = Structural stiffness matrix in the Global coordinate system
... p = Ks d

Coordinate System Local Global


Element Deflection u v
Element Force q f
Element Stiffness k K
Structural Deflection - d
Structural Loads - p
Structural Stiffness - Ks

CC BY-NC-ND H.P. Gavin


4 CEE 421L. Matrix Structural Analysis – Duke University – Fall 2014 – H.P. Gavin

Example

Y
4 6
E = 30,000 k/sq.in. 3 5
4 50 k
A = 10 sq.in. 3 5
6
12 ft.

3
1 8
5
2
1 2 4
2 7 X
1

100 k

16 ft. 16 ft.

1 Global Joint Number


2 Bar Number System Equation: {f} = [K}{d}

Bar Direction
{d} : displacement vector
1 Structural Degree of Freedom = { d1 d2 d3 d4 d5 d6 }’
Applied Force {f} : load vector = { 0 −100 0 0 50 0 }’
1 Local Joint Number 4
2 3
1 Local Degree of Freedom
Global Coordinate System

1 2
θ
Element Coordinates in Global Directions
1

CC BY-NC-ND H.P. Gavin


The Matrix Stiffness Method for 2D Trusses 5

function [ K, L ] = truss_2d_element ( x1, y1, x2, y2, EA )


% [ K, L ] = TRUSS_ELEMENT_2D ( X1, Y1, X2, Y2, EA, T )
% Compute the element stiffness matrix for a 2D truss bar in global coordinates
%
% INPUT DATA:
% X1,Y1 is the location of joint 1 of the truss bar
% X2,Y2 is the location of joint 2 of the truss bar
% EA is the product of the elastic modulus and the section area
%
% OUTPUT DATA:
% K is the 4x4 truss bar element stiffness matrix in global element coord’s
% L is the length of the truss bar

L = sqrt( (x2-x1)ˆ2 + (y2-y1)ˆ2 ); % length of the bar

c = ( x2 - x1 ) / L; % cosine of bar angle


s = ( y2 - y1 ) / L; % sine of bar angle

K = (EA/L) * [ cˆ2 c*s -cˆ2 -c*s ;


c*s sˆ2 -c*s -sˆ2 ;
-cˆ2 -c*s cˆ2 c*s ;
-c*s -sˆ2 c*s sˆ2 ];
% --------------------------------------------------------- TRUSS_ELEMENT_2D

>> format bank % two decimal places after the .


>> E = 3e4; % modulus of elasticity
>> A = 10; % area of cross section
>> EA = E*A;

>> [ K1, L(1) ] = truss_2d_element( 0, 0, 12*16, 12*12, EA ) % truss element 1


K1 =

800.00 600.00 -800.00 -600.00


600.00 450.00 -600.00 -450.00
-800.00 -600.00 800.00 600.00
-600.00 -450.00 600.00 450.00

>> [ K2, L(2) ] = truss_2d_element( 0, 0, 12*16, 0, EA ) % truss element 2


K2 =

1562.50 0.00 -1562.50 0.00


0.00 0.00 0.00 0.00

CC BY-NC-ND H.P. Gavin


6 CEE 421L. Matrix Structural Analysis – Duke University – Fall 2014 – H.P. Gavin

-1562.50 0.00 1562.50 0.00


0.00 0.00 0.00 0.00

>> [ K3, L(3) ] = truss_2d_element( 12*16, 0, 12*16, 12*12, EA ) % truss element 3


K3 =

0.00 0.00 0.00 0.00


0.00 2083.33 0.00 -2083.33
0.00 0.00 0.00 0.00
0.00 -2083.33 0.00 2083.33

>> [ K4, L(4) ] = truss_2d_element( 12*16, 12*12, 12*32, 12*12, EA ) % truss element 4
K4 =

1562.50 0.00 -1562.50 0.00


0.00 0.00 0.00 0.00
-1562.50 0.00 1562.50 0.00
0.00 0.00 0.00 0.00

>> [ K5, L(5) ] = truss_2d_element( 12*16, 12*12, 12*32, 0, EA ) % truss element 5


K5 =

800.00 -600.00 -800.00 600.00


-600.00 450.00 600.00 -450.00
-800.00 600.00 800.00 -600.00
600.00 -450.00 -600.00 450.00

>> [ K6, L(6) ] = truss_2d_element( 12*16, 0, 12*32, 12*12, EA ) % truss element 6


K6 =

800.00 600.00 -800.00 -600.00


600.00 450.00 -600.00 -450.00
-800.00 -600.00 800.00 600.00
-600.00 -450.00 600.00 450.00

>> [ K7, L(7) ] = truss_2d_element( 12*16, 0, 12*32, 0, EA ) % truss element 7


K7 =

1562.50 0.00 -1562.50 0.00


0.00 0.00 0.00 0.00
-1562.50 0.00 1562.50 0.00
0.00 0.00 0.00 0.00

CC BY-NC-ND H.P. Gavin


The Matrix Stiffness Method for 2D Trusses 7

>> [ K8, L(8) ] = truss_2d_element( 12*32, 0, 12*32, 12*12, EA ) % truss element 8


K8 =

0.00 0.00 0.00 0.00


0.00 2083.33 0.00 -2083.33
0.00 0.00 0.00 0.00
0.00 -2083.33 0.00 2083.33

% ---------------------------- assemble the global structural stiffness matrix ...

>> Ks = [ 3925 600 0 0 -800 -600 ;


> 600 2533.33 0 -2083.33 -600 -450 ;
> 0 0 3162.5 0 -1562.5 0 ;
> 0 -2083.33 0 2983.33 0 0 ;
> -800 -600 -1562.5 0 2362.5 600 ;
> -600 -450 0 0 600 2533.33 ]

Ks =
3925.00 600.00 0.00 0.00 -800.00 -600.00

600.00 2533.33 0.00 -2083.33 -600.00 -450.00

0.00 0.00 3162.50 0.00 -1562.50 0.00

0.00 -2083.33 0.00 2983.33 0.00 0.00

-800.00 -600.00 -1562.50 0.00 2362.50 600.00

-600.00 -450.00 0.00 0.00 600.00 2533.33

>> find(Ks-Ks’) % check to see if Ks is symmetric ...


ans = [](0x0) % It is!

>> p = [ 0 -100 0 0 50 0 ]’ % input the load vector

p =

0.00
-100.00
0.00

CC BY-NC-ND H.P. Gavin


8 CEE 421L. Matrix Structural Analysis – Duke University – Fall 2014 – H.P. Gavin

0.00
50.00
0.00

>> format % change formats for more sig. fig’s

>> d = Ks \ p % compute the joint displacements

d =

0.0146067
-0.1046405
0.0027214
-0.0730729
0.0055080
-0.0164325

CC BY-NC-ND H.P. Gavin

You might also like