Week 2 Air standard Cycle
AIM: TO DRAW THE P-V DIAGRAM OF OTTO CYCLE USING PYTHON AND FIND ITS THERMAL EFFICIENCY.
THEORY:
The Otto cycle is a set of processes used by spark ignition internal combustion engines (2-stroke or 4-stroke cycles). These engines a) ingest a mixture of fuel and air, b) compress it, c) cause it to react, thus effectively adding heat through converting chemical energy into thermal energy, d) expand the combustion products, and then e) eject the combustion products and replace them with a new charge of fuel and air.
- Intake stroke, gasoline vapor and air drawn into engine (
). - Compression stroke,
,
increase (
). - Combustion (spark), short time, essentially constant volume (
). Model: heat absorbed from a series of reservoirs at temperatures
to
. - Power stroke: expansion (
).

PYTHON CODES :
#Piston kinematics
import math
import matplotlib.pyplot as plt
def piston_kinematics(bore,stroke,con_rod,cr,start_crank,end_crank):
#Geometric parameters
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= 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
#Geometric parameters
bore=0.1
stroke=0.1
con_rod= 0.15
cr= 12
#Volume calculation
v_s= (math.pi/4)*pow(bore,2)*stroke
v_c= v_s/(cr-1)
v1= v_s+v_c
#state point 2
v2= v_c
p2= p1*pow(v1,gamma)/pow(v2,gamma)
rhs= p1*v1/t1
t2= p2*v2/rhs
v_compression= piston_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
rhs= p2*v2/t2
p3= rhs*t3/v3
v_expansion= piston_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
p4= p3*pow(v3,gamma)/pow(v4,gamma)
t4= p4*v4/rhs
#Theramal efficiency
eff= 1-((t4-t1)/(t3-t2))
print(eff)
#Plotting the curve
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('volume')
plt.ylabel('pressure')
plt.show()
EXPLANATION:
- Import the required libraries.
- feed the inputs for bore,dtroke,connecting rod.
- input the values of initial conditions of pressure and temp.
- Define a function named piston_kinematics for accepting the values for bore,stroke,start crank,end crank.
- Using this function we can calculate pressure and volume at different state points.
- Calculate v-expansion and p-expansion as well as calculate values for v-compression and p- compression.
- after that calculate value of thermal efficiency.
- Finally , plot the curve for the above otto cycle .
OUTPUT PLOT:
RESULT: The thermal efficiency of the engine is 0.689.