Skip to content

Energy and Fuel#

This page gives the fuel map of the engine and the energy ledger of a vehicle. The energy ledger shows where the fuel energy goes in each physics step, from the engine to the soil, the implement and the chassis.

Scope and Assumptions#

The fuel map and the ledger structure are in the engine-free model AcresPowerModel.cpp. The function SolveDriveline in AcresVehicleModel.cpp computes the terms. The page Maxxum 150 Dynamics gives the engine and the driveline that supply the torques and the speeds.

The model makes these assumptions.

  • The fuel power is a Willans line: a linear function of the brake power at each engine speed.
  • The indicated efficiency is constant. The friction of the engine depends only on the engine speed.
  • The engine uses no fuel when the governor demands no torque.
  • The efficiency of the driveline, of the PTO and of the hydraulic pump is constant.
  • Two full-load points of OECD test 2974 of the Maxxum 150 calibrate the fuel map. No test data calibrate the part-load values.
  • The ledger uses the torques and the speeds of the driveline solve. It is thus an exact account of the model, not an estimate.

The Polaris uses the same functions with the parameters of polaris.json. The page Polaris Ranger Dynamics gives its engine.

Symbols#

Symbol Quantity Unit
\(P_f\) Fuel power: the chemical power of the fuel at its lower heating value W
\(P_b\) Brake power of the engine W
\(P_{fr}\) Friction power of the engine W
\(\eta_i\) Indicated efficiency -
\(p_{fr}\) Friction mean effective pressure (FMEP) Pa
\(V_d\) Displacement of the engine m³
\(n_k\) Engine speed in thousands of rpm 1000 rpm
\(T_e\), \(T_{drag}\), \(T_{acc}\), \(T_c\) Engine torque, drag torque, accessory torque, clutch torque N m
\(\omega_{e0}\), \(\omega_{e1}\), \(\bar\omega_e\) Engine speed at the start, at the end and in the middle of the step rad/s
\(\bar\omega_c\) Speed of the rear differential carrier in the middle of the step rad/s
\(\bar\omega_j\) Speed of wheel \(j\) in the middle of the step rad/s
\(i\), \(\eta\) Overall ratio and driveline efficiency -
\(P_{pto}\), \(P_{hyd}\) Power at the PTO shaft and hydraulic power to the consumers W
\(\eta_{pto}\), \(\eta_{hyd}\) Efficiency of the PTO driveline and of the hydraulic pump -
\(H_u\) Lower heating value of the fuel J/kg
\(\rho_{fuel}\) Density of the fuel kg/L
\(q\) Fuel rate L/h
\(F_{s,j}\), \(F_{x,j}\) Shear force and net longitudinal force of wheel \(j\) N
\(R_j\) Motion resistance of wheel \(j\) N
\(v_{x,j}\) Speed of the contact point of wheel \(j\) along the wheel heading m/s
\(S_j\) Shaft torque of wheel \(j\) N m
\(T_h\), \(T_b\) Rolling resistance torque and brake torque of a wheel N m
\(J_e\), \(J_w\) Inertia of the engine and of a wheel kg m²
\(\Delta t\) Physics step, 1/120 s

Fuel Map#

The function WillansFuelPowerW gives the fuel power from the brake power and the friction power.

\[ P_f = \begin{cases} \dfrac{\max(0,\ P_b + P_{fr})}{\eta_i} & T_e > 0 \text{ and } \bar\omega_e > 1\ \text{rad/s} \\ 0 & \text{all other conditions} \end{cases} \]
\[ P_b = T_e\,\bar\omega_e, \qquad \bar\omega_e = \tfrac{1}{2}\,(\omega_{e0} + \omega_{e1}) \]

The function EngineFrictionPowerW gives the friction power of a four-stroke engine. The friction pressure is a polynomial of the engine speed (the speed terms of Chen and Flynn).

\[ p_{fr} = \max\bigl(0,\ a_0 + a_1\,n_k + a_2\,n_k^2\bigr), \qquad P_{fr} = \frac{p_{fr}\,V_d\,\bar\omega_e}{4\pi} \]

The coefficients are \(a_0 = 0.6\) bar, \(a_1 = 0.2\) bar and \(a_2 = 0.08\) bar for the Maxxum. \(V_d\) is 6.7 L and \(\eta_i\) is 0.47. The function limits \(\eta_i\) to the range 0.05 to 0.7.

The fuel volume of one step and the fuel rate follow from the heating value \(H_u\) and the density \(\rho_{fuel}\).

\[ \Delta V = \frac{P_f\,\Delta t}{H_u\,\rho_{fuel}}, \qquad q = 3600\,\frac{\Delta V}{\Delta t} \]

