Struct jalansim::dynamics::models::BicycleDrift

ClassList > jalansim > dynamics > models > BicycleDrift

Advanced bicycle model with drift dynamics and tire forces. More...

  • #include <bicycle_drift.hpp>

Public Attributes

Type Name
double C_alpha = 80000.0
Tire cornering stiffness (N/rad)
double I_y_w = 1.2
Wheel moment of inertia (kg⋅m²)
double I_z = 2000.0
Yaw moment of inertia (kg⋅m²)
double R_w = 0.33
Wheel radius (m)
double T_sb = 0.5
Brake torque distribution to front.
double T_se = 0.5
Engine torque distribution to front.
double a = 1.1
Distance from CG to front axle (m)
double acc_max = 3.0
Maximum acceleration (m/s²)
double acc_min = -5.0
Minimum acceleration (m/s²)
double b = 1.6
Distance from CG to rear axle (m)
double delta_dot_max = 1.0
Maximum steering rate (rad/s)
double delta_dot_min = -1.0
Minimum steering rate (rad/s)
double delta_max = 0.6
Maximum steering angle (rad)
double delta_min = -0.6
Minimum steering angle (rad)
double h = 0.5
Height of center of gravity (m)
double m = 1300.0
Vehicle mass (kg)
double v_blend = 0.05
Velocity blending width (m/s)
double v_switch = 0.2
Velocity threshold for kinematic/dynamic switching (m/s)

Public Static Attributes

Type Name
std::size_t INPUT_DIM = 2
Input dimension: [delta_dot, a_long].
std::size_t STATE_DIM = 9
State dimension: [x, y, delta, v, psi, psi_dot, beta, omega_f, omega_r].

Public Functions

Type Name
JALANSIM_HOST_DEVICE double Fx_simple (double slip, double F_z) const
Compute longitudinal tire force using simple slip model.
JALANSIM_HOST_DEVICE double Fy_linear (double alpha, double F_z) const
Compute lateral tire force using linear tire model.
JALANSIM_HOST_DEVICE double accel_limit (double a_cmd) const
Apply acceleration constraints.
JALANSIM_HOST_DEVICE void reset ()
Reset the model to initial state.
JALANSIM_HOST_DEVICE void rhs (const double * x, const double * u_cmd, double * dx, double dt) const
Compute state derivatives using full dynamic bicycle model.
JALANSIM_HOST_DEVICE void rhs_kin_cog (const double * x, const double * u, double * dx) const
Kinematic bicycle model for low-speed operation.
JALANSIM_HOST_DEVICE double steering_limit (double delta, double delta_dot_cmd, double dt) const
Apply steering angle and rate constraints.

Public Static Functions

Type Name
JALANSIM_HOST_DEVICE double clamp (double v, double lo, double hi)
Clamp a value between lower and upper bounds.

Detailed Description

Implements a sophisticated 9-DOF bicycle model that includes wheel slip dynamics, tire forces, weight transfer effects, and drift behavior. Models front and rear wheel angular velocities explicitly and includes both kinematic and dynamic modes with smooth blending at low speeds. Uses Pacejka-like tire models for realistic force generation and includes drivetrain dynamics.

State: [x, y, delta, v, psi, psi_dot, beta, omega_f, omega_r] Input: [delta_dot, acceleration]

Public Attributes Documentation

variable C_alpha

Tire cornering stiffness (N/rad)

double jalansim::dynamics::models::BicycleDrift::C_alpha;

variable I_y_w

Wheel moment of inertia (kg⋅m²)

double jalansim::dynamics::models::BicycleDrift::I_y_w;

variable I_z

Yaw moment of inertia (kg⋅m²)

double jalansim::dynamics::models::BicycleDrift::I_z;

variable R_w

Wheel radius (m)

double jalansim::dynamics::models::BicycleDrift::R_w;

variable T_sb

Brake torque distribution to front.

double jalansim::dynamics::models::BicycleDrift::T_sb;

variable T_se

Engine torque distribution to front.

double jalansim::dynamics::models::BicycleDrift::T_se;

variable a

Distance from CG to front axle (m)

double jalansim::dynamics::models::BicycleDrift::a;

variable acc_max

Maximum acceleration (m/s²)

double jalansim::dynamics::models::BicycleDrift::acc_max;

variable acc_min

Minimum acceleration (m/s²)

double jalansim::dynamics::models::BicycleDrift::acc_min;

variable b

Distance from CG to rear axle (m)

double jalansim::dynamics::models::BicycleDrift::b;

