Chapter 1

Statics

Forces, moments, equilibrium, and trusses.

Statics

Statics is the branch of mechanics that deals with bodies at rest or in equilibrium under the action of forces. For civil engineers, statics forms the foundation for structural analysis, enabling the design of safe and efficient structures that can withstand applied loads without moving or collapsing.

Fundamental Concepts

Force Systems

A force is a vector quantity characterized by magnitude, direction, and point of application. Forces can be classified as:

  • Concentrated (Point) Forces: Applied at a single point
  • Distributed Forces: Spread over an area or length
  • Body Forces: Act throughout the volume (e.g., gravity)

The resultant of multiple forces is found through vector addition:

R=i=1nFi\vec{R} = \sum_{i=1}^{n} \vec{F}_i

For forces in a plane:

Rx=Fx,Ry=FyR_x = \sum F_x, \quad R_y = \sum F_y R=Rx2+Ry2,θ=tan1(RyRx)R = \sqrt{R_x^2 + R_y^2}, \quad \theta = \tan^{-1}\left(\frac{R_y}{R_x}\right)

Moments and Couples

The moment of a force about a point measures its tendency to cause rotation:

MO=FdM_O = F \cdot d

Where dd is the perpendicular distance from the point to the line of action of the force.

For a force with components:

MO=FxyFyxM_O = F_x \cdot y - F_y \cdot x

A couple consists of two equal and opposite parallel forces separated by a distance dd:

Mcouple=FdM_{couple} = F \cdot d

The moment of a couple is the same about any point in the plane.

Varignon's Theorem

The moment of a force about a point equals the sum of the moments of its components about the same point:

MO=(Fidi)M_O = \sum (F_i \cdot d_i)

Equilibrium Conditions

For a body to be in static equilibrium, both the resultant force and resultant moment must be zero.

Two-Dimensional Equilibrium

Fx=0,Fy=0,MO=0\sum F_x = 0, \quad \sum F_y = 0, \quad \sum M_O = 0

These three equations can solve for up to three unknowns.

Three-Dimensional Equilibrium

Fx=0,Fy=0,Fz=0\sum F_x = 0, \quad \sum F_y = 0, \quad \sum F_z = 0 Mx=0,My=0,Mz=0\sum M_x = 0, \quad \sum M_y = 0, \quad \sum M_z = 0

Six equations can solve for up to six unknowns.

Support Reactions

Different support types provide different reaction forces and moments:

Support TypeReactions Provided
Roller1 force (perpendicular to surface)
Pin/Hinge2 forces (horizontal and vertical)
Fixed2 forces + 1 moment

Statically Determinate vs. Indeterminate

A structure is statically determinate if all reactions can be found using equilibrium equations alone:

r=3n(for 2D structures)r = 3n \quad \text{(for 2D structures)}

Where rr is the number of reactions and nn is the number of rigid bodies.

If r>3nr > 3n, the structure is statically indeterminate with degree of indeterminacy:

Degree=r3n\text{Degree} = r - 3n

Distributed Loads

Distributed loads are expressed as force per unit length w(x)w(x) (typically in kN/m or lb/ft).

Uniformly Distributed Load (UDL)

For a UDL of intensity ww over length LL:

Resultant=wL\text{Resultant} = w \cdot L

Acting at the centroid (midpoint for UDL).

Triangularly Distributed Load

For a triangular load varying from 0 to wmaxw_{max}:

Resultant=12wmaxL\text{Resultant} = \frac{1}{2} w_{max} \cdot L

Acting at L3\frac{L}{3} from the larger end.

General Distributed Load

R=0Lw(x)dxR = \int_0^L w(x) \, dx xˉ=0Lxw(x)dx0Lw(x)dx\bar{x} = \frac{\int_0^L x \cdot w(x) \, dx}{\int_0^L w(x) \, dx}

Truss Analysis

Trusses are structures composed of straight members connected at joints (pins). Members carry only axial forces (tension or compression).

Assumptions

  1. Members are connected by frictionless pins
  2. Loads are applied only at joints
  3. Weight of members is negligible
  4. Members are straight and carry only axial forces

Method of Joints

Analyze equilibrium of each joint sequentially:

