Week 4.2 - Combustion Efficiency Calculation after Preheating
1.
Objective :
To observe the effect of Pre-Heating the Inlet Air on parameters like Adiabatic Flame Temparature, Combustion Efficiency & Fuel Consumption.
Introduction :
We consider here a Furnace, inside which, Constant Pressure Stoichiometric Combustion of Methane is taking place. We use a Recuperator (which is basically a Heat Exchanger) to extract some Heat from the Exhaust Gases & use it to increase the Temparature of the Inlet Air, which inturn results in Higher Temparatures during Combustion. However, doing so recklessly may cause Exhaust Temparatures to rise above safe limits. Moreover, the Furnace may sustain damage from excessive Heat Accumulation. Therefore, it is generally recommended to hold the Exhaust Temparature constant. Following is the Flow Diagram of Exhaust Gas Recirculation in a Furnace :

Calculations :
Considering the Furnace as a Control Volume, we apply Energy Balance :
(m_air * h_air) + (m_fuel * h_fuel) = Q_out + Q_loss + (m_exhaust * h_exhaust)
We assume Q_loss = 0.
=> Q_out = (m_air * h_air) + (m_fuel * h_fuel) - (m_exhaust * h_exhaust)
By Mass Balance, m_exhaust = (m_air + m_fuel)
=> Q_out = (m_fuel * h_fuel) + (m_air * h_air) - (m_air + m_fuel) * h_exhaust
=> Q_out = m_fuel * {h_fuel + [(m_air/m_fuel) * h_air] - [(1 + (m_air/m_fuel)) * h_exhaust]}
We define Air-Fuel Ratio : AF_ratio = (m_air/m_fuel) & Q_out/m_fuel = Q_specific
=> Q_specific = h_fuel + [AF_ratio * h_air] - [(1 + AF_ratio) * h_exhaust]
In order to mantain a Constant Exhaust Temparature, this value of Q_specific is held constant by adjusting the Air-Fuel Ratio.
Now, Efficiency may be defined as the ratio of Actual to Ideal.
Combustion Efficiency = (Heat utilized per unit mass of Fuel) / (Heat released per unit mass of Fuel)
The Lower Heating Value is the Maximum Amount of Heat that can be released during a reaction. Therefore,
Combustion Efficiency = (Q_specific / LHV)
Fuel Savings may be defined as follows :
Fuel Savings = (Fuel used with pre-heating - Fuel used without pre-heating) / (Fuel used with preheating)
=> Fuel Savings = 1 - (Fuel used without pre-heating / Fuel used with preheating)
Since Fuel Used is directly proportional to Heat Output
=> Fuel Savings = 1 - (Q_specific without pre-heating / Q_specific with pre-heating)
Using the above Expression for Efficiency
=> Fuel Savings = 1 - (Combustion Efficiency without pre-heating / Combustion Efficiency with pre-heating)
Here, both Combustion Efficiency & Fuel Savings is calculated as fractions, however, in the code, they are calculated as percentages.
***************************************************************************************************
Case 1 : Variation of Adiabatic Flame Temparature with Pre-Heating.
In order to analyze this, we use the following Code :
# Program to demonestrate the variation of Adiabatic Flame Temparature with a range
# of Inlet Temparatures (essentially embodying the Idea of Exhaust Gas Recycling)
# We consider Stoichiometric Combustion of Methane at Constant Pressure inside a Furnace
# CH4 + 2(O2 + 3.76N2) -> CO2 + 2H2O + 7.52N2
import cantera as ct
import matplotlib.pyplot as plt
import numpy as np
gas = ct.Solution('gri30.cti')
# Defining Fuel
Fuel = ct.Quantity(gas)
Fuel.TPX = 298.15, ct.one_atm, 'CH4 : 1'
Fuel.moles = 1
# Defining Air, the Inlet Temparature of which, is to be varied
Air = ct.Quantity(gas)
Inlet_Temp = np.linspace(298, 600, 200) # Desired reange of Inlet Temparatures
AFT = [] # Empty Array to store each Iteration Value
for i in Inlet_Temp :
Air.TPX = i, ct.one_atm, {'O2' : 0.21, 'N2' : 0.79} # ct.one_atm sets the P as 1 atm = 101325 pa
Air.moles = 2 + (2 * 3.67)
Mixture = Air + Fuel
Mixture.equilibrate('HP', 'auto')
AFT.append(Mixture.T) # Inserting each value in the AFT array
print("\nAFT when Inlet Air Temparature = 298.15 K : ", AFT[0], 'K')
print("\nAFT when Inlet Air Temparature = 600 K : ", AFT[-1], 'K', "\n")
# Plotting the Results
plt.plot(Inlet_Temp, AFT, '.', color = 'black')
plt.grid()
plt.xlabel('Inlet Temparature of Air [K]', fontsize = 12, fontweight = 'bold')
plt.ylabel('Adiabatic Flame Temparature [K]', fontsize = 12, fontweight = 'bold')
plt.title('Variation of Adiabatic Flame Temparature wrt. Inlet Temparature of Pre-Heated Air', fontsize = 13, fontweight = 'bold')
plt.show()
The Output being :


