- Modular vehicle models
- ALL vehicle parameters can be chosen to be
- control variable
- fixed parameter
- optimizable parameter
- Sensitivity analysis on ALL parameters, computed in seconds using DiffOpt.jl
- Mesh refinment
One simulator for multiple complexities of vehicle models
Thesis is available here Thesis (PDF)
Playlist with video examples of lap time simulation Youtube playlist
Berlin_formula.mp4
modelled according to https://smdogroup.github.io/ae6310/jupyter/2026_project/race_car_problem.html
FSG_twintrack.mp4
FigureEight_bus.mp4
FSCZ_singletrack.mp4
This is a demo of front wheel drive vehicle on Formula Student Czech track
Power bond graphs inspired by Brown, Forbes T. Engineering System Dynamics: A Unified Graph-Centered Approach. This approach is best visualised on the singletrack model.
- Julia 1.10+
- Optional: HSL solvers (
HSL_jll) for faster Ipopt, CUDA +MadNLPGPUfor GPU.
Clone and instantiate dependencies:
git clone https://github.com/ceserik/SLapSim.jl.git
cd SLapSim.jl
julia --project=. -e 'using Pkg; Pkg.instantiate()'From the repo root:
julia --project=. src/experiments/runGenericExperiment.jlOther ready-to-run scripts in src/experiments/:
massPointOpt.jl— mass-point lap optimisationrunGenericExperiment.jl— generic experiment runner (pick car model + track)formulaE2026.jl— twin-track Formula Electric on Berlin track
Inside any experiment script, swap the track:
track = doubleTurn(false, 0.1) # synthetic
track = kml2track("tracks/FSCZ.kml", false, true) # from KML
track = csv2track("src/Track/berlin_2018.csv") # from CSVand the car model:
car = createSimplestSingleTrack(track)
car = createBus(track)Solver prints lap time; GLMakie window shows trajectory and states. Animations save to sync/animations/.
Traditional ways for sensitivity analysis require running the simulation multiple times and then use finite difference for the sensitivity analysis. DiffOpt.jl allows to run the simulation once and get sensitivity anlaysis immidiately!
This is example of such sensitivity analysis, all parameters of vehicle can be cheaply included in this analysis. After solving the lap-time problem, the computation of sensitivity analysis takes couple seconds.
Problem with this analysis is that it is not validated on a real vehicle, also the vehicle model has not been validated, therefore reslts should be taken with a grain of salt.