2.2.3.7. vehicle_model module

Module implementing vehicle model to translate different values into others.

Translate steering wheel angle to ackermann angle and the other way around as well as translating acceleration to necessary motor torque and service brake pressure.

class vehicle_model.VehicleModel(m: float, radius: float, gear_ratio: float, steering_wheel_angle_range: float, steering_wheel_angle_offset: float, steering_wheel_to_ackermann_angle_factor: float)[source]

Bases: object

Vehicle Model class to implement functionalities to translate different values into others.

Translate steering wheel angle to ackermann angle and the other way around as well as translating acceleration to necessary motor torque and service brake pressure.

m_ges

Vehicle mass [kg].

Type:

float

r

Wheel radius [m].

Type:

float

ue

Ratio of gear on rear axle [i].

Type:

float

normalization

Normalization of ackermann_angle.

Type:

float

track_width

Track width of vehicle [m].

Type:

float

deadband

tbd.

Type:

float

l_arm

Length of steering arm [m].

Type:

float

l_rack

Rack casing length [m].

Type:

float

l_tie

Tie rod length [m]

Type:

float

D

Distance between rack an axes [m].

Type:

float

r_pin

Pin radius [m].

Type:

float

steering_wheel_angle_range

Range of steering [degrees] from most left to most right steering wheel angle.

Type:

float

steering_wheel_angle_offset

Offset of steering wheel angle, where the vehicle really drives straight.

Type:

float

steering_wheel_to_ackermann_angle_factor

Factor to convert steering wheel angles [rad] to ackermann angle [rad].

Type:

float

A_HBZ_f

Kolbenflaeche Hauptbremszylinder vorne [m^2].

Type:

float

A_HBZ_r

Kolbenflaeche Hauptbremszylinder hinten [m^2].

Type:

float

A_RBZ

Zylinderflaeche Radbremse [m^2].

Type:

float

n_RBZ_f

Anzahl Radbremszylinder vorne.

Type:

float

n_RBZ_r

Anzahl Radbremszylinder hinten.

Type:

float

r_Bf

Effektivradius Bremssattel vorne [m].

Type:

float

r_Br

Effektivradius Bremssattel hinten [m].

Type:

float

C

Bremskoeffizient [1].

Type:

float

nu_Sattel

Wirkungsgrad Bremssattel [1].

Type:

float

C_BS

Temperaturkoeffizient Bremsscheibe [J/(kg*K)].

Type:

float

m_BS

Masse Bremsscheibe [kg].

Type:

float

A_PNEU_f

Kolbenflaeche Pneumatik vorne [m^2].

Type:

float

A_PNEU_r

Kolbenflaeche Pneumatik hinten [m^2].

Type:

float

A_HYD

Kolbenflaeche Hydraulik [m^2].

Type:

float

r_reib_f

wirksamer Reibradius vorne [m].

Type:

float

r_reib_r

wirksamer Reibradius hinten [m].

Type:

float

nu_mech

mechanischer Wirkungsrad.

Type:

float

ackermann_to_steering_wheel_angle_lut

LookUpTable between ackermann angle [rad] and steering wheel angle [degrees].

Type:

interp1d

steering_wheel_to_ackermann_angle_lut

LookUpTable between steering wheel angle [degrees] and ackermann angle [rad].

Type:

interp1d

Initialize Vehicle Model.

Static Parmaters derived by Benjamin Deml, Birk Blumhoff and Oliver Zbaranski.

Parameters:
  • m (float) – Vehicle mass [kg].

  • radius (float) – Wheel radius [m].

  • gear_ratio (float) – Ratio of gear on rear axle.

  • steering_wheel_angle_range (float) – Range of steering [degrees] from most left to most right steering wheel angle.

  • steering_wheel_angle_offset (float) – Offset of steering wheel angle, where the vehicle really drives straight.

  • steering_wheel_to_ackermann_angle_factor (float) – Factor to convert steering wheel angles [rad] to ackermann angle [rad].

acceleration_to_motor_torque(acceleration: ndarray[Any, dtype[ScalarType]] | float) ndarray[Any, dtype[ScalarType]] | float[source]

Translate reference acceleration [m/s^2] into necessary motor torque for total powertrain [Nm].

Calculations derived by Oliver Zbaranski.

Parameters:

acceleration (float) – Reference vehicle acceleration in x direction [m/s^2].

Returns:

Necessary motor torque for total powertrain [Nm].

Return type:

float

acceleration_to_pneumatic_pressure(brake_acceleration: ndarray[Any, dtype[ScalarType]] | float) ndarray[Any, dtype[ScalarType]] | float[source]

Translate reference acceleration [m/s^2] into necessary pneumatic pressure for the service brake [bar].

Calculations based on Benjamin Deml.

Parameters:

acceleration (float) – Reference vehicle acceleration in x direction [m/s^2].

Returns:

Necessary pneumatic pressure for the service brake [bar].

Return type:

float

ackermann_to_steering_wheel_angle(ackermann_angle: float) float[source]

Translate ackermann angle [rad] to steering wheel angle [degrees].

Parameters:

ackermann_angle (float) – Ackermann angle [rad].

Returns:

Steering wheel angle [degrees].

Return type:

float

motor_torque(acceleration: float) float[source]

Translate reference acceleration [m/s^2] into necessary motor torque for total powertrain [Nm].

Calculations derived by Oliver Zbaranski.

Parameters:

acceleration (float) – Reference vehicle acceleration in x direction [m/s^2].

Returns:

Necessary motor torque for total powertrain [Nm].

Return type:

float

pneumatic_pressure(acceleration: float) float[source]

Translate reference acceleration [m/s^2] into necessary pneumatic pressure for the service brake [bar].

Calculations based on Benjamin Deml.

Parameters:

acceleration (float) – Reference vehicle acceleration in x direction [m/s^2].

Returns:

Necessary pneumatic pressure for the service brake [bar].

Return type:

float

prepare_acceleration_look_up_tables()[source]
prepare_steering_look_up_tables()[source]

Prepare look up table between steering wheel angle and ackermann angle and vice versa.

steering_wheel_to_ackermann_angle(steering_wheel_angle: float) float[source]

Translate steering wheel angle [degrees] to ackermann angle [rad].

Uses the previously calculated look up table.

Parameters:

steering_wheel_angle (float) – Steering wheel angle [degrees].

Returns:

Respective ackermann angle [rad.]

Return type:

float

steering_wheel_to_ackermann_angle_precise(steering_wheel_angle: ndarray[Any, dtype[ScalarType]] | float) ndarray[Any, dtype[ScalarType]] | float[source]

Precisely calculate ackermann angle(s) [rad] for given steering wheel angle(s) [rad] based on steering model.

Steering Model derived by Birk Blumhoff. Overwritten by linear relationship defined by an steering wheel offset and steering wheel angle factor.

Parameters:

steering_wheel_angle (Union[npt.NDArray, float]) – Single steering wheel angle or multiple steering wheel angles [rad].

Returns:

Converted ackermann angle or multiple steackermann angles [rad].

Return type:

Union[npt.NDArray, float]