All Courses
All Courses
Courses by Software
Courses by Semester
Courses by Domain
Tool-focused Courses
Machine learning
POPULAR COURSES
Success Stories
INTRODUCTION A recuperator is a special purpose counter-flow energy recovery heat exchanger connected with the furnace positioned in the exhaust gas-streams in order to recover the waste heat. One use of a recuperator is to preheat the air entering the combustion chamber before mixing with the fuel. …
Shouvik Bandopadhyay
updated on 10 Jan 2020
INTRODUCTION
A recuperator is a special purpose counter-flow energy recovery heat exchanger connected
with the furnace positioned in the exhaust gas-streams in order to recover the waste heat.
One use of a recuperator is to preheat the air entering the combustion chamber before
mixing with the fuel.
The heat loss from the exhaust gases is used to preheat the incoming air before it mixes with
the fuel. This helps in increasing the efficiency of the combustion process, which in turn leads
to fuel saving.
SIMULATION OBJECTIVE
Performance analysis of methane combustion with air at different preheated temperatures.
CASE 1 - EFFECT OF PREHEATING ON ADIABATIC FLAME TEMPERATURE (AFT):
CH4+2(O2+3.76N2)→CO2+2H2O+7.52N2
Code for Case 1
\"\"\"
Program to study the effect of preheating on AFT
Reaction: CH4 + 2(O2 + 3.76N2) <=> CO2 + 2H2O + 7.52N2
Program by: Shouvik Bandopadhyay
\"\"\"
import cantera as ct
import matplotlib.pyplot as plt
import numpy as np
# Creating the gas instance from the gri30 mechanism file
gas = ct.Solution(\'gri30.cti\')
# Creating the fuel and air instance from the gas
fuel = ct.Quantity(gas)
fuel.TPX = 298.15, ct.one_atm, {\'CH4\':1}
fuel.moles = 1
air = ct.Quantity(gas)
# Defining the preheating conditions
T_pre = np.linspace(298, 600, 51)
T_aft = []
plot_interval = 5
# Calculating AFT for different preheating temperatures
for T in T_pre:
air.TPX = T, ct.one_atm, {\'O2\':0.21, \'N2\':0.79}
air.moles = 2 + (2*3.76)
flue = fuel + air
flue.equilibrate(\'HP\',\'auto\')
T_aft.append(flue.T)
# Printing and plotting the results
print(\'AFT with no preheating = \' + str(round(T_aft[0],2)) + \' K\')
slope = (T_aft[1]-T_aft[0])/(T_pre[1]-T_pre[0])
print(\'Rate of change of AFT with preheating = \' + str(round(slope,2)) + \' K/K\')
T_pre_plot = [T_pre[i] for i in range(0,len(T_pre),plot_interval)]
T_aft_plot = [T_aft[i] for i in range(0,len(T_aft),plot_interval)]
fig, ax = plt.subplots()
plt.plot(T_pre_plot, T_aft_plot,\'-o\',color=\'green\', linewidth=2)
plt.grid(\'both\', linestyle=\'--\', linewidth=1.2)
plt.xlabel(\'Preheating Temperature [K]\', fontsize=14)
plt.ylabel(\'Adiabatic Flame Temperature [K]\', fontsize=14)
plt.title(\'Effect of Air Preheating on the AFT\', fontsize=16, fontweight=\'bold\')
x_ticks = [250, 300, 350, 400, 450, 500, 550, 600, 650]
ax.set_xticklabels(x_ticks, rotation=0, fontsize=12)
y_ticks = [2200, 2220, 2240, 2260, 2280, 2300, 2320, 2340, 2360]
ax.set_yticklabels(y_ticks, rotation=0, fontsize=11)
plt.show()
Output of the above code
CASE 2 - EFFECT OF PREHEATING ON COMBUSTION EFFICIENCY:
Combustion efficiency is a measure of how efficiently the heat content of a fuel is transferred
into usable heat. The energy output from the combustion reaction in an adiabatic chamber
(no heat loss) can be calculated as:
Qout=.mfuel⋅hfuel+.mair⋅hair−.mexhaust⋅hexhaust
Here, .mi is the mass flow rate of species in and hi is the specific enthalpy of
species in J/Kg. The specific heat of the reaction can then be calculated as:
Qspecific=Qout.mfuel=hfuel+(.mair.mfuel)⋅hair−(.mexhaust.mfuel)⋅hexhaust
By mass conservation equation:
.mexhaust=.mair+.mfuel
Substituting the value of the exhaist mass flow rate in the above equation we get:
Qspecific=hfuel+(.mair.mfuel)⋅hair−(1+.mair.mfuel)⋅hexhaust
⇒Qspecific=.mair.mfuel⋅(hair−hexhaust)+(hfuel−hexhaust)
But, .mair.mfuel=AF=(AF)st since Ï•=1
Considering the same stoichiometric reaction as before:
CH4+2(O2+3.76N2)→CO2+2H2O+7.52N2
AF=.mair.mfuel=2â‹…[MWO2]+3.76â‹…[MWN2]MWCH4=2â‹…[32+3â‹…28]16=17.12
Combustion efficiency can now be calculated as:
η=QspecificLHV
Here the LHV is the lower heating value of methane which is assumed as 50 MJ/Kg.
The exhaust can be estimated as a mixture of carbon dioxide, water and nitrogen in their respective mole fractions. In reality, there can be a lot of other products resulting from intermediate reactions as well.
Exit temperature for this case is assumed to be 1700 K. This assumption is valid for the purpose of understanding the trends of AFT and efficiency with preheating temperature. However, in practical scenarios, the exit temperature depends on a lot of parameters and may not even be constant throughout the reaction.
The fuel savings is also a function of efficiency. As the efficiency of the combustion increases, lesser fuel is required for the same amount of heat from the combustion.
Fuel savings 1−η0η1, where η0 is the combustion efficiency with no preheating and η1 is the combustion efficiency at a specified preheating.
Code for Case 2
\"\"\"
Program to study the effect of preheating on combustion efficiency
Reaction: CH4 + 2(O2 + 3.76N2) <=> CO2 + 2H2O + 7.52N2
Program by: Shouvik Bandopadhyay
\"\"\"
import cantera as ct
import matplotlib.pyplot as plt
import numpy as np
# Creating the gas instance from the gri30 mechanism file
gas = ct.Solution(\'gri30.cti\')
# Creating the fuel and air instance from the gas
fuel = ct.Quantity(gas)
fuel.TPX = 298.15, ct.one_atm, {\'CH4\':1}
fuel.moles = 1
h_fuel = fuel.enthalpy_mass
air = ct.Quantity(gas)
# Creating the estimated products instance from the gas
est_prod = ct.Quantity(gas)
n_tot = 1 + 2 + (2*3.76)
n_co2 = 1/n_tot
n_h2o = 2/n_tot
n_n2 = 7.52/n_tot
est_prod.TPX = 1700, ct.one_atm, {\'CO2\':n_co2, \'H2O\':n_h2o, \'N2\':n_n2}
est_prod.moles = n_tot
h_est_prod = est_prod.enthalpy_mass
# Defining the preheating conditions
T_pre = np.linspace(298, 600, 51)
LHV = 50e6
eff = []
fuel_saving = []
plot_interval = 5
# Calculating efficiency for different preheating temperatures
for T in T_pre:
air.TPX = T, ct.one_atm, {\'O2\':0.21, \'N2\':0.79}
air.moles = 2 + (2*3.76)
air_fuel_ratio = air.mass/fuel.mass
h_air = air.enthalpy_mass
Q_spec = air_fuel_ratio*(h_air - h_est_prod) + h_fuel - h_est_prod
eff.append(Q_spec/LHV*100)
# Calculating the fuel saving from the efficiency
fuel_saving.append((1 - (eff[0]/eff[-1]))*100)
# Printing and plotting the results
print(\'Efficiency with no preheating = \' + str(round(eff[0],2)) + \'%\')
print(\'Efficiency at preheating of 600 K = \' + str(round(eff[-1],2)) + \'%\')
slope = (eff[1]-eff[0])/(T_pre[1]-T_pre[0])
print(\'Rate of change of efficiency with preheating = \' + str(round(slope,4)) + \' %/K\')
print(\'Fuel saving at preheating of 600 K = \' + str(round(fuel_saving[-1],2))+ \'%\')
T_pre_plot = [T_pre[i] for i in range(0,len(T_pre),plot_interval)]
eff_plot = [eff[i] for i in range(0,len(eff),plot_interval)]
fuel_saving_plot = [fuel_saving[i] for i in range(0,len(fuel_saving),plot_interval)]
fig, ax = plt.subplots()
plt.plot(T_pre_plot, eff_plot,\'-*\',color=\'green\', linewidth=2)
plt.grid(\'both\', linestyle=\'--\', linewidth=1.2)
plt.xlabel(\'Preheating Temperature [K]\', fontsize=14)
plt.ylabel(\'Combustion Efficiency [%]\', fontsize=14)
plt.title(\'Effect of Air Preheating on Combustion Efficiency\',fontsize=15)
x_ticks = [250, 300, 350, 400, 450, 500, 550, 600, 650]
ax.set_xticklabels(x_ticks, rotation=0, fontsize=12)
y_ticks = [32, 34, 36, 38, 40, 42, 44, 46]
ax.set_yticklabels(y_ticks, rotation=0, fontsize=11)
plt.show()
fig, ax = plt.subplots()
plt.plot(T_pre_plot, fuel_saving_plot,\'-*\',color=\'green\', linewidth=2)
plt.grid(\'both\', linestyle=\'--\', linewidth=1.2)
plt.xlabel(\'Preheating Temperature [K]\', fontsize=14)
plt.ylabel(\'Fuel Savings [%]\', fontsize=14)
plt.title(\'Effect of Air Preheating on Fuel Savings\',fontsize=15,fontweight=\'bold\')
x_ticks = [250, 300, 350, 400, 450, 500, 550, 600, 650]
ax.set_xticklabels(x_ticks, rotation=0, fontsize=12)
y_ticks = [-5, 0, 5, 10, 15, 20, 25, 30]
ax.set_yticklabels(y_ticks, rotation=0, fontsize=11)
plt.show()
Output of the above code
Leave a comment
Thanks for choosing to leave a comment. Please keep in mind that all the comments are moderated as per our comment policy, and your email will not be published for privacy reasons. Please leave a personal & meaningful conversation.
Other comments...
FULL SCALE COMBUSTION MODELLING OF A PORT FUEL INJECTION ENGINE
…
22 Jul 2020 08:09 AM IST
Week 7: Shock tube simulation project
…
24 May 2020 08:21 PM IST
Week 8: Literature review - RANS derivation and analysis
RANS LITERATURE REVIEW: DERIVATION OF RANS EQUATONS FOR TURBULENT FLUID FLOWS OBJECTIVE To apply Reynolds Decomposition to NS Equations and obtain the expression for Reynold's Stress …
21 May 2020 05:36 PM IST
Week 5 - Compact Notation Derivation for a simple Mechanism
Please Find the solution of the challenge attached.
20 May 2020 07:20 PM IST
Related Courses
Skill-Lync offers industry relevant advanced engineering courses for engineering students by partnering with industry experts.
© 2025 Skill-Lync Inc. All Rights Reserved.