Challenge

Week 2 Air standard Cycle

Otto Cycle:

An Otto cycle is an idealized thermodynamic cycle that describes the functioning of a typical spark ignition piston engine. This cycle mostly found in automobile engines. The Otto cycle is a description of what happens to a mass of gas as it is subjected to changes of pressure, temperature, volume, the addition of heat, and the removal of heat. The mass of gas is known as the system.

The process of the otto cycle is given below depending upon the PV diagram.

  • Process 0–1 a mass of air is drawn into piston/cylinder arrangement at constant pressure.
  • Process 1–2 is an adiabatic (isentropic) compression of the charge as the piston moves from the bottom dead center(BDC) to the top dead center(TDC).
  • Process 2–3 is a constant-volume heat transfer to the working gas from an external source while the piston is at the top dead center. This process is intended to represent the ignition of the fuel-air mixture and the subsequent rapid burning.
  • Process 3–4 is an adiabatic (isentropic) expansion (power stroke).
  • Process 4–1 completes the cycle by a constant-volume process in which heat is rejected from the air while the piston is at BDC.
  • Process 1–0 the mass of air is released into the atmosphere in a constant pressure process.

Efficiency (`eta`) = 1 - `Q_2/Q_1`

= 1 - `(t_4-t_1)/(t_3-t_2)`

To calculate the volume trace

`V/V_c = 1+ 1/2(r_c-1)*[R+1-costheta-(R^2-sin^2theta)^(1/2)]`

V_s(swept volume) = `pi/4`*bore^2*stroke

V_c(celerance volume) = `V_s/(cr-1)`

Code:-

# otto cycle simulator

import math  # for doing mathamatical calculations
import matplotlib.pyplot as plt  # for ploting
import numpy as np # numpy is used to +, -, *, /, power, and linspace for the arrays

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

	# Geometric parameters
	a = stroke/2    # crarck fin radius
	R = con_rod/a   

	# volume parameters
	V_s = math.pi*(1/4)*pow(bore,2)*stroke  # swept volume 
	V_c = V_s/(cr-1)                        # cleareance volume

	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(pow(R,2) - pow(math.sin(theta),2),0.5)

		V.append((1 + term1*(term2 - term3))*V_c) 
	
	return V 

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

#
bore = 0.1
stroke = 0.1
con_rod = 0.15 
cr = 6

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

# state pt 2
v2 = v_c

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

# p2v2/t2 = p1v1/t1
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*V_compression^gamma = constant

P_compression = []
for v in V_compression:
	P_compression.append(constant/pow(v,gamma))

# state pt 3
v3 = v2

# p3v3/t3 = p2v2/t3 
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_compression*V_compression^gamma = constant

P_expansion = []
for v in V_expansion:
	P_expansion.append(constant/pow(v,gamma))

# state pt 4
v4 = v1

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

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

# thermal efficiency
mu = 1-(1/pow(cr,(gamma-1)))
print(mu)

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.title('Pressure-Volume diagram')
plt.grid('on')
plt.show()

Result:-

Thermal efficiency(`mu`) for compression ratio 6 = 0.511640

`mu` = 51.1640%

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.