Challenge

Week 3 - Adiabatic Flame Temperature calculation

Adiabatic Flame Temperature Calculation using Python and Cantera.

Aim :

  • To study the effect of equivalence ratio on Adiabatic Flame Temperature using the Newton Raphson method and Cantera.
  • To calculate the Adiabatic Flame Temperature for the constant pressure with heat loss.
  • To calculate the Adiabatic Flame Temperature for various fuel types such as alkanes, alkenes, and alkynes.
  • To calculate Adiabatic flame temperature by varying the number of carbon atoms.

Theory :

Combustion :

It is a chemical process in which a substance (fuel) reacts rapidly with an oxidizer to release energy. The fuel can be a solid, liquid, or gas.

Adiabatic Flame Temperature:

When a combustion reaction takes place energy is released to the combustion products. If no heat is lost in this process or the combustion chamber is adiabatic, the temperature of the combustion products is known as "Adiabatic Flame Temperature".

In a combustion process, energy in the form of heat is produced, increasing the temperature of the combustion products inside the combustion chamber. Since it is an adiabatic combustion chamber there is no heat loss to the surrounding. As a result, the temperature of products inside the chamber increases. This highest temperature is known as Adiabatic Flame Temperature.

The temperature rise inside a combustion chamber depends on the air-fuel ratio. For example, the flame temperature is reduced when we use an excess oxidizer. The flame temperature is determined by the energy balance of the reaction at equilibrium. There are 2 types of adiabatic flame temperature:

  • Constant Pressure Adiabatic Flame Temperature.
  • Constant Volume Adiabatic Flame Temperature.

Adiabatic Flame Temperature Calculation:

Theoretically, AFT can be obtained by equalizing the enthalpies of products and reactants. We are going to use a polynomial function from the database of NASA at a particular temperature.

where

h = enthalpy

aiai = coefficient of each species

T = Temperature

R = Gas Constant.

The coefficient values can be extracted from the website of the GRI Mech 30 thermostat file. For the reactants, we take low temperatures i.e. STP conditions and for the products usually, temperatures are high. The AFT is calculated using Newton Raphson iterative technique where an initial guess value for the temperature is assumed and it iterates until it reaches the prescribed tolerance value.

where

new = New value of the temperature after the successive iterative.

Tguess= Initial Guess Temperature.

α = Relaxation Factor (<1 under relaxed , >1 over relaxed)

Combustion Stoichiometry:

A stoichiometric Mixture contains the exact amount of fuel and oxidizer such that complete combustion takes place, where all the fuel and oxidizer are consumed to form the products. This mixture ideally yields the maximum flame temperature as all the energy released from the combustion is used to heat the products.

The Stoichiometric Combustion equation for methane-air is:

In General, for the class of Hydrocarbons, we can express the stoichiometric equation as follows:

When the fuel is not getting burned completely, we obtain products such as O2, H2, CO, OH, etc. In practice, it is hard to find a combustion process equal to stoichiometry condition. If less air is used the mixture is defined as the fuel-rich mixture and a common notation to represent this ratio is the equivalence ratio (ϕϕ).

The equivalence ratio is the ratio of the actual fuel-air ratio to the stoichiometric ratio. Hence if ϕ<1ϕ<1 the mixture is lean and if ϕ>1ϕ>1 the mixture is rich.

For Lean Mixture:

For Rich Mixture:

Case 1:

Examining the Adiabatic Flame Temperature (AFT) of Methane-Air Combustion with different equivalence ratios using the Constant Volume Chamber. This result is validated using the data from Cantera.

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


