Project

OTTO CYCLE SIMULATOR

INTRODUCTION :

To write a python code to create an otto cycle simulator with resulting plots.

PROCEDURE :

1. To start with regular intro code and then adding or defining a function \"Engine kinematics\" which would contain all the required parameters for successful execution of the code.

2. The parameters are :-

(a). Bore,

(b). Stroke,

(c). connecting rod length,

(d). compression ratio,

(e). start_crank (angle),

(f). end_crank (angle).

3. So, we have the formulae for computing the different aspects with the data relavent to the parameters.

4. After that, we divide the cycle into four state points, and align them in the order as shown in the code attached below.

\"\"\"
    OTTO CYCLE SIMULATOR
\"\"\"  

import math
import matplotlib.pyplot as plt

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)
	
	sc = math.radians(start_crank)
	ec = math.radians(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	


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

# Geometric parameters
bore = 0.1
stroke = 0.1
con_rod = 0.15
cr = 10

# Volumetric computation
v_s = (math.pi/4)*pow(bore,2)*stroke
v_c = v_s/(cr-1)
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)

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


	
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.show()

OTTO CYCLE PLOT:

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.