Week 2 Air standard Cycle
AIR STANDARD CYCLE USING PYTHON
AIM:
to solve the otto cycle and plot the graph using a Python programme.
OBJECTIVE:
- To solve different state variables in the Otto cycle and plot a p-v diagram.
- To calculate thermal efficiency for the given parameters in the Otto cycle.
PROCESS IN OTTO CYCLE:
- Process 0–1 a mass of air is drawn into a piston/cylinder arrangement at constant pressure.
- Process 1–2 is an adiabatic (isentropic) compression of the charge as the piston moves from the bottom dead center(BDC) to the top dead center (TDC).
- Process 2–3 is a constant-volume heat transfer to the working gas from an external source while the piston is at the top dead center. This process is intended to represent the ignition of the fuel-air mixture and the subsequent rapid burning.
- 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 from the air while the piston is at the bottom dead center.
- Process 1–0 the mass of air is released to the atmosphere in a constant pressure process.
Isentropic compression, heat addition at constant volume, isentropic expansion, and heat rejection at constant volume make up the Otto cycle. Technically, there are two additional processes in a four-stroke Otto cycle: one for the intake of cool, oxygen-rich air at constant pressure and one for the exhaustion of waste heat and combustion products at constant pressure (isobaric). However, these are frequently left out in a simplified analysis. Even though those two processes are essential to a real engine's operation, where the specifics of heat transfer and combustion chemistry matter, it is more convenient to assume that all of the waste heat is eliminated during a single volume change for the purposes of the simplified analysis of the thermodynamic cycle.

FORMULA:
The formula to find volume is given below.

The formula to find thermal efficiency is given below

Here the term k is denoted as gamma in the program
r is denoted as cr in the program
PROCEDURE:
- We'll use the gamma value of 1.4 as the Otto cycle is an air standard cycle.
- At first, we will assume T1 and P1 values of 500K and 101.325KPa, respectively.
- The programme defines the geometrical parameters stoke, diameter, connecting rod length, crank start, and end angle for the function.
- The v_c and v_s are calculated based on the given factors.
- The adiabatic and ideal gas equations are used to calculate the other states.
- The preceding formulas are also used to calculate thermal efficiency.
- The plt. plot command from the matplotlib.pyplot package is used to plot a p-v diagram.
- The starting and final crank angles for the compression stage are 180 and 0, respectively.
- The beginning and finishing crank angles for the expansion stage are 0 and 180, respectively.
- Let's say the figure that needs to be repeated is 50. Consequently, a null set is constructed using the append statement to store the data.
PROGRAM:
import math
import matplotlib.pyplot as plt
def engine_kinematics(bore,stroke,con_rod,cr,start_angle,end_angle):
#engine parameters
a = stroke/2
R = con_rod/a
v_s = (math.pi/4) * pow(bore,2) * stroke
v_c = v_s/(cr -1)
sc = math.radians(start_angle)
ec = math.radians(end_angle)
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
#Geomentric parameter
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_s+v_c
#state point 2
v2 = v_c
#p2v2^gama = p1v1^gama
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 | 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))
# state point 4
v4 = v1
#p4v4^gama = p3v3^gamma
p4 = p3*pow(v3,gamma)/pow(v4,gamma)
#p4v4/t4 = rhs
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.xlabel('volume')
plt.ylabel('pressure')
plt.title('pressure vs volume')
plt.show()
#thermal efficiency
thermal_efficiency = 1-(1/(pow(cr,(gamma-1))))
print ('Thermal efficiency is : ',thermal_efficiency)
OUTPUT
The p-v diagram for the otto cycle

The thermal efficiency is 62.9%

CONCLUSION
The desired p-v diagram of the Otto cycle is plotted using Python programming language by using an array of volumes and different crank angles.