Skip to content

Contents

Fuel Efficiency Calculations

Fuel efficiency calculations in T3CO yield a variety of metrics based on the energy output from the vehicle's fuel stores and battery, taken from FASTSim.SimDrive object results. For the purposes of finding vehicle range [miles] and fuel efficiency, If the user inputs a composit drive cycle, then the fuel efficiency is a blend computed from each drive cycle's mpgge (miles per gallon of gasoline equivalent, for example) and that drive cycle's weight, using a weighted harmonic average.

alt text

Composite drive cycle input example: [("EPA_Ph2_rural_interstate_65mph.csv", .86), ("EPA_Ph2_urban_highway_55mph.csv", .09), ("EPA_Ph2_transient.csv", .05)]

Input file example:

selection scenario_name drive_cycle
1 Class 8 Sleeper cab high roof (Diesel, 2020, no program) [("EPA_Ph2_rural_interstate_65mph.csv", .86), ("EPA_Ph2_urban_highway_55mph.csv", .09), ("EPA_Ph2_transient.csv", .05)]
2 Class 8 Sleeper cab mid roof (Diesel, 2020, no program) [("EPA_Ph2_rural_interstate_65mph.csv", .86), ("EPA_Ph2_urban_highway_55mph.csv", .09), ("EPA_Ph2_transient.csv", .05)]
3 Class 8 Sleeper cab low roof (Diesel, 2020, no program) [("EPA_Ph2_rural_interstate_65mph.csv", .86), ("EPA_Ph2_urban_highway_55mph.csv", .09), ("EPA_Ph2_transient.csv", .05)]

fuel efficiency metrics are computed in t3co.objectives.fuel_economy.py

For Conventionals, BEVs, HEVs/FCEVs, we calculate their fuel economies as |Code Variable| Definition | |--|--| |mpgge | miles per gallon of gasoline equivalent | |grid_mpgge | grid adjusted (charger efficiency) miles per gallon of gasoline equivalent | |mpgde | miles per gallon of diesel equivalent | |kwh_per_mi | kWh per mile |

For plug-in hybrids (PHEVs) we calculate

Code Variable Definition
cs_fuel_mpgge Charge Sustaining miles per gallon of gasoline equivalent from ICE fuel stores only
cs_fuel_mpgde Charge Sustaining miles per gallon of diesel equivalent from ICE fuel stores only
cs_fuel_kwh__mi Charge Sustaining kWh per mile from ICE fuel stores only
cd_fuel_mpgge Charge Depleting miles per gallon of gasoline equivalent from ICE fuel stores only
cd_fuel_mpgde Charge Depleting miles per gallon of diesel equivalent from ICE fuel stores only
cd_electric_mpgge Charge Depleting miles per gallon of gasoline equivalent from PHEV battery pack only
cd_grid_electric_mpgge Charge Depleting grid adjusted (charger efficiency) miles per gallon of gasoline equivalent from PHEV battery pack only
cd_electric_kwh__mi Charge Depleting kWh per mile from PHEV battery pack only
cd_fuel_kwh__mi Charge Depleting kWh per mile from ICE fuel stores only
ave_combined_kwh__mile Average combined kWh per mile AveCombinedkWhperMile = UF*(CDelectricityKWhperMile + CDfuelKWhpermile) + (1-UF)*CSfuelKWhperMile

Note, UF stands for Utility Factor

For each drive cycle in the T3CO scenario file, a weighted value for these fuel economy metrics is calculated.

Range From Fuel Efficiency

The process for determining range depends on determining the fuel economy of the vehicle based on design cycles or a set of design cycles with weights. Design cycle or composite design cycles are specifed in the Scenario input file under the drive_cycle column. Fuel economy is determined in the t3co\objectives\fueleconomy.py module. The logic for fuel economy is essentially

Text Only
for cycle_i, weight_i in (cycles, cycle_weights)
    if PHEV
        get charge depleting mpgge with infinite battery and init_soc = max_soc
        get charge sustaining mpgge with "normal" battery and init_soc = min_soc + 0.01 
    else
        init_soc comes from simdrive()
        BEVs use max_soc
        HEVs use balanced SOC
        Conv init_soc doesn't matter
        if vehicle is Conv or HEV
            mpgge = sim_drive.mpgge
        else it's a BEV
            mpgge = sim_drive.mpgge + (1/sim_drive.electric_kwh_per_mi) * gl.get_kwh_per_gge()

    # get weighted mpgge vales
    'mpgge': sum([w_i for w_i in weights]) / sum([w_i / mpgge_i['mpgge'] for w_i, mpgge_i in zip(weights, mpgges)])

Range from fuel economy is a calculation based on the vehicle's MPGGE (miles per gallon of gasoline equivalent) and the GGE energy storage capacity the vehicle has. This is computed in t3co.objectives.fuel_economy.get_range_mi.

Text Only
if vehicle is a BEV:
    range_mi = vehicle.ess_max_kwh * (vehicle.max_soc - vehicle.min_soc) * electric_mpgge / kwh_per_gge
elif vehicle is a Conventional ICE:
    range_mi = (vehicle.fs_kwh / kwh_per_gge) * mpgge
elif vehicle is an HEV:
    elec_range_mi = vehicle.ess_max_kwh * (vehicle.max_soc - vehicle.min_soc) * mpgge / kwh_per_gge
    conv_range_mi = (vehicle.fs_kwh / kwh_per_gge) * mpgge
    range_mi = elec_range_mi + conv_range_mi
elif vehicle is a PHEV:
    # charge depleting range [miles]
    # CDrangeMiles = MIN( ESSmaxKWh*(CDmaxSOC- CDminSOC)/ CDelectricityKWhperMile , maxFuelStorKWh/33.7/ CDfuelGGEperMile )
    cd_range_mi = min(
        vehicle.ess_max_kwh * (vehicle.max_soc - vehicle.min_soc) / mpgge_info['cd_electric_kwh__mi'],
        vehicle.fs_kwh / kwh_per_gge * mpgge_info['cd_fuel_mpgge']
    )
    # charge sustaining range [miles]
    # note, CS range in this way of thinking, is essentially what range is *left over* after you've exhausted the battery to min SOC 
    # and switch into CS mode from CD mode, thus we subtract cd_gge_used from the GGE fuel stores of the vehicle
    cd_gge_used = cd_range_mi / mpgge_info['cd_fuel_mpgge']
    gge_capacity = vehicle.fs_kwh / kwh_per_gge
    cs_range_mi = (gge_capacity - cd_gge_used) * mpgge_info['cs_fuel_mpgge']
    range_mi = cd_range_mi + cs_range_mi
return range_mi

A Note on PHEVs

PHEV fuel economy

The CD and CS in the PHEV fuel economy table stand for charge sustaining and charge depleting, these are two defined "modes" of operation described below. These are described in detail in the PHEV documentation.

PHEVs generate multiple metrics for fuel efficiency based on the two operating modes, CD and CS. As seen above, they are used for for computing the range of the vehicle.