Module 9: Matrix Stiffness Method

While classical methods (like Moment Distribution or the Force Method) are excellent for understanding structural behavior and analyzing simple frames by hand, they become impractically tedious for large, complex structures with many degrees of freedom (e.g., a 50-story building).
The Matrix Stiffness Method (or Direct Stiffness Method) is a generalized, highly systematic approach to the displacement method. It is perfectly suited for computer implementation because it relies entirely on matrix algebra. Nearly all commercial structural analysis software (like STAAD.Pro, SAP2000, ETABS) is built upon this method.

Core Concepts

Translating physical structures into mathematical matrices.
The Matrix Stiffness Method relies on the fundamental relationship:

Fundamental Stiffness Equation

Relates global forces to global displacements.

Where:
  • [Q][Q] is the Global Force Vector (containing all known and unknown external forces and reactions at the joints).
  • [D][D] is the Global Displacement Vector (containing all known and unknown joint displacements - translations and rotations).
  • [K][K] is the Global Stiffness Matrix of the entire structure.
The goal of the analysis is to determine the unknown displacements in [D][D] by inverting a portion of the stiffness matrix [K][K] and multiplying it by the known forces in [Q][Q]. Once [D][D] is found, internal member forces can be calculated.

Properties of the Global Stiffness Matrix [K]

  • Symmetric: Kij=KjiK_{ij} = K_{ji} due to the Maxwell-Betti Reciprocal Theorem.
  • Positive Definite: The diagonal elements (KiiK_{ii}) are always positive, meaning a force in a given direction always causes a displacement in that same direction.
  • Singular before boundary conditions: Before support conditions are applied (which prevent rigid body motion), the matrix [K][K] cannot be inverted (its determinant is zero).
  • Banded/Sparse: In large structures, most nodes are only connected to a few neighbors, meaning most entries in the global matrix are zero. Software optimizes for this to save memory and computing time.
Key Takeaways
  • The Matrix Stiffness Method relates the global force vector [Q][Q] to the global displacement vector [D][D] using the global stiffness matrix [K][K].
  • The stiffness matrix is inherently symmetric and positive definite, but singular until stable boundary conditions are applied.

Local vs. Global Coordinate Systems

Defining directions consistently.
A critical step in matrix analysis is distinguishing between two coordinate systems:

