Description

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< ChTerrain > GetTerrain () const
 Get a handle to the underlying terrain subsystem.
 
const ChVector3d & GetPos () 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.

Enumerator
SUSPEND 

suspended tire (locked spindle)

DROP 

tire drop test

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.

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

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

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