Challenge

Week 2 Air standard Cycle

Aim:To write code that can solve an otto cycle and make plots for it.

1. Code should create a PV diagram

2. Should output the thermal efficiency of the engine.

Program code:

"""
Engine kinematics
"""
import math
import matplotlib
#geometric parameters
bore=0.10
stroke=0.1
con_rod=0.15
cr=12
a = stroke/2
R = con_rod/a

#volume parameters
v_s = math.pi*(1/4)*pow(bore,2)*stroke
v_c = v_s/(cr-1)

theta = math.radians(0)
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 = (1+term1*(term2-term3))*v_c
print(v_c)
print(V)

Error screenshot:

Steps taken to overcome the errors:

1. Spacing of the code check is made to recitify the errors.

final program:

import math
import matplotlib.pyplot as plt

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

	sc=math.radians(start_crank)
	ec=math.radians(end_crank)
	dtheta=(ec-sc)/(n-1)
	v=[]
	for i in range(0,n):
		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

bore=0.1
stroke=0.12
con_rod=0.15
cr=12

#INPUTS
p1=101325
t1=500
gamma=1.4
t3=2300
th_eff=(1-1/pow(cr,gamma-1))*100
print(th_eff)
v_s=math.pi/4*pow(bore,2)*stroke
v_c=v_s/(cr-1)
v1=v_s+v_c

#STATE POINTS 2
v2=v_c
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 POINTS 3
v3=v2
rhs=p2*v2/t2
p3=rhs*t3/v3

v_expansion=engine_kinematics(bore,stroke,con_rod,cr,180,0)
constant=p3*pow(v3,gamma)
p_expansion=[]

for v in v_expansion:
	p_expansion.append(constant/pow(v,gamma))

#STATE POINTS 4
v4=v1
p4=p3*pow(v3,gamma)/pow(v4,gamma)
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.show()
plt.savefig('pvdiagram.png')

Explanation:

For otto cycle the following process are considered

1-2 Isentropic compression

2-3 Constant volume heat addition

3-4 Isentropic expansion

4-1 Constant volume heat rejection

Engine geometric parameters,

Bore,stroke,connecting rod length,cr are defined with values.

Outputs for the same is declared in terms of v1,t1,p1,v2,t2,p2,v3,t3,p3,cr

Formula to determine how the volume inside the IC engine change:

V/Vc = 1+(0.5)(rc-1)[R+1-cos theta-(R²-sin² theta)]

Swept volume and clearance volume is also defined for the air standard cycle.

The formula for the IC engine also split into multiple terms to ease the solvation.

State variables at point 1 2 3 4 are also declared

Plotting for the same is done.

Screenshot of the output:

Result:

Plot for the otto cycle is obtained.

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.