Local Coordinates (x', y', z')

A coordinate system specific to each individual member. Typically, the local xx'-axis runs along the longitudinal axis of the member from a designated "start" node to an "end" node. The yy' and zz' axes define the cross-section. Member stiffness matrices are initially formulated in this local system.

Global Coordinates (X, Y, Z)

A single, universal coordinate system that applies to the entire structure. All joint coordinates, external loads, and final joint displacements are defined in this system. Before the individual member stiffness matrices can be assembled into the Global Stiffness Matrix [K][K], they must be mathematically transformed from their local coordinates into the global coordinates using a Transformation Matrix [T][T].

Transformation Matrix [T] for a 2D Truss Member

Converts between local and global coordinate systems using direction cosines.

The Member Stiffness Matrix ([k][k])

Quantifying a member's resistance to deformation.
Every structural member (truss bar, beam, column) has a characteristic stiffness matrix, [k][k], which relates the forces applied at its ends (nodes) to the resulting displacements at those ends, in its local coordinate system:

Member Stiffness Matrix

Relates forces applied at its ends to displacements in its local coordinate system.

Truss Member (Axial Stiffness Only)

A 1D element with two degrees of freedom.
A simple 2D truss member has only two local degrees of freedom: axial displacement at the start node (dNxd_{Nx}) and axial displacement at the end node (dFxd_{Fx}). The local stiffness matrix [k][k] for a truss member of length LL, area AA, and modulus EE is a 2×22 \times 2 matrix:

Truss Member Local Stiffness Matrix

Local stiffness matrix for a 2D truss member.

Note

In a 2D global system, each node of a truss member can move in both X and Y directions, giving it 4 global degrees of freedom. The transformed global stiffness matrix for a truss member is therefore 4×44 \times 4.

Frame Member (Axial, Shear, and Bending Stiffness)

A 2D element with six degrees of freedom.
A 2D frame member (like a beam or column in a rigid frame) can translate axially, translate transversely (shear), and rotate (bend) at each node. Thus, it has 3 degrees of freedom per node, or 6 local degrees of freedom total (dNx,dNy,θNz,dFx,dFy,θFzd_{Nx}, d_{Ny}, \theta_{Nz}, d_{Fx}, d_{Fy}, \theta_{Fz}). Its local stiffness matrix [k][k] is a 6×66 \times 6 matrix that incorporates EA/LEA/L (axial stiffness) and terms like 12EI/L312EI/L^3, 6EI/L26EI/L^2, and 4EI/L4EI/L (flexural stiffness derived from slope-deflection equations).
Key Takeaways
  • Every structural member has a characteristic stiffness matrix [k][k] defining its resistance to deformation in local coordinates.
  • A 2D truss member has a 2×22 \times 2 local matrix (axial only), while a 2D frame member has a 6×66 \times 6 matrix (axial, shear, and bending).

Equivalent Nodal Loads

Handling loads applied between joints.
The Matrix Stiffness Method requires all loads to be applied strictly at the nodes (joints) because the primary equations only relate nodal forces to nodal displacements. However, loads are frequently applied directly along the span of members (e.g., floor weight on a beam).

Handling Span Loads

To handle span loads, we use Equivalent Nodal Loads (ENL):
  1. Fix the Nodes: Assume the nodes of the loaded member are temporarily fixed against displacement.
  2. Calculate Fixed-End Forces: Determine the Fixed-End Moments (FEM) and fixed-end shears caused by the actual span load acting on this fully fixed member.
  3. Reverse and Apply: Reverse the direction of these fixed-end forces. These reversed forces represent the forces the beam exerts on the nodes. These are the Equivalent Nodal Loads. Apply them to the global nodes as part of the external force vector [Q][Q].
  4. Final Member Forces: After the global matrix analysis is complete and nodal displacements are found, the final internal member forces [q][q] are calculated by superimposing the initial fixed-end forces [qF][q_F] (not reversed) with the forces caused by the calculated nodal displacements: [q]=[k][d]+[qF][q] = [k][d] + [q_F].

The General Procedure

Steps executed by structural analysis software.
While done by computer, understanding these steps is crucial for modeling structures correctly and interpreting results.

Procedure

  1. Discretization: Divide the structure into discrete elements (members) connected at nodes (joints). Define the Global Coordinate System.
  2. Numbering: Assign a unique number to every node and every element. Crucially, assign a unique number to every possible degree of freedom (DOF) in the global system.
  3. Calculate Member Stiffness Matrices [k][k]: For each element, calculate its local stiffness matrix based on its properties (E,I,A,LE, I, A, L).
  4. Transformation: For each element, construct a Transformation Matrix [T][T] based on its angle relative to the global axes. Calculate the element's global stiffness matrix [Ke]=[T]T[k][T][K_e] = [T]^T [k] [T].
  5. Assembly (The Direct Stiffness Method): Assemble the Global Stiffness Matrix [K][K] by simply adding the appropriate terms from each element's global matrix [Ke][K_e] into the correct row and column corresponding to the global DOFs.

Direct Stiffness Assembly Simulation

Walk through the core concept of matrix structural analysis: assembling local stiffness matrices into a global matrix.

1. Define the Structure

Consider a 1D axial structure with two spring members (Member 1 and Member 2) connected in series at three nodes (Node 1, Node 2, Node 3).

Node 1u₁Node 2u₂Node 3u₃Member 1 (k₁)Member 2 (k₂)

Procedure

  1. Apply Boundary Conditions: Partition the assembled matrices into knowns and unknowns.
[QkQu]=[K11K12K21K22][DuDk]\begin{bmatrix} Q_k \\ Q_u \end{bmatrix} = \begin{bmatrix} K_{11} & K_{12} \\ K_{21} & K_{22} \end{bmatrix} \begin{bmatrix} D_u \\ D_k \end{bmatrix}
Where:
  • QkQ_k = Known applied loads (usually non-zero at free joints, zero where no load is applied).
  • QuQ_u = Unknown support reactions.
  • DuD_u = Unknown joint displacements (at free joints).
  • DkD_k = Known support displacements (usually zero).
  1. Solve for Displacements: From the partitioned matrix, we get Qk=K11Du+K12DkQ_k = K_{11} D_u + K_{12} D_k. Since DkD_k is usually 0, this simplifies to Qk=K11DuQ_k = K_{11} D_u. Solve for the unknown displacements by inverting K11K_{11}:
[Du]=[K11]1[Qk][D_u] = [K_{11}]^{-1} [Q_k] 3. Solve for Reactions: Substitute the now-known [Du][D_u] back into the second partitioned equation to find the support reactions:
[Qu]=[K21][Du]+[K22][Dk][Q_u] = [K_{21}] [D_u] + [K_{22}] [D_k] 4. Calculate Internal Forces: For each element, extract its node displacements from the global vector [D][D]. Transform these back to local coordinates [d][d]. Finally, multiply by the local stiffness matrix to get the internal member forces [q]=[k][d][q] = [k][d], adding any fixed-end forces from span loads if necessary.
Key Takeaways
  • The procedure involves discretization, transforming local matrices to global, and assembling the global stiffness matrix [K][K].
  • Loads applied along the span of members must be converted into Equivalent Nodal Loads before matrix analysis, and their fixed-end effects superimposed at the end.
  • Boundary conditions are applied to partition the matrices and solve for unknown joint displacements (DuD_u) and reactions.