Challenge

Week 2 Air standard Cycle

Objective(s):

To write a python program

  • To plot a P-V graph of otto cycle and study it.
  • To calculate Thermal Efficiency.

Theory:

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

The Otto cycle is constructed from:

  • Top and bottom of the loop: a pair of quasi-parallel and isentropic processes (frictionless, adiabatic reversible).
  • Left and right sides of the loop: a pair of parallel isochoric processes (constant volume).

The processes involved in an otto cycle are as follows:

  • Process 1 is an adiabatic (isentropic) compression of fuel air mixture as piston moves from BDC (Bottom dead centre) to TDC (Top dead centre)
  • Process 2 is a constant volume heat transfer to the working gas from an external source (Spark from spark plug). This is burning of the charge at TDC
  • Process 3 is an adiabatic (isentropic) expansion also called the power stroke
  • Process 4 is a constant volume process in which heat is rejected when piston is at BDC (Exhaust stroke)

Formulas Used:

  • PVɣ = Constant

Where, P=Pressure

V- Volume

ɣ= Cp/Cv  {Cp= specific heat of gas at constant pressure, Cv= specific heat of gas at constant volume}

  • PV/T = Constant

Where, P= Pressure

V= Volume

T= Temparature

  • Thermal Efficiency of otto cycle

Python Program:

#otto cycle simulator python program by Praharsh

import math
import matplotlib.pyplot as plt


def engine_kinematics(bore,stroke,con_rod,cr,start_crank,end_crank):
	#geometric parameters
	a= stroke/2   #crankpin radius
	R= con_rod/a   #constant

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

#volume computaion
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=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=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=p3v3/t3
t4=p4*v4/rhs
#Thermal Efficiency
therm_eff= 1-(1/pow(cr,(gamma-1)))

plt.plot([v2,v3],[p2,p3])
plt.plot(V_compression,P_compression)
plt.plot(V_expansion,P_expansion)
plt.plot([v4,v1],[p4,p1])
print('Thermal Efficiency is:',therm_eff)
plt.show()

Explanation of the code:

First, I’ve imported math and matplotlib library to use in the program. Then I’ve defined a function calculating velocities for different angles by randomly generating values of angle using a for loop between the start and end limits and stored them in an array. Then I’ve initialised few variables like bore, stroke, connecting rod length, crank pin radius, compression ratio etc.

Then I’ve made calculations as per the formula given above and stored them in various variables. Once I calculated the states of different points using the formulae given, I have plotted the obtained values using matplotlib library. Then by using the show() command I obtained the graph of otto cycle.

Then I changed the compression ratio and used different values, to check how the graph changes it’s shape under different compression ratios.

Result:

  • Proof of program successful run and Thermal Efficiency of otto cycle

  • Otto cycle graph( Compression ratio:8)

  • Otto cycle graph( Compression ratio:5)

Conclusion: The following were obtained as a result

  • P-V plot of Otto cycle
  • Thermal Efficiency of otto cycle
  • Execuation time: 2.7 s
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.