Challenge

Week 2 Air standard Cycle

Objective:

Write a code that can solve an otto cycle and make plots for it.

Otto Cycle :

  • 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 bottom dead center (BDC) to 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 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 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 bottom dead center.
  • Process 1–0 the mass of air is released to the atmosphere in a constant pressure process.

Steps followed to write a code:

1. Import math and matplotlib.pyplot as plt

2. Define a function with function name and pass the arguments through it.

3. Calculate for Volume at different crank angles and store the values of volume in an array.

4. Define the thermodynamic properties at four different points using the relation:

pvt=constant

5. Plot the thermodynamic processes using the command plot.plt('variable names ')

6. Define the thermal efficiency of the engine.

Code:

# Program to write otto cycle simulator 
import math 
import matplotlib.pyplot as plt 
# inputs  


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

	Engine Kinematics

	"""
	# Defining the  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)
    # Starting and ending crank angle 
	sc=math.radians(start_crank) # Denotes starting crank and ending crank 
	ec=math.radians(end_crank)
     
	num_values=100 
	dtheta=(ec-sc)/(num_values-1)
	V=[] # Storing the values of volume at different crank angles 
	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
	
# state point 1 
p1=101325
t1=500
gamma=1.4
t3=2300

# geometric parameters 
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
# 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,con_rod,stroke,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,con_rod,stroke,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
#p4*v4^gamma= p3*v3^gamma
p4=p3*pow(v3,gamma)/pow(v4,gamma)
# p4v4/t4=rhs
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.xlabel('volume') # label for X-axis
plt.ylabel('pressure') # label for Y-axis 

plt.show() # To show a plot

thermalefficiency = (1-(1/pow(cr,(gamma-1))))*100
print(thermalefficiency)

Output:

Thermal Efficiency of the Engine

Conclusion:

As it could be seen from above results that plot for the PV Diagram has been generated using the above code and the thermodynamic processes has been displayed in the graph as shown .Thermal Energy of the engine has been calculated as displayed above.

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.