Project

AIR STANDARD CYCLE (PYTHON)

AIM: PYTHON program to create ‘PV’ diagram of an OTTO CYCLE and to find its ‘THERMAL EFFICIENCY’.

THEORY:

  • An Otto cycle is an idealized thermodynamic cycle that describes the functioning of a typical spark ignition piston. It is the thermodynamic cycle most commonly found in automobile engines.
  • Nicholas-A-Otto, a German engineer developed the first successful engine working on this cycle in 1876, So this cycle named as Otto cycle.
  • An Otto cycle consists of four processes: Two isentropic (reversible adiabatic) processes and Two isochoric (constant volume) processes which are:

    1-2: Isentropic compression (reversible adiabatic compression)

    2-3: Constant volume heat addition

    3-4: Isentropic expansion (reversible adiabatic expansion)

    4-1: Constant volume heat rejection

GOVERNING EQUATIONS:

For swept volume –`V_s=π/4×bore^(2 )×stroke`

For clearance volume – `V_c= (Vs)/(cr-1)`

For volume trace – `V/(V_c )=1+ 1/(2 ) (cr-1)×[R+1-cos⁡θ-(R^2-sin^2⁡θ )^(1/2)]`

Or,

`V= V_c {1+ 1/(2 ) (cr-1)×[R+1-cos⁡θ-(R^2-sin^2⁡θ )^(1/2)]}`

Isentropic process equation – `(PV)^γ=constant`

Combined gas equation – `(PV)/T = constant`

For Thermal efficiency – `η=1-((V2)/(V1 ))^(γ-1)= 1-((V3)/(V4) )^(γ-1)=1- 1/((cr)^(γ-1) )`

where,

cr = compression ratio

R = con_rod/2

a = crank pin radius

`γ=`specific heat ratio

P = pressure

V = volume

T = temperature

OBJECTIVE:

  1. To create a PV diagram for an Otto Cycle using PYTHON
  2. To find the thermal efficiency of an Otto Cycle

ASSUMPTIONS:

  • Initial values of pressure (P1) and Temperature (T1) are known.
  • The Temperature(T3) after the combustion process is also known.

INPUT VALUES:

Engine geometric parameters-

bore = 0.17 m

stroke = 0.17 m

connecting rod = 0.15 m

cr = 6

`γ`= 1.4 (for air)

State Variables-

P1 = 101325

T1 = 550 K

T3 = 2300 K

PROGRAM:

"""
    Otto Cycle Simulator
"""
#  Importing Libraries
import math
import matplotlib.pyplot as plt 

# Defining the function and the parameters

def engine_kinematics(bore, stroke, con_rod, cr, start_crank, end_crank):
	
	# Engine Kinematics
	#Geometric parameters
	a = stroke/2
	R = con_rod/a

	# Volume Parameters
	V_s = math.pi*(1/4)*pow(bore,2)*stroke
	V_c = V_s/(cr - 1)

	# Specifying angle in radians
	sc = math.radians(start_crank)
	ec = math.radians(end_crank)

	num_values = 50

	dtheta = (ec - sc)/(num_values - 1)

	# Volume trace
	V = []

	for i in range(0, num_values):
		theta = sc + i*dtheta

		term1 = 0.5*(cr - 1)
		term2 = R + 1 - math.cos(theta)
		term3 = pow(R,2) - pow(math.sin(theta),2)
		term3 = pow(term3, 0.5)

		V.append((1 + term1*(term2 - term3))*V_c)

	return V

# Inputs
p1 = 101325
t1 = 500
gamma = 1.4
t3 = 2300

# Geometric Parameters
bore = 0.1
stroke = 0.1
con_rod = 0.15
cr = 6

# Volume Computation 
v_s = (math.pi/4)*pow(bore,2)*stroke	
v_c = v_s/(cr - 1)
v1 = v_c + v_s

# State point 1
v2 = v_c

# p2v2^gamma = p1v1^gamma
p2 = p1*pow(v1,gamma)/pow(v2,gamma)

# p2v2/t2 = p1v1/t1 | rhs = p1v1/t1 | p2v2/t2 = rhs | t2 = p2v2/rhs
rhs = p1*v1/t1
t2 = p2*v2/rhs
V_compression  = engine_kinematics(bore,stroke,con_rod,cr, 180, 0)

constant = p1*pow(v1, gamma)

P_compression = []

for v in V_compression:
	P_compression.append(constant/pow(v, gamma))

# State point 3
v3 = v2

# p3v3/t3 = p2v2/t2 | rhs = p2v2/t2 | p3 = rhs*t3/v3
rhs = p2*v2/t2
p3 = rhs*t3/v3
V_expansion = engine_kinematics(bore,stroke,con_rod,cr,0, 180)

constant = p3*pow(v3, gamma)

P_expansion = []

for v in V_expansion:
	P_expansion.append(constant/pow(v, gamma))

# State point 4
v4 = v1

# p4v4^gamma = p3v3^gamma
p4 = p3*pow(v3,gamma)/pow(v4, gamma)

# p4v4/t4 = rhs
t4 = p4*v4/rhs

# Thermal Efficiency of an Otto Cycle
n = (1 - (1/pow(cr, (gamma - 1))))*100
print('Thermal Efficiency of Otto Cycle = ', n, '%')

# Plotting the Otto cycle
plt.plot([v2,v3], [p2,p3])
plt.plot(V_compression, P_compression)
plt.plot(V_expansion, P_expansion)
plt.plot([v4,v1], [p4,p1])
plt.xlabel('VOLUME')
plt.ylabel('PRESSURE')
plt.title('AIR STANDARD OTTO CYCLE', fontweight = 'bold')
plt.legend(['Isochoric Heat Addition', 'Isentropic Compression','Isentropic Expansion', 'Isochoric Heat rejection'])
plt.show()

EXPLANATION OF THE CODE:

  1. Initially in the beginning, a function program is written which contains all the input parameters and the variables.
  2. Then, in the main program, here the known values of input, state variables and engine geometric parameters are provided in the beginning.
  3. Further, we write the equations being used during the processes starting from state 1 to state 4.
  4. The function program is called for the states 1-2 and 3-4 because they constitute a different process, i.e., isentropic process.
  5. The combined gas equation and isentropic process equation are used to solve the different states.
  6. After providing the equations, plotting of PV diagram is done followed by the calculation of thermal efficiency.

PV DIGRAM:

OUTPUT: (Thermal efficiency of OTTO CYCLE)

The Thermal Efficiency of an OTTO cycle is

`η` = 51.164 %

CONCLUSION: The PV diagram has been plotted using the process equations and the thermal efficiency has been calculated. It can be observed that the efficiency varies inversely with the compression ratio.

REFERENCES:

https://en.wikipedia.org/wiki/Otto_cycle

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.