Observations :
As Temparature of Inlet Air increases, so does the AFT (linearly). This is because of the fact that pre-heating increases the Internal Energy of Air, thereby enabling the System to reach Higher Temparatures.
***************************************************************************************************
Case 2 : Variation of Combustion Efficiency & Fuel Consumption with Pre-Heating
In order to analyze this, we use the following Code :
# Program to study the effect of Pre-Heating on Efficiency & Fuel Savings
# We consider Stoichiometric Combustion of Methane at Constant Pressure inside a Furnace
# CH4 + 2(O2 + 3.76N2) -> CO2 + 2H2O + 7.52N2
"""
(m_air * h_air) + (m_fuel * h_fuel) = Q_out + Q_loss + (m_exhaust * h_exhaust)
=> Q_out = (m_air * h_air) + (m_fuel * h_fuel) - (m_exhaust * h_exhaust)
=> Q_out = (m_fuel * h_fuel) + (m_air * h_air) - (m_air + m_fuel) * h_exhaust
=> Q_out = m_fuel * {h_fuel + [(m_air/m_fuel) * h_air] - [(1 + (m_air/m_fuel)) * h_exhaust]}
=> Q_specific = h_fuel + [AF_ratio * h_air] - [(1 + AF_ratio) * h_exhaust]
Combustion Efficiency = (Q_specific / LHV)
Fuel Savings = (Fuel used with pre-heating - Fuel used without pre-heating) / (Fuel used with preheating)
=> Fuel Savings = 1 - (Fuel used without pre-heating / Fuel used with preheating)
=> Fuel Savings = 1 - (Q_specific without pre-heating / Q_specific with pre-heating)
=> Fuel Savings = 1 - (Combustion Efficiency without pre-heating / Combustion Efficiency with pre-heating)
"""
import cantera as ct
import matplotlib.pyplot as plt
import numpy as np
gas = ct.Solution('gri30.cti')
############################################################################################################
# Defining Fuel
Fuel = ct.Quantity(gas)
Fuel.TPX = 298.15, ct.one_atm, 'CH4 : 1'
Fuel.moles = 1
# Defining Prouct
Product = ct.Quantity(gas)
Product.TPX = 1700, ct.one_atm, {'CO2' : 1/10.52, 'H2O' : 2/10.52, 'N2' : 7.52/10.52}
Product.moles = (1 + 2 + 7.52)
# Defining Air
Air = ct.Quantity(gas)
Inlet_Temp = np.linspace(298.15, 600, 150)
LHV = 50e6 # J/kg # Lower Heating Value is the Maximum Amount of Heat that can be released (Ideal)
Efficiency = [] # during the reaction. We shall use it as referrence to calculate Efficiency
Fuel_Saving = []
for i in Inlet_Temp :
Air.TPX = i, ct.one_atm, {'O2' : 0.21, 'N2' : 0.79}
Air.moles = 2 + (2 * 3.76)
# <Speicies_Name>.enthalpy_mass returns the Specific Enthalpy of that Species
AF_ratio = Air.mass/Fuel.mass
h_Fuel = Fuel.enthalpy_mass
h_Air = Air.enthalpy_mass
h_Product = Product.enthalpy_mass
# Heat Released in our case (Actual)
Q_specific = h_Fuel + (AF_ratio * h_Air) - (1 + AF_ratio) * h_Product
ita = (Q_specific/LHV) * 100 # Efficiency = Actual/Ideal
Efficiency.append(ita)
#Fuel Saved = 1 - (Efficiency without Pre-Heating/Efficiency with Pre-Heating)
fuel_saved = (1 - (Efficiency[0]/Efficiency[-1])) * 100
Fuel_Saving.append(fuel_saved)
print("\nEfficiency without Pre-Heating (T_inlet = 298.15 k) : ", Efficiency[0], '%')
print("\nEfficiency with Pre-Heating (T_inlet = 600 k) : ", Efficiency[-1], '%')
print("\nMaximum Fuel Saving with Pre-Heating (T_inlet = 600 k) : ", Fuel_Saving[-1], '%', "\n")
############################################################################################################
# Plotting the Results
plt.plot(Inlet_Temp, Efficiency, '.', color = 'blue')
plt.grid()
plt.xlabel('Inlet Temparature of Air', fontsize = 12, fontweight = 'bold')
plt.ylabel('Combustion Efficiency [%]', fontsize = 12, fontweight = 'bold')
plt.title('Variation of Combustion Efficiency wrt. Inlet Temparature of Pre-Heated Air', fontsize = 13, fontweight = 'bold')
plt.show()
plt.plot(Inlet_Temp, Fuel_Saving, '.', color = 'red')
plt.grid()
plt.xlabel('Inlet Temparature of Air [K]', fontsize = 12, fontweight = 'bold')
plt.ylabel('Fuel Saving [%]', fontsize = 12, fontweight = 'bold')
plt.title('Variation of Fuel Savings wrt. Inlet Temparature of Pre-Heated Air', fontsize = 13, fontweight = 'bold')
plt.show()
The Output being :



Observations :
As a result of Pre-Heating, the Heat Output from the Furnace increases (while LHV is a constant), thereby increasing the Combustion Efficiency. The Energy that the Inlet Air receives from the Exhaust Gases would otherwise have to be provided by more Fuel. Thus EGR increases Combustion Efficiency & decreases Fuel Consumption.
***************************************************************************************************
Conclusion :
We conclude that Exhaust Gas Recirculation is an excellent way to increase the AFT & Efficiency of a Combustion Process, as well as decrease the Fuel Consumption.