\(\Delta V\) is in litres when \(H_u\) is in J/kg and \(\rho_{fuel}\) is in kg/L. The values are 42.8 MJ/kg and 0.835 kg/L. With fuel_tank_l above zero, the tank loses \(\Delta V\) in each step. An empty tank sets the available engine torque to zero.

Calibration#

The values of \(\eta_i\) and the friction coefficients reproduce two points of OECD test 2974 of the Case IH Maxxum 150. The test physics_tests examines them.

Operating Point Model OECD Test 2974
Rated speed 2200 rpm, full load (110.3 kW at the engine) 27.4 L/h 27.3 L/h
1900 rpm, full load (116.2 kW at the engine) 27.8 L/h 28.4 L/h at the maximum PTO power
No load at full command, 2267 rpm 6.6 L/h No value
Idle, 796 rpm 1.04 L/h No value

The part-load values are a result of the Willans line. No test data calibrate them. The function GrissoFuelLph is the fuel equation of ASABE D497.7 (Grisso, Kocher and Vaughan). Only the tests use it, as a reference.

\[ q_{D497} = (0.22\,X + 0.096)\,P_{rated}\,\bigl(1 - (N_r - 1)(0.45\,X - 0.877)\bigr) \]

\(X\) is the ratio of the PTO power to the rated PTO power \(P_{rated}\) in kW. \(N_r\) is the ratio of the engine speed to the full-throttle speed.

Load Ratio Model ASABE D497.7
0.50 16.6 L/h 19.4 L/h
0.75 22.0 L/h 24.6 L/h
1.00 27.4 L/h 29.7 L/h

The largest difference is 14.4 %. The ASABE equation is a fit to older tractors.

Loads on the Engine#

The PTO shaft and the hydraulic pump take power from the engine. The function StepDrivetrain adds the constant loads of tractor.json and the loads of the implement.

\[ P_{pto} = P_{pto,0} + P_{pto,impl}, \qquad P_{hyd} = P_{hyd,0} + P_{hyd,impl} \]
\[ T_{acc} = \frac{P_{pto}/\eta_{pto} + P_{hyd}/\eta_{hyd}}{\max(\omega_{e0},\ 20)} \]

\(P_{pto,0}\) is the key pto_kw and \(P_{hyd,0}\) is the key hydraulic_kw. \(P_{pto,impl}\) and \(P_{hyd,impl}\) are the loads of the implement from the last physics step. The hydraulic load of the implement is the fluid power: the shaft power of its pump multiplied by the pump efficiency of the implement data. The page Implement Mechanics gives the loads of each implement. With the option -FarmHarvester, the header adds a PTO load that increases linearly between 900 rpm and 1200 rpm.

Energy Ledger#

The structure FEnergyFlows contains one value for each term of the ledger. The vehicle state has two copies of it.

Copy Unit Content
FVehicleState::Energy J The sum of each term from the last reset.
FVehicleState::Power W The value of each term in the last step, divided by \(\Delta t\).

A term is positive when it takes energy.

Energy ledger of a vehicle: the fuel power goes to the engine loss and the brake power, then to the loads on the engine, the clutch and the driveline, the wheels and the soil, and the traction that moves the chassis and pulls the implement. Where the fuel energy goes in one physics step Each column subtracts its terms from the power at its top. The remainder goes to the next column. Fuel lower heating value Engine loss Brake power engine output Parasitic PTO Hydraulic Accessory loss Engine kinetic Clutch input clutch torque × speed Clutch Driveline Axle work at the wheel shafts Wheel kinetic Brake Hysteresis Slip Soil Traction tyre work on chassis Drawbar Aero Water Lateral Suspension Chassis kinetic Potential LEGEND loss: heat or soil deformation work for the implement store: can give energy back RESIDUALS Powertrain: Fuel minus columns 1 to 4 minus Traction Chassis: Traction minus column 5 Each residual is zero when the ledger closes.
The terms of the energy ledger, from the fuel to the chassis. Open the diagram

Powertrain Terms#

The function SolveDriveline fills the terms from the fuel to the clutch. The function SettleWheels fills the terms of the wheels. Each term is a torque multiplied by a speed in the middle of the step, for example \(\bar\omega_j = \tfrac{1}{2}(\omega_{j0} + \omega_{j1})\). The table gives the energy of one step. The sums are over all wheels.

