Challenge

Air standard Cycle

Objective: To use forward kinematics concepts to sovle air standard (otto) cycle and to make plot showing PV diagram of the cycle.

Solution Procedure:

An Air Standard (Otto) cycle consists of four processes namely:

Process 1-2 - Isentropic Compression

Process 2-3 - Constant Volume Heat Addition

Process 3-4 - Isentropic Expansion

Process 4-1 - Constant Volume Heat Rejection

For an engine, consider following data:

p1,p2,p3,p4 = pressure at given point

v1,v2,v3,v4 = volume at given point

t1,t2,t3,t4 = temperature at given point

gamma = 1.4

bore length = 0.1 meter

storke length = 0.1 meter

length of connecting rod = 0.15 meter

compression ratio Cr = 14

With above mentioned data, code for solving otto cycle can wrote as following:

Code:

#Air standard (Otto) cycle simulator
#By Dishank Bhavsar

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

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

	#Angle definition
	sc = math.radians(start_crank)
	ec = math.radians(end_crank)

	#dividing angle range into 50 different values
	num_values = 50
	dtheta = (ec-sc)/(num_values-1)

	V = []

	#for volume curve
	for i in range(0,num_values):
		theta = sc + i*dtheta
		eq1 = 0.5*(cr-1)
		eq2 = R + 1 - math.cos(theta)
		eq3 = pow(R,2)- pow(math.sin(theta),2)
		eq3 = pow(eq3,0.5)
		V.append((1+eq1*(eq2-eq3))*V_c)
	return V

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

#geometric Parametres
bore= 0.1
stroke= 0.1
#connetcing rod length
con_rod= 0.15
#compression ratio
cr= 14

"""
Volume Computation
State Point 1 (Isentropic Compression)
"""
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)
v2= v_c

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

# 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

#Plot generation of PV diagram
plt.plot([v2,v3],[p2,p3])
plt.plot(V_compression , P_compression, color = 'red')
plt.plot(V_expansion, P_expansion, color = 'green')
plt.xlabel('Volume')
plt.ylabel('Pressure')
plt.plot([v4,v1],[p4,p1])
plt.show()

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

PV diagram of Otto cycle:

Thermal Efficiency of the engine:

Already mentioned in the code by using efficiency formula.

For given problem,

Thermal Efficiency = 0.6520244053023632

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.