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 ratioF_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 angleF_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 derivativesdt
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 vectoru
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 angledelta_dot_cmd
Commanded steering ratedt
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 clamplo
Lower boundhi
Upper bound
Returns:
Clamped value
The documentation for this class was generated from the following file include/jalansim/dynamics/models/bicycle_drift.hpp