suboptimumg.vehicle.suspension.tire#

class suboptimumg.vehicle.suspension.tire.Tire[source]#

Bases: object

calc_mu(mu_long_lat_ratio, mu_lat_zero_load)[source]#

Calculate mu_lat and mu_long according to an equation fitted from TTC data.

Parameters:
  • mu_long_lat_ratio (float) – Ratio of longitudinal to lateral friction coefficients (unitless)

  • mu_lat_zero_load (float) – Lateral friction coefficient at zero normal force (unitless)

Returns:

  • float – mu_lat - Lateral friction coefficient

  • float – mu_long - Longitudinal friction coefficient

Notes

Uses quadratic fit from TTC (Tire Test Consortium) data. Returns (0, 0) if tire is lifted (normal force <= 0).

is_current_lateral_force_valid(mu_long_lat_ratio, mu_lat_zero_load)[source]#

Check whether the requested lateral force results in oversaturating the tire.

Parameters:
  • mu_long_lat_ratio (float) – Ratio of longitudinal to lateral friction coefficients (unitless)

  • mu_lat_zero_load (float) – Lateral friction coefficient at zero normal force (unitless)

Returns:

True if current lateral force is valid, False otherwise

Return type:

bool

Notes

Should be called only after lateral force is correctly updated.

long_remain(mu_long_lat_ratio, mu_lat_zero_load)[source]#

Calculates the remaining longitudinal grip of the tire based on a friction ellipse

ELLIPSE EQN: (x^2 / radius_x^2) + (y^2 / radius_y^2) = n^2

(f_lat^2 / mu_lat^2) + (f_long^2 / mu_long^2) = f_normal^2 f_long = mu_long * sqrt( f_normal^2 - ( f_lat^2 / mu_lat^2 ) )

Returns:

Remaining longitudinal grip (N).

Return type:

float

reset()[source]#
class suboptimumg.vehicle.suspension.tire.Tires(vehicle_model)[source]#

Bases: object

Parameters:

vehicle_model (VehicleModel)

initialize_tires(fl_norm, fr_norm, bl_norm, br_norm)[source]#
Parameters:
  • fl_norm (float)

  • fr_norm (float)

  • bl_norm (float)

  • br_norm (float)

reset_tires(fl_norm, fr_norm, bl_norm, br_norm)[source]#
Parameters:
  • fl_norm (float)

  • fr_norm (float)

  • bl_norm (float)

  • br_norm (float)