AIR STANDARD CYCLE USING PYTHON
In this programme i have plotted a PV diagramme for an Otto cycle by using a engine parameters and some inputs. In this cycle we have four process to complete one cycle. if p1 and t1 are inputs and t3 is the output parameters so that we can calculate v1,v2,p2,p3,p4,t2,t4 and it has two constant volume processes so that v2=v3 and v1=v4. at last i have evaluated the Thermal_effeciency of Otto cycle
The processes of Otto cycle are
- Process 1–2 is an adiabatic (isentropic) compression.
- Process 2–3 is a constant-volume heat transfer.
- Process 3–4 is an adiabatic (isentropic) expansion (power stroke).
- Process 4–1 completes the cycle by a constant-volume process in which heat is rejected.
Thermal efficiency of the engine is given by
where
- η = thermal efficiency
- r = compression ratio that is \'cr\'
- K = the value of gamma that is 1.4 adiabatic process
# otto cycle simulator
import math
import matplotlib.pyplot as plt
def engine_kinematics(bore,stroke,can_rod,cr,start_angle,end_angle):
\"\"\"
engine_kinematics
\"\"\"
#engine parameters
a = stroke/2
R = con_rod/a
# volume computation
v_s = (math.pi/4)*pow(bore,2)*stroke
v_c = v_s/(cr-1)
sc = math.radians(start_angle) # start crank
ec = math.radians(end_angle) # 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
#imputs
p1 = 101325
t1 = 500
gamma = 1.4
t3 = 2300
# engine 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_s+v_c
# stage 2
v2 = v_c
#p1*pow(v1,gamma) = p2*pow(v2,gamma)
p2 = p1*pow(v1,gamma)/pow(v2,gamma)
# p1v1/t1 = p2v2/t2 | 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))
# stage 3
v3 = v2
#P3V3/T3 = P2V2/T2 | rhs = p2v2/t2 | p3v3/t3 = rhs | 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))
# stage 4
v4 = v1
# p4v4^gamma = p3v3^gamma | p4 = p3v3^gamma/v4^gamma
p4 = p3*pow(v3,gamma)/pow(v4,gamma)
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.show()
# thermal efficiency
n = 1-(pow(cr,(1-gamma)))
print(n)
PV Diagram
RESULT
Thermal efficiency of the engine = 56.47 %