Term Energy of One Step Meaning
Fuel \(P_f\,\Delta t\) The chemical energy of the fuel.
EngineLoss \((P_f - P_b)\,\Delta t\) The heat of combustion and the friction of the engine.
Parasitic \(T_{drag}\,\bar\omega_e\,\Delta t\) The engine drag: fan, alternator and pumps.
Pto \(E_{acc}\,P_{pto} / P_{in}\) The work at the PTO shaft.
Hydraulic \(E_{acc}\,P_{hyd} / P_{in}\) The work for the hydraulic consumers.
AccessoryLoss \(E_{acc} - \texttt{Pto} - \texttt{Hydraulic}\) The losses of the PTO driveline and the hydraulic pump.
EngineKinetic \(\tfrac{1}{2}\,J_e\,(\omega_{e1}^2 - \omega_{e0}^2)\) The change of the kinetic energy of the engine.
Clutch \(T_c\,(\bar\omega_e - i\,\bar\omega_c)\,\Delta t\) The heat of a slipping clutch.
Driveline \((1 - \eta)\,T_c\,i\,\bar\omega_c\,\Delta t\) The losses of the gearbox and the axles.
WheelKinetic \(\sum_j \tfrac{1}{2}\,J_w\,(\omega_{j1}^2 - \omega_{j0}^2)\) The change of the kinetic energy of the wheels.
Brake \(\sum_j T_b\,\tanh(\omega_{j1}/0.1)\,\bar\omega_j\,\Delta t\) The heat of the brakes.
Hysteresis \(\sum_j T_h\,\tanh(\omega_{j1}/0.1)\,\bar\omega_j\,\Delta t\) The rolling resistance of the tyres.
Slip \(\sum_j F_{s,j}\,(r_j\,\bar\omega_j - v_{x,j})\,\Delta t\) The slip loss between the tyre and the ground.
Soil \(\sum_j R_j\,v_{x,j}\,\Delta t\) The work to make the ruts: compaction and bulldozing.
Traction \(\sum_j F_{x,j}\,v_{x,j}\,\Delta t\) The net work of the tyres on the chassis.
Axle \(\sum_j S_j\,\bar\omega_j\,\Delta t\) The work at the wheel shafts. For information, not a term of the balance.

The accessory energy is \(E_{acc} = T_{acc}\,\bar\omega_e\,\Delta t\) and the power that the engine supplies for it is \(P_{in} = P_{pto}/\eta_{pto} + P_{hyd}/\eta_{hyd}\). \(R_j\) is the motion resistance on the axle after its limits, see Tyre and Soil.

The balance of the powertrain is:

\[ \texttt{Fuel} = \texttt{EngineLoss} + \texttt{Parasitic} + \texttt{Pto} + \texttt{Hydraulic} + \texttt{AccessoryLoss} + \texttt{EngineKinetic} + \texttt{Clutch} + \texttt{Driveline} \]
\[ \qquad\quad + \texttt{WheelKinetic} + \texttt{Brake} + \texttt{Hysteresis} + \texttt{Slip} + \texttt{Soil} + \texttt{Traction} \]

The balance is exact for this reason. The driveline solve uses the backward Euler method, thus \(J\,(\omega_1 - \omega_0)/\Delta t\) is the sum of the torques. The product of this equation and the speed \(\tfrac{1}{2}(\omega_0 + \omega_1)\) gives the change of the kinetic energy. The function PowertrainResidual returns the difference of the two sides. It is zero to the tolerance of the solve.

Chassis Terms#

The function AccountChassis adds the terms of the chassis. The code that integrates the chassis calls it. In the game this is AAcresVehiclePawn::AccountChassisStep, at the start of the next physics step, after Chaos moved the body.

Term Power Meaning
Drawbar \(-(\vec{F}_{impl}\cdot\bar{\vec{v}} + \vec{M}_{impl}\cdot\bar{\vec{\omega}})\) The work to pull the implement.
Aero \(-\vec{F}_a\cdot\bar{\vec{v}}\) The air drag.
Water \(-\sum_j \vec{F}_{w,j}\cdot\bar{\vec{u}}_j\) The drag of standing water on the wheels.
Lateral \(-\sum_j \vec{F}_{y,j}\cdot\bar{\vec{u}}_j\) The loss of the tyres that slip to the side.
Suspension \(-\sum_j \vec{N}_j\cdot\bar{\vec{u}}_j\) The work that the springs, the dampers and the soil below the wheels absorb.
ChassisKinetic \(\Delta K / \Delta t\) The change of the kinetic energy of the chassis.
Potential \(\Delta U / \Delta t\) The change of the potential energy of the chassis.

\(\bar{\vec{v}}\) and \(\bar{\vec{\omega}}\) are the means of the body velocity and the angular velocity at the start and the end of the step. \(\bar{\vec{u}}_j = \bar{\vec{v}} + \bar{\vec{\omega}}\times(\vec{p}_j - \vec{p}_{cm})\) is the velocity of the contact point of wheel \(j\). The energies are:

