Week 2 Air standard Cycle
To generate the PV diagram and to determine the thermal efficiency of
the engine.
INTRODUCTION OF OTTO CYCLE :-
An ideal thermodynamic cycle describing the functionality of SI (spark ignition)
engine. The below shown figure is for idealized otto cycle based on four state of
point which is not practically possible. In general, the PV diagram for SI engine
dosen't have sharp corners rather smooth and curved. Also, actual thermal efficiency
of engine is quite lower than the theoretical efficiency due to some other important
factors such as ignition.
Figure. PV Diagram
Processes:-
In this process, 0-1 (intake stroke):- Air drawn into cylinder at constant pressure.
1-2 (compression process) :- Isentropic compression, i.e. BDC to TDC.
2-3 (ignition phase) :- Constant volume heat addition process.
3-4 (expansion stroke) :- Isentropic expansion, i.e. TDC to BDC.
4-1 (heat rejection) :- Constant volume heat rejection process.
1-0 (exhaust stroke) :- Air released to atmosphere at constant pressure from cylinder.
ENGINE KINEMATICS:-
During compression (1-2) and expansion (3-4) stroke, the change in volume is not
linear. Rather given by engine kinematics whose relation is given by,
V/Vc=1+1/2(Cr−1)[R+1−cosθ(R2−sin2θ)1/2]
where,
V = Volume traced at particular crank angle.
Vc = Clearance volume of cylinder given by ratio of swept volume and compression ratio.
Vs = Swept volume of cylinder as per the stroke length and bore diameter.
Cr = Compression ratio.
R = Constant given by ratio of length of connecting rod and crank pin radius.
a = Crank pin radius i.e., half of stroke length.
θ = Instantaneous crank angle.
PROGRAM :-
"""
otto cycle simulator
"""
import math
import matplotlib.pyplot as plt
def engine_kinematics(bore, stroke, con_rod, cr, start_crank, end_crank):
"""
engine kinematics
"""
# Geometric parameters
a = stroke/2
R = con_rod/a
# volume parameter
V_s = math.pi*(1/4)*pow(bore,2)*stroke
V_c = V_s/(cr-1)
sc = math.radians(start_crank)
ec = math.radians(endd_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 = 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, 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 | t3 = 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.plt([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')
plt.ylabel('Pressure')
plt.title('OTTO CYCLE')
plt.show()
# thermal efficiency of otto cycle (te)
# inputs k = 1.4
k = 1.4
te = (1-1/pow(cr,(k-1)))
print (te)
EXPLANTION:-
Before satrting program we used module like, import math and
import matplotlib.pyplot as plt.
Then we used engine_kinematics function returns the volume(V) as an array of
volumes which gradually changes during the isentropic processes otherwise the
isentropic curve would be linear which is not possible.
Then initial conditions are defined as,
p1 = 101325 Pa
t1 = 500 K
gamma = 1.4
t3 =2300
After that geometric parameter required for calculations are defined and volumes are computed.
Then values of parameter at all states are computed using formulae:-
For constant volume process
PV/T = constant
For isentropic processes
(PVγ)=constant
Then this all formulae used for all compression and expansion process.
Then using plot function the pressure vs volume graph is plotted.
After that find thermal efficiency
Thermal efficiency = [1-(1/cr^(gamma-1))]*100.
OUTPUT :-
PV plot is,

Thermal Efficiency is 56.47 percent. In this result when compression ratio increases
that time thermal efficiency also increased
CONCLUSION :-
PV diagram was generated and the thermal efficiency of the engine was
determined using python.