Description
Concrete tire class that implements the Pacejka tire model.
#include <ChPacejkaTire.h>
Public Member Functions | |
ChPacejkaTire (const std::string &name, const std::string &pacTire_paramFile) | |
Default constructor for a Pacejka tire. More... | |
ChPacejkaTire (const std::string &name, const std::string &pacTire_paramFile, double Fz_override, bool use_transient_slip=true) | |
Construct a Pacejka tire with specified vertical load, for testing purposes. More... | |
virtual std::string | GetTemplateName () const override |
Get the name of the vehicle subsystem template. | |
void | SetDrivenWheel (bool val) |
Specify whether or not the associated wheel is driven. More... | |
virtual void | AddVisualizationAssets (VisualizationType vis) override |
Add visualization assets for the rigid tire subsystem. | |
virtual void | RemoveVisualizationAssets () override |
Remove visualization assets for the rigid tire subsystem. | |
virtual double | GetRadius () const override |
Get the tire radius. | |
virtual double | GetWidth () const override |
Get tire width. | |
virtual double | GetVisualizationWidth () const |
Get visualization tire width. | |
virtual TerrainForce | ReportTireForce (ChTerrain *terrain) const override |
Report the tire force and moment. | |
TerrainForce | GetTireForce_pureSlip (const bool local=true) const |
Return the reactions for the pure slip EQs, in local or global coords. | |
TerrainForce | GetTireForce_combinedSlip (const bool local=true) const |
Return the reactions for the combined slip EQs, in local or global coords. More... | |
double | GetSlipAngle_internal () const |
Get the tire slip angle computed internally by the Pacejka model (in radians). More... | |
double | GetLongitudinalSlip_internal () const |
Get the tire longitudinal slip computed internally by the Pacejka model. More... | |
double | GetCamberAngle_internal () const |
Get the camber angle for the Pacejka tire model (in radians). More... | |
void | WriteOutData (double time, const std::string &outFilename) |
Write output data to a file. | |
void | set_Fz_override (double Fz) |
Manually set the vertical wheel load as an input. | |
WheelState | getState_from_KAG (double kappa, double alpha, double gamma, double Vx) |
Return orientation, Vx (global) and omega/omega_y (global). More... | |
double | get_average_Advance_time () |
Get the average simulation time per step spent in advance() | |
double | get_average_ODE_time () |
Get the average simulation time per step spent in calculating ODEs. | |
double | get_kappa () const |
Get current wheel longitudinal slip. | |
double | get_alpha () const |
Get current wheel slip angle. | |
double | get_gamma () const |
Get current wheel camber angle. | |
double | get_kappaPrime () const |
Get current long slip rate used in Magic Formula EQs. | |
double | get_alphaPrime () const |
Get current slip angle using in Magic Formula. | |
double | get_gammaPrime () const |
Get current camber angle used in Magic Formula. | |
double | get_min_long_slip () const |
Get minimum longitudinal slip rate. | |
double | get_max_long_slip () const |
Get maximum longitudinal slip rate. | |
double | get_min_lat_slip () const |
Get the minimum allowable lateral slip angle, alpha. | |
double | get_max_lat_slip () const |
Get the maximum allowable lateral slip angle, alpha. | |
double | get_longvl () const |
Get the longitudinal velocity. | |
double | get_tire_rolling_rad () const |
Get the tire rolling radius, ideally updated each step. | |
Public Member Functions inherited from chrono::vehicle::ChTire | |
ChTire (const std::string &name) | |
void | SetStepsize (double val) |
Set the value of the integration step size for the underlying dynamics (if applicable). More... | |
double | GetStepsize () const |
Get the current value of the integration step size. | |
void | SetCollisionType (CollisionType collision_type) |
Set the collision type for tire-terrain interaction. More... | |
virtual double | GetMass () const =0 |
Get the tire mass. More... | |
virtual double | ReportMass () const |
Report the tire mass. More... | |
virtual ChVector | GetInertia () const =0 |
Get the tire moments of inertia. More... | |
double | GetSlipAngle () const |
Return the tire slip angle calculated based on the current state of the associated wheel body. More... | |
double | GetLongitudinalSlip () const |
Return the tire longitudinal slip calculated based on the current state of the associated wheel body. More... | |
double | GetCamberAngle () const |
Return the tire camber angle calculated based on the current state of the associated wheel body. More... | |
virtual double | GetDeflection () const |
Report the tire deflection. | |
const std::string & | GetMeshFilename () const |
Get the name of the Wavefront file with tire visualization mesh. More... | |
Public Member Functions inherited from chrono::vehicle::ChPart | |
ChPart (const std::string &name) | |
Construct a vehicle subsystem with the specified name. More... | |
const std::string & | GetName () const |
Get the name identifier for this subsystem. | |
void | SetName (const std::string &name) |
Set the name identifier for this subsystem. | |
void | SetVisualizationType (VisualizationType vis) |
Set the visualization mode for this subsystem. | |
virtual void | SetOutput (bool state) |
Enable/disable output for this subsystem. | |
bool | OutputEnabled () const |
Return the output state for this subsystem. | |
virtual void | ExportComponentList (rapidjson::Document &jsonDocument) const |
Export this subsystem's component list to the specified JSON object. More... | |
virtual void | Output (ChVehicleOutput &database) const |
Output data for this subsystem's component list to the specified database. | |
Protected Member Functions | |
const std::string & | getPacTireParamFile () const |
Protected Member Functions inherited from chrono::vehicle::ChTire | |
void | CalculateKinematics (double time, const WheelState &wheel_state, const ChTerrain &terrain) |
Calculate kinematics quantities based on the given state of the associated wheel body. More... | |
double | GetOffset () const |
Get offset from spindle center. More... | |
std::shared_ptr< ChTriangleMeshShape > | AddVisualizationMesh (const std::string &mesh_file_left, const std::string &mesh_file_right) |
Add mesh visualization to the body associated with this tire (a wheel spindle body). More... | |
void | RemoveVisualizationMesh (std::shared_ptr< ChTriangleMeshShape > trimesh_shape) |
Remove the specified mesh shape from the visualization assets of the body associated with this tire (a wheel spindle body). | |
Protected Attributes | |
std::string | m_paramFile |
Protected Attributes inherited from chrono::vehicle::ChTire | |
std::shared_ptr< ChWheel > | m_wheel |
associated wheel subsystem | |
double | m_stepsize |
tire integration step size (if applicable) | |
CollisionType | m_collision_type |
method used for tire-terrain collision | |
std::string | m_vis_mesh_file |
name of OBJ file for visualization of this tire (may be empty) | |
Protected Attributes inherited from chrono::vehicle::ChPart | |
std::string | m_name |
subsystem name | |
bool | m_output |
specifies whether or not output is generated for this subsystem | |
Additional Inherited Members | |
Public Types inherited from chrono::vehicle::ChTire | |
enum | CollisionType { SINGLE_POINT, FOUR_POINTS, ENVELOPE } |
Static Public Member Functions inherited from chrono::vehicle::ChTire | |
static ChVector | EstimateInertia (double tire_width, double aspect_ratio, double rim_diameter, double tire_mass, double t_factor=2) |
Utility function for estimating the tire moments of inertia. More... | |
Static Public Member Functions inherited from chrono::vehicle::ChPart | |
static ChMatrix33 | TransformInertiaMatrix (const ChVector<> &moments, const ChVector<> &products, const ChMatrix33<> &vehicle_rot, const ChMatrix33<> &body_rot) |
Utility function for transforming inertia tensors between centroidal frames. More... | |
Static Protected Member Functions inherited from chrono::vehicle::ChTire | |
static bool | DiscTerrainCollision (const ChTerrain &terrain, const ChVector<> &disc_center, const ChVector<> &disc_normal, double disc_radius, ChCoordsys<> &contact, double &depth) |
Perform disc-terrain collision detection. More... | |
static bool | DiscTerrainCollision4pt (const ChTerrain &terrain, const ChVector<> &disc_center, const ChVector<> &disc_normal, double disc_radius, double width, ChCoordsys<> &contact, double &depth, double &camber_angle) |
Perform disc-terrain collision detection considering the curvature of the road surface. More... | |
static bool | DiscTerrainCollisionEnvelope (const ChTerrain &terrain, const ChVector<> &disc_center, const ChVector<> &disc_normal, double disc_radius, const ChFunction_Recorder &areaDep, ChCoordsys<> &contact, double &depth) |
Collsion algorithm based on a paper of J. More... | |
static void | ConstructAreaDepthTable (double disc_radius, ChFunction_Recorder &areaDep) |
Utility function to construct a loopkup table for penetration depth as function of intersection area, for a given tire radius. More... | |
Static Protected Member Functions inherited from chrono::vehicle::ChPart | |
static void | ExportBodyList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChBody >> bodies) |
Export the list of bodies to the specified JSON document. | |
static void | ExportShaftList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChShaft >> shafts) |
Export the list of shafts to the specified JSON document. | |
static void | ExportJointList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChLink >> joints) |
Export the list of joints to the specified JSON document. | |
static void | ExportCouplesList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChShaftsCouple >> couples) |
Export the list of shaft couples to the specified JSON document. | |
static void | ExportMarkerList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChMarker >> markers) |
Export the list of markers to the specified JSON document. | |
static void | ExportLinSpringList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChLinkTSDA >> springs) |
Export the list of translational springs to the specified JSON document. | |
static void | ExportRotSpringList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChLinkRotSpringCB >> springs) |
Export the list of rotational springs to the specified JSON document. | |
static void | ExportBodyLoadList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChLoadBodyBody >> loads) |
Export the list of body-body loads to the specified JSON document. | |
Constructor & Destructor Documentation
◆ ChPacejkaTire() [1/2]
chrono::vehicle::ChPacejkaTire::ChPacejkaTire | ( | const std::string & | name, |
const std::string & | pacTire_paramFile | ||
) |
Default constructor for a Pacejka tire.
Construct a Pacejka tire for which the vertical load is calculated internally. The model includes transient slip calculations. chrono can suggest a time step for use with the ODE slips
- Parameters
-
[in] name name of this tire [in] pacTire_paramFile name of the parameter file
◆ ChPacejkaTire() [2/2]
chrono::vehicle::ChPacejkaTire::ChPacejkaTire | ( | const std::string & | name, |
const std::string & | pacTire_paramFile, | ||
double | Fz_override, | ||
bool | use_transient_slip = true |
||
) |
Construct a Pacejka tire with specified vertical load, for testing purposes.
- Parameters
-
[in] name name of this tire [in] pacTire_paramFile name of the parameter file [in] Fz_override prescribed vertical load [in] use_transient_slip indicate if using transient slip model
Member Function Documentation
◆ GetCamberAngle_internal()
|
inline |
Get the camber angle for the Pacejka tire model (in radians).
The reported value will be the same as that reported by ChTire::GetCamberAngle.
◆ GetLongitudinalSlip_internal()
|
inline |
Get the tire longitudinal slip computed internally by the Pacejka model.
The reported value will be the same as that reported by ChTire::GetLongitudinalSlip.
◆ GetSlipAngle_internal()
|
inline |
Get the tire slip angle computed internally by the Pacejka model (in radians).
The reported value will be the same as that reported by ChTire::GetSlipAngle.
◆ getState_from_KAG()
WheelState chrono::vehicle::ChPacejkaTire::getState_from_KAG | ( | double | kappa, |
double | alpha, | ||
double | gamma, | ||
double | Vx | ||
) |
Return orientation, Vx (global) and omega/omega_y (global).
Assumes the tire is going straight forward (global x-dir), and the returned state's orientation yields gamma and alpha, as x and z NASA angles
- Parameters
-
[in] kappa ... [in] alpha ... [in] gamma ... [in] Vx tire forward velocity x-dir
◆ GetTireForce_combinedSlip()
TerrainForce chrono::vehicle::ChPacejkaTire::GetTireForce_combinedSlip | ( | const bool | local = true | ) | const |
Return the reactions for the combined slip EQs, in local or global coords.
Return the reactions for the combined slip EQs, in local or global coordinates.
◆ SetDrivenWheel()
|
inline |
Specify whether or not the associated wheel is driven.
By default, the wheel is assumed not driven.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/wheeled_vehicle/tire/ChPacejkaTire.h
- /builds/uwsbel/chrono/src/chrono_vehicle/wheeled_vehicle/tire/ChPacejkaTire.cpp