## Heat Recuperator - Combustion Efficiency

In this challenge, the efficiency of using a heat recuperator to pre-heat the air is analyzed. For that, we simulate a furnace burning methane and air mixture, and we analyze first how the pre-heating affects at the AFL, and then the total heat/work that could be extracted from the cycle. All this work is performed using Cantera.

1) Effect of preheating in the AFL.

To compute this, a simple program was written in Cantera, using the Quantity objects to create the mixtures. The program can be found attached at the end of the project. As expected, pre-heating the air before entering the furnace makes that the adiabatic temperature of the products increases. It does it in an almost linear function. This way, the combustion can takes place sooner and not so much energy needs to be employed in heating the air, and therefore it can be used into further heating the products. This is, the products of the combustion are going to increase their temperature when the air is preheated.

2) Combustion Eficciency with Heat Recuperator

First, mention that the combustion efficiency refered here is calculated as the ratio from the Specific Q extracted from the reaction to the LHV. Assuming an adiabatic furnace,  Qout =(Enthalpy of Reactants - Enthalpy of Products), and the LHV is the max extractable energy from a chemical reaction taking place at STP.

What this means is that, hypothetically, if we keep increasing the Qout by simply increasing the preheat temperature without any constraint, efficiency can be greater than 1. However, the air preheating temperature is dependent on the exhaust temperature after the combustion, and we know that this will be less than the AFT, as there will be some work done and there will be some losses as well. Therefore a realistic estimate after certain approximations is that the exhaust temperature is set to a constant value of 1700 K. The above results show what was expected. Indeed preheating the air would lead to a higher efficiency in the combustion process. The outcome of any combustion is the Total Q that can be extracted from it (normally to produce Work). This shows that preheating the air would lead to higher values of this heat, or what is the same, that we don't need to work in the stechiometric relation to achieve the desired heat. Therefore, we can save in fuel by preheating the air employing a heat recuperator, and then produce combustion with less fuel than the stoichiometric.

"""
Sample code to vary the temperature of air and oxidizier individually
And find the impact of Pre-heating the air in the AFL
"""
import cantera as ct
import matplotlib.pyplot as plt

gas = ct.Solution('gri30.cti')

B = ct.Quantity(gas)
B.TPX = 298.15, ct.one_atm, 'CH4:1'
print(B.moles) #By default, it is the number of moles in 1g of air
print(B.mass_fraction_dict())
B.moles = 1

n = 50
Tpre_min = 298
Tpre_max = 600

for i in range (0,n):

Tpre = Tpre_min + (Tpre_max-Tpre_min)*i/n
A = ct.Quantity(gas)
A.TPX = Tpre, ct.one_atm, {'O2':0.21, 'N2':0.79}
phi=1
A.moles = 2*4.76/phi #9.523

#The following step is used to apply the molar balance
M = A+B
M.equilibrate('HP')
print(M.T)
plt.plot(Tpre,M.T,'*',color='red')

plt.xlabel('Pre-Heating Temperature [K]')
plt.ylabel('Adiabatic Flame Temperature [K]')
plt.title('Effect of the Pre-Heating in AFL')
plt.show()
"""
This programs analyzes the effect of air pre-heating into the combustion efficiency
"""
import cantera as ct
import matplotlib.pyplot as plt

gas = ct.Solution('gri30.cti')

#By default, it is the number of moles in 1g of air.
R = ct.Quantity(gas)
R.TPX = 298.15,ct.one_atm,{'CH4':0.095,'O2':0.1901,'N2':0.7148}
R.moles = 2/0.21+ 1 #The total number of moles is 10.52. There is 1 mole of fuel per 9.52 of air.

P = ct.Quantity(gas)
P.TPX = 298.15,ct.one_atm,{'CO2':0.095,'H2O':0.1901,'N2':0.7148}
P.moles = 2/0.21 + 1

LHV = R.H - P.H
print(LHV)

n = 50
Tpre_min = 298
Tpre_max = 600

for i in range (0,n):

phi=1 #Stechiometric combustion

