suboptimumg.log_analysis.aero#

suboptimumg.log_analysis.aero.add_cda(data, irl_car, ax_col='pcm.vnav.linearAccelBody.x', low_speed_thresh=5.0)[source]#

Add aerodynamic drag coefficient (CDA) from coastdown deceleration.

Applies F_drag = -m·a_x - F_rolling, then CDA = F_drag / (0.5·ρ·v²). For meaningful results trim data to a coasting segment first (no throttle or brake). Requires add_groundspeed.

Stores results in aero.cda, accessible via the constant CDA.

Parameters:
  • data (SingleRunData)

  • irl_car (IrlCar)

  • ax_col (str) – Column name of longitudinal acceleration in body frame.

  • low_speed_thresh (float) – Speed (m/s) below which CDA is forced to zero.

Return type:

SingleRunData

suboptimumg.log_analysis.aero.add_cla(data, irl_car, ref_time_range, pot_fl='ludwig.shockpot.frontLeft', pot_fr='ludwig.shockpot.frontRight', pot_rl='ludwig.shockpot.rearLeft', pot_rr='ludwig.shockpot.rearRight', ax_col='pcm.vnav.linearAccelBody.x', low_speed_thresh=5.0)[source]#

Add aerodynamic lift coefficient (CLA) and center of pressure (CoP).

Estimates per-axle downforce from shock pot compression relative to a zero-aero reference window, subtracting longitudinal weight transfer.

Stores results in aero.cla and aero.cop, accesible via the constants CLA and COP.

Parameters:
  • irl_car (IrlCar)

  • ref_time_range (tuple[float, float]) – (t_start, t_end) in seconds of a zero-aero reference window (e.g. car stationary or slow).

  • low_speed_thresh (float) – Speed (m/s) below which CLA and CoP are zeroed / NaN.

  • data (SingleRunData)

  • pot_fl (str)

  • pot_fr (str)

  • pot_rl (str)

  • pot_rr (str)

  • ax_col (str)

Return type:

SingleRunData