P-V diagram of otto cycle using MATLAB
AIM : to plot P-V diagram of otto cycle using MATLAB
INTRODUCTION : In IC engine the combustion of the fuel with the oxygen of the air occurs inside the cylinder. The hot exhaust pushes a piston which is connected to crankshaft to produce power. The combustion of the air-fuel mixture is not a continuous process, but occurs very quickly at regular time intervals.
Between ignitions, the engine parts move in a repeated sequence called cycle. This cycle consists of four stages: 1)suction stroke 2) compression stroke 3)power stroke 4)exhaust stroke. In a suction stroke the inlet valve is opened and piston moves from the top dead center (T.D.C) to bottom dead center (B.D.C) and the air-fuel mixture is sucked into the cylinder, In compression stroke, the inlet valve is closed and piston moves from B.D.C to TD C and the pressure increases and the temperature reaches the self-ignition temperature and the combustion occurs, In power stroke, hot gases produced due to combustion drive the piston from TDC to B.D.C and thus the work is obtained in this stroke. It is during this stroke we get power from the engine In exhaust stroke the exhaust valve opens and piston moves from BDC to TDC and the exhaust gases are escaped from the exhaust valve to the atmosphere and cycle repeats.
PROCESS :
1. process 1-2 is an adiabatic (isentropic) compression
2. Process 2-3 is an constant value heat transfer
3. process 3-4 is an adiabatic (isentropic) expansion (powerstoke)
4. process 4-1 complete the cycle by a constant volume process in which heat is rejected
FORMULA :
thermal efficiency of the engine is given by
Where
- η = thermal efficiency
- r = compression ration that is 'cr'
- K = the value of gamma that is 1.4 adiabatic process
#otto cycle simulator
import math
import mathplotlib.pyplot as plt
def engine_kinematics(bore,stroke,con_rod,cr,start_angle,end_angle):
"""
Engine kinematics
"""
# Engine parameters
a = stroke/2
R = con_rod/2
# volume computation
v_s = (math.pi/4)*pow(bore,2)*stroke
v_c = v_s/(cr-1)
sc = math.radian(start_angle)
ec = math.radian(end_angle)
num_values = 50
dtheta = (sc-ec)/(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
# engine parameter
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_s
# stage2
v2 = v_c
p2=p1*pow(v1,gamma)/pow(v2,gamma)
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))
# stage3
v3 = v2
rhs = p2*v2/t2
p3 = rhs*t3/v3
v_expansion = engine_kinematics(bore,stroke,con_rod,cr,0,180)
constant = p3(v3,gamma)
p_expansion = []
for v in v_expansion
p_expansion.append(constsant/pow(v,gamma))
# stage4
v4 = v1
p4 = p3*pow(v3,gamma)/pow(v4,gamma)
t4 = p4*v4/rhs
plt.plot([v2,v3],[p2,p3])
plt.plot(v_compression,p_compresssion)
plt.plot([v4,v1],[p4,p1]
plt.show()
# thermal efficiency
n = 1-(pow(cr,(1-gamma)))
print (n)
RESULT
Thermal efficiency of the engine = 56.47 %