Web Simulation 

 

 

 

 

Quarter Car Suspension Model Tutorial 

This interactive simulation demonstrates the Quarter Car Model, the fundamental model for analyzing vehicle suspension systems. It shows how a car's suspension isolates the body from road disturbances using springs and dampers.

What is the Quarter Car Model?

The quarter car model represents one corner of a vehicle as a 2-DOF (degree of freedom) mass-spring-damper system:

  • Sprung Mass (Ms): The car body (quarter of total body mass)
  • Unsprung Mass (Mus): Wheel, tire, brake, and suspension components
  • Suspension Spring (ks): Connects body to wheel
  • Shock Absorber (cs): Damper parallel to spring
  • Tire (kt): Modeled as a spring connecting wheel to road

The Equations of Motion

The system is governed by Newton's Second Law applied to each mass:

Sprung Mass (Car Body):
Ms · ÿs = -ks(ys - yus) - cs(ẏs - ẏus)
The body is pushed by suspension spring and damper forces.
Unsprung Mass (Wheel):
Mus · ÿus = ks(ys - yus) + cs(ẏs - ẏus) - kt(yus - yr)
The wheel feels suspension forces AND tire spring force from road.

State-Space Representation

For numerical simulation, we convert to first-order ODEs:

State Vector: x = [ys, ẏs, yus, ẏus]T

Derivatives:
  ẏs = vs
  v̇s = [-ks(ys - yus) - cs(vs - vus)] / Ms
  ẏus = vus
  v̇us = [ks(ys - yus) + cs(vs - vus) - kt(yus - yr)] / Mus

How Road Surface Enters the System: Base Excitation

The road surface is NOT applied as a direct external force. Instead, it enters through the tire spring as a kinematic (base) excitation:

The Tire Spring Model:
    ┌─────────┐
    │   M_s   │  Car Body (Sprung Mass)
    └────┬────┘
         │ k_s, c_s  (Suspension Spring + Damper)
    ┌────┴────┐
    │  M_us   │  Wheel (Unsprung Mass)
    └────┬────┘
         │ k_t       (Tire Spring) ← Road enters HERE!
    ═════╧═════════  y_r = Road Height (prescribed input)
                        

The tire force is calculated as:

Ftire = kt × (yus - yr)
  • When yr increases (bump rises): tire compresses → pushes wheel UP
  • When yr decreases (pothole): tire extends → pulls wheel DOWN
Why Base Excitation Instead of Direct Force?
Approach Input Physical Meaning
Base Excitation (Used) yr(t) - road height profile Road is a prescribed displacement; tire spring converts geometry to force
Direct Force (Not used) Froad(t) - force input Would require measuring force directly (impractical)

Base excitation is realistic because we know the road's geometry (height profile), not the force. The tire's deflection determines the actual force transferred to the wheel. This also allows modeling tire compliance — softer tires absorb more bumps!

Energy Flow Path:
Road Profile (yr)
    ↓
Tire Spring (kt) converts displacement → force
    ↓
Wheel (Mus) receives force, moves
    ↓
Suspension (ks, cs) filters and dampens
    ↓
Body (Ms) feels smoothed motion

Note: yr(t) is a prescribed input, not a degree of freedom. The system has only 2 DOF (ys and yus); the road acts as a time-varying boundary condition.

Why RK4 Integration?

Spring-damper systems are stiff - simple Euler integration causes numerical instability (the simulation "explodes"). We use Runge-Kutta 4th Order (RK4) for stability:

Method Accuracy Stability Use Case
Euler O(h) Poor Simple problems only
RK4 O(h⁴) Good Most physics simulations
Implicit Methods Varies Excellent Very stiff systems

Damping and Ride Quality

The damping ratio (ζ) determines how the system responds to disturbances:

Critical Damping: ccr = 2√(ks · Ms)

Damping Ratio: ζ = cs / ccr
Damping Ratio Condition Behavior Feel
ζ < 1 Under-damped Oscillates before settling Bouncy, "floaty"
ζ = 1 Critically damped Fastest return without overshoot Ideal (theory)
ζ > 1 Over-damped Slow return, no oscillation Harsh, stiff

