Orion Miller

ChassisSim 2020 Online Race Engineering Competition

#automotive #data-analysis

This was a 2020 competition to optimize simulated lap time and drivability of a LMP2 car at LeMans by tuning vehicle setup parameters. Some vehicle data was provided for use with Chassis Sim’s simulation tools. My submission finished 10th place out of about 150 entries.

Part of the data provided to us was a text file with some basic tire trends. Investigating these was a good starting point to gain a little insight for improving the baseline car setup. Some quick plots are made in Python below:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    import os
    import pandas as pd
    import plotly.express as px
    import plotly.graph_objects as go

    os.chdir("D:\\!Orion_Programs\\!Source_Controlled\\Chassis-Sim-Competition-Analysis\\Tires")

    #load in data files
    df_SA_Curve = pd.read_csv("Front_Tire - SA_Curve.csv")
    df_Load_Dep = pd.read_csv("Front_Tire - Load_Dep.csv")
    df_FY_IA_Dep = pd.read_csv("Front_Tire - FY_IA_Dep.csv")
    df_FX_IA_Dep = pd.read_csv("Front_Tire - FX_IA_Dep.csv")
    df_Friction_Circle = pd.read_csv("Front_Tire - Friction_Circle.csv")

    #calculate mu for load dep so we can see the sensitivity better, use their "FFact" naming
    df_Load_Dep['FFact (-)'] = df_Load_Dep['Fy (kgf)']/df_Load_Dep['Fz (kgf)']

    #put camber dep from FX in with FY to plot them together
    df_FY_IA_Dep.rename(columns = {'FFact (-)':'FFact Y (-)'}, inplace=True)
    df_FY_IA_Dep['FFact X (-)'] = df_FX_IA_Dep['FFact (-)'].copy()

    #plot datasets
    fig_SA_Curve = px.line(df_SA_Curve,x='SA (deg)',y='FFact (-)',template="plotly_dark",title="Relative Mu-Y vs. Slip Angle",width=600, height=400)
    fig_SA_Curve.write_html("fig_SA_Curve.html", auto_open=True)

    fig_Load_Dep = px.line(df_Load_Dep,x='Fz (kgf)',y='FFact (-)',template="plotly_dark",title="Relative Mu-Y vs. Load",width=600, height=400)
    fig_Load_Dep.write_html("fig_Load_Dep.html", auto_open=True)

    fig_FY_IA_Dep = px.line(df_FY_IA_Dep,x='Camber (deg)',y=['FFact Y (-)','FFact X (-)'],template="plotly_dark",title="Relative Mu vs. Camber",width=600, height=400)
    fig_FY_IA_Dep.write_html("fig_FY_IA_Dep.html", auto_open=True)

    fig_Friction_Circle = px.line(df_Friction_Circle,x='Fy (kgf)',y='Fx (kgf)',template="plotly_dark",title="Traction Circle",width=600, height=400)
    fig_Friction_Circle.write_html("fig_Friction_Circle.html", auto_open=True)
    

1

In this data grip was mostly given as a relative force metric “FFact”, probably so that the actual absolute force values could be obfuscated somewhat if this data is derived from a real source for these cars.

The slip angle curve has a fairly flat peak, where anything around between 6 and 7.5 degrees gives us most of the peak grip. There isn’t any info on the dependency of peak slip angle on things like camber, load, etc. In the sim data we can look for spikes beyond this region as signs of understeer/oversteer.

The load plot shows a strong dependence of Mu on load. One thing this will mean is that getting the balance of the car dialed in appropriately will be of extra importance. Weight transfer on a given axle will reduce it’s total grip proportionately, so the difference of how much weight transfer occurs between the front and rear will influence the balance between understeer/oversteer. On the vehicle setup end this can be controlled by spring rates and roll center heights.

For camber dependencies we were given trends for both FY and FX. For FY we see peak grip occuring around between -3 and -4 degrees. For FX we see a very dramatic trend where grip reduces by more than half going from 0 to -4 degrees. Pure longitudinal grip does tend to decrease with camber, but such a high sensitivity does not seem very realistic. One implication for this though would be that the FX potential of the tires would change rapidly through turn-entry and turn-exit as the camber change from body roll occurs. On turn-exit for example, the outside rear would lose longitudinal grip faster as the car unloads and negative camber increases, which could cause tightness.

For the traction circle plot we see a pretty broad, forgiving combined curve shape. Only the drive portion of the circle is given so we can assume that the braking is symmetric and there isn’t any need to worry about ply-steer effects.

Simulation

Lap simulation results were generated through the ChassisSim program, with a maximum limit of 100 runs to finalize the vehicle setup. Data was analyzed using Motec i2. Below for the baseline run through a left turn, we can see that the front right tire is lifting fully off the ground mid-corner (there is no FZ channel in the data but FY is clearly flatlining to 0). The fronts are also generating more slip angle with wheel, so both of these indicated the car needed to be freed up.

2

With lots of trial and error in the ChassisSim program adjusting spring rates, front view suspension geometry, static cambers, etc, a sizeable gain in speed was found. Below with the white trace for the final setup, significant time is being made up in this segment through some low speed turns.

3