Challenge

Week 2 Air standard Cycle

AIM:

To write a program in Python to solve an Otto cycle and make plots for it.

OBJECTIVE :

1. To solve and find out different state variables in the Otto cycle and plot its p-V diagram.
2. To calculate the thermal efficiency of the given Otto cycle.

THEORY:

The Otto cycle is the ideal cycle for spark-ignition reciprocating engines. In most spark- ignition engines,the piston executes four complete strokes (two mechanical cycles) within the cylinder,and the crankshaft completes two revolutions for each thermodynamic cycle. These engines are called four-stroke internalcombustion engines.
Initially,both the intake and the exhaust valves are closed,and the piston is at its lowest position (BDC).During the compression stroke,the piston moves upward,compressing the air-fuel mixture. Shortly before the piston reaches its highest position (TDC),the spark plug fires and the mixture ignites,increasing the pressure and temperature of the system. The high-pressure gases force the piston down, which in turn forces the crankshaft to rotate,producing a usefulwork output during the expansion or power stroke.At the end of this stroke,the piston is at its lowest position (the completion
of the first mechanical cycle),and the cylinder is f illed with combustion products. Now the piston moves upward one more time,purging the exhaust gases through the exhaust valve (the exhaust stroke),and down a second time, drawing in the fresh air-fuel mixture through the intake valve (the intake stroke). Notice that the pressure in the cylinder is slightly above the atmospheric value during the exhaust stroke and slightly below during the intake stroke.

The four processes in on Otto cycle are:

  1. lsentropic compression process or Reversible adiabatic compression of air (Process 1-2),
  2. Constant volume heat addition process (Process 2-3),
  3. lsentropic expansion process or Reversible adiabatic expansion of air (Process 3-4),
  4. Constont volume heat rejection process (Process 4-1).

GOVERNING EQUATIONS :

Various equations of Otto cycle ore involved in this project. These are :
⦁ Compression ratio (rc) ,rc=(V1/V2) or 1+Vs/Vc,

⦁ Swept volume (Vs) = (pi/4)*d^2*l,where d is bore diameter and l is stroke length,

•

where R = length of connecting rod/crank radius ,
⦁ Adiabatic process equation = p ·vv = constant,


⦁ Ideal Gos equation = p·v=m·R·T,

⦁ Thermal efficiency of Otto cycle()=

⦁ From the figure,v1 = vs+vc ,v2=vc.

Body of the content:

Explanation of the python code:

1.Since the Otto cycle is on air-standard cycle,the specific heat (y) of air is taken as 1.4.
2.Initial conditions,such as temperature (T1) and pressure (P1) of the surrounding is assumed to be 350K and 101325 kPa respectively.
3. The geometrical design of the engine cylinder which consists of bore diameter,stroke length, and length of connecting rod is also known and accordingly vs and vc are calculated.
4. The maximum temperature (T3) occurring inside the cylinder is also known.

5. Other state variables are calculated using Adiabatic processes equations and ideal gas equations.
6. Similarly,the thermal efficiency is also calculated accordingly using the formula given.
7. For plotting the calculated state variables on a p-v diagram with just using 'plt.plot' the command will yield into the incorrect p-v diagrom,i.e,compression and expansion stroke is represented by a straight line.
8. So to rectify this,a different function is created for storing the different values of crank angle rotation as compression and expansion occur indifferent strokes or cycles. This function is then called to the main program and accordingly,the plot is drawn fromvarious points obtained.
9. For this number of values for which the program will iterate is 100,and accordingly,the V array is set as null and after every iteration using for loop,a new value will be stored as an array using 'append' command and will be returned back ofter receiving desired values.

PYTHON CODE FOR SOLVING AND PLOTTING CURVE:

(I) Codeis inserted as HTML/ XML Language
'''A program to calculate different state variables in an Otto Cycle and to calculate its thermal efficiency and plot it on p-v diagram '''

import math
import matplotlib.pyplot as plt

def engine_kinematics(bore,stroke,connecting_rod,c_r,start_crank_angle,end_crank_angle):

    # Engine geometry properties 
    r =	stroke/2
    n = connecting_rod/r

    # Volume parameters

    v_swept = (math.pi/4)*pow(bore,2)*stroke 
    v_clearance = v_swept/(c_r -1)

    theta_startcrank = math.radians(start_crank_angle) 
    theta_endcrank = math.radians(end_crank_angle)
    num_val = 100
    dtheta = (theta_endcrank-theta_startcrank)/(num_val - 1)
    v = []
    for i in range(0,num_val):
        theta = theta_startcrank + i*dtheta
        term_1=	0.5*(c_r - 1)
        term_2=	n + 1 - math.cos(theta)
        term_3=(pow(n,2)- pow(math.sin(theta),2))
        term_3=pow(term_3,0.5)
        V.append ((1 + term_1* (term_2 -term_3))*v_clearance)

    return V