Engineering Goal: Most cars target ζ ≈ 0.2-0.4 (under-damped) for comfort, while sports cars use ζ ≈ 0.5-0.7 for better control.

Natural Frequency

The undamped natural frequency determines how fast the system oscillates:

fn = (1/2π) · √(ks / Ms) Hz
  • Passenger cars: fn ≈ 1-1.5 Hz (comfortable)
  • Sports cars: fn ≈ 1.5-2.5 Hz (responsive)
  • Race cars: fn ≈ 3-5 Hz (maximum grip)

🚗 Vehicle Preset

⚖️ Mass

Sprung Mass (Ms) 300kg
Unsprung Mass (Mus) 40kg

🔧 Suspension

Spring Stiffness (ks) 20.0kN/m
Damping (cs) 1500N·s/m
Tire Stiffness (kt) 150kN/m
Damping Status Critical
ζ = 0.61 | fn = 1.3 Hz

🛣️ Road Surface

Vehicle Speed 1m/s
Road Type

📊 State

Body Pos 0.0 cm
Wheel Pos 0.0 cm
Body Vel 0.0 cm/s
Wheel Vel 0.0 cm/s
📈 Position vs Time
● Body ● Wheel ● Road
Displacement vs Accel
● Body ● Wheel
Velocity vs Accel
● Body ● Wheel
Body:
Msÿs = -ksΔy - csΔẏ
Wheel:
Musÿus = ksΔy + csΔẏ - kt(yus-yr)
Δy = ys - yus
Δẏ = ẏs - ẏus
Car Body (Ms)
Wheel (Mus)
Spring (ks)
Damper (cs)
Road Input (yr)

Usage Instructions

  1. Select a Vehicle Preset: Choose from sedan, SUV, sports car, etc. Each has realistic suspension parameters.
  2. Adjust Parameters:
    • Sprung Mass: Car body mass (heavier = slower response)
    • Unsprung Mass: Wheel assembly mass (lighter = better road following)
    • Spring Stiffness: Higher = stiffer ride, more responsive
    • Damping: Controls oscillation decay (watch the damping status!)
    • Tire Stiffness: Usually much higher than suspension spring
  3. Select Road Type: Different road profiles to test suspension behavior
  4. Controls:
    • ▶ Run / ⏸ Pause: Toggle continuous simulation
    • ◀ Step / Step ▶: Single-step backward/forward for detailed analysis
    • 💥 Bump: Apply instant impulse to wheel
    • ↺ Reset: Return to initial state
  5. Observe the Visualization:
    • Car Animation: Watch the car body and wheels respond independently
    • Red Dot (): Shows exactly where physics samples the road — the car jumps when the red dot crosses a bump!
    • Position vs Time: Real-time plot of body, wheel, and road positions
    • Phase Plots: Displacement-Acceleration and Velocity-Acceleration reveal dynamic behavior
    • Model Diagram: Abstract mass-spring-damper view synchronized with car
    • Damping Status: Shows under-damped (bouncy), critical, or over-damped (stiff)

Vehicle Presets

Vehicle Ms (kg) ks (kN/m) cs (N·s/m) Character
🚗 Sedan 300 20 1500 Balanced comfort/handling
🏎 Sports Car 250 35 2500 Stiff, responsive, flat cornering
🚙 SUV 450 25 2000 Soft, comfortable, body roll
🎩 Luxury 400 18 2200 Very soft, "magic carpet" ride
🏁 Rally 280 40 3500 High damping for rough terrain
🏆 F1 150 80 4000 Extremely stiff, low mass

Road Surface Types

Type Description Test Purpose
Flat Perfectly smooth surface Baseline - observe natural decay after bump
Waves Sinusoidal undulations Continuous excitation, resonance testing
Bumps Discrete speed bumps Impulse response, settling time
Steps Square wave profile Step response, overshoot analysis
Pothole Sudden dips Rebound behavior, bottom-out protection
Random Realistic rough road General ride quality assessment

Key Experiments

