Powertrain models

The powertrain system is connected to the driver system (receiving throttle inputs) and to the driveline sub-system of the vehicle system (receiving the driveshaft angular speed and sending the driveshaft torque).

Chrono::Vehicle is designed to permit linking to a third-party powertrain model. Interfacing to such an external powertrain model requires two thin interface classs, derived from ChEngine and ChTransmission.

Chrono::Vehicle provides several templates for the powertrain system, descibed below.

Shafts-based powertrain model

This powertrain model is based on various Chrono 1-D shaft elements (ChShaft) and specialized shaft connection elements. Such elements are used to model:

  • the engine (ChShaftsThermalEngine), specified through speed-torque curves
  • the torque converter (ChShaftsTorqueConverter), specified through curves for the capacity factor as function of the speed ratio and the torque ratio as function of the speed ratio
  • the gear box (manual or automatic, with an arbitrary number of forward gears and a reverse gear)

The motor block is attached to the chassis through a special Chrono constraint (ChShaftBodyRotation) thus permitting simulating motor torque effects on the chassis.

See ChEngineShafts, ChAutomaticTransmissionShafts, and ChManualTransmissionShafts

The image below shows the shafts-based powertrain model connected to a shafts-based wheeled vehicle model.

Sample JSON files with the specification of a shafts-based powertrain, illustrating the various template parameters, are provided below:

{
"Name": "HMMWV Shafts Engine",
"Type": "Engine",
"Template": "EngineShafts",
"Motor Block Inertia": 10.5, // connection to chassis
"Motorshaft Inertia": 1.1, // connection to transmission
"Torque Map": [
[ -100, 300 ],
[ 800, 382 ],
[ 900, 490 ],
[ 1000, 579 ],
[ 1100, 650 ],
[ 1200, 706 ],
[ 1300, 746 ],
[ 1400, 774 ],
[ 1500, 789 ],
[ 1600, 793 ],
[ 1700, 788 ],
[ 1800, 774 ],
[ 1900, 754 ],
[ 2000, 728 ],
[ 2100, 697 ],
[ 2200, 664 ],
[ 2300, 628 ],
[ 2400, 593 ],
[ 2500, 558 ],
[ 2700, -400 ]
],
"Losses Map": [
[ -50, 30 ],
[ 0, 0 ],
[ 50, -30 ],
[ 1000, -50 ],
[ 2000, -70 ],
[ 3000, -90 ]
]
}
{
"Name": "HMMWV Shafts Automatic Transmission",
"Type": "Transmission",
"Template": "AutomaticTransmissionShafts",
"Transmission Block Inertia": 10.5, // connection to chassis
"Input Shaft Inertia": 0.3,
"Motorshaft Inertia": 0.5, // connection to engine
"Driveshaft Inertia": 0.5, // connection to driveline
"Torque Converter": {
"Capacity Factor Map": [
[ 0.00, 15.00 ],
[ 0.25, 15.00 ],
[ 0.50, 15.00 ],
[ 0.75, 16.00 ],
[ 0.90, 18.00 ],
[ 1.00, 35.00 ]
],
"Torque Ratio Map": [
[ 0.00, 2.00 ],
[ 0.25, 1.80 ],
[ 0.50, 1.50 ],
[ 0.75, 1.15 ],
[ 1.00, 1.00 ]
]
},
"Gear Box": {
"Forward Gear Ratios": [ 0.2, 0.4, 0.8 ],
"Reverse Gear Ratio": -0.1,
"Upshift RPM": 2500,
"Downshift RPM": 1200,
"Shift Latency": 1.0
}
}

The curves encoded in the above JSON file are shown below.

Engine map model

This template for a simple powertrain model is based on speed-torque engine maps. The model has no torque converter and can have either a manual or an automatic transmission. It accepts a single reverse gear and any number of forward gears. In automatic mode, gear shifting is done based on specified ideal shift points.

See ChEngineSimpleMap and ChAutomaticTransmissionSimpleMap.

Sample JSON files with the specification of a map powertrain, illustrating the various template parameters, are provided below.

{
"Name": "UAZBUS Simple Map Engine",
"Type": "Engine",
"Template": "EngineSimpleMap",
"Maximal Engine Speed RPM": 4000,
"Map Full Throttle": [
[ -10.0, 104.66 ],
[ 7.365e+02, 1.744e+02 ],
[ 9.876e+02, 1.827e+02 ],
[ 1.238e+03, 1.898e+02 ],
[ 1.500e+03, 1.957e+02 ],
[ 1.724e+03, 2.005e+02 ],
[ 1.980e+03, 2.052e+02 ],
[ 2.188e+03, 2.076e+02 ],
[ 2.348e+03, 2.081e+02 ],
[ 2.492e+03, 2.062e+02 ],
[ 2.737e+03, 2.062e+02 ],
[ 2.992e+03, 2.062e+02 ],
[ 3.189e+03, 2.064e+02 ],
[ 3.487e+03, 2.031e+02 ],
[ 3.684e+03, 1.995e+02 ],
[ 3.908e+03, 1.945e+02 ],
[ 4100.0, -100.0 ],
[ 4200.0, -200.0 ]
],
"Map Zero Throttle": [
[ -10.0, 0.0 ],
[ 7.365e+02, -10.0 ],
[ 9.880e+02, -10.0 ],
[ 1.500e+03, -15.0 ],
[ 1.980e+03, -15.0 ],
[ 2.348e+03, -15.0 ],
[ 2.737e+03, -20.0 ],
[ 3.189e+03, -20.0 ],
[ 3.685e+03, -30.0 ],
[ 3.908e+03, -100.0 ]
]
}
{
"Name": "UAZBUS Simple Map Transmission",
"Type": "Transmission",
"Template": "AutomaticTransmissionSimpleMap",
"Gear Box": {
"Reverse Gear Ratio": -0.191,
"Forward Gear Ratios": [0.125, 0.242, 0.379, 0.633, 1.0],
"Shift Points Map RPM": [
[ 1000, 3000 ],
[ 1200, 3700 ],
[ 1200, 3700 ],
[ 1200, 3700 ],
[ 1200, 4000 ]
]
}
}

The curves encoded in the above JSON file are shown below.

Simple powertrain model

This model uses a trivial speed-torque dependency, has no torque converter and no transmission box.

See ChEngineSimple and EngineSimple.

A sample JSON file with the specification of a CVT-like powertrain, illustrating the various template parameters, is provided below.

{
"Name": "HMMWV Simple Engine",
"Type": "Engine",
"Template": "EngineSimple",
"Maximum Engine Torque": 330,
"Maximum Engine Power": 110000,
"Maximum Engine Speed": 10000
}