Project

PV Diagram visualizer for Otto cycle

OBJECTIVE:

To write a program to solve and plot the p-v diagram of otto cycle

Otto cycle:

The four main stages involved are:

  • Isentropic Compression
  • Constant Volume Heat Addition
  • Isentropic Expansion
  • Constant Volume Heat Rejection

Thermal efficieny =1-(T1/T2)

\"\"

PROGRAM

#Q1 ploting pv diagram for otto cycle

import math
import matplotlib.pyplot as plt
import numpy as np



p1=101325 #pascal
t1=500 #K
gamma=1.4
t3=2300

#geometreic parameters
bore=0.1
stroke=0.1
con_rod=0.15 # length of connectiong rod
cr=8 #compression ratio

#volume of cyclinder
v_s=(math.pi/4)*bore**2*stroke

#clearance volume
v_c= v_s/(cr-1)



def engine_kinematics(bore, stroke, con_rod, cr, start_crank, end_crank):
	a=stroke/2
	R=con_rod/a

	v_s=math.pi*(1/4)*(bore**2)*stroke
	v_c=v_s/(cr-1)

	sc=math.radians(start_crank)
	ec=math.radians(end_crank)

	n_values=50

	theta=np.linspace(sc,ec,n_values)

	V=[]
	for i in theta:
		term1=0.5*(cr-1)

		term2=R +(1-math.cos(i))

		term3=R**2-pow(math.sin(i),2)
		term3=term3**0.5

		V.append((1+term1*(term2-term3))*v_c)
	return(V)




#state point 1
v1=v_c+v_s


# state point 2
v2=v_c
p2=(p1*(v1**gamma))/(v2**gamma)

#p2v2/t2=p1v1/t1, rhs=p1v1/t1, t2=p2v2/rhs

rhs= p1*v1/t1
t2= p2*v2/rhs


V_compression=engine_kinematics(bore, stroke, con_rod, cr, 180, 0)


constant=p1*(v1**gamma)

P_compression=[]

for v in V_compression:
	P_compression.append(constant/(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*(v3**gamma)

P_expansion=[]

for v in V_expansion:
	P_expansion.append(constant/(v**gamma))
	


#state point 4
v4=v1

#p4v4^gamma=p3v3^gamma
p4=p3*(v3**gamma)/(v4**gamma)

#p4v4/t4=p3v3/t3

t4=p4*v4/rhs



#Q2- to find the thermal efficiency of the engine

efficiency=(1-(t1/t2))*100

print(\'Efficiency=\', efficiency,\'%\')



plt.plot([v2,v3],[p2,p3])
plt.plot(V_compression,P_compression)
plt.plot([v4,v1],[p4,p1])
plt.plot(V_expansion,P_expansion)
plt.xlabel(\'Volume\')
plt.ylabel(\'Pressure\')
plt.title(\'P V Diagram for Otto Cycle\\n Thermal Efficiency=%f\'%(efficiency)+\'%\')
plt.savefig(\'P V Diagram.png\')
plt.show()




OUTPUT:

\"\"

CONCLUSION:

The thermal efficiency of the engine is found to be 56.47%

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.