At each joint: Fx=0\sum F_x = 0, Fy=0\sum F_y = 0

Start at joints with only two unknown member forces.

Method of Sections

Cut through the truss and analyze equilibrium of one section:

Fx=0,Fy=0,M=0\sum F_x = 0, \quad \sum F_y = 0, \quad \sum M = 0

Useful when only specific member forces are needed.

Zero-Force Members

Members carrying no force under given loading:

  1. At a joint with only two non-collinear members and no external load, both members are zero-force members
  2. At a joint with three members where two are collinear, the third is a zero-force member (if no external load)

Centroids and Moments of Inertia

Centroid of an Area

xˉ=xdAdA=AixiAi\bar{x} = \frac{\int x \, dA}{\int dA} = \frac{\sum A_i x_i}{\sum A_i} yˉ=ydAdA=AiyiAi\bar{y} = \frac{\int y \, dA}{\int dA} = \frac{\sum A_i y_i}{\sum A_i}

Common Shapes

ShapeAreaCentroid Location
Rectangle b×hb \times hbhbhCenter
Triangle base bb, height hh12bh\frac{1}{2}bhh3\frac{h}{3} from base
Circle radius rrπr2\pi r^2Center
Semicircleπr22\frac{\pi r^2}{2}4r3π\frac{4r}{3\pi} from diameter

Moment of Inertia (Second Moment of Area)

Ix=y2dA,Iy=x2dAI_x = \int y^2 \, dA, \quad I_y = \int x^2 \, dA

Parallel Axis Theorem

I=Ic+Ad2I = I_c + A d^2

Where IcI_c is the moment of inertia about the centroidal axis and dd is the distance to the parallel axis.

Common Moments of Inertia

ShapeII about centroidal axis
RectangleIx=bh312I_x = \frac{bh^3}{12}, Iy=hb312I_y = \frac{hb^3}{12}
CircleI=πr44I = \frac{\pi r^4}{4}
TriangleIx=bh336I_x = \frac{bh^3}{36} (about centroid)

Friction

Static Friction

FsμsNF_s \leq \mu_s N

Where μs\mu_s is the coefficient of static friction and NN is the normal force.

Kinetic Friction

Fk=μkNF_k = \mu_k N

Angle of Friction

ϕ=tan1(μ)\phi = \tan^{-1}(\mu)

Wedge and Screw Analysis

For self-locking condition in screws:

θ<ϕ\theta < \phi

Where θ\theta is the helix angle and ϕ\phi is the friction angle.


Real-World Application: Bridge Truss Analysis

Analyzing forces in a bridge truss under traffic loading.

Truss Analysis Example

import math

# Bridge truss parameters
truss_params = {
    'span': 24.0,           # meters
    'height': 6.0,          # meters
    'num_panels': 4,        # number of panels
    'dead_load': 15.0,      # kN/m (self-weight)
    'live_load': 25.0,      # kN/m (traffic)
    'panel_load': 0.0       # will be calculated
}

# Calculate panel length and joint loads
panel_length = truss_params['span'] / truss_params['num_panels']
total_load = truss_params['dead_load'] + truss_params['live_load']  # kN/m
joint_load = total_load * panel_length  # kN per interior joint

# Calculate support reactions (simply supported)
total_span_load = total_load * truss_params['span']
reaction = total_span_load / 2  # Each support takes half

# Analyze member forces using method of sections
# For a Pratt truss, calculate diagonal and chord forces
theta = math.atan(truss_params['height'] / panel_length)

# Bottom chord force at midspan (maximum)
moment_at_midspan = reaction * (truss_params['span'] / 2) - total_load * (truss_params['span'] / 2) * (truss_params['span'] / 4)
bottom_chord_force = moment_at_midspan / truss_params['height']

# Diagonal force in first panel
shear_at_first_panel = reaction - joint_load / 2
diagonal_force = shear_at_first_panel / math.sin(theta)

print(f"Bridge Truss Analysis Results:")
print(f"  Span: {truss_params['span']} m")
print(f"  Panel length: {panel_length} m")
print(f"  Total load: {total_load} kN/m")
print(f"  Support reaction: {reaction:.2f} kN")
print(f"  Bottom chord force (max): {bottom_chord_force:.2f} kN (Tension)")
print(f"  First diagonal force: {abs(diagonal_force):.2f} kN ({'Tension' if diagonal_force > 0 else 'Compression'})")
print(f"  Truss angle: {math.degrees(theta):.1f} degrees")

