Description

Definition of a single-tire test rig.

#include <ChTireTestRig.h>

Public Member Functions

 ChTireTestRig (std::shared_ptr< ChWheel > wheel, std::shared_ptr< ChTire > tire, ChSystem *system)
 
void SetGravitationalAcceleration (double grav)
 Set gravitational acceleration (default: 9.81 m/s2).
 
void SetNormalLoad (double load)
 Set desired normal load (default: 0 N).
 
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 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 releasing the wheel (default: 0s).
 
void Initialize ()
 Initialize the rig system. More...
 
void Initialize (double long_slip, double base_speed=1)
 Initialize the rig system for a simulation with given longitudinal slip. More...
 
void GetSuggestedCollisionSettings (double &collision_envelope, ChVector< int > &collision_bins) const
 Get suggested collision settings. More...
 
void Advance (double step)
 Advance system state by the specified time step.
 
double GetTotalMass () const
 Get total rig mass.
 
double GetAppliedLoad () const
 Get applied load on rig (to enforce specified normal load, taking into account the masses of all components).
 
std::shared_ptr< ChTerrainGetTerrain () const
 Get a handle to the underlying terrain subsystem.
 
const ChVectorGetPos () const
 Get current carrier body position.
 
TerrainForce ReportTireForce () const
 Get the current tire forces.
 

Constructor & Destructor Documentation

◆ ChTireTestRig()

chrono::vehicle::ChTireTestRig::ChTireTestRig ( std::shared_ptr< ChWheel wheel,
std::shared_ptr< ChTire tire,
ChSystem system 
)
Parameters
wheelwheel subsystem
tiretire subsystem
systemcontaining mechanical system

Member Function Documentation

◆ GetSuggestedCollisionSettings()

void chrono::vehicle::ChTireTestRig::GetSuggestedCollisionSettings ( double &  collision_envelope,
ChVector< int > &  collision_bins 
) const

Get suggested collision settings.

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

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

◆ Initialize() [1/2]

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

Initialize the rig system.

This version uses all motion functions as specified by the user. It is the user's responsibility to set these up for a meaningful test.

◆ Initialize() [2/2]

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

Initialize the rig system for a simulation with given longitudinal slip.

This version overrides the motion functions for the carrier longitudinal slip and for the wheel angular speed to enfore the specified longitudinal slip 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.

◆ 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.

◆ 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.

Parameters
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.

Parameters
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.

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