Project

AIR STANDARD CYCLE USING PYTHON

In this programme i have plotted a PV diagramme for an Otto cycle by using a engine parameters and some inputs. In this cycle we have four process to complete one cycle. if p1 and t1 are inputs and t3 is the output parameters so that we can calculate v1,v2,p2,p3,p4,t2,t4 and it has two constant volume processes so that v2=v3 and v1=v4. at last i have evaluated the Thermal_effeciency of Otto cycle

The processes of Otto cycle are

  1. Process 1–2 is an adiabatic (isentropic) compression.
  2. Process 2–3 is a constant-volume heat transfer.
  3. Process 3–4 is an adiabatic (isentropic) expansion (power stroke).
  4. Process 4–1 completes the cycle by a constant-volume process in which heat is rejected.

Thermal efficiency of the engine is given by

where

  • η = thermal efficiency
  • r = compression ratio that is \'cr\'
  • K = the value of gamma that is 1.4 adiabatic process
# otto cycle simulator

import math
import matplotlib.pyplot as plt

def engine_kinematics(bore,stroke,can_rod,cr,start_angle,end_angle):
	\"\"\"
		engine_kinematics
	\"\"\"

	#engine parameters
	a = stroke/2
	R = con_rod/a

	# volume computation
	v_s = (math.pi/4)*pow(bore,2)*stroke
	v_c = v_s/(cr-1)

	sc = math.radians(start_angle)   # start crank
	ec = math.radians(end_angle)     # end crank

	num_values = 50

	dtheta = (ec-sc)/(num_values-1)
	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


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

# engine parameters
bore = 0.1
stroke = 0.1
con_rod = 0.15
cr = 8


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

# stage 2
v2 = v_c

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

# p1v1/t1 = p2v2/t2 | 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))


# stage 3
v3 = v2
#P3V3/T3 = P2V2/T2 | rhs = p2v2/t2 | p3v3/t3 = rhs | 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))


# stage 4
v4 = v1

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

t4 = p4*v4/rhs

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

n = 1-(pow(cr,(1-gamma)))
print(n)

PV Diagram

RESULT

Thermal efficiency of the engine = 56.47 %

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.