Project

Air Standard Cycle (Otto cycle) using Python

AIM:- To solve and write a code with python for the Air standard cycle(otto cycle) and draw the PV diagram. Also give the Thermal Efficiency of the Engine.

Otto cycle is an Air Standard cycle that is used in spark-ignition internal combustion engines (modern petrol engines).

An Otto cycle consists of four processes: Two isentropic (reversible adiabatic) processes. Two isochoric (constant volume) processes.

Process 1-2 : Isentropic Compression Process

Process 2-3 : Constant Volume Heat Addition Process

Process 3-4 : Isentropic Expansion Process

Process 4-1 : Constant Volume Heat Rejection Process.

Thermal efficiency of the engine is given by

where

1, η = thermal efficiency

2, r = compression ratio that is 'cr'

3, K = the value of gamma that is 1.4 adiabatic process.

Formulas used :

Swept Volume= pi/4*bore^2*stroke

Clearance volume= Swept volume/cr-1

Pressure*volume^gamma=constant

pressure*volume/temperature= constant

efficiency=(1-(1/cr)^(gamma-1))*10

SOLUTION

CODING:-

#program by Dakshkumar Jadav
#Otto Cycle Simulator

import math
import matplotlib.pyplot as plt

def engine_kinematics(bore, storke, con_rod , cr , start_crank , end_crank):

	#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)

	#Defining the Angles
	sc = math.radians(start_crank)
	ec = math.radians(end_crank)

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

	V = []

	#For Tracing the Volume Curve
	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 Parametres
bore= 0.1
stroke= 0.1
#length of connetcing rod
con_rod= 0.15
#compression Ratio
cr= 12

"""
Volume Computation
v_c= Clerance volume, v_s= Swept Volume
State Point 1 (Isentropic Compression Process)
"""
v_s= (math.pi/4)*pow(bore,2)*stroke
v_c= v_s/(cr-1)
v1= v_c + v_s


#State Point 2 (Constant Volume Heat Addition process)
v2= v_c

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

#Ideal Gas Law
# p1v1/t1 = p2v2/t2 | rhs=p1v1/t1 | rhs=p2v2/t2 | 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 (Isentropic Expansion Process)
v3=v2

#p2v2/t2 = p3v3/t3 | 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 (Constant Volume Heat Rejcetion Process)

v4=v1
#p4v4^gamma = p3v3^gamma

p4= p3*pow(v3,gamma)/pow(v4,gamma)

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

#ploting the PV Diagram
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.show()

#Thermal Efficiency of Engine
n = 1-(pow(cr,(1-gamma)))
print(n)

RESULTS

(1) PV Diagram of Otto Cycle

(2) Thermal Efficiency of Engine

Thus, Thermal Efficiency of Engine is 62.98%

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.