Tire models

Chrono::Vehicle currently supports three different classes of tire models: rigid, semi-empirical, and finite element.

Rigid tire model

The rigid tires are the simplest of the three tire classes offered. The assumption for these models is that the tire is completely rigid and it interacts with the ground and any other rigid objects through the same underlying friction and contact algorithms as the other rigid bodies in Chrono. The contact geometry for these tires can be as simple as a cylinder or as complex as a 3D triangular mesh. These models are not only useful for debugging the overall vehicle model, but they can also be used in cases where runtime is important, the terrain is much softer than the tire, and a highly detailed model of the tire is unnecessary. In fact, the semi-empirical tire models are not suitable for off-road vehicle simulation, i.e. when using a deformable terrain (SCM, granular, or FEA-based; see the description of available terrain models). For such scenarios, rigid or FEA-based tire models are the only two available options currently implemented in Chrono::Vehicle.

See ChRigidTire and RigidTire.

The following is an example of a rigid tire with mesh geometry provided through a Wavefront OBJ file:

"Name": "HMMWV Rigid Mesh Tire",
"Type": "Tire",
"Template": "RigidTire",
"Radius": 0.4699,
"Width": 0.254,
"Mass": 37.6,
"Inertia": [3.84, 6.69, 3.84],
"Contact Material":
"Coefficient of Friction": 0.9,
"Coefficient of Restitution": 0.1,
"Properties": {
"Young Modulus": 2e7,
"Poisson Ratio": 0.3
"Coefficients": {
"Normal Stiffness": 2e5,
"Normal Damping": 40.0,
"Tangential Stiffness": 2e5,
"Tangential Damping": 20.0
"Contact Mesh":
"Mesh Filename": "hmmwv/hmmwv_tire_fine.obj",
"Sweep Sphere Radius": 0.005
"Mesh Filename Left": "hmmwv/hmmwv_tire_fine.obj",
"Mesh Filename Right": "hmmwv/hmmwv_tire_fine.obj"

Semi-empirical tire models

The second class of tires models offered are the semi-empirical ones commonly used for vehicle handling. Chrono::Vehicle currently has implementations for Pacejka (89 and 2002), TMeasy, and Fiala tire models. Handling tire models are designed for flat road surfaces and they normally use single point contact or four point contact (TMeasy). For ride tests on ondulated roads or for obstacle crossing a special contact algorithm called "envelope" has been implemented. It is based on a paper of Sui & Hershey and can be used with all handling tire models that are included in Chrono. Validation tests with a technology demonstrator show good results compared to measured real vehicle test data with low numerical effort. If an even better accuracy is needed the user should think about considering FEA based tire models for non-handling tests.

Some users may want to build their own handling tire parameter sets from tire test data. Be sure to get familiar with the different slip definitions and the different coordinate systems in each tire model!

Pacejka 89 (Pac89) tire model

See ChPac89Tire and Pac89Tire.

Pacejka 2002 (Pac02) tire model

This model is an extension of Pacejka's earlier Magic Formula tire model with additional equations and coefficients. Since a large number of vehicle dynamics maneuvers do not occur under steady-state slip conditions, the contact patch slip state equations are included to provide more accurate results under transient conditions (TBD!). Due to the lack of reference data sets the inflation pressure dependence terms and the large camber terms are actually not implemented.

See ChPac02Tire and Pac02Tire.

TMeasy tire model (basic version)

TMeasy (Tire Model Made Easy) has been developed by Prof. Dr. Georg Rill and is available as a comercial code (see http://www.tmeasy.de/ for more information). The aim of this model is to allow easy parametration. Its complexity is roughly comparable to the Magic Formula based models. Furthermore, based on known parameter sets for trucks and passenger cars it is possible to estimate a complete parameter set from few input data. TMeasy considers nonlinear effects and includes contact patch slip state equations. The implementation used in Chrono lacks some functionality compared to the latest comercial TMeasy versions. For example, there is no belt dynamics and no dynamic parking torque calculation possible. The Chrono TMeasy tire implementation contains algorithms that have been published in the book Road Vehicle Dynamics - Fundamentals and Modeling with MATLAB, Georg Rill and Abel Arrieta Castro, CRC Press, 2020.

See ChTMeasyTire and TMeasyTire.

A sample JSON file with a TMeasy tire specification is provided below:

"Name": "HMMWV TMeasy Tire",
"Type": "Tire",
"Template": "TMeasyTire",
// ------------------------------------------------
// Tire design (REQUIRED)
"Design": {
"Unloaded Radius [m]": 0.4699,
"Mass [kg]": 37.6,
"Inertia [kg.m2]": [ 3.84, 6.69, 3.84 ],
"Width [m]": 0.3175,
"Rim Radius [m]": 0.2095,
"Roundness of Cross Section": 0.1
"Coefficient of Friction": 0.8,
"Rolling Resistance Coefficients": [ 0.015, 0.015 ],
// ------------------------------------------------
// Vehicle type.
// Required only if tire specified with "load index" or "bearing capacity".
// Must be one of "Truck" or "Passenger"
"Vehicle Type": "Truck",
// ------------------------------------------------
// Load index specification.
// Takes priority over "bearing capacity" (used only if a full parameterization not provided)
"Load Index": 108,
// ------------------------------------------------
// Bearing capacity specification.
// Lowest priority (used only if no other specification provided)
"Maximum Bearing Capacity [N]": 17167.5,
// ------------------------------------------------
// Full parameter specification.
// Takes priority over both "Load Index" and "bearing capacity".
"Parameters": {
"Tire Load": {
"Nominal Vertical Force [N]": 8562.8266,
"Maximum Vertical Force [N]": 29969.893
"Tire Stiffness": {
"Longitudinal [N/m]": 185004.42,
"Lateral [N/m]": 164448.37,
"Vertical [N/m]": [ 411121.0, 411121.00 ]
"Tire Damping": {
"Longitudinal [Ns/m]": 3700,
"Lateral [Ns/m]": 3488,
"Vertical [Ns/m]": 3900
"Dynamic Radius Weighting Coefficients": [ 0.375, 0.75 ],
"Longitudinal": {
"Initial Slopes dFx/dsx [N]": [ 151447.29, 236412.79 ],
"Maximum Fx Load [N]": [ 7575.3614, 12808.276 ],
"Sliding Fx Load [N]": [ 4657.9208, 8625.3352 ],
"Slip sx at Maximum Fx": [ 0.12, 0.15 ],
"Slip sx where sliding begins": [ 0.9, 0.95 ]
"Lateral": {
"Initial Slopes dFy/dsy [N]": [ 50931.693, 94293.847 ],
"Maximum Fy Load [N]": [ 6615.0404, 12509.947 ],
"Sliding Fy Load [N]": [ 6091.5092, 11443.875 ],
"Slip sy at Maximum Fy": [ 0.38786, 0.38786 ],
"Slip sy where sliding begins": [ 0.82534, 0.91309 ]
"Aligning": {
"Normalized Trail at Zero Slip sy": [ 0.178, 0.19 ],
"Slip sy where Trail Changes Sign": [ 0.40726, 0.40726 ],
"Slip sy where Trail Tends to Zero": [ 0.82534, 0.91309 ]
// ------------------------------------------------
// Visualization mesh (OPTIONAL)
"Visualization": {
"Mesh Filename Left": "hmmwv/hmmwv_tire_left.obj",
"Mesh Filename Right": "hmmwv/hmmwv_tire_right.obj"

Fiala tire model

The Fiala tire model implemented in Chrono::Vehicle is largely based on the transient Fiala tire model presented in the MSC ADAMS/tire help documentation, which uses tire slip state equations to improve the model's behavior at slow to zero forward velocities. The Fiala tire model is based on a brush model assumption and only requires a small number of coefficients. This tire model assumes that the tire is at zero camber with respect to the road and does not have any provisions for generating overturning moments. It does however couple the lateral and longitudinal slip states of the tire in its force and moment calculations, providing a more realistic description of combined slip. The Fiala tire model should not be used for serious vehicle handling simulations since it does not consider important effects that influence the results.

See ChFialaTire and FialaTire.

A sample JSON file with a TMeasy tire specification is provided below:

"Name": "HMMWV Fiala Tire",
"Type": "Tire",
"Template": "FialaTire",
"Mass": 37.6,
"Inertia": [
"Coefficient of Friction": 0.8,
"Fiala Parameters": {
"Unloaded Radius": 0.47,
"Width": 0.318,
"Vertical Damping": 7500,
"Vertical Stiffness": 326332, // linear stiffness (if no curve table present)
"Vertical Curve Data": // nonlinear stifness (has precedence over linear model)
[ 0.000, 0 ],
[ 0.005, 585 ],
[ 0.010, 1286 ],
[ 0.015, 2352 ],
[ 0.020, 3477 ],
[ 0.025, 4798 ],
[ 0.030, 6190 ],
[ 0.035, 7540 ],
[ 0.040, 9027 ],
[ 0.045, 10570 ],
[ 0.050, 12139 ],
[ 0.055, 13654 ],
[ 0.060, 15368 ],
[ 0.065, 16904 ],
[ 0.070, 18469 ],
[ 0.075, 20089 ],
[ 0.080, 21699 ]
"Rolling Resistance": 0.015,
"CSLIP": 193929.0,
"CALPHA": 50000.0,
"UMIN": 0.5568,
"UMAX": 0.9835,
"X Relaxation Length": 2.0,
"Y Relaxation Length": 2.0
"Visualization": {
"Mesh Filename Left": "hmmwv/hmmwv_tire_left.obj",
"Mesh Filename Right": "hmmwv/hmmwv_tire_right.obj",
"Width": 0.318

The vertical load curve embedded in the above JSON file is show below:

FEA-based tire models

Finally, the third class of tire models offered are full finite element representations of the tire. While these models have the potential to be the most accurate due to their detailed physical model of the tire, they are also the most computationally expensive of the tire model currently available in Chrono::Vehicle. Unlike the rigid or semi-empirical tire models, the finite element based tire models are able to account for the flexibility in both the tire and in the ground at the same time, which is an important characteristic for many types of off-road mobility and vehicle dynamics studies. These finite element tire models leverage the nonlinear finite element capabilities in Chrono.

ANCF shell deformable tire

See ChANCFTire and ANCFTire.

The following JSON file contains the specification of an ANCFTire:

Reissner shell deformable tire

See ChReissnerTire and ReissnerTire.