PV N THERMAL EFFICIENCY OF OTTO CYCLE
https://projects.skill-lync.com/projects/Otto-CYCLE-PV-PLOTS-AND-THERMAL-EFFICIENCY-60372
import math
import matplotlib.pyplot as plt
#inputs
p1=101325
t1=500
gamma=1.4
t3=2300
#geometric parameters
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;
def engine_kinematic(start_crank,end_crank) :
a=stroke/2
R=con_rod/a
sc=math.radians(start_crank)
ec=math.radians(end_crank)
n=50
dtheta=(ec-sc)/(n-1)
V1=[]
for i in range(0,n):
theta=sc + dtheta*i;
term1=pow(R,2)-pow(math.sin(theta),2);
term1=pow(term1,0.5);
term2=R+1-math.cos(theta);
term3=(cr-1)*0.5;
V1.append((1+(term3*(term2-term1)))*v_c);
return V1
#state point2
v2=v_c;
#p1v1^gamma=p2v2^gamma
p2=p1*pow(v1,gamma)/pow(v2,gamma);
#p1v1/t1=p2v2/t2
t2=p2*v2*t1/(p1*v1);
V_compression=engine_kinematic(180,0);
P_compression=[];
for v in V_compression:
P_compression.append((p1*pow(v1,gamma)/pow(v,gamma)));
#state point3
v3=v2;
#p2v2/t2=p3v3/t3
p3=p2*v2*t3/(v3*t2);
V_expansion=engine_kinematic(0,180);
P_expansion=[];
for v in V_expansion:
P_expansion.append((p3*pow(v3,gamma)/pow(v,gamma)));
#state point4
v4=v1;
#p4v4^gamma=p3v3^gamma
p4=p3*pow(v3,gamma)/pow(v4,gamma);
#p4v4/t4=p3v3/t3
t4=p4*v4*t3/(p3*v3);
thermal_efficiency=1/(pow(cr,(gamma-1)));
print(\'thermal efficiency:\',(thermal_efficiency*100),\'%\')
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();