\[ K = \tfrac{1}{2}\,m\,\lvert\vec{v}\rvert^2 + \tfrac{1}{2}\sum_{k} I_k\,\omega_k^2, \qquad U = m\,g\,z_{cm} \]

\(I_k\) and \(\omega_k\) are the principal inertias and the angular velocity in the body frame. The balance of the chassis is:

\[ \texttt{Traction} = \texttt{Drawbar} + \texttt{Aero} + \texttt{Water} + \texttt{Lateral} + \texttt{Suspension} + \texttt{ChassisKinetic} + \texttt{Potential} \]

The function ChassisResidual returns the difference of the two sides. This balance is not exact. The term Traction uses the contact speed at the start of the step. The chassis terms use the speeds in the middle of the step. In the game, the residual also contains the contacts of the chassis box and the angular damping of the body.

Note

In the game, the chassis terms of the copy Power are zero in the telemetry. The driveline solve writes Power again after the chassis account. Use the copy Energy for the chassis terms.

Closure Test#

The test stand integrates the chassis with speeds in the middle of the step. The test runs a sequence with a PTO load of 20 kW and a hydraulic load of 4 kW. The sequence is: come to rest, accelerate, pull, brake to a stop.

Condition Fuel Energy Powertrain Residual Chassis Residual
Silt loam after rain 3.490 MJ 0.000 % 0.012 %
Silt loam mud with standing water, 3° uphill 4.123 MJ 0.000 % 0.008 %
Wet asphalt 3.207 MJ 0.000 % 0.015 %
Legacy soil model 3.662 MJ 0.000 % 0.009 %

Example from the Game#

This table shows the ledger of the Maxxum in gear 8 at full command on the silt loam of field F21, without an implement. The values are means of the session log between 10 s and 15 s of the drive in Drive the Maxxum Tractor.

Term Power (kW) Share of the Fuel Power
Fuel 75.66 100 %
EngineLoss 58.55 77.4 %
Parasitic 10.04 13.3 %
Driveline 0.71 0.9 %
Hysteresis 4.12 5.4 %
Slip 0.05 0.1 %
Soil 1.75 2.3 %
Traction 0.45 0.6 %

The brake power is 17.1 kW and the axle work is 6.4 kW. The speed is 8.7 km/h and the fuel rate is 7.6 L/h. The engine runs at 2261 rpm with a low load, thus the engine losses are the largest part.

Distance, Area and Tractive Efficiency#

The function SettleWheels also keeps these values of the vehicle state.

Value Equation Field
Distance The mean of \(\lvert v_{x,j}\rvert\) of the wheels on the ground, multiplied by \(\Delta t\), summed. DistanceM
Worked area The distance of each step multiplied by the working width. AreaM2
Fuel for each kilometre Fuel used divided by the distance in km. Zero below 1 m. FuelPerKmL
Fuel for each hectare Fuel used divided by the area in ha. Zero below 1 m². FuelPerHaL
Tractive efficiency \(\operatorname{clamp}(\texttt{Traction} / \texttt{Axle},\ 0,\ 1)\) of the step. Zero when Axle is not positive. TractiveEfficiency

The working width is that of the implement in each step in which the implement works. An implement works when its tools are in the soil, when it sows or sprays, or when crop goes into the baler.

Output#

The values of this page are available in four places.

HUD. The key I shows and hides the work panels. The panel "Energy" shows the fuel power, the fuel rate, the engine power and the tractive efficiency. Its bar shows the terms of Power in seven groups.

Group of the Bar Terms
engine EngineLoss + Parasitic + EngineKinetic when positive
PTO Pto + AccessoryLoss
hyd Hydraulic
driveline Driveline + Clutch + Brake
tyres Hysteresis + Slip
soil Soil
traction Traction when positive

Session log. With -SessionLog, the file tractor.csv has one row for each physics step. The page Session Log gives all columns.

Column Value
fuel_lph, fuel_used_l, fuel_tank_l The fuel rate \(q\), the fuel used in the session and the fuel in the tank.
fuel_l_per_km, fuel_l_per_ha Fuel for each kilometre and for each hectare.
engine_power_kw \(T_e\) multiplied by the engine speed at the end of the step.
fuel_power_kw Fuel
brake_power_kw Fuel − EngineLoss
engine_loss_kw, parasitic_kw EngineLoss, Parasitic
pto_shaft_kw, hydraulic_kw, accessory_loss_kw Pto, Hydraulic, AccessoryLoss
clutch_loss_kw, driveline_loss_kw, brake_loss_kw Clutch, Driveline, Brake
tyre_rolling_kw, tyre_slip_kw, soil_rutting_kw Hysteresis, Slip, Soil
traction_kw, axle_kw Traction, Axle
drawbar_kw The draft of the implement multiplied by the forward speed. This is not the term Drawbar.
tractive_eff The tractive efficiency.

