Project

Adiabatic Flame Temperature calculation for different Cases

Adiabatic Flame Temperature Calculation:

What is Combustion:

Combustion is a chemical process in which a substance reacts rapidly with oxygen and gives off heat. The original substance is called the fuel, and the source of oxygen is called the oxidizer. The fuel can be a solid, liquid, or gas, although for airplane propulsion the fuel is usually a liquid. The oxidizer, likewise, could be a solid, liquid or gas, but is usually a gas (air) for airplanes. For model rockets, solid fuel and oxidizer are used.

What is Adiabatic flame temperature:

The purpose of burning fuel in a combustion chamber is to increase the temperature of the gas stream, and the flame temperature is one of the factors because it influences the reaction rate of combustion. Another parameter that influences the reaction rate is the combustion pressure.

To summarize, the adiabatic flame temperature for a given fuel-oxidizer combination is determined by finding the final state temperature (i.e. the adiabatic flame temperature) for which the sum of the enthalpies of the reactants equals the sum of the enthalpies of the products.

To calculate it theoretically we are using the Newton-Raphson method as an iterative solver.

There are two types of adiabatic flame temperature depends on its own process.

  1. Constant Volume
  2. Constant pressure
  • These tell us the theoretical temperature obtained by the combustion process in the adiabatic conditions (no energy lost out to the environment).

In total, we are examining AFT using four different cases:

Case1: Examining the Adiabatic Flame Temperature of Methane-Air Combustion by trying out different equivalence ratio\'s using Constant Volume Chamber. Validating with Cantera.

Case2: Examining the Flame Temperature of Methane-Air Combustion by using Constant Pressure Chamber including the Heat loss.

Case3: Examining the Flame Temperature of -ane, -ene and -yne variants of 2 Carbon atom chain with including the Heat loss of 35%.

Case4: Examining the Flame Temperature of general alkane, Observe the effect of the number of carbon atoms (from 1 to 3) on the final temperature.

  • As we said that AFT can be obtained by equalizing the enthalpies of products and reactants, We are going to take polynomial function from the trusted database of NASA at a particular temperature.

`h(T)=(a_1+a_2*(T/2)+a_3*(T^2/3)+a_4*(T^3/4)+a_5*(T^4/5)+a_6*(T/6))*R*T`

Where h = enthalpy

a_i = coefficient of each species

T = temperature

R = Gas constant

  • The coefficient values are extracted from the website of the GRI Mech-30 --> thermodat file.
  • Probably, for the reactants, we take low temperatures i.e from STP conditions and for products we take high temperatures.
  • The AFT is going to be calculated by using the Newton Raphson iterative method to find the root of the function using an initial guess value and it iterates until it reaches the given tolerance value.

`T_(New) =T_(guess) - alpha*[[f(T_(guess))]/[fprime(T_(guess))]]`

Where

T_New = new value of the temperature after the successive iteration, at the end iteration its is AFT

T_guess = initial guess temperature

`alpha` = relaxation factor (<1, solution is under relaxation and >1, the solution is over relaxed)

Case1: Examining the Adiabatic Flame Temperature of Methane-Air Combustion by trying out different equivalence ratio\'s using Constant Volume Chamber. Validating with Cantera:

The equivalence ratio is defined as the ratio of the actual fuel/air ratio to the stoichiometric fuel/air ratio. If the equivalence ratio is equal to one, the combustion is stoichiometric. If it is < 1, the combustion is lean with excess air, and if it is >1, the combustion is rich with incomplete combustion.

Using Python:

  • The taken stoichiometric combustion of methane-air is:

`CH_4+2(O_2+3.76N_2)->CO_2+2H_2O+7.52N_2`

  • For the equivalence ratio, the actual or stoichiometric fuel to air ratio is written as :

`CH_4+(2/(phi))(O_2+3.76N_2)-> xCO_2+yH_2O+Other Products`

Lean Mixture (`phi<1`):

`CH_4+(2/(phi))(O_2+3.76N_2) -> CO_2+2H_2O+(7.52/phi)N_2+(2/phi-2)O_2`

Rich Mixture (`phi>1`)

`CH_4+(2/(phi))(O_2+3.76N_2) -> (4/phi-3)CO_2+2H_2O+(7.52/phi)N_2+(4-4/phi)CO`

  • So, as we know that the reaction is happening in the constant volume chamber, the enthalpy balance of the products and reactants.