def h(T,coeff):
	R = 8.314
	a1 = coeff[0]
	a2 = coeff[1]
	a3 = coeff[2]
	a4 = coeff[3]
	a5 = coeff[4]
	a6 = coeff[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


#reactant coeffs
CH4_l_coeff = [5.14987613E+00,-1.36709788E-02, 4.91800599E-05,-4.84743026E-08, 1.66693956E-11,-1.02466476E+04,-4.64130376E+00]
O2_l_coeff = [3.78245636E+00,-2.99673416E-03, 9.84730201E-06,-9.68129509E-09, 3.24372837E-12,-1.06394356E+03, 3.65767573E+00]
N2_l_coeff = [0.03298677E+02, 0.14082404E-02,-0.03963222E-04,0.05641515E-07,-0.02444854E-10,-0.10208999E+04, 0.03950372E+02]
#product coeffs
CO2_h_coeff = [3.85746029E+00, 4.41437026E-03,-2.21481404E-06, 5.23490188E-10,-4.72084164E-14,-4.87591660E+04, 2.27163806E+00]
H20_h_coeff = [3.03399249E+00, 2.17691804E-03,-1.64072518E-07,-9.70419870E-11, 1.68200992E-14,-3.00042971E+04, 4.96677010E+00]
N2_h_coeff = [0.02926640E+02, 0.14879768E-02,-0.05684760E-05, 0.10097038E-09,-0.06753351E-13,-0.09227977E+04, 0.05980528E+02]
O2_h_coeff = [ 3.28253784E+00, 1.48308754E-03,-7.57966669E-07, 2.09470555E-10,-2.16717794E-14,-1.08845772E+03, 5.45323129E+00]


moles_of_fuel = 1
m_o_a = moles_of_air = np.linspace(2,10,num=15)
m_o_a_s = moles_of_air_stoichiometric = 2

far_stoi_cond = moles_of_fuel/moles_of_air_stoichiometric
far_actual_cond = moles_of_fuel/moles_of_air

#equivalence ratio:
#phi = actual fuel-air ratio/stoichiometric fuel-air ratio = moles of air(stoichiometric)/moles of air

#Arrays used to store the values of T_guess and equivalence ratio, after every pass of the 'for' loop. 
AFT_compilation =phi_compilation= np.array([])

for phi in (far_actual_cond/far_stoi_cond):
	def cv_func(T):
		#reactants
		R = 8.314
		Tstd = 298.15

		h_CH4_R = h(Tstd,CH4_l_coeff)
		h_O2_R = h(Tstd,O2_l_coeff)
		h_N2_R = h(Tstd,N2_l_coeff)
		h_CO2_P = h(T,CO2_h_coeff)
		h_H20_P = h(T,H20_h_coeff)
		h_N2_P = h(T,N2_h_coeff)
		h_O2_P = h(T,O2_h_coeff)

		#enthalpy and number of moles of reactants:
		H_reactants = h_CH4_R+ ((m_o_a_s/phi)*h_O2_R) + ((m_o_a_s/phi)*3.76*h_N2_R)
		n_reactants = 1 + (m_o_a_s/phi) + (m_o_a_s/phi)*3.76

		#enthalpy and number of moles of reactants:
		H_products = (h_CO2_P + 2*h_H20_P + ((m_o_a_s/phi)-2)*h_O2_P) + (m_o_a_s/phi*3.76*h_N2_P) 
		n_products = 1 + 2 + ((m_o_a_s/phi)-2) + ((m_o_a_s/phi)*3.76)


		return (H_reactants - H_products) - (R*(n_reactants*Tstd - n_products*T))

	def f_numder(T):
		return (cv_func(T+1e-6) - cv_func(T))/(1e-6) 

	tol = 1e-6
	T_guess = 1500
	iteration = 0
	alpha = 1

	
	while(abs((cv_func(T_guess)))>tol):
		T_guess = T_guess - alpha*(cv_func(T_guess))/f_numder(T_guess)

		iteration = iteration + 1

	AFT_compilation = np.append(AFT_compilation,T_guess)
	phi_compilation = np.append(phi_compilation,phi)

	print('Equivalence Ratio=','%.2f'%phi)
	print('Adiabatic Flame Temperature(constant volume)=',T_guess,'k')
print('----------------------------------------------------------------------------------------------------')


#program for adiabatic flame temperature using cantera:
print('')
print('Adiabatic flame temperature using Cantera')
gas = ct.Solution('gri30.xml')
#Arrays used to store the values of T_guess and equivalence ratio, after every pass of the 'for' loop. 
AFT_compilation_cantera=phi_compilation_cantera=np.array([])

for phi in (far_actual_cond/far_stoi_cond):
	gas.TPX = 298.15,101325,{'CH4':moles_of_fuel,'O2':(m_o_a_s/phi), 'N2':(m_o_a_s/phi)*3.76}

	gas.equilibrate('UV',solver = 'auto')

	AFT_compilation_cantera = np.append(AFT_compilation_cantera,gas.T)
	phi_compilation_cantera = np.append(phi_compilation_cantera,phi)

	print('Equivalence Ratio=','%f'%phi)
	print('Adiabatic Flame Temperature(constant volume)=',gas.T,'k')
	
#plotting and comparing`
plt.plot(phi_compilation,AFT_compilation,label='Program',color = 'r')
plt.scatter(phi_compilation,AFT_compilation,color = 'r')
plt.plot(phi_compilation_cantera,AFT_compilation_cantera,label='Cantera',color = 'b')
plt.scatter(phi_compilation_cantera,AFT_compilation_cantera,color = 'b')
plt.xlabel('Equivalence Ratio')
plt.ylabel('Adiabatic Flame Temperature(K)')
plt.title('AFT(K) vs Equivalence Ratio')
plt.legend(loc = 'lower right')
plt.show()

Results for the effect of equivalence ratio on Adiabatic Flame Temperature using the Newton Raphson method and Cantera.

Case 1 :

Effect of loss of heat on Adiabatic Flame Temperature in a Constant Pressure Reactor.

In this case, we are considering the heat loss phenomenon in a constant pressure chamber. The reaction is not adiabatic hence there will be a loss of heat from the system to the outside world. The reaction we will be considering is the stoichiometric combustion of Methane-Air.

CH4+2(O2+3.76N2)→CO2+2H2O+7.52N2CH4+2(O2+3.76N2)→CO2+2H2O+7.52N2

The maximum possible heat loss is going to be calculated using the Lower Heating Value (LHV). The heat loss factor is varied from no heat loss to 100% heat loss as a multiplier of LHV. Heat loss is an additive to the difference between the enthalpies of products and reactants.

HProducts−HReactants+(Heatloss⋅Qs)=0HProducts-HReactants+(Heatloss⋅Qs)=0

Case 2 :

Effect of Fuel Types (Alkanes, Alkenes, Alkynes) on Adiabatic Flame Temperature with 35% Heat loss.

In this case, we will be examining the AFT of Alkane (Ethane), Alkene(Ethene), and Alkyne(Ethyne). We will be writing a code considering a heat loss of 35%.

Ethane:

C2H6+3.5(O2+3.76N2)→2CO2+3H2O+3.5(3.76N2)C2H6+3.5(O2+3.76N2)→2CO2+3H2O+3.5(3.76N2)

Ethene:

C2H4+3(O2+3.76N2)→2CO2+2H2O+3(3.76N2)C2H4+3(O2+3.76N2)→2CO2+2H2O+3(3.76N2)

Ethyne:

C2H2+2.5(O2+3.76N2)→2CO2+H2O+2.5(3.76N2)C2H2+2.5(O2+3.76N2)→2CO2+H2O+2.5(3.76N2)

Case 3 :

Effect of Number of Carbon Atoms (Methane, Ethane, Propane) on Adiabatic Flame Temperature.

In the above case, the carbon atom of an alkane is varied from 1 to 3 and the effect on AFT is studied. The combustion equation for the above class of hydrocarbons is given below:

Methane:

CH4+2(O2+3.76N2)→CO2+2H2O+2(3.762N2)CH4+2(O2+3.76N2)→CO2+2H2O+2(3.762N2)

Ethane:

C2H6+3.5(O2+3.76N2)→2CO2+3H2O+3.5(3.76N2)C2H6+3.5(O2+3.76N2)→2CO2+3H2O+3.5(3.76N2)

Propane:

C3H8+5(O2+3.76N2)→3CO2+4H2O+5(3.76N2)C3H8+5(O2+3.76N2)→3CO2+4H2O+5(3.76N2)

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

def h(T,coeff):
	R = 8.314
	a1 = coeff[0]
	a2 = coeff[1]
	a3 = coeff[2]
	a4 = coeff[3]
	a5 = coeff[4]
	a6 = coeff[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


#reactant coeffs
CH4_l_coeff = [5.14987613E+00,-1.36709788E-02, 4.91800599E-05,-4.84743026E-08, 1.66693956E-11,-1.02466476E+04,-4.64130376E+00]
C2H6_l_coeff = [4.29142492E+00,-5.50154270E-03, 5.99438288E-05,-7.08466285E-08, 2.68685771E-11,-1.15222055E+04, 2.66682316E+00]
C3H8_l_coeff = [0.93355381E+00, 0.26424579E-01, 0.61059727E-05,-0.21977499E-07, 0.95149253E-11,-0.13958520E+05, 0.19201691E+02]

C2H4_l_coeff = [3.95920148E+00,-7.57052247E-03, 5.70990292E-05,-6.91588753E-08, 2.69884373E-11, 5.08977593E+03, 4.09733096E+00]
C2H2_l_coeff = [8.08681094E-01, 2.33615629E-02,-3.55171815E-05,2.80152437E-08,-8.50072974E-12, 2.64289807E+04, 1.39397051E+01]
O2_l_coeff = [3.78245636E+00,-2.99673416E-03, 9.84730201E-06,-9.68129509E-09, 3.24372837E-12,-1.06394356E+03, 3.65767573E+00]
N2_l_coeff = [0.03298677E+02, 0.14082404E-02,-0.03963222E-04,0.05641515E-07,-0.02444854E-10,-0.10208999E+04, 0.03950372E+02]
#product coeffs
CO2_h_coeff = [3.85746029E+00, 4.41437026E-03,-2.21481404E-06, 5.23490188E-10,-4.72084164E-14,-4.87591660E+04, 2.27163806E+00]
H20_h_coeff = [3.03399249E+00, 2.17691804E-03,-1.64072518E-07,-9.70419870E-11, 1.68200992E-14,-3.00042971E+04, 4.96677010E+00]
N2_h_coeff = [0.02926640E+02, 0.14879768E-02,-0.05684760E-05, 0.10097038E-09,-0.06753351E-13,-0.09227977E+04, 0.05980528E+02]

U = 500
R = 8.314
Tstd = 298.15
A = 1

#Case I: AFT of methane with heat loss of 0.35.

H_loss = 0.35
print('For Methane:')
def func_ch4(T):

	h_CH4_R = h(Tstd,CH4_l_coeff)
	h_O2_R = h(Tstd,O2_l_coeff)
	h_N2_R = h(Tstd,N2_l_coeff)
	#enthalpy reactants:
	H_reactants_CH4 = h_CH4_R+ (2*h_O2_R) + (7.52*h_N2_R)

	h_CO2_P = h(T,CO2_h_coeff)
	h_H20_P = h(T,H20_h_coeff)
	h_N2_P = h(T,N2_h_coeff)	
	#enthalpy products:
	H_products_CH4 = (h_CO2_P + 2*h_H20_P + 7.52*h_N2_P)

	max_heat_loss = U*A*(T - Tstd)

	return (H_reactants_CH4 - H_products_CH4) - H_loss*(max_heat_loss) 

def nd_ch4(T):
	return (func_ch4(T+1e-6) - func_ch4(T))/(1e-6) 

T_guess_ch4 = 1500
tol = 1e-6
alpha = 1
iteration = 0
while(abs(func_ch4(T_guess_ch4))>tol):
	T_guess_ch4 = T_guess_ch4 - alpha*(func_ch4(T_guess_ch4))/nd_ch4(T_guess_ch4)
	iteration = iteration + 1

print('AFT of Methane with heat loss of 0.35(of total heat loss) = ', T_guess_ch4,'K')

#CASE_2 = Comparison of heat loss and adiabatic flame temperature for Ethane,Ethene and Ethyne

#arrays used to compile AFTs and heat loss values:
t_ane=t_ene=t_yne=h_loss_comp=np.array([])
print('CASE_2:')
for H_loss in np.linspace(0,1,num=11):
	h_loss_comp = np.append(h_loss_comp,H_loss)
	def func_c2h6(T):

		h_C2H6_R = h(Tstd,C2H6_l_coeff)
		h_O2_R = h(Tstd,O2_l_coeff)
		h_N2_R = h(Tstd,N2_l_coeff)

		h_CO2_P = h(T,CO2_h_coeff)
		h_H20_P = h(T,H20_h_coeff)
		h_N2_P = h(T,N2_h_coeff)	

		#enthalpy reactants:
		H_reactants_C2H6 = h_C2H6_R+ (3.5*h_O2_R) + (13.16*h_N2_R)

		#enthalpy products:
		H_products_C2H6= (2*h_CO2_P + 3*h_H20_P + 13.16*h_N2_P)

		max_heat_loss = U*A*(T - Tstd)

		return (H_reactants_C2H6 - H_products_C2H6) - H_loss*(max_heat_loss)

	def func_c2h4(T):

		h_C2H4_R = h(Tstd,C2H4_l_coeff)
		h_O2_R = h(Tstd,O2_l_coeff)
		h_N2_R = h(Tstd,N2_l_coeff)

		h_CO2_P = h(T,CO2_h_coeff)
		h_H20_P = h(T,H20_h_coeff)
		h_N2_P = h(T,N2_h_coeff)

		#enthalpy reactants:	
		H_reactants_C2H4 = h_C2H4_R + (3*h_O2_R) + (11.28*h_N2_R)

		#enthalpy products:
		H_products_C2H4= (2*h_CO2_P + 2*h_H20_P + 11.28*h_N2_P)


		max_heat_loss = U*A*(T - Tstd)

		return (H_reactants_C2H4 - H_products_C2H4) - H_loss*(max_heat_loss)


	def func_c2h2(T):

		h_C2H2_R = h(Tstd,C2H2_l_coeff)
		h_O2_R = h(Tstd,O2_l_coeff)
		h_N2_R = h(Tstd,N2_l_coeff)

		h_CO2_P = h(T,CO2_h_coeff)
		h_H20_P = h(T,H20_h_coeff)
		h_N2_P = h(T,N2_h_coeff)


		#enthalpy reactants:
		H_reactants_C2H2 = h_C2H2_R + (2.5*h_O2_R) + (9.3*h_N2_R)

		#enthalpy products:
		H_products_C2H2= (2*h_CO2_P + 1*h_H20_P + 9.3*h_N2_P)

		max_heat_loss = U*A*(T - Tstd)

		return (H_reactants_C2H2 - H_products_C2H2) - H_loss*(max_heat_loss)


	#Numerical derivative of temperature:
	def nd_c2h6(T):
		return (func_c2h6(T+1e-6) - func_c2h6(T))/(1e-6) 

	def nd_c2h4(T):
		return (func_c2h4(T+1e-6) - func_c2h4(T))/(1e-6) 

	def nd_c2h2(T):
		return (func_c2h2(T+1e-6) - func_c2h2(T))/(1e-6) 


	#Initial guess:
	T_guess_c2h6 = T_guess_c2h4 = T_guess_c2h2 = 1500 

	tol = 1e-6
	iteration = 0
	alpha = 1


	while(abs(func_c2h6(T_guess_c2h6))>tol):
		T_guess_c2h6 = T_guess_c2h6 - alpha*(func_c2h6(T_guess_c2h6))/nd_c2h6(T_guess_c2h6)
		iteration = iteration + 1

	t_ane = np.append(t_ane,T_guess_c2h6)

	while(abs(func_c2h4(T_guess_c2h4))>tol):
		T_guess_c2h4 = T_guess_c2h4 - alpha*(func_c2h4(T_guess_c2h4))/nd_c2h4(T_guess_c2h4)
		iteration = iteration + 1
	t_ene = np.append(t_ene,T_guess_c2h4)

	while(abs(func_c2h2(T_guess_c2h2))>tol):
		T_guess_c2h2 = T_guess_c2h2 - alpha*(func_c2h2(T_guess_c2h2))/nd_c2h2(T_guess_c2h2)
		iteration = iteration + 1
	t_yne = np.append(t_yne,T_guess_c2h2)

	print('AFT for ethane(K):',T_guess_c2h6)
	print('AFT for ethene(K):',T_guess_c2h4)
	print('AFT for ethyne(K):',T_guess_c2h2)
	print('-----------------------------------------')

#CASE_3 :COMPARISON BETWEEN CARBON ATOMS(1 to 3):
H_loss = 0
print('CASE_3:')
def func_ch4(T):

	h_CH4_R = h(Tstd,CH4_l_coeff)
	h_O2_R = h(Tstd,O2_l_coeff)
	h_N2_R = h(Tstd,N2_l_coeff)
	#enthalpy reactants:
	H_reactants_CH4 = h_CH4_R+ (2*h_O2_R) + (7.52*h_N2_R)

	h_CO2_P = h(T,CO2_h_coeff)
	h_H20_P = h(T,H20_h_coeff)
	h_N2_P = h(T,N2_h_coeff)	
	#enthalpy products:
	H_products_CH4 = (h_CO2_P + 2*h_H20_P + 7.52*h_N2_P)

	max_heat_loss = U*A*(T - Tstd)

	return (H_reactants_CH4 - H_products_CH4) - H_loss*(max_heat_loss) 

def func_c2h6(T):

	h_C2H6_R = h(Tstd,C2H6_l_coeff)
	h_O2_R = h(Tstd,O2_l_coeff)
	h_N2_R = h(Tstd,N2_l_coeff)

	h_CO2_P = h(T,CO2_h_coeff)
	h_H20_P = h(T,H20_h_coeff)
	h_N2_P = h(T,N2_h_coeff)	

	#enthalpy reactants:
	H_reactants_C2H6 = h_C2H6_R+ (3.5*h_O2_R) + (13.16*h_N2_R)

	#enthalpy products:
	H_products_C2H6= (2*h_CO2_P + 3*h_H20_P + 13.16*h_N2_P)

	max_heat_loss = U*A*(T - Tstd)

	return (H_reactants_C2H6 - H_products_C2H6) - H_loss*(max_heat_loss)

def func_c3h8(T):

	h_C3H8_R = h(Tstd,C3H8_l_coeff)
	h_O2_R = h(Tstd,O2_l_coeff)
	h_N2_R = h(Tstd,N2_l_coeff)
	#enthalpy reactants:
	H_reactants_C3H8 = h_C3H8_R+ (5*h_O2_R) + (18.8*h_N2_R)

	h_CO2_P = h(T,CO2_h_coeff)
	h_H20_P = h(T,H20_h_coeff)
	h_N2_P = h(T,N2_h_coeff)	
	#enthalpy products:
	H_products_C3H8 = (3*h_CO2_P + 4*h_H20_P + 18.8*h_N2_P)
	max_heat_loss = U*A*(T - Tstd)

	return (H_reactants_C3H8 - H_products_C3H8) - H_loss*(max_heat_loss) 

def nd_ch4(T):
	return (func_ch4(T+1e-6) - func_ch4(T))/(1e-6) 

def nd_c2h6(T):
	return (func_c2h6(T+1e-6) - func_c2h6(T))/(1e-6) 

def nd_c3h8(T):
	return (func_c3h8(T+1e-6) - func_c3h8(T))/(1e-6) 

T_guess_ch4 = T_guess_c3h8 = 1500 
tol = 1e-6
iteration = 0
alpha = 1

while(abs(func_ch4(T_guess_ch4))>tol):
	T_guess_ch4 = T_guess_ch4 - alpha*(func_ch4(T_guess_ch4))/nd_ch4(T_guess_ch4)
	iteration = iteration + 1

while(abs(func_c2h6(T_guess_c2h6))>tol):
	T_guess_c2h6 = T_guess_c2h6 - alpha*(func_c2h6(T_guess_c2h6))/nd_c2h6(T_guess_c2h6)
	iteration = iteration + 1

while(abs(func_c3h8(T_guess_c3h8))>tol):
	T_guess_c3h8 = T_guess_c3h8 - alpha*(func_c3h8(T_guess_c3h8))/nd_c3h8(T_guess_c3h8)
	iteration = iteration + 1



print('AFT for methane:',T_guess_ch4)
print('AFT for ethane:',T_guess_c2h6)
print('AFT for propane:',T_guess_c3h8)
plt.figure(1)
plt.xlabel('Heat loss')
plt.ylabel('Adiabatic Flame Temperature(K)')
plt.title('Heat loss vs Adiabatic Flame Temperature(K)')
plt.plot(h_loss_comp,t_ane,label='Ethane',color ='r')
plt.plot(h_loss_comp,t_ene,label='Ethene',color='b')
plt.plot(h_loss_comp,t_yne,label='Ethyne',color='g')
plt.legend()



temp = (T_guess_ch4,T_guess_c2h6,T_guess_c3h8)

temp = np.array(temp)
print(temp)
plt.figure(2)
plt.bar(['CH4=1', 'C2H6=2', 'C3H8=3'], temp)
plt.ylabel('Adaiabatic Flame Temperature')
plt.xlabel('According to number of atoms')
plt.title('AFT vs Fuel type)')
plt.show()
plt.show()

Results

The Adiabatic Flame Temperature for various fuel types such as alkanes, alkenes, and alkynes.

Observations and conclusions.

  1. The increase in heat loss causes the AFTs of Ethane, Ethene, and Ethyne to have values nearer to each other, compared to the values of AFT with no heat loss.
  2. Hence, heat loss and AFT are inversely proportional, as the increase of the heat loss coefficient causes a decrease in the AFT.
  3. It can be observed that the AFT is highly affected by heat loss, and the temperature reduces significantly as the heat loss values increase. However the most drastic drop is observed in Ethyne, as the values of heat loss increase for Ethyne, the AFT reduces far more aggressively compared to Ethane and Ethene.

The Adiabatic flame temperature by varying the number of carbon atoms.

Observations and conclusions.

  1. From the above graph, we can conclude that AFT increases with the increase in Carbon atoms.
  2. Even tho there is an increase in AFT, the increase is not significant enough Especially if we consider Ethane and propane.

The Adiabatic Flame Temperature for the constant pressure with heat loss for Methane.

Observations and conclusions.

AFT of methane with 35% heat loss was observed to be 1744.053 k.

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.