variable delta_dot_max

Maximum steering rate (rad/s)

double jalansim::dynamics::models::BicycleDrift::delta_dot_max;

variable delta_dot_min

Minimum steering rate (rad/s)

double jalansim::dynamics::models::BicycleDrift::delta_dot_min;

variable delta_max

Maximum steering angle (rad)

double jalansim::dynamics::models::BicycleDrift::delta_max;

variable delta_min

Minimum steering angle (rad)

double jalansim::dynamics::models::BicycleDrift::delta_min;

variable h

Height of center of gravity (m)

double jalansim::dynamics::models::BicycleDrift::h;

variable m

Vehicle mass (kg)

double jalansim::dynamics::models::BicycleDrift::m;

variable v_blend

Velocity blending width (m/s)

double jalansim::dynamics::models::BicycleDrift::v_blend;

variable v_switch

Velocity threshold for kinematic/dynamic switching (m/s)

double jalansim::dynamics::models::BicycleDrift::v_switch;

Public Static Attributes Documentation

variable INPUT_DIM

Input dimension: [delta_dot, a_long].

std::size_t jalansim::dynamics::models::BicycleDrift::INPUT_DIM;

variable STATE_DIM

State dimension: [x, y, delta, v, psi, psi_dot, beta, omega_f, omega_r].

std::size_t jalansim::dynamics::models::BicycleDrift::STATE_DIM;

Public Functions Documentation

function Fx_simple

Compute longitudinal tire force using simple slip model.

inline JALANSIM_HOST_DEVICE double jalansim::dynamics::models::BicycleDrift::Fx_simple (
    double slip,
    double F_z
) const

Parameters:

  • slip Tire longitudinal slip ratio
  • F_z Normal force on tire

Returns:

Longitudinal tire force


function Fy_linear

Compute lateral tire force using linear tire model.

inline JALANSIM_HOST_DEVICE double jalansim::dynamics::models::BicycleDrift::Fy_linear (
    double alpha,
    double F_z
) const

Parameters:

  • alpha Tire slip angle
  • F_z Normal force on tire

Returns:

Lateral tire force


function accel_limit

Apply acceleration constraints.

inline JALANSIM_HOST_DEVICE double jalansim::dynamics::models::BicycleDrift::accel_limit (
    double a_cmd
) const

Parameters:

  • a_cmd Commanded acceleration

Returns:

Constrained acceleration


function reset

Reset the model to initial state.

inline JALANSIM_HOST_DEVICE void jalansim::dynamics::models::BicycleDrift::reset () 

function rhs

Compute state derivatives using full dynamic bicycle model.

inline JALANSIM_HOST_DEVICE void jalansim::dynamics::models::BicycleDrift::rhs (
    const double * x,
    const double * u_cmd,
    double * dx,
    double dt
) const

Implements the complete 9-DOF bicycle dynamics with tire forces, wheel slip, weight transfer, and mode switching between kinematic and dynamic behavior based on vehicle speed. Includes realistic tire models and drivetrain dynamics.

Parameters:

  • x State vector [x, y, delta, v, psi, psi_dot, beta, omega_f, omega_r]
  • u_cmd Input vector [delta_dot, a_long]
  • dx Output state derivatives
  • dt Time step for constraint enforcement

function rhs_kin_cog

Kinematic bicycle model for low-speed operation.

inline JALANSIM_HOST_DEVICE void jalansim::dynamics::models::BicycleDrift::rhs_kin_cog (
    const double * x,
    const double * u,
    double * dx
) const

Parameters:

  • x State vector
  • u Control input vector [delta_dot, a_long]
  • dx Output state derivatives

function steering_limit

Apply steering angle and rate constraints.

inline JALANSIM_HOST_DEVICE double jalansim::dynamics::models::BicycleDrift::steering_limit (
    double delta,
    double delta_dot_cmd,
    double dt
) const

Parameters:

  • delta Current steering angle
  • delta_dot_cmd Commanded steering rate
  • dt Time step for angle constraint enforcement

Returns:

Constrained steering rate


Public Static Functions Documentation

function clamp

Clamp a value between lower and upper bounds.

static inline JALANSIM_HOST_DEVICE double jalansim::dynamics::models::BicycleDrift::clamp (
    double v,
    double lo,
    double hi
) 

Parameters:

  • v Value to clamp
  • lo Lower bound
  • hi Upper bound

Returns:

Clamped value



The documentation for this class was generated from the following file include/jalansim/dynamics/models/bicycle_drift.hpp