Week 2 Air standard Cycle
Objective:
Plotting P V diagram and calculate the thermal efficiency of a Otto cycle
Description:
Otto cycle is a gas power cycle that is used in spark-ignition internal combustion engines
An Otto cycle consists of four processes:
1.Two isentropic (reversible adiabatic) processes
2.Two isochoric (constant volume) processes
Step by step procedure:
1.Import math library
2.Impot matplotlib.plyplot library
3.Import numpy
4.Define the function engine_kinematics(bore, stroke,con_rod,stroke,start_angle,end_angle)
5.Calculate the swept volume(v_s)
6.Calculate the clearance volume(v_c)
7.Extract the crank angle values from start_angle and end_angle
8.Derive the state points 2,and 4 constant volume process
9.solve the V_compression function
10.solve P_compression for each and evry value of V_compression
11.follow steps 9 and 10 for expansion process
12.plot the graph
13.solve the thermal efficiency of otto cycle
"""
Engine Kinematics
"""
import math
import matplotlib.pyplot as plt
import numpy as np
def engine_kinematics(bore,stroke,con_rod,cr,start_crank,end_crank):
#Geometric parameters
bore=0.10
stroke=0.1
con_rod=0.15
cr=12
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)
sc=math.radians(start_crank)
ec=math.radians(end_crank)
num_values=100
dtheta=(ec-sc)/(num_values-1)
V=[]
for i in range(0,num_values):
theta=sc-i*dtheta
print(theta)
term1=0.5*(cr-1)
term2=R+1-math.cos(theta)
term3=pow(R,2)-pow(math.sin(theta),2)
term4=pow(term3,0.5)
V.append((1+term1*(term2-term4))*v_c)
return V
#inputs
p1=101325
t1=500
gamma=1.4
t3=2300
#Geometic parameters
#Geometric parameters
bore=0.10
stroke=0.1
con_rod=0.15
cr=12
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)
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
print(rhs)
t2=p2*v2/rhs
V_compression=engine_kinematics(bore,stroke,con_rod,cr,0,180)
print(V_compression)
constant=p1*pow(v1,gamma)
P_compression=[]
for v in V_compression:
P_compression.append(constant/pow(v,gamma))
print(P_compression)
#state point 3
v3=v2
#p3v3/t3=p2v2/t2|rhs=p2v2/t2|p3=rhs*t3/v3
rhs=p2*v2/t2
print(rhs)
p3=rhs*t3/v3
V_expansion=engine_kinematics(bore,stroke,con_rod,cr,0,180)
print(V_expansion)
constant=p3*pow(v3,gamma)
P_expansion=[]
for v1 in V_expansion:
P_expansion.append(constant/pow(v1,gamma))
print(P_expansion)
#state point 4
v4=v1
#p4v4^gamma=p3v3^gamma
p4=p3*pow(v3,gamma)/pow(v4,gamma)
#p4v4/t4=rhs
t4=p4*v4/rhs
#thermal efficiency
x=1-(t4-t1)/(t3-t2)
print(x)
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()
Results:
PV Diagram
Thermal Efficiency of Otto cycle: 0.6298928275128466