# Inputs varibale

gamma = 1.4  # for air gamma= 1.4
T3 = 2000     # max temp inside engine cyr

# State variable
# ambient atmospheric conditions assumed 
p1 =101325
T1 = 350

#  Engine geometry properties

bore = 0.15	
stroke = 0.2	
connecting_rod = 0.8
c_r = 10

# Calculating swept volume and clearance volume

v_swept =(math.pi/4)*pow(bore,2)*stroke 
v_clearance = v_swept/(c_r -1)
v1=v_swept + v_clearance
v2 = v_clearance

# state variables at state point 2
# p2*v2^gamma = p1*v1^gamma --- Isentropic compression
p2 = p1* pow(c_r,gamma)
#  (p1*v1) / T1 =(p2*v2) /T2 | T2=p2*v2*T1/(p1*v1) 
T2 = p2*v2*T1/(p1*v1)
V_comp =engine_kinematics(bore,stroke,connecting_rod,c_r,180,0)
C_const = p1*pow(v1,gamma)
P_comp = []
for v in V_comp:
    P_comp.append(C_const/pow(v ,gamma))


# State variables at state point 3

v3 = v2	      # Isochoric process

''' (p3*v3)/T3 =(p2*v2)/T2 | p3=p2•T3/(T2) '''
p3=p2*T3/(T2)
V_expp =engine_kinematics(bore,stroke,connecting_rod,c_r,0,180)
C_const = p3*pow(v3,gamma)
P_expp = []
for v in V_expp :
    P_expp.append(C_const/pow(v,gamma))

# state variables at state point 4
v4 = v1         # Isochoric process

''' p3*v3^gamma =-  p4*v4^gamma '''
p4 = p3*pow(v3,gamma) /pow(v4,gamma)    # Isentropic expansion process

''' (p3*v3) /T3 = (p4*v4)/T4 | T4 = p4*v4*T3/(p3*v3)  '''

T4 = p4*v4*T3/(p3*v3)

plt.plot(V_comp,P_comp) 
plt.plot([v2,v3],[p2,p3]) 
plt.plot (V_expp,P_expp)
plt.plot([v4,v1],[p4,p1])
plt.ylim ([-500000,8000000])
plt.xlim ([0,0.005])
plt.xlabel('Volume (mA3)')
plt.ylabel('Pressure(Pa)')
plt.title('p-V diagram of an Otto Cycle')
plt.text(0.00385,-250000,r'$ 1 $')
plt.text(0.0002,2000000,r'$ 2 $')
plt.text(0.0002,5850000,r'$ 3 $')
plt.text(0.00385,400000,r'$ 4 $')
plt.grid()
plt.show()


#Calculating thermal efficiency

thermal_efficincy = 1- (1/pow((c_r),gamma-1)))
print('Thermal efficiency of given Otto Cycle is :',thermal_efficincy)

NOTE:- Python throws an error if there is indentation mismatching.So inorder to avoid this follow the spacing as it is pasted here.


RESULTS:


⦁ Upon executing the above program,the following plot for the p-V curve was observed:

CONCLUSION:

The desired and correct p-V diagram of the Otto cycle was obtained using an array of volume inside the engine cylinder at a different crank angle.


REFERENCES: The theory and fig 1 is derived from Thermodynamics- An engineering approach by Y.A Cengel.

NOTATIONS :

⦁ p = pressure,
⦁ v = volume of engine cylinder,
⦁ T = temperature,
⦁ vc = clearance volume,(Clearance volume is a volume between the cylinder head and the piston top when the piston is at top dead center (TDC).),
⦁ vs = swept volume,(Swept volume is the displacement of one cylinder. It is the volume between top dead center (TDC) and bottom dead center (BOC).),
⦁ y= specific heat,
⦁ d = bore diameter (diameter of each cylinder)
⦁ l = stroke length (The stroke length is how far the piston travels in the cylinder,which is determined by the cranks on the crankshaft.)
⦁

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.