Challenge

Week 2 Air standard Cycle

AIR STANDARD CYCLE

OBJECTIVE

write code that can solve an otto cycle and make plots for it. Here are the requirements

  1. Your code should create a PV diagram
  2. You should output the thermal efficiency of the engine.

STEP BY STEP

  1. Entering the Title.
  2. Defining a function for input parameters (bore, stroke, con_rod, cr, start_crank, end_crank).
  3. Input geometric parametrics, volume computation, and state points and calculating the volumes and pressure and different states.
  4. Plotting volume vs pressure.
  5. Calculating and printing thermal efficiency.

CODING

'''
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

	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 = 8

#volume 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,180,0)

constant = p3*pow(v3,gamma)
p_expansion = []

for V in V_compression:
	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.show()

#thermal eficiency
a = 1/pow((v1/v2),(gamma-1))
thermal_efficiency=(1-a)*100 
print("thermal_efficiency=",thermal_efficiency)
'''
Engine kinematics
'''
import math

# Geometric parameters

bore = 0.10
stroke = 0.1
con_rod = 0.15
cr = 12
a = stroke/2
R = con_rod/a

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

theta = math.radians(85)

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 = (1 + term1*(term2 - term3))*v_c

OUTPUT

thermal_efficiency= 56.472471835193794

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.