Challenge

Week 2 Air standard Cycle

Aim: Solving the otto cycle for PV diagram and calculating thermal efficiency of the engine

About the otto cycle:

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.[1]

The Otto cycle is a description of what happens to a mass of gas as it is subjected to changes of pressure, temperature, volume, addition of heat, and removal of heat. The mass of gas that is subjected to those changes is called the system. The system, in this case, is defined to be the fluid (gas) within the cylinder. By describing the changes that take place within the system, it will also describe in inverse, the system's effect on the environment. In the case of the Otto cycle, the effect will be to produce enough net work from the system so as to propel an automobile and its occupants in the environment.

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 isentropic process of compression or expansion implies that there will be no inefficiency (loss of mechanical energy), and there be no transfer of heat into or out of the system during that process. The cylinder and piston are assumed to be impermeable to heat during that time. Work is performed on the system during the lower isentropic compression process. Heat flows into the Otto cycle through the left pressurizing process and some of it flows back out through the right depressurizing process. The summation of the work added to the system plus the heat added minus the heat removed yields the net mechanical work generated by the system.

Before programming we consider values of engine geometric parameter, the value of gamma, compression ratio, the temperature at t3 and t1

stepwise consideration during programming :

  • Create a function of calculation of engine kinematics
  • First calculating the swept and clearance volume to calculate further values.
  • We have to get the values of different volumes and pressure during isentropic compression and isentropic expansion to plot therefore using formula v/vs = 1+ 0.5*(cr-1)(r +1-cos(theta)-(r^2-sin(theta)).^0.5) we calculate different values of compression and expansion.
  • now we need the different state variables like pressure and volume to plot the constant volume heat rejection and constant volume heat addition so we use relation that pressure*volume^gamma = constant.
  • now as we have pressure and volume at different positions we plot them as v_compression,p_compression and v_expansion,p_expansion which gives the curves of isentropic expansion and compression, and for constant volume process, we can connect the points by line.
  • Now to calculate the thermal efficiency of the engine we use the formula n = n = 1 - (T4 - T1)/(T3 - T2)which gives us the value of thermal efficiency.

Code :

#program to solve air standard cycle/otto cycle

import math
import matplotlib.pyplot as plt

#creating function for engine kinematics

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

	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(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

#Geomertic parameters
bore=0.10
stroke=0.1
con_rod=0.15
cr=12
a=stroke/2
R=con_rod/a

# 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


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 ('Velocity')
plt.ylabel ('Pressure')
plt.grid('on')
plt.title('P-V diagram')
plt.savefig('P-V diagram')
plt.show()

# thermal efficiency of otto cycle
th_efficiency = ((1-((t4-t1)/(t3-t2)))*(100))

print('Efficiency=',th_efficiency,'%')

Result:

Efficiency= 62.98928275128466 %

Conclusion:

The efficiency and PV diagram is calculated as per input.

Reference :

https://en.wikipedia.org/wiki/Otto_cycle

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.