Experiment Setup What to Observe
Under-Damping Set cs = 500 N·s/m, click "Bump!" Car body bounces multiple times before settling
Over-Damping Set cs = 5000 N·s/m, click "Bump!" Car slowly returns without bouncing, feels "heavy"
Critical Damping Adjust cs until ζ ≈ 1.0 Fastest return without overshoot
Resonance Use "Waves" road, adjust speed to match fn Amplitude grows dramatically at resonance!
Mass Effect Compare Ms = 200 kg vs 600 kg Heavier body = slower oscillation, lower fn
Tire Stiffness Compare kt = 100 kN/m vs 300 kN/m Stiffer tire = wheel follows road more closely

Engineering Insights

  • Trade-off: Soft suspension = comfort but body roll; Stiff = handling but harsh ride
  • Unsprung Mass Matters: Lighter wheels improve both comfort and handling
  • Damping is Critical: Too little = bouncy; too much = harsh
  • Real Cars: Use variable damping (adaptive suspension) to get best of both worlds

Visual Synchronization: The "Treadmill" Model

This simulation uses a "treadmill" coordinate system to visualize car dynamics:

Key Concept: The car doesn't move horizontally on screen. Instead, the road scrolls underneath it — just like running on a treadmill!
Component Behavior Reference Point
Car (Visual) Fixed at screen center Wheel aligned with red dot
Road (Visual) Scrolls from right to left Bump appears at red dot when wheel "hits" it
Physics Engine Samples road height at current position Exactly at the red dot location

The Red Dot (): This marker shows exactly where the physics engine samples the road height. When you see the car "jump," it's because a bump has reached the red dot — the physics detected the bump at that exact moment!

Synchronization Math:

tireScreenX = canvas pixel where wheel appears
road.position = world distance traveled (meters)

For any canvas pixel 'px':
  worldMeter = road.position + (px - tireScreenX) / pixelsPerMeter

At tireScreenX: worldMeter = road.position (exact match!)

This coordinate system ensures that what you see is what the physics calculates — the visual bump and the physics bump are perfectly aligned.

RK4 Integration Algorithm

The simulation uses 4th-order Runge-Kutta integration:

k1 = f(t, y)
k2 = f(t + h/2, y + h·k1/2)
k3 = f(t + h/2, y + h·k2/2)
k4 = f(t + h, y + h·k3)

yn+1 = yn + (h/6)·(k1 + 2k2 + 2k3 + k4)

This provides O(h⁴) accuracy and excellent stability for oscillatory systems.

Phase Space Plots

The simulation displays two phase space plots that reveal the system's dynamic behavior:

Plot Axes What It Shows
Displacement vs Acceleration X: y (cm), Y: a (m/s²) Force-displacement relationship, reveals stiffness behavior
Velocity vs Acceleration X: v (m/s), Y: a (m/s²) Damping characteristics, energy dissipation patterns

Analytical Acceleration: To ensure smooth phase plots, acceleration is calculated directly from forces (F/m) rather than differentiating velocity numerically:

Body Acceleration:
as = (-ks·Δy - cs·Δv) / Ms

Wheel Acceleration:
aus = (ks·Δy + cs·Δv - kt·(yus - yr)) / Mus

A light moving average filter is applied to the wheel acceleration for visualization (window=5) to smooth high-frequency noise without affecting the physics.

Step-by-Step Controls

The simulation supports stepping forward and backward through time:

  • Step Fwd (▶): Advances simulation by one timestep (with substeps for stability)
  • Step Bwd (◀): Restores the previous state from history

State history is automatically saved every 3 frames to enable backward stepping without excessive memory usage.

Real-World Applications

Industry Application
Automotive Suspension design, ride comfort analysis, handling optimization
Rail Train bogie design, track-vehicle interaction
Aerospace Aircraft landing gear design, vibration isolation
Civil Engineering Building vibration control, seismic isolation
Robotics Legged robot compliance, shock absorption

Extensions Beyond Quarter Car

  • Half Car Model: Adds pitch dynamics (front-rear coupling)
  • Full Car Model: 7-DOF with roll, pitch, and heave
  • Active Suspension: Add actuators for adaptive control
  • Non-linear Elements: Bump stops, progressive springs