Project overview: design an F1 season campaign in MATLAB
Welcome F1 aerodynamic design teams! In this project you’re tasked with running the design office of an F1 team for a season. As a 4-person team, you’ll choose a front wing, a rear wing and a gear ratio for your car, and race it over the full 2025 calendar (all 24 tracks) against every other team in the class. It’s built around a MATLAB lap-time simulator, and the point is twofold:
- Get comfortable with MATLAB - this challenge is designed to get you comfortable coding in MATLAB by adapting existing example scripts to run studies, rather than writing anything from scratch, helping you see how coding can be used to help solve real-world engineering problems.
- Practise good engineering decision-making — plotting, comparing options, and justifying a final choice with evidence.
To get started you need to:
Install MATLAB - Follow the instructions at the following link to install MATLAB on your personal machine. https://uob.sharepoint.com/sites/itservices/SitePages/matlab.aspx.
MATLAB should already be installed on the university desktops used during the computer labs.
Download the Course Files - Download the supporting MATLAB content for the following GitHub Repository
Extract the Files - Extract the files from the ZIP folder and place them somewhere sensible. If you open MATLAB and enter
userpathinto the command line it will return a suggested path which is typically in your Documents folder.
If installed correctly your folder structure should be something like this
Documents/
├── MATLAB/
│ └── i2sc_design_task_2026/
│ ├── +api/
│ ├── +open/
│ ├── +util/
│ ├── data/
│ ├── estimate_seasonPerformance.m
│ ├── example_estimateCarAeroData.m
│ ├── example_estimateSingleRacePerformance.m
│ ├── example_runXfoil.m
│ └── official_evaluation.m
If you change the working path in MATLAB to the root of the code (“i2sc_design_task_2026”), then type api.plotNACA('2412',-10) into the command window, you should see an airfoil plotted on the screen
This is an extensive codebase, as you will see in the later sections, it includes a 2D viscous panel method solver (Xfoil) and a car / track simulator capable of modelling an F1 car around every circuit on the 2025 calendar.
But… you do not need to understand all of the simulator’s internals — you can treat most of it as a black box that takes your parameters and returns lap times. All of the functions you need to call can be found in the api package (functions like api.genCarAeroData, api.runSeason2025, api.simulate_race), and the example files at the top level give you a good starting point for conducting analysis.
How will this project work?
As a team you need to choose five values:
- Front wing Airfoil section: from the NACA 4-digit aerofoil section series
- Front Wing Angle of Attack in degrees (AoA)
- Rear Wing Airfoil section: from the NACA 4-digit aerofoil section series
- Rear Wing Angle of Attack in degrees (AoA)
- Gear ratio scale: how much shorter/taller to make the car’s gearing relative to the baseline car
For a given Airfoil section and angle of attack (AoA) you will run an xfoil analysis to estimate its coefficient of lift and drag. (Try typing [cl,cd] = api.naca4Aero('2412',-6) into the MATLAB command window.)
By combining your choices for the front and rear wing, you can determine your car’s C_L (lift (downforce coefficient)), C_D (drag coefficient) and aero balance (front/rear split of that downforce) - see example_estimateCarAeroData.m. Together with gear ratio, these four quantities — C_L, C_D, aero balance, gear ratio — fully define the performance envelope of your vehicle.
For a given set of these four parameters you can run a track simulation to assess your vehicle’s performance around a given track (see example_estimateSingleRacePerformance.m). The aim here, as in F1, is to develop a car that can go as fast as possible, i.e. minimises lap time.
How the competition works
It is a relatively easy task to find a set of parameters that minimise lap time at a single race track. BUT F1 races at 20+ race tracks a year — your aim is to be as fast as possible over an entire season.
You will submit your team’s final parameters (front/rear wing section + AoA, gear ratio scale) via the Microsoft Teams form. Each team’s car is then run over every track on the 2025 calendar (see official_evaluation.m). For each race, teams are ranked by lap time (like qualifying in formula 1) and awarded points on the standard F1 points system (25 points for first, 18 for second, 15 for third, 12 for fourth, 10 for fifth, 8 for sixth, 6 for seventh, 4 for eighth, 2 for ninth and 1 for tenth. All other teams will score zero). The team with the most points after all 24 races wins. There will be prizes for first and second place!
A fast car everywhere beats a car that’s brilliant at two tracks and nowhere else — so once you have a candidate setup, check it across the whole season, not just your favourite track.
Suggested team structure: two sub-teams
You will work in teams of ~4 students and it is suggested you split your work into two sub-teams:
- Aero sub-team: explore aerofoil sections and angles of attack to work out what range of Cl/Cd/aero-balance combinations are actually achievable. See the “Getting Started - Aero” page for more details.
- Performance sub-team: explore what Cl/Cd/aero-balance/gear-ratio combination is fastest — starting with a single race, then the full season. See the “Getting Started - Performance” page for more details.
The two sub-teams need each other: aero can tell you what’s physically achievable, performance can tell you what’s fast, but only the overlap of the two is a real car. Expect to go back and forth — performance asking aero “can we get more downforce without this much drag?”, aero telling performance “that Cl is only reachable at an AoA that also costs you this much Cd.”…