Description
Definition of a single-tire test rig.
#include <ChTireTestRig.h>
Classes | |
| struct | TerrainParamsGranular |
| Granular terrain patch parameters. More... | |
| struct | TerrainParamsRigid |
| Rigid terrain patch parameters. More... | |
| struct | TerrainParamsSCM |
| SCM terrain patch parameters. More... | |
| struct | TerrainPatchSize |
| Terrain patch dimensions. More... | |
| class | WheelBCECreationCallback |
| Callback interface for user-defined wheel/tire BCE markers (CRM terrain only). More... | |
Public Types | |
| enum | Mode { Mode::SUSPEND, Mode::DROP, Mode::TEST } |
| Tire test rig operation mode. More... | |
| enum | TerrainType { SCM, RIGID, CRG, GRANULAR, CRM, NONE } |
| Terrain type. | |
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). | |
| 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 | SetTerrainRigid (const TerrainPatchSize &size, const TerrainParamsRigid ¶ms) |
| Enable use of rigid terrain. | |
| void | SetTerrainRigid (const TerrainPatchSize &size, double friction, double restitution, double Young_modulus) |
| Enable use of rigid terrain. More... | |
| void | SetTerrainSCM (const TerrainPatchSize &size, const TerrainParamsSCM ¶ms) |
| Enable use of SCM terrain. | |
| void | SetTerrainSCM (const TerrainPatchSize &size, double Bekker_Kphi, double Bekker_Kc, double Bekker_n, double Mohr_cohesion, double Mohr_friction, double Janosi_shear, double grid_spacing=0.125) |
| Enable use of SCM terrain. More... | |
| void | SetTerrainGranular (const TerrainPatchSize &size, const TerrainParamsGranular ¶ms) |
| Enable use of granular terrain. More... | |
| void | SetTerrainGranular (const TerrainPatchSize &size, double radius, double density, double friction, double cohesion, double Young_modulus) |
| Enable use of granular terrain. More... | |
| void | SetTerrainCRM (const TerrainPatchSize &size, const TerrainParamsCRM ¶ms) |
| Enable use of CRM terrain. More... | |
| void | SetTerrainCRM (const TerrainPatchSize &size, double spacing, double density, double Young_modulus, double friction, double cohesion) |
| Enable use of CRM terrain. More... | |
| void | RegisterWheelBCECreationCallback (std::shared_ptr< WheelBCECreationCallback > callback) |
| Register a user callback for specifying wheel/tire BCE markers (CRM terrain only). | |
| void | SetWheelActiveBox (const ChVector3d &size) |
| Set size of the active box associated with the tire (CRM terrain only). More... | |
| void | SetTimeDelay (double delay) |
| Set time delay before applying motion functions (default: 0 s). More... | |
| double | GetTimeDelay () const |
| Get time delay after which mesurements are calculated. More... | |
| bool | OutputEnabled () const |
| Check if kinematic and kinetic quantities are collected. More... | |
| void | Initialize (Mode mode, double drop_speed=0.1) |
| 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 | GetNormalLoad () const |
| Get the normal load. | |
| 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... | |
| double | GetLongitudinalSlip () const |
| Get current tire longitudinal slip. More... | |
| double | GetSlipAngle () const |
| Get current tire slip angle. More... | |
| double | GetCamberAngle () const |
| Get current tire camber angle. More... | |
| std::shared_ptr< ChSpindle > | GetSpindle () const |
| Get the spindle object. | |
| std::shared_ptr< ChLinkMotorLinearSpeed > | GetMotorCarrier () const |
| Get the linear motor used to actuate the carrier. | |
| std::shared_ptr< ChLinkMotorRotationSpeed > | GetMotorWheel () const |
| Get the rotation motor used to actuate the wheel. | |
Member Enumeration Documentation
◆ Mode
|
strong |
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
-
wheel wheel subsystem tire tire subsystem system containing mechanical system
Member Function Documentation
◆ GetCamberAngle()
| double chrono::vehicle::ChTireTestRig::GetCamberAngle | ( | ) | const |
Get current tire camber angle.
This value is calculated from the current spindle normal direction.
◆ 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.
◆ GetLongitudinalSlip()
| double chrono::vehicle::ChTireTestRig::GetLongitudinalSlip | ( | ) | const |
Get current tire longitudinal slip.
This value is calculated from the horizontal speed of the spindle body and its angular rotation speed.
◆ GetSlipAngle()
| double chrono::vehicle::ChTireTestRig::GetSlipAngle | ( | ) | const |
Get current tire slip angle.
This value is calculated from the current spindle normal direction.
◆ 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_envelope suggested envelope based on particle radius collision_bins suggested number of bins for broad-pahse collision detection
◆ GetTimeDelay()
|
inline |
Get time delay after which mesurements are calculated.
After the drop phase (TEST mode only), this value is set to the input time delay increased by the wheel drop time. Before the drop phase is completed, this function returns the input time delay.
◆ Initialize()
| void chrono::vehicle::ChTireTestRig::Initialize | ( | Mode | mode, |
| double | drop_speed = 0.1 |
||
| ) |
Initialize the rig system.
It is the user's responsibility to set the operation mode and motion functions in a consistent way. In TEST mode, the wheel is lowered onto the terrain with a speed equal to drop_speed.
◆ OutputEnabled()
|
inline |
Check if kinematic and kinetic quantities are collected.
This function returns true only in TEST mode once the motion functions are activated.
◆ 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 enforce 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.
◆ SetTerrainCRM() [1/2]
| void chrono::vehicle::ChTireTestRig::SetTerrainCRM | ( | const TerrainPatchSize & | size, |
| const TerrainParamsCRM & | params | ||
| ) |
Enable use of CRM terrain.
The terrain subsystem is modelled through continuum with CRM.
◆ SetTerrainCRM() [2/2]
| void chrono::vehicle::ChTireTestRig::SetTerrainCRM | ( | const TerrainPatchSize & | size, |
| double | spacing, | ||
| double | density, | ||
| double | Young_modulus, | ||
| double | friction, | ||
| double | cohesion | ||
| ) |
Enable use of CRM terrain.
- Parameters
-
size terrain patch size spacing SPH particle spacing density material density Young_modulus material Young's modulus friction material internal friction cohesion material internal cohesion
◆ SetTerrainGranular() [1/2]
| void chrono::vehicle::ChTireTestRig::SetTerrainGranular | ( | const TerrainPatchSize & | size, |
| const TerrainParamsGranular & | params | ||
| ) |
Enable use of granular terrain.
The terrain subsystem consists of identical spherical particles initialized in layers. A moving-patch option is used.
◆ SetTerrainGranular() [2/2]
| void chrono::vehicle::ChTireTestRig::SetTerrainGranular | ( | const TerrainPatchSize & | size, |
| double | radius, | ||
| double | density, | ||
| double | friction, | ||
| double | cohesion, | ||
| double | Young_modulus | ||
| ) |
Enable use of granular terrain.
Specify contact material properties. The terrain subsystem consists of identical spherical particles initialized in layers. A moving-patch option is used.
- Parameters
-
size terrain patch size radius particle radius [m] density particle material density [kg/m3] friction inter-particle coefficient of friction cohesion inter-particle cohesion pressure [Pa] Young_modulus particle contact material Young's modulus [Pa]
◆ SetTerrainRigid()
| void chrono::vehicle::ChTireTestRig::SetTerrainRigid | ( | const TerrainPatchSize & | size, |
| double | friction, | ||
| double | restitution, | ||
| double | Young_modulus | ||
| ) |
Enable use of rigid terrain.
Specify contact material properties and patch dimensions.
- Parameters
-
size terrain patch size friction coefficient of friction restitution coefficient of restitution Young_modulus contact material Young's modulus [Pa]
◆ SetTerrainSCM()
| void chrono::vehicle::ChTireTestRig::SetTerrainSCM | ( | const TerrainPatchSize & | size, |
| double | Bekker_Kphi, | ||
| double | Bekker_Kc, | ||
| double | Bekker_n, | ||
| double | Mohr_cohesion, | ||
| double | Mohr_friction, | ||
| double | Janosi_shear, | ||
| double | grid_spacing = 0.125 |
||
| ) |
Enable use of SCM terrain.
Specify SCM soil parameters and patch dimensions.
- Parameters
-
size terrain patch size Bekker_Kphi Kphi, frictional modulus in Bekker model Bekker_Kc Kc, cohesive modulus in Bekker model Bekker_n n, exponent of sinkage in Bekker model (usually 0.6...1.8) Mohr_cohesion cohesion [Pa], for shear failure Mohr_friction Friction angle [degrees], for shear failure Janosi_shear shear parameter J [m], (usually a few mm or cm) grid_spacing SCM grid spacing
◆ SetTimeDelay()
|
inline |
Set time delay before applying motion functions (default: 0 s).
In TEST mode, this delay is measured after the wheel bottom point reaches the terrain height.
◆ SetWheelActiveBox()
| void chrono::vehicle::ChTireTestRig::SetWheelActiveBox | ( | const ChVector3d & | size | ) |
Set size of the active box associated with the tire (CRM terrain only).
The default size is based on the tire AABB inflated by 25%.
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