Adaptive Cruise Control with Model Predictive Control

This page presents the results of the MPC-based Adaptive Cruise Control simulation. The project code and details are available on GitHub.

Vehicle Kinematics Plot Controller Performance Plot

Performance Metrics

MetricValue

How to Reproduce

  1. Clone the GitHub repository.
  2. Follow the setup instructions in ACC_w_mpc_py/README.md.
  3. Run python ACC_w_mpc_py/simulation.py to generate new plots and the metrics.json file.

About

This project demonstrates the use of Model Predictive Control for Adaptive Cruise Control, simulating different driver styles and analyzing performance metrics.

MPC Formulation

The Model Predictive Control (MPC) formulation for Adaptive Cruise Control optimizes the following cost function:

Cost Function

J = Σk=0N-1 [qv(vk - vref)² + qd(dk - dref)² + qclosemax(0, dsafe - dk)² + qfarmax(0, dk - dmax)² + raak² + rjjk²]

Where:

Driver Style Comparison

Different driver styles are implemented by varying the MPC weights and time gap settings:

Parameter Aggressive Balanced Conservative
Time Gap 1.0s (Short) 2.0s (Medium) 3.0s (Long)
Speed Factor 1.2x (20% faster) 1.0x (Default) 1.0x (Default)
qvelocity 2.0 (High priority) 1.0 (Balanced) 0.5 (Low priority)
qdistance 1.0 (Low priority) 2.0 (Balanced) 3.0 (High priority)
qclose 5.0 (Moderate penalty) 10.0 (High penalty) 20.0 (Very high penalty)
qfar 0.5 (Low penalty) 1.0 (Balanced) 2.0 (High penalty)
racceleration 0.05 (Allow aggressive) 0.1 (Moderate) 0.2 (Conservative)
rjerk 0.05 (Allow aggressive) 0.1 (Moderate) 0.2 (Conservative)
Behavior Closer following, faster acceleration, higher speeds Moderate following distance, balanced performance Safe following distance, smooth driving, comfort-focused

Key Differences: