suboptimumg.vehicle.subsystem_models#

class suboptimumg.vehicle.subsystem_models.AccumulatorModel[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

Constraints

capacity

float

Yes

gt=0

energy_density

float

Yes

gt=0

pack_weight

float

Yes

gt=0

total_pow_lim

float

Yes

gt=0

Parameters:
  • pack_weight (Annotated[float, Gt(gt=0)])

  • capacity (Annotated[float, Gt(gt=0)])

  • energy_density (Annotated[float, Gt(gt=0)])

  • total_pow_lim (Annotated[float, Gt(gt=0)])

capacity: float#
energy_density: float#
pack_weight: float#
total_pow_lim: float#
class suboptimumg.vehicle.subsystem_models.AeroModel[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

Constraints

cd

float

Yes

ge=0

cl

float

Yes

ge=0

cop

float

Yes

gt=0, lt=1.0

drs

DRSModel | None

No

None

front_area

float

Yes

gt=0

Parameters:
  • cd (Annotated[float, Ge(ge=0)])

  • cl (Annotated[float, Ge(ge=0)])

  • front_area (Annotated[float, Gt(gt=0)])

  • cop (Annotated[float, Gt(gt=0), Lt(lt=1)])

  • drs (DRSModel | None)

cd: float#
cl: float#
cop: float#
drs: DRSModel | None#
front_area: float#
classmethod validate_cd_plausible(v)[source]#
classmethod validate_cl_plausible(v)[source]#
classmethod validate_cop_plausible(v)[source]#
classmethod validate_front_area_plausible(v)[source]#
class suboptimumg.vehicle.subsystem_models.ChassisModel[source]#

Bases: BaseModel

class suboptimumg.vehicle.subsystem_models.ComplexSuspensionModel[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

Constraints

front_roll_center_height

float

Yes

gt=0

front_roll_stiffness_k

float

Yes

gt=0

rear_roll_center_height

float

Yes

gt=0

rear_roll_stiffness_k

float

Yes

gt=0

type

Literal[‘Complex’]

No

'Complex'

Parameters:
  • type (Literal['Complex'])

  • front_roll_center_height (Annotated[float, Gt(gt=0)])

  • rear_roll_center_height (Annotated[float, Gt(gt=0)])

  • front_roll_stiffness_k (Annotated[float, Gt(gt=0)])

  • rear_roll_stiffness_k (Annotated[float, Gt(gt=0)])

front_roll_center_height: float#
front_roll_stiffness_k: float#
rear_roll_center_height: float#
rear_roll_stiffness_k: float#
type: Literal['Complex']#
class suboptimumg.vehicle.subsystem_models.DRSModel[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

Constraints

drs_accel_thresh

float

Yes

ge=0

drs_cd

float

Yes

gt=0

drs_cl

float

Yes

gt=0

drs_cop

float

Yes

gt=0, lt=1.0

drs_front_area

float

Yes

gt=0

drs_present

bool

Yes

Parameters:
  • drs_cd (Annotated[float, Gt(gt=0)])

  • drs_cl (Annotated[float, Gt(gt=0)])

  • drs_front_area (Annotated[float, Gt(gt=0)])

  • drs_cop (Annotated[float, Gt(gt=0), Lt(lt=1)])

  • drs_accel_thresh (Annotated[float, Ge(ge=0)])

  • drs_present (bool)

drs_accel_thresh: float#
drs_cd: float#
drs_cl: float#
drs_cop: float#
drs_front_area: float#
drs_present: bool#
class suboptimumg.vehicle.subsystem_models.DriveSetup(*values)[source]#

Bases: str, Enum

FOUR_WHEEL_DRIVE = 'FOUR_WHEEL_DRIVE'#
REAR_WHEEL_DRIVE = 'REAR_WHEEL_DRIVE'#
class suboptimumg.vehicle.subsystem_models.DriverInterfaceModel[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

Constraints

brake_bias

float

Yes

gt=0, lt=1.0

seat_angle

float

Yes

Validators#

Validator

Mode

Fields

validate_brake_bias_plausible

after

brake_bias

Parameters:
  • brake_bias (Annotated[float, Gt(gt=0), Lt(lt=1)])

  • seat_angle (float)

brake_bias: float#
seat_angle: float#
classmethod validate_brake_bias_plausible(v)[source]#
class suboptimumg.vehicle.subsystem_models.MotorModel[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

Constraints

chain_efficiency

float

Yes

gt=0, le=1.0

diff_efficiency

float

Yes

gt=0, le=1.0

efficiency_data

list

Yes

efficiency_method

Literal[‘sys’, ‘indiv’]

Yes

fw_rpm

float

Yes

gt=0

fw_torque

float

Yes

gt=0

ideal_gear_ratio

float

Yes

gt=0

mass

float

Yes

gt=0

max_rpm

float

Yes

gt=0

max_torque

float

Yes

gt=0

moc_efficiency

float

Yes

gt=0, le=1.0

moi_motor

float

Yes

motor_efficiency

float

Yes

gt=0, le=1.0

name

str

Yes

pow_lim

float

Yes

gt=0

setup

DriveSetup

Yes

system_efficiency

float

Yes

gt=0, le=1.0

use_efficiency_lut

bool

Yes

Parameters:
  • name (str)

  • setup (DriveSetup)

  • max_rpm (Annotated[float, Gt(gt=0)])

  • fw_rpm (Annotated[float, Gt(gt=0)])

  • max_torque (Annotated[float, Gt(gt=0)])

  • fw_torque (Annotated[float, Gt(gt=0)])

  • pow_lim (Annotated[float, Gt(gt=0)])

  • moi_motor (float)

  • efficiency_method (Literal['sys', 'indiv'])

  • moc_efficiency (Annotated[float, Gt(gt=0), Le(le=1.0)])

  • motor_efficiency (Annotated[float, Gt(gt=0), Le(le=1.0)])

  • chain_efficiency (Annotated[float, Gt(gt=0), Le(le=1.0)])

  • diff_efficiency (Annotated[float, Gt(gt=0), Le(le=1.0)])

  • system_efficiency (Annotated[float, Gt(gt=0), Le(le=1.0)])

  • mass (Annotated[float, Gt(gt=0)])

  • ideal_gear_ratio (Annotated[float, Gt(gt=0)])

  • use_efficiency_lut (bool)

  • efficiency_data (list)

chain_efficiency: float#
diff_efficiency: float#
efficiency_data: list#
efficiency_method: Literal['sys', 'indiv']#
fw_rpm: float#
classmethod fw_rpm_less_than_max_rpm(v, info)[source]#
fw_torque: float#
classmethod fw_torque_less_than_max_torque(v, info)[source]#
ideal_gear_ratio: float#
mass: float#
max_rpm: float#
max_torque: float#
moc_efficiency: float#
moi_motor: float#
motor_efficiency: float#
name: str#
pow_lim: float#
setup: DriveSetup#
system_efficiency: float#
use_efficiency_lut: bool#
classmethod validate_chain_efficiency(v)[source]#
classmethod validate_efficiency_data_plausible(v)[source]#
classmethod validate_fw_rpm_plausible(v)[source]#
classmethod validate_fw_torque_plausible(v)[source]#
classmethod validate_max_rpm_plausible(v)[source]#
classmethod validate_max_torque_plausible(v)[source]#
classmethod validate_moc_efficiency(v)[source]#
classmethod validate_motor_efficiency(v)[source]#
classmethod validate_power_limit(v)[source]#
classmethod validate_setup(v)[source]#
class suboptimumg.vehicle.subsystem_models.PowertrainModel[source]#

Bases: BaseModel

Powertrain configuration including motor and transmission.

Fields#

Field

Type

Required

Default

Constraints

coast_release_offset

float

Yes

coast_trigger

float

Yes

max_regen

int

Yes

ge=0

moi_gb

float

Yes

motor

MotorModel

Yes

ratio

float

Yes

gt=0

regen_percent

float

Yes

ge=0, le=1.0

Validators#

Validator

Mode

Fields

validate_ratio_plausible

after

ratio

validate_regen_config

after

model

Parameters:
  • motor (MotorModel)

  • ratio (Annotated[float, Gt(gt=0)])

  • regen_percent (Annotated[float, Ge(ge=0), Le(le=1.0)])

  • max_regen (Annotated[int, Ge(ge=0)])

  • coast_trigger (float)

  • coast_release_offset (float)

  • moi_gb (float)

coast_release_offset: float#
coast_trigger: float#
max_regen: int#
moi_gb: float#
motor: MotorModel#
ratio: float#
regen_percent: float#
classmethod validate_ratio_plausible(v)[source]#
validate_regen_config()[source]#
class suboptimumg.vehicle.subsystem_models.SimpleSuspensionModel[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

type

Literal[‘Simple’]

No

'Simple'

Parameters:

type (Literal['Simple'])

type: Literal['Simple']#
class suboptimumg.vehicle.subsystem_models.SuspensionType(*values)[source]#

Bases: str, Enum

COMPLEX = 'Complex'#
SIMPLE = 'Simple'#
class suboptimumg.vehicle.subsystem_models.TireModel[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

Constraints

moi_rim

float

Yes

moi_tire

float

Yes

mu_lat_zero_load

float

Yes

gt=0

mu_long_lat_ratio

float

Yes

gt=0

tire_radius

float

Yes

gt=0

weight

float

Yes

gt=0

Parameters:
  • weight (Annotated[float, Gt(gt=0)])

  • tire_radius (Annotated[float, Gt(gt=0)])

  • mu_lat_zero_load (Annotated[float, Gt(gt=0)])

  • mu_long_lat_ratio (Annotated[float, Gt(gt=0)])

  • moi_rim (float)

  • moi_tire (float)

moi_rim: float#
moi_tire: float#
mu_lat_zero_load: float#
mu_long_lat_ratio: float#
tire_radius: float#
classmethod validate_mu_lat_zero_load_plausible(v)[source]#
classmethod validate_mu_long_lat_ratio_plausible(v)[source]#
classmethod validate_tire_radius_plausible(v)[source]#
classmethod validate_weight_plausible(v)[source]#
weight: float#