`(h_(Products)-h_(Reactants))-R*(n_(Products)*T-n_(Reactants)*T_(std))`

  • Here the T_std means, the temperature at the STP conditions. This temp is used to calculating the enthalpies of the reactants.
  • To calculate the enthalpies of the products, we are using the Newton Raphson iterative method to know the value of AFT.
  • The relaxation factor is taken as 0.2. We may increase the relaxation factor up to 0.9 on the behavior of the solution. If we exceed the relaxation factor more than 1, the solution may diverge.
  • The tolerance given is 1e-03.
  • We are comparing python\'s AFT with the AFT obtained by the Cantera.

Code:

\"\"\"
in this program we are going to calculate the Adiabatic Flame Temperature (AFT)
at different equivalence ratios

Effect of eqiuivalance ratio on AFT

CH4+2(O2+3.76N2)=CO2+2H2O+7.5N2
\"\"\"

import matplotlib.pyplot as plt
import math
import numpy as np

R = 8.314 # J/mol-k
def h(T, co_effs):
# function for calculating the enthalpy
	
	a1 = co_effs[0]
	a2 = co_effs[1]
	a3 = co_effs[2]
	a4 = co_effs[3]
	a5 = co_effs[4]
	a6 = co_effs[5]

	return (a1 + a2*T/2 + a3*pow(T,2)/3 + a4*pow(T,3)/4+ a5*pow(T,4)/5 + a6/T)*R*T

ch4_coeffs_l = [5.14987613E+00, -1.36709788E-02, 4.91800599E-05, -4.84743026E-08, 1.66693956E-11, -1.02466476E+04, -4.64130376E+00]

o2_coeffs_l = [3.78245636E+00, -2.99673416E-03, 9.84730201E-06, -9.68129509E-09, 3.24372837E-12, -1.06394356E+03, 3.65767573E+00]

n2_coeffs_h = [0.02926640E+02, 0.14879768E-02,-0.05684760E-05, 0.10097038E-09, -0.06753351E-13, -0.09227977E+04, 0.05980528E+02]

n2_coeffs_l = [0.03298677E+02, 0.14082404E-02, -0.03963222E-04, 0.05641515E-07, -0.02444854E-10, -0.10208999E+04, 0.03950372E+02]

co2_coeffs_h = [3.85746029E+00, 4.41437026E-03, -2.21481404E-06, 5.23490188E-10, -4.72084164E-14, -4.87591660E+04, 2.27163806E+00]

h2o_coeffs_h = [3.03399249E+00, 2.17691804E-03, -1.64072518E-07, -9.70419870E-11, 1.68200992E-14, -3.00042971E+04, 4.96677010E+00]

o2_coeffs_h = [3.28253784E+00, 1.48308754E-03, -7.57966669E-07, 2.09470555E-10, -2.16717794E-14, -1.08845772E+03, 5.45323129E+00]

co_coeffs_h = [2.71518561E+00, 2.06252743E-03, -9.98825771E-07, 2.30053008E-10, -2.03647716E-14, -1.41518724E+04, 7.81868772E+00]


def f(T,phi):
	# here in this step we are going to calculate the enthalpies of products and reactants
	# h = enthalpy

		if(phi<=1):
			h_co2_p = h(T,co2_coeffs_h)
			h_n2_p = h(T,n2_coeffs_h)
			h_h2o_p = h(T,h2o_coeffs_h)
			h_o2_p = h(T,o2_coeffs_h)
			h_products = h_co2_p + 2*h_h2o_p + (7.52/phi)*h_n2_p + (2/phi - 2)*h_o2_p
			n_products = 1 + 2 + 3.76*(2/phi) + (2/phi - 2)

		elif(phi>1):
			h_co2_p = h(T,co2_coeffs_h)
			h_n2_p = h(T,n2_coeffs_h)
			h_h2o_p = h(T,h2o_coeffs_h)
			h_co_p = h(T,co_coeffs_h)
			h_products = (4/phi - 3)*h_co2_p + 2*h_h2o_p + (4 - 4/phi)*h_co_p + (7.52/phi)*h_n2_p
			n_products = (4/phi - 3) + 2 + (4-4/phi) + (7.52/phi)
		print(h_products)

		T_std = 298.15

		h_ch4_r = h(T_std,ch4_coeffs_l)
		h_o2_r = h(T_std,o2_coeffs_l)
		h_n2_r = h(T_std,n2_coeffs_l)
		h_reactants = h_ch4_r + (2/phi)*h_o2_r + (7.52/phi)*h_n2_r
		n_reactants = 1+ (2/phi) + 3.76*(2/phi)

		print(h_reactants)

		return(h_products-h_reactants)-R*(n_products*T-n_reactants*T_std)


