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:
field drs: DRSModel | None = None#

DRS configuration

validator validate_cd_plausible  »  cd[source]#
validator validate_cl_plausible  »  cl[source]#
validator validate_front_area_plausible  »  front_area[source]#
validator validate_cop_plausible  »  cop[source]#
pydantic model suboptimumg.vehicle.models.ChassisModel[source]#

Bases: BaseModel

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 fw_rpm_less_than_max_rpm  »  fw_rpm[source]#
validator fw_torque_less_than_max_torque  »  fw_torque[source]#
validator validate_power_limit  »  pow_lim[source]#
validator validate_moc_efficiency  »  moc_efficiency[source]#
validator validate_motor_efficiency  »  motor_efficiency[source]#
validator validate_chain_efficiency  »  chain_efficiency[source]#
validator validate_max_rpm_plausible  »  max_rpm[source]#
validator validate_fw_rpm_plausible  »  fw_rpm[source]#
validator validate_max_torque_plausible  »  max_torque[source]#
validator validate_fw_torque_plausible  »  fw_torque[source]#
pydantic model suboptimumg.vehicle.models.PowertrainModel[source]#

Bases: BaseModel

Powertrain configuration including motor and transmission.

Config:
  • validate_assignment: bool = True

Fields:
Validators:
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:
validator validate_ratio_plausible  »  ratio[source]#
validator validate_regen_config  »  all fields[source]#
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_weight_plausible  »  weight[source]#
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 aero: AeroModel [Required]#

Aerodynamics configuration

field pwrtn: PowertrainModel [Required]#

Powertrain configuration

field accum: AccumulatorModel [Required]#

Accumulator configuration

field sus: SimpleSuspensionModel | ComplexSuspensionModel [Required]#

Suspension configuration

field tires: TireModel [Required]#

Tire parameters

field dri: DriverInterfaceModel [Required]#

Driver interface configuration

field chass: ChassisModel | None = None#

Chassis configuration

validator validate_rolling_coeff  »  rolling_coeff[source]#