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 a thin interface class, derived from ChPowertrain.

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 (ChShaftsBody) thus permitting simulating motor torque effects on the chassis.

See ChShaftsPowertrain and ShaftsPowertrain.

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

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

{
"Name": "HMMWV Shafts Powertrain",
"Type": "Powertrain",
"Template": "ShaftsPowertrain",
"Engine":
{
"Motor Block Inertia": 10.5,
"Crankshaft Inertia": 1.1,
"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 ]
]
},
"Transmission":
{
"Input Shaft Inertia": 0.3,
"Reverse Gear Ratio": -0.1,
"Forward Gear Ratios": [ 0.2, 0.4, 0.8 ],
"Upshift RPM": 2500,
"Downshift RPM": 1200,
"Shift Latency": 1.0
},
"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 ]
]
}
}

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 ChSimplePowertrain and SimplePowertrain.

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

{
"Name": "HMMWV Simplified Powertrain",
"Type": "Powertrain",
"Template": "SimplePowertrain",
"Forward Gear Ratio": 0.3,
"Reverse Gear Ratio": -0.3,
"Maximum Engine Torque": 1000.0,
"Maximum Engine Speed": 2000
}

Engine map powertrain 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 ChSimpleMapPowertrain and SimpleMapPowertrain.

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

{
"Name": "UAZBUS Simple Map Powertrain",
"Type": "Powertrain",
"Template": "SimpleMapPowertrain",
"Engine":
{
"Maximal Engine Speed RPM": 4000.0,
"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 ]
]
},
"Transmission":
{
"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 CVT-like powertrain subsystem

This simple powertrain model template uses a hyperbolical speed-torque curve like a CVT gearbox, has no torque converter and no transmission box.

See ChSimpleCVTPowertrain and SimpleCVTPowertrain.

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

{
"Name": "HMMWV Simplified CVT Powertrain 6.2 L V8 Diesel",
"Type": "Powertrain",
"Template": "SimpleCVTPowertrain",
"Forward Gear Ratio": 0.3,
"Reverse Gear Ratio": -0.3,
"Maximum Engine Torque": 330.0,
"Maximum Engine Power": 110000,
"Maximum Engine Speed": 10000
}