# Member sizing recommendation
allowable_stress_tension = 250  # MPa for steel
allowable_stress_compression = 150  # MPa (reduced for buckling)

required_area_bottom = (bottom_chord_force * 1000) / allowable_stress_tension  # mm^2
required_area_diagonal = (abs(diagonal_force) * 1000) / allowable_stress_compression  # mm^2

print(f"\nMember Sizing (Steel):")
print(f"  Bottom chord minimum area: {required_area_bottom:.0f} mm^2")
print(f"  Diagonal minimum area: {required_area_diagonal:.0f} mm^2")

Your Challenge: Beam Reaction Analysis

Calculate the support reactions for a beam with multiple load types.

Goal: Determine the reactions at supports for a beam subjected to point loads and distributed loads.

Problem Setup

import math

# Beam configuration
beam_config = {
    'length': 10.0,           # meters (total span)
    'support_A_position': 0,  # left support (pin)
    'support_B_position': 10, # right support (roller)

    # Point loads
    'point_loads': [
        {'position': 3.0, 'magnitude': 50.0},   # 50 kN at 3m from left
        {'position': 7.0, 'magnitude': 30.0}    # 30 kN at 7m from left
    ],

    # Distributed load
    'udl_start': 4.0,         # start position of UDL
    'udl_end': 8.0,           # end position of UDL
    'udl_intensity': 20.0     # kN/m
}

# TODO: Calculate support reactions using equilibrium equations
# Step 1: Calculate the resultant of the distributed load
udl_length = beam_config['udl_end'] - beam_config['udl_start']
udl_resultant = beam_config['udl_intensity'] * udl_length
udl_position = beam_config['udl_start'] + udl_length / 2

# Step 2: Apply equilibrium equations
# Sum of moments about A = 0 (to find reaction at B)
# Sum of vertical forces = 0 (to find reaction at A)

moment_about_A = 0
total_vertical_load = 0

# Add point load contributions
for load in beam_config['point_loads']:
    moment_about_A += load['magnitude'] * load['position']
    total_vertical_load += load['magnitude']

# Add UDL contribution
moment_about_A += udl_resultant * udl_position
total_vertical_load += udl_resultant

# Calculate reaction at B
R_B = moment_about_A / beam_config['length']

# Calculate reaction at A
R_A = total_vertical_load - R_B

print(f"Beam Analysis Results:")
print(f"  Span: {beam_config['length']} m")
print(f"  Total applied load: {total_vertical_load:.2f} kN")
print(f"  Reaction at A (Pin): {R_A:.2f} kN")
print(f"  Reaction at B (Roller): {R_B:.2f} kN")

# Verify equilibrium
sum_forces = R_A + R_B - total_vertical_load
sum_moments = R_B * beam_config['length'] - moment_about_A

print(f"\nEquilibrium Check:")
print(f"  Sum of vertical forces: {sum_forces:.6f} kN (should be 0)")
print(f"  Sum of moments about A: {sum_moments:.6f} kN-m (should be 0)")

How would you extend this analysis to determine the maximum bending moment and its location along the beam?

ELI10 Explanation

Simple analogy for better understanding

Imagine you're building a tower with blocks. For your tower to stay standing and not fall over, all the pushes and pulls on it need to balance out perfectly - like when you and a friend push equally hard on opposite sides of a door and it doesn't move. Statics is about understanding how to make sure buildings, bridges, and structures stay perfectly still by balancing all the forces. Engineers use statics to figure out how strong beams and columns need to be so your house doesn't collapse!

Self-Examination

Q1.

What are the conditions for static equilibrium in two dimensions and three dimensions?

Q2.

How do you calculate the reactions at supports for a simply supported beam with multiple loads?

Q3.

What is the method of joints and method of sections for analyzing trusses, and when should each be used?

Q4.

How do distributed loads differ from point loads in structural analysis?

Q5.

What is the significance of the centroid and moment of inertia in structural engineering?