Definition of a single-tire test rig.

#include <ChTireTestRig.h>

Public Types

enum  Mode { Mode::SUSPEND, Mode::DROP, Mode::TEST }
 Tire test rig operation mode. More...

Public Member Functions

 ChTireTestRig (std::shared_ptr< ChWheel > wheel, std::shared_ptr< ChTire > tire, ChSystem *system)
 Construct a tire test rig within the specified system. More...
void SetGravitationalAcceleration (double grav)
 Set gravitational acceleration (default: 9.81 m/s2).
void SetNormalLoad (double load)
 Set desired normal load (default: 1000 N).
double GetNormalLoad (double load) const
 Get the normal load.
void SetCamberAngle (double camber)
 Set camber angle (default: 0 rad).
void SetLongSpeedFunction (std::shared_ptr< ChFunction > funct)
 Specify rig carrier longitudinal speed as function of time (default: none). More...
void SetAngSpeedFunction (std::shared_ptr< ChFunction > funct)
 Specify wheel angular speed as function of time (default: none). More...
void SetSlipAngleFunction (std::shared_ptr< ChFunction > funct)
 Specify wheel slip angle as function of time (default: constant value 0 rad).
void SetConstantLongitudinalSlip (double long_slip, double base_speed=1)
 Specify a constant given longitudinal slip. More...
void SetTireCollisionType (ChTire::CollisionType coll_type)
 Set collision type for tire-terrain interaction (default: SINGLE_POINT).
void SetTireStepsize (double step)
 Set the time step for advancing tire dynamics (default: 1e-3 s).
void SetTireVisualizationType (VisualizationType vis)
 Set visualization type for the tire (default: PRIMITIVES).
void SetTerrainSCM (double Bekker_Kphi, double Bekker_Kc, double Bekker_n, double Mohr_cohesion, double Mohr_friction, double Janosi_shear, double terrain_length=10)
 Enable use of SCM terrain. Specify SCM soil parameters. More...
void SetTerrainRigid (double friction, double restitution, double Young_modulus, double terrain_length=10)
 Enable use of rigid terrain. Specify contact material properties. More...
void SetTerrainGranular (double radius, unsigned int num_layers, double density, double friction, double cohesion, double Young_modulus)
 Enable use of granular terrain. More...
void SetTimeDelay (double delay)
 Set time delay before applying motion functions (default: 0 s).
void Initialize (Mode mode)
 Initialize the rig system. More...
void GetSuggestedCollisionSettings (double &collision_envelope, ChVector3i &collision_bins) const
 Get suggested collision settings. More...
void Advance (double step)
 Advance system state by the specified time step.
double GetMass () const
 Get total rig mass.
std::shared_ptr< ChTerrainGetTerrain () const
 Get a handle to the underlying terrain subsystem.
const ChVector3dGetPos () const
 Get current carrier body position.
TerrainForce ReportTireForce () const
 Get the current tire forces.
double GetDBP () const
 Return current drawbar-pull value. More...

Member Enumeration Documentation

◆ Mode

Tire test rig operation mode.


suspended tire (locked spindle)


tire drop test


normal tire test

Constructor & Destructor Documentation

◆ ChTireTestRig()

chrono::vehicle::ChTireTestRig::ChTireTestRig ( std::shared_ptr< ChWheel wheel,
std::shared_ptr< ChTire tire,
ChSystem system 

Construct a tire test rig within the specified system.

wheelwheel subsystem
tiretire subsystem
systemcontaining mechanical system

Member Function Documentation

◆ GetDBP()

double chrono::vehicle::ChTireTestRig::GetDBP ( ) const

Return current drawbar-pull value.

This is the reaction force in the linear motor used to enforce the specified rig longitudinal speed.

◆ GetSuggestedCollisionSettings()

void chrono::vehicle::ChTireTestRig::GetSuggestedCollisionSettings ( double &  collision_envelope,
ChVector3i collision_bins 
) const

Get suggested collision settings.

These values are meaningful only when using granular terrain and Chrono::Multicore.

collision_envelopesuggested envelope based on particle radius
collision_binssuggested number of bins for broad-pahse collision detection

◆ Initialize()

void chrono::vehicle::ChTireTestRig::Initialize ( Mode  mode)

Initialize the rig system.

It is the user's responsibility to set the operation mode and motion functions in a consistent way.

◆ SetAngSpeedFunction()

void chrono::vehicle::ChTireTestRig::SetAngSpeedFunction ( std::shared_ptr< ChFunction funct)

Specify wheel angular speed as function of time (default: none).

If a function is not specified, the wheel is not actuated.

◆ SetConstantLongitudinalSlip()

void chrono::vehicle::ChTireTestRig::SetConstantLongitudinalSlip ( double  long_slip,
double  base_speed = 1 

Specify a constant given longitudinal slip.

This version overrides the motion functions for the carrier longitudinal slip and for the wheel angular speed to enfore the specified longitudinalslip value. A positive slip value indicates that the wheel is spinning. A negative slip value indicates that the wheel is sliding (skidding); in particular, s=-1 indicates sliding without rotation.

◆ SetLongSpeedFunction()

void chrono::vehicle::ChTireTestRig::SetLongSpeedFunction ( std::shared_ptr< ChFunction funct)

Specify rig carrier longitudinal speed as function of time (default: none).

If a function is not specified, the carrier is not actuated.

◆ SetTerrainGranular()

void chrono::vehicle::ChTireTestRig::SetTerrainGranular ( double  radius,
unsigned int  num_layers,
double  density,
double  friction,
double  cohesion,
double  Young_modulus 

Enable use of granular terrain.

The terrain subsystem consists of identical spherical particles initialized in layers. A moving-patch option is used, with the patch dimensions set based on the tire dimensions.

radiusparticle radius [m]
num_layersnumber of layers for initial particle creation
densityparticle material density [kg/m3]
frictioninter-particle coefficient of friction
cohesioninter-particle cohesion pressure [Pa]
Young_modulusparticle contact material Young's modulus [Pa]

◆ SetTerrainRigid()

void chrono::vehicle::ChTireTestRig::SetTerrainRigid ( double  friction,
double  restitution,
double  Young_modulus,
double  terrain_length = 10 

Enable use of rigid terrain. Specify contact material properties.

frictioncoefficient of friction
restitutioncoefficient of restitution
Young_moduluscontact material Young's modulus [Pa]
terrain_lengthlength of terrain patch [m]

◆ SetTerrainSCM()

void chrono::vehicle::ChTireTestRig::SetTerrainSCM ( double  Bekker_Kphi,
double  Bekker_Kc,
double  Bekker_n,
double  Mohr_cohesion,
double  Mohr_friction,
double  Janosi_shear,
double  terrain_length = 10 

Enable use of SCM terrain. Specify SCM soil parameters.

Bekker_KphiKphi, frictional modulus in Bekker model
Bekker_KcKc, cohesive modulus in Bekker model
Bekker_nn, exponent of sinkage in Bekker model (usually 0.6...1.8)
Mohr_cohesioncohesion [Pa], for shear failure
Mohr_frictionFriction angle [degrees], for shear failure
Janosi_shearshear parameter J [m], (usually a few mm or cm)
terrain_lengthlength of terrain patch

The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_vehicle/wheeled_vehicle/test_rig/ChTireTestRig.h
  • /builds/uwsbel/chrono/src/chrono_vehicle/wheeled_vehicle/test_rig/ChTireTestRig.cpp