Advertisement
Advanced Time: 4–5 weeks Mechanical Engineering

Vehicle Suspension System Design

Design a double wishbone suspension system using multi-body dynamics simulation, spring/damper selection, and kinematics analysis.

SuspensionDouble WishboneSpringDamperKinematicsAnsys
DifficultyAdvanced
Duration4–5 weeks
Components10 items
Steps4 steps

Introduction

Design a double wishbone suspension system using multi-body dynamics simulation, spring/damper selection, and kinematics analysis. This comprehensive guide covers everything from design through implementation, testing, and deployment.

Theory & Background

Double wishbone (A-arm) suspension: upper and lower control arms (A-shaped) connect wheel upright to chassis. Advantages over MacPherson strut: negative camber gain during bump (wheel tilts with road surface during cornering), highly tunable geometry, better handling. Key parameters: camber angle (wheel tilt vs vertical), caster angle (steering axis tilt, provides self-centering), toe angle (wheel direction), roll center height (virtual pivot point about which body rolls), scrub radius (distance between steering axis and wheel center at ground).

Advertisement

Components & Requirements

10 components required for this project.

#ComponentPurposeQty
1Fusion 360 or SolidWorks (CAD)3D suspension designx1
2MSC Adams (simulation)Multi-body dynamics simulationx1
3ANSYS (structural analysis)FEA for suspension componentsx1
4Progressive coilover springs (250mm, various rates)Spring elementx4
5Monotube shock absorbers (adjustable damping)Damping elementx4
6Heim joints (Rod ends, M10)Suspension link connectionsx24
74130 Chromoly tubing (25mm OD, 2mm wall)Control arm fabricationx10m
8Ball joints (14mm)Wheel end articulationx8
9Strain gauges + HBM amplifierExperimental load measurementx4
10Potentiometer ride height sensorSuspension travel measurementx4

Step-by-Step Implementation

Follow these 4 steps carefully.

1
Suspension Kinematics Fundamentals

Double wishbone (A-arm) suspension: upper and lower control arms (A-shaped) connect wheel upright to chassis. Advantages over MacPherson strut: negative camber gain during bump (wheel tilts with road surface during cornering), highly tunable geometry, better handling. Key parameters: camber angle (wheel tilt vs vertical), caster angle (steering axis tilt, provides self-centering), toe angle (wheel direction), roll center height (virtual pivot point about which body rolls), scrub radius (distance between steering axis and wheel center at ground).

2
Kinematic Analysis and Simulation

Model suspension in MSC Adams: define chassis, uprights, control arms as rigid bodies. Connect with joint elements: revolute joints (bushings), spherical joints (ball joints). Define spring-damper elements between chassis and upright. Run kinematic analysis: move wheel through 75mm bump to 50mm droop stroke. Measure camber, caster, toe variation with travel. Optimization target: near-zero camber change in roll (scrub angle < 0.5°/25mm travel), negative camber gain in bump (0.1–0.3°/25mm). Anti-dive geometry: place upper and lower arm pivot axes to prevent forward pitch during braking.

3
Spring and Damper Selection

Natural frequency of suspended mass: f = (1/2π) × sqrt(k/m). Target: 1.0–1.5 Hz for passenger car (soft, comfortable), 1.5–2.5 Hz for sports car, 2.5–4 Hz for race car (stiff, responsive). Calculate spring rate: k = m × (2π × f)². For 250kg per corner, 1.5 Hz: k = 250 × (2π × 1.5)² = 22,207 N/m = 22.2 kN/m = 127 N/mm. Damper tuning: critical damping ratio ζ = c/(2×sqrt(k×m)). Typically target ζ = 0.3–0.4 (slightly underdamped for good road following).

4
Control Arm FEA Stress Analysis

