Project

Otto cycle

This project will have the programming process to develop a to cycle in python, it will have all the variables that to complete a pressure-volume process creating a fluid graph at the end of the code, inside the code, we can find also the thermal efficiency of all the process.

Code of the Otto process:

"""
otto cycle simulator
"""
import matplotlib.pyplot as plt
import math 


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

	a = stroke/2# crank pin radios
	R= con_rod/a
	#volume parameter
	V_s =(math.pi/4)*pow(bore,2)*stroke #volume cylinder
	V_c = V_s/(cr-1) #clearence volume 

	#volume race
	sc = math.radians(start_crank)
	ec = math.radians(end_crank)
	
	num_vaulues=50
	dtheta = (ec-sc)/(num_vaulues-1)
	V=[]
	for i in range(0,num_vaulues):
		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 
#precsion (una admosfera ) en pascales
p1 = 101325
#temperatura en kelvin 
t1 = 500
t3= 2300
gamma = 1.4
# parametros de geometra 
bore = 0.1 #metros
stroke = 0.1 #metros
con_rod = 0.15#longitud de coneccion
cr = 12 #comprecion rate

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

#state point 2
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)

const = p1*pow(v1,gamma)
#p_compression*V_compression^gamma=const
p_compression = []
for v in V_compression:
	p_compression.append(const/pow(v,gamma))


#state point 3
v3 = v2 

# simple ideal gas law 
rhs = p2*v2/t2
p3 =rhs*t3/v3

V_expantion=engine_kinematics( bore,stroke,con_rod,cr,0,180)

const = p3*pow(v3,gamma)
#p_compression*V_compression^gamma=const
p_expantion = []
for v in V_expantion:
	p_expantion.append(const/pow(v,gamma))


#state point 4

v4= v1

#p4v4^gamma = p3v3^gamma

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

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

#PV graph

plt.plot ([v2,v3],[p2,p3])
plt.plot(V_compression,p_compression)
plt.plot(V_expantion,p_expantion)
plt.xlabel('Volume (m^3)')
plt.plot ([v4,v1],[p4,p1])
plt.ylabel('Pressure (Pa)')
plt.ticklabel_format(axis="x",, scilimits=(0,0))
plt.ticklabel_format(axis="y",, scilimits=(0,0))
plt.show ()
#thermal efficiency ofthe cycle 
efficiency= 1-((t4-t1)/(t3-t2))
print("the thermal efficiency of the motor is:",efficiency)

Results:

Result thermal efficiency of the Otto cycle:

PV graph 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.