Project

AIR STANDARD CYCLE (PYTHON)

AIM: TO CREATE A PV DIAGRAM OF AN OTTO CYCLE AND FIND ITS THERMAL EFFICIENCY USING PYTHON

THEORY: An Otto cycle is an idealized thermodynamic cycle that describes the functioning of a typical spark ignition piston engine. It is the thermodynamic cycle most commonly found in automobile engines.

GOVERNING EQUATIONS:

  • To calculate Swept Volume -

`V_s= π/4 ×"bore"^2×"stroke"`

  • To calculate Clearance Volume -

`V_c = V_s⁄(cr-1)`

  • To calculate Volume Trace -

`V/V_C = 1 + 1/2 (cr-1)[R+1-cosθ- (R^2-sin^2 θ)^(1/2) ]`

  • Isentropic Process equation -

`PV^γ ="constant"`

  • Combined gas equation -

`(PV)/T ="constant"`

  • Thermal Efficiency of Otto Cycle -

`η_o =1- (V_2/V_1 )^(γ-1)=1- (V_3/V_4 )^(γ-1)=1- 1/(cr)^(γ-1)`

where,

cr = Compression Ratio

R = Length of Connecting Rod / Crank Radius = con_rod / a

a = stroke / 2

`γ = C_p/C_v =`Ratio of Specific Heats

OBJECTIVES:

  1. To create a PV Diagram of an Otto Cycle using PYTHON.
  2. To determine the Thermal Efficiency of the Otto Cycle.

ASSUMPTIONS:

  • Initial values of Pressure (P1) and Temperature (T1) are known.
  • The temperature after the combustion process (T3) is also known.

INPUT VALUES:

ENGINE GEOMETRIC PARAMETERS

bore = 0.1

stroke = 0.1

con_rod = 0.15

cr = 8

`γ =`1.4 (for air)

STATE VARIABLES

P1 = 101325 Pa (1 atm)

T1 = 500 K

T3 = 2300 K

PROGRAM:

"""
	Otto Cycle Simulator
"""

# Importing Libraries
import math
import matplotlib.pyplot as plt

# Defining the function and the parameters
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)

	# Specifying angle in radians
	sc = math.radians(start_crank)
	ec = math.radians(end_crank)

	num_values = 50

	dtheta = (ec-sc)/(num_values-1)

	# Volume trace
	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, 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

# Thermal Efficiency of an Otto Cycle
n = (1 - (1/pow(cr,(gamma-1))))*100
print('Thermal Efficiency of Otto Cycle =',n,'%')

# Plotting the Otto Cycle
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('AIR STANDARD OTTO CYCLE',fontweight='bold')
plt.legend(['Isochoric Heat Addition','Isentropic Compression','Isentropic Expansion','Isochoric Heat Rejection'])
plt.show()

EXPLANATION OF PROGRAM:

  1. Initially, writing a function program where a specified function is mentioned covering all the parameters and the variables.
  2. Equations and the respective variables are defined.
  3. Further, we write the main program starting with mentioning state variables and engine geometric parameters.
  4. Thereafter, we specify the equations being used during the processes starting from state 1 to state 4.
  5. The function program is called for the states 1-2 and 3-4 because they constitute a different process, i.e. isentropic process.
  6. After providing the equations, plotting of PV Diagram is done followed by the calculation of Thermal Efficiency.

PV DIAGRAM:

OUTPUT:

THERMAL EFFICIENCY OF OTTO CYCLE -

Thermal Efficiency of the Otto Cycle = 56.47%

CONCLUSION: The PV Diagram has been plotted using the process equations and the thermal efficiency has been calculated. It can be observed that the efficiency varies inversely with the compression ratio.

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.