def fprime(T,phi):
	return (f(T+1e-6,phi) - f(T,phi))/1e-06


T_guess = 1500

tol = 1e-03
ct=0
alpha=0.2

phi = np.linspace(0.1,1.5,20)

for i in range (0,len(phi)):


	while(abs(f(T_guess,phi[i])) > tol):
		T_guess = T_guess - alpha*(f(T_guess,phi[i])/fprime(T_guess,phi[i]))
	plt.plot(phi[i],T_guess,\'*\',color=\'blue\')	
		
ct=ct+1
print(T_guess,phi)

print(T_guess)	
plt.xlabel(\'Equivalence Ratio\')
plt.ylabel(\'Adiabatic Flame Temperature\')
plt.title(\'Effect of Equivalence Ratio on AFT using\')
plt.grid(\'on\')
plt.show()

  • The observed equivalence ratio is from 0.1 to 1.5.
  • Till the equivalence ratio of 1, the trend of the solution increases and after that, it starts decreasing, which we actually gave to the program to run.
  • The maximum temperature obtained from the program is 2805.5 k.
  • As we know the high temperature observed is good combustion, and it is shown at the equivalence ratio of 0.98. So from this Stoichiometric equivalence ratio is safe for the no heat loss condition.

Using Cantera:

Cantera is a collection of object-oriented software tools for problems involving chemical kinetics, thermodynamics, and transport processes. Among other things, it can be used to:

  • conduct kinetics simulations with large reaction mechanisms
  • compute chemical equilibrium
  • evaluate thermodynamic and transport properties of mixtures
  • evaluate species chemical production rates
  • conduct reaction path analysis
  • create process simulators using networks of stirred reactors
  • model non-ideal fluids

In Cantera\'s gas.TPX\' is an inbuilt function used to initialize the temperature, pressure and mole fraction of the species. \'gas.set_equivalence_ratio\' is used to give the equivalence ratio for the particular species. And \'gas.equilibrate\' used to initialize the flame temperature and the referee the particular solver.

import matplotlib.pyplot as plt
import cantera as ct

#CH4+2(O2+3.76N2)=CO2+2H2O+7.5N2

gas = ct.Solution(\'gri30.xml\')
phi = 0.1
for i in range (0,15):

	gas.TPX = 298.15,101325,{\'CH4\':1, \'O2\':2/phi, \'N2\':7.52/phi}
	gas.set_equivalence_ratio(phi, \'CH4\',\'O2:1, N2:3.76\')
	gas.equilibrate(\'UV\',\'auto\')
	print(phi,gas.T)
	plt.plot(phi,gas.T,\'*\',color=\'blue\')
	phi = phi+0.1

plt.xlabel(\'Equivalence Ratio\')
plt.ylabel(\'Adiabatic Flame Temperature\')
plt.title(\'Effect of Equivalence Ratio on AFT using Cantera\')
plt.grid(\'on\')
plt.show()

  • The maximum temperature attained in the Cantera case is 2608.5 k.
  • The decrease in the temperature compare to the previous Python case is because Cantera minimizes the Gibbs free energy to get the equilibrium state.
  • If we observe the pattern, Cantera results are more smooth and accurate then the other.
  • The other reason is that in Cantera many species are formed. To equilibrate these species a lot of energy is optimized.

Case2: Examining the Flame Temperature of Methane-Air Combustion by using Constant Pressure Chamber including the Heat loss:

  • As in this case, we are considering the haet loss phenomena in the constant pressure chamber the reaction is not going to be considered as the Adiabatic combustion.
  • The reaction here we are considered is the stoichiometric combustion of Methane-Air.

`CH_4+2(O_2+3.76N_2)->CO_2+2H_2O+7.52N_2`

  • The heat loss incurred in the program as maximum possible heat loss from the reaction.
  • The maximum possible heat loss is going to be calculated as the constant value Lower Heating Value LHV.
  • LHV we are obtaining it from the difference of reactants and products when both products and reactants at the SSTP conditions.
  • `LHV=H_(CH_4)^298.15+2H_(O_2)^298.15-H_(CO_2)^298.15-2H_(H_2O)^298.15`
  • The heat loss factor is varied from no heat loss to entire heat loss as a multiplier of LHV.
  • Heat loss is an additive to the difference between the enthalpies of products and reactants.

`H_(Products)-H_(Reactants)+H_(loss)=0`

Code:

\"\"\"
Effect of heat loss (h_loss) on Adiabatic Flame Temperature (AFT)
CH4+2(O2+3.76N2)=CO2+2H2O+7.5N2
\"\"\"
import matplotlib.pyplot as plt
import numpy as np

def h(T, co_effs):
	R = 8.314 # J/mol-k
	# function for calculating the enthalpy
	a1 = co_effs[0]
	a2 = co_effs[1]
	a3 = co_effs[2]
	a4 = co_effs[3]
	a5 = co_effs[4]
	a6 = co_effs[5]

	return (a1 + a2*T/2 + a3*pow(T,2)/3 + a4*pow(T,3)/4+ a5*pow(T,4)/5 + a6/T)*R*T
ch4_coeffs_l = [5.14987613E+00, -1.36709788E-02, 4.91800599E-05, -4.84743026E-08, 1.66693956E-11, -1.02466476E+04, -4.64130376E+00]

o2_coeffs_l = [3.78245636E+00, -2.99673416E-03, 9.84730201E-06, -9.68129509E-09, 3.24372837E-12, -1.06394356E+03, 3.65767573E+00]

n2_coeffs_l = [0.03298677E+02, 0.14082404E-02, -0.03963222E-04, 0.05641515E-07, -0.02444854E-10, -0.10208999E+04, 0.03950372E+02]

co2_coeffs_h = [3.85746029E+00, 4.41437026E-03, -2.21481404E-06, 5.23490188E-10, -4.72084164E-14, -4.87591660E+04, 2.27163806E+00]

h2o_coeffs_h = [3.03399249E+00, 2.17691804E-03, -1.64072518E-07, -9.70419870E-11, 1.68200992E-14, -3.00042971E+04, 4.96677010E+00]

n2_coeffs_h = [0.02926640E+02, 0.14879768E-02,-0.05684760E-05, 0.10097038E-09, -0.06753351E-13, -0.09227977E+04, 0.05980528E+02]

def f(T,h_loss):
	R = 8.314 # J/mol-k
	T_std = 298.15 # kelvin
	LHV = 800950 # Lower Heating Value


	h_co2_p = h(T,co2_coeffs_h)
	h_n2_p = h(T,n2_coeffs_h)
	h_h2o_p = h(T,h2o_coeffs_h)

	h_ch4_r = h(T_std,ch4_coeffs_l)
	h_o2_r = h(T_std,o2_coeffs_l)
	h_n2_r = h(T_std,n2_coeffs_l)

	h_products = h_co2_p + 2*h_h2o_p + 7.52*h_n2_p
	h_reactants = h_ch4_r + 2*h_o2_r + 7.52*h_n2_r

	loss = h_loss*LHV

	return h_products - h_reactants + loss

def fprime(T,h_loss):
	return (f(T+1e-6,h_loss) - f(T,h_loss))/1e-06	

T_guess = 1500

tol = 1e-03
ct=0
alpha=0.2
h_loss = np.linspace(0,1,20)
T_aft = [] # the required temp(aft) we are looking to find

for i in range(0,len(h_loss)):
	while(abs(f(T_guess,h_loss[i])) > tol):
		T_guess = T_guess - alpha*((f(T_guess,h_loss[i])/fprime(T_guess,h_loss[i])))

	ct = ct+1
	T_aft.append(T_guess)

print(T_aft)

plt.plot(h_loss,T_aft,\'*\',color=\'blue\')
plt.xlabel(\'Heat Loss Factor\')
plt.ylabel(\'Flame Temperature (K)\')
plt.title(\'Effect of Heat Loss on the Flame Temperature\')
plt.grid(\'on\')
plt.show()

  • As general phenomena all we know, the heat loss from the reaction increases the flame temperature of the products is decreasing because lesser heat is available for the reaction.
  • At starting, means heat loss is 0, the Flame temperature in sense actually Adiabatic flame temperature is 2340.07k.
  • At heat loss 1, means all the heat is lost some way from the reaction and no heat is left for the products, then the flame temperature here is 298.15k.
  • From the graph at the heat loss factor value of 0.35, the flame temperature is 1687.99k.

Case3: Examining the Flame Temperature of -ane, -ene and -yne variants of 2 Carbon atom chain with including the Heat loss of 35%:

  • Here we are examining the AFT of -ane (Ethane), -ene (Ethene), -yne (Ethyne) variants with the type of different hydrocarbons.
  • Here we are applying the heat loss factor of 0.35 or 35% as a multiplier for LHV.

Ethane:

`C_2H_6+3.5(O_2+3.76N_2)->2CO_2+3H_2O+2(7.52N_2)`

Ethene:

`C_2H_4+3(O_2+3.76N_2)->2CO_2+2H_2O+3(3.76N_2)`

Ethyne:

`C_2H_2+2.5(O_2+3.76N_2)->2CO_2+H_2O+2.5(7.52N_2)`

  • The combustion is takes place in the constant pressure chamber with the heat loss factor of 0.35.
  • The equilibrium equation for the reaction is:

`H_(Products)-H_(Reactants)+(0.35*LHV)=0`

Code:

\"\"\"

Calculation of AFT of Alkanes, Alkenes, and Alkynes
Using heat loss factor, h_loss = 0.35 (35%)

Ethane

C2H6 + 3.5O2 + 3.5*3.76N2 = 2CO2 + 3H20 + 3.5*3.76N2 + 0.35*LHV

Ethene

C2H4 + 3O2 + 3*3.76N2 = 2CO2 + 2H20 + 3*3.76N2 + 0.35*LHV

Ethyne

C2H2 + 2.5O2 + 2.5*3.76N2 = 2CO2 + H20 + 2.5*3.76N2 + 0.35*LHV

\"\"\"
import matplotlib.pyplot as plt
import numpy as np
import math

def h(T,co_effs):

	R = 8.314 # J/mol-k
	# function for calculating the enthalpy
	a1 = co_effs[0]
	a2 = co_effs[1]
	a3 = co_effs[2]
	a4 = co_effs[3]
	a5 = co_effs[4]
	a6 = co_effs[5]


	return (a1 + a2*T/2 + a3*pow(T,2)/3 + a4*pow(T,3)/4+ a5*pow(T,4)/5 + a6/T)*R*T

c2h6_coeffs_l = [4.29142492E+00, -5.50154270E-03, 5.99438288E-05, -7.08466285E-08, 2.68685771E-11, -1.15222055E+04, 2.66682316E+00]
c2h4_coeffs_l = [3.95920148E+00, -7.57052247E-03, 5.70990292E-05, -6.91588753E-08, 2.69884373E-11, 5.08977593E+03, 4.09733096E+00]
c2h2_coeffs_l = [8.08681094E-01, 2.33615629E-02, -3.55171815E-05, 2.80152437E-08, -8.50072974E-12, 2.64289807E+04, 1.39397051E+01]
n2_coeffs_l = [0.03298677E+02, 0.14082404E-02, -0.03963222E-04, 0.05641515E-07, -0.02444854E-10, -0.10208999E+04, 0.03950372E+02]

n2_coeffs_h = [0.02926640E+02, 0.14879768E-02,-0.05684760E-05, 0.10097038E-09, -0.06753351E-13, -0.09227977E+04, 0.05980528E+02]
o2_coeffs_l = [3.78245636E+00, -2.99673416E-03, 9.84730201E-06, -9.68129509E-09, 3.24372837E-12, -1.06394356E+03, 3.65767573E+00]
co2_coeffs_h = [3.85746029E+00, 4.41437026E-03, -2.21481404E-06, 5.23490188E-10, -4.72084164E-14, -4.87591660E+04, 2.27163806E+00]
h2o_coeffs_h = [3.03399249E+00, 2.17691804E-03, -1.64072518E-07, -9.70419870E-11, 1.68200992E-14, -3.00042971E+04, 4.96677010E+00]

\"\"\"
Ethane
equation is on top
\"\"\"
def f_ane(T):

	R = 8.314 # J/mol-k
	T_std = 298.15 # kelvin
	LHV = 1428275 # Lower Heating Value

	h_co2_p = h(T,co2_coeffs_h)
	h_n2_p = h(T,n2_coeffs_h)
	h_h2o_p = h(T,h2o_coeffs_h)

	h_c2h6_r = h(T_std,c2h6_coeffs_l)
	h_o2_r = h(T_std,o2_coeffs_l)
	h_n2_r = h(T_std,n2_coeffs_l)


	h_products = 2*h_co2_p + 3*h_h2o_p + (3.5*3.76*h_n2_p)
	h_reactants = h_c2h6_r + 3.5*h_o2_r + (3.5*3.76*h_n2_r)

	return h_products - h_reactants + (0.35*LHV)

def fprime_ane(T):
	return (f_ane(T+1e-06) - f_ane(T))/1e-06


\"\"\"
Ethene
equation is on top
\"\"\"
def f_ene(T):

	R = 8.314 # J/mol-k
	T_std = 298.15 # kelvin
	LHV = 1323474 # Lower Heating Value

	h_co2_p = h(T,co2_coeffs_h)
	h_n2_p = h(T,n2_coeffs_h)
	h_h2o_p = h(T,h2o_coeffs_h)

	h_c2h4_r = h(T_std,c2h4_coeffs_l)
	h_o2_r = h(T_std,o2_coeffs_l)
	h_n2_r = h(T_std,n2_coeffs_l)


	h_products = 2*h_co2_p + 2*h_h2o_p + (3*3.76*h_n2_p)
	h_reactants = h_c2h4_r + 3*h_o2_r + (3*3.76*h_n2_r)

	return h_products - h_reactants + (0.35*LHV)

def fprime_ene(T):
	return (f_ene(T+1e-06) - f_ene(T))/1e-06


\"\"\"
Ethyne
equation is on top
\"\"\"
def f_yne(T):

	R = 8.314 # J/mol-k
	T_std = 298.15 # kelvin
	LHV = 1258020 # Lower Heating Value

	h_co2_p = h(T,co2_coeffs_h)
	h_n2_p = h(T,n2_coeffs_h)
	h_h2o_p = h(T,h2o_coeffs_h)

	h_c2h2_r = h(T_std,c2h2_coeffs_l)
	h_o2_r = h(T_std,o2_coeffs_l)
	h_n2_r = h(T_std,n2_coeffs_l)


	h_products = 2*h_co2_p + h_h2o_p + (3*3.76*h_n2_p)
	h_reactants = h_c2h2_r + 2.5*h_o2_r + (2.5*3.76*h_n2_r)

	return h_products - h_reactants + (0.35*LHV)

def fprime_yne(T):
	return (f_yne(T+1e-06) - f_yne(T))/1e-06

T_ane_guess = 1500
T_ene_guess = 1500
T_yne_guess = 1500

tol = 1e-03
alpha=0.2
T_aft = [] # the required temp(aft) we are looking to find

# ane
while(abs(f_ane(T_ane_guess)) > tol):
	T_ane_guess = T_ane_guess-alpha*(f_ane(T_ane_guess)/fprime_ane(T_ane_guess))
T_aft.append(T_ane_guess)


# ene
while(abs(f_ene(T_ene_guess)) > tol):
	T_ene_guess = T_ene_guess-alpha*(f_ene(T_ene_guess)/fprime_ene(T_ene_guess))
T_aft.append(T_ene_guess)


# yne
while(abs(f_yne(T_yne_guess)) > tol):
	T_yne_guess = T_yne_guess-alpha*(f_yne(T_yne_guess)/fprime_ane(T_yne_guess))
T_aft.append(T_yne_guess)

fuel = [\'Ethane\', \'Ethene\', \'Ethyne\']

print (T_aft)
#plt.plot(fuel,T_aft)
plt.bar(fuel,T_aft)
plt.xlabel(\'Type of Hydrocarbon\')
plt.ylabel(\'Adiabatic Flame Temperature\')
plt.title(\'Observing changes in AFT for a heat loss value of 0.35\')
plt.show()

  • Here we can observe that as the hydrocarbon atoms are increasing, the flame temperature is decreasing.
  • There is another reason, the multiple C-atom bonds. For this more energy is required to break the bond and let it to a reaction, hence higher temperatures are observed.
  • Ethane - C2H6 = 1714.17 k
  • Ethene - C2H4 = 1836.93 k
  • Ethyne - C2H2 = 1874.40 k

Case4: Examining the Flame Temperature of general alkane, Observe the effect of the number of carbon atoms (from 1 to 3) on the final temperature:

  • In this case, we are going to study the adiabatic flame temperature of the different number of C-atoms in hydrocarbons.
  • The mixtures we are performing are Methane-Air, Ethane-Air, and Propane-Air.

Methane:

`CH_4 + 2(O_2+3.76N_2) -> CO_2 + 2H2O + 2*(3.76N2)`

Ethane:

`C_2H_6 + 3.5O_2 + 3.5*(3.76N_2) -> 2CO2 + 3H2O + 3.5*(3.76N_2)`

Propane:

`C_3H_8 + 5O_2 + 5*(3.76N_2) -> 3CO_2 + 4H_2O + 5*(3.76N_2)`

  • The combustion is takes place in the constant pressure chamber.
  • The equilibrium equation for the reaction is:

`H_(Products)-H_(Reactants)=0`

Code:

\"\"\"
Effect of number of carbon atoms (c = 1 to 3) on Adiabatic Flame Temperature
methane:
CH4 + 2O2 + 2*3.76N2 = CO2 + 2H2O + 2*3.76N2

ethane:
C2H6 + 3.5O2 + 3.5*3.76N2 = 2CO2 + 3H2O + 3.5*3.76N2

propane:
C3H8 + 5O2 + 5*3.76N2 = 3CO2 + 4H2O + 5*3.76N2

h_loss = 0
\"\"\"

import matplotlib.pyplot as plt
import numpy as np
import math

def h(T,co_effs):

	R = 8.314 # J/mol-k
	# function for calculating the enthalpy
	a1 = co_effs[0]
	a2 = co_effs[1]
	a3 = co_effs[2]
	a4 = co_effs[3]
	a5 = co_effs[4]
	a6 = co_effs[5]


	return (a1 + a2*T/2 + a3*pow(T,2)/3 + a4*pow(T,3)/4+ a5*pow(T,4)/5 + a6/T)*R*T

ch4_coeffs_l = [5.14987613E+00, -1.36709788E-02, 4.91800599E-05, -4.84743026E-08, 1.66693956E-11, -1.02466476E+04, -4.64130376E+00]
c2h6_coeffs_l = [4.29142492E+00, -5.50154270E-03, 5.99438288E-05, -7.08466285E-08, 2.68685771E-11, -1.15222055E+04, 2.66682316E+00]
c3h8_coeffs_l = [0.93355381E+00, 0.26424579E-01, 0.61059727E-05, -0.21977499E-07, 0.95149253E-11, -0.13958520E+05, 0.19201691E+02]
o2_coeffs_l = [3.78245636E+00, -2.99673416E-03, 9.84730201E-06, -9.68129509E-09, 3.24372837E-12, -1.06394356E+03, 3.65767573E+00]
n2_coeffs_l = [0.03298677E+02, 0.14082404E-02, -0.03963222E-04, 0.05641515E-07, -0.02444854E-10, -0.10208999E+04, 0.03950372E+02]

co2_coeffs_h = [3.85746029E+00, 4.41437026E-03, -2.21481404E-06, 5.23490188E-10, -4.72084164E-14, -4.87591660E+04, 2.27163806E+00]
h2o_coeffs_h = [3.03399249E+00, 2.17691804E-03, -1.64072518E-07, -9.70419870E-11, 1.68200992E-14, -3.00042971E+04, 4.96677010E+00]
n2_coeffs_h = [0.02926640E+02, 0.14879768E-02,-0.05684760E-05, 0.10097038E-09, -0.06753351E-13, -0.09227977E+04, 0.05980528E+02]


\"\"\"
methane:
CH4 + 2O2 + 2*3.76N2 = CO2 + 2H2O + 2*3.76N2
\"\"\"
def f_methane(T):

	R = 8.314 # J/mol-k
	T_std = 298.15 # kelvin

	h_co2_p = h(T,co2_coeffs_h)
	h_n2_p = h(T,n2_coeffs_h)
	h_h2o_p = h(T,h2o_coeffs_h)

	h_ch4_r = h(T_std,ch4_coeffs_l)
	h_o2_r = h(T_std,o2_coeffs_l)
	h_n2_r = h(T_std,n2_coeffs_l)


	h_products = h_co2_p + 2*h_h2o_p + (2*3.76*h_n2_p)
	h_reactants = h_ch4_r + 2*h_o2_r + (2*3.76*h_n2_r)

	return h_products - h_reactants 

def fprime_methane(T):
	return (f_methane(T+1e-06) - f_methane(T))/1e-06

\"\"\"
ethane:
C2H6 + 3.5O2 + 3.5*3.76N2 = 2CO2 + 3H2O + 3.5*3.76N2
\"\"\"
def f_ethane(T):

	R = 8.314 # J/mol-k
	T_std = 298.15 # kelvin

	h_co2_p = h(T,co2_coeffs_h)
	h_n2_p = h(T,n2_coeffs_h)
	h_h2o_p = h(T,h2o_coeffs_h)

	h_c2h6_r = h(T_std,ch4_coeffs_l)
	h_o2_r = h(T_std,o2_coeffs_l)
	h_n2_r = h(T_std,n2_coeffs_l)


	h_products = 2*h_co2_p + 3*h_h2o_p + (3.5*3.76*h_n2_p)
	h_reactants = h_c2h6_r + 3.5*h_o2_r + (3.5*3.76*h_n2_r)

	return h_products - h_reactants 

def fprime_ethane(T):
	return (f_ethane(T+1e-06) - f_ethane(T))/1e-06

\"\"\"
propane:
C3H8 + 5O2 + 5*3.76N2 = 3CO2 + 4H2O + 5*3.76N2
\"\"\"
def f_propane(T):

	R = 8.314 # J/mol-k
	T_std = 298.15 # kelvin

	h_co2_p = h(T,co2_coeffs_h)
	h_n2_p = h(T,n2_coeffs_h)
	h_h2o_p = h(T,h2o_coeffs_h)

	h_c3h8_r = h(T_std,ch4_coeffs_l)
	h_o2_r = h(T_std,o2_coeffs_l)
	h_n2_r = h(T_std,n2_coeffs_l)


	h_products = 3*h_co2_p + 4*h_h2o_p + (5*3.76*h_n2_p)
	h_reactants = h_c3h8_r + 5*h_o2_r + (5*3.76*h_n2_r)

	return h_products - h_reactants 

def fprime_propane(T):
	return (f_propane(T+1e-06) - f_propane(T))/1e-06

T_methane_guess = 1500
T_ethane_guess = 1500
T_propane_guess = 1500

tol = 1e-03
alpha=0.2
T_aft = [] # the required temp(aft) we are looking to find

# methane
while(abs(f_methane(T_methane_guess)) > tol):
	T_methane_guess = T_methane_guess-alpha*(f_methane(T_methane_guess)/fprime_methane(T_methane_guess))
T_aft.append(T_methane_guess)


# ethane
while(abs(f_ethane(T_ethane_guess)) > tol):
	T_ethane_guess = T_ethane_guess-alpha*(f_ethane(T_ethane_guess)/fprime_ethane(T_ethane_guess))
T_aft.append(T_ethane_guess)


# propane
while(abs(f_propane(T_propane_guess)) > tol):
	T_propane_guess = T_propane_guess-alpha*(f_propane(T_propane_guess)/fprime_propane(T_propane_guess))
T_aft.append(T_propane_guess)

fuel = [\'methane\', \'ethane\', \'propane\']

print (T_aft)
#plt.plot(fuel,T_aft)
plt.bar(fuel,T_aft)
plt.xlabel(\'Type of Hydrocarbon\')
plt.ylabel(\'Adiabatic Flame Temperature (K)\')
plt.title(\'Effect of Alkane carbon atoms on AFT\')
plt.show()

  • Methane = 2325.59
  • Ethane = 2391.93
  • Propane = 2418.98
  • From the bar graph, it shown that propane has a high AFT value compared to others because of the hydrogen atoms. Hydrogen atoms take more energy to break.
  • If we observe the temperatures (AFT) here, there is no much difference in them even though the carbon atoms are increased.
  • The intermediate stage or the reaction mechanism in the combustion process in the Alkanes are fairly simple and doesn\'t produce any products that are not predicted. In the previous case, in ene\'s, and yne\'s this phenomenon is completely opposite to the ane\'s.
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.