Tpre = Tpre_min + (Tpre_max-Tpre_min)*i/n
A = ct.Quantity(gas)
A.TPX = Tpre, ct.one_atm, {'O2':0.21, 'N2':0.79}
A.moles = 2/0.21*phi #9.523
M_air = A.mass

F = ct.Quantity(gas)
F.TPX = 298.15,ct.one_atm,{'CH4':1}
F.moles = 1
M_fuel = F.mass

P2 = ct.Quantity(gas)
P2.TPX = 1700,ct.one_atm,{'CO2':0.095,'H2O':0.1901,'N2':0.7148}
P2.moles = 2/0.21*phi + 1

H_react_A = A.H
H_react_F = F.H
H_prod = P2.H

Air_to_fuel = M_air/M_fuel

Q = Air_to_fuel*H_react_A + H_react_F - (Air_to_fuel + 1)*(H_prod)
Qsp = Q/M_fuel
eff = Qsp/LHV
plt.plot(Tpre,eff,'*',color='red')

plt.xlabel('Pre-Heating Temperature [K]')
plt.ylabel('Combustion Efficiency')
plt.title('Effect of the Pre-Heating in Combustion Efficiency')
plt.show()


### Autoignition delay - Cantera Jorge Martinez · 2018-12-11 03:00:54

The purpose of this project is to show the effect of initial temperature and pressure in the ignition delay in a combustion process. For this purpose, a Constant Volume Reactor and the corresponding network objects are created in Cantera, and the combustion process is s Read more

### Shock Tube Simulation using Converge Jorge Martinez · 2018-11-27 02:11:31

The purpose of this project, is to setup and analyze a transient shock tube simulation using Converge Studio. The project will analyze how the interaction of the original shock waves and the reflected waves affect the fluid in the tube, and how the computational mesh ha Read more

### Conjugate Heat Transfer Simulation Jorge Martinez · 2018-10-23 03:33:38

The purpose of this project is to simulate the conjugate heat transfer in a pipe using Converge Studio. For this, an air flow is simulated through an aluminum pipe, which is receiveing a constant heat flux of 10,000 W/m2 at the outside wall. The objective is to understa Read more

### Prandtl-Meyer Shock Problem - Converge Studio Jorge Martinez · 2018-10-20 03:51:53

This project objective is to simulate the Prandtl Meyer shock wave phenomena using Converge Studio. First, a quick literature review about shock waves and their boundary conditions is provided. Then , the problem is set up and solved, focusing in how the different param Read more

### Multivariate Newton-Raphson method Jorge Martinez · 2018-10-18 00:46:05

The purpose of this assignment is to create a Python program including a Multivariate Newton Rhapson Solver, to solve a non-linear coupled differential system. This method is really useful for stiff systems, where the explicit solver are unstable. The system of equatio Read more

### Simulation of Flow Over a Throttle Body Converge Studio - Transient Jorge Martinez · 2018-10-13 22:13:18

The objective of this part of the project, is to simulate the transient flow through an elbow pipe with a throttle valve in the middle. This valve will be rotating from zero to 25 degrees, and then stay steady.  Case Setup. In the steady state part of the project Read more

### Simulation of Flow Over a Throttle Body - Steady State Jorge Martinez · 2018-10-12 03:30:10

This project purpose is to simulate the flow over an elbow body that contains a throttle using CONVERGE Studio. In this first part of the project, an steady state analysis will be set up. This means that the throttle will not move. This case helps set up the real analys Read more

### Adiabatic Flame Temperature using Python and Cantera - Reactor with Heat Loss Jorge Martinez · 2018-10-09 02:16:08

This project main objective is to calculate the Adiabatic Flame Temperature using Python and Cantera. In the first part of the project, the effect of the equivalence ratio for the methane combustion in a constant volume chamber is analyzed, and the python and cantera re Read more

### Backward Facing Step Flow - CONVERGE Studio Jorge Martinez · 2018-10-03 02:52:16

This projects aims to simulate a backward facing step flow using CONVERGE Studio. The flow is creating when a not reacting specie, air (23% O2 and 77% N2 in mass fraction), suffers a pressure gradient between the ends of the channel. The velocity, pressure and recirulat Read more