suboptimumg.compsim.models#
Pydantic models for competition simulation data structures.
- pydantic model suboptimumg.compsim.models.CompetitionData[source]#
Bases:
BaseModel- Config:
arbitrary_types_allowed: bool = True
- Fields:
-
field vehicle_model:
VehicleModel[Required]# Vehicle configuration
-
field accel:
ContinuousTrackData|DiscreteTrackData[Required]# Acceleration track data
-
field skidpad:
ContinuousTrackData|DiscreteTrackData[Required]# Skidpad track data
-
field autoX:
ContinuousTrackData|DiscreteTrackData[Required]# Autocross track data
-
field endurance:
ContinuousTrackData|DiscreteTrackData[Required]# Endurance track data
-
field scoring:
CompetitionScoring[Required]# Competition scoring configuration
- pydantic model suboptimumg.compsim.models.CompetitionResults[source]#
Bases:
BaseModel- Config:
frozen: bool = True
extra: str = forbid
- Fields:
-
field accel:
EventResults[Required]# Acceleration event results
-
field skidpad:
EventResults[Required]# Skidpad event results
-
field autoX:
EventResults[Required]# Autocross event results
-
field endurance:
EventResults[Required]# Endurance event results
-
field efficiency_points:
float[Required]# Efficiency points scored in the endurance event
- property total_points: float#
- pydantic model suboptimumg.compsim.models.CompetitionScoring[source]#
Bases:
BaseModel- Fields:
-
field accel:
EventScoring[Required]#
-
field skidpad:
EventScoring[Required]#
-
field autoX:
EventScoring[Required]#
-
field endurance:
EventScoring[Required]#
-
field efficiency:
EfficiencyScoring[Required]#
- pydantic model suboptimumg.compsim.models.EfficiencyScoring[source]#
Bases:
BaseModel- Fields:
-
field num_endurance_laps:
int[Required]# Number of laps around the track for endurance event
-
field max_eff_points:
float[Required]# Maximum amount of points awarded for efficiency
-
field co2_scaling:
float[Required]# (kg CO2 / kWh) ratio to convert EV to IC (from FSAE Rules)
-
field fastest_lap_time:
float[Required]# Average lap time for fastest endurance finisher
-
field co2_min:
float[Required]# Minimum co2 usage out of teams that were eligible for endurance score
-
field eff_max:
float[Required]# Best efficiency factor out of all teams
-
field max_time_scale:
float[Required]# Rules-defined baseline laptime (1.45 = 145% of fastest endurance finisher), used as constant in score calculations
-
field eff_min_co2_your:
float[Required]# Rules-defined baseline CO2 value ((20.02 kg CO2 / 100km) * 22km), used as constant in score calculations
- pydantic model suboptimumg.compsim.models.EventResults[source]#
Bases:
BaseModel- Config:
frozen: bool = True
extra: str = forbid
- Fields:
-
field points:
float[Required]# Points scored in the event
-
field tyour:
float[Required]# Your time (s)
-
field lapsim_results:
LapsimResults[Required]# Results from the lapsim
- pydantic model suboptimumg.compsim.models.EventScoring[source]#
Bases:
BaseModel- Fields:
-
field event_best_time:
float[Required]# Best time recorded for this event
-
field worst_time_ratio:
float[Required]# The maximum race time for this event, expressed as a ratio of the track_best_time
-
field min_points:
float[Required]# The minimum amount of points awarded for this event
-
field max_point_gain:
float[Required]# The maximum amount of point a car can gain on this event, if they meet or exceed track_best_time
-
field scale_time_ratio:
float[Required]# Exponentiate event time ratios for point calculations (1 = no effect)
- pydantic model suboptimumg.compsim.models.InternalData[source]#
Bases:
BaseModel- Config:
arbitrary_types_allowed: bool = True
- Fields:
-
field initial_velocity:
float[Required]# Initial velocity at start of track (m/s)
-
field v_max_profile:
ndarray[tuple[Any,...],dtype[float64]] [Required]# Initial maximum velocity profile for the track (m/s)
-
field seed_idx_list:
ndarray[tuple[Any,...],dtype[integer]] [Required]# List of seed indices used in the simulation, sorted by increasing max velocity
-
field cumulative_dist:
ndarray[tuple[Any,...],dtype[float64]] [Required]# Cumulative distance along the track (m)
-
field per_seed:
List[InternalDataSeedInfo] [Required]# List of per-seed internal data, corresponding to seed_idx_list
- pydantic model suboptimumg.compsim.models.InternalDataSeedInfo[source]#
Bases:
BaseModel- Config:
arbitrary_types_allowed: bool = True
- Fields:
acc_max_post (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])acc_proposal (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])grown_forward_mask (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.bool]])p_proposal (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])slower_mask (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.bool]])v_max_post (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])v_proposal (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])
-
field v_proposal:
ndarray[tuple[Any,...],dtype[float64]] = None#
-
field acc_proposal:
ndarray[tuple[Any,...],dtype[float64]] = None#
-
field grown_forward_mask:
ndarray[tuple[Any,...],dtype[bool]] = None#
-
field slower_mask:
ndarray[tuple[Any,...],dtype[bool]] = None#
-
field v_max_post:
ndarray[tuple[Any,...],dtype[float64]] = None#
-
field acc_max_post:
ndarray[tuple[Any,...],dtype[float64]] = None#
-
field p_proposal:
ndarray[tuple[Any,...],dtype[float64]] = None#
- pydantic model suboptimumg.compsim.models.LapsimResults[source]#
Bases:
BaseModel- Config:
arbitrary_types_allowed: bool = True
- Fields:
internal_data (suboptimumg.compsim.models.InternalData | None)lap_accs (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])lap_dxs (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])lap_eff_motor_torques (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])lap_powers (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])lap_t (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])lap_vels (numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]])
-
field lap_t:
ndarray[tuple[Any,...],dtype[float64]] [Required]# List of lap time (s)
-
field lap_dxs:
ndarray[tuple[Any,...],dtype[float64]] [Required]# List of distances (m)
-
field lap_vels:
ndarray[tuple[Any,...],dtype[float64]] [Required]# List of velocities (m/s)
-
field lap_accs:
ndarray[tuple[Any,...],dtype[float64]] [Required]# List of accelerations (m/s^2)
-
field lap_powers:
ndarray[tuple[Any,...],dtype[float64]] [Required]# List of powers (W)
-
field lap_eff_motor_torques:
ndarray[tuple[Any,...],dtype[float64]] [Required]# List of effective motor torques (N⋅m)
-
field internal_data:
InternalData|None= None# Optional internal data from the simulation