Week 2 Air standard Cycle
Aim : To plot a pv diagram and calculate the thermal efficiency of an otto cycle using python for given data
Introduction :
An otto cycle is an standard thermal cycle used in petrol engines.
The Otto cycle 1 → 2 → 3 → 4 consists of following four processes:
-
Process 1 → 2: Reversible adiabatic compression of air;
-
Process 2 → 3: Heat addition at constant volume;
-
Process 3 → 4: Reversible adiabatic expansion of air;
-
Process 4 → 1: Heat rejection at constant volume.
# otto cycle simulator import math import matplotlib.pyplot as plt #inputs #### state point 1 p1 = 101325 t1 = 500 t3 = 2300 gamma = 1.4 #geometric parameters bore = 0.1 stroke = 0.1 con_rod = 0.15 cr = 8 # Defining a function to calculate the volume of the piston in cylinder at any given crank angle def engine_kinematics(bore,stroke,con_rod,cr,start_crank,end_crank): a = stroke/2 R = con_rod/a # volume parameters v_s = (math.pi/4)*stroke*pow(bore,2) 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 #volume computation # swept volume in cylinder v_s = (math.pi/4)*stroke*pow(bore,2) # clearnce volume in cylinder v_c = v_s/(cr-1) #total volume of cylinder 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 | p3v3/t3 = rhs | p3 = rhs*t3/v3 rhs = p2*v3/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 = p3v3/t3 | rhs = p3v3/t3 | p4v4/t4 = rhs | t4 = p3v3/rhs t4 = p4*v4/rhs v = engine_kinematics(bore,stroke,con_rod,cr,0,180) # Thermal efficiency of the engine thermal_efficiency = (1-1/pow(cr,(gamma-1)))*100 print(thermal_efficiency) # plotting the pv diagram 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.ylabel('pressure') plt.xlabel('volume') plt.show()
Result: Thermal efficiency of the engine is 56.472%
We have successfully created a pv plot for an otto cycle and calculated its thermal efficiency