Challenge

Week 2 Air standard Cycle

REPORT ON OTTO CYCLE PROGRAMMING IN MATLAB

Created by Shahbaaz Khan Deoda

On 6 may 2020

AIM: - To code the programming for Otto cycle PV diagram and its efficiency.

GOVERNING EQUATION AND PHYSICS: -In thermodynamics, Otto cycle play a vital role to study about ideal cycle. Otto cycle is an air standard cycle and idea cycle for the working of petrol engine. This cycle includes four ideal process.

  1. Adiabatic compression of inlet air and fuel mixture: - Air and fuel mixture compressed adiabatically with pressure volume relation of P.Vn = constant

  1. Constant volume heat addition: - Fuel is burn in the process at constant volume process with relation of V2 = V3
  2. Adiabatic expansion of burn fuel and air: - Air and fuel mixture expand adiabatically with pressure volume relation of P.Vn = constant

  1. Constant volume of heat rejection: - In this process heat is removed at constant volume. So, V 3= V4

Efficiency of otto cycle is evaluate using this formula

efficiency = 1 – 1/rn

OBJECTIVE: -

  1. To draw the plot of pv diagram.
  2. To evaluate the efficiency.

BODY OF PROGRAMMING:-

"""programe to simulate otto cycle"""
import math
import matplotlib.pyplot as plt 

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

	"""engine_kinematics
	geometric parameter"""
	a = stroke/2
	R = con_rod/a


	"""volume computation"""
	V_s = math.pi*0.25*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 parameter"""
bore = 0.1
stroke = 0.1
con_rod = 0.15
cr = 12

"""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
p2 = p1*pow(v1,gamma)/pow(v2,gamma)

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
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 poiunt 4"""
v4 = v1
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()

"""programe to simulate otto cycle"""
import math
import matplotlib.pyplot as plt

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

"""engine_kinematics
geometric parameter"""
a = stroke/2
R = con_rod/a


"""volume computation"""
V_s = math.pi*0.25*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 parameter"""
bore = 0.1
stroke = 0.1
con_rod = 0.15
cr = 12

"""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
p2 = p1*pow(v1,gamma)/pow(v2,gamma)

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
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 poiunt 4"""
v4 = v1
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()

PLOT OF PV CURVE:-

CONCLUSION : - I successfully code the programming for obtain the plot of pv diagram of Otto cycle in PYTHON.

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.