suboptimumg.vehicle.models#
- pydantic model suboptimumg.vehicle.models.AccumulatorModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
-
field pack_weight:
float[Required]# Battery pack weight (kg)
- Constraints:
gt = 0
- pydantic model suboptimumg.vehicle.models.AeroModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
- Validators:
-
field cd:
float[Required]# Drag coefficient (unitless)
- Constraints:
ge = 0
- Validated by:
-
field cl:
float[Required]# Lift coefficient (unitless)
- Constraints:
ge = 0
- Validated by:
-
field front_area:
float[Required]# Frontal area (m²)
- Constraints:
gt = 0
- Validated by:
-
field cop:
float[Required]# Center of pressure (fraction toward front, 0-1)
- Constraints:
gt = 0
lt = 1.0
- Validated by:
- validator validate_front_area_plausible » front_area[source]#
- pydantic model suboptimumg.vehicle.models.ComplexSuspensionModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
-
field type:
Literal['Complex'] = 'Complex'# Suspension type
-
field front_roll_center_height:
float[Required]# Front roll center height (m)
- Constraints:
gt = 0
-
field rear_roll_center_height:
float[Required]# Rear roll center height (m)
- Constraints:
gt = 0
-
field front_roll_stiffness_k:
float[Required]# Front roll stiffness (Nm/rad)
- Constraints:
gt = 0
-
field rear_roll_stiffness_k:
float[Required]# Rear roll stiffness (Nm/rad)
- Constraints:
gt = 0
- pydantic model suboptimumg.vehicle.models.DRSModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
-
field drs_cd:
float[Required]# DRS drag coefficient
- Constraints:
gt = 0
-
field drs_cl:
float[Required]# DRS lift coefficient
- Constraints:
gt = 0
-
field drs_front_area:
float[Required]# DRS frontal area (m²)
- Constraints:
gt = 0
-
field drs_cop:
float[Required]# DRS center of pressure (fraction toward front)
- Constraints:
gt = 0
lt = 1.0
-
field drs_accel_thresh:
float[Required]# Acceleration threshold for DRS activation (m/s²)
- Constraints:
ge = 0
-
field drs_present:
bool[Required]# Whether DRS is equipped
- class suboptimumg.vehicle.models.DriveSetup(*values)[source]#
Bases:
str,Enum- FOUR_WHEEL_DRIVE = 'FOUR_WHEEL_DRIVE'#
- REAR_WHEEL_DRIVE = 'REAR_WHEEL_DRIVE'#
- pydantic model suboptimumg.vehicle.models.DriverInterfaceModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
- Validators:
-
field brake_bias:
float[Required]# Front brake bias (0-1, where 1.0 = all front)
- Constraints:
gt = 0
lt = 1.0
- Validated by:
-
field seat_angle:
float[Required]# Driver seat angle (degrees)
- validator validate_brake_bias_plausible » brake_bias[source]#
- pydantic model suboptimumg.vehicle.models.MotorModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
- Validators:
-
field name:
str[Required]# Product name
-
field max_rpm:
int[Required]# Max RPM of motor
- Constraints:
gt = 0
- Validated by:
-
field fw_rpm:
int[Required]# Field weakening RPM inflection point
- Constraints:
gt = 0
- Validated by:
-
field max_torque:
int[Required]# Max torque of motor (Nm)
- Constraints:
gt = 0
- Validated by:
-
field fw_torque:
int[Required]# Field weakening torque inflection point (Nm)
- Constraints:
gt = 0
- Validated by:
-
field pow_lim:
float[Required]# Power limit (W)
- Constraints:
gt = 0
- Validated by:
-
field efficiency_method:
Literal['sys','indiv'] [Required]# Efficiency calculation method: ‘sys’ or ‘indiv’
-
field moc_efficiency:
float[Required]# Motor controller efficiency
- Constraints:
gt = 0
le = 1.0
- Validated by:
-
field motor_efficiency:
float[Required]# Motor efficiency
- Constraints:
gt = 0
le = 1.0
- Validated by:
-
field chain_efficiency:
float[Required]# Chain efficiency
- Constraints:
gt = 0
le = 1.0
- Validated by:
-
field diff_efficiency:
float[Required]# Differential efficiency (currently unused)
- Constraints:
gt = 0
le = 1.0
-
field system_efficiency:
float[Required]# Alternative to product of individual efficiencies if efficiency_method is ‘sys’
- Constraints:
gt = 0
le = 1.0
-
field mass:
float[Required]# Motor mass (kg)
- Constraints:
gt = 0
-
field ideal_gear_ratio:
float[Required]# Ideal gear ratio (currently unused)
- Constraints:
gt = 0
- validator validate_moc_efficiency » moc_efficiency[source]#
- validator validate_motor_efficiency » motor_efficiency[source]#
- validator validate_chain_efficiency » chain_efficiency[source]#
- validator validate_max_torque_plausible » max_torque[source]#
- pydantic model suboptimumg.vehicle.models.PowertrainModel[source]#
Bases:
BaseModelPowertrain configuration including motor and transmission.
- Config:
validate_assignment: bool = True
- Fields:
- Validators:
validate_regen_config»all fields
-
field motor:
MotorModel[Required]# Motor configuration
- Validated by:
-
field ratio:
float[Required]# Gear ratio (wheel_rpm = motor_rpm / ratio)
- Constraints:
gt = 0
- Validated by:
-
field regen_percent:
float[Required]# Regenerative braking percentage (0-1)
- Constraints:
ge = 0
le = 1.0
- Validated by:
-
field max_regen:
int[Required]# Maximum regenerative power (W)
- Constraints:
ge = 0
- Validated by:
-
field coast_trigger:
float[Required]# Coasting trigger threshold
- Validated by:
-
field coast_release_offset:
float[Required]# Coasting release offset
- Validated by:
- pydantic model suboptimumg.vehicle.models.SimpleSuspensionModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
-
field type:
Literal['Simple'] = 'Simple'# Suspension type
- class suboptimumg.vehicle.models.SuspensionType(*values)[source]#
Bases:
str,Enum- COMPLEX = 'Complex'#
- SIMPLE = 'Simple'#
- pydantic model suboptimumg.vehicle.models.TireModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
- Validators:
-
field weight:
float[Required]# Weight of each tire (N)
- Constraints:
gt = 0
- Validated by:
-
field tire_radius:
float[Required]# Radius of each tire (inches)
- Constraints:
gt = 0
- Validated by:
-
field mu_lat_zero_load:
float[Required]# Lateral friction coefficient at zero load (unitless)
- Constraints:
gt = 0
- Validated by:
-
field mu_long_lat_ratio:
float[Required]# Ratio of longitudinal to lateral friction (unitless)
- Constraints:
gt = 0
- Validated by:
- validator validate_tire_radius_plausible » tire_radius[source]#
- validator validate_mu_lat_zero_load_plausible » mu_lat_zero_load[source]#
- validator validate_mu_long_lat_ratio_plausible » mu_long_lat_ratio[source]#
- pydantic model suboptimumg.vehicle.models.VehicleModel[source]#
Bases:
BaseModel- Config:
validate_assignment: bool = True
- Fields:
- Validators:
-
field mass:
float[Required]# Total vehicle mass (kg)
- Constraints:
gt = 0
-
field w_distr_b:
float[Required]# Rear weight distribution percentage (0-1)
- Constraints:
gt = 0
lt = 1
-
field cg_h:
float[Required]# Center of gravity height (m)
- Constraints:
gt = 0
-
field wb:
float[Required]# Wheelbase (m)
- Constraints:
gt = 0
-
field front_track:
float[Required]# Front track width (m)
- Constraints:
gt = 0
-
field rear_track:
float[Required]# Rear track width (m)
- Constraints:
gt = 0
-
field rolling_coeff:
float[Required]# Rolling resistance coefficient (unitless)
- Constraints:
ge = 0
- Validated by:
-
field setup:
DriveSetup[Required]# Drive configuration
- property w_distr_front: float#
- property track: float#
-
field pwrtn:
PowertrainModel[Required]# Powertrain configuration
-
field accum:
AccumulatorModel[Required]# Accumulator configuration
-
field sus:
SimpleSuspensionModel|ComplexSuspensionModel[Required]# Suspension configuration
-
field dri:
DriverInterfaceModel[Required]# Driver interface configuration
-
field chass:
ChassisModel|None= None# Chassis configuration
- validator validate_rolling_coeff » rolling_coeff[source]#