Project

Air Standard Cycle using Python

Aim: To write a code in python that can solve an otto cycle and obtain a P-V diagram and also calculate the thermal efficiency.

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.

The processes are described by

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

Assumptions for air standard cycle

  1. The working fluid is pure air and behaves as a perfect gas
  2. The working fluid is homogeneous throughout the cycle
  3. Compression and expansion cycles are truly adiabatic and frictionless
  4. The specific heats Cp and Cv and their ratios are all having constant volumes

Explosion ratio(`alpha`)=P3/P2

Isentropic Expansion ratio=V4/V3

Isentropic Compression ratio=V1/V2

Isentropic processes are adiabatic reversible processes and the state variables obey the following equations:

  • P1⋅V1`gamma`=P2⋅ V2`gamma`
  • T1⋅ V1`gamma`-1 =T2⋅ V2`gamma`-1

Isochoric processes take place in a constant volume and pressure and temperature obey ideal gas law:

  • V1=V2
  • P1/T1=P2/T2

Thermal efficiency of Otto cycle is given by,

Code:

# Otto Cycle Simulator
import math
import matplotlib.pyplot as plt
def engine_kinematics(bore,stroke,con_rod,cr,start_crank,end_crank):


	#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)

	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
t3=2300
gamma=1.4

#Geometric parameters
bore=0.1
stroke=0.1
con_rod=0.15
cr=7

#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
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=p3v3/t3=rhs
t4=p4*v4/rhs


#Thermal_efficiency=1-((t4-t1)/(t3-t2)) or Thermal_efficiency=1-1/pow(cr,(gamma-1))
Thermal_efficiency=1-1/pow(cr,(gamma-1))
print(Thermal_efficiency)

#plotting
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(m^3)')
plt.ylabel('Pressure(Pa)')
plt.title('P-V Diagram of Otto Cycle')
plt.show()



Explanation of code

1.Importing math module and mathplotlib.pyplot module.

2.Input all the engine geometric parameters.

3.The Swept volume and clearance volume are calculated using the inputs provided.

4.The state variables at state point 2,3 and 4 are calculated using the isentropic and ideal gas equations.

5.Call the engine kinematics function for compression and expansion which will return v.

6.Plot PV diagram using all volumes and pressures calculated.

7.Thermal efficiency is calculated using the formula.

Plot:

Errors Obtained:Simple errors were obtained and were rectified easily.

Result:

Conclusion: Code to solve an otto cycle was written and P-V diagram was obtained .The Thermal efficiency of the engine was also calculated and was found to be around 54.08%

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.