Automated parameter sweeps to quantify lap time sensitivity to mass, CG height, aero balance, and spring rates. Identifies highest-value design changes.
Sensitivity analysis quantifies how much a design parameter change affects lap time. The module sweeps each parameter independently while holding others at baseline:
∂t_lap/∂p ≈ (t(p + Δp) − t(p − Δp)) / (2·Δp)(1)For a full vehicle, the key parameters are mass, CoG height, aero balance (% front downforce), total downforce, spring rates, and ARB stiffness.
Sensitivity = Δt_lap / Δp [s/kg, s/mm, s/%](2)Results are normalised and ranked to identify which parameter gives the most lap time for the least design effort — the engineering ROI.
import numpy as np
from dataclasses import dataclass
from typing import Dict, List, Callable
@dataclass
class SweepConfig:
param_name: str
baseline: float
delta: float
unit: str
n_steps: int = 11
def run_sensitivity(configs: List[SweepConfig],
lap_sim: Callable,
baseline_params: Dict) -> Dict:
results = {}
t_base = lap_sim(baseline_params)
for cfg in configs:
values = np.linspace(
cfg.baseline - cfg.delta,
cfg.baseline + cfg.delta,
cfg.n_steps
)
lap_times = []
for v in values:
p = baseline_params.copy()
p[cfg.param_name] = v
lap_times.append(lap_sim(p))
sens = (lap_times[-1] - lap_times[0]) / (2 * cfg.delta)
results[cfg.param_name] = {
'values': values,
'lap_times': np.array(lap_times),
'sensitivity': sens,
'unit': f's/{cfg.unit}'
}
return results
pip install numpy matplotlib pyyaml. No other dependencies — works with Python 3.8+.config_template.yaml with parameters, ranges, and step counts. Example configs for mass, CoG, aero are included.sensitivity_sweep.py. Outputs: tornado chart, individual sweep plots, and a ranked sensitivity table.Full source code, documentation, and email support. Unlimited use within your FS team.
Get StartedFull source + 1hr setup call + priority support. Custom vehicle config and tyre fitting included.
Contact UsNo toolboxes required. All optimisation uses custom solvers — no Optimization Toolbox, no Curve Fitting Toolbox. Works on base MATLAB R2020a+ / Python 3.8+.