Model A-arm in ANSYS. Material: 4130 Chromoly steel (Yield strength 480 MPa, E=205 GPa). Loads: worst-case cornering (3g lateral load at wheel contact patch = 3 × 500N = 1500N), braking (1.5g = 750N longitudinal), combined (90% cornering + braking simultaneously). Apply loads at ball joint location, fix at bushing holes. Mesh with SOLID186 elements, refine at stress concentrations (welds, holes). Safety factor target: > 3× yield strength. Thin-wall tube optimization: increase diameter, reduce wall thickness to improve strength-to-weight.

Code & Implementation

Core code for suspension_kinematics.py:

suspension_kinematics.py Python
import numpy as np import matplotlib.pyplot as plt  # Double wishbone suspension kinematic model (simplified 2D) # This models camber change with wheel travel  def compute_camber(travel_mm, upper_arm_length=300, lower_arm_length=350,                    upper_pickup_height=250, lower_pickup_height=50,                    upper_ball_joint_height=280, lower_ball_joint_height=80):     """     Calculate camber angle at a given wheel travel.     All dimensions in mm, referenced from ground.     """     results = []     for z in travel_mm:         # Simplified 2D analysis: both arms pivot         # Upper arm         theta_upper = np.arcsin((upper_ball_joint_height + z - upper_pickup_height)                                 / upper_arm_length)         upper_bj_x = upper_arm_length * np.cos(theta_upper)                  # Lower arm         theta_lower = np.arcsin((lower_ball_joint_height + z - lower_pickup_height)                                 / lower_arm_length)         lower_bj_x = lower_arm_length * np.cos(theta_lower)                  # Camber from upright inclination         delta_x = upper_bj_x - lower_bj_x         delta_z = (upper_ball_joint_height - lower_ball_joint_height)         camber_rad = np.arctan2(delta_x, delta_z) - np.arctan2(0, delta_z)         results.append(np.degrees(camber_rad))     return np.array(results)  travel = np.linspace(-75, 50, 100)  # -75mm droop to +50mm bump camber = compute_camber(travel)  plt.figure(figsize=(8, 5)) plt.plot(travel, camber, 'b-', linewidth=2) plt.axhline(y=0, color='k', linestyle='--', linewidth=0.5) plt.axvline(x=0, color='k', linestyle='--', linewidth=0.5) plt.xlabel('Wheel Travel (mm)'); plt.ylabel('Camber Angle (°)') plt.title('Double Wishbone Suspension Camber vs Wheel Travel') plt.grid(True, alpha=0.3); plt.show()

Testing & Troubleshooting

Test Vehicle Suspension System Design by verifying each subsystem individually before full integration.

!
Troubleshooting Tips

Verify power voltages, check ground connections, use serial monitor for debug.

Real-World Applications

*Formula Student/BAJA SAE race car design
*Off-road vehicle suspension development
*Electric vehicle corner module design
*Aftermarket suspension upgrade research
*Motorcycle suspension kinematics study
*Heavy vehicle suspension durability analysis
*Bicycle suspension fork analysis
*Agricultural vehicle terrain following suspension

Extensions & Next Steps

  • Implement active suspension control with computer-controlled dampers
  • Build a quarter-car test rig for experimental validation
  • Analyze anti-squat and anti-dive geometry numerically
  • Design and test a monotube damper from scratch
  • Implement ride height measurement and logging for data-driven tuning

Interactive Playground

Coming Soon

An interactive simulator will be available here — simulate circuits and run code in-browser without hardware.

Frequently Asked Questions

Why do racing cars use negative camber and when is it beneficial?
Negative camber: top of tire tilted inward. In straight line: the outer edge of tire contact patch bears less load — reduces handling and braking performance. In cornering: body rolls outward, and with correct suspension geometry, the outside wheel (load-bearing wheel) approaches zero camber (optimal contact patch) as body rolls. Static negative camber compensates for this roll-induced positive camber. Racing: -2° to -4° static camber. Road cars: -0.5° to -1.5° — compromise between cornering advantage and straight-line tire wear.
Advertisement