Fuel Allocation

An introduction to fuel allocation and estimation methods, addressing and correcting an error in Alberta Quantification Methodologies v2.3.

Envirobyte

Envirobyte

January 28, 2024

Fuel Allocation

AQM v2.3 Fuel Consumption Calculation (Equation C.6-1)

Alberta greenhouse gas quantification methodologies, AQM v2.3 provides methods to estimate fuel consumption for combustion equipment. However, a critical issue arises in Equation C.6-1, where the calculation does not accurately reflect energy input as intended.

The equation provided in AQM v2.3 for estimating fuel consumption is:

vfuel,j,p=j=1NPrate,jnj×LFiLHVj×OHi×0.0036v_{fuel,j,p} = \sum_{j=1}^{N} \frac{P_{rate,j}}{n_{j}} \times\frac{LF_{i}}{LHV_{j}} \times OH_{i} \times 0.0036

where

  • vfuel,j,pv_{fuel,j,p} is estimated fuel consumption from combustion equipment for a specific fuel type for the reporting period, p (m3).
  • jj is equipment type
  • Prate,jP_{rate,j} is the maximum rated input power of the equipment j (kW).
  • LFjLF_{j} is the load factor for each type of equipment j.
  • OHjOH_{j} is the operating hours for each type of equipment j.
  • njn_{j} is the thermal efficiency of the equipment j.
  • LHVjLHV_{j} is the lower heating value of the fuel for each type of equipment j (MJ/m3).
  • 0.0036 Conversion factor for kWh to GJ.

The thermal efficiency njn_{j} represents the ratio of output energy to input energy:

nj=outputinputn_{j} = \frac{output}{input}

When this efficiency factor is applied in AQM's equation, the calculation inadvertently represents energy output rather than input.

API Fuel Calculation

American Petroleum Institute (API)'s Compendium of Greenhouse Gas Emissions Methodologies for the Natural Gas and Oil Industry, 2021 provides a correct methodology for calculating fuel consumption in Equation 4-5 and 4-6:

API 2021 Equation 4-5.

FC=ER×LF×OH×ETT×1HVFC = ER \times LF \times OH \times ETT \times \frac{1}{HV}

where,

  • FC is the fuel consumption (volumen/year)
  • ER is the equipment rate (hp,kW,or J)
  • LF is the load factor
  • OH is the operating hours
  • ETT is the equipment thermal efficiency (Btu input / hp-hr output, Btuinput / kW-hr output, or Jinput / J output))
  • HV is the higher heating value

In the API 2021 compendium, thermal efficiency is represented as input-to-output (opposite to the standard output-to-input convention), and equipment rate is based on the equipment's output power, unlike AQM v2.3's focus on input power.

Nameplate

The inconsistency between AQM v2.3 and API v2021 methodologies can be attributed to differences in nameplate power definitions:

  • For boilers and heaters, the nameplate often indicates energy input 1.
  • In API v2021, the equipment rate corresponds to output energy.

Correction to AQM v2.3

The AQM Table C-1 and C-2 provide both thermal efficiency and load factors (based on fractions of maximum rated power output). This correction implies that Prated,jP_{rated,j} should represent output power, not input as stated in AQM v2.3.

  • For engines and motors: Nameplate power indicates output power, so AQM v2.3's approach can convert output to input.

  • For heaters and boilers: Nameplate power already represents input power, so dividing by thermal efficiency is unnecessary. However, AQM v2.3 Table C-2 set the thermal efficiency for heaters and boilers as 1. The corrected equation for these types of equipment is:

vfuel,j,p=j=1NPrate,j×LFiLHVj×OHi×0.0036v_{fuel,j,p} = \sum_{j=1}^{N} P_{rate,j} \times\frac{LF_{i}}{LHV_{j}} \times OH_{i} \times 0.0036

where

  • vfuel,j,pv_{fuel,j,p} is estimated fuel consumption from combustion equipment for a specific fuel type for the reporting period, p (m3).
  • jj is equipment type
  • Prate,jP_{rate,j} is the maximum rated input power of the equipment j (kW).
  • LFjLF_{j} is the load factor for each type of equipment j.
  • OHjOH_{j} is the operating hours for each type of equipment j.
  • LHVjLHV_{j} is the lower heating value of the fuel for each type of equipment j (MJ/m3).
  • 0.0036 Conversion factor for kWh to GJ.

This correction aligns AQM with actual practice for fuel allocation calculations.

Python Code

To illustrate this methodology, we’ve included a Python function to calculate allocated fuel consumption based on nameplate power, operating hours, load factor, and thermal efficiency.

import pandas as pd

def calculate_allocated_fuel(row, df_clean):
    # Subset of the relevant block
    block = df_clean[(df_clean["Month"] == row["Month"]) & (df_clean["Phase"] == row["Phase"])]

    numerator = (row["Nameplate Power (kW)"] * row["Equipment Hours"] * row["Load"]) / row["Thermal Eff."]

    denominator = (
        (block["Nameplate Power (kW)"] * block["Equipment Hours"] * block["Load"]) / block["Thermal Eff."]
    ).sum()

    if denominator == 0:
        return 0
    else:
        return row["Fuel"] * (numerator / denominator)

df_clean["Allocated Fuel"] = df_clean.apply(lambda row: calculate_allocated_fuel(row, df_clean), axis=1)

print("Updated DataFrame with Allocated Fuel:")
print(df_clean.head(18))
print(df_clean.tail(18))

file_path = 'path_to_your_file.xlsx'
with pd.ExcelWriter(file_path, mode='a') as writer:
    df_clean.to_excel(writer, index=False, sheet_name='Allocated Fuel Data')

print("Updated DataFrame with Allocated Fuel has been written to a new sheet in the original Excel file.")

Reference [1]: https://www2.gov.bc.ca/gov/content/environment/waste-management/industrial-waste/agriculture/regulation-requirements/agricultural-boilers-heaters