Project

Otto cycle

\"\"

import math
import matplotlib.pyplot as plt 

def engine_kinematics(bore,stroke,conn_rod,cr,start_crank,end_crank):
	import math
	bore = 0.1
	stroke=0.1
	conn_rod=0.15
	cr=12
	a=stroke/2
	R=conn_rod/a

	V_s = math.pi/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
		
p1=101325
t1=500
gamma=1.4
t3=2300

bore=0.1
stroke=0.1
conn_rod=0.15
cr=12


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


v2=v_c

#p2v2^gamma=p1v1^gamma

p2 = p1*pow(v1,gamma)/pow(v2,gamma)

#p2v2/t2=p1v1/t1

rhs=p1*v1/t1
t2=p2*v2/rhs
V_compression = engine_kinematics(bore,stroke,conn_rod,cr,180,0)

constant_comp = p1*pow(v1,gamma)

P_compression =[]

for V in V_compression:
	P_compression.append(constant_comp/pow(V,gamma))

v3=v2

#p3v3/t3=p2v2/t2

rhs=p2*v2/t2
p3=rhs*t3/v3

V_expansion = engine_kinematics(bore,stroke,conn_rod,cr,0,180)	
	
constant_exp = p3*pow(v3,gamma)

P_expansion = []

for V in V_expansion:	
	P_expansion.append(constant_exp/pow(V,gamma))


v4=v1

#p4v4^gamma=p3v3^gamma

p4=p3*pow(v3,gamma)/pow(v4,gamma)

#p4v4/t4 =p3v3/t3 

t4=p4*v4/rhs

#thermal efficiency of engine
frac=pow(1/cr,gamma-1)
therm_eff=1-frac
print(\'the thermal efficiency of engine is {} percentage \'.format (therm_eff*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.show()

Steps
1.Import maths library and mathplotlib.pyplot as plt
2.Define a function named engine_kinematics for inputs
such as bore,stroke,connecting rod,compression ratio,
starting and ending crank angle.
3.In that function get swept volume and clearance volume.
4.Define no. of values and dtheta to get a multiple to different
values of angles.
5.Create a empty string v to get velocity values.
6.Initialize a looop for i ranges from 0 to no. of values.
7.Get values for V by formula and use append to retain values.
8.retun v to end function.
9.At pt1,
define temperature,pressure,gamma
10.define temperature at point t3
11.define bore stroke connecting rod length can compression ratio.
12.get swept volume and clearance volume by formula.
13.volume at point 2 is equal to clearance volume.
14.get pressure at point2 by formula.p1v1^gamma=p2v2^gamma
15.get temperature at point 2 by formula (p2v2)/t2=(p1v1)/t1
16.get volume compression by calling function engine kinematics.
17.initiate for loop V for values of v compression.
18.append values of p comression in string P_compression.
19. v3=v2
20.follow same for v expansion just keep theta 0 to 180 in calling
function engine kinematics.
21.v4=v1
p4v4^gamma=p3v3^gamma
p4=p3*pow(v3,gamma)/pow(v4,gamma)
22.get thermal efficiency by formula
frac=pow(1/cr,gamma-1)
therm_eff=1-frac
23.print efficiency
24.plot ([v2,v3],[p2,p3])
(V_compression,P_compression)
(V_expansion,P_expansion)
([v4,v1],[p4,p1])
25.display graph.

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.