The session log does not contain the two kinetic terms of the powertrain and the chassis terms. The file session-summary.json contains the fuel of the session (fuel_used_l) and the positive engine work (engine_energy_kwh).

Episode log. The message acres_interfaces/EnergyLedger in the agent state contains all terms of Energy in joules. It also contains ground_loss_j, the sum of Slip, Lateral and Soil. The page Episode Log gives the format.

Telemetry. The structure FAcresVehicleTelemetry contains Energy, Power and the fuel values for the code of the game.

Parameters#

These keys are in the block vehicle of Content/Simulation/tractor.json.

Name Type Unit Default Description
engine_displacement_l number L 6.7 The displacement \(V_d\) of the engine.
indicated_efficiency number - 0.47 The indicated efficiency \(\eta_i\). The permitted range is above 0 and below 1.
fmep_bar number bar 0.6 The constant term \(a_0\) of the friction pressure.
fmep_bar_per_krpm number bar/(1000 rpm) 0.2 The linear term \(a_1\) of the friction pressure.
fmep_bar_per_krpm2 number bar/(1000 rpm)² 0.08 The quadratic term \(a_2\) of the friction pressure.
fuel_lhv_mj_kg number MJ/kg 42.8 The lower heating value \(H_u\) of diesel fuel.
fuel_density_kg_l number kg/L 0.835 The density \(\rho_{fuel}\) of diesel fuel.
fuel_tank_l number L 215.0 The capacity of the fuel tank. 0 means that the model has no tank.
engine_drag_nm number N m 15 The engine drag torque at the idle speed.
efficiency number - 0.9 The driveline efficiency \(\eta\).
pto_kw number kW 0 A constant PTO load.
pto_efficiency number - 1.0 \(\eta_{pto}\). The permitted range is above 0 to 1.
hydraulic_kw number kW 0 A constant hydraulic load.
hydraulic_efficiency number - 0.85 \(\eta_{hyd}\). The permitted range is above 0 to 1.

Code Map#

Item File Function
Ledger structure and residuals AcresPowerModel.h FEnergyFlows, PowertrainResidual, ChassisResidual
Friction power AcresPowerModel.cpp EngineFrictionPowerW
Fuel power AcresPowerModel.cpp WillansFuelPowerW
ASABE reference AcresPowerModel.cpp GrissoFuelLph
Loads on the engine AcresVehicleModel.cpp StepDrivetrain
Fuel and terms from the engine to the axles AcresVehicleModel.cpp SolveDriveline
Terms of the wheels, distance, area AcresVehicleModel.cpp SettleWheels
Chassis terms AcresVehicleModel.cpp AccountChassis
Chassis terms in the game AcresVehicle.cpp AAcresVehiclePawn::AccountChassisStep, ChassisEnergy
HUD panel AcresHud.cpp AAcresShellHUD::DrawWorkPanels
Session log columns AcresSessionLog.cpp FAcresSessionLog::Push
Tests Tools/Terramechanics/physics_tests.cpp

Limitations#

  • Two full-load points calibrate the fuel map. At part load the model is 8 % to 14 % below the equation of ASABE D497.7.
  • The indicated efficiency does not change with the load or the engine temperature.
  • An engine that the governor does not fuel uses no fuel. The model has no minimum injection.
  • The term Parasitic uses the constant drag torque of the model. It does not come from data of the fan or the alternator.
  • The chassis balance in the game is not exact. Its residual contains the effects of Chaos that the ledger does not see.
  • The column drawbar_kw of the session log and the term Drawbar of the ledger are different values.

References#

  • ASABE D497.7 (2011, reaffirmed 2015). Agricultural Machinery Management Data. American Society of Agricultural and Biological Engineers, St. Joseph, Michigan.
  • Chen, S. K. and Flynn, P. F. (1965). Development of a single cylinder compression ignition research engine. SAE Technical Paper 650733.
  • Grisso, R. D., Kocher, M. F. and Vaughan, D. H. (2004). Predicting tractor fuel consumption. Applied Engineering in Agriculture 20(5):553-561.
  • Nebraska Tractor Test Laboratory (2016). Nebraska OECD Tractor Test 2974, Summary 1097: Case IH Maxxum 150. University of Nebraska-Lincoln.