diff options
author | Jovina Dsouza | 2014-06-17 19:02:18 +0530 |
---|---|---|
committer | Jovina Dsouza | 2014-06-17 19:02:18 +0530 |
commit | 3df19050b78c9fad037dd5f464f05ccf2b43c40e (patch) | |
tree | ad2af507f53edc0600f354ef852fc6c6b705b82c | |
parent | d04a05dd0d0639d0d8abe36059c72d5bd7fad576 (diff) | |
download | Python-Textbook-Companions-3df19050b78c9fad037dd5f464f05ccf2b43c40e.tar.gz Python-Textbook-Companions-3df19050b78c9fad037dd5f464f05ccf2b43c40e.tar.bz2 Python-Textbook-Companions-3df19050b78c9fad037dd5f464f05ccf2b43c40e.zip |
adding book
27 files changed, 8256 insertions, 0 deletions
diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_10_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_10_2.ipynb new file mode 100644 index 00000000..e8caa476 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_10_2.ipynb @@ -0,0 +1,360 @@ +{ + "metadata": { + "name": "Chapter 10" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 10 :- Refrigeration and Heat pump systems" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 10.1 Page no-459" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine", + "# (a) the compressor power, in kW, ", + "# (b) the refrigeration capacity, in tons, ", + "# (c) the coefficient of performance, and ", + "# (d) the coefficient of performance of a Carnot refrigeration cycle operating between warm and cold regions at 26 and 0\u0004C, respectively.", + "", + "# Given:-", + "Tc = 273.00 # temperature of cold region in kelvin", + "Th = 299.00 # temperature of hot region in kelvin", + "mdot = 0.08 # mass flow rate in kg/s", + "", + "# Analysis", + "# At the inlet to the compressor, the refrigerant is a saturated vapor at 0\u0004C, so from Table A-10", + "h1 = 247.23 # in kj/kg", + "s1 = 0.9190 # in kj/kg.k", + "", + "# The pressure at state 2s is the saturation pressure corresponding to 26\u0004C, or", + "p2 = 6.853 # in bars", + "# The refrigerant at state 2s is a superheated vapor with", + "h2s = 264.7 # in kj/kg", + "# State 3 is saturated liquid at 26\u0004C, so", + "h3 = 85.75 # in kj/kg", + "h4 = h3 # since The expansion through the valve is a throttling process", + "", + "# Part(a)", + "Wcdot = mdot*(h2s-h1) # The compressor work input in KW", + "print '-> The compressor power, in kW, is: '", + "print round(Wcdot,2)", + "", + "# Part(b)", + "Qindot = mdot*(h1-h4)*60/211 # refrigeration capacity in ton", + "print '-> The refrigeration capacity in tons is: '", + "print round(Qindot,2)", + "", + "# Part(c)", + "beta = (h1-h4)/(h2s-h1)", + "print '-> The coefficient of performance is: '", + "print round(beta,2)", + "", + "# Part(d)", + "betamax = Tc/(Th-Tc)", + "print '-> The coefficient of performance of a Carnot refrigeration cycle operating between warm and cold regions at 26 and 0\u0004C, respectively is: '", + "print betamax" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The compressor power, in kW, is: ", + "1.4", + "-> The refrigeration capacity in tons is: ", + "3.67", + "-> The coefficient of performance is: ", + "9.24", + "-> The coefficient of performance of a Carnot refrigeration cycle operating between warm and cold regions at 26 and 0\u0004C, respectively is: ", + "10.5" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 10.2 Page no-462" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# (a)Determine for the modified vapor-compression refrigeration cycle (a) the compressor power, in kW", + "# (b) the refrigeration capacity, in tons, ", + "# (c) the coefficient of performance. Compare results with those of Example 10.1.", + "", + "# Given:-", + "mdot = 0.08 # mass flow rate in kg/s", + "# Analysis", + "# At the inlet to the compressor, the refrigerant is a saturated vapor at \u000510\u0004C, so from Table A-10,", + "h1 = 241.35 # in kj/kg", + "s1 = .9253 # in kj/kg.k", + "# Interpolating in Table A-12 gives", + "h2s = 272.39 # in kj/kg.k", + "# State 3 is a saturated liquid at 9 bar, so", + "h3 = 99.56 # in kj/kg", + "h4 = h3 # since The expansion through the valve is a throttling process", + "", + "# Part(a)", + "Wcdot = mdot*(h2s-h1) # The compressor power input in KW", + "# Result", + "print '-> The compressor power in kw is: '", + "print round(Wcdot,2)", + "", + "# Part(b)", + "Qindot = mdot*(h1-h4)*60/211 # refrigeration capacity in tons", + "# Result", + "print '-> The refrigeration capacity in tons is: '", + "print round(Qindot,2)", + "", + "# Part(c)", + "beta = (h1-h4)/(h2s-h1)", + "# Result", + "print '-> The coefficient of performance is: '", + "print round(beta,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The compressor power in kw is: ", + "2.48", + "-> The refrigeration capacity in tons is: ", + "3.23", + "-> The coefficient of performance is: ", + "4.57" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 10.3 Page no-464" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine ", + "# (a) the compressor power, in kW,", + "# (b) the refrigeration capacity, in tons, ", + "# (c) the coefficient of performance, ", + "# (d) the rates of exergy destruction within the compressor and expansion valve, in kW, for T0 \u0003= 299 K (26\u0004C).", + "", + "# Given:-", + "Tnot = 299 #in kelvin", + "etac = .8 #compressor efficiency of 80 percent", + "mdot = .08 #mass flow rate in kg/s", + "#analysis", + "#State 1 is the same as in Example 10.2, so", + "h1 = 241.35 #in kj/kg", + "s1 = .9253 #in kj/kg.k", + "#from example 10.2", + "h2s = 272.39 #in kj/kg", + "h2 =(h2s-h1)/etac + h1 #in kj/kg", + "#Interpolating in Table A-12,", + "s2 = .9497 #in kj/kg.k", + "", + "h3 = 91.49 #in kj/kg", + "s3 = .3396", + "h4 = h3 #since The expansion through the valve is a throttling process", + "#from data table", + "hf4 = 36.97 #in kj/kg", + "hg4 = 241.36 #in kj/kg", + "sf4 = .1486 #in kj/kg.k", + "sg4 = .9253 #in kj/kg.k", + "x4 = (h4-hf4)/(hg4-hf4) #quality at state 4", + "s4 = sf4 + x4*(sg4-sf4) #specific entropy at state 4 in kj/kg.k", + "", + "#part(a)", + "Wcdot = mdot*(h2-h1) #compressor power in kw", + "print 'The compressor power in kw is: ',round(Wcdot,2),'kW'", + "", + "#part(b)", + "Qindot = mdot*(h1-h4)*60/211 #refrigeration capacity in ton", + "print 'The refrigeration capacity in ton is: ',round(Qindot,2),'ton'", + "", + "#part(c)", + "beta = (h1-h4)/(h2-h1) #coefficient of performance ", + "print 'The coefficient of performance is: ',round(beta,2)", + "", + "#part(d)", + "Eddotc = mdot*Tnot*(s2-s1) #in kw", + "Eddotv = mdot*Tnot*(s4-s3) #in kw", + "print 'The rate of exergy destruction within the compressor is:',round(Eddotc,2),'kw.'", + "print 'The rate of exergy destruction within the valve is:',round(Eddotv,2),'kw'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The compressor power in kw is: 3.1 kW", + "The refrigeration capacity in ton is: 3.41 ton", + "The coefficient of performance is: 3.86", + "The rate of exergy destruction within the compressor is: 0.58 kw.", + "The rate of exergy destruction within the valve is: 0.39 kw" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 10.4 Page no-475" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the net power input, the refrigeration capacity, the coefficient of performance.", + "# Given:-", + "p1 = 1.00 # in bar", + "T1 = 270.00 # in kelvin", + "AV = 1.4 # in m^3/s", + "r = 3.00 # compressor pressure ratio", + "T3 = 300.00 # turbine inlet temperature in kelvin", + "", + "# Analysis", + "# From Table A-22,", + "h1 = 270.11 # in kj/kg", + "pr1 = 0.9590", + "# Interpolating in Table A-22,", + "h2s = 370.1 # in kj/kg", + "# From Table A-22,", + "h3 = 300.19 # in kj/kg", + "pr3 = 1.3860", + "# Interpolating in Table A-22, we obtain", + "h4s = 219.00 # in kj/kg", + "# Calculations", + "pr2 = r*pr1", + "pr4 = pr3/r", + "", + "# Part(a)", + "R = 8.314 # universal gas constant, in SI units", + "M = 28.97 # molar mass of air in grams", + "", + "# Results", + "mdot = (AV*p1)/((R/M)*T1)*10**2 # mass flow rate in kg/s", + "Wcycledot = mdot*((h2s-h1)-(h3-h4s))", + "print '-> The net power input in kw is: '", + "print round(Wcycledot,2)", + "", + "# Part(b)", + "Qindot = mdot*(h1-h4s) # refrigeration capacity in kw", + "print '-> The refregeration capacity in kw is: '", + "print round(Qindot,2)", + "", + "# Part(c)", + "beta = Qindot/Wcycledot # coefficient of performance", + "print 'The coefficient of performance is: '", + "print round(beta,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The net power input in kw is: ", + "33.97", + "-> The refregeration capacity in kw is: ", + "92.34", + "The coefficient of performance is: ", + "2.72" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 10.5 Page no-477" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine net power input,the refrigeration capacity,the coefficient of performance, and interpret its value.", + "", + "# Given:-", + "# Part(a)", + "wcdots = 99.99 # work per unit mass for the isentropic compression determined with data from the solution in Example 10.4 in kj/kg", + "mdot = 1.807 # mass flow rate in kg/s from 10.4", + "etac = 0.8 # isentropic efficiency of compressor", + "Wcdot = (mdot*wcdots)/etac # The power input to the compressor in kw", + "", + "# Using data form the solution to Example 10.4 gives", + "wtdots =81.19 # in kj/kg", + "etat = 0.8 # isentropic efficiency of turbine", + "# Calculations", + "Wtdot = mdot*etat*wtdots # actual turbine work in kw", + "Wdotcycle = Wcdot-Wtdot # The net power input to the cycle in kw", + "# Result", + "print '-> The net power input in kw is: '", + "print round(Wdotcycle,2)", + "", + "# Part(b)", + "h3 = 300.19 # in kj/kg", + "# From table A-22", + "h1 = 270.11 # in kj/kg", + "# Calculations", + "h4 = h3 -Wtdot/mdot", + "Qindot = mdot*(h1-h4) # refrigeration capacity in kw", + "# Result", + "print '-> The refrigeration capacity in kw is: '", + "print round(Qindot,2)", + "", + "# Part(c)", + "beta = Qindot/Wdotcycle # coefficient of performance ", + "# Result", + "print '-> The coefficient of performance is: '", + "print round(beta,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The net power input in kw is: ", + "108.48", + "-> The refrigeration capacity in kw is: ", + "63.01", + "-> The coefficient of performance is: ", + "0.58" + ] + } + ], + "prompt_number": 5 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_11_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_11_2.ipynb new file mode 100644 index 00000000..cd37efd9 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_11_2.ipynb @@ -0,0 +1,531 @@ +{ + "metadata": { + "name": "Chapter 11" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "#Chapter 11 :- Thermodynamic Relations" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 11.1 Page no-491" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine", + "# (a) the generalized compressibility chart, ", + "# (b) the ideal gas equation of state, (c) the van der Waals equation of state, ", + "# (d) the Redlich\u2013Kwong equation of state. Compare the results obtained.", + "", + "# Given:-", + "m = 4.00 # mass of carbon monoxide in kg", + "T = 223.00 # temperature of carbon monoxide in kelvin", + "D = 0.2 # inner diameter of cylinder in meter", + "L = 1.00 # length of the cylinder in meter", + "pi=3.14", + "# Analysis", + "M = 28.00 # molar mass in kg/kmol", + "# Calculations", + "V = (pi*D**2.00/4.00)*L # volume occupied by the gas in m^3", + "vbar = M*(V/m) # The molar specific volume in m^3/kmol", + "", + "# Part(a)", + "# From Table A-1 for CO", + "Tc = 133 # in kelvin", + "Pc = 35 # in bar", + "Tr = T/Tc # reduced temperature", + "Rbar = 8314 # universal gas constant in N.m/kmol.K", + "Z = 0.9", + "# Calculations", + "vrdash = (vbar*Pc*10**5)/(Rbar*Tc) # pseudoreduced specific volume", + "p = (Z*Rbar*T/vbar)*10**-5 # in bar", + "# Result", + "print '-> part(a)the pressure in bar is: '", + "print round(p,2)", + "", + "# Part(b)", + "# The ideal gas equation of state gives", + "# Calculations", + "p = (Rbar*T/vbar)/10**5 # in bar", + "# Result", + "print '-> Part(b)the pressure in bar is: '", + "print round(p,2)", + "", + "# Part(c)", + "# For carbon monoxide, the van der Waals constants a and b can be read directly from Table A-24", + "a = 1.474 # in (m^3/kmol)^2", + "b = 0.0395 # in m^3/kmol", + "# Calculations", + "p = (Rbar*T/(vbar-b))/10**5 - a/vbar**2", + "# Result", + "print '-> Part(c)the pressure in bars is: '", + "print round(p,2)", + "", + "# Part(d)", + "# For carbon monoxide, the Redlich\u2013Kwong constants can be read directly from Table A-24", + "a = 17.22 # in m^6*K^.5/kmol^2", + "b = 0.02737 # in m^3/kmol", + "# Calculations", + "p = (Rbar*T/(vbar-b))/10**5 - a/(vbar*(vbar+b)*T**.5)", + "# Result", + "print '-> Part(d)the pressure in bar is: '", + "print round(p,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> part(a)the pressure in bar is: ", + "75.92", + "-> Part(b)the pressure in bar is: ", + "84.35", + "-> Part(c)the pressure in bars is: ", + "72.32", + "-> Part(d)the pressure in bar is: ", + "75.12" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "", + "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].", + "For more information, type 'help(pylab)'." + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 11.3 Page no-501" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Evaluate the partial derivative (dels/delv)T for water vapor ", + "# (a) Use the Redlich\u2013Kwong equation of state and an appropriate Maxwell relation. ", + "# (b) Check the value obtained using steam table data.", + "", + "# Given:-", + "# Part(a)", + "v = 0.4646 # specific volume in in m^3/kg", + "M = 18.02 # molar mass of water in kg/kmol", + "# At the specified state, the temperature is 513 K and the specific volume on a molar basis is", + "vbar = v*M # in m^3/kmol", + "# From Table A-24", + "a = 142.59 # (m^3/kmol)^2 * K^.5", + "b = 0.0211 # in m^3/kmol", + "", + "Rbar = 8314.0 # universal gas constant in N.m/kmol.K", + "T = 513.0 # in kelvin", + "delpbydelT = (Rbar/(vbar-b) + a/(2*vbar*(vbar+b)*T**1.5)*10**5)/10**3 # in kj/(m^3*K)", + "", + "# By The Maxwell relation", + "delsbydelv = delpbydelT", + "# Result", + "print '-> The value of delpbydelT in kj/(m^3*K) is: ',delpbydelT", + "", + "# Part(b)", + "from pylab import *", + "# A value for (dels/delv)T can be estimated using a graphical approach with steam table data, as follows: At 240\u0004C, Table A-4 provides the values for specific entropy s and specific volume v tabulated below", + "T = 240.0 # in degree celcius", + "# At p =1, 1.5, 3, 5, 7, 10 bar respectively", + "y = [7.994, 7.805, 7.477, 7.230, 7.064, 6.882] # in kj/kg.k # in kj/kg.k", + "x = [2.359, 1.570, 0.781, 0.4646, 0.3292, 0.2275] # in m^3/kg # in m^3/kg", + "plot(x,y)", + "xlabel(\"Specific volume\")", + "ylabel(\"Specific entropy\")", + "show()", + "# The pressure at the desired state is 5 bar.The corresponding slope is", + "delsbydelv = 1 # in kj/m^3.K", + "print '-> From the data of the table,delsbydelv = ',delsbydelv" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The value of delpbydelT in kj/(m^3*K) is: 1.00430251045" + ] + }, + { + "output_type": "display_data", + "png": "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\n" + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> From the data of the table,delsbydelv = 1" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 11.4 Page no-506" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculate (a) hg -\u0005 hf, (b) ug -\u0005 uf, (c) sg -\u0005 sf. Compare with the respective steam table value.", + "", + "# Given:-", + "# Analysis", + "# For comparison, Table A-2 gives at 100\u0004C,", + "hgf =2257.00 # in kj/kg", + "ugf = 2087.6 # in kj/kg", + "sgf = 6.048 # in kj/kg.K", + "# Values", + "print '-> From table, hg-hf = ',hgf", + "print '-> From table, ug-uf = ',ugf", + "print '-> From table, sg-sf = ',sgf", + "", + "# Part(a)", + "T = 373.15 # in kelvin", + "# If we plot a graph between temperature and saturation pressure using saturation pressure\u2013temperature data from the steam tables, the desired slope is:", + "delpbydelT = 3570.00 # in N/(m^2.K)", + "vg = 1.673 # in m^3/kg", + "vf = 1.0435e-3 # in m^3/kg", + "# Calculations", + "# From the Clapeyron equation", + "hgf = T*(vg-vf)*delpbydelT*10**-3 # in kj/kg", + "# Result", + "print '-> Part(a)using Clapeyron equation, hg-hf = ', round(hgf,2)", + "", + "# Part(b)", + "psat = 1.014e5 # in N/m^2", + "hgf = 2256.00 # can be obtained using IT software in kj/kg", + "# Calculations", + "ugf = hgf - psat*(vg-vf)/10**3 # in kj/kg", + "# Result", + "print '-> Part(b)ug-uf = ', round(ugf,2)", + "# Part(c)", + "# Calculation", + "sgf =hgf/T # in kj/kg.K ", + "# Result", + "print '-> Part(c)sg-sf = ', round(sgf,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> From table, hg-hf = 2257.0", + "-> From table, ug-uf = 2087.6", + "-> From table, sg-sf = 6.048", + "-> Part(a)using Clapeyron equation, hg-hf = 2227.29", + "-> Part(b)ug-uf = 2086.46", + "-> Part(c)sg-sf = 6.05" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 11.6 Page no-517" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# estimate (a) the percent error in cv, assumed that cp =\u0003 cv, (b) the velocity of sound, in m/s.", + "", + "# Given:-", + "# Part(a)", + "v = 1.00/998.21 # specific volume of water in m^3/kg", + "T = 293.00 # given temperature in kelvin", + "beta = 206.6e-6 # volume expansivity in /K", + "k = 45.90e-6 # isothermal compressibility in /bar", + "# Interpolating in Table A-19", + "cp = 4.188 # in kj/kg.k", + "# Calculations", + "cpv = (v*T*beta**2.00/k)*10**2 # in kj/kg.k", + "cv = cp-cpv # in kj/kg.k", + "errorPercentage = 100*(cp-cv)/cv", + "# Result", + "print '-> The percentage error is: ',round(errorPercentage,2)", + "", + "# Part(b)", + "# Calculations", + "K = cp/cv # specific heat ratio", + "c = ((K*v/k)*10**5)**0.5 # velocity of sound in m/s", + "# Result", + "print '-> The velocity of sound is: ',round(c,2),'m/s'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The percentage error is: 0.66", + "-> The velocity of sound is: 1482.19 m/s" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 11.8 Page no-526" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the work developed", + "", + "# Given:-", + "p1 = 100.00 # in bar", + "T1 = 300.00 # in kelvin", + "p2 = 40.00 # in bar", + "T2 = 245.00 # in kelvin", + "", + "", + "# From table A-23", + "h1starbar = 8723.00 # in kj/kmol", + "h2starbar = 7121.00 # in kj/kmol", + "# From Tables A-1", + "Tc = 126.00 # critical temperature in kelvin", + "pc = 33.9 # critical pressure in bar", + "M = 28.00 # molar mass in kg/kmol", + "Rbar = 8.314 # universal gas constant in kj/(kmol.K)", + "Term1 = 0.5 ", + "Term2 = 0.31", + "", + "# Calculations", + "TR1 = T1/Tc # reduced temperature at the inlet", + "PR1 = p1/pc # reduced pressure at the inlet", + "TR2 = T2/Tc # reduced temperature at the exit", + "PR2 = p2/pc # reduced pressure at the exit", + "wcvdot = (1.00/M)*(h1starbar-h2starbar-Rbar*Tc*(Term1-Term2)) # in kj/kg", + "", + "# Result", + "print '-> The work developed, in kJ per kg of nitrogen flowing is : '", + "print round(wcvdot,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The work developed, in kJ per kg of nitrogen flowing is : ", + "50.11" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 11.9 Page no-529" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine (a) the rate of entropy production, in and (b) the isentropic turbine efficiency.", + "", + "# Given:-", + "# Part(a)", + "# With values from Table A-23", + "sT2bar = 185.775 # in kj/(kmol.K)", + "sT1bar = 191.682 # in kj/(kmol.K)", + "Rbar = 8.314 # universal gas constant", + "M = 28.00 # molar mass in kg/kmol ", + "p2 = 40.00 # in bar", + "p1 = 100.00 # in bar", + "Term1 = 0.21", + "Term2 = 0.14", + "", + "# Calculations", + "import math", + "S2StarBarMinusS1StarBar = sT2bar-sT1bar-Rbar*math.log(p2/p1) # The change in specific entropy in kj/(kmol.K)", + "sigmacvdot = (1.00/M)*(S2StarBarMinusS1StarBar-Rbar*(Term2-Term1))", + "# Result", + "print '-> the rate of entropy production in kj/kg.K is: '", + "print round(sigmacvdot,2)", + "", + "# Part(b)", + "# From Table A-23,", + "h2starbar = 6654.00 # in kj/kmol", + "h1starbar = 8723.00 # in kj/kmol", + "Tc = 126.00 # critical temperature in kelvin", + "Term2 = 0.36", + "Term1 = 0.5", + "wcvdot = 50.1 # from example 11.8", + "", + "# Calculations", + "wcvdots = (1.00/M)*(h1starbar-h2starbar-Rbar*Tc*(Term1-Term2)) # isentropic work in kj/kg", + "etat = wcvdot/wcvdots # turbine efficiency", + "", + "# Result", + "print '-> The isentropic turbine efficiency is: '", + "print round(etat,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> the rate of entropy production in kj/kg.K is: ", + "0.08", + "-> The isentropic turbine efficiency is: ", + "0.73" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 11.10 Page no-533" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculate the pressure, (a) the ideal gas equation of state, (b) Kay\u2019s rule together with the generalized compressibility chart, ", + "# (c) the van der Waals equation, ", + "# (d) the rule of additive pressures employing the generalized compressibility chart. Compare the calculated values with the known experimental value.", + "", + "# Given:-", + "# Analysis", + "V = 0.241 # volume of the mixture in m^3", + "T = 511.00 # temperature of the mixture in kelvin", + "n1 = 0.18 # number of moles of methane in kmol", + "n2 = 0.274 # number of moles of butane in kmol", + "Rbar = 8314 # universal gas constant in (N.m)/(kmol.K)", + "", + "# Calculations", + "n = n1 + n2 # The total number of moles of mixture", + "y1 = n1/n # mole fraction of methane", + "y2 = n2/n # mole fraction of butane", + "vbar = V/(n) # The specific volume of the mixture on a molar basis in m^3/kmol", + "", + "# Part(a)", + "p = (Rbar*T/vbar)*10**-5 # in bar", + "# Result", + "print '-> The pressure in bar obtained using ideal gas equation is: '", + "print round(p,2)", + "", + "# Part(b)", + "# From table A-1", + "Tc1 = 191.00 # critical temperature for methane in kelvin ", + "Pc1 = 46.4 # critical pressure for methane in bar", + "Tc2 = 425.00 # critical temperature for butane in kelvin", + "Pc2 = 38.00 # critical pressure for butane in bar", + "Z = 0.88", + "", + "", + "# Calculations", + "Tc = y1*Tc1 + y2*Tc2 # critical temperature in kelvin", + "Pc = y1*Pc1 + y2*Pc2 # critical pressure in bar", + "TR = T/Tc # reduced temperature of the mixture", + "vRdash= vbar*Pc/(Rbar*Tc)", + "p = ((Z*Rbar*T)/vbar)*10**-5 # mixture pressure in bar", + "# Result", + "print '-> Pressure obtained using Kay\u2019s rule together with the generalized compressibility chart, is: '", + "print round(p,2)", + "", + "# Part(c)", + "# Table A-24 gives the following van der Waals constants values for methane", + "a1 = 2.293 # in (m^3/kmol)^2", + "b1 = 0.0428 # in m^3/kmol", + "# Table A-24 gives the following van der Waals constants values for butane", + "a2 = 13.86 # in (m^3/kmol)^2", + "b2 = 0.1162 # in m^3/kmol", + "", + "a = (y1*a1**.5 + y2*a2**.5)**2 # in bar*(m^3/kmol)^2", + "b = y1*b1+y2*b2 # in m^3/kmol", + "# From van der Waals equation", + "p = ((Rbar*T)/(vbar-b))*10**-5 - a/(vbar**2)", + "print '-> The pressure in bar from van der Waals equation is: '", + "print round(p,2)", + "", + "# Part(d)", + "# For methane", + "TR1 = T/Tc1", + "vR1dash = (.241/.18)*10**5*Pc1/(Rbar*Tc1)", + "Z1 = 1.00", + "# For butane", + "TR2 = T/Tc2", + "vR2dash = (.88*10**5*Pc2)/(Rbar*Tc2)", + "Z2 = 0.8", + "Z = y1*Z1 + y2*Z2", + "# Accordingly, the same value for pressure as determined in part (b) using Kay\u2019s rule results:", + "p = 70.4", + "", + "# Result", + "print '-> The pressure in bar obtained using the rule of additive pressures employing the generalized compressibility chart is: '", + "print round(p,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The pressure in bar obtained using ideal gas equation is: ", + "80.03", + "-> Pressure obtained using Kay\u2019s rule together with the generalized compressibility chart, is: ", + "70.43", + "-> The pressure in bar from van der Waals equation is: ", + "66.97", + "-> The pressure in bar obtained using the rule of additive pressures employing the generalized compressibility chart is: ", + "70.4" + ] + } + ], + "prompt_number": 8 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_12_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_12_2.ipynb new file mode 100644 index 00000000..1d9602e5 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_12_2.ipynb @@ -0,0 +1,946 @@ +{ + "metadata": { + "name": "Chapter 12" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "#Chapter 12 :- Ideal Gas Mixtures: General Considerations" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 12.1 Page no-560" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# (a) Determine the apparent molecular weight of the mixture. (b) Determine the composition in terms of mass fractions (gravimetric analysis).", + "", + "# Given:-", + "n1 = 0.08 # mole fraction of CO2", + "n2 = 0.11 # mole fraction of H2O", + "n3 = 0.07 # mole fraction of O2", + "n4 = 0.74 # mole fraction of N2", + "", + "# Part(a)", + "M1 = 44.0 # molar mass of CO2 in kg/kmol", + "M2 = 18.0 # molar mass of H2O in kg/kmol", + "M3 = 32.0 # molar mass of O2 in kg/kmol", + "M4 = 28.0 # molar mass of N2 in kg/kmol", + "", + "# Calculations", + "M = M1*n1 + M2*n2 + M3*n3 + M4*n4 # in kg/kmol", + "# Result", + "print 'The apparent molecular weight of the mixture in kg/kmol is: ',M", + "", + "# Part(b)", + "mf1 = (M1*n1/M)*100.0 # mass fraction of CO2 in percentage ", + "mf2 = (M2*n2/M)*100.0 # mass fraction of H2O in percentage", + "mf3 = (M3*n3/M)*100.0 # mass fraction of O2 in percentage", + "mf4 = (M4*n4/M)*100.0 # mass fraction of N2 in percentage", + "", + "# Results", + "print 'The mass fraction of CO2 in percentage is: ',mf1", + "print 'The mass fraction of H2O in percentage is: ',mf2", + "print 'The mass fraction of O2 in percentage is: ',mf3", + "print 'The mass fraction of N2 in percentage is: ',mf4" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The apparent molecular weight of the mixture in kg/kmol is: 28.46", + "The mass fraction of CO2 in percentage is: 12.3682361209", + "The mass fraction of H2O in percentage is: 6.95713281799", + "The mass fraction of O2 in percentage is: 7.87069571328", + "The mass fraction of N2 in percentage is: 72.8039353479" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 12.2 Page no-561" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine (a) the composition in terms of mole fractions (b) the apparent molecular weight of the mixture.", + "", + "# Given:-", + "mf1 = 0.1 # mass fractiion of H2", + "mf2 = 0.6 # mass fraction of N2", + "mf3 = 0.3 # mass fraction of CO2", + "", + "# Part(a)", + "M1 = 2.0 # molar mass of H2 in kg/kmol", + "M2 = 28.0 # molar mass of N2 in kg/kmol", + "M3 = 44.0 # molar mass of CO2 in kg/kmol", + "", + "# Calculations", + "n1 = (mf1/M1)/(mf1/M1 + mf2/M2 + mf3/M3) # mole fraction of H2 ", + "n2 = (mf2/M2)/(mf1/M1 + mf2/M2 + mf3/M3) # mole fraction of N2", + "n3 = (mf3/M3)/(mf1/M1 + mf2/M2 + mf3/M3) # mole fraction of CO2", + "", + "# Results", + "print 'The mole fraction of H2 in percentage is: ',n1*100", + "print 'The mole fraction of N2 in percentage is: ',n2*100", + "print 'The mole fraction of CO2 in percentage is: ',n3*100", + "", + "# Part(b)", + "# Calculation", + "M = n1*M1 + n2*M2 + n3*M3 # in kg/kmol", + "# Result", + "print 'The apparent molecular weight of the mixture in kg/kmol is: ',M" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The mole fraction of H2 in percentage is: 63.9004149378", + "The mole fraction of N2 in percentage is: 27.3858921162", + "The mole fraction of CO2 in percentage is: 8.71369294606", + "The apparent molecular weight of the mixture in kg/kmol is: 12.7800829876" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 12.3 Page no-569" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the final temperature, the work, heat transfer, change in entropy of the mixture.", + "", + "# Given:-", + "m1 = 0.3 # mass of CO2 in kg", + "m2 = 0.2 # mass of N2 in kg", + "p1 = 1.0 # in bar", + "T1 = 300.0 # in kelvin", + "p2 = 3.0 # in bar", + "n = 1.25", + "", + "# Part(a)", + "# Calculation", + "T2 = T1*(p2/p1)**((n-1)/n) # in kelvin", + "# Result", + "print 'The final temperature in Kelvin is: ',T2", + "", + "# Part(b)", + "Rbar = 8.314 # universal gas constant in SI units", + "# Calculations", + "M = (m1+m2)/(m1/44 + m2/28) # molar mass of mixture in kg/kmol", + "W = ((m1+m2)*(Rbar/M)*(T2-T1))/(1-n) # in kj", + "# Result", + "print 'The work in kj is: ',W ", + "", + "# Part(c)", + "# From table A-23", + "uCO2T1 = 6939.0 # internal energy of CO2 on molar mass basis at temperature T1", + "uCO2T2 = 9198.0 # internal energy of CO2 on molar mass basis at temperature T2", + "uN2T1 = 6229.0 # internal energy of N2 on molar mass basis at temperature T1", + "uN2T2 = 7770.0 # internal energy of N2 on molar mass basis at temperature T2", + "deltaU = (m1/44)*(uCO2T2-uCO2T1) + (m2/28)*(uN2T2-uN2T1) # internal energy change of the mixture in KJ", + "", + "# With assumption, The changes in kinetic and potential energy between the initial and final states can be ignored", + "Q = deltaU + W", + "# Result", + "print 'The heat transfer in kj is: ',Q", + "", + "# Part(d)", + "# From table A-23", + "sbarT2CO2 = 222.475", + "sbarT1CO2 = 213.915 ", + "sbarT2N2 = 198.105", + "sbarT1N2 = 191.682", + "Rbar = 8.314 # universal gas constant", + "# Calculation", + "import math", + "deltaS = (m1/44)*(sbarT2CO2-sbarT1CO2-Rbar*math.log(p2/p1)) + (m2/28)*(sbarT2N2-sbarT1N2-Rbar*math.log(p2/p1))", + "# Result", + "print 'The change in entropy of the mixture in kj/k is: ',deltaS" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The final temperature in Kelvin is: 373.719281885", + "The work in kj is: -34.2270009251", + "The heat transfer in kj is: -7.81758534069", + "The change in entropy of the mixture in kj/k is: -0.0232760033842" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 12.4 Page no-571" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "", + "# Determine temperature at the nozzle exit, entropy changes of the CO2 and O2 from inlet to exit, exit velocity,", + "", + "# Given:-", + "y1 = 0.8 # mole fraction of CO2", + "y2 = 0.2 # mole fraction of O2", + "T1 = 700.0 # in kelvin", + "p1 = 5.0 # in bars", + "V1 = 3.0 # in m/s", + "p2 = 1.0 # in bars", + "", + "", + "# Part(a)", + "# From table A-23", + "sO2barT1 = 231.358", + "sCO2barT1 = 250.663", + "# Calculations", + "import math", + "RHS = y2*sO2barT1 + y1*sCO2barT1 + 8.314*math.log(p2/p1)", + "# Using table A-23", + "LHSat510K = y2*221.206 + y1*235.7", + "LHSat520K = y2*221.812 + y1*236.575", + "# Using linear interpolation,", + "T2 = 510 +((520-510)/(LHSat520K-LHSat510K))*(RHS-LHSat510K)", + "# Result ", + "print 'The temperature at the nozzle exit in K is: ',T2", + "", + "# Part(b)", + "# From table A-23", + "sbarO2T2 = 221.667 # in kj/kmol.K", + "sbarO2T1 = 231.358 # in kj/kmol.K", + "sbarCO2T2 = 236.365 # in kj/kmol.K", + "sbarCO2T1 = 250.663 # in kj/kmol.K", + "# Calculations", + "deltasbarO2 = sbarO2T2-sbarO2T1-8.314*math.log(p2/p1) # in kj/kmol.K", + "deltasbarCO2 = sbarCO2T2-sbarCO2T1-8.314*math.log(p2/p1) # in kj/kmol.K", + "# Results", + "print 'The entropy changes of the CO2 from inlet to exit, in KJ/Kmol.K is: ',deltasbarCO2", + "print 'The entropy change of the O2 from inlet to the exit in kj/kmol.k is: ',deltasbarO2", + "", + "# Part(c)", + "# From table A-23, the molar specific enthalpies of O2 and CO2 are", + "h1barO2 = 21184.0", + "h2barO2 = 15320.0", + "h1barCO2 = 27125.0", + "h2barCO2 = 18468.0", + "# Calculations", + "M = y1*44.0 + y2*32.0 # apparent molecular weight of the mixture in kg/kmol", + "deltah = (1.0/M)*(y2*(h1barO2-h2barO2) + y1*(h1barCO2-h2barCO2))", + "V2 = math.sqrt(V1**2+ 2*deltah*10**3)", + "# Result", + "print 'The exit velocity in m/s is: ',V2" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The temperature at the nozzle exit in K is: 517.549113444", + "The entropy changes of the CO2 from inlet to exit, in KJ/Kmol.K is: -0.917133196023", + "The entropy change of the O2 from inlet to the exit in kj/kmol.k is: 3.68986680398", + "The exit velocity in m/s is: 623.983296128" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 12.5 Page no-574" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine final temperature of the mixture, final pressure of the mixture, amount of entropy produced in the mixing process", + "", + "# Given:-", + "nN2 = 0.79 # initial moles of nitrogen in kmol", + "pN2 = 2.0 # initial pressure of nitrogen in bars", + "TN2 = 250.0 # initial temperature of nitrogen in kelvin", + "nO2 = 0.21 # initial moles of oxygen in kmol", + "pO2 = 1.0 # initial pressure of oxygen in bars", + "TO2 = 300.0 # initial temperature of oxygen in kelvin", + "", + "# Part(a)", + "MN2 = 28.01 # molar mass of nitrogen in kg/kmol", + "MO2 = 32.0 # molar mass of oxygen in kg/kmol", + "# Calculations", + "# With the help of table A-20", + "cvbarN2 = MN2*0.743 # in kj/kmol.K", + "cvbarO2 = MO2*0.656 # in kj/kmol.K", + "T2 = (nN2*cvbarN2*TN2+nO2*cvbarO2*TO2)/(nN2*cvbarN2+nO2*cvbarO2)", + "# Result", + "print 'The final temperature of the mixture in kelvin is: ',T2", + "", + "# Part(b)", + "# Calculation", + "p2 = ((nN2+nO2)*T2)/(nN2*TN2/pN2 + nO2*TO2/pO2)", + "# Result", + "print 'The final pressure of the mixture in bar is: ',p2", + "", + "# Part(c)", + "Rbar = 8.314 # universal gas constant", + "# Calculations", + "import math", + "cpbarN2 = cvbarN2 + Rbar", + "cpbarO2 = cvbarO2 + Rbar", + "yN2 = nN2/(nN2+nO2) # mole fraction of N2", + "yO2 = nO2/(nN2+nO2) # mole fraction of O2", + "sigma = nN2*(cpbarN2*math.log(T2/TN2)-Rbar*math.log(yN2*p2/pN2)) + nO2*(cpbarO2*math.log(T2/TO2)-Rbar*math.log(yO2*p2/pO2))", + "# Result", + "print 'The amount of entropy produced in the mixing process, in kJ/K is: ',sigma" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The final temperature of the mixture in kelvin is: 260.571840521", + "The final pressure of the mixture in bar is: 1.61095419179", + "The amount of entropy produced in the mixing process, in kJ/K is: 4.94715526048" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 12.6 Page no-577" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine mass flow rates of the dry air and oxygen, mole fractions of the dry air and oxygen in the exiting mixture, time rate of entropy production", + "", + "# Given:-", + "T1 = 32.0 # temperature of dry air in degree celcius", + "p1 = 1.0 # pressure of dry air in bar", + "AV1 = 100.0 # volume rate of dry air in m^3/min", + "T2 = 127.0 # temperature of oxygen stream in degree celcius", + "p2 = 1.0 # pressure of oxygen stream in bar", + "T3 = 47.0 # temperature of mixed stream in degree celcius", + "p3 = 1.0 # pressure of mixed stream in bar", + "", + "# Part(a)", + "Rbar = 8314.0 # universal gas constant", + "Ma = 28.97 # molar mass of air", + "Mo = 32.0 # molar mass of oxygen", + "# From table A-22 and A-23", + "haT3 = 320.29 # in kj/kg", + "haT1 = 305.22 # in kj/kg", + "hnotT2 = 11711.0 # in kj/kmol", + "hnotT1 = 9325.0 # in kj/kmol", + "", + "# Calculations", + "va1 = (Rbar/Ma)*(T1+273.0)/(p1*10**5) # specific volume of air in m^3/kg", + "ma1dot = AV1/va1 # mass flow rate of dry air in kg/min", + "modot = ma1dot*(haT3-haT1)/((1/Mo)*(hnotT2-hnotT1)) # in kg/min", + "# Results", + "print 'The mass flow rate of dry air in kg/min is: ',ma1dot", + "print 'The mass flow rate of oxygen in kg/min is: ',modot", + "", + "# Part(b)", + "nadot = ma1dot/Ma # molar flow rate of air in kmol/min", + "nodot = modot/Mo # molar flow rate of oxygen in kmol/min", + "ya = nadot/(nadot+nodot) # mole fraction of air", + "yo = nodot/(nadot+nodot) # mole fraction of oxygen", + "# Results", + "print 'The mole fraction of dry air in the exiting mixture is: ',ya", + "print 'The mole fraction of dry oxygen in the exiting mixture is: ',yo", + "", + "# Part(c)", + "# With the help of tables A-22 and A-23", + "sanotT3 = 1.7669 # in kj/kg.K", + "sanotT1 = 1.71865 # in kj/kg.K", + "sbarT3 = 207.112 # in kj/kmol.K", + "sbarT2 = 213.765 # in kj/kmol.K", + "# Calculations", + "import math", + "sigmadot = ma1dot*(sanotT3-sanotT1-(8.314/Ma)*math.log(ya))+ (modot/Mo)*(sbarT3-sbarT2-8.314*math.log(yo))", + "# Result", + "print 'The time rate of entropy production, in kJ/K . min is: ',sigmadot" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The mass flow rate of dry air in kg/min is: 114.245377144", + "The mass flow rate of oxygen in kg/min is: 23.0903984383", + "The mole fraction of dry air in the exiting mixture is: 0.845326536426", + "The mole fraction of dry oxygen in the exiting mixture is: 0.154673463574", + "The time rate of entropy production, in kJ/K . min is: 17.4180498088" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 12.7 Page no-584" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine initial humidity ratio, dew point temperature, amount of water vapor that condenses.", + "", + "# Given:-", + "m =1.0 # mass of sample in kg", + "T1 = 21.0 # initial temperature in degree celcius", + "psi1 = 0.7 # initial relative humidity", + "T2 = 5.0 # final temperature in degree celcius", + "", + "# Part(a)", + "# From table A-2", + "pg = 0.02487 # in bar", + "# Calculations ", + "pv1 = psi1*pg # partial pressure of water vapor in bar", + "omega1 = 0.622*(0.2542)/(14.7-0.2542)", + "# Result ", + "print 'the initial humidity ratio is: ',omega1", + "", + "# Part(b)", + "# The dew point temperature is the saturation temperature corresponding to the partial pressure, pv1. Interpolation in Table A-2 gives", + "T = 15.3 # the dew point temperature in degree celcius", + "# Result", + "print 'The dew point temperature in degree celcius is: ',T", + "", + "# Part(c)", + "# The partial pressure of the water vapor remaining in the system at the final state is the saturation pressure corresponding to 5\u0004C:", + "# Calculations", + "mv1 = 1/((1/omega1)+1) # initial amount of water vapor in the sample in kg", + "ma = m-mv1 # mass of dry air present in kg", + "pg = 0.00872 # in bar", + "omega2 = 0.622*(pg)/(1.01325-pg) # humidity ratio after cooling", + "mv2 = omega2*ma # The mass of the water vapor present at the final state", + "mw = mv1-mv2", + "", + "# Result", + "print 'The amount of water vapor that condenses, in kg. is: ',mw" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the initial humidity ratio is: 0.0109452159105", + "The dew point temperature in degree celcius is: 15.3", + "The amount of water vapor that condenses, in kg. is: 0.00548579192846" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 12.8 Page no-586" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine dew point temperature corresponding to the initial state, the temperature at which condensation actually begins, the amount of water condensed.", + "", + "# Given:-", + "V = 35.0 # volume of the vessel in m^3", + "p1 = 1.5 # in bar", + "T1 = 120.0 # in degree celcius", + "psi1 = 0.1 ", + "T2 = 22.0 # in degree celcius", + "", + "# Part(a)", + "# The dew point temperature at the initial state is the saturation temperature corresponding to the partial pressure pv1. With the given relative humidity and the saturation pressure at 120\u0004C from Table A-2", + "pg1 = 1.985", + "# Interpolating in Table A-2 gives the dew point temperature as", + "T = 60.0 # in degree celcius", + "# Calculation", + "pv1 = psi1*pg1 # partial pressure in bar", + "# Result", + "print 'The dew point temperature corresponding to the initial state, in degee celcius is: ',T", + "", + "# Part(b)", + "Rbar = 8314.0 # universal gas constant", + "Mv = 18.0 # molar mass of vapor in kj/kmol", + "# Interpolation in Table A-2", + "Tdash = 56.0 # in degrees", + "vv1 =((Rbar/Mv)*(T1+273))/(pv1*10**5) # the specific volume of the vapor at state 1 in m^3/kg", + "# Result", + "print 'The temperature at which condensation actually begins in degree celcius is: ',Tdash", + "", + "# Part(c)", + "# From table ", + "vf2 = 1.0022e-3", + "vg2 = 51.447", + "vv2 = vv1 # specific volume at final state", + "# Calculations", + "mv1 = V/vv1 # initial amount of water vapor present in kg", + "x2 = (vv2-vf2)/(vg2-vf2) # quality", + "mv2 = x2*mv1 # the mass of the water vapor contained in the system at the final state", + "mw2 = mv1-mv2", + "# Result", + "print 'The amount of water condense in kg is: ',mw2" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The dew point temperature corresponding to the initial state, in degee celcius is: 60.0", + "The temperature at which condensation actually begins in degree celcius is: 56.0", + "The amount of water condense in kg is: 3.14710226995" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 12.9 Page no-587" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the heat transfer during the process", + "", + "# Given:-", + "V = 35.0 # volume of vessel in m^3", + "p1 = 1.5 # initial pressure in bar", + "T1 = 120.0 # initial temperature in degree celcius", + "psi = 0.1", + "T2 = 22.0 # in degree celcius", + "Rbar = 8314.0 # universal gas constant", + "Ma = 28.97 # molar mass of air", + "pv1 = 0.1985 # in bar, from example 12.8", + "mv2 = 0.681 # in kg, from examples 12.8", + "mv1 = 3.827 # in kg, from example 12.8", + "mw2 = 3.146 # in kg, from example 12.8", + "# evaluating internal energies of dry air and water from Tables A-22 and A-2, respectively", + "ua2 = 210.49 # in kj/kg", + "ua1 = 281.1 # in kj/kg", + "ug2 = 2405.7 # in kj/kg", + "uf2 = 92.32 # in kj/kg", + "ug1 = 2529.3 # in kj/kg", + "", + "# Calculations", + "ma =( ((p1-pv1)*10**5)*V)/((Rbar/Ma)*(T1+273)) # mass of dry air in kg", + "Q = ma*(ua2-ua1) + mv2*ug2 + mw2*uf2 - mv1*ug1", + "", + "# Result", + "print 'The heat transfer during the process, in kJ is: ',Q" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The heat transfer during the process, in kJ is: -10602.7454057" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 12.10 Page no-595" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine rate of heat transfer,the relative humidity at the exit. Changes in kinetic and potential energy can be ignored.", + "", + "# Given :-", + "AV1 = 150.0 # entry volumetric flow rate in m^3/min", + "T1 = 10.0 # entry temperature in degree celcius", + "psi1 = 0.8 ", + "T2 = 30.0 # exit temperature in degree celcius", + "p = 1.0 # in bar", + "", + "# Part(a)", + "Rbar = 8314.0 # universal gas constant", + "Ma = 28.97 # molar mass of air", + "# The specific enthalpies of the dry air are obtained from Table A-22 at the inlet and exit temperatures T1 and T2, respectively:", + "ha1 = 283.1 # in kj/kg", + "ha2 = 303.2 # in kj/kg", + "# The specific enthalpies of the water vapor are found using hv \u0004 hg and data from Table A-2 at T1 and T2, respectively:", + "hv1 = 2519.8 # in kj/kg", + "hv2 = 2556.3 # in kj/kg", + "# From table A-2", + "pg1 = 0.01228 # in bar", + "# Calculations", + "pv1 = psi1*pg1 # the partial pressure of the water vapor in bar", + "pa1 = p-pv1", + "va1 = (Rbar/Ma)*(T1+273)/(pa1*10**5) # specific volume of the dry air in m^3/kg", + "madot = AV1/va1 # mass flow rate of the dry air in kg/min", + "omega = 0.622*(pv1/(p-pv1)) # humidity ratio", + "Qcvdot = madot*((ha2-ha1)+omega*(hv2-hv1)) # in kj/min", + "# Result", + "print 'Rate of heat transfer, in kJ/min is: ',Qcvdot", + "", + "# Part(b)", + "# From Table A-2 at 30\u0004C", + "pg2 = 0.04246 # in bar", + "# Calculations", + "pv2 = pv1", + "psi2 = pv2/pg2 # relative humidity at the exit", + "# Result", + "print 'The relative humidity at the exit is: ',psi2" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Rate of heat transfer, in kJ/min is: 3716.99116097", + "The relative humidity at the exit is: 0.231370701837" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 12.11 Page no-600" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the mass flow rate of the dry air, the rate at which water is condensed, in kg per kg of dry air flowing through the control volume, the required refrigerating capacity", + "", + "# Given:-", + "T1 = 30.0 # in degree celcius", + "AV1 = 280.0 # in m^3/min", + "psi1 = 0.5 # relative humidity at the inlet", + "T2 = 10.0 # in degree celcius", + "p = 1.013 # pressure in bar", + "", + "# Part(a)", + "# From table A-2", + "pg1 = 0.04246 # in bar", + "Rbar = 8314 # universal gas constant", + "Ma = 28.97 # molar mass of air", + "# Calculations", + "pv1 = psi1*pg1 # in bar", + "pa1 = p-pv1 # partial pressure of the dry air in bar", + "madot = AV1/((Rbar/Ma)*((T1+273)/(pa1*10**5))) # common mass flow rate of the dry air in kg/min", + "# Result", + "print 'The mass flow rate of the dry air in kg/min is: ',madot", + "", + "# Part(b)", + "# From table A-2", + "pv2 = 0.01228 # in bar", + "# Calculations", + "omega1 = 0.622*(pv1/(p-pv1))", + "omega2 = 0.622*(pv2/(p-pv2))", + "mwdotbymadot = omega1-omega2 ", + "# Result", + "print 'The rate at which water is condensed, in kg per kg of dry air flowing through the control volume is: ',mwdotbymadot", + "", + "# Part(c)", + "# From table A-2 and A-22", + "ha2 = 283.1 # in kg/kj", + "ha1 = 303.2 # in kg/kj", + "hg1 = 2556.3 # in kg/kj", + "hg2 = 2519.8 # in kg/kj", + "hf2 = 42.01 # in kg/kj", + "# Calculations", + "Qcvdot = madot*((ha2-ha1)-omega1*hg1+omega2*hg2+(omega1-omega2)*hf2) # in kj/min", + "# Result", + "print 'The required refrigerating capacity, in tons is: ',Qcvdot/211" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The mass flow rate of the dry air in kg/min is: 319.348473885", + "The rate at which water is condensed, in kg per kg of dry air flowing through the control volume is: 0.00568197500137", + "The required refrigerating capacity, in tons is: -52.4650572692" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 12.12 Page no-602" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine at the exit (a) the humidity ratio and (b) the temperature", + "", + "# Given:-", + "T1 = 22.0 # entry temperature of moist air in degree celcius", + "Twb = 9.0 # wet-bulb temperature of entering moist air in degree celcius", + "madot = 90.0 # mass flow rate of dry air in kg/min", + "Tst = 110.0 # temperature of injected saturated water vapor in degree celcius", + "mstdot = 52.0 # mass flow rate of injected saturated water vapor in kg/h", + "p = 1.0 # pressure in bar", + "", + "# Part(a)", + "# By inspection of the psychrometric chart", + "omega1 = 0.002", + "# Calculation", + "omega2 = omega1 + mstdot/(madot*60)", + "# Result", + "print 'The humidity ratio at the exit is: ',omega2", + "", + "# Part(b)", + "# The steady-state form of the energy rate balance can be rearranged as", + "# (ha + omega*hg)2 = (ha + omega*hg)1 + (omega2-omega1)*hg3", + "# On putting values in the above equation from tables and figures, temperature at the exit can then be read directly from the chart", + "T2 = 23.5 # in degree celcius", + "# Result", + "print 'The temperature at the exit in degree celcius is: ',T2" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The humidity ratio at the exit is: 0.0116296296296", + "The temperature at the exit in degree celcius is: 23.5" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 12.13 Page no-604" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the mass flow rate of the water to the soaked pad, the relative humidity of the moist air at the exit to the evaporative cooler.", + "", + "# Given:-", + "T1 = 38.0 # temperature of entering air in degree celcius", + "psi1 = 0.1 # relative humidity of entering air ", + "AV1 = 140.0 # volumetric flow rate of entering air in m^3/min", + "Tw = 21.0 # temperature of added water in degree celcius", + "T2 = 21.0 # temperature of exiting moist air in degree celcius", + "p = 1.0 # pressure in atm", + "", + "# Part(a)", + "# From table A-2", + "pg1 = 0.066 # in bar", + "# The specific volume of the dry air can be evaluated from the ideal gas equation of state. The result is", + "va1 = .887 # in m^3/kg", + "cpa = 1.005", + "# From table A-2", + "hf = 88.14", + "hg1 = 2570.7", + "hg2 = 2539.94", + "# Calculations", + "pv1 = psi1*pg1 # the partial pressure of the moist air entering the control volume in bar", + "omega1 = 0.622*(pv1/(p*1.01325-pv1))", + "omega2 = (cpa*(T1-T2)+omega1*(hg1-hf))/(hg2-hf)", + "madot = AV1/va1 # mass flow rate of the dry air in kg/min", + "mwdot = madot*60*(omega2-omega1) # in kg/h", + "# Result", + "print 'The mass flow rate of the water to the soaked pad in kj/h is: ',mwdot", + "", + "# Part(b)", + "pv2 = (omega2*p*1.01325)/(omega2+0.622) # in bars", + "# At 21\u0004C, the saturation pressure is", + "pg2 = 0.02487", + "psi2 = pv2/pg2", + "# Result", + "print 'The relative humidity of the moist air at the exit to the evaporative cooler is: ',psi2" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The mass flow rate of the water to the soaked pad in kj/h is: 66.4756578168", + "The relative humidity of the moist air at the exit to the evaporative cooler is: 0.714165693403" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 12.14 Page no-607" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine (a) the humidity ratio and (b) the temperature of the exiting mixed stream, in \u0004C.", + "", + "# Given:-", + "AV1 = 142.0 # in m^3/min", + "T1 = 5.0 # in degree celcius", + "omega1 = 0.002", + "AV2 = 425.0 # in m^3/min", + "T2 = 24.0 # in degree celcius", + "psi2 = 0.5", + "p = 1.0 # in bar", + "", + "", + "# Part(a)", + "# From the psychrometric chart, Fig. A-9.", + "va1 = 0.79 # in m^3/kg", + "va2 = 0.855 # in m^3/kg", + "omega2 = 0.0094", + "# Calculations", + "ma1dot = AV1/va1 # in kg/min", + "ma2dot = AV2 /va2 # in kg/min", + "omega3 = (omega1*ma1dot+omega2*ma2dot)/(ma1dot + ma2dot) ", + "# Result", + "print 'The humidity ratio is: ',omega3", + "", + "# Part(b)", + "# Reduction of the energy rate balance gives", + "# (ha + omega*hv)3 = [ma1dot*(ha + omega*hv)1 + ma2dot*(ha + omega*hv)2]/(ma1dot+ma2dot)", + "# With (ha + omega*hv)1 = 10kj/kg and (ha + omega*hv)2 = 47.8kj/kg from figure A-9", + "LHS = (ma1dot*10+ma2dot*47.8)/(ma1dot + ma2dot)", + "", + "# This value for the enthalpy of the moist air at the exit, together with the previously determined value for omega3, fixes the state of the exiting moist air. From inspection of Fig. A-9,", + "T3 = 19.0 # in degree celcius", + "# Result", + "print 'The temperature of the exiting mixed stream in degree celcius is: ',T3" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The humidity ratio is: 0.0074347493219", + "The temperature of the exiting mixed stream in degree celcius is: 19.0" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 12.15 Page no-610" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the mass flow rates of the dry air and the makeup water", + "", + "# Given:-", + "T1 = 38.0 # in degree celcius", + "m1dot = 4.5e7 # in kg/h", + "T2 = 30.0 # in degree celcius", + "m2dot = 4.5e7 # in kg/h", + "T3 = 25.0 # in degree celcius", + "psi3 = 0.35", + "T4 = 35.0 # in degree celcius", + "psi4 = 0.9", + "T5 = 20.0 # in degree celcius", + "", + "# Analysis", + "# The humidity ratios omega3 and omega4 can be determined using the partial pressure of the water vapor obtained with the respective relative humidity", + "omega3 =0.00688", + "omega4 = 0.0327", + "# From tables A-2 and A-22", + "hf1 = 159.21", + "hf2 = 125.79", + "ha4 = 308.2", + "ha3 = 298.2", + "hg4 = 2565.3", + "hg3 = 2547.2", + "hf5 = 83.96", + "# Calculations", + "madot = (m1dot*(hf1-hf2))/(ha4-ha3+omega4*hg4-omega3*hg3-(omega4-omega3)*hf5) # in kg/h", + "m5dot = madot*(omega4-omega3) # in kg/h", + "# Results", + "print 'The mass flow rate of dry air in kg/h is: ',madot", + "print 'The mass flow rate of makeup water in kg/h is: ',m5dot" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The mass flow rate of dry air in kg/h is: 20270180.9849", + "The mass flow rate of makeup water in kg/h is: 523376.07303" + ] + } + ], + "prompt_number": 15 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_13_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_13_2.ipynb new file mode 100644 index 00000000..1be1f14a --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_13_2.ipynb @@ -0,0 +1,951 @@ +{ + "metadata": { + "name": "Chapter 13" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 13 :- Reacting Mixtures and Combustion" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.1 Page no-624" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the air\u2013fuel ratio on both a molar and mass basis for the complete combustion of octane, C8H18, with (a) the theoretical amount of air, ", + "# (b) 150% theoretical air (50% excess air).", + "", + "# Given:-", + "# Part(a)", + "# The combustion equation can be written in the form of ", + "# C8H18 + a(O2 + 3.76N2) --> b CO2 + c H2O + d N2", + "# Using conservation of mass principle", + "b = 8.00", + "c = 18.00/2.00", + "a = (2.00*b+c)/2.00", + "d = 3.76*a", + "", + "# The air\u2013fuel ratio on a molar basis is", + "AFbar = a*(1+3.76)/1.00", + "Ma = 28.97 # molar mass of air", + "MC8H18 = 114.22 # molar mass of C8H18", + "# The air\u2013fuel ratio expressed on a mass basis is", + "AF = AFbar*(Ma/MC8H18)", + "", + "# Result", + "print '-> The air\u2013fuel ratio on a molar basis is: '", + "print AFbar", + "print '-> The air\u2013fuel ratio expressed on a mass basis is: '", + "print round(AF,2)", + "", + "# Part(b)", + "# For 150% theoretical air, the chemical equation for complete combustion takes the form", + "# c8H18 + 1.5*12.5*(O2 + 3.76N2) ---> b CO2 + c H2O + d N2 + e O2", + "# Using conservation of mass", + "# Calculations", + "b = 8.00", + "c =18.00/2.00", + "e = (1.5*12.5*2 - c -2*b)/2.00", + "d = 1.5*12.5*3.76", + "# The air\u2013fuel ratio on a molar basis is", + "AFbar = 1.5*12.5*(1+3.76)/1", + "# The air\u2013fuel ratio expressed on a mass basis is", + "AF = AFbar*(Ma/MC8H18)", + "", + "# Results", + "print '-> The air\u2013fuel ratio on a molar basis is: '", + "print AFbar", + "print '-> The air\u2013fuel ratio expressed on a mass basis is: '", + "print round(AF,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The air\u2013fuel ratio on a molar basis is: ", + "59.5", + "-> The air\u2013fuel ratio expressed on a mass basis is: ", + "15.09", + "-> The air\u2013fuel ratio on a molar basis is: ", + "89.25", + "-> The air\u2013fuel ratio expressed on a mass basis is: ", + "22.64" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.2 Page no-626" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine (a) the air\u2013fuel ratio on both a molar and a mass basis, (b) the percent theoretical air, (c) the dew point temperature of the products", + "", + "# Given:-", + "# Part(a)", + "# The chemical equation", + "# a CH4 + b*(O2 + 3.76N2) ---> 9.7CO2 + .5CO + 2.95O2 + 86.85N2 + cH2O", + "# Calculations", + "# Applying conservation of mass ", + "a = 9.7 + 0.5", + "c = 2.0*a", + "b = ((9.7)*(2.0)+(0.5)+((2.0)*(2.95))+c)/2.00", + "Ma = 28.97 # molar mass of air", + "MCH4 = 16.04 # molar mass of methane", + "# On a molar basis, the air\u2013fuel ratio is", + "AFbar = (b*(1+3.76))/a", + "# On a mass basis", + "AF = AFbar*(Ma/MCH4)", + "", + "# Results", + "print '-> The air-fuel ratio on a molar basis is: '", + "print AFbar", + "print '-> The air-fuel ratio on a mass basis is: '", + "print round(AF,2)", + "", + "# Part(b)", + "# The balanced chemical equation for the complete combustion of methane with the theoretical amount of air is", + "# CH4 + 2(O2 + 3.76N2) ---> CO2 + 2H2O + 7.52N2", + "# The theoretical air\u2013fuel ratio on a molar basis is", + "# Calculations", + "AFbartheo = 2.00*(1+3.76)/1.0", + "# The percent theoretical air is", + "Ta = AFbar/AFbartheo", + "# Result", + "print '-> The percent theoretical air is: '", + "print round(Ta*100,2)", + "", + "# Ppart(c)", + "# The mole fraction of the water vapor is", + "yv = 20.4/(100+20.4)", + "pv = yv*1", + "# Interpolating in Table A-2,", + "T = 57 # in degree celcius", + "# Result", + "print '-> The dew point temperature of the products, in \u0004C, if the mixture were cooled at 1 atm is: '", + "print T" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The air-fuel ratio on a molar basis is: ", + "10.78", + "-> The air-fuel ratio on a mass basis is: ", + "19.47", + "-> The percent theoretical air is: ", + "113.24", + "-> The dew point temperature of the products, in \u0004C, if the mixture were cooled at 1 atm is: ", + "57" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 13.3 Page no-628" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the air\u2013fuel ratio on a molar basis, the amount of products, the percent of theoretical air.", + "", + "# Given:-", + "# Part(a)", + "# The chemical equation", + "# (.8062CH4 + .0541C2H6 + .0187C3H8 + .0160C4H10 + .1050N2) + a(O2 + 3.76N2) ----> b(.078CO2 + .002CO + .07O2 + .85N2) + c H2O", + "# Calculations", + "# Using mass conservation", + "b = (0.8062 + 2*.0541 + 3*.0187 + 4*.0160)/(.078 + .002)", + "c = (4*.8062 + 6*.0541 + 8*.0187 + 10*.0160)/2", + "a = (b*(2*.078+.002+2*.07) + c)/2", + "# The air\u2013fuel ratio on a molar basis is", + "AFbar = a*(1+3.76)/1", + "# Result", + "print '-> The air-fuel ratio on a molar mass basis is: '", + "print round(AFbar,2)", + "", + "# Part(b)", + "p = 1.0 # in bar", + "V = 100.0 # in m^3", + "Rbar = 8314.0 # in N.m/kmol.K", + "T = 300.0 # in kelvin", + "# Calculations", + "# The amount of fuel in kmol", + "nF = (p*10**5*V)/(Rbar*T)", + "# The amount of product mixture that would be formed from 100 m3 of fuel mixture is", + "n = nF*(b+c)", + "# Result", + "print '-> The amount of products in kmol that would be formed from 100 m3 of fuel mixture at 300 K and 1 bar is: '", + "print round(n,2)", + "", + "# Part(c)", + "# The balanced chemical equation for the complete combustion of the fuel mixture with the theoretical amount of air is", + "# (10.8062CH4 + 0.0541C2H6 + 0.0187C3H8 + 0.0160C4H10 + 0.1050N2) + 2(O2 + 3.76N2) ----> 1.0345CO2 + 1.93H2O + 7.625N2", + "# Calculations", + "# The theoretical air\u2013fuel ratio on a molar basis is", + "AFbartheo = 2*(1+3.76)/1", + "# The percent theoretical air is", + "Ta = AFbar/AFbartheo", + "# Result", + "print '-> The percent of theoretical air is: '", + "print round(Ta*100,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The air-fuel ratio on a molar mass basis is: ", + "13.76", + "-> The amount of products in kmol that would be formed from 100 m3 of fuel mixture at 300 K and 1 bar is: ", + "59.58", + "-> The percent of theoretical air is: ", + "144.58" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.4 Page no-633" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the rate of heat transfer from the engine, neglecting kinetic and potential energy effects.", + "", + "# Given:-", + "# The balanced chemical equation for complete combustion with the theoretical amount of air is obtained from the solution to Example 13.1 as", + "# C8H18 +12.5O2 + 47N2 -----> 8CO2 + 9H2O + 47N2", + "# From tabel A-25", + "hRbar = -249910 # in kj/kmol", + "mfdot = 1.8e-3 # mass flow rate of liquid octane in kg/s", + "M = 114.22 # molar mass of octane", + "Wcvdot = 37 # power output of the engine in kw", + "", + "# Calculations", + "# With enthalpy of formation values for CO2 and H2O(g) from Table A-25, and enthalpy values for N2, H2O, and CO2 from Table A-23", + "hpbar = 8*(-393520 + (36876 - 9364)) + 9*(-241820 + (31429 - 9904)) + 47*((26568 - 8669))", + "nFdot = mfdot/M # molar flow rate of the fuel in kmol/s", + "Qcvdot = Wcvdot + nFdot*(hpbar-hRbar) # in kw", + "", + "# Result", + "print '-> The rate of heat transfer from the engine, in kW is: '", + "print round(Qcvdot,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rate of heat transfer from the engine, in kW is: ", + "-23.19" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 13.5 Page no-635" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the rate of heat transfer from the combustion chamber ", + "", + "# Given:-", + "# When expressed on a per mole of fuel basis, the balanced chemical equation obtained in the solution to Example 13.2 takes the form", + "# CH4 + 2.265O2 + 8.515N2 ------> .951CO2 + .049CO + .289O2 + 8.515N2 + 2H2O", + "cpbar = 38.00 # specific heat in KJ/kmol.K", + "# From table A-25", + "hfnotbar = -74850.00 # enthalpy of formation for methane", + "# From table A-23", + "deltahbarO2 = 14770-8682", + "deltahbarN2 = 14581-8669", + "", + "# Calculations", + "hRbar = hfnotbar + cpbar*(400-298) + 2.265*deltahbarO2 + 8.515*deltahbarN2 # in kj/kmol", + "# With enthalpy of formation values for CO2, CO, and H2O(g) from Table A-25 and enthalpy values from Table A-23", + "hpbar = .951*(-393520 + (88806 - 9364)) + .049*(-110530 + (58191 - 8669)) + .289*(60371 - 8682) + 8.515*(57651 - 8669) + 2*(-241820 + (72513 - 9904))", + "Qcvdot = hpbar - hRbar # in kj/kmol", + "", + "# Result", + "print '-> The rate of heat transfer from the combustion chamber in kJ per kmol of fuel is: '", + "print round(Qcvdot,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rate of heat transfer from the combustion chamber in kJ per kmol of fuel is: ", + "-221235.72" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.6 Page no-637" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine (a) the amount of heat transfer, in kJ, and (b) the final pressure, in atm.", + "", + "# Given:-", + "nCH4 = 1.00 # moles of methane in kmol", + "nO2 = 2.00 # moles of oxygen in kmol", + "T1 = 25.00 # in degree celcius", + "p1 = 1.00 # in atm", + "T2 = 900.00 # in kelvin", + "Rbar = 8.314 # universal gas constant", + "# The chemical reaction equation for the complete combustion of methane with oxygen is", + "# CH4 + 2O2 ----> CO2 + 2H2O", + "", + "# Part(a)", + "# with enthalpy of formation values from table A-25", + "hfbarCO2 = -393520", + "hfbarH2O = -241820", + "hfbarCH4 = -74850", + "# Calculations", + "# with enthalpy values from table A-23", + "deltahbarCO2 = 37405-9364", + "deltahbarH2O = 31828-9904", + "Q = ((hfbarCO2 + deltahbarCO2)+2*(hfbarH2O + deltahbarH2O) - hfbarCH4) + 3*Rbar*(T1+273-T2)", + "# Result", + "print '-> The amount of heat transfer in kJ is: '", + "print round(Q,2)", + "", + "# Part(b)", + "p2 = p1*(T2/(T1+273)) # in atm", + "# Result", + "print '-> The final pressure in atm is: '", + "print round(p2,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The amount of heat transfer in kJ is: ", + "-745436.08", + "-> The final pressure in atm is: ", + "3.02" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.7 Page no-639" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculate the enthalpy of combustion ", + "# (a) at 25\u0004C, 1 atm with liquid water in the products ", + "# (b) at 25\u0004C, 1 atm with water vapor in the products", + "# (c) Repeat part (b) at 1000 K, 1 atm", + "", + "# Given:-", + "# The combustion equation is", + "# CH4 + 2O2 + 7.52N2 ----> CO2 + 2H2O + 7.52N2", + "", + "# Part(a)", + "# With enthalpy of formation values from Table A-25", + "hfbarCO2 = -393520 # in kj/kmol", + "hfbarH2O = -285830 # in kj/kmol", + "hfbarCH4 = -74850 # in kj/kmol", + "M = 16.04 # molar mass of CH4 in kg/kmol", + "# Calculations", + "hRPbar = hfbarCO2 + 2*hfbarH2O - hfbarCH4 # in kj/kmol", + "hRP = hRPbar/M # in kj/kg", + "# Result", + "print '-> Part(a)the enthalpy of combustion of gaseous methane, fuel is: ',hRP,'kJ/kg.'", + "", + "# Part(b)", + "hfbarCO2 = -393520 # in kj/kmol", + "hfbarH2O = -241820 # in kj/kmol", + "hfbarCH4 = -74850 # in kj/kmol", + "# Calculations", + "hRPbar = hfbarCO2 + 2*hfbarH2O - hfbarCH4 # in kj/kmol", + "hRP = hRPbar/M # in kj/kg", + "# Result", + "print '-> Part(b)the enthalpy of combustion of gaseous methane, fuel is: ',hRP,'kJ/kg'", + "", + "# Part(c)", + "# From table A-23", + "deltahbarO2 = 31389-8682 # in kj/kmol", + "deltahbarH2O = 35882-9904 # in kj/kmol", + "deltahbarCO2 = 42769-9364 # in kj/kmol", + "", + "# Using table A-21", + "# Calculations", + "# function cpbar = f(T)", + "T=298 # in kelvin", + "from scipy import integrate", + "cpbar = lambda T: (3.826 - (3.979e-3)*T + 24.558e-6*T**2 - 22.733e-9*T**3 + 6.963e-12*T**4)*8.314", + "deltahbarCH4 = integrate.quad(cpbar,298,1000)", + "var = deltahbarCH4[0]", + "", + "hRPbar = hRPbar + (deltahbarCO2 + 2*deltahbarH2O - var -2*deltahbarO2)", + "hRP = hRPbar/M # in kj/kg", + "# Result", + "print '-> Part(c)the enthalpy of combustion of gaseous methane, per kg of fuel is ',hRP,'kJ/kg'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Part(a)the enthalpy of combustion of gaseous methane, fuel is: -55506.8578554 kJ/kg.", + "-> Part(b)the enthalpy of combustion of gaseous methane, fuel is: -50019.3266833 kJ/kg", + "-> Part(c)the enthalpy of combustion of gaseous methane, per kg of fuel is -49909.7030379 kJ/kg" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.8 Page no-643" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the temperature (a) the theoretical amount of air, (b) 400% theoretical air.", + "", + "# Given:-", + "# Part(a)", + "# For combustion of liquid octane with the theoretical amount of air, the chemical equation is", + "# C8H18(l) + 12.5 O2 + 47N2 -------> 8 CO2 + 9 H2O(g) + 47N2", + "# with enthalpy of formation data from Table A-25", + "hfbarC8H18 = -249910.0 # in kj/kmol", + "hfbarCO2 = -393520.0", + "hfbarH2O = -241820.0", + "", + "# Calculations", + "RHS = hfbarC8H18 -(8*hfbarCO2 + 9*hfbarH2O) # in kj/kmol", + "# at temperature 2400k", + "LHS1 = 5089337.0 # in kj/kmol", + "# at temperature 2350 k", + "LHS2 = 4955163.0 # in kj/kmol", + "# Interpolation between these temperatures gives", + "Tp = 2400.00 + ((2400.0-2350.0)/(LHS1-LHS2))*(RHS-LHS1)", + "# Result", + "print '-> The temperature in kelvin with theoretical amount of air is: '", + "print round(Tp,2)", + "", + "# Part(b)", + "# For complete combustion of liquid octane with 400% theoretical air, the chemical equation is", + "# C8H18(l) + 50O2 + 188N2 --------> 8CO2 + 9H2O + 37.5O2 + 188N2", + "", + "# Proceeding iteratively as part(a)", + "Tp = 962 # in kelvin", + "", + "# Result", + "print '-> The temperature in kelvin using 400 percent theoretical air is: '", + "print round(Tp,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The temperature in kelvin with theoretical amount of air is: ", + "2394.52", + "-> The temperature in kelvin using 400 percent theoretical air is: ", + "962.0" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.9 Page no-649" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the rate of entropy production (a) the theoretical amount of air, (b) 400% theoretical air.", + "", + "# Given:-", + "import math", + "# Part(a)", + "Tp = 2395 # in kelvin, from example 13.8", + "# For combustion of liquid octane with the theoretical amount of air, the chemical equation is", + "# C8H18(l) + 12.5O2 + 47N2 ----> 8CO2 + 9H2O(g) + 47N2", + "", + "# From table A-25", + "sFbar = 360.79 # absolute entropy of liquid octane in kj/kmol.K", + "", + "# From table A-23", + "# For reactant side", + "sbarO2atTref = 205.03 # in kj/kmol.K", + "sbarN2atTref = 191.5 # in kj/kmol.K", + "Rbar = 8.314 # universal gas constant in SI units", + "yO2 = 0.21", + "yN2 = 0.79", + "# For product side", + "yCO2 = 8.0/64.0", + "yH2O = 9.0/64.0", + "yN2p = 47.0/64.0", + "", + "# Calculations", + "sbarO2 = sbarO2atTref - Rbar*math.log(yO2) # in kj/kmol.K", + "sbarN2 = sbarN2atTref - Rbar*math.log(yN2) # in kj/kmol.K", + "# With the help from table A-23", + "sbarCO2 = 320.173 - Rbar*math.log(yCO2)", + "sbarH2O = 273.986 - Rbar*math.log(yH2O)", + "sbarN2p = 258.503 - Rbar*math.log(yN2p)", + "sigmadot = (8*sbarCO2 + 9*sbarH2O + 47*sbarN2p) - sFbar - (12.5*sbarO2 + 47*sbarN2)", + "", + "# Result", + "print '-> The rate of entropy production, in kJ/K per kmol of fuel with theoretical amount of air is: '", + "print round(sigmadot,2)", + "", + "# Part(b)", + "# The complete combustion of liquid octane with 400% theoretical air is described by the following chemical equation:", + "# C8H18(l) + 50 O2 + 188N2 -----> 8 CO2 + 9H2O(g) + 37.5O2 + 188N2", + "", + "# For product side ", + "yCO2 = 8.0/242.5", + "yH2O = 9.0/242.5", + "yO2 = 37.5/242.5", + "yN2p = 188.0/242.5", + "# Calculations", + "# With help from table A-23", + "sbarCO2 = 267.12 - Rbar*math.log(yCO2)", + "sbarH2O = 231.01 - Rbar*math.log(yH2O)", + "sbarO2p = 242.12 - Rbar*math.log(yO2)", + "sbarN2p = 226.795 - Rbar*math.log(yN2p)", + "sigmadot = (8.0*sbarCO2 + 9.0*sbarH2O + 37.5*sbarO2p +188.0*sbarN2p) -sFbar - (50.0*sbarO2 + 188.0*sbarN2)", + "", + "# Result", + "print '-> The rate of entropy production, in kJ/K per kmol of fuel with 400 percent theoretical air is: '", + "print round(sigmadot,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rate of entropy production, in kJ/K per kmol of fuel with theoretical amount of air is: ", + "5404.17", + "-> The rate of entropy production, in kJ/K per kmol of fuel with 400 percent theoretical air is: ", + "9754.75" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.10 Page no-653" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the change in entropy of the system of Example 13.6 in kJ/K.", + "", + "# Given:-", + "import math", + "Rbar = 8.314 # universal gas constant in SI units", + "# The chemical equation for the complete combustion of methane with oxygen is", + "# CH4 + 2O2 ----> CO2 + 2H2O", + "yCH4 = 1.0/3.0", + "yO2 = 2.0/3.0", + "yCO2 = 1.0/3.0", + "yH2O = 2.0/3.0", + "# From table A-25", + "sbarCH4atTref = 186.16 # in kj/kmol.K", + "sbarO2atTref = 205.03 # in kj/kmol.K", + "p2 = 3.02 # in atm", + "pref = 1.0 # in atm", + "", + "# Calculations", + "sbarCH4 = sbarCH4atTref - Rbar*math.log(yCH4)", + "sbarO2 = sbarO2atTref - Rbar*math.log(yO2)", + "# With help from table A-23", + "sbarCO2 = 263.559 - Rbar*math.log(yCO2*p2/pref) # in kj/kmol.K", + "sbarH2O = 228.321 - Rbar*math.log(yH2O*p2/pref) # in kj/kmol.K", + "deltaS = sbarCO2 + 2*sbarH2O - sbarCH4 -2*sbarO2 # in kj/K", + "", + "# Result", + "print '-> The change in entropy of the system is: ',round(deltaS,2),'kJ/K'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The change in entropy of the system is: 96.41 kJ/K" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.11 Page no-654" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the Gibbs function of formation of methane at the standard state", + "", + "# Given:-", + "# Methane is formed from carbon and hydrogen according to", + "# C + 2H2 ------> CH4", + "", + "# In the present case, all substances are at the same temperature and pressure, 25\u0004C and 1 atm, which correspond to the standard reference state values", + "hCbar = 0", + "hH2bar = 0", + "gRbar = 0", + "# With enthalpy of formation and absolute entropy data from Table A-25", + "hfbarCH4 = -74850", + "sbarCH4 = 186.16", + "sbarC = 5.74", + "sbarH2 = 130.57", + "Tref = 298.15 # in kelvin", + "", + "# Calculation", + "gfbarCH4 = hfbarCH4 -Tref*(sbarCH4-sbarC-2*sbarH2) # in kj/kmol", + "", + "# Result", + "print '-> The gibbs function of formation of methane at the standard state is: ',gfbarCH4,'kJ/mol'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The gibbs function of formation of methane at the standard state is: -50783.332 kJ/mol" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 13.12 Page no-662" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the chemical exergy of liquid octane ", + "", + "# Given:-", + "# Complete combustion of liquid octane with O2 is described by", + "# C8H18(l) + 12.5O2 ------> 8CO2 + 9H2O", + "import math", + "# Part(a)", + "Rbar = 8.314 # universal gas constant in SI units", + "Tnot = 298.15 # in kelvin", + "# From table A-25", + "gbarC8H18 = 6610.0", + "gbarO2 = 0", + "gbarCO2 = -394380", + "gbarH2O = -228590", + "yO2 = 0.2035", + "yCO2 = 0.0003", + "yH2O = 0.0312", + "M = 114.22 # molecular weight of liquid octane", + "", + "# Calculations", + "ech = ((gbarC8H18 + 12.5*gbarO2 -8*gbarCO2 -9*gbarH2O) + Rbar*Tnot*math.log(yO2**12.5/(yCO2**8*yH2O**9 )))/M", + "# Result", + "print '-> Part(a) the chemical exergy obtained on a unit mass basis is: ',round(ech,2),'kJ/K'", + "", + "# Part(b)", + "# With data from Table A-25 and Model II of Table A-26", + "gbarH2O = -237180.0", + "ebarCO2 = 19870.0", + "ebarH2O = 900.0", + "ebarO2 = 3970.0", + "", + "# Calculation", + "ech = ((gbarC8H18 + 12.5*gbarO2 -8*gbarCO2 - 9*gbarH2O) + 8*ebarCO2 + 9*ebarH2O - 12.5*ebarO2)/M", + "# Result", + "print '-> Part(b) chemical exergy on a unit mass basis is:',round(ech,3),'kJ/K'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Part(a) the chemical exergy obtained on a unit mass basis is: 47345.85 kJ/K", + "-> Part(b) chemical exergy on a unit mass basis is: 47397.172 kJ/K" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.13 Page no-665" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Evaluate the flow exergy of the steam, in kJ/kg, relative to an environment at 25\u0004C, 1 atm ", + "", + "# Given:-", + "import math", + "Rbar = 8.314 # universal gas constant in SI units", + "Tnot = 298.0 # in kelvin", + "# With data from the steam tables", + "h = 2939.9 # in kj/kg", + "hnot = 104.9 # in kj/kg", + "s = 7.2307 # in kj/kg", + "snot = 0.3674 # in kj/kg", + "# With data from Table A-25", + "gbarH2Oliq = -237180.0", + "gbarH2Ogas = -228590.0", + "yeH2O = 0.0303", + "M =18.0 # molar mass of steam", + "", + "# Calculations", + "ech = (1.0/M)*(gbarH2Oliq-gbarH2Ogas + Rbar*Tnot*math.log(1/yeH2O)) # in kj/kg", + "ef = h-hnot-Tnot*(s-snot) + ech # in kj/kg", + "", + "# Result", + "print '-> The flow exergy of the steam, in kJ/k is: '", + "print round(ef,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The flow exergy of the steam, in kJ/k is: ", + "793.8" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.14 Page no-665" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# evaluate the flow exergy of the combustion products, in kJ per kmol of fuel. ", + "", + "# Given:-", + "# For 140% theoretical air, the reaction equation for complete combustion of methane is", + "# CH4 + 2.8(O2 + 3.76N2) -------> CO2 + 2H2O + 10.53N2 + .8O2", + "", + "# For product side", + "yCO2p = 1.0/(1.0+2.0+10.53+.8)", + "yH2Op = 2.0/(1.0+2.0+10.53+.8)", + "yN2p = 10.53/(1.0+2.0+10.53+.8)", + "yO2p = 0.8/(1.0+2.0+10.53+.8)", + "", + "Rbar = 8.314 # universal gas constant in SI units", + "Tnot = 298.15 # in kelvin", + "", + "yeN2 = 0.7567", + "yeO2 = 0.2035", + "yeH2O = 0.0303", + "yeCO2 = 0.0003", + "", + "# Calculations", + "import math", + "ebarch = Rbar*Tnot*(math.log(yCO2p/yeCO2) + 2*math.log(yH2Op/yeH2O) + 10.53*math.log(yN2p/yeN2) + .8*math.log(yO2p/yeO2))", + "", + "# with data from tables A-23 at 480 and 1560 kelvin,the thermomechanical contribution to the flow exergy, per mole of fuel, is", + "contri480 = 17712.0 # kJ per kmol of fuel", + "contri1560 = 390853.0 # kJ per kmol of fuel", + "efbar480 = contri480 + ebarch # kJ per kmol of fuel", + "efbar1560 = contri1560 + ebarch # kJ per kmol of fuel", + "", + "# Results", + "print '-> At T= 480k, the flow exergy of the combustion products, in kJ per kmol of fuel is: '", + "print round(efbar480,2)", + "print '-> At T = 1560K, the flow exergy of the combustion products, in kJ per kmol of fuel is: '", + "print round(efbar1560,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> At T= 480k, the flow exergy of the combustion products, in kJ per kmol of fuel is: ", + "35461.61", + "-> At T = 1560K, the flow exergy of the combustion products, in kJ per kmol of fuel is: ", + "408602.61" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 13.15 Page no-667" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Devise and evaluate an exergetic efficiency for the internal combustion engine ", + "", + "# Given:-", + "mFdot = 1.8e-3 # fuel mass flow rate in kg/s", + "ech = 47346.0 # in kj/kg, from example 13.12(a)", + "Wcvdot = 37.0 # power developed by the engine in kw", + "", + "# Calculations", + "Efdot = mFdot*ech # rate at which exergy enters with the fuel in kw", + "epsilon = Wcvdot/Efdot # exergetic efficiency", + "", + "# Result", + "print '-> The exergetic efficiency is: '", + "print round(epsilon,3)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The exergetic efficiency is: ", + "0.434" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 13.16 Page no-668" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the exergy destruction, in kJ per kmol of fuel, devise and evaluate an exergetic efficiency.", + "", + "# Given:-", + "Tnot = 298 # in kelvin", + "", + "# For the case of complete combustion with the theoretical amount of air", + "sigmadot = 5404.0 # rate of entropy production from example 13.9, in kj/kmol.K", + "Efdot = 5407843.0 # rate at which exergy enters with the fuel from example 13.12, in kj/kmol", + "# Calculations:-", + "Eddot = Tnot*sigmadot # in kj/kmol", + "epsilon = 1-Eddot/Efdot", + "# Result", + "print '-> The exergetic efficiency with theoretical amount of air is: '", + "print round(epsilon,3)", + "", + "# For the case of combustion with 400% theoretical air", + "sigmadot = 9754.0 # rate of entropy production from example 13.9, in kj/kmol.K", + "# Calculations", + "Eddot = Tnot*sigmadot # in kj/kmol", + "epsilon = 1-Eddot/Efdot", + "# Result", + "print 'The exergetic efficiency with 400 percent theoretical amount of air is: '", + "print round(epsilon,3)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The exergetic efficiency with theoretical amount of air is: ", + "0.702", + "The exergetic efficiency with 400 percent theoretical amount of air is: ", + "0.463" + ] + } + ], + "prompt_number": 33 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_14_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_14_2.ipynb new file mode 100644 index 00000000..5d03c617 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_14_2.ipynb @@ -0,0 +1,468 @@ +{ + "metadata": { + "name": "Chapter 14" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 14 :- Chemical and Phase Equilibrium" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 14.1 Page no-688" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Evaluate the equilibrium constant, expressed as log10K, for the reaction at (a) 298 K and (b) 2000 K.", + "", + "# Given:-", + "# The reaction is CO + .5O2 ----> CO2", + "# Part(a)", + "T = 298.0 # in kelvin", + "Rbar = 8.314 # universal gas constant in SI units", + "# From table A-25", + "", + "hfbarCO2 = -393520.0 # in kj/kmol", + "hfbarCO = -110530.0 # in kj/kmol", + "hfbarO2 = 0 # in kj/kmol", + "deltahbarCO2 = 0 # in kj/kmol", + "deltahbarCO = 0 # in kj/kmol", + "deltahbarO2 = 0 # in kj/kmol", + "sbarCO2 = 213.69 # in kj/kmol.K", + "sbarCO = 197.54 # in kj/kmol.K", + "sbarO2 = 205.03 # in kj/kmol.K", + "# From table A-27", + "logKtable = 45.066", + "# Calculations", + "import math", + "deltaG = (hfbarCO2-hfbarCO-.5*hfbarO2) + (deltahbarCO2-deltahbarCO-.5*deltahbarO2) - T*(sbarCO2-sbarCO-.5*sbarO2)", + "lnK = -deltaG/(Rbar*T)", + "logK = (1/math.log(10))*lnK", + "# Results", + "print '-> Part(a) the value of equilibrium constant expressed as log10K is: '", + "print logK", + "print '-> The value of equilibrium constant expressed as log10K from table A-27 is: '", + "print logKtable", + "", + "# Part(b)", + "T = 2000.0 # in kelvin", + "# From table A-23", + "hfbarCO2 = -393520.0 # in kj/kmol", + "hfbarCO = -110530.0 # in kj/kmol", + "hfbarO2 = 0 # in kj/kmol", + "deltahbarCO2 = 100804-9364 # in kj/kmol", + "deltahbarCO = 65408 - 8669 # in kj/kmol", + "deltahbarO2 = 67881 - 8682 # in kj/kmol", + "sbarCO2 = 309.210 # in kj/kmol.K", + "sbarCO = 258.6 # in kj/kmol.K", + "sbarO2 = 268.655 # in kj/kmol.K", + "# Calculations", + "deltaG = (hfbarCO2-hfbarCO-.5*hfbarO2) + (deltahbarCO2-deltahbarCO-.5*deltahbarO2) - T*(sbarCO2-sbarCO-.5*sbarO2)", + "lnK = -deltaG/(Rbar*T)", + "logK = (1/math.log(10))*lnK", + "# From table A-27", + "logKtable = 2.884", + "# Results", + "print '-> Part(b) the value of equilibrium constant expressed as log10K is: '", + "print logK", + "print '-> The value of equilibrium constant expressed as log10K from table A-27 is: '", + "print logKtable" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Part(a) the value of equilibrium constant expressed as log10K is: ", + "45.094010685", + "-> The value of equilibrium constant expressed as log10K from table A-27 is: ", + "45.066", + "-> Part(b) the value of equilibrium constant expressed as log10K is: ", + "2.88485359375", + "-> The value of equilibrium constant expressed as log10K from table A-27 is: ", + "2.884" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 14.2 Page no-690" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the equilibrium composition in terms of mole fractions", + "", + "# Given:-", + "# Applying conservation of mass, the overall balanced chemical reaction equation is", + "# CO + .5O2 -------> zCO + (z/2)O2 + (1-z)CO2", + "", + "# At 2500 K, Table A-27 gives", + "log10K = -1.44", + "# Part(a)", + "p = 1.0 # in atm", + "# Calculations", + "import math", + "K = (10.0)**(log10K) # equilibrium constant", + "# Solving equation K = (z/(1-z))*(2/(2 + z))^.5 *(p/1)^.5 gives", + "z = 0.129", + "yCO = 2.0*z/(2.0 + z)", + "yO2 = z/(2.0 + z)", + "yCO2 = 2.0*(1.0 - z)/(2.0 + z)", + "", + "# Results", + "print '-> Part(a) mole fraction of CO is: ',round(yCO,3)", + "print '-> Mole fraction of O2 is: ',round(yO2,3)", + "print '-> Mole fraction of CO2 is: ',round(yCO2,3)", + "", + "# Part(b)", + "p = 10.0 # in atm", + "# Solving equation K = (z/(1-z))*(2/(2 + z))^.5 *(p/1)^.5 gives", + "z = 0.062", + "yCO = 2.0*z/(2.0 + z)", + "yO2 = z/(2.0 + z)", + "yCO2 = 2.0*(1.0 - z)/(2.0 + z)", + "", + "# Results", + "print '-> Part(b) mole fraction of CO is: ',round(yCO,3)", + "print '-> Mole fraction of O2 is: ',round(yO2,3)", + "print '-> Mole fraction of CO2 is: ',round(yCO2,3)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Part(a) mole fraction of CO is: 0.121", + "-> Mole fraction of O2 is: 0.061", + "-> Mole fraction of CO2 is: 0.818", + "-> Part(b) mole fraction of CO is: 0.06", + "-> Mole fraction of O2 is: 0.03", + "-> Mole fraction of CO2 is: 0.91" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 14.3 Page no-691" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the temperature T of the mixture, in K.", + "", + "# Given:-", + "yCO = 0.298", + "p = 1 # in atm", + "pref = 1 # in atm", + "# With this value of K, table A-27 gives", + "T = 2881", + "", + "# Calculations", + "# Solving yCO = 2z/(2 + z)", + "z = 2*yCO/(2 - yCO)", + "K = (z/(1-z))*(z/(2 + z))**.5*(p/pref)**.5", + "", + "# Result", + "print '-> The temperature T of the mixture in kelvin is: ',T" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The temperature T of the mixture in kelvin is: 2881" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 14.4 Page no-692" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the equilibrium composition in terms of mole fractions", + "", + "# Given:-", + "# For a complete reaction of CO with the theoretical amount of air", + "# CO + .5 O2 + 1.88N2 -----> CO2 + 1.88N2 ", + "# Accordingly, the reaction of CO with the theoretical amount of air to form CO2, CO, O2, and N2 is", + "# CO + .5O2 + 1.88N2 ---> zCO + z/2 O2 + (1-z)CO2 + 1.88N2", + "", + "K = 0.0363 # equilibrium constant the solution to Example 14.2", + "p =1.0 # in atm", + "pref = 1.0 # in atm", + "", + "# Calculations", + "# Solving K = (z*z^.5/(1-z))*((p/pref)*2/(5.76+z))^.5 gives", + "z = 0.175", + "yCO = 2.0*z/(5.76 + z)", + "yO2 = z/(5.76 + z)", + "yCO2 = 2.0*(1.0-z)/(5.76 + z)", + "yN2 = 3.76/(5.76 + z)", + "", + "# Results", + "print '-> The mole fraction of CO is: ',round(yCO,3)", + "print '-> The mole fraction of O2 is: ',round(yO2,3)", + "print '-> The mole fraction of CO2 is: ',round(yCO2,3)", + "print '-> The mole fraction of N2 is: ',round(yN2,3)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The mole fraction of CO is: 0.059", + "-> The mole fraction of O2 is: 0.029", + "-> The mole fraction of CO2 is: 0.278", + "-> The mole fraction of N2 is: 0.634" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 14.5 Page no-692" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the heat transfer to the reactor, in kJ per kmol of CO2 entering. ", + "", + "# Given:-", + "# Applying the conservation of mass principle, the overall dissociation reaction is described by", + "# CO2 ----> zCO2 + (1-z)CO + ((1-z)/2)O2", + "", + "p = 1.0 # in atm", + "pref = 1.0 # in atm", + "# At 3200 K, Table A-27 gives", + "log10k = -.189", + "# Solving k = ((1-z)/2)*((1-z)/(3-z))^.5 gives", + "z = 0.422", + "", + "# Calculations", + "k = 10**log10k", + "# From tables A-25 and A-23", + "hfbarCO2 = -393520.0 # in kj/kmol", + "deltahbarCO2 = 174695-9364 # in kj/kmol", + "hfbarCO = -110530.0 # in kj/kmol", + "deltahbarCO = 109667-8669 # in kj/kmol", + "hfbarO2 = 0 # in kj/kmol", + "deltahbarO2 = 114809-8682 # in kj/kmol", + "hfbarCO2r = -393520.0 # in kj/kmol", + "deltahbarCO2r = 0 # in kj/kmol", + "", + "Qcvdot = 0.422*(hfbarCO2 + deltahbarCO2) + 0.578*(hfbarCO + deltahbarCO) + 0.289*(hfbarO2 + deltahbarO2)- (hfbarCO2r + deltahbarCO2r) ", + "", + "# Result", + "print '-> The heat transfer to the reactor, in kJ per kmol of CO2 entering is: '", + "print Qcvdot" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The heat transfer to the reactor, in kJ per kmol of CO2 entering is: ", + "322385.449" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 14.8 Page no-701" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "", + "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].", + "For more information, type 'help(pylab)'." + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the pressure, if the ionization of Cs is 95% complete, and plot percent completion of ionization versus pressure ranging from 0 to 10 atm.", + "", + "# Given:-", + "# The ionization of cesium to form a mixture of Cs, Cs+, and e-\u0005 is described by", + "# Cs ----> (1-z)Cs + zCs+ + Ze-", + "", + "K = 15.63", + "z = 0.95", + "pref =1 # in atm", + "# Calculation", + "p = pref*K*((1-z**2)/z**2)", + "", + "# Results", + "print '-> The pressure if the ionization of CS is 95 percent complete is: ',p,'atm'", + "", + "x = []", + "y = []", + "from numpy import linspace ", + "from pylab import plot, show ", + "x = linspace(0,10,100)", + "for i in range(0,100):", + " y.append(i)", + " y[i]= 100*((1/(1+x[i]/K))**0.5)", + "", + "plot(x,y)", + "xlabel(\"Pressure (atm)\")", + "ylabel(\"Ionization\")", + "show()" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The pressure if the ionization of CS is 95 percent complete is: 1.68855955679 atm" + ] + }, + { + "output_type": "display_data", + "png": "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\ngg==\n" + } + ], + "prompt_number": 16 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 14.9 Page no-703" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the composition of the equilibrium mixture.", + "", + "# Given:-", + "# The overall reaction can be written as", + "# CO2 + .5O2 + .5N2 ----> aCO + bNO + (1-a)CO2 + .5(1+a-b)O2 + .5(1-b)N2", + "", + "# At 3000 K, Table A-27 provides", + "log10K1 = -0.485 # equilibrium constant of the reaction CO2 <--> CO + .5O2", + "log10K2 = -0.913 # equilibrium constant of the reaction .5O2 + .5N2 <-->NO", + "# Solving equations K1 = (a/(1-a))*((1+a-b)/(4+a))^.5 and K2 = 2b/((1+a-b)*(1-b))^.5", + "a = 0.3745", + "b = 0.0675", + "", + "# Calculations", + "K1 = 10**log10K1", + "K2 = 10**log10K2", + "", + "# Result", + "print '-> The composition of the equilibrium mixture, in kmol per kmol of CO2 present initially, is then 0.3745CO, 0.0675NO, 0.6255CO2, 0.6535O2, 0.4663N2.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The composition of the equilibrium mixture, in kmol per kmol of CO2 present initially, is then 0.3745CO, 0.0675NO, 0.6255CO2, 0.6535O2, 0.4663N2." + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 14.10 Page no-707" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the departure, in percent, of the partial pressure of the water vapor from the saturation pressure of water at 20\u0004C.", + "", + "# Given:-", + "# With data from Table A-2 at 20\u0004C,", + "vf = 1.0018e-3 # in m^3/kg", + "psat = 0.0239 # in bar", + "p = 1.0 # in bar", + "T = 293.15 # in kelvin", + "Rbar = 8.314 # universal gas constant in SI units", + "M = 18.02 # molat mass of water in kg/kmol", + "e=2.715", + "", + "# Calculations", + "pvbypsat = e**(vf*(p-psat)*10**5/((1000*Rbar/M)*T))", + "percent = (pvbypsat-1)*100", + "", + "# Result", + "print '-> The departure, in percent, of the partial pressure of the water vapor from the saturation pressure of water at 20\u0004 is: ',round(percent,3)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The departure, in percent, of the partial pressure of the water vapor from the saturation pressure of water at 20\u0004 is: 0.072" + ] + } + ], + "prompt_number": 18 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_1_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_1_2.ipynb new file mode 100644 index 00000000..5215eda5 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_1_2.ipynb @@ -0,0 +1,27 @@ +{ + "metadata": { + "name": "Chapter 1" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "#Chapter 1:- Introductory Concepts and Definitions " + ] + }, + { + "cell_type": "code", + "collapsed": true, + "input": [ + "# Theortical Chapter" + ], + "language": "python", + "outputs": [] + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_2_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_2_2.ipynb new file mode 100644 index 00000000..c80d5494 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_2_2.ipynb @@ -0,0 +1,371 @@ +{ + "metadata": { + "name": "Chapter 2" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "#Chapter 2:- Energy and the First Law Of Thermodynamics" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading5> Example 2.1 Page no-39" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the work for the process,in kJ, if (a) n=1.5, (b) n=1.0,and (c) n=0.", + "", + "# Given:-", + "p1 = 3*(10**5) # initial pressure of gas in pascal", + "v1 = 0.1 # initial volumme of gas in meter^3", + "v2 = 0.2 # final volume of gas in meter^3", + "", + "# calculations", + "from scipy import integrate", + "import math", + "# Part (a) i.e. n=1.5", + "#constant = p1*(v1**n) # p*(v^n) = constant", + "constant1 = p1*(v1**1.5) ", + "constant2 = p1*(v1**1) ", + "constant3 = p1*(v1**0) ", + "# function p ", + "p1 = lambda v: constant1/(v**1.5) # expressing pressure as function of volume ", + "p2 = lambda v: constant2/(v**1)", + "p3 = lambda v: constant3/(v**0)", + "# function [work1] ", + "work1 = integrate.quad(p1,v1,v2) # integrating pdv from initial to final volume ", + "w1 = work1[0]/1000 # divided by 1000 to convert to KJ", + "print 'The work done for n=1.5 in KJ is',round(w1,2)", + "", + "#part(b) i.e. n = 1", + "work2 = integrate.quad(p2,v1,v2)", + "w2 = work2[0]/1000", + "print 'The work done for n=1 in KJ is',round(w2,2)", + "", + "#part(c) i.e. n=0", + "work3 = integrate.quad(p3,v1,v2)", + "w3 = work3[0]/1000", + "print 'The work done for n=0 in KJ is',round(w3,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The work done for n=1.5 in KJ is 17.57", + "The work done for n=1 in KJ is 20.79", + "The work done for n=0 in KJ is 30.0" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 2.2 Page no-50" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the net heat transfer for the process, in kJ.", + "", + "# Given:-", + "p1 = 3*(10**5) # initial pressure in pascal", + "v1 = 0.1 # initial volume in m3", + "v2 = 0.2 # initial volume in m3", + "m = 4.0 # mass of the gas in kg", + "deltau = -4.6 # change in specific internal energy in KJ/Kg", + "", + "# Calculations", + "from scipy import integrate", + "import math", + "constant = p1*(v1**1.5) # p*(v^n) = constant", + "", + "p = lambda v: constant/(v**1.5) # expressing pressure as function of volume ", + "", + "work = integrate.quad(p,v1,v2) # integrating pdv from initial to final volume ", + "w=work[0]/1000 # divided by 1000 to convert to KJ", + "", + "deltaU = m*deltau # change in internal energy in KJ", + "Q = deltaU + w # neglecting kinetic and potential energy changes", + "", + "# Result", + "print 'net heat transfer for the process in KJ',round(Q,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "net heat transfer for the process in KJ -0.83" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 2.3 Page no-52" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the heat transfer from the resistor to the air (a) the air alone, (b) the air and the piston.", + "", + "# Given:-", + "patm = 10**5 # atmospheric pressure in pascal.", + "mp = 45.0 # mass of piston in Kg", + "A = 0.09 # face area of piston in m2", + "deltaV = 0.045 # increment of the volume of air in m3", + "m = 0.27 # mass of air in kg", + "deltau = 42.0 # specific internal energy increase of air in kJ/kg", + "g = 9.81 # local acceleration of gravity", + "", + "", + "# Part (a) i.e. air is system", + "# Calculations", + "p = (mp*g)/A + patm # constant pressure of air obtained from equilibrium of piston", + "w = (p*deltaV)/1000 # work done in KJ", + "deltaU = m*deltau # internal energy change of air in KJ", + "Q = w + deltaU # applying first with air as system", + "# Result", + "print 'The answer given in book is incorrect.They have miscalculated deltaU.The correct heat transfer from resistor to air in KJ for air alone as system is: '", + "print round(Q,2)", + "", + "# The answer given in book is incorrect. deltaU is incorrect in book. ", + "", + "# Part(b) i.e. (air+piston) is system", + "# Calculations", + "wd = (patm*deltaV)/1000 # work done in KJ", + "deltaz = (deltaV)/A # change in elevation of piston", + "deltaPE = (mp*g*deltaz)/1000 # change in potential energy of piston in KJ", + "Qt = wd + deltaPE + deltaU # applying first law with air plus piston as system ", + "# Result", + "print 'The answer given in book is incorrect.They have miscalculated deltaU.The correct heat transfer from resistor to air in KJ for air + piston as system is:'", + "print round(Qt,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The answer given in book is incorrect.They have miscalculated deltaU.The correct heat transfer from resistor to air in KJ for air alone as system is: ", + "16.06", + "The answer given in book is incorrect.They have miscalculated deltaU.The correct heat transfer from resistor to air in KJ for air + piston as system is:", + "16.06" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 2.4 Page no-54" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# evaluate the heat transfer rate and the power delivered through the output shaft, each in kW.", + "", + "# Given:-", + "w1dot = -60.0 # input work rate in KW", + "h = 0.171 # heat transfer coefficient,unit in KW/m2 .K", + "A = 1.0 # outer surface area of gearbox, unit in m2", + "Tb = 300.0 # outer surface temperature in kelvin", + "Tf = 293.0 # temperature of the sorrounding", + "", + "# Calculations", + "Qdot = -h*A*(Tb-Tf); # rate of energy transfer by heat", + "wdot = Qdot; # steady state energy equation", + "w2dot = wdot-w1dot;", + "", + "# Results", + "print 'The heat transfer rate in KW is:\\n\\tQdot = ',Qdot", + "print 'The power delivered through output shaft in KW is: = ',w2dot" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The heat transfer rate in KW is:", + "\tQdot = -1.197", + "The power delivered through output shaft in KW is: = 58.803" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 2.5 Page no-55" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the surface temperature of the chip, in degree \u0004Celcius.", + "", + "# Given:-", + "s=5*(10**-3) # measurement on a side in meter", + "wdot = -0.225 # power input in watt", + "Tf = 293.0 # coolant temprature in kelvin", + "h = 150.0 # heat transfer coefficient in w/m2 k", + "A = s**2 # surface area", + "", + "# Calculation", + "Tb = ((-wdot/(h*A)) + Tf - 273) # surface temperature in degree", + "", + "# Result", + "print 'The surface temperature of the chip in degree celcius is: ',Tb" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The surface temperature of the chip in degree celcius is: 80.0" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 2.6 Page no-57" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "", + "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].", + "For more information, type 'help(pylab)'." + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Plot Qdot and Wdot,the change in energy deltaE in kJ, as functions of time from t=0 to t=120s.", + "", + "# Given:-", + "omega = 100.0 #motor rotation speed in rad/s", + "tau = 18.0 #torque applied by shaft in N.m", + "Welecdot = -2.0 #electric power input in KW", + "", + "Wshaftdot = (tau*omega)/1000 #shaft work rate in KW", + "Wdot = Welecdot + Wshaftdot #net work rate in KW", + "", + "#function [Qdot]=f(t)", + "#Qdot = (-0.2)* [1-2**(-0.05*t)]", + "", + "", + "#function [Edot]=f1(t) #function for rate of change of energy", + "#Edot = (-0.2)*[1-2**(-0.05*t)] - Wdot ", + "", + "#function [deltaE] =f2(t) #function for change in energy ", + "from sympy import *", + "x = symbols('x') # a = 0.2 b = 0.05", + "f = (0.2)*(1-2**(0.05*(x))) - Wdot", + "f2 = integrate(f,x)", + "print f2 ", + "", + "Qd = []", + "Wd = []", + "dltaE = []", + "from numpy import linspace ", + "from pylab import plot, show ", + "t = linspace(0,120,100);", + "for i in range(0,100):", + " Qd.append(i)", + " Wd.append(i)", + " dltaE.append(i)", + " Qd[i] = (-0.2*(1-2**(-0.05*(120/99)*(i-1)))) ", + " Wd[i] = Wdot", + " dltaE[i] = -4.0*2**(0.05* (120/99)*(i-1))/log(2) + 0.4* (120/99)*(i-1)", + " ", + "plot(t,Qd)", + "xlabel(\"Time (s)\")", + "ylabel(\"Qdot (KW)\")", + "show()", + "plot(t,Wd)", + "xlabel(\"Time (s)\")", + "ylabel(\"Wdot (KW)\")", + "show()", + "plot(t,dltaE)", + "xlabel(\"Time (s)\")", + "ylabel(\"deltaE (KJ)\")", + "show()", + "", + "", + "", + "", + " " + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-4.0*2**(0.05*x)/log(2) + 0.4*x" + ] + }, + { + "output_type": "display_data", + "png": "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\nwIHEx8dfck7dunWZO3cu+/fvZ/v27bz55pscOnSowp8XERHPsyVUEhISiIuLAyAuLo6VK1deck6r\nVq0IDw9va+WxAAAI/0lEQVQHoHHjxnTp0oVjx45V+PMiIuJ5tkzUN23alJMnTwJgWRbNmjUrfV2e\njIwMBgwYwP79+2ncuHGFPu/Qk35ERCqlKrFQx4V1lBEdHU1OTs4l78+cObPMa4fDcdkAOH36NCNH\njuS1116jcePGl/zc2ed155eIiOe5LVTWr1/v9Gf+/v7k5OTQqlUrsrOzadmyZbnnnT17lnvuuYfx\n48czfPjwq/68iIh4li1zKrGxsSxatAiARYsWlQmMEpZlMXnyZLp27cqjjz561Z8XERHPs2VOJT8/\nn1GjRnHkyBGCgoJYunQpfn5+ZGVlMWXKFNasWcOWLVvo378/YWFhpcNbs2fP5vbbb3f6eRERsZnl\ngz799FOrU6dOVkhIiBUfH293OVV25MgRKyoqyuratavVrVs367XXXrMsy7Ly8vKsQYMGWaGhoVZ0\ndLR18uRJmyutvKKiIis8PNwaNmyYZVm+1baTJ09a99xzj9W5c2erS5cu1vbt232qfbNmzbK6du1q\nde/e3RozZox15swZr27fpEmTrJYtW1rdu3cvfe9y7Zk1a5YVEhJiderUyfr73/9uR8lXpbz2PfHE\nE1bnzp2tsLAwa8SIEVZBQUHpz662fT4XKkVFRVaHDh2s9PR0q7Cw0OrZs6d14MABu8uqkuzsbCsl\nJcWyLMs6deqU1bFjR+vAgQPWk08+ac2ZM8eyLMuKj4+3nnrqKTvLrJJXXnnFGjt2rBUTE2NZluVT\nbZs4caL17rvvWpZlWWfPnrUKCgp8pn3p6elWcHCwdebMGcuyLGvUqFHWwoULvbp9mzZtsvbs2VPm\nl66z9uzfv9/q2bOnVVhYaKWnp1sdOnSwiouLbam7ospr37p160rrfuqpp6rUPp8Lla1bt1pDhgwp\nfT179mxr9uzZNlbkenfddZe1fv16q1OnTlZOTo5lWSZ4OnXqZHNllZOZmWkNHDjQ2rBhQ2lPxVfa\nVlBQYAUHB1/yvq+0Ly8vz+rYsaOVn59vnT171ho2bJi1bt06r29fenp6mV+6ztoza9asMqMhQ4YM\nsbZt2+bZYivh4vZdaPny5da4ceMsy6pc+3xu769jx47Rtm3b0teBgYGliyZ9QUZGBikpKfTt25fc\n3Fz8/f0Bc0dcbm6uzdVVzmOPPcbLL79MrVrn/3f0lbalp6fTokULJk2aRK9evZgyZQrff/+9z7Sv\nWbNmPP7447Rr1442bdrg5+dHdHS0z7SvhLP2ZGVlERgYWHqeL/y+WbBgAUOHDgUq1z6fCxVfXvR4\n+vRp7rnnHl577TWaNGlS5mdXWu9TXa1evZqWLVsSERHhdG2Rt7YNoKioiD179vDwww+zZ88eGjVq\ndMm2Qt7cvq+//po//vGPZGRkkJWVxenTp3n//ffLnOPN7SvPldrjzW2dOXMm9erVY+zYsU7PuVL7\nfC5UAgICyMzMLH2dmZlZJmm9VcmanQkTJpTeQl2yXgfw2vU6W7duJSEhgeDgYMaMGcOGDRuYMGGC\nT7QNzL/sAgMD6d27NwAjR45kz549tGrVyifat3v3bm666Sauu+466tSpw9133822bdt8pn0lnP3/\nePHvm6NHjxIQEGBLjVW1cOFC1q5dywcffFD6XmXa53OhEhkZSVpaGhkZGRQWFrJkyRJiY2PtLqtK\nLCdrdnxhvc6sWbPIzMwkPT2djz/+mNtuu4333nvPJ9oGZg+7tm3bkpqaCsBnn31Gt27diImJ8Yn2\nde7cme3bt/Pjjz9iWRafffYZXbt29Zn2lXD2/2NsbCwff/wxhYWFpKenk5aWRp8+fewstVISExN5\n+eWXWbVqFQ0aNCh9v1Ltc9G8T7Wydu1aq2PHjlaHDh2sWbNm2V1OlW3evNlyOBxWz549rfDwcCs8\nPNz69NNPrby8PGvgwIFeedtmeZKSkkrv/vKltu3du9eKjIwsc7umL7Vvzpw5pbcUT5w40SosLPTq\n9o0ePdpq3bq1VbduXSswMNBasGDBZdszc+ZMq0OHDlanTp2sxMREGyuvmIvb9+6771ohISFWu3bt\nSn+/PPTQQ6XnX237fPbJjyIi4nk+N/wlIiL2UaiIiIjLKFRERMRlFCoiIuIyChWRCsjLyyMiIoKI\niAhat25NYGAgERERNGnShKlTp7rlmm+88QYLFy50+vOEhAReeuklt1xbpLJ095fIVXrhhRdo0qQJ\n06dPd9s1LMuiV69e7Nq1izp1yn+WnmVZREREsGvXLurWreu2WkSuhnoqIpVQ8m+xpKQkYmJiAJgx\nYwZxcXH079+foKAgli9fzhNPPEFYWBh33HEHRUVFACQnJxMVFUVkZCS33357uY/d/uKLL+jcuXNp\noMybN49u3brRs2dPxowZA5jtMm688UbWrVvniSaLVIhCRcSF0tPT+fzzz0lISGD8+PFER0ezb98+\nGjZsyJo1azh79iy/+tWvWLZsGbt372bSpEn89re/veR7tmzZQmRkZOnrOXPmsHfvXv75z38yf/78\n0vf79OnDpk2bPNI2kYpw2zPqRWoah8PBHXfcQe3atenevTvnzp1jyJAhAPTo0YOMjAxSU1PZv38/\ngwYNAqC4uJg2bdpc8l1Hjhzh5ptvLn0dFhbG2LFjGT58eJktT9q0aUNiYqKbWyZScQoVEReqV68e\nALVq1Sozz1GrVi2KioqwLItu3bqxdevWK37XhdOda9asYdOmTfztb39j5syZfPXVV9SqVYtz5855\n9a644ns0/CXiIhW556VTp06cOHGC7du3A2b36QMHDlxyXvv27UvnWizL4siRI0RFRREfH8+3337L\n6dOnAbNjbvv27V3YCpGqUaiIVEJJ7+DCZ2tc/JyNi3sQDoeDunXr8sknn/DUU08RHh5OREQE27Zt\nu+T7b775Znbv3g2YZ7JMmDCBsLAwevXqxSOPPMK1114LwM6dO+nfv79b2ihSGbqlWKQaKrmleMeO\nHaVDahc7d+4cvXr1Yvfu3U5vOxbxNPVURKohh8PBlClTyjww6WKrV69m5MiRChSpVtRTERERl1FP\nRUREXEahIiIiLqNQERERl1GoiIiIyyhURETEZRQqIiLiMv8fGRx8Be2i9aQAAAAASUVORK5CYII=\n" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAZwAAAEMCAYAAADwJwB6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAH3VJREFUeJzt3X9QVXX+x/HXJaF1En/VelHQNBUQFL2sP/FHFF5/ZCKm\nY2kWmdmUU63tljrTTpmp4Drl6qZN22YytZs/8hdqqbSKP0L8kaQtlFDCivIjFTF1M1Q+3z9a7zeC\nqyKXcwOfj5kzwznnc875vBvnvDrnfM65NmOMEQAAtczH2x0AANwcCBwAgCUIHACAJQgcAIAlCBwA\ngCUIHACAJbwSOCUlJXI6nQoODtagQYNUWlpaZbvHH39cdrtdXbp0qbB879696tmzpxwOh3r06KF9\n+/ZJkvLy8tSwYUM5HA45HA5Nnjy51msBAFwfrwROYmKinE6nsrOzFRMTo8TExCrbTZgwQZs2baq0\nfOrUqXrttdeUkZGhmTNnaurUqa51HTp0UEZGhjIyMrR48eJaqwEAUD1eCZzk5GTFx8dLkuLj47V2\n7doq2/Xv31/NmjWrtLxly5Y6c+aMJKm0tFSBgYG111kAgGcYL2jatKnr7/Ly8grzv5Sbm2s6d+5c\nYVleXp4JCgoyrVu3NoGBgebo0aOutrfddpvp1q2bufvuu83OnTsr7U8SExMTE9MNTDVVa4EzcOBA\n07lz50rTunXrKgVMs2bN3O6nqsCJiYkxq1evNsYYs2LFCjNw4EBjjDE//vijKSkpMcYY8/nnn5vW\nrVub77//vsK2nviP9mv2yiuveLsLtYr66rb6XF99rs0Yz5w7G6iWpKSkuF1nt9tVVFSkgIAAFRYW\nqkWLFtXa9969e/Xpp59KkkaPHq0nnnhCkuTn5yc/Pz9JUmRkpNq3b6+cnBxFRkbeYBUAAE/xyjOc\n2NhYJSUlSZKSkpIUFxdXre07dOig7du3S5K2bt2q4OBgSdLJkyd1+fJlSdKRI0eUk5Oju+66y4M9\nBwDcMA9caVXbqVOnTExMjOnYsaNxOp3m9OnTxhhjjh8/bu677z5Xu4ceesi0bNnS+Pn5maCgILNk\nyRJjjDH79u0zPXv2NF27djW9e/c2Bw4cMMYYs2rVKhMeHm66detmIiMjzYYNGyod20slW2bbtm3e\n7kKtor66rT7XV59rM8Yz507b/3Z007DZbLrJSgaAGvPEuZMvDQAALEHgAAAsQeAAACxB4AAALEHg\nAAAsQeAAACxB4AAALEHgAAAsQeAAACxB4AAALEHgAAAsQeAAACxB4AAALEHgAAAsQeAAACxB4AAA\nLEHgAAAsQeAAACxB4AAALEHgAAAsQeAAACxB4AAALEHgAAAsQeAAACxB4AAALEHgAAAsQeAAACxB\n4AAALEHgAAAsQeAAACxB4AAALEHgAAAsQeAAACxB4AAALEHgAAAs4ZXAKSkpkdPpVHBwsAYNGqTS\n0tIq2z3++OOy2+3q0qVLheUHDx5Unz59FBERodjYWJ09e9a1LiEhQR07dlRoaKi2bNlSq3UAAK6f\nVwInMTFRTqdT2dnZiomJUWJiYpXtJkyYoE2bNlVa/sQTT+jPf/6zDh06pJEjR2revHmSpKysLC1f\nvlxZWVnatGmTJk+erPLy8lqtBQBwfbwSOMnJyYqPj5ckxcfHa+3atVW269+/v5o1a1ZpeU5Ojvr3\n7y9JGjhwoFatWiVJWrduncaOHStfX1+1bdtWHTp00N69e2upCgBAdTTwxkGLi4tlt9slSXa7XcXF\nxdXaPjw8XOvWrdOIESO0cuVK5efnS5IKCgrUu3dvV7ugoCAdP3680vYzZsxw/R0dHa3o6OjqFwEA\n9VhqaqpSU1M9us9aCxyn06mioqJKy2fPnl1h3mazyWazVWvfS5Ys0XPPPafXXntNsbGx8vPzc9u2\nqn3/PHAAAJX98n/GX3311Rrvs9YCJyUlxe06u92uoqIiBQQEqLCwUC1atKjWvkNCQrR582ZJUnZ2\ntjZu3ChJCgwMdF3tSNKxY8cUGBh4A70HAHiaV57hxMbGKikpSZKUlJSkuLi4am1/4sQJSVJ5eblm\nzZqlp59+2rXfZcuWqaysTLm5ucrJyVHPnj0923kAwA3xSuBMnz5dKSkpCg4O1tatWzV9+nRJPz2D\nGTZsmKvd2LFjFRUVpezsbLVu3VrvvfeeJOnDDz9USEiIOnXqpKCgID322GOSpLCwMI0ZM0ZhYWEa\nOnSoFi9eXO3bdQCA2mEzxhhvd8JKNptNN1nJAFBjnjh38qUBAIAlCBwAgCUIHACAJQgcAIAlCBwA\ngCUIHACAJQgcAIAlCBwAgCUIHACAJQgcAIAlCBwAgCUIHACAJQgcAIAlCBwAgCUIHACAJQgcAIAl\nCBwAgCUIHACAJQgcAIAlCBwAgCUIHACAJQgcAIAlCBwAgCUIHACAJQgcAIAlCBwAgCUIHACAJQgc\n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\nQH1F4ABA9Xni3HnN93AAAPAEAgcAYAkCBwBgCQIHAGAJAgcAYAkCBwBgCQIHAGAJAgcAYAkCBwBg\nCQIHAGAJAgcAYAkCBwBgCQIHAGAJAgcAYAkCBwBgCQIHAGAJAgcAYAkCBwBgCQIHAGAJAgcAYAkC\nBwBgCQIHAGAJAgcAYAkCBwBgCQIHAGAJAgcAYAkCBwBgCQIHAGAJAgcAYAkCBwBgCQIHAGAJAgcA\nYAkCBwBgCQIHAGAJAgcAYAmvBE5JSYmcTqeCg4M1aNAglZaWVmqTn5+ve+65R+Hh4ercubMWLlx4\nze3z8vLUsGFDORwOORwOTZ482bKaAABX55XASUxMlNPpVHZ2tmJiYpSYmFipja+vr+bPn6/MzEyl\np6dr0aJF+vrrr6+5fYcOHZSRkaGMjAwtXrzYspoAAFfnlcBJTk5WfHy8JCk+Pl5r166t1CYgIEDd\nunWTJDVq1EidOnXS8ePHr3t7AMCvSwNvHLS4uFh2u12SZLfbVVxcfNX2eXl5ysjIUK9eva65fW5u\nrhwOh5o0aaJZs2apX79+lfY3Y8YM19/R0dGKjo6uYUUAUL+kpqYqNTXVo/u0GWOMR/f4P06nU0VF\nRZWWz549W/Hx8Tp9+rRrWfPmzVVSUlLlfs6dO6fo6Gj96U9/UlxcnCSpWbNmVW5fVlam8+fPq1mz\nZjpw4IDi4uKUmZkpf39/V1ubzaZaKhkA6i1PnDtr7QonJSXF7Tq73a6ioiIFBASosLBQLVq0qLLd\nxYsXNWrUKI0fP94VNlfb3s/PT35+fpKkyMhItW/fXjk5OYqMjPRgZQCAG+GVZzixsbFKSkqSJCUl\nJVUIkyuMMZo4caLCwsI0ZcqU69r+5MmTunz5siTpyJEjysnJ0V133VWbpQAArlOt3VK7mpKSEo0Z\nM0ZHjx5V27ZttWLFCjVt2lQFBQWaNGmSNm7cqF27dmnAgAGKiIiQzWaTJCUkJGjIkCFut1+9erVe\nfvll+fr6ysfHRzNnztSwYcMqFswtNQCoNk+cO70SON5E4ABA9Xni3MmXBgAAliBwAACWIHAAAJYg\ncAAAliBwAACWIHAAAJYgcAAAliBwAACWIHAAAJYgcAAAliBwAACWIHAAAJYgcAAAliBwAACWIHAA\nAJYgcAAAliBwAACWIHAAAJYgcAAAliBwAACWIHAAAJYgcAAAliBwAACWIHAAAJYgcAAAliBwAACW\nIHAAAJYgcAAAliBwAACWIHAAAJYgcAAAliBwAACWIHAAAJYgcAAAliBwAACWIHDqmdTUVG93oVZR\nX91Wn+urz7V5ilcCp6SkRE6nU8HBwRo0aJBKS0srtcnPz9c999yj8PBwde7cWQsXLnStW7lypcLD\nw3XLLbfowIEDFbZLSEhQx44dFRoaqi1bttR6Lb829f0fPfXVbfW5vvpcm6d4JXASExPldDqVnZ2t\nmJgYJSYmVmrj6+ur+fPnKzMzU+np6Vq0aJG++uorSVKXLl20Zs0aDRgwoMI2WVlZWr58ubKysrRp\n0yZNnjxZ5eXlltQEALg6rwROcnKy4uPjJUnx8fFau3ZtpTYBAQHq1q2bJKlRo0bq1KmTCgoKJEmh\noaEKDg6utM26des0duxY+fr6qm3bturQoYP27t1bi5UAAK6b8YKmTZu6/i4vL68wX5Xc3FzTpk0b\nc/bs2QrLo6Ojzeeff+6af+aZZ8wHH3zgmp84caL56KOPKmwjiYmJiYnpBqaaaqBa4nQ6VVRUVGn5\n7NmzK8zbbDbZbDa3+zl37pxGjx6tBQsWqFGjRtXuxy/3/VPmAACsVmuBk5KS4nad3W5XUVGRAgIC\nVFhYqBYtWlTZ7uLFixo1apTGjx+vuLi4ax4zMDBQ+fn5rvljx44pMDCw+p0HAHicV57hxMbGKikp\nSZKUlJRUZZgYYzRx4kSFhYVpypQpbvf18yuW2NhYLVu2TGVlZcrNzVVOTo569uzp+QIAANXmlcCZ\nPn26UlJSFBwcrK1bt2r69OmSpIKCAg0bNkyS9Nlnn+mDDz7Qtm3b5HA45HA4tGnTJknSmjVr1Lp1\na6Wnp2vYsGEaOnSoJCksLExjxoxRWFiYhg4dqsWLF1/1dh0AwEI1fgpUh3zyyScmJCTEdOjQwSQm\nJnq7OzV29OhREx0dbcLCwkx4eLhZsGCBMcaYU6dOmYEDB5qOHTsap9NpTp8+7eWe1sylS5dMt27d\nzP3332+MqV/1nT592owaNcqEhoaaTp06mfT09HpT35w5c0xYWJjp3LmzGTt2rLlw4UKdrm3ChAmm\nRYsWpnPnzq5lV6tnzpw5pkOHDiYkJMRs3rzZG12ulqrqe+GFF0xoaKiJiIgwI0eONKWlpa51N1Lf\nTRM4ly5dMu3btze5ubmmrKzMdO3a1WRlZXm7WzVSWFhoMjIyjDHGnD171gQHB5usrCzz4osvmrlz\n5xpjjElMTDTTpk3zZjdr7PXXXzfjxo0zw4cPN8aYelXfo48+at59911jjDEXL140paWl9aK+3Nxc\n065dO3PhwgVjjDFjxowxS5curdO17dixwxw4cKDCCdldPZmZmaZr166mrKzM5Obmmvbt25vLly97\npd/Xq6r6tmzZ4ur3tGnTalzfTRM4aWlpZvDgwa75hIQEk5CQ4MUeed6IESNMSkqKCQkJMUVFRcaY\nn0IpJCTEyz27cfn5+SYmJsZs3brVdYVTX+orLS017dq1q7S8PtR36tQpExwcbEpKSszFixfN/fff\nb7Zs2VLna8vNza1wQnZXz5w5cyrcRRk8eLDZvXu3tZ29Ab+s7+dWr15tHn74YWPMjdd303xL7fjx\n42rdurVrPigoSMePH/dijzwrLy9PGRkZ6tWrl4qLi2W32yX9NCKwuLjYy727cc8//7zmzZsnH5//\n/6daX+rLzc3Vb3/7W02YMEGRkZGaNGmSzp8/Xy/qa968uf74xz+qTZs2atWqlZo2bSqn01kvavs5\nd/UUFBQoKCjI1a4+nG+WLFmi++67T9KN13fTBE59Hjxw7tw5jRo1SgsWLJC/v3+Fddd6z+nXbMOG\nDWrRooUcDofb96fqcn2XLl3SgQMHNHnyZB04cEC33XZbpc881dX6vv32W/3lL39RXl6eCgoKdO7c\nOX3wwQcV2tTV2ty5Vj11udbZs2fLz89P48aNc9vmeuq7aQLnl+/o5OfnV0jouurKu0qPPPKIa3j5\nlfecJF31Padfu7S0NCUnJ6tdu3YaO3astm7dqkceeaTe1BcUFKSgoCD16NFDkjR69GgdOHBAAQEB\ndb6+/fv3KyoqSrfffrsaNGigBx54QLt3764Xtf2cu3+L9emdwKVLl+rjjz/WP/7xD9eyG63vpgmc\n7t27KycnR3l5eSorK9Py5csVGxvr7W7ViHHzrtL1vOdUF8yZM0f5+fnKzc3VsmXLdO+99+r999+v\nN/UFBASodevWys7OliR9+umnCg8P1/Dhw+t8faGhoUpPT9cPP/wgY4w+/fRThYWF1Yvafs7dv8X6\n8k7gpk2bNG/ePK1bt06/+c1vXMtvuD4PPGeqMz7++GMTHBxs2rdvb+bMmePt7tTYzp07jc1mM127\ndjXdunUz3bp1M5988ok5deqUiYmJqZNDT91JTU11jVKrT/V98cUXpnv37hWGndaX+ubOnesaFv3o\no4+asrKyOl3bQw89ZFq2bGl8fX1NUFCQWbJkyVXrmT17tmnfvr0JCQkxmzZt8mLPr88v63v33XdN\nhw4dTJs2bVznl6efftrV/kbqsxnDx8UAALXvprmlBgDwLgIHAGAJAgcAYAkCBwBgCQIHqIFTp065\nvmbesmVLBQUFyeFwyN/fX88880ytHPPNN9/U0qVL3a5PTk7Wa6+9VivHBmqCUWqAh7z66qvy9/fX\nH/7wh1o7hjFGkZGR2rdvnxo0qPr3E40xcjgc2rdvn3x9fWutL0B1cYUDeNCV/39LTU3V8OHDJUkz\nZsxQfHy8BgwYoLZt22r16tV64YUXFBERoaFDh+rSpUuSpM8//1zR0dHq3r27hgwZUuVPtH/22WcK\nDQ11hc3ChQsVHh6url27auzYsZJ++sRInz59tGXLFitKBq4bgQNYIDc3V9u2bVNycrLGjx8vp9Op\nQ4cOqWHDhtq4caMuXryoZ599VqtWrdL+/fs1YcIEvfTSS5X2s2vXLnXv3t01P3fuXH3xxRc6ePCg\n3n77bdfynj17aseOHZbUBlyvqq/JAXiMzWbT0KFDdcstt6hz584qLy/X4MGDJUldunRRXl6esrOz\nlZmZqYEDB0qSLl++rFatWlXa19GjR9WvXz/XfEREhMaNG6e4uLgKn4lp1aqV6xdygV8LAgewgJ+f\nnyTJx8enwnMVHx8fXbp0ScYYhYeHKy0t7Zr7+vlj140bN2rHjh1av369Zs+erX//+9/y8fFReXl5\nnf46MeonbqkBtex6xuWEhIToxIkTSk9Pl/TTV8CzsrIqtbvzzjtdz3aMMTp69Kiio6OVmJioM2fO\n6Ny5c5J++nLxnXfe6cEqgJojcAAPunJV8fPfRvnl76T88srDZrPJ19dXH330kaZNm6Zu3brJ4XBo\n9+7dlfbfr18/7d+/X9JPv6fzyCOPKCIiQpGRkfr973+vxo0bS5L27t2rAQMG1EqNwI1iWDRQh1wZ\nFr1nzx7XbbpfKi8vV2RkpPbv3+926DTgDVzhAHWIzWbTpEmTKvwY1i9t2LBBo0ePJmzwq8MVDgDA\nElzhAAAsQeAAACxB4AAALEHgAAAsQeAAACxB4AAALPF/Eo3dird4yKcAAAAASUVORK5CYII=\n" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEMCAYAAADu7jDJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcVHX+x/HXAINoYWl5HVRMbqGoeLeMqCA1lUzNwtSs\nbEvLdTOrvbS7Witq5u5mRZu7muVu62W9YGoklmRWgrfSZFepMAGlzNTUVEDP74/zYwSVVIbhzAzv\n5+PxfQxzZuacz7d8zGe+l/P92gzDMBAREakiP6sDEBER76ZEIiIiLlEiERERlyiRiIiIS5RIRETE\nJUokIiLiEq9KJOnp6URFRREeHs706dOtDkdERACbt9xHcvr0aSIjI1m7di0Oh4OuXbvy73//m+uv\nv97q0EREajWvaZFkZ2cTFhZGaGgodrude++9l7S0NKvDEhGp9QKsDuBSFRYW0qJFC+fzkJAQsrKy\nKrzHZrPVdFgiIj7Blc4pr2mRXGqSMAzDZ8sf//hHy2NQ3VQ/1c/3iqu8JpE4HA7y8/Odz/Pz8wkJ\nCbEwIhERAS9KJF26dCE3N5c9e/ZQXFzMwoULSUpKsjosEZFaz2vGSAICAnjllVfo3bs3p0+f5qGH\nHqp1M7bi4+OtDsFtfLluoPp5O1+vn6u8ZvrvpbDZbNXS3+eJTp+GU6fOlpISsxQXQ2lpxXLmjFlO\nnwbDMEuZsqEmPz/w9z/7GBBwttjtUKcOBAaaj0FB5qOf17RfReRyuPrd6TUtEm9x5gz8+CMcPgxH\njph/ly9Hj8KxYxXL8eNny08/wYkT5uPJk+bfJ0+aSaFOnbNf8GXFbjdLWRLw9z+bIPz8zMRRVsr+\nnRhGxWRTVkpLKyao4mLz2mXJy26HevUqluBguPJK87F+/bPlqqugQYOzpWFDuOYas9SpY+3/IxGp\nXmqRVOLUKTh4EL7/3nwsKz/8ULEcOmQmjbLH48fNL9arrjJL+S/X4OCK5cor4YorzpZ69c4+1q1r\nlqAgs9jtZ1sTVjAM879JWZL76aezSfDYMTNB/vijmTzLStl/k7L/VmX//YKCoFEjszRpYpamTc3S\nvLlZHA7zeIB+6oi4navfnbUmkZSWwoED8O23Zvnuu7PlwIGzjwcOmMnjxAm49lrzF3TZY1lp2PDs\nr+wGDeDqq8/+8g4OVhfQzzEMM+GU/fcu+/9RVGSW/fth3z4oLDT/PzRpAiEh0LIltGoFoaFmue46\n8zEoyOIKifgAJZJybDYbM2cazi+ksi+noiLzl/E110DjxuaXU/nHsl/H5Uv9+ta2AMTsYtu3DwoK\n4Jtvzpa8PLPs3Wsm+TZtIDwcIiLMEhVlHrPbra6BiHdQIinHZrMxfrxB06bQrBnOxyZNzC8cf3+r\nI5TqdPo05OfDV19Bbq5Zdu0yS34+tG4N0dHQti20a2eWiAh1l4mcS4mkHF+etSWX59QpM7Hs3GmW\nL76AHTvMFs7110P79tCpk1k6dDDHpkRqKyWScpRI5GKOHTOTyuefw9atZtm502y9dOsGXbuajx06\nqGtMag8lknKUSKQqSkrM5JKdDZs2QVaWOQbTqRP07Ak33gi9epmTK0R8kRJJOUokUl2OHDETyyef\nwIYNZnJp2RJuvhni483SqJHVUYpUDyWScpRIxF1KSuCzz2D9eli3Dj76yEwsCQlmuflm874gEW+k\nRFKOEonUlNJS2LIF3n8fMjLMLrEuXaBvX7PExGj6uHgPJZJylEjEKsePQ2YmvPuuWU6dgv79YcAA\nuPVWc5UCEU+lRFKOEol4AsOA3bvhnXdgxQqzSywxEe66y0wuV19tdYQiFSmRlKNEIp7o4EEzqSxb\nZrZabrgBhg6FgQPNZXVErKZEUo4SiXi6Y8dg1SpYtAjWrjWnFQ8bZiYV3RQpVlEiKUeJRLzJ0aNm\n19fbb8PHH0O/fjBypDkLTMv5SE1SIilHiUS81YEDsHAhvPWWuYzL8OEwapS5AKWIuymRlKNEIr5g\n5054800zqYSHw8MPw5Ah5j41Iu6gRFKOEon4kpISWLkS/vEP2LgRRoyAMWMgMtLqyMTXuPrdqS2Y\nRDyU3W5OGV61ylxc8oorzDvoExJg+XJzGX0RT6AWiYgXKS6GJUtg1ixzZ8nHH4eHHjK3dRapKrVI\nRGqRwEBIToZPP4V//xs2bza3HX7ySXMzLxErKJGIeKnu3c2pw599Zj7v0MGc7fXFF9bGJbWPRyWS\np556iuuvv54OHTowaNAgjhw54nxt6tSphIeHExUVxZo1ayyMUsSztGgBM2fC11+b2wknJJg3OG7a\nZHVkUlt4VCK5/fbb2blzJ59//jkRERFMnToVgJycHBYuXEhOTg7p6emMHTuWM2fOWBytiGe5+mr4\n9a/NhHLbbTB4MPTpY+6lIuJOAVYHUF5iYqLz7+7du7NkyRIA0tLSSE5Oxm63ExoaSlhYGNnZ2fTo\n0eO8c0yaNMn5d3x8PPHx8e4OW8Sj1KsH48bBI4/AG2/A3XebLZVJk8xthEUyMzPJzMystvN57Kyt\nAQMGkJyczLBhwxg3bhw9evTgvvvuA2D06NH07duXwYMHV/iMZm2JnO/UKTOhTJkCnTubj23bWh2V\neBKvm7WVmJhITEzMeeWdd95xvmfKlCkEBgYybNiwSs9j065BIpekTh149FFzafubboJbbjHX9Prm\nG6sjE19R411bGRkZP/v6vHnzWL16Ne+//77zmMPhIL/c3MaCggIcDofbYhTxRXXrmtOEH34YXnwR\nOnWC0aPhN7/RHiniGo8abE9PT2fGjBmkpaURFBTkPJ6UlMSCBQsoLi4mLy+P3NxcuqmzV6RK6teH\n556DHTvMvVIiI+Hll80lWUSqwqPGSMLDwykuLqZhw4YA9OzZk9TUVABSUlKYO3cuAQEBvPTSS/Tu\n3fu8z2uMROTy7dgBEyaYqw7/9a/mbo5Su2jRxnKUSESqxjDMvVEmTICYGPjLX6B1a6ujkpridYPt\nIuJ5bDa4807IyTGnCHftCn/6kznjS+RilEhExKlOHfjtb801vLZsMVsna9daHZV4OnVtiUilVq2C\nxx4zl6+fOROuvdbqiMQd1LUlIm7Tr5+5CGTDhubd8f/8pzmeIlKeWiQickk2bTL3PmnVCl5/HZo3\ntzoiqS5qkYhIjeja1Rw76dQJOnaEefPUOhGTWiQictk++wxGjYKWLeHvf4cmTayOSFyhFomI1LiO\nHSE72xw36dgR0tKsjkispBaJiLjk44/NRSBvvdW8M/6KK6yOSC6XWiQiYqkbbzS7uoqLzWXqt22z\nOiKpaUokIuKy4GB48034wx/g9tvNlok6B2oPdW2JSLX6+mu4915wOGDuXGjQwOqI5GLUtSUiHuW6\n62DDBnNGV+fO5pRh8W1KJCJS7QID4aWX4IUX4I474G9/U1eXL1PXloi4VW4u3HUXdO8Or74K5fas\nEw+hri0R8Wjh4bBxIxw7Br16aa94X6REIiJud+WVsGCBOQjfo4c5hiK+Q11bIlKj3nsPRoyAlBQY\nPdrqaAS01W4FSiQi3mHXLkhKgj59zH1OAgKsjqh2UyIpR4lExHscOgT33AN2u9ntFRxsdUS1lwbb\nRcQrNWhg7sDYvDncdBMUFFgdkVSVEomIWMZuh9mzYdgw6NnTXLNLvI9HJpKZM2fi5+fHDz/84Dw2\ndepUwsPDiYqKYs2aNRZGJyLVyWaDp5+GP//ZXKfr/fetjkgul8cNceXn55ORkUGrVq2cx3Jycli4\ncCE5OTkUFhaSkJDA7t278fPzyDwoIlVw993QqBEMHQqzZplThcU7eNw38YQJE3jhhRcqHEtLSyM5\nORm73U5oaChhYWFkZ2dbFKGIuEt8vNkieeopcwVh8Q4e1SJJS0sjJCSE9u3bVzi+b98+evTo4Xwe\nEhJCYWHhBc8xadIk59/x8fHEx8e7I1QRcZOYGHOzrNtvh4MH4bnnzO4vqT6ZmZlkZmZW2/lqPJEk\nJiZSVFR03vEpU6YwderUCuMfPzcdzVbJv6zyiUREvFPLlrB+vXmfyeHD5gKQ6smuPuf+yJ48ebJL\n56vxRJKRkXHB41988QV5eXl06NABgIKCAjp37kxWVhYOh4P8/HznewsKCnA4HDUSr4hYo3FjWLcO\n+veH+++HN97QjYueymNvSGzdujVbtmyhYcOG5OTkMGzYMLKzs52D7V9++eV5rRLdkCjie376CQYP\nNveCf/ttc4l6qV4+e0Ni+SQRHR3N0KFDiY6Opm/fvqSmplbatSUivqVePVi+HEpKYMgQOHXK6ojk\nXB7bIqkKtUhEfFdxsXnj4vHjsHQp1K1rdUS+w2dbJCIi5QUGmmtyNWgAd94JJ09aHZGUUSIREa8R\nEABvvQXXXGPuuqhuLs+gRCIiXiUgAObPN1cLHjxYycQTaIxERLxSSYm5DP2ZM7B4sbkApFSNxkhE\npFYq28fk9GnzPpPTp62OqPZSIhERrxUYCIsWQVERjBkD6pCwhhKJiHi1unUhLQ22b4eJE5VMrKBE\nIiJeLzgYVq+GtWthyhSro6l9tHKNiPiEhg0hPR1uvBGaNIGHH7Y6otpDiUREfEazZvDee3DzzeYm\nWQMHWh1R7aBEIiI+JTwc3nkH+vY1WylxcVZH5Ps0RiIiPqdzZ3Ol4Lvvhv/+1+pofJ8SiYj4pIQE\nmDED7rjDnB4s7qOuLRHxWSNHwp495uZYH35o7mki1U9LpIiITzMMePBB+P57c18Tf3+rI/I8WiJF\nRORn2GwwezacOAFPPWV1NL5JiUREfJ7dbi7suGoV/P3vVkfjezRGIiK1QoMG5rTgm26CsDC45Rar\nI/Idl9wiOXnyJKe08L+IeLGICHNa8L33Qm6u1dH4jkoTyZkzZ1i6dCl33303DoeD1q1b06pVKxwO\nB0OGDGHZsmUa2BYRr3PbbTBpkrld79GjVkfjGyqdtRUXF8dNN91EUlISHTt2pE6dOgCcOnWKbdu2\nsWLFCjZs2MD69etrNOCfo1lbInKpHnkEvvsOliwBv1o+Wuzqd2elieTUqVPO5FGZS3lPTVIiEZFL\ndeoU3Hor9OkDv/+91dFYy22J5Icffqj0Q3Xq1OEKD7yzR4lERC7H/v3QtSukpkJSktXRWMdtiSQ0\nNBSbzXbBD5WWlmIYBtOmTWP48OFVvviFvPzyy6SmpuLv70+/fv2YPn06AFOnTmXu3Ln4+/sza9Ys\nbr/99vM+q0QiIpcrKwsGDICPPzYXfKyN3JZIfs4PP/zA6dOniYuL47/VuCLaunXrSElJYfXq1djt\ndg4cOECjRo3Iyclh2LBhbNq0icLCQhISEti9ezd+53RsKpGISFX87W9mq2TjRqhXz+poap7b7mwf\nPXr0BY/n5+cTFxdHo0aNnK2F6vLaa6/xm9/8BrvdDkCjRo0ASEtLIzk5GbvdTmhoKGFhYWRnZ1fr\ntUWk9nrkEejYER59VFv1VkWlNySWlJQwfPhw3nrrLecv/5ycHPr3788f/vAHAJKquVMxNzeX9evX\n89vf/pagoCBefPFFunTpwr59++jRo4fzfSEhIRQWFl7wHJMmTXL+HR8fT3x8fLXGKCK+x2YzWyU9\nesDrr5sJxZdlZmaSmZlZbeerNJG88cYbPProo9xzzz0sWLCArKws7rnnHl577TX69+9f5QsmJiZS\ndIE1nadMmUJpaSmHDh1i48aNbNq0iaFDh/L1119f8DyVjd+UTyQiIpeqXj1zKvCNN0KXLmbxVef+\nyJ48ebJL56s0kfj5+TF79mzGjRvHzTffzN69e1m0aBE9e/Z06YIZGRmVvvbaa68xaNAgALp27Yqf\nnx/ff/89DoeD/Px85/sKCgpwOBwuxSEicq7wcHOs5J57YOtWuOoqqyPyDpUOto8bN845APP222/T\nqVMnoqKizA/ZbMyaNavag3n99dfZt28fkydPZvfu3SQkJLB3717nYHt2drZzsP3LL788r1WiwXYR\nqQ5jx8KBA7Bokdnt5etc/e6stEXSuXNn5xd1+b8Nw6i0W8lVDz74IA8++CAxMTEEBgby1ltvARAd\nHc3QoUOJjo4mICCA1NRUt8UgIvLnP0P37rVjvKQ6aGMrEZEL2LULevWCtWuhQwero3Evt03/ffDB\nB9m0aVOlH8zKyuKBBx6o8oVFRDxZZCT85S/meMlPP1kdjWertEWyY8cOZsyYwcaNG4mMjKRZs2YY\nhkFRURG7du3ihhtuYOLEibRr166mY66UWiQiUt2GD4crrzSnB/sqt9/ZXrba7zfffIPNZqNVq1Z0\n6NCBoKCgKl/UXZRIRKS6HTkCsbFm6+TOO62Oxj0sWSLFUymRiIg7fPIJDBpkTglu3tzqaKqf28ZI\nRETEdMMN5uyt+++HM2esjsbzKJGIiFyCZ5+FY8fglVesjsTzVKlrq6SkxLmwoidR15aIuFNuLvTs\nCRs2wP/fn+0T3Na11atXL+ffI0aMqPBa9+7dq3xBERFvFR4Ozz0HI0dCaanV0XiOShPJ8ePHnX9/\n8cUXFV7Tr34Rqa3GjIGrr4apU62OxHNojERE5DLYbDB3Lrz8sjmLS35mra0jR46wdOlSDMNw/g04\nn4uI1FYhIeZ6XKNGwebNEBhodUTWqnSwfdSoUT+7UOMbb7zh/ugukwbbRaSmGAYkJUHnzuDt2yDp\nhsRylEhEpCYVFpp3vWdkePfCjjWSSFauXElOTg4nT550HivbbteTKJGISE174w1zvCQrCzzwrohL\n4vY72x955BEWLVrErFmzMAyDRYsW8c0331T5giIivmTUKGjcGF54wepIrHPRFklMTAw7duygffv2\nbN++nWPHjtGnTx82bNhQUzFeMrVIRMQKe/dCp07ee6Oi21skdevWBaBevXoUFhYSEBBAUVFRlS8o\nIuJrWraEP/wBfvGL2rkW10UTSf/+/Tl06BBPPfUUnTt3JjQ0lOTk5JqITUTEazz2GBQXw5w5VkdS\n8y7atXXy5Enn3iMnT550Ptd+JCIiFW3fDrfdZj42a2Z1NJfO7V1bN9xwg/PvoKAgrr766grHRETE\n1L49PPwwjB9vdSQ1q9I72/fv38++ffv46aef2Lp1q/OmxB9//JGftIGxiMgF/f73ZkJZtQr69bM6\nmppRaSJ57733mDdvHoWFhTz55JPO48HBwaSkpNRIcCIi3qZuXXj1VXMjrFtugXr1rI7I/S46RrJk\nyRIGDx5cU/G4RGMkIuIp7rkHIiLg+eetjuTi3HZn+8yZM50nL7/OVtnzCRMmVPmilcnOzubxxx+n\npKSEgIAAUlNT6dq1KwBTp05l7ty5+Pv7M2vWLG6//fbzK6NEIiIeYt8+c9mUDRsgMtLqaH6eq9+d\nlXZtHT169LyFGt3t6aef5vnnn6d37968++67PP3006xbt46cnBwWLlxITk4OhYWFJCQksHv3bvz8\ntAq+iHim5s3hd78zpwVnZJjLz/uqShPJJAuWs2zWrJlzifrDhw/jcDgASEtLIzk5GbvdTmhoKGFh\nYWRnZ9OjR48aj1FE5FI9/jjMmwcLFoAv335XaSIps2vXLsaOHUtRURE7d+5k+/btrFixgmeffbba\ng5k2bRq9evVi4sSJnDlzhk8//RSAffv2VUgaISEhFBYWXvAc5RNgfHw88fHx1R6niMilCAiA1FQY\nOhQGDIArr7Q6IlNmZiaZmZnVdr6LDrbHxcUxY8YMHn30UbZt24ZhGLRr146dO3dW6YKJiYkXXGJl\nypQpzJo1i8cee4y77rqLxYsXM3v2bDIyMhg3bhw9evTgvvvuA2D06NHccccdDBo0qGJlNEYiIh5o\n5EhwODx3e163jZGU+emnn+jevXuFC9pdWCs5IyOj0teGDx/O2rVrARgyZAijR48GwOFwkJ+f73xf\nQUGBs9tLRMTTTZ8OMTHw4IMQHm51NNXvoqPVjRo14ssvv3Q+/89//kMzN937HxYWxocffgjABx98\nQEREBABJSUksWLCA4uJi8vLyyM3NpVu3bm6JQUSkujVrBs88A088YXUk7nHRFskrr7zCL37xC/73\nv//RvHlzWrduzb/+9S+3BDN79mwee+wxTp06Rd26dZk9ezYA0dHRDB06lOjoaOe04JqeUSYi4orx\n4+Ef//DNO94veavd48ePc+bMGYKDg90dU5VpjEREPFl6OowbB198AXXqWB3NWW69IbH8Rc7ljhsS\nXaVEIiKerl8/c4VgT/oKdfsNibt27WLTpk0kJSVhGAYrV67U+ISISBW9+CLExZkzua691upoqsdF\nu7ZuuukmVq9e7ezSOnr0KHfccQcfffRRjQR4OdQiERFvMG6c+fjyy9bGUcbt+5F89913Fab72u12\nvvvuuypfUESktps0CRYuhP/+1+pIqsdFZ22NHDmSbt26MWjQIAzDYPny5dx///01EZuIiE+65hr4\nzW9g4kRzFpe3u6RZW1u2bOGjjz7CZrMRFxdHbGxsTcR22dS1JSLeorgY2rY1l1BJTLQ2FrfN2vJG\nSiQi4k2WLIE//Qm2bAErFzN3+xiJiIi4x6BBEBQEb79tdSSuUYtERMRCH30EI0bA//5nJhUrqEUi\n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\nYxiGYZSUlBiHDx/2mfrl5eUZrVu3Nk6ePGkYhmEMHTrUmDdvnlfXb/369cbWrVsrfNFWVp+dO3ca\nHTp0MIqLi428vDyjTZs2xunTpy2J+1JdqH5r1qxxxv3MM8+4VD+fSCSffPKJ0bt3b+fzqVOnGlOn\nTrUwoup35513GhkZGUZkZKRRVFRkGIaZbCIjIy2OrGry8/ON2267zfjggw+cLRJfqdvhw4eN1q1b\nn3fcV+p38OBBIyIiwvjhhx+MkpISo3///saaNWu8vn55eXkVvmgrq09KSkqFXo/evXsbn376ac0G\nWwXn1q+8pUuXGvfdd59hGFWrn0+stVVYWEiLFi2cz0NCQigsLLQwouq1Z88etm3bRvfu3fn2229p\n0qQJAE2aNOHbb7+1OLqqeeKJJ5gxYwZ+fmf/CfpK3fLy8mjUqBEPPPAAnTp14uGHH+b48eM+U7+G\nDRvy5JNP0rJlS5o3b87VV19NYmKiz9SvTGX12bdvHyEhIc73+cL3zdy5c7njjjuAqtXPJxKJzWaz\nOgS3OXbsGIMHD+all14iODi4wms2m80r675y5UoaN25MbGxspff+eGvdAEpLS9m6dStjx45l69at\nXHHFFUybNq3Ce7y5fl999RV//etf2bNnD/v27ePYsWP885//rPAeb67fhVysPt5c1ylTphAYGMiw\nYcMqfc/F6ucTicThcJCfn+98np+fXyGjequSkhIGDx7MiBEjGDhwIGD+Miq70XP//v00btzYyhCr\n5JNPPmHFihW0bt2a5ORkPvjgA0aMGOETdQPzF1xISAhdu3YFYMiQIWzdupWmTZv6RP02b97MDTfc\nwDXXXENAQACDBg3i008/9Zn6lans3+O53zfefF/bvHnzWL16Nf/617+cx6pSP59IJF26dCE3N5c9\ne/ZQXFzMwoULSUpKsjoslxiGwUMPPUR0dDS/+tWvnMeTkpJ48803AXjzzTedCcabpKSkkJ+fT15e\nHgsWLODWW29l/vz5PlE3gKZNm9KiRQt2794NwNq1a2nbti0DBgzwifpFRUWxceNGTpw4gWEYrF27\nlujoaJ+pX5nK/j0mJSWxYMECiouLycvLIzc317kOoDdJT09nxowZpKWlERQU5DxepfpV0ziO5Vav\nXm1EREQYbdq0MVJSUqwOx2UfffSRYbPZjA4dOhgdO3Y0OnbsaLz77rvGwYMHjdtuu80rp1heSGZm\npnPWli/V7bPPPjO6dOlSYWqlL9Vv+vTpzum/I0eONIqLi726fvfee6/RrFkzw263GyEhIcbcuXN/\ntj5Tpkwx2rRpY0RGRhrp6ekWRn5pzq3fnDlzjLCwMKNly5bO75cxY8Y433+59bMZhhaoEhGRqvOJ\nri0REbGOEomIiLhEiURERFyiRCIiIi5RIhGpxMGDB4mNjSU2NpZmzZoREhJCbGwswcHBPP744265\n5iuvvMK8efMqfX3FihU8//zzbrm2SFVp1pbIJSjbH2fChAluu4ZhGHTq1IlNmzYREHDhrYIMwyA2\nNpZNmzZht9vdFovI5VCLROQSlf3myszMdG4XPWnSJO6//37i4uIIDQ1l6dKlTJw4kfbt29O3b19K\nS0sB2LJlC/Hx8XTp0oU+ffpccBvqjz/+mKioKGcSmTVrFm3btqVDhw4kJycD5lIVPXv2ZM2aNTVR\nZZFLokQi4qK8vDzWrVvHihUrGD58OImJiWzfvp26deuyatUqSkpKGDduHEuWLGHz5s088MAD/O53\nvzvvPBs2bKBLly7O59OnT+ezzz7j888/5/XXX3ce79atW4XdREWsZvlWuyLezGaz0bdvX/z9/WnX\nrh1nzpyhd+/eAMTExLBnzx52797Nzp07SUhIAOD06dM0b978vHPt3buXXr16OZ+3b9+eYcOGMXDg\nwArLjTRv3pz09HQ310zk0imRiLgoMDAQAD8/vwrjFn5+fpSWlmIYBm3btuWTTz656LnKD1muWrWK\n9evX88477zBlyhS++OIL/Pz8OHPmjFevNiu+R11bIi64lLkqkZGRHDhwgI0bNwLmqs45OTnnva9V\nq1bOsRPDMNi7dy/x8fFMmzaNI0eOcOzYMcBcibZVq1bVWAsR1yiRiFyislZA+b0pzt2n4tyWgs1m\nw26385///IdnnnmGjh07Ehsby6effnre+Xv16sXmzZsBc0+TESNG0L59ezp16sT48eOpX78+ANnZ\n2cTFxbmljiJVoem/Ih6ibPpvVlaWs7vsXGfOnKFTp05s3ry50inCIjVNLRIRD2Gz2Xj44YcrbDJ0\nrpUrVzJkyBAlEfEoapGIiIhL1CIRERGXKJGIiIhLlEhERMQlSiQiIuISJRIREXGJEomIiLjk/wAf\njNfcbjy1VQAAAABJRU5ErkJggg==\n" + } + ], + "prompt_number": 7 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_3_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_3_2.ipynb new file mode 100644 index 00000000..a858ee00 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_3_2.ipynb @@ -0,0 +1,540 @@ +{ + "metadata": { + "name": "Chapter 3" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 3 :- Evaluating Properties" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Example 3.1 Page no-80 ##" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine (a) the temperature, in degree \u0004Celcius, at each state.(b) the mass of vapor present at each state, in kg.", + "# (c) If heatingcontinues, determine the pressure, in bar, when the container holds onlysaturated vapor.", + "", + "# Given:-", + "# Those with 1 are of state 1 and 2 are with state 2", + "", + "# State 1", + "p1 = 10**5 # initial pressure in pascal ", + "x1 = 0.5 # initial quality", + "", + "T1 = 99.63 # temperature in degree celcius, from table A-3", + "v = 0.5 # volume of container in m3", + "vf1 = 1.0432*(10**(-3)) # specific volume of fluid in state 1 in m3/Kg(from table A-3)", + "vg1 = 1.694 # specific volume of gas in state 1 in m3/kg(from table A-3)", + "", + "# State 2", + "p2 = 1.5*(10**5) # pressure after heating in pascal", + "", + "T2 = 111.4 # temperature in degree celcius in state 2, from A-3", + "vf2 = 1.0582*(10**(-3)) # specific volume of fluid in state 2 in m3/Kg, from A-3", + "vg2 = 1.159 # specific volume of gas in state 2 in m3/Kg,from A-3", + "", + "# Calculations", + "", + "v1 = vf1 + x1*(vg1-vf1) # specific volume in state 1 in m3/Kg", + "v2 = v1 # specific volume in state 2 in m3/Kg", + "m = v/v1 # total mass in Kg", + "mg1 = x1*m # mass of vapour in state 1 in Kg", + "", + "x2 = (v1-vf2)/(vg2-vf2) # quality in state 2", + "mg2 = x2*m # mass of vapor in state 2 in Kg ", + "", + "# State 3", + "p3 = 2.11 # pressure in state 3 from table A-3", + "", + "# Results", + "print '-> The temperature in state 1 is ',round(T1,2),'degree celcius.'", + "print '-> The temperature in state 2 is ',round(T2,2),'degree celcius.'", + "print '-> The mass of vapour in state 1 is',round(mg1,2),'kg.' ", + "print '-> The mass of vapour in state 2 is',round(mg2,2),'kg.'", + "print '-> The pressure corresponding to state 3 is',round(p3,2),'bar.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The temperature in state 1 is 99.63 degree celcius.", + "-> The temperature in state 2 is 111.4 degree celcius.", + "-> The mass of vapour in state 1 is 0.29 kg.", + "-> The mass of vapour in state 2 is 0.43 kg.", + "-> The pressure corresponding to state 3 is 2.11 bar." + ] + } + ], + "prompt_number": 49 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 3.2 Page no-81" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Show the initial and final states on T\u2013v and p\u2013v diagrams, determine (a) the volume occupied by the ammonia at each state (b) the work", + "", + "# Given:-", + "m = 0.05 # mass of ammonia in kg ", + "p1 = 1.5*(10**5) # initial pressure of ammonia in pascal", + "v1 = 0.7787 # specific volume in state 1 in m3/kg from table A-14", + "v2 = 0.9553 # specific volume in state 2 in m3/kg from table A-15", + "T2 = 25.0 # final temperature in degree celcius", + "", + "# Calculations", + "", + "V1 = m*v1 # volume occupied by ammonia in state 1 in m3", + "V2 = m*v2 # volume occupied by ammonia in state 2 in m3", + "w = (p1*(V2-V1))/1000 # work in KJ", + "", + "# Results", + "print '-> The volume occupied by ammonia in state 1 is ',round(V1,2),'m^3.'", + "print '-> The volume occupied by ammonia in state 2 is ',round(V2,2),'m^3.'", + "print '-> The work done for the process is',round(w,2),'KJ.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The volume occupied by ammonia in state 1 is 0.04 m^3.", + "-> The volume occupied by ammonia in state 2 is 0.05 m^3.", + "-> The work done for the process is 1.32 KJ." + ] + } + ], + "prompt_number": 50 + }, + { + "cell_type": "markdown", + "source": [ + "## Example 3.3 Page no-87" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the temperature at the final state, in \u0004C, and the work during the process, in kJ.", + "", + "# Given:-", + "V = 0.25 # volume of tank in m3", + "v = 1.673 # specific volume in m3/kg obtained using table A-2", + "", + "# State 1", + "T1 = 100.0 # initial temperature in degree celcius", + "u1 = 2506.5 # specific internal energy in state 1 in KJ/Kg obtained from table A-2", + "", + "# State 2", + "p2 = 1.5 # final pressure in bars", + "T2 = 273.0 # temperature in state 2 in degree celcius obtained from table A-4", + "u2 = 2767.8 # specific internal energy in state 2 in KJ/Kg obtained from table A-4", + "", + "# Calculations", + "m = V/v # mass of the system in kg", + "DeltaU = m*(u2-u1) # change in internal energy in KJ", + "W = - DeltaU # from energy balance", + "", + "# Results", + "print '-> The temperature at the final state in is',round(T2,2),' degree celcius.'", + "print '-> The work during the process is',W,'KJ.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The temperature at the final state in is 273.0 degree celcius.", + "-> The work during the process is -39.0466228332 KJ." + ] + } + ], + "prompt_number": 51 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 3.4 Page no-88" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Sketch both processes on T\u2013v and p\u2013v diagrams, determine the work, heat transfer, in kJ/kg.", + "", + "# Given:-", + "# State ", + "P1 = 10*(10**5) # initial pressure in pascal", + "T1 = 400.0 # initial temperature in degree celcius", + "v1 = 0.3066 # specific volume in state 1 in m3/kg obtained from table A-4", + "u1 = 2957.3 # specific internal energy in state 1 in KJ/Kg obtained from table A-4", + "", + "# State 2", + "", + "v2 = 0.1944 # specific volume in state 2 in m3/kg obtained from table A-3", + "w2to3 = 0 # work in process 2-3", + "", + "", + "# State 3 ", + "v3 = v2", + "vf3 = 1.0905*(10**(-3)) # specific volume of fluid in state 3 from table A-2", + "vg3 = 0.3928 # specific volume of gas in state 3 from table A-2", + "uf3 = 631.68 # specific internal energy for fluid in state 3 from table A-2", + "ug3 = 2559.5 # specific internal energy for gas in state 3 from table A-2", + "", + "# Calculations", + "w1to2 = (P1*(v2-v1))/1000 # work in KJ/Kg in process 1-2", + "W = w1to2 + w2to3 # net work in KJ/kg", + "x3 = (v3-vf3)/(vg3-vf3)", + "u3 = uf3+x3*(ug3-uf3) # specific internal energy in state 3 in Kj/Kg", + "q = (u3-u1) + W # heat transfer in Kj/Kg", + "", + "# Results", + "print '-> The work done in the overall process is',W,'KJ/kg.'", + "print '-> The heat transfer in the overall process is',q,'KJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The work done in the overall process is -112.2 KJ/kg.", + "-> The heat transfer in the overall process is -1486.43658885 KJ/kg." + ] + } + ], + "prompt_number": 52 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 3.6 Page no-98" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the specific volume , pressure in MPa at the final state.", + "", + "# Given:-", + "# State 1", + "p1 = 20.0 # initial pressure in MPa", + "T1 = 520.0 # initial temperature in degree celcius", + "Z1 = 0.83 # compressibility factor", + "R = 8.314 # universal gas constant in SI unit", + "n = 1000.0/18.02 # number of moles in a kg of water", + "", + "# State 2", + "T2 = 400.0 # final temperature in degree celcius", + "", + "# From table A-1", + "Tc = 647.3 # critical temperature in kelvin", + "pc = 22.09 # critical pressure in MPa", + "", + "# Calculations", + "Tr = (T1+273)/Tc # reduced temperature", + "Pr = p1/pc # reduced pressure ", + "v1 = (Z1*n*R*(T1+273))/(p1*(10**6))", + "vr = v1*(pc*(10**6))/(n*R*Tc)", + "Tr2 = (T2+273)/Tc", + "PR = 0.69 # at above vr and Tr2", + "P2 = pc*PR", + "", + "# Results ", + "print '-> The specific volume in state1 is',v1,'m3/kg and the corresponding value obtained from table A-4 is .01551 m^3/Kg'", + "print '-> The pressure in MPa in the final state is',P2,' MPa and the corresponding value from the table is 15.16Mpa'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The specific volume in state1 is 0.0151836616537 m3/kg and the corresponding value obtained from table A-4 is .01551 m^3/Kg", + "-> The pressure in MPa in the final state is 15.2421 MPa and the corresponding value from the table is 15.16Mpa" + ] + } + ], + "prompt_number": 53 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 3.7 Page no:-101" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "", + "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].", + "For more information, type 'help(pylab)'." + ] + } + ], + "prompt_number": 54 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# (a) sketch the cycle on p\u2013v coordinates. ", + "# (b) determine the temperature at state 2, in \u0004K; ", + "# (c) determine the specific volume at state 3, in m3/kg.", + "", + "# Given:-", + "T1 = 300.00 #temperature in state 1 in kelvin", + "P1 = 1.00 #pressure in state 1 in bar", + "P2 = 2.00 #pressure in state 2 in bar", + "R = 287.00 #gas constant of air in SI units", + "", + "# Calculations", + "v1 = (R*T1)/(P1*10**5) #specific volume in state 1", + "v = []", + "P = []", + "vv = []", + "Pa = []", + "pp = []", + "pcommon = []", + "vcommon = []", + "from numpy import linspace", + "from pylab import *", + "P = linspace(1,2,50)", + "for i in range(0,50):", + " v.append(i)", + " v[i] = v1", + "", + " ", + "", + "T2 = (P2*10**5*v1)/R", + "v3 = (R*T2)/(P1*10**5)", + "vv = linspace(v1,v3,50)", + "for i in range(0,50):", + " Pa.append(i)", + " Pa[i] = P1", + "", + "#function[out]= f(inp)", + "#out = (R*T2)/(inp", + "", + "", + "VV = linspace(v1,v3,50)", + "for j in range(0,50):", + " pp.append(j)", + " pp[j] = (R*T2)/((VV[j])/(10**5))", + "", + "vcommon = numpy.concatenate((v, VV))", + "pcommon = numpy.concatenate((P, pp))", + "", + "plot(vcommon,pcommon)", + "xlabel('v')", + "ylabel('p(bar)')", + "show()", + "plot(vv,Pa)", + "xlabel('v')", + "ylabel('p(bar)')", + "show()", + "#The two steps are shown in one graph and the other on is shown in the other graph\"\"\"", + "", + "print 'The temperature in kelvin in state 2 is T2 = ',T2", + "print 'The specific volume in state 3 in m^3/kg is v = ',v3" + ], + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "png": "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\ng1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AA\nADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgI\nBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIBQCAg1AAADgIhQCS\nlZXldgl+g2txBtfiDK7F5fNqKKxcuVJt2rRRdHS0nnzyyXOeM2nSJEVHRys+Pl55eXneLCfg8Q/+\nDK7FGVyLM7gWl89roVBWVqYHHnhAK1eu1O7du7V48WJ98sknFc7JyMjQ/v37tW/fPr3yyiuaMGGC\nt8oBAFwEr4VCbm6uoqKi1LJlSwUHB2v48OFasWJFhXPS09M1atQoSVJSUpJOnDih4uJib5UEAPAg\nyFtvXFRUpMjISOdxRESEcnJyPJ5TWFioZs2aVTjPsqwqr88Lb+kTaWlpbpfgN7gWZ3AtzuBaXB6v\nhcLFfpDbtn3B/+6nrwMAvMdrzUfh4eEqKChwHhcUFCgiIuKC5xQWFio8PNxbJQEAPPBaKHTq1En7\n9u1Tfn6+Tp06paVLlyo1NbXCOampqVq4cKEkKTs7W2FhYWc1HQEAfMdrzUdBQUGaM2eOUlJSVFZW\nprFjx6pt27aaN2+eJGn8+PEaOHCgMjIyFBUVpXr16mnBggXeKgcAcDFsP/Hee+/ZN954ox0VFWXP\nmjXrrNe//PJLOyUlxY6Pj7fbtWtnL1iwwPdF+sDo0aPtq6++2m7fvv15z/nVr35lR0VF2XFxcfbW\nrVt9WJ1veboWixYtsuPi4uzY2Fj7pptusrdv3+7jCn3nYv5d2LZt5+bm2rVr17aXL1/uo8p872Ku\nRWZmpp2QkGC3a9fO7t27t++K8zFP16Iyn5t+EQrff/+9fcMNN9iHDh2yT506ZcfHx9u7d++ucM7U\nqVPtRx55xLZt8wdt3LixXVpa6ka5XrV27Vp769at5/1Lfvfdd+0BAwbYtm3b2dnZdlJSki/L8ylP\n12Ljxo32iRMnbNs2v1TU5Gth2+b/oz59+tiDBg2yly1b5sPqfMvTtTh+/LgdExNjFxQU2LZtPi+q\nK0/XojKfm36xzMXFzGm45pprdPLkSUnSyZMn1aRJEwUFea31yzU9e/ZUo0aNzvt6TZrb4eladOvW\nTQ0bNpRkrkVhYaGvSvM5T9dCkl588UUNHTpUTZs29VFV7vB0Ld58800NGTLEGdhy1VVX+ao0n/N0\nLSrzuekXoXCu+QpFRUUVzhk3bpx27dqla6+9VvHx8Xr++ed9XaZfON/cjppu/vz5GjhwoNtluKao\nqEgrVqxwVgXwxtyeQLFv3z4dO3ZMffr0UadOnfTGG2+4XZJrKvO56Re/al/MP+CZM2cqISFBWVlZ\nOnDggPr166ft27erfv36PqjQv9ge5nbUNJmZmXrttde0YcMGt0txzYMPPqhZs2bJsizZplnY7ZJc\nU1paqq1bt+qjjz7SN998o27duqlr166Kjo52uzSfq8znpl/cKVzMnIaNGzdq2LBhkqQbbrhBrVq1\n0p49e3xapz9gbkdFO3bs0Lhx45Senu6xeaU627Jli4YPH65WrVpp+fLlmjhxotLT090uyxWRkZHq\n37+/6tatqyZNmqhXr17avn2722W5ojKfm34RChczp6FNmzZatWqVJKm4uFh79uzR9ddf70a5rmJu\nxxmHDx/WnXfeqUWLFikqKsrtclx18OBBHTp0SIcOHdLQoUM1d+7cs/4fqikGDx6s9evXq6ysTN98\n841ycnIUExPjdlmuqMznpl80H13MnIbf/e53Gj16tOLj41VeXq6nnnpKjRs3drnyqjdixAitWbNG\nR48eVWRkpNLS0lRaWiqp5s3t8HQtpk+fruPHjzvt6MHBwcrNzXWzZK/xdC1qEk/Xok2bNrr11lsV\nFxenWrVqady4cdU2FDxdi8p8blp2TW58BABU4BfNRwAA/0AoAAAchAIAwEEoAAAchAJwiR599FG9\n/PLLzuNp06bpmWeecbEioOoQCsAluuuuu/SXv/zFefzWW29p+PDhLlYEVB2/mKcABJKEhAR98cUX\n+vzzz/XFF1+oUaNGNXpWOaoXQgGohGHDhmnZsmU6cuQIdwmoVpi8BlTC7t279Ytf/EL//Oc/tXbt\n2hq71AiqH/oUgEqIiYlRSUmJIiIiCARUK9wpAAAc3CkAAByEAgDAQSgAAByEAgDAQSgAAByEAgDA\n8f8/6+7mAiT6VQAAAABJRU5ErkJggg==\n" + }, + { + "output_type": "display_data", + "png": "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\n13xudCWyv/IAAAAASUVORK5CYII=\n" + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The temperature in kelvin in state 2 is T2 = 600.0", + "The specific volume in state 3 in m^3/kg is v = 1.722" + ] + } + ], + "prompt_number": 55 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 3.8 Page no-108" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the work during the process, in kJ.", + "", + "# Given:-", + "# State 1", + "m = 0.9 # mass of air in kg", + "T1 = 300.0 # initial temperature in kelvin", + "P1 = 1.0 # initial pressure in bar", + "", + "# State 2", + "T2 = 470.0 # final temperature in kelvin", + "P2 = 6.0 # final pressure in bar", + "Q = -20.0 # heat transfer in kj", + "", + "# From table A-22 ", + "u1 = 214.07 # in KJ/kg", + "u2 = 337.32 # in KJ/Kg", + "", + "# Calculations", + "deltaU = m*(u2-u1) # change in internal energy in kj", + "W = Q - deltaU # in KJ/kg", + "", + "# Results", + "", + "print '-> The work during the process is ',W,' KJ.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The work during the process is -130.925 KJ." + ] + } + ], + "prompt_number": 56 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 3.9 Page no-109" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine (a) the final equilibrium pressure, in bar (b) the heat transfer for the process, in kJ.", + "", + "# Given:-", + "# State 1", + "m1 = 2.0 # initial mass of gas in tank 1 in kg", + "T1 = 350.0 # initial temperature in kelvin in tank1", + "p1 = 0.7 # initial pressure in bar in tank 1", + "", + "# State 2", + "m2 = 8.0 # initial mass of gas in tank 2 in kg", + "T2 = 300.0 # initial temperature in kelvin in tank 2", + "p2 = 1.2 # initial pressure in bar in tank 2", + "Tf = 315.0 # final equilibrium temperature in kelvin", + "", + "# From table A-20", + "Cv = 0.745 # in KJ/Kg.k", + "", + "# Calculations", + "pf = ((m1+m2)*Tf)/((m1*T1/p1)+(m2*T2/p2)) ", + "Ui = (m1*Cv*T1)+(m2*Cv*T2)", + "Uf = (m1+m2)*Cv*Tf", + "deltaU = Uf-Ui", + "Q = deltaU", + "", + "# Results", + "print '-> The final equilibrium pressure is',pf,'bar.'", + "print '-> The heat transfer for the process is',Q,'KJ.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The final equilibrium pressure is 1.05 bar.", + "-> The heat transfer for the process is 37.25 KJ." + ] + } + ], + "prompt_number": 57 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 3.11 Page no-113" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the work and heat transfer per unit mass, in kJ/kg, if n \u0003= 1.3.", + "", + "# Given:-", + "p1 = 1.0 # initial pressure in bar", + "T1 = 295.0 # initial temperature in kelvin ", + "p2 = 5.0 # final pressure in bar", + "n = 1.3 # polytropic constant", + "R = 8314/28.97 # gas constant for air in SI units", + "", + "# From table A-22", + "u2 = 306.53", + "u1 = 210.49", + "", + "# Calculations", + "T2 = T1*(p2/p1)**((n-1)/n)", + "w = R*(T2-T1)/(1-n)", + "Q = u2-u1+w/1000", + "", + "# Results", + "print '-> The work done per unit mass is ',w/1000,'KJ/kg.'", + "print '-> The heat transfer per unit mass is',Q,'KJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The work done per unit mass is -126.928201465 KJ/kg.", + "-> The heat transfer per unit mass is -30.888201465 KJ/kg." + ] + } + ], + "prompt_number": 58 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_4_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_4_2.ipynb new file mode 100644 index 00000000..9cdd4291 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_4_2.ipynb @@ -0,0 +1,579 @@ +{ + "metadata": { + "name": "Chapter 4" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 4:- Control Volume Analysis Using Energy" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 4.1 Page no-125" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the mass flow rates at inlet 2 and at the exit, in kg/s, and the velocity at inlet 2, in m/s.", + "", + "# Given:-", + "# At inlet 1:-", + "p1= 7.0 # pressure in bar", + "T2= 200.0 # temperature in degree celcius", + "m1dot= 40.0 # mass flow rate in kg/s", + "", + "# At inlet 2:-", + "p2= 7.0 # pressure in bar", + "T2= 40.0 # temperature in degree celcius", + "A2= 25.0 # area in cm^2", + "", + "# At exit:-", + "p3= 7.0 # pressure in bar", + "AV3= 0.06 # Volumetric flow rate through wxir in m^3/s", + "", + "# From table A-3", + "v3 = (1.108)*(10**(-3)) # specific volume at the exit in m^3/kg", + "", + "# from table A-2", + "v2= (1.0078)*(10**(-3)) # specific volume in state 2 in m^3/kg", + "", + "# Calculation:-", + "m3dot= AV3/v3 # mass flow rate at exit", + "m2dot = m3dot-m1dot # mass flow rate at inlet 2", + "V2= (m2dot*v2)/(A2*(10**(-4)))", + "", + "# Results:-", + "print '-> The mass flow rate at the inlet 2 is', round(m2dot,2),' kg/s.'", + "print '-> The mass flow rate at the exit is', round(m3dot,2),' kg/s.'", + "print '-> The velocity at the inlet is ', round(V2,2),'m/s.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The mass flow rate at the inlet 2 is 14.15 kg/s.", + "-> The mass flow rate at the exit is 54.15 kg/s.", + "-> The velocity at the inlet is 5.7 m/s." + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 4.3 Page no-135" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the exit area of the nozzle, in m2.", + "", + "# Given:-", + "p1= 40.0 # pressure in bar", + "T1= 400.0 # temperature in degree celcius", + "V1= 10.0 # velocity m/s", + "", + "# At exit:-", + "p2= 10.0 # pressure in bar", + "V2= 665.0 # velocity in m/s", + "mdot= 2.0 # mass flow rate in kg/s", + "", + "# From table A-4", + "h1= 3213.6 # snpecific enthalpy in kJ/kg", + "v2 = 0.1627 # specific volume at the exit in m^3/kg", + "", + "# Calculation:-", + "h2 = h1 + ((V1**2-V2**2)/2)/1000 # snpecific enthalpy in kJ/kg", + "A2=(mdot*v2)/V2 # Exit area", + "", + "# Results:-", + "print '-> The exit Area of the nozzle is', round(A2,4),'m^2.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The exit Area of the nozzle is 0.0005 m^2." + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 4.4 Page no-138" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculate the rate of heat transfer between the turbine and surroundings, in kW.", + "", + "# Given:-", + "m1dot = 4600.0 # mass flow rate in kg/h", + "Wcvdot= 1000.0 # turbine power output in kv", + "p1= 60.0 # pressure in bar", + "T1=400.0 # temperature in degree celc", + "V1= 10.0 # velocity in m/s", + "", + "# At exit:-", + "p2= 0.10 # pressure in bar", + "q2= 0.90 # quality ", + "V2= 50.0 # velocity in m/s", + "", + "# From table A-2 and A-3:-", + "h1= 3177.2 # specific enthalpy at inlet in kJ/kg", + "hf2= 191.83", + "hg2= 2584.63", + "", + "# Calculation:-", + "h2 = hf2+q2*(hg2-hf2) # specific enthalpy at exit in kJ/kg", + "Qcvdot = Wcvdot + m1dot*((h2-h1)+(V2**2- V1**2)/(2*1000))/3600", + " ", + "# Results:-", + "print '-> The rate of heat transfer between the turbine and surroundings is',round(Qcvdot,2),'kW.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rate of heat transfer between the turbine and surroundings is -61.39 kW." + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 4.5 Page no-140" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# calculate the power input to the compressor, in kW.", + "", + "# Given:-", + "p1=1.00 # pressure in bar", + "t1= 290.00 # temperature in kelvin", + "A1= 0.1 # area in m^2", + "V1= 6.00 # velocity in m/s", + "", + "# At exit:-", + "", + "p2=7.00 # pressure in bar", + "t2= 450.00 # temperature in kelvin", + "V2= 2.00 # velocity in m/s", + "Qcvdot= -180.0 # heat transfer rate in kJ/min", + "R= 8.314 # universal gas constant in SI units", + "", + "# from table A-22", + "", + "h1= 290.16 # specific enthalpy in kJ/kg", + "h2= 451.8 # specific enthalpy in kJ/kg", + "", + "# Calculations:-", + "", + "v1 = (R*1000*t1)/(28.97*p1*10**5) # specific volume", + "mdot=(A1*V1)/v1 # mass flow rate", + "Wcvdot = Qcvdot/60 + mdot*((h1-h2)+(V1**2-V2**2)/(2*1000))", + "", + "# Results:-", + " ", + "print '-> The power input to the compressor is ',round(Wcvdot,2),'kW.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The power input to the compressor is -119.52 kW." + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 4.6 Page no-141" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the power input to the motor, in kW.", + "", + "# Declaration of variables:-", + "# At Entry:=", + "t1=20.0 # Temperatue in deg celcius", + "p1=1.0 # pressure in atm", + "AV1= 0.1 # volumetric flow rate in litre/s", + "D1=2.5 # Diameter of th hose in cm", + "", + "# At Exit:=", + "t2=23.0 # temperatuer in deg celcius", + "p2=1.0 # pressure in atm", + "V2=50.0 # Velocity in m/s", + "Z2=5.0 # elevation in m", + "g= 9.8 # acceleration due to gravity in m/s^2", + "", + "# from table A-2 and A-19:-", + "", + "v= (1.0018)*((10.0)**(-3)) # specific volume in m^3/kg", + "c= 4.18 ", + "", + "# Calculation:-", + "mdot = (AV1/1000)/v # mass flow rate in kg/s", + "V1= (AV1/1000)/(3.14*(D1/(2*100))**2) # Entry velocity in m/s", + "deltah = c*(t2-t1)+v*(p2-p1)", + "Wcvdot= ((mdot*10)/9)*(-deltah+(V1**2-V2**2)/(2*1000)+g*(0-Z2)/1000)", + "", + "# Results:-", + "print '-> The power input to the motor is', round(Wcvdot,2),'KW.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The power input to the motor is -1.53 KW." + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 4.7:- Page no-144" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine (a) the ratio of the mass flow rate of the cooling water to the mass flow rate of the condensing stream. ", + "# (b) the rate of energy transfer from the condensing steam to the cooling water.", + "", + "# Declaration of variables:-", + "# Entering:-", + "p1=0.1 # pressure in bar", + "x1= 0.95 # Quality", + "p2= 0.1 # pressure in bar", + "t2= 45.0 # temperature in deg celcius", + "t3=20.0 # temperature of cooling entry in deg cel", + "t4=35.0 # temperature of cooling exit", + "", + "# From table A-3", + "hf= 191.53 # Enthalpy in KJ/kg", + "hg= 2584.7 # Enthalpy in KJ/kg", + "h2=188.45 # Assumption at states 2,3 and 4, h is approx equal to hf(T), in kJ/kg", + "deltah4_3= 62.7 # Assumption 4, in kJ/kg", + "", + "", + "# Calculations:-", + "h1= hf + x1*(hg-hf)", + "ratio= (h1-h2)/(deltah4_3)", + "QRate= (h2-h1) # Part B", + "", + "# Results:-", + "print '-> The rate of the mass flow rate of the cooling water to the mass flow rate of the condenstaing stream is (m3dot/m1dot)',round(ratio,2)", + "print '-> The rate of energy transfer from the condensing steam to the cooling water of the steam passing through the condenser is',round(QRate,2),'kJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rate of the mass flow rate of the cooling water to the mass flow rate of the condenstaing stream is (m3dot/m1dot) 36.31", + "-> The rate of energy transfer from the condensing steam to the cooling water of the steam passing through the condenser is -2276.59 kJ/kg." + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 4.8:- Page no-146" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the smallest fan inlet diameter,for which the limits on the entering air velocity and exit air temperature are met.", + "", + "# Given:-", + "T1 = 293.0 # In kelvin", + "P1= 1.01325 * (10**5) # In pascal", + "V1max= 1.3 # maximum velocity of entering air in m/s", + "T2max= 305.0 # maximum temperature at the exit in kelvin", + "pec= -80.0 # power received by electronic components in watt", + "Pf= -18.0 # Power received by fan in watt", + "R= 8.314 # Universal gas constant", + "M= 28.97*(10**(-3)) # Molar mass of air in kg", + "Qcvdot=0 # Heat transfer from the outer surface of the electronics enclosure to the surroundings is negligible.", + "Cp= 1.005*(10**3) # in j/kg*k", + "pi=3.14", + "", + "# Calculations:-", + "", + "Wcvdot = pec +Pf # total electric power provided to electronic components and fan in watt", + "mdotmin= (-Wcvdot)/(Cp*(T2max-T1)) # minimum mass flow rate", + "v1= ((R/M)*T1)/P1 # specific volume", + "A1min = (mdotmin*v1)/V1max", + "D1min = (4*A1min/(pi))**(0.5)", + "", + "# Results:-", + "print '-> The smallest fan inlet diameter is',round(D1min*100,2),'cm.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The smallest fan inlet diameter is 8.13 cm." + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 4.9 Page no-148" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the quality of the steam in the supply line.", + "", + "# Given:-", + "P1 = 20.0 # pressure in supply line in bars", + "P2 = 1.0 # exhaust pressure in bar", + "T2 = 120.0 # exhaust temperature in degree celcius", + "", + "# from table A-3 at 20 bars", + "hf1 = 908.79 # Enthalpy in kj/kg", + "hg1 = 2799.5 # Enthalpy in kj/kg", + "", + "# from table A-4, at 1 bar and 120 degree celcius", + "h2 = 2766.6 # in kj/kg", + "h1 = h2 # from throttling process assumption", + "", + "", + "# Calculations:-", + "x1 = (h1-hf1)/(hg1-hf1)", + "", + "# Results:-", + "print '-> The quality of the steam in the supply line is',round(x1,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The quality of the steam in the supply line is 0.98" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 4.10 Page no-150" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# (a) Determine the power developed by the turbine (b) Determine the turbine inlet temperature, in \u0004C.", + "", + "# Given:-", + "P1 = 1.0 # pressure of industrial discharge in bar", + "T1 = 478.0 # temperature of industrial discharge in kelvin", + "m1dot = 69.78 # mass flow rate of industrial discharge in kg/s", + "T2 = 400.0 # temperature of exit products from steam generator in kelvin", + "P2 = 1.0 # pressure of exit products from steam generator in bar", + "P3 = 0.275 # pressure of water stream entering the generator in Mpa", + "T3 = 38.9 # temperature of water stream entering the generator in degree celcius", + "m3dot = 2.079 # mass flow rate of water stream entering in kg/s", + "P5 = 0.07 # exit pressure of the turbine in bars", + "x5 = 0.93 # quality of turbine exit", + "", + "# Part (a)", + "m2dot = m1dot # since gas and water streams do not mix", + "m5dot = m3dot # --DO", + "", + "# from table A-22, A-2 and A-3:-", + "h1 = 480.3 # in kj/kg", + "h2 = 400.98 # in Kj/kg", + "h3 = 162.9 # assumption: h3 = hf(T3), units in Kj/kg", + "hf5 = 161.0 # in kj/kg", + "hg5 = 2571.72 # in kj/kg", + "", + "# Part (b)", + "P4 = P3 # from the assumption that there is no pressure drop for water flowing through the steam generator", + "T4 = 180 # in degree celcius", + "", + "# Calculations:-", + "h5 = hf5 + x5*(hg5-hf5)", + "Wcvdot = m1dot*h1 + m3dot*h3 - m2dot*h2 - m5dot*h5", + "h4 = h3 + (m1dot/m3dot)*(h1 -h2) # from steady state energy rate balance", + " # interpolating in table A-4, with these P4 and h4", + "# Results:-", + "print '-> The power developed by the turbine is ',round(Wcvdot,2),'kJ/s.'", + "print '-> Turbine inlet temperature is',round(T4,2),'degree celcius.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The power developed by the turbine is 877.84 kJ/s.", + "-> Turbine inlet temperature is 180.0 degree celcius." + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 4.11 Page no-153" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the amount of heat transfer, in kJ. Neglect all kinetic andpotential energy effects.", + "", + "# Given:-", + "V = 0.85 # volume of tank in m^3", + "T1 = 260.0 # initial temperature of the tank in degree celcius", + "X1 = 0.7 # initial quality", + "", + "# from table A-2", + "uf1 = 1128.4 # in kg/kg", + "ug1 = 2599.0 # in kg/kg", + "", + "vf1 = 1.2755e-3 # in m^3/kg", + "vg1 = 0.04221 # in m^3/kg", + "", + "", + "", + "# for final state, from table A-2,", + "u2 = 2599.0 # units in KJ/kg ", + "v2 = 42.21e-3 # units in m^3/Kg", + "he = 2796.6 # units in KJ/kg", + "", + "# Calculations:-", + "u1 = uf1 + X1*(ug1-uf1) # in kj/kg", + "v1 = vf1 + X1*(vg1-vf1) # in m^3/kg", + "m1 = V/v1 # initial mass in kg", + "m2 = V/v2 # final mass in kg", + "U2 = m2*u2 # final internal energy in KJ", + "U1 = m1*u1 # initial internal energy in KJ", + "Qcv = (U2-U1) - he*(m2-m1) ", + "", + "# Results:-", + "print '-> The amount of heat transfer is',round(Qcv,2),'KJ.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The amount of heat transfer is 14162.16 KJ." + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 4.12 Page no-155" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the amount of work developed by the turbine,in kJ.", + "", + "# Given:- ", + "Pv = 15.0 # pressure in the vessel in bar", + "Tv = 320.0 # temperature in the vessel in degree celcius", + "Vt = 0.6 # volume of a tank in m^3", + "Tt = 400.0 # temperature in the tank in degree celcius when the tank is full", + "", + "# Since the tank is initially empty:-", + "m1 = 0", + "u1 = 0", + "", + "# From table A-4, at 15bar and 400 degree celcius:-", + "v2 = 0.203 # Volume in m^3/kg", + "m2 = Vt/v2 # mass within the tank at the end of the process in kg", + "hi = 3081.9 # in kj/kg", + "u2 = 2951.3 # in kj/kg", + "", + "# Calculations:-", + "deltaUcv = m2*u2-m1*u1", + "Wcv = hi*(m2-m1)-deltaUcv", + "", + "# Results:-", + "print '-> The amount of work developed by the turbine is ',round(Wcv,2),'kJ.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The amount of work developed by the turbine is 386.01 kJ." + ] + } + ], + "prompt_number": 11 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_5_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_5_2.ipynb new file mode 100644 index 00000000..6df0d0a2 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_5_2.ipynb @@ -0,0 +1,133 @@ +{ + "metadata": { + "name": "Chapter 5" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "#Chapter 5 :- The Second Law of Thermodynamics" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 5.1 Page no- 194" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Inventor claims to have developed a power cycle . Evaluate this claim.", + "", + "# Given :-", + "W = 410.00 # net work output in kj claimed ", + "Q = 1000.00 # energy input by heat transfer in kj", + "Tc = 300.00 # temperature of cold reservoir in kelvin", + "TH = 500.00 # temperature of hot reservoir in kelvin", + "", + "# Calculations ", + "eta = W/Q # thermal efficiency", + "etamax = 1-(Tc/TH)", + "", + "# Results", + "print '-> Eta = ',round(eta,4)", + "print '-> Etamax = ',round(etamax,4)", + "print '-> Since eta is more than etamax, the claim is not authentic'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Eta = 0.41", + "-> Etamax = 0.4", + "-> Since eta is more than etamax, the claim is not authentic" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 5.2 Page no- 195" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the COP of the refrigerator and compare with the COP of a reversible refrigeration cycle operating between reservoirs at the same two temperatures.", + "", + "# Given :-", + "Qcdot = 8000.00 # in kj/h", + "Wcycledot = 3200.00 # in kj/h", + "Tc = 268.00 # temperature of compartment in kelvin", + "TH = 295.00 # temperature of the surrounding air in kelvin", + "", + "# Calculations ", + "beta = Qcdot/Wcycledot # coefficient of performance", + "betamax = Tc/(TH-Tc) # reversible coefficient of performance", + "", + "# Results", + "print '-> Coefficient of performance is ',round(beta,3)", + "print '-> Coefficient of performance of a reversible cycle is ',round(betamax,3)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Coefficient of performance is 2.5", + "-> Coefficient of performance of a reversible cycle is 9.926" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Eample 5.3 Page no- 196" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# An electric heat pump, supply this energy, determine the minimum theoretical work input for one day.", + "", + "# Given :-", + "Tc = 283.0 # in kelvin", + "TH = 295.0 # in kelvin", + "QH = 5*(10**5) # in kj per day", + "", + "# Calculations", + "Wcyclemin = (1-(Tc/TH))*QH", + "", + "# Results", + "print '-> Minimum theoretical work input for one day of operation in kJ is: ',round(Wcyclemin,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Minimum theoretical work input for one day of operation in kJ is: 20338.98" + ] + } + ], + "prompt_number": 3 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_6_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_6_2.ipynb new file mode 100644 index 00000000..5360471d --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_6_2.ipynb @@ -0,0 +1,748 @@ +{ + "metadata": { + "name": "Chapter 6" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 6 :- Using Entropy" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.1 Page no- 219" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the work and heat transfer per unit of mass, each in kJ/kg.", + "", + "# Given:-", + "T = 373.15 # temperature in kelvin", + "", + "# From table A-2", + "", + "p = 1.014*(10**5) # pressure in pascal", + "vg = 1.673", + "vf = 1.0435e-3", + "sg = 7.3549", + "sf = 1.3069", + "", + "# Calculations", + "w = p*(vg-vf)*(10**(-3))", + "Q = T*(sg-sf)", + "", + "# Results ", + "print '-> The work per unit mass is',round(w,3),'KJ/kg.'", + "print '-> The heat transfer per unit mass is ',round(Q,2),'KJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The work per unit mass is 169.536 KJ/kg.", + "-> The heat transfer per unit mass is 2256.81 KJ/kg." + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.2 Page no- 224" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the net work per unit mass and the amount of entropy produced per unit mass", + "", + "# Given:-", + "# Assumptions:", + "\"\"\"", + "1. The water in the piston\u2013cylinder assembly is a closed system.", + "", + "2. There is no heat transfer with the surroundings.", + "", + "3. The system is at an equilibrium state initially and finally. There is no", + "change in kinetic or potential energy between these two states.\"\"\"", + "", + "# From table A-2 at 100 degree celcius", + "ug = 2506.5 # in kj/kg", + "uf = 418.94 # in kj/kg", + "sg = 7.3549", + "sf = 1.3069", + "", + "", + "# Calculations:-", + "# From energy balance", + "W = -(ug-uf)", + "# From entropy balance", + "sigmabym = (sg-sf)", + "", + "# Results", + "print '-> The net work per unit mass is ',round(W,2),'KJ/kg.'", + "print '-> The amount of entropy produced per unit mass is ',round(sigmabym,2),'kJ/kg.k.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The net work per unit mass is -2087.56 KJ/kg.", + "-> The amount of entropy produced per unit mass is 6.05 kJ/kg.k." + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.3 Page no-225" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the minimum theoretical work input required per unit mass of refrigerant, in kJ/kg.", + "", + "# Given:-", + "T1 = 273.0 # initial temperature of saturated vapor in kelvin", + "P2 = 0.7*(10**6) # final pressure in pascal", + "", + "# From table A-10,", + "u1 = 227.06 # in kj/kg", + "", + "# minimum theoretical work corresponds to state of isentropic compression", + "# From table A-12,", + "u2s = 244.32 # in kj/kg", + " ", + "# Calculations ", + "Wmin = u2s-u1", + "", + "# Results", + "print '-> The minimum theoretical work input required per unit mass of refrigerant is: ',round(Wmin,2),'kJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The minimum theoretical work input required per unit mass of refrigerant is: 17.26 kJ/kg." + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.4 Page no- 227" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Evaluate the rate of entropy production sigmadot (a) the gearbox as the system ", + "# (b) an enlarged system consisting of the gearbox and enough of its surroundings that heat transfer occurs at the temperature of the surroundings away from the immediate vicinity of the gearbox", + "", + "# Given :-", + "Qdot = -1.2 # in kilo watt", + "Tb = 300.0 # in kelvin", + "Tf = 293.0 # in kelvin", + "# Calculations", + "", + "# Part (a)", + "# From entropy balance ", + "sigmadot = -Qdot/Tb", + "", + "# Part(b)", + "# From entropy balance ", + "sigmadt = -Qdot/Tf", + "", + "# Results", + "print '-> The rate of entropy production with gearbox as system is ',round(sigmadot,5),'kw/k.'", + "print '-> The rate of entropy production with gearbox + sorrounding as system is',round(sigmadt,5),'kw/k.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rate of entropy production with gearbox as system is 0.004 kw/k.", + "-> The rate of entropy production with gearbox + sorrounding as system is 0.0041 kw/k." + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.5 Page no-229" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine (a) the final equilibrium temperatureof the metal bar and the water, in \u0004K, (b) the amount of entropy produced.", + "", + "# GIven:-", + "Tmi = 1200.0 # initial temperature of metal in kelvin", + "cm = 0.42 # specific heat of metal in KJ/kg.k", + "mm = 0.3 # mass of metal in kg", + "Twi = 300.0 # initial temperature of water in kelvin", + "cw = 4.2 # specific heat of water in KJ/Kg.k", + "mw = 9.0 # mass of water in kg", + "", + "# Calculations", + "import math", + "# Part(a)", + "# Solving energy balance equation yields", + "Tf = (mw*(cw/cm)*Twi+mm*Tmi)/(mw*(cw/cm)+mm)", + "", + "# Part (b)", + "# Solving entropy balance equation yields", + "sigma = mw*cw*math.log(Tf/Twi)+mm*cm*math.log(Tf/Tmi)", + "", + "# Results", + "print '-> The final equilibrium temperature of the metal bar and the water is',round(Tf,2),' kelvin.'", + "print '-> The amount of entropy produced is:',round(sigma,2),'kJ/k.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The final equilibrium temperature of the metal bar and the water is 302.99 kelvin.", + "-> The amount of entropy produced is: 0.2 kJ/k." + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.6 Page no- 234" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the rate at which entropy is produced within the turbine per kg of steam flowing", + "", + "# Given:-", + "P1 = 30.0 # pressure of steam entering the turbine in bar", + "T1 = 400.0 # temperature of steam entering the turbine in degree celcius", + "V1 = 160.0 # velocity of steam entering the turbine in m/s", + "T2 = 100.0 # temperature of steam exiting in degree celcius", + "V2 = 100.0 # velocity of steam exiting in m/s", + "Wcvdot = 540.0 # work produced by turbine in kJ/kg of steam", + "Tb = 350.0 # temperature of the boundary in kelvin", + "", + "# From table A-4 and table A-2", + "h1 = 3230.9 # specific enthalpy at entry in Kj/kg", + "h2 = 2676.1 # specific enthalpy at exit in kj/kg", + "", + "# Calculations", + "", + "# Reduction in mass and energy balance equations results in ", + "Qcvdot = Wcvdot + (h2 - h1)+ (V2**2-V1**2)/(2*(10**3)) # heat transfer rate", + "", + "# From table A-2", + "s2 = 7.3549 # in kj/kg.k", + "# From table A-4", + "s1 = 6.9212 # in kj/kg.k", + "", + "# From entropy and mass balance equations", + "sigmadot = -(Qcvdot/Tb) + (s2-s1)", + "", + "# Results", + "print '-> The rate at which entropy is produced within the turbine per kg of steam flowing is',round(sigmadot,2),'kJ/kg.k.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rate at which entropy is produced within the turbine per kg of steam flowing is 0.5 kJ/kg.k." + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.7 Page no- 235" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Evaluate the inventor\u2019s claim, employing the ideal gas model for air and ignoring changes in the kinetic and potential energies of the streams from inlet to exit.", + "", + "# Given:-", + "T1 = 294.0 # entry temperature of air in kelvin", + "P1 = 5.1 # entry pressure of air in bars", + "T2 = 352.0 # exit temperature of hot stream in kelvin", + "P2 = 1.0 # exit pressure of hot stream in bars", + "T3 = 255.0 # exit temperature of cold stream in kelvin", + "P3 = 1.0 # exit pressure of cold stream in bars", + "cp = 1.0 # in kj/kg.k", + "", + "# Calculations", + "import math", + "R = 8.314/28.97", + "se = 0.4*(cp*math.log((T2)/(T1))-R*math.log(P2/P1)) + 0.6*(cp*math.log((T3)/(T1))-R*math.log(P3/P1))", + " # specific entropy in kj/kg.k", + "", + "", + "# Results", + "print '-> Specific entropy in kj/kg.k = ',round(se,3),' KJ/kg.'", + "print '-> Since se > 0, the claim of the writer is true'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Specific entropy in kj/kg.k = 0.454 KJ/kg.", + "-> Since se > 0, the claim of the writer is true" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 6.8 Page no- 237" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# (a) determine the rates of entropyproduction, in kW/K, for control volumes enclosing the condenser,compressor,and expansion valve, respectively. ", + "# (b) Discuss the sources of irreversibilityin the components considered in part (a).", + "", + "# Given:-", + "P1 = 3.5 # pressure of refrigerant entering the compressor in bars", + "T1 = 268.0 # temperature of refrigerant entering the compressor in kelvin", + "P2 = 14.0 # pressure of refrigerant entering the condenser in bars", + "T2 = 348.0 # temperature of refrigerant entering the condenser in kelvin", + "P3 = 14.0 # pressure of refrigerant exiting the condenser in bars", + "T3 = 301.0 # temperature of refrigerant exiting the condenser in kelvin", + "P4 = 3.5 # pressure of refrigerant after passing through expansion valve in bars", + "P5 = 1.0 # pressure of indoor return air entering the condenser in bars", + "T5 = 293.0 # temperature of indoor return air entering the condenser in kelvin", + "AV5 = 0.42 # volumetric flow rate of indoor return air entering the condenser in m^3/s", + "P6 = 1.0 # pressure of return air exiting the condenser in bar", + "T6 = 323.0 # temperature of return air exiting the condenser in kelvin", + "", + "# Part(a)", + "", + "# From table A-9", + "s1 = 0.9572 # in kj/kg.k", + "# Interpolating in table A-9", + "s2 = 0.98225 # in kj/kg.k", + "h2 = 294.17 # in kj/kg", + "# From table A-7", + "s3 = 0.2936 # in kj/kg.k", + "h3 = 79.05 # in kj/kg", + "", + "h4 = h3 # since expansion through valve is throttling process", + "", + "# From table A-8", + "hf4 = 33.09 # in kj/kg", + "hg4 = 246.00 # in kj/kg", + "sf4 = 0.1328 # in kj/kg.k", + "sg4 = 0.9431 # in kj/kg.k", + "cp = 1.005 # in kj/kg.k", + "", + "# Calculations", + "import math", + "x4 = (h4-hf4)/(hg4-hf4) # quality at state 4", + "s4 = sf4 + x4*(sg4-sf4) # specific entropy at state 4", + "", + "# CONDENSER!!", + "v5 = ((8314/28.97)*T5)/(P5*(10**5)) # specific volume at state 5", + "mairdot = AV5/v5 ", + "h6 = cp*T6", + "h5 = cp*T5", + "mrefdot = mairdot*(h6-h5)/(h2-h3)", + "deltaS65 = cp*math.log(T6/T5)-(8.314/28.97)*math.log(P6/P5) # change in specific entropy", + "sigmacond = (mrefdot*(s3-s2)) + (mairdot*(deltaS65))", + "", + "# COMPRESSOR!!", + "sigmacomp = mrefdot*(s2-s1)", + "", + "# VALVE!!", + "sigmavalve = mrefdot *(s4-s3)", + "", + "# Results", + "print '-> The rates of entropy production for control volume enclosing the condenser is ',sigmacond,'kW/K.'", + "print '-> The rates of entropy production for control volume enclosing the compressor is ',sigmacomp,'kW/K.'", + "print '-> The rates of entropy production for control volume enclosing the expansion valve is ',sigmavalve,'kW/K.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rates of entropy production for control volume enclosing the condenser is 0.000724165354577 kW/K.", + "-> The rates of entropy production for control volume enclosing the compressor is 0.00175361560919 kW/K.", + "-> The rates of entropy production for control volume enclosing the expansion valve is 0.000988192525533 kW/K." + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.9 Page no-243" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the final pressure p2, using (a) pr data from Table A-22 (b) Interactive Thermodynamics: IT, and (c) a constant specific heat ratio k evaluated at the mean", + "# temperature, 475\u0004K, from Table A-20.", + "", + "# Given:-", + "P1 = 1.00 # initial pressure in bar", + "T1 = 300.00 # initial temperature in kelvin", + "T2 = 650.00 # final temperature in kelvin", + "", + "# Part(a)", + "# From table A-22", + "pr2 = 21.86 ", + "pr1 = 1.3860", + "k = 1.39 # From table A-20", + "", + "# Calculations", + "p2 = P1*(pr2/pr1)", + "p2a = P1*((T2/T1)**(k/(k-1)))", + "", + "# Results", + "print '-> P2 = ',p2,'bar.'", + "print '-> Part(b) IT software problem'", + "print '-> P2a = ',p2a,'bar.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> P2 = 15.772005772 bar.", + "-> Part(b) IT software problem", + "-> P2a = 15.7324909817 bar." + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.10 Page no- 244" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the amount of mass remaining in the tank and its temperature.", + "", + "# Given:-", + "m1 = 5.00 # initial mass in kg", + "P1 = 5.00 # initial pressure in bar", + "T1 = 500.00 # initial temperature in kelvin", + "P2 = 1.00 # final pressure in bar", + "", + "# From table A-22", + "pr1 = 8.411", + "", + "", + "", + "# Using this value of pr2 and interpolation in table A-22", + "T2 = 317.00 # in kelvin", + "", + "# Calculations ", + "pr2 = (P2/P1)*pr1", + "m2 = (P2/P1)*(T1/T2)*m1", + "", + "# Results", + "print '-> The amount of mass remaining in the tank is ',m2,'kg.'", + "print 'and its temperature is ',T2,'kelvin.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The amount of mass remaining in the tank is 1.57728706625 kg.", + "and its temperature is 317.0 kelvin." + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.11 Page no- 249" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the work developed per unit mass of steam flowing through the turbine, in kJ/kg.", + "", + "# Given:-", + "P1 = 1.00 # inlet pressure in bar", + "T1 = 593.00 # inlet temperature in kelvin", + "P2 = 1.00 # exit pressure in bar", + "eta =0.75 # turbine efficiency", + "", + "# From table A-4", + "h1 = 3105.6 # in Kj/kg", + "s1 = 7.5308 # in kj/kg.k", + "# From table A-4 at 1 bar", + "h2s = 2743.00 # in kj/kg", + "", + "# Calculations", + "w = eta*(h1 - h2s)", + "", + "# Result", + "print '-> The work developed per unit mass of steam flowing through is ',w,'kJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The work developed per unit mass of steam flowing through is 271.95 kJ/kg." + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.12 Page no-250" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the turbine efficiency.", + "", + "# Given:-", + "P1 = 3.00 # pressure of air entering in bar", + "T1 = 390.00 # temperature of air entering in kelvin", + "P2 = 1.00 # pressure of exit air", + "Wcvdot = 74.00 # work developed in kj/kg", + "", + "# From table A-22,at 390k", + "h1 = 390.88 # in kj/kg", + "pr1 = 3.481", + "", + "# From interpolation table A-22", + "h2s = 285.27 # in kj/kg", + "", + "# calculations", + "pr2 = (P2/P1)*pr1", + "Wcvdots = h1 - h2s", + "eta = Wcvdot/Wcvdots", + "", + "# Result", + "print '-> The turbine efficiency is ',round(eta,4),'.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The turbine efficiency is 0.7007 ." + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 6.13 Page no-251" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the nozzle efficiency.", + "", + "# Given:-", + "P1 = 1.00 # pressure of entering steam in Mpa", + "T1 = 593.00 # temperature of entering steam in kelvin", + "V1 = 30.00 # velocity of entering steam in m/s", + "P2 = 0.3 # pressure of exit steam in Mpa", + "T2 = 453.00 # temperature of exit steam in kelvin", + "", + "# From table A-4, at T1 = 593 kelvin and P1 = 1 Mpa;", + "# and at T2 = 453 kelvin and P2 = .3 Mpa", + "h1 = 3093.9 # in kj/kg", + "s1 = 7.1962 # in kj/kg.k", + "h2 = 2823.9 # in kj/kg", + "", + "", + "# Interpolating in table A-4", + "h2s = 2813.3 # in kj/kg", + "", + "# Calculations", + "V2squareby2 = h1 - h2 + (V1**2)/2000", + "V2squareby2s = h1 - h2s + (V1**2)/2000", + "eta = V2squareby2/V2squareby2s", + "", + "# Results", + "print '-> The nozzle efficiency is ',round(eta,4),'.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The nozzle efficiency is 0.9623 ." + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 6.14 Page no- 252" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the power, in kW, and the isentropic efficiency using (a) data from property tables,(b) Interactive Thermodynamics: IT.", + "", + "# Given:-", + "# From table A-9", + "h1 = 249.75 # in kj/kg", + "h2 = 294.17 # in kj/kg", + "mdot = 0.07 # in kg/s", + "", + "# From table A-9", + "s1 = 0.9572 # in Kj/Kg.k", + "h2s = 285.58 # in kj/kg", + "", + "# Calculations", + "wcvdot = -(mdot*(h2-h1))", + "eta = (h2s-h1)/(h2-h1) ", + "", + "# Results", + "print '-> The power in is',wcvdot,'KW.'", + "print '-> The isentropic efficiency is ',round(eta,3),'.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The power in is -3.1094 KW.", + "-> The isentropic efficiency is 0.807 ." + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 6.15 Page no-256" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the work and heat transfer per unit of mass passing through the device, in kJ/kg", + "", + "# Given:-", + "P1 = 1.00 # pressure of entering air in bar", + "T1 = 293.00 # temperature of entering air in kelvin", + "P2 = 5.00 # pressure of exit air in bar", + "n = 1.3", + "R = 8.314/28.97", + "", + "# From table A-22", + "h1 = 293.17 # in kj/kg", + "h2 = 426.35 # in kj/kg", + "", + "# Calculations", + "T2 = T1*((P2/P1)**((n-1)/n)) # in kelvin", + "wcvdot=((n*R)/(n-1))*(T1-T2) # in kj/kg", + "Qcvdot= wcvdot + (h2-h1) # in kj/kg", + "", + "# Results", + "print '-> The work per unit mass passing through the device is',round(wcvdot,2),'kJ/kg.'", + "print '-> The heat transfer per unit mass is ',round(Qcvdot,2),'kJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The work per unit mass passing through the device is -163.89 kJ/kg.", + "-> The heat transfer per unit mass is -30.71 kJ/kg." + ] + } + ], + "prompt_number": 15 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_7_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_7_2.ipynb new file mode 100644 index 00000000..920ab6d8 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_7_2.ipynb @@ -0,0 +1,693 @@ +{ + "metadata": { + "name": "Chapter 7" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 7 :- Exergy Analysis" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 7.1 Page no-279" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the specific exergy of the gas, in kJ/kg. ", + "", + "# Given:-", + "v = 2450.00 # volume of gaseous products in cm^3", + "P = 7.00 # pressure of gaseous product in bar", + "T = 867.00 # temperature of gaseous product in degree celcius", + "T0 = 300.00 # in kelvin", + "P0 = 1.013 # in bar", + "", + "# From table A-22", + "u = 880.35 # in kj/kg", + "u0 = 214.07 # in kj/kg", + "s0T = 3.11883 # in kj/kg.k", + "s0T0 = 1.70203 # in kj/kg.k", + "", + "# Calculations", + "import math", + "e = (u-u0) + (P0*(8.314/28.97)*(((T+273)/P)-(T0/P0))) - T0*(s0T-s0T0-(8.314/28.97)*math.log(P/P0)) # kj/kg", + "", + "# Results", + "print '-> The specific exergy of the gas is ',round(e,3),'kJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The specific exergy of the gas is 368.912 kJ/kg." + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 7.2 Page no-280" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine(a) the initial exergy, final exergy, and change in exergy of the refrigerant, each in kJ. ", + "# (b) the change in exergy of the suspended mass, in kJ.", + "# (c) the change in exergy of an isolated system of the vessel and pulley\u2013mass assembly, in kJ. ", + "# Discuss the results obtained, and compare with the respective energy changes. Let T0 \u0003= 293 K (20\u0004C), p0 =\u0003 1 bar.", + "", + "# Given:-", + "mR = 1.11 # mass of the refrigerant in kg", + "T1 = -28.00 # initial temperature of the saturated vapor in degree celcius", + "P2 = 1.4 # final pressure of the refrigerant in bar", + "T0 = 293.00 # in kelvin", + "P0 = 1.00 # in bar", + "", + "# Part (a)", + "# From table A-10", + "u1 = 211.29 # in kj/kg", + "v1 = 0.2052 # in m^3/kg", + "s1 = 0.9411 # in kj/kg.k", + "# From table A-12", + "u0 = 246.67 # in kj/kg", + "v0 = 0.23349 # in m^3/kg", + "s0 = 1.0829 # in kj/kg.k", + "", + "# From table A-12", + "u2 = 300.16 # in kj/kg", + "s2 = 1.2369 # in kj/kg.k", + "v2 = v1", + "", + "# Calculations ", + "E1 = mR*((u1-u0) + P0*(10**5)*(v1-v0)*(10**(-3))-T0*(s1-s0))", + "E2 = mR*((u2-u0) + P0*(10**5)*(v2-v0)*(10**(-3))-T0*(s2-s0))", + "", + "# Results for Part A", + "print '-> Part(a) The initial exergy is ',round(E1,2),'kJ.'", + "print '-> The final exergy is ',round(E2,2),'kJ.'", + "print '-> The change in exergy of the refrigerant is ',round(E2-E1,2),'kJ.'", + "", + "", + "# Part (b)", + "# Calculations", + "deltaU = mR*(u2-u1)", + "# From energy balance", + "deltaPE = -deltaU", + "# With the assumption::The only significant changes of state are experienced by the refrigerant and the suspended mass. For the refrigerant, ", + "# there is no change in kinetic or potential energy. For the suspended mass, there is no change in kinetic or internal energy. Elevation is ", + "# the only intensive property of the suspended mass that changes", + "deltaE = deltaPE", + "", + "# Results for part b", + "print '-> Part(b)The change in exergy of the suspended mass is ',round(deltaE,3),'kJ.'", + "", + "", + "# Part(c)", + "# Calculations", + "deltaEiso = (E2-E1) + deltaE", + "", + "# Results", + "print '-> Part(c)The change in exergy of an isolated system of the vessel and pulley\u2013mass assembly is ',round(deltaEiso,2),'kJ.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Part(a) The initial exergy is 3.71 kJ.", + "-> The final exergy is 6.15 kJ.", + "-> The change in exergy of the refrigerant is 2.44 kJ.", + "-> Part(b)The change in exergy of the suspended mass is -98.646 kJ.", + "-> Part(c)The change in exergy of an isolated system of the vessel and pulley\u2013mass assembly is -96.2 kJ." + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 7.3 Page no-287" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine on a unit of mass basis the change in exergy, the exergy transfer accompanying work, the exergy transfer accompanying heat, ", + "# and the exergy destruction, ", + "", + "# Given :-", + "T = 373.15 # initial temperature of saturated liquid in kelvin", + "T0 = 293.15 # in kelvin", + "P0 = 1.014 # in bar", + "", + "# Part(a)", + "# From table A-2", + "ug = 2506.5 # in kj/kg", + "uf = 418.94 # in kj/kg", + "vg = 1.673 # in m^3/kg", + "vf = 1.0435*(10**(-3)) # in m^3/kg", + "sg = 7.3549 # in kj/kg.k", + "sf = 1.3069 # in kj/kg.k", + "", + "", + "# Calculations ", + "# Energy transfer accompanying work", + "etaw = 0 # since p = p0", + "# Exergy transfer accompanying heat", + "Q = 2257 # in kj/kg,obtained from example 6.1", + "etah = (1-(T0/T))*Q", + "", + "# Exergy destruction", + "ed = 0 # since the process is accomplished without any irreversibilities", + "deltae = ug-uf + P0*(10**5)*(vg-vf)/(10**3)-T0*(sg-sf)", + "", + "# Results", + "print '-> Part(a)the change in exergy is',round(deltae,2),'kJ/kg.'", + "print '-> The exergy transfer accompanying work is',round(etaw,2),'kJ/kg.'", + "print '-> The exergy transfer accompanying heat is',round(etah,2),'kJ/kg.'", + "print '-> The exergy destruction is',round(ed,2),'kJ/kg.'", + "", + "", + "# Part(b)", + "Deltae = deltae # since the end states are same ", + "Etah = 0 # since process is adiabatic", + "# Exergy transfer along work", + "W = -2087.56 # in kj/kg from example 6.2", + "Etaw = W- P0*(10**5)*(vg-vf)/(10**3)", + "# Exergy destruction", + "Ed = -(Deltae+Etaw)", + "", + "# Results", + "print '-> Part(b)the change in exergy is ',round(Deltae,2),'kJ/kg.'", + "print '-> The exergy transfer accompanying work is',round(Etaw,2),'kJ/kg.'", + "print '-> The exergy transfer accompanying heat is',round(Etah,2),'kJ/kg.'", + "print '-> The exergy destruction is',round(Ed,2),'kJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Part(a)the change in exergy is 484.13 kJ/kg.", + "-> The exergy transfer accompanying work is 0.0 kJ/kg.", + "-> The exergy transfer accompanying heat is 483.88 kJ/kg.", + "-> The exergy destruction is 0.0 kJ/kg.", + "-> Part(b)the change in exergy is 484.13 kJ/kg.", + "-> The exergy transfer accompanying work is -2257.1 kJ/kg.", + "-> The exergy transfer accompanying heat is 0.0 kJ/kg.", + "-> The exergy destruction is 1772.97 kJ/kg." + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 7.4 Page no-289" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# For the gearbox of Examples 2.4 and 6.4(a), develop a full exergy accounting of the power input. ", + "", + "# Given:-", + "T0 = 293.00 # in kelvin", + "Qdot = -1.2 # in KW, from example 6.4a", + "Tb = 300.00 # temperature at the outer surface of the gearbox in kelvin from example 6.4a", + "sigmadot = 0.004 # rate of entropy production in KW/k from example 6.4a", + "", + "# Calculations", + "R = -(1-T0/Tb)*Qdot # time rate of exergy transfer accompanying heat", + "Eddot = T0*sigmadot # rate of exergy destruction", + "", + "# Results", + "print '-> Balance sheet'", + "print '* Rate of exergy in high speed shaft 60Kw' ", + "print '-> Disposition of the exergy: Rate of exergy out low-speed shaft 58.8Kw' ", + "print '-> Heat transfer is',round(R,3),'kw.'", + "print '-> Rate of exergy destruction is',round(Eddot,3),'kw.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Balance sheet", + "* Rate of exergy in high speed shaft 60Kw", + "-> Disposition of the exergy: Rate of exergy out low-speed shaft 58.8Kw", + "-> Heat transfer is 0.028 kw.", + "-> Rate of exergy destruction is 1.172 kw." + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 7.5 Page no-295" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the specific flow exergy at the inlet and exit and the exergy destruction per unit of mass flowing", + "", + "# Given:-", + "p1 = 3.0 # entry pressure in Mpa", + "p2 = 0.5 # exit pressure in Mpa", + "T1 = 320.0 # entry temperature in degree celcius", + "T0 = 25.0 # in degree celcius", + "p0 = 1.0 # in atm", + "", + "# From table A-4", + "h1 = 3043.4 # in kj/kg", + "s1 = 6.6245 # in kj/kg.k", + "h2 = h1 # from reduction of the steady-state mass and energy rate balances", + "s2 = 7.4223 # Interpolating at a pressure of 0.5 MPa with h2 = h1, units in kj/kg.k", + "", + "# From table A-2", + "h0 = 104.89 # in kj/kg", + "s0 = 0.3674 # in kj/kg.k", + "", + "# Calculations ", + "ef1 = h1-h0-(T0+273)*(s1-s0) # flow exergy at the inlet", + "ef2 = h2-h0-(T0+273)*(s2-s0) # flow exergy at the exit", + "# From the steady-state form of the exergy rate balance", + "Ed = ef1-ef2 # the exergy destruction per unit of mass flowing is", + "", + "# Results ", + "print '-> The specific flow exergy at the inlet is ',round(ef1,2),'kJ/kg.'", + "print '-> The specific flow exergy at the exit is',round(ef2,2),'kJ/kg.'", + "print '-> The exergy destruction per unit of mass flowing is',round(Ed,2),'kJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The specific flow exergy at the inlet is 1073.89 kJ/kg.", + "-> The specific flow exergy at the exit is 836.15 kJ/kg.", + "-> The exergy destruction per unit of mass flowing is 237.74 kJ/kg." + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 7.6 Page no-296" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine for the heat exchanger", + "# (a) the exit temperature of the combustion gas, in K.", + "# (b) the net change in the flow exergy rate from inlet to exit of each stream, in MW. ", + "# (c) the rate exergy is destroyed, in MW. Let T0 =\u0003 300 K, p0 =\u0003 1 bar.", + "", + "# Given:-", + "T1 = 610.0 # temperature of the air entering heat exchanger in kelvin", + "p1 = 10.0 # pressure of the air entering heat exchanger in bar", + "T2 = 860.0 # temperature of the air exiting the heat exchanger in kelvin", + "p2 = 9.70 # pressure of the air exiting the heat exchanger in bar", + "T3 = 1020.0 # temperature of entering hot combustion gas in kelvin", + "p3 = 1.10 # pressure of entering hot combustion gas in bar", + "p4 = 1.0 # pressure of exiting hot combustion gas in bar", + "mdot = 90.0 # mass flow rate in kg/s", + "T0 = 300.0 # in kelvin", + "p0 = 1.0 # in bar", + "", + "# Part (a)", + "# From table A-22", + "h1 = 617.53 # in kj/kg", + "h2 = 888.27 # in kj/kg", + "h3 = 1068.89 # in kj/kg", + "", + "# Calculations", + "\"\"\"From reduction of mass and energy rate balances for the control volume at", + "steady state \"\"\"", + "h4 = h3+h1-h2", + "", + "# Using interpolation in table A-22 gives", + "T4 = 778 # in kelvin", + "", + "# Results", + "print '-> The exit temperature of the combustion gas is',T4,'kelvin.'", + "", + "# Part(b)", + "# From table A-22", + "s2 = 2.79783 # in kj/kg.k", + "s1 = 2.42644 # in kj/kg.k", + "s4 = 2.68769 # in kj/kg.k", + "s3 = 2.99034 # in kj/kg.k", + "", + "# Calculations for part b", + "import math", + "deltaR = (mdot*((h2-h1)-T0*(s2-s1-(8.314/28.97)*math.log(p2/p1))))/1000", + "deltRc = mdot*((h4-h3)-T0*(s4-s3-(8.314/28.97)*math.log(p4/p3)))/1000", + "", + "# Results for part b", + "print '-> The net change in the flow exergy rate from inlet to exit of compressed gas is',round(deltaR,3),'MW.'", + "print '-> The net change in the flow exergy rate from inlet to exit of hot combustion gas is',round(deltRc,3),'MW.'", + "", + "# Part(c)", + "#From an exergy rate balance", + "Eddot = -deltaR-deltRc", + "", + "# Results ", + "print '-> The rate exergy destroyed, is',round(Eddot,3),'MW.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The exit temperature of the combustion gas is 778 kelvin.", + "-> The net change in the flow exergy rate from inlet to exit of compressed gas is 14.103 MW.", + "-> The net change in the flow exergy rate from inlet to exit of hot combustion gas is -16.934 MW.", + "-> The rate exergy destroyed, is 2.831 MW." + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 7.7 Page no-299" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Develop a full accounting of the net exergy carried in by the steam, per unit mass of steam flowing.", + "", + "# Given:-", + "p1 = 30.0 # pressure of entering steam in bar", + "t1 = 400.0 # temperature of entering steam in degree celcius", + "v1 = 160.0 # velocity of entering steam in m/s", + "t2 = 100.0 # temperature of exiting saturated vapor in degree celcius", + "v2 = 100.0 # velocity of exiting saturated vapor in m/s", + "W = 540.0 # rate of work developed in kj per kg of steam", + "Tb = 350.0 # the temperature on the boundary where heat transfer occurs in kelvin", + "T0 = 25.0 # in degree celcius", + "p0 = 1.0 # in atm", + "", + "# From table A-4", + "h1 = 3230.9 # in kj/kg", + "s1 = 6.9212 # in kj/kg.k", + "# From table A-2 ", + "h2 = 2676.1 # in kj/kg", + "s2 = 7.3549 # in kj/kg.k", + "# From example 6.6", + "Q = -22.6 # in kj/kg", + " ", + "# Calculations", + "DELTAef = (h1-h2)-(T0+273)*(s1-s2)+(v1**2-v2**2)/(2*1000)", + "# The net exergy carried in per unit mass of steam flowing in kj/kg", + "Eq = (1-(T0+273)/Tb)*(Q) # exergy transfer accompanying heat in kj/kg", + "Ed = ((1-(T0+273)/Tb)*(Q))-W+(DELTAef) # The exergy destruction determined by rearranging the steady-state form of the exergy ", + " # rate balance", + "", + "# Results", + "print '-> Balance sheet'", + "print '-> Net rate of exergy ',DELTAef,'kJ/kg,'", + "print '-> Disposition of the exergy:'", + "print '* Rate of exergy out'", + "print '-> Work',W,'kJ/kg.'", + "print '-> Heat transfer',-Eq,'.'", + "print '\u2022 Rate of exergy destruction',Ed,'kJ/kg.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Balance sheet", + "-> Net rate of exergy 691.8426 kJ/kg,", + "-> Disposition of the exergy:", + "* Rate of exergy out", + "-> Work 540.0 kJ/kg.", + "-> Heat transfer 3.35771428571 .", + "\u2022 Rate of exergy destruction 148.484885714 kJ/kg." + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 7.8 Page no-300" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Develop a full accounting of the net exergy carried in by the combustion products. Discuss the design implications of the results.", + "", + "# Given:-", + "m1dot = 69.78 # in kg/s", + "p1 = 1.0 # in bar", + "T1 = 478.0 # in kelvin", + "T2 = 400.0 # in kelvin", + "p2 = 1.0 # in bar", + "p3 = 0.275 # in Mpa", + "T3 = 38.9 # in degree celcius", + "m3dot = 2.08 # in kg/s", + "T4 = 180.0 # in degree celcius", + "p4 = 0.275 # in Mpa", + "p5 = 0.07 # in bar", + "x5 = 0.93", + "Wcvdot = 876.8 # in kW", + "T0 = 298.0 # in kelvin", + "", + "", + "# Part(a)", + "# From table A-22", + "h1 = 480.35 # in kj/kg", + "h2 = 400.97 # in kj/kg", + "s1 = 2.173 # in kj/kg", + "s2 = 1.992 # in kj/kg", + "", + "# From table A-2E", + "h3 = 162.82 # in kj/kg", + "s3 = 0.5598 # in kj/kg.k", + "# Using saturation data at 0.07 bars from Table A-3", + "h5 = 2403.27 # in kj/kg", + "s5 = 7.739 # in kj/kg.k", + "#The net rate exergy carried out by the water stream", + "", + "# From table A-4", + "h4 = 2825.0 # in kj/kg", + "s4 = 7.2196 # in kj/kg.k", + "# Calculations", + "import math", + "netRE = m1dot*(h1-h2-T0*(s1-s2-(8.314/28.97)*math.log(p1/p2))) # the net rate exergy carried into the control volume", + "netREout = m3dot*(h5-h3-T0*(s5-s3))", + "# From an exergy rate balance applied to a control volume enclosing the steam generator", + "Eddot = netRE + m3dot*(h3-h4-T0*(s3-s4)) # the rate exergy is destroyed in the heat-recovery steam generator", + "", + "# From an exergy rate balance applied to a control volume enclosing the turbine", + "EdDot = -Wcvdot + m3dot*(h4-h5-T0*(s4-s5)) # the rate exergy is destroyed in the tpurbine", + "", + "# Results ", + "print '-> balance sheet'", + "print '- Net rate of exergy in:',netRE,'kJ/kg.'", + "print '-> Disposition of the exergy:'", + "print '\u2022 Rate of exergy out'", + "print '-> power developed',1772.8-netREout-Eddot-EdDot,'kJ/kg.'", + "print '-> water stream ',netREout", + "print '\u2022 Rate of exergy destruction'", + "print '-> heat-recovery steam generator',Eddot,'kJ/kg'", + "print '-> turbine',EdDot" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> balance sheet", + "- Net rate of exergy in: 1775.34276 kJ/kg.", + "-> Disposition of the exergy:", + "\u2022 Rate of exergy out", + "-> power developed 874.25724 kJ/kg.", + "-> water stream 210.180672", + "\u2022 Rate of exergy destruction", + "-> heat-recovery steam generator 366.018792 kJ/kg", + "-> turbine 322.343296" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 7.9 Page no-302" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the daily cost of electricity to operate the compressor and the daily cost of exergy destruction in each component. Let T0 =\u0003 273", + "", + "# Given:-", + "T0 = 273.00 # in kelvin", + "pricerate = 0.08 # exergy value at $0.08 per kw.h", + "", + "# From example 6.8", + "sigmadotComp = 17.5e-4 # in kw/k", + "sigmadotValve = 9.94e-4 # in kw/k", + "sigmadotcond = 7.95e-4 # in kw/k", + "", + "# Calculations", + "# The rates of exergy destruction", + "EddotComp = T0*sigmadotComp # in kw", + "EddotValve = T0*sigmadotValve # in kw", + "Eddotcond = T0*sigmadotcond # in kw", + "", + "mCP = 3.11 # From the solution to Example 6.14, the magnitude of the compressor power in kW", + "", + "# Results", + "print '-> Daily cost in dollars of exergy destruction due to compressor irreversibilities = ',round(EddotComp*pricerate*24,3)", + "print '-> Daily cost in dollars of exergy destruction due to irreversibilities in the throttling valve = ',round(EddotValve*pricerate*24,3)", + "print '-> Daily cost in dollars of exergy destruction due to irreversibilities in the condenser = ',round(Eddotcond*pricerate*24,3)", + "print '-> Daily cost in dollars of electricity to operate compressor = ',round(mCP*pricerate*24,3)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Daily cost in dollars of exergy destruction due to compressor irreversibilities = 0.917", + "-> Daily cost in dollars of exergy destruction due to irreversibilities in the throttling valve = 0.521", + "-> Daily cost in dollars of exergy destruction due to irreversibilities in the condenser = 0.417", + "-> Daily cost in dollars of electricity to operate compressor = 5.971" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 7.10 Page no-313" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# (a) Determine the power and the rate exergy exits with the steam, each in MW. ", + "# (b) Determine the unit costs of the steam exiting the boiler, the steam exiting the turbine, and the power, each in cents per kw.h of exergy. ", + "# (c) Determine the cost rates of the steam exiting the turbine and the power, each in $/h.", + "", + "# Given:-", + "EfFdot = 100.00 # exergy rate of fuel entering the boiler in MW", + "cF = 1.44 # unit cost of fuel in cents per kw.h", + "Zbdot = 1080.00 # the cost of owning and operating boiler in dollars per hour", + "Ef1dot = 35.00 # exergy rate of exiting steam from the boiler in MW", + "p1 = 50.00 # pressure of exiting steam from the boiler in bar", + "T1 = 466.00 # temperature of exiting steam from the boiler in degree celcius", + "Ztdot = 92.00 # the cost of owning and operating turbine in dollars per hour", + "p2 = 5.00 # pressure of exiting steam from the turbine in bars", + "T2 = 205.00 # temperature of exiting steam from the turbine in degree celcius", + "m2dot = 26.15 # mass flow rate of exiting steam from the turbine in kg/s", + "T0 = 298.00 # in kelvin ", + "", + "", + "# Part(a)", + "# From table A-4,", + "h1 = 3353.54 # in kj/kg", + "h2 = 2865.96 # in kj/kg", + "s1 = 6.8773 # in kj/kg.k", + "s2 = 7.0806 # in kj/kg.k", + "", + "# Calculations", + "# From assumption,For each control volume,Qcvdot = 0 and kinetic and potential energy effects are negligible,the mass and energy rate ", + "# balances for a control volume enclosing the turbine reduce at steady state to give", + "Wedot = m2dot *(h1-h2)/1000 # power in MW", + "Ef2dot = Ef1dot+m2dot*(h2-h1-T0*(s2-s1))/1000 # the rate exergy exits with the steam in MW", + "", + "# Results", + "print '-> For the turbine,the power is',round(Wedot,2),'MW.'", + "print '-> For the turbine,the rate exergy exits with the steam is',round(Ef2dot,2),' MW.'", + "", + "# Part(b)", + "# Calculations", + "c1 = cF*(EfFdot/Ef1dot) + ((Zbdot/Ef1dot)/10**3)*100 # unit cost of exiting steam from boiler in cents/Kw.h", + "c2 = c1 # Assigning the same unit cost to the steam entering and exiting the turbine", + "ce = c1*((Ef1dot-Ef2dot)/Wedot) + ((Ztdot/Wedot)/10**3)*100 # unit cost of power in cents/kw.h", + "", + "# Results", + "print '-> The unit costs of the steam exiting the boiler of exergy is:',round(c1,2),' cents per kw.h.'", + "print '-> The unit costs of the steam exiting the turbine of exergy is:',round(c2,2),' cents per kw.h.'", + "print '-> Unit cost of power is:',ce,'cents per kw.h.'", + "", + "# Part(c)", + "C2dot = (c2*Ef2dot*10**3)/100 # cost rate for low-pressure steam in dollars per hour", + "Cedot = (ce*Wedot*10**3)/100 # cost rate for power in dollars per hour", + "", + "# Results", + "print '-> The cost rate of the steam exiting the turbine is:',round(C2dot,2),' dollars per hour.'", + "print '-> The cost rate of the power is: ',round(Cedot,2),' dollars per hour.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> For the turbine,the power is 12.75 MW.", + "-> For the turbine,the rate exergy exits with the steam is 20.67 MW.", + "-> The unit costs of the steam exiting the boiler of exergy is: 7.2 cents per kw.h.", + "-> The unit costs of the steam exiting the turbine of exergy is: 7.2 cents per kw.h.", + "-> Unit cost of power is: 8.81617975223 cents per kw.h.", + "-> The cost rate of the steam exiting the turbine is: 1487.92 dollars per hour.", + "-> The cost rate of the power is: 1124.08 dollars per hour." + ] + } + ], + "prompt_number": 10 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_8_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_8_2.ipynb new file mode 100644 index 00000000..00d349fc --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_8_2.ipynb @@ -0,0 +1,732 @@ +{ + "metadata": { + "name": "Chapter 8" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 8 :- Vapour Power Systems" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.1 Page no-331" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine thermal efficiency,back work ratio, mass flow rate of the steam,the rate of heat transfer,Qindot , into the working fluid as it passes through the boiler, rate of heat transfer,Qoutdot from the condensing", + "# steam as it passes through the condenser, mass flow rate of the condenser cooling water.", + "", + "# Given:-", + "p1 = 8.0 # pressure of saturated vapor entering the turbine in MPa", + "p3 = 0.008 # pressure of saturated liquid exiting the condenser in MPa", + "Wcycledot = 100.00 # the net power output of the cycle in MW", + "", + "# Analysis", + "# From table A-3", + "h1 = 2758.0 # in kj/kg", + "s1 = 5.7432 # in kj/kg.k", + "s2 = s1", + "sf = 0.5926 # in kj/kg.k", + "sg = 8.2287 # in kj/kg.k", + "hf = 173.88 # in kj/kg", + "hfg = 2403.1 # in kj/kg", + "v3 = 1.0084e-3 # in m^3/kg", + "", + "# State 3 is saturated liquid at 0.008 MPa, so", + "h3 = 173.88 # in kj/kg", + "", + "# Calculations", + "x2 = (s2-sf)/(sg-sf) # quality at state 2", + "h2 = hf + x2*hfg", + "p4 = p1", + "h4 = h3 + v3*(p4-p3)*10**6*10**-3 # in kj/kg", + "", + "# Part(a)", + "#Mass and energy rate balances for control volumes around the turbine and pump give, respectively", + "wtdot = h1 - h2", + "wpdot = h4-h3", + "", + "# The rate of heat transfer to the working fluid as it passes through the boiler is determined using mass and energy rate balances as", + "qindot = h1-h4", + "", + "eta = (wtdot-wpdot)/qindot # thermal efficiency)", + "", + "# Result for part a", + "print '-> The thermal efficiency for the cycle is ',round(eta,2)", + "", + "# Part(b)", + "bwr = wpdot/wtdot # back work ratio", + "", + "# Result", + "print '-> The back work ratio is ',bwr", + "", + "# Part(c)", + "mdot = (Wcycledot*10**3*3600)/((h1-h2)-(h4-h3)) # mass flow rate in kg/h", + "", + "# Result ", + "print '-> The mass flow rate of the steam is',round(mdot,2),'kg/h .'", + " ", + "# Part(d)", + "Qindot = mdot*qindot/(3600*10**3) # in MW", + "", + "# Results", + "print '-> The rate of heat transfer,Qindot , into the working fluid as it passes through the boiler, is',round(Qindot,2),'MW.'", + "", + "# Part(e)", + "Qoutdot = mdot*(h2-h3)/(3600*10**3) # in MW", + "", + "# Results", + "print '-> The rate of heat transfer,Qoutdot from the condensing steam as it passes through the condenser, is',round(Qoutdot,2),'MW.'", + "", + "# Part(f)", + "# From table A-2", + "hcwout= 146.68 # in kj/kg", + "hcwin= 62.99 # in kj/kg", + "mcwdot= (Qoutdot*10**3*3600)/(hcwout-hcwin) # in kg/h", + "", + "# Results", + "print '-> The mass flow rate of the condenser cooling water is',round(mcwdot,2),'kg/ h.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency for the cycle is 0.37", + "-> The back work ratio is 0.00836692570976", + "-> The mass flow rate of the steam is 376902.57 kg/h .", + "-> The rate of heat transfer,Qindot , into the working fluid as it passes through the boiler, is 269.7 MW.", + "-> The rate of heat transfer,Qoutdot from the condensing steam as it passes through the condenser, is 169.7 MW.", + "-> The mass flow rate of the condenser cooling water is 7299844.18 kg/ h." + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.2 Page no-338" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine for the mass flow rate of the condenser cooling water, Discuss the effects on the vapor cycle of irreversibilities within the turbine and pump.", + "", + "# Given:-", + "etat= .85 # given that the turbine and the pump each have an isentropic efficiency of 85%", + "# Analysis", + "# State 1 is the same as in Example 8.1, so", + "h1 = 2758.0 # in kj/kg", + "s1 = 5.7432 # in kj/kg.k", + "# From example 8.1 ", + "h1 = 2758.0 # in kj/kg", + "h2s = 1794.8 # in kj/kg", + "# State 3 is the same as in Example 8.1, so", + "h3 = 173.88 # in kj/kg", + "", + "# Calculations", + "h2 = h1 - etat*(h1-h2s) # in kj/kg", + "wpdot = 8.06/etat # where the value 8.06 is obtained from example 8.1", + "", + "h4 = h3 + wpdot", + "", + "# Part(a)", + "eta = ((h1-h2)-(h4-h3))/(h1-h4) # thermal efficiency", + "", + "# Result for part (a)", + "print '-> Thermal efficiency is: ',round(eta,3)", + "", + "# Part(b)", + "Wcycledot = 100 # given,a net power output of 100 MW", + "# Calculations", + "mdot = (Wcycledot*(10**3)*3600)/((h1-h2)-(h4-h3))", + "# Result for part (b)", + "print '-> The mass flow rate of steam, in kg/h, for a net power output of 100 MW is ',round(mdot,3),'kg/h.'", + "", + "# Part(c)", + "Qindot = mdot*(h1-h4)/(3600 * 10**3)", + "# Result", + "print '-> The rate of heat transfer Qindot into the working fluid as it passes through the boiler, is ',round(Qindot,3),'MW.'", + "", + "# Part(d)", + "Qoutdot = mdot*(h2-h3)/(3600*10**3)", + "# Result", + "print '-> The rate of heat transfer Qoutdotfrom the condensing steam as it passes through the condenser, is ',round(Qoutdot,3),'MW.'", + "", + "# Part(e)", + "# From table A-2", + "hcwout = 146.68 # in kj/kg", + "hcwin = 62.99 # in kj/kg", + "mcwdot = (Qoutdot*10**3*3600)/(hcwout-hcwin)", + "# Result", + "print '-> The mass flow rate of the condenser cooling water, is: ',round(mcwdot,3),'kg/h.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Thermal efficiency is: 0.314", + "-> The mass flow rate of steam, in kg/h, for a net power output of 100 MW is 444863.139 kg/h.", + "-> The rate of heat transfer Qindot into the working fluid as it passes through the boiler, is 318.156 MW.", + "-> The rate of heat transfer Qoutdotfrom the condensing steam as it passes through the condenser, is 218.156 MW.", + "-> The mass flow rate of the condenser cooling water, is: 9384172.373 kg/h." + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.3 Page no-341" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine", + "# (a) the thermal efficiency of the cycle, ", + "# (b) the mass flow rate of steam, in kg/h, ", + "# (c) the rate of heat transfer Qoutdot from the condensing steam as it passes through the condenser", + "# Discuss the effects of reheat on the vapor power cycle.", + "", + "# Given:-", + "T1 = 480.0 # temperature of steam entering the first stage turbine in degree celcius", + "p1 = 8.0 # pressure of steam entering the first stage turbine in MPa", + "p2 = 0.7 # pressure of steam exiting the first stage turbine in MPa", + "T3 = 440.0 # temperature of steam before entering the second stage turbine ", + "Pcond = 0.008 # condenser pressure in MPa", + "Wcycledot = 100.0 # the net power output in MW", + "", + "# Analysis", + "# From table A-4", + "h1 = 3348.4 # in kj/kg", + "s1 = 6.6586 # in kj/kg.k", + "s2 = s1 # isentropic expansion through the first-stage turbine", + "# From table A-3", + "sf = 1.9922 # in kj/kg.k", + "sg = 6.708 # in kj/kg.k", + "hf = 697.22 # in kj/kg", + "hfg = 2066.3 # in kj/kg", + "", + "# Calculations ", + "x2 = (s2-sf)/(sg-sf)", + "h2 = hf + x2*hfg", + "# State 3 is superheated vapor with p3 =\u0003 0.7 MPa and T3= \u0003 440\u0004C, so from Table A-4", + "h3 = 3353.3 # in kj/kg", + "s3 = 7.7571 # in kj/kg.k", + "s4 = s3 # isentropic expansion through the second-stage turbine", + "# For determing quality at state 4,from table A-3", + "sf = 0.5926 # in kj/kg.k", + "sg = 8.2287 # in kj/kg.k", + "hf = 173.88 # in kj/kg", + "hfg = 2403.1 # in kj/kg", + "", + "# Calculations", + "x4 = (s4-sf)/(sg-sf)", + "h4 = hf + x4*hfg", + "", + "# State 5 is saturated liquid at 0.008 MPa, so", + "h5 = 173.88", + "# The state at the pump exit is the same as in Example 8.1, so", + "h6 = 181.94", + "", + "# Part(a)", + "eta = ((h1-h2)+(h3-h4)-(h6-h5))/((h1-h6)+(h3-h2))", + "# Result", + "print '-> The thermal efficiency of the cycle is:',round(eta,2)", + "", + "# Part(b)", + "mdot = (Wcycledot*3600*10**3)/((h1-h2)+(h3-h4)-(h6-h5))", + "print '-> The mass flow rate of steam, is:',round(mdot,2),'kg/h.'", + "", + "# Part(c)", + "Qoutdot = (mdot*(h4-h5))/(3600*10**3)", + "print '-> The rate of heat transfer Qoutdot from the condensing steam as it passes through the condenser, MW is',round(Qoutdot,2),'kg/h.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency of the cycle is: 0.4", + "-> The mass flow rate of steam, is: 236344.68 kg/h.", + "-> The rate of heat transfer Qoutdot from the condensing steam as it passes through the condenser, MW is 148.02 kg/h." + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.4 Page no-344" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "", + "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].", + "For more information, type 'help(pylab)'." + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the thermal efficiency. Plot the thermal efficiency versus turbine stage efficiency ranging from 85 to 100%.", + "", + "# Given :-", + "# Part (a)", + "etat = 0.85 # given efficiency", + "# From the solution to Example 8.3, the following specific enthalpy values are known, in kJ/kg", + "h1 = 3348.4", + "h2s = 2741.8", + "h3 = 3353.3", + "h4s = 2428.5", + "h5 = 173.88", + "h6 = 181.94", + "", + "", + "# Calculations", + "h2 = h1 - etat*(h1 - h2s) # The specific enthalpy at the exit of the first-stage turbine in kj/kg", + "h4 = h3 - etat*(h3-h4s) # The specific enthalpy at the exit of the second-stage turbine in kj/kg", + "eta = ((h1-h2)+(h3-h4)-(h6-h5))/((h1-h6)+(h3-h2)) ", + "", + "# Result", + "print '-> The thermal efficiency is: ',eta", + "", + "# Part (b)", + "from numpy import linspace", + "from pylab import *", + "", + "h2 = []", + "h4 = []", + "y = []", + "x = linspace(0.85,1,50)", + "for i in range(0,50):", + " h2.append(i)", + " h4.append(i)", + " y.append(i)", + " h2[i] = h1 - x[i]*(h1 - h2s) # The specific enthalpy at the exit of the first-stage turbine in kj/kg", + " h4[i] = h3 - x[i]*(h3-h4s) # The specific enthalpy at the exit of the second-stage turbine in kj/kg", + " y[i] = ((h1-h2[i])+(h3-h4[i])-(h6-h5))/((h1-h6)+(h3-h2[i])) ", + "", + "plot(x,y)", + "xlabel('isentropic turbine efficiency')", + "ylabel('cycle thermal efficiency')", + "show()" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is: 0.350865344714" + ] + }, + { + "output_type": "display_data", + "png": "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\nuJCXl2d8nJeXh+tNttILDw9Hr9dz5swZAO6++24AWrduzYABA0hNTTVXqEIIIarIbMkjJCSEw4cP\nk5ubS0lJCStXrqRfv35ljsnKyjK2INLT0wFo2bIlhYWFXLp0CYDLly+zceNGOnfubK5QhRBCVJHZ\nuq0cHR2ZP38+kZGRGAwGxo4di7e3N/Hx8QBMmDCBVatWsXjxYnQ6HU5OTqxYsQKAkydP8thjjwGg\n1+sZNmwYffr0MVeoQgghqqpGRk5q2IYNG5Snp6fy8PBQM2fOLPf8qVOnVGRkpPL391edOnVSn3/+\neZnn9Xq9CggIUI8++qjNxnnu3Dn1+OOPKy8vL+Xt7a1+/vlnm4zzvffeUz4+PsrX11cNGTJEFRUV\nWS3Os2fPqujoaOXn56fCwsLU/v37K32uLcR59OhRFRERoXx8fFSnTp3UnDlzbDLOayxxH1UnRlu6\nh24Wp6XuodGjR6s77rhD+fr6VnjMc889pzw8PJSfn59KT083/vxW7h+bSx56vV65u7urnJwcVVJS\novz9/VVGRkaZY9566y01bdo0pZT2wdeiRQtVWlpqfH7WrFlq6NChKioqymbjHDFihPrss8+UUkqV\nlpaq8+fP21ycOTk5ql27dsb/2QcNGqQWLVpktThffvll9fbbbyullDp06JB68MEHK32uLcR54sQJ\ntWvXLqWUUpcuXVIdO3a0yTivMfd9VN0YbekeqihOS95DP/74o0pPT68weaxbt0499NBDSimlduzY\nobp06VLp93cjNleepDLrQ+6++24uXrwIwMWLF2nZsiWOjloP3LFjx1i/fj3jxo0z64ys6sR54cIF\ntm7dypgxYwCti8/Z2dnm4mzWrBk6nY7CwkL0ej2FhYW4uLhYLc6DBw9y//33A+Dp6Ulubi6///57\npc61dpynTp3irrvuIiAgAAAnJye8vb3Jz8+3uTjBMvdRdWK0tXuoojgteQ+Fh4fTvHnzCp//9ttv\nGTlyJABdunTh/PnznDx58pbvH5tLHsePH6dt27bGx66urhw/frzMMU899RQHDhygTZs2+Pv7M2fO\nHONzL774Ih988AH16pn3rVUnzpycHFq3bs3o0aMJCgriqaeeorCw0ObibNGiBVOmTOGee+6hTZs2\n3H777fTq1ctqcfr7+/PNN98A2g393//+l2PHjlXqXFuI83q5ubns2rWLLl262GSclriPqhOjrd1D\n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\nhKiy/wc4PkEsSmSTZgAAAABJRU5ErkJggg==\n" + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.5 Page no-348" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine thermal efficiency, mass flow rate of steam entering the first turbine stage.", + "", + "# Given:-", + "T1 = 480.0 # temperature of steam entering the turbine in degree celcius", + "p1 = 8.0 # pressure of steam entering the turbine in MPa", + "Pcond = 0.008 # condenser pressure in MPa", + "etat = 0.85 # turbine efficiency", + "Wcycledot = 100.0 # net power output of the cycle", + "", + "", + "# Analysis", + "# With the help of steam tables", + "h1 = 3348.4 # in kj/kg", + "h2 = 2832.8 # in kj/kg", + "s2 = 6.8606 # in kj/kg.k", + "h4 = 173.88 # in kj/kg", + "# With s3s =\u0003 s2, the quality at state 3s is x3s= \u0003 0.8208; using this, we get", + "h3s = 2146.3 # in kj/kg", + "", + "# Calculations", + "# The specific enthalpy at state 3 can be determined using the efficiency of the second-stage turbine", + "h3 = h2 - etat*(h2-h3s)", + "", + "# State 6 is saturated liquid at 0.7 MPa. Thus,", + "h6 = 697.22 # in kj/kg", + "# For determining specific enthalpies at states 5 and 7 ,we have", + "p5 = 0.7 # in MPa", + "p4 = 0.008 # in MPa", + "p7 = 8.0 # in MPa", + "p6 = 0.7 # in MPa", + "v4 = 1.0084e-3 # units in m^3/kg,obtained from steam tables", + "v6 = 1.1080e-3 # units in m^3/kg,obtained from steam tables", + "", + "# Calculations", + "h5 = h4 + v4*(p5-p4)*10**6*10**-3 # in kj/kg", + "h7 = h6 + v6*(p7-p6)*10**3 # in kj/kg", + "", + "# Applying mass and energy rate balances to a control volume enclosing the open heater, we find the fraction y of the flow extracted at state 2 from", + "y = (h6-h5)/(h2-h5)", + "", + "# Part(a)", + "wtdot = (h1-h2) + (1-y)*(h2-h3) # the total turbine work output, units in KJ/Kg", + "wpdot = (h7-h6) + (1-y)*(h5-h4) # The total pump work per unit of mass passing through the first-stage turbine,in KJ/kg", + "qindot = h1 - h7 # in kj/kg", + "eta = (wtdot-wpdot)/qindot", + "", + "# Results", + "print '-> The thermal efficiency is:',round(eta,2)", + "", + "# Part(b)", + "m1dot = (Wcycledot*3600*10**3)/(wtdot-wpdot)", + "", + "# Results", + "print '-> The mass flow rate of steam entering the first turbine stage, is:',round(m1dot,2),'kg/h.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is: 0.37", + "-> The mass flow rate of steam entering the first turbine stage, is: 368948.05 kg/h." + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.6 Page no-352" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine thermal efficiency, mass flow rate of the steam entering the first turbine, ", + "", + "# Given:-", + "# Analysis", + "# State 1 is the same as in Example 8.3, so", + "h1 = 3348.4 # in kj/kg", + "s1 = 6.6586 # in kj/kg.k", + "# State 2 is fixed by p2 \u0003 2.0 MPa and the specific entropy s2, which is the same as that of state 1. Interpolating in Table A-4, we get", + "h2 = 2963.5 # in kj/kg", + "# The state at the exit of the first turbine is the same as at the exit of the first turbine of Example 8.3, so", + "h3 = 2741.8 # in kj/kg", + "# State 4 is superheated vapor at 0.7 MPa, 440\u0004C. From Table A-4,", + "h4 = 3353.3 # in kj/kg", + "s4 = 7.7571 # in kj/kg.k", + "# Interpolating in table A-4 at p5 = .3MPa and s5 = s4, the enthalpy at state 5 is", + "h5 = 3101.5 # in kj/kg", + "# Using s6 \u0003= s4, the quality at state 6 is found to be", + "x6 = 0.9382", + "# Using steam tables, for state 6", + "hf = 173.88 # in kj/kg", + "hfg = 2403.1 # in kj/kg", + "", + "h6 = hf + x6*hfg", + "", + "# At the condenser exit, we have ", + "h7 = 173.88 # in kj/kg", + "v7 = 1.0084e-3 # in m^3/kg", + "p8 = 0.3 # in MPa", + "p7 = 0.008 # in MPa", + "", + "h8 = h7 + v7*(p8-p7)*10**6*10**-3 # The specific enthalpy at the exit of the first pump in kj/kg", + "# The liquid leaving the open feedwater heater at state 9 is saturated liquid at 0.3 MPa. The specific enthalpy is", + "h9 = 561.47 # in kj/kg", + "", + "# For the exit of the second pump,", + "v9 = 1.0732e-3 # in m^3/kg", + "p10 = 8.0 # in MPa", + "p9 = 0.3 # in MPa", + "h10 = h9 + v9*(p10-p9)*10**6*10**-3 # The specific enthalpy at the exit of the second pump in kj/kg", + "# The condensate leaving the closed heater is saturated at 2 MPa. From Table A-3,", + "h12 = 908.79 # in kj/kg", + "h13 = h12 # since The fluid passing through the trap undergoes a throttling process", + "# For the feedwater exiting the closed heater", + "hf = 875.1 # in kj/kg", + "vf = 1.1646e-3 # in m^3/kg", + "p11 = 8.0 # in MPa", + "psat = 1.73 # in MPa", + "h11 = hf + vf*(p11-psat)*10**6*10**-3 # in kj/kg", + "", + "ydash = (h11-h10)/(h2-h12) # the fraction of the total flow diverted to the closed heater", + "ydashdash = ((1-ydash)*h8+ydash*h13-h9)/(h8-h5) # the fraction of the total flow diverted to the open heater", + "", + "# Part(a)", + "wt1dot = (h1-h2) + (1-ydash)*(h2-h3) # The work developed by the first turbine per unit of mass entering in kj/kg", + "wt2dot = (1-ydash)*(h4-h5) + (1-ydash-ydashdash)*(h5-h6) # The work developed by the second turbine per unit of mass in kj/kg", + "wp1dot = (1-ydash-ydashdash)*(h8-h7) # The work for the first pump per unit of mass in kj/kg", + "wp2dot = h10-h9 # The work for the second pump per unit of mass in kj/kg", + "qindot = (h1-h11) + (1-ydash)*(h4-h3) # The total heat added expressed on the basis of a unit of mass entering the first", + " # turbine", + "eta = (wt1dot+wt2dot-wp1dot-wp2dot)/qindot # thermal efficiency", + "", + "# Result", + "print '-> The thermal efficiency is: ',round(eta,2)", + "", + "# Part(b)", + "Wcycledot = 100.0 # the net power output of the cycle in MW", + "m1dot = (Wcycledot*3600*10**3)/(wt1dot+wt2dot-wp1dot-wp2dot)", + "", + "# Result", + "print '-> The mass flow rate of the steam entering the first turbine, in kg/h is: ',round(m1dot,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is: 0.43", + "-> The mass flow rate of the steam entering the first turbine, in kg/h is: 280126.53" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.7 Page no-360" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine net rate at which exergy is carried into the heat exchanger unit by the gas stream, net rate at which exergyis carried from the heat ", + "# exchanger by the water stream, rate of exergy destruction, exergetic efficiency", + "", + "# Given:-", + "# Analysis", + "# The solution to Example 8.2 gives", + "h1 = 2758 # in kj/kg", + "h4 = 183.36 # in kj/kg", + "# From table A-22", + "hi = 1491.44 # in kj/kg", + "he = 843.98 # in kj/kg", + "# Using the conservation of mass principle and energy rate balance, the ratio of mass flow rates of air and water is", + "madotbymdot = (h1-h4)/(hi-he)", + "# From example 8.2", + "mdot = 4.449e5 # in kg/h", + "madot = madotbymdot*mdot # in kg/h", + "", + "# Part(a)", + "T0 = 295 # in kelvin", + "# From table A-22", + "si = 3.34474 # in kj/kg.k", + "se = 2.74504 # in MW", + "# Calculation", + "Rin = madot*(hi-he-T0*(si-se))/(3600*10**3) # The net rate at which exergy is carried into the heat exchanger ", + " # unit by the gaseous stream ", + "# Result", + "print '-> The net rate at which exergy is carried into the heat exchanger unit by the gas stream, is:',round(Rin,2),'MW '", + "", + "# Part(b)", + "# From table A-3", + "s1 = 5.7432 # in kj/kg.k", + "# From interpolation in table A-5 gives", + "s4 = 0.5957 # in kj/kg.k", + "# Calculation", + "Rout = mdot*(h1-h4-T0*(s1-s4))/(3600*10**3) # in MW", + "# Result", + "print '-> The net rate at which exergy is carried from the heat exchanger by the water stream, is:',round(Rout,2),'MW .'", + "", + "# Part(c)", + "Eddot = Rin-Rout # in MW", + "# Result", + "print '-> The rate of exergy destruction, in MW is:',round(Eddot,2)", + "", + "# Part(d)", + "epsilon = Rout/Rin", + "# Result", + "print '-> The exergetic efficiency is: ',round(epsilon,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The net rate at which exergy is carried into the heat exchanger unit by the gas stream, is: 231.24 MW ", + "-> The net rate at which exergy is carried from the heat exchanger by the water stream, is: 130.52 MW .", + "-> The rate of exergy destruction, in MW is: 100.72", + "-> The exergetic efficiency is: 0.56" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.8 Page no-362" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the rate at which exergy is destroyed, Express each result as a percentage of the exergy entering the plant", + "", + "# Given:-", + "T0 = 295.00 # in kelvin", + "P0 = 1.00 # in atm", + "", + "# Analysis", + "# From table A-3", + "s1 = 5.7432 # in kj/kg.k", + "s3 =0.5926 # in kj/kg.k", + "", + "# Using h2 =\u0003 1939.3 kJ/kg from the solution to Example 8.2, the value of s2 can be determined from Table A-3 as", + "s2 = 6.2021 # in kj/kg.k", + "s4 = 0.5957 # in kj/kg.k", + "mdot = 4.449e5 # in kg/h", + "", + "# Calculations", + "Eddot = mdot*T0*(s2-s1)/(3600*10**3) # the rate of exergy destruction for the turbine in MW", + "EddotP = mdot*T0*(s4-s3)/(3600*10**3) # the exergy destruction rate for the pump", + "", + "# Results", + "print '-> The rate of exergy destruction for the turbine is: ',round(Eddot,2),'MW.'", + "# From the solution to Example 8.7, the net rate at which exergy is supplied by the cooling combustion gases is 231.28 MW", + "print '-> The turbine rate of exergy destruction expressed as a percentage is: ',round((Eddot/231.28)*100)", + "# However, since only 69% of the entering fuel exergy remains after the stack loss and combustion exergy destruction are accounted for, ", + "# it can be concluded that", + "print '-> Percentage of the exergy entering the plant with the fuel destroyed within the turbine is:',round(0.69*(Eddot/231.28)*100,2)", + "print '-> The exergy destruction rate for the pump in MW is:',round(EddotP,2)", + "print 'and expressing this as a percentage of the exergy entering the plant as calculated above, we have',round((EddotP/231.28)*69,2) ", + "print '-> The net power output of the vapor power plant of Example 8.2 is 100 MW. Expressing this as a percentage of the rate at which exergy is '", + "print 'carried into the plant with the fuel, ',round((100/231.28)*69,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The rate of exergy destruction for the turbine is: 16.73 MW.", + "-> The turbine rate of exergy destruction expressed as a percentage is: 7.0", + "-> Percentage of the exergy entering the plant with the fuel destroyed within the turbine is: 4.99", + "-> The exergy destruction rate for the pump in MW is: 0.11", + "and expressing this as a percentage of the exergy entering the plant as calculated above, we have 0.03", + "-> The net power output of the vapor power plant of Example 8.2 is 100 MW. Expressing this as a percentage of the rate at which exergy is ", + "carried into the plant with the fuel, 29.83" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 8.9 Page no-364" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# (a) Determine the net rate at which exergy is carried from the condenser by the cooling water, ", + "# Express this result as a percentage of the exergy entering the plant with the fuel, ", + "# (b) the condenser the rate of exergy destruction, Express this result as a percentage of the exergy entering the plant", + "", + "# Given:-", + "T0 = 295 # in kelvin", + "# Analysis", + "# From solution to Example 8.2.", + "mcwdot = 9.39e6 # mass flow rate of the cooling water in kg/h", + "", + "# Part(a)", + "# With saturated liquid values for specific enthalpy and entropy from Table A-2", + "he = 146.68 # in kj/kg", + "hi = 62.99 # in kj/kg", + "se = 0.5053 # in kj/kg.k", + "si = 0.2245 # in kj/kg.k", + "# Calculations", + "Rout = mcwdot*(he-hi-T0*(se-si))/(3600*10**3) # The net rate at which exergy is carried out of the condenser in MW", + "# Results", + "print '-> The net rate at which exergy is carried from the condenser by the cooling water, is:',round(Rout,2),'MW.'", + "print '-> Expressing this as a percentage of the exergy entering the plant with the fuel, we get ',round((Rout/231.28)*69,2),'percent'", + "", + "# Part(b)", + "# From table ", + "s3 = 0.5926 # in kj/kg.k", + "s2 = 6.2021 # in kg/kg.k", + "mdot = 4.449e5 # in kg/h", + "# Calculations", + "Eddot = T0*(mdot*(s3-s2)+mcwdot*(se-si))/(3600*10**3) # the rate of exergy destruction for the condenser in MW", + "# Results", + "print '-> The rate of exergy destruction for the condenser is: ',round(Eddot,2),'MW.'", + "print '-> Expressing this as a percentage of the exergy entering the plant with the fuel, we get,',round((Eddot/231.28)*69,2),'percent'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The net rate at which exergy is carried from the condenser by the cooling water, is: 2.23 MW.", + "-> Expressing this as a percentage of the exergy entering the plant with the fuel, we get 0.66 percent", + "-> The rate of exergy destruction for the condenser is: 11.56 MW.", + "-> Expressing this as a percentage of the exergy entering the plant with the fuel, we get, 3.45 percent" + ] + } + ], + "prompt_number": 10 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_9_2.ipynb b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_9_2.ipynb new file mode 100644 index 00000000..adc423f0 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/Chapter_9_2.ipynb @@ -0,0 +1,1167 @@ +{ + "metadata": { + "name": "Chapter 9" + }, + "nbformat": 2, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Chapter 9 :- Gas Power Systems" + ] + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.1 Page no-378" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine temperature and pressure at the end of each process of the cycle, thermal efficiency, mean effective pressure, in atm.", + "", + "# Given:-", + "T1 = 300.00 # The temperature at the beginning of the compression process in kelvin", + "p1 = 1.00 # the pressure at the beginning of the compression process in bar", + "r = 8.00 # compression ratio", + "V1 = 560.00 # the volume at the beginning of the compression process in cm^3", + "T3 = 2000.00 # maximum temperature during the cycle in kelvin", + "", + "# Part(a)", + "# At T1 = 300k,table A-22 gives", + "u1 = 214.07 # in kj/kg", + "vr1 = 621.2 ", + "# Interpolating with vr2 in Table A-22, we get", + "T2 = 673.00 # in kelvin", + "u2 = 491.2 # in kj/kg", + "# At T3 \u0003= 2000 K, Table A-22 gives", + "u3 = 1678.7 # in kj/kg", + "vr3 = 2.776", + "# Interpolating in Table A-22 with vr4 gives", + "T4 = 1043 # in kelvin", + "u4 = 795.8 # in kj/kg", + "", + "# Calculations", + "# For the isentropic compression Process 1\u20132", + "vr2 = vr1/r", + "# With the ideal gas equation of state", + "p2 = p1*(T2/T1)*(r) # in bars", + "# Since Process 2\u20133 occurs at constant volume, the ideal gas equation of state gives", + "p3 = p2*(T3/T2) # in bars", + "# For the isentropic expansion process 3\u20134", + "vr4 = vr3*(r)", + "# The ideal gas equation of state applied at states 1 and 4 gives", + "p4 = p1*(T4/T1) # in bars", + "", + "# Results", + "print '-> At state1, the pressure is:',p1,'bar.'", + "print '-> At state1, the temperature is ',T1,'kelvin.'", + "print '-> At state2, the pressure is:',round(p2,3),'bar.'", + "print '-> At state2, the temperature is',T2,'kelvin.'", + "print '-> At state3, the pressure is:',round(p3,3),'bar.'", + "print '-> At state3, the temperature is',T3,'kelvin.'", + "print '-> At state4, the pressure is:',round(p4,4),'bar.'", + "print '-> At state4, the temperature is',T4,'kelvin.'", + "", + "# Part(b)", + "eta = 1-(u4-u1)/(u3-u2) # thermal efficiency", + "# Result", + "print '-> The thermal efficiency is:',round(eta,2)", + "", + "# Part(c)", + "R = 8.314 # universal gas constant, in SI units", + "M = 28.97 # molar mass of air in grams", + "# Calculations", + "m = ((p1*V1)/((R/M)*T1))*10**-6*10**5*10**-3 # mass of the air in kg", + "Wcycle = m*((u3-u4)-(u2-u1)) # the net work per cycle in KJ", + "mep = (Wcycle/(V1*(1-1/r)))*10**6*10**3*10**-5 # in bars", + "", + "# Result", + "print '-> The mean effective pressure, is:',round(mep,4),'atm..'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> At state1, the pressure is: 1.0 bar.", + "-> At state1, the temperature is 300.0 kelvin.", + "-> At state2, the pressure is: 17.947 bar.", + "-> At state2, the temperature is 673.0 kelvin.", + "-> At state3, the pressure is: 53.333 bar.", + "-> At state3, the temperature is 2000.0 kelvin.", + "-> At state4, the pressure is: 3.4767 bar.", + "-> At state4, the temperature is 1043 kelvin.", + "-> The thermal efficiency is: 0.51", + "-> The mean effective pressure, is: 8.0411 atm.." + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.2 Page no-383" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine temperature and pressure at the end , thermal efficiency, mean effective pressure", + "", + "# Given :-", + "r = 18.00 # compression ratio", + "T1 = 300.00 # temperature at the beginning of the compression process in kelvin", + "p1 = 0.1 # pressure at the beginning of the compression process in MPa", + "rc = 2.00 # cutoff ratio", + "", + "# Part(a)", + "# With T1 =\u0003 300 K, Table A-22 gives", + "u1 = 214.07 # in kj/kg", + "vr1 = 621.2 ", + "# Interpolating in Table A-22, we get", + "T2 = 898.3 # in kelvin ", + "h2 = 930.98 # in kj/kg", + "# From Table A-22,", + "h3 = 1999.1 # in kj/kg", + "vr3 = 3.97", + "", + "# Interpolating in Table A-22 with vr4, we get", + "u4 = 664.3 # in kj/kg", + "T4 = 887.7 # in kelvin", + "", + "# Calculations", + "# Since Process 2\u20133 occurs at constant pressure, the ideal gas equation of state gives", + "T3 = rc*T2 # in kelvin", + "# With the ideal gas equation of state", + "p2 = p1*(T2/T1)*(r) # in MPa", + "p3 = p2", + "# For the isentropic compression process 1\u20132", + "vr2 = vr1/r", + "# For the isentropic expansion process 3\u20134", + "vr4 = (r/rc)*vr3", + "# The ideal gas equation of state applied at states 1 and 4 gives", + "p4 = p1*(T4/T1) # in MPa", + "", + "# Results", + "print '-> At state1, the pressure is:',round(p1,2),'bar.'", + "print '-> At state1, the temperature is',round(T1,2),'kelvin.'", + "print '-> At state2, the pressure in bar is:',round(p2,2),'bar.'", + "print '-> At state2, the temperature is ',round(T2,2),'kelvin.'", + "print '-> At state3, the pressure in bar is:',round(p3,2),'bar.'", + "print '-> At state3, the temperature is',round(T3,2),'kelvin.'", + "print '-> At state4, the pressure is:',round(p4,2),'bar.'", + "print '-> At state4, the temperature is',round(T4,2),'kelvin.'", + "", + "# Part(b)", + "eta = 1- (u4-u1)/(h3-h2)", + "print '-> The thermal efficiency is:',round(eta,2)", + "", + "# Part(c)", + "R = 8.314 # universal gas constant, in SI units", + "M = 28.97 # molar mass of air in grams", + "", + "# Calculations", + "wcycle = (h3-h2)-(u4-u1) # The net work of the cycle in kj/kg", + "v1 = ((R/M)*T1/p1)/10**3 # The specific volume at state 1 in m^3/kg", + "mep = (wcycle/(v1*(1-1/r)))*10**3*10**-6 # in MPa", + "", + "# Results", + "print '-> The mean effective pressure, is:',round(mep,2),'MPa.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> At state1, the pressure is: 0.1 bar.", + "-> At state1, the temperature is 300.0 kelvin.", + "-> At state2, the pressure in bar is: 5.39 bar.", + "-> At state2, the temperature is 898.3 kelvin.", + "-> At state3, the pressure in bar is: 5.39 bar.", + "-> At state3, the temperature is 1796.6 kelvin.", + "-> At state4, the pressure is: 0.3 bar.", + "-> At state4, the temperature is 887.7 kelvin.", + "-> The thermal efficiency is: 0.58", + "-> The mean effective pressure, is: 0.76 MPa." + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.3 Page no-386" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine (a) the thermal efficiency and (b) the mean effective pressure, in MPa.", + "", + "# Given :-", + "T1 = 300.00 # beginning temperature in kelvin", + "p1 = 0.1 # beginning pressure in MPa", + "r = 18.00 # compression ratio", + "pr = 1.5 # The pressure ratio for the constant volume part of the heating process", + "vr = 1.2 # The volume ratio for the constant pressure part of the heating process", + "", + "# Analysis", + "# States 1 and 2 are the same as in Example 9.2, so ", + "u1 = 214.07 # in kj/kg", + "T2 = 898.3 # in kelvin", + "u2 = 673.2 # in kj/kg", + "", + "# Interpolating in Table A-22, we get", + "h3 = 1452.6 # in kj/kg", + "u3 = 1065.8 # in kj/kg", + "", + "# From Table A-22,", + "h4 = 1778.3 # in kj/kg", + "vr4 = 5.609", + "", + "# Interpolating in Table A-22, we get", + "u5 = 475.96 # in kj/kg", + "", + "# Calculations", + "# Since Process 2\u20133 occurs at constant volume, the ideal gas equation of state reduces to give", + "T3 = pr*T2 # in kelvin", + "# Since Process 3\u20134 occurs at constant pressure, the ideal gas equation of state reduces to give", + "T4 = vr*T3 # in kelvin", + "# Process 4\u20135 is an isentropic expansion, so", + "vr5 = vr4*r/vr", + "", + "# Part(a)", + "eta = 1-(u5-u1)/((u3-u2)+(h4-h3))", + "# Result", + "print '-> The thermal efficiency is:',round(eta,2)", + "", + "# Part(b)", + "# The specific volume at state 1 is evaluated in Example 9.2 as", + "v1 = 0.861 # in m^3/kg", + "mep = (((u3-u2)+(h4-h3)-(u5-u1))/(v1*(1-1/r)))*10**3*10**-6 # in MPa", + "", + "# Result", + "print '-> The mean effective pressure, is:',round(mep,2),'MPa.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is: 0.64", + "-> The mean effective pressure, is: 0.56 MPa." + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2>Example 9.4 Page no-392" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine (a) the thermal efficiency of the cycle, (b) the back work ratio, (c) the net power developed", + "", + "# Given:-", + "T1 = 300.00 # in kelvin", + "AV = 5.00 # volumetric flow rate in m^3/s", + "p1 = 100.00 # in kpa", + "pr = 10.00 # compressor pressure ratio", + "T3 = 1400.00 # turbine inlet temperature in kelvin", + "", + "# Analysis", + "# At state 1, the temperature is 300 K. From Table A-22,", + "h1 = 300.19 # in kj/kg", + "pr1 = 1.386", + "", + "", + "# Interpolating in Table A-22,", + "h2 = 579.9 # in kj/kg", + "# From Table A-22", + "h3 = 1515.4 # in kj/kg", + "pr3 = 450.5", + "", + "# Interpolating in Table A-22, we get", + "h4 = 808.5 # in kj/kg", + "", + "# calculations", + "pr2 = pr*pr1", + "pr4 = pr3*1/pr", + "", + "", + "# Part(a)", + "eta = ((h3-h4)-(h2-h1))/(h3-h2) # thermal efficiency", + "# Result", + "print '-> The thermal efficiency is:',round(eta,4)", + "", + "# Part(b)", + "bwr = (h2-h1)/(h3-h4) # back work ratio", + "# Result", + "print '-> The back work ratio is:',round(bwr,4)", + "", + "# Part(c)", + "R = 8.314 # universal gas constant, in SI units", + "M = 28.97 # molar mass of air in grams", + "# Calculations", + "mdot = AV*p1/((R/M)*T1) # mass flow rate in kg/s", + "Wcycledot = mdot*((h3-h4)-(h2-h1)) # The net power developed", + "# Result", + "print '-> The net power developed, is:',round(Wcycledot,2),'kW .'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is: 0.4566", + "-> The back work ratio is: 0.3957", + "-> The net power developed, is: 2480.89 kW ." + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.6 Page no-398" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine (a) the thermal efficiency of the cycle, (b) the back work ratio, (c) the net power developed", + "", + "# Given:-", + "etat = 0.8 # turbine efficiency", + "etac = 0.8 # compressor efficiency", + "# Part(a)", + "wtdots = 706.9 # The value of wtdots is determined in the solution to Example 9.4 as 706.9 kJ/kg", + "wcdots = 279.7 # The value of wcdots is determined in the solution to Example 9.4 as 279.7 kJ/kg", + "h1 = 300.19 # h1 is from the solution to Example 9.4, in kj/kg", + "h3 = 1515.4 # h3 is from the solution to Example 9.4, in kj/kg", + "", + "# Calculations", + "# The turbine work per unit of mass is", + "wtdot = etat*wtdots # in kj/kg", + "# For the compressor, the work per unit of mass is", + "wcdot = wcdots/etac # in kj/kg", + "h2 = h1 + wcdot # in kj/kg", + "qindot = h3-h2 # The heat transfer to the working fluid per unit of mass flow in kj/kg", + "eta = (wtdot-wcdot)/qindot # thermal efficiency", + "", + "# Results", + "print '-> The thermal efficiency is:',round(eta,2)", + "", + "# Part(b)", + "bwr = wcdot/wtdot # back work ratio", + "# Result", + "print '-> The back work ratio is:',round(bwr,2)", + "", + "# Part(c)", + "mdot = 5.807 # in kg/s, from example 9.4", + "Wcycledot = mdot*(wtdot-wcdot) # The net power developed by the cycle in kw", + "# Result", + "print '-> The net power developed, is: ',round(Wcycledot,2),'kW.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is: 0.25", + "-> The back work ratio is: 0.62", + "-> The net power developed, is: 1253.7 kW." + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.7 Page no-401" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "", + "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].", + "For more information, type 'help(pylab)'." + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the thermal efficiency for a regenerator effectiveness of 80%. Plot the thermal efficiency versus regenerator effectiveness ranging from 0 to 80%.", + "", + "# Given:-", + "# Part(a)", + "etareg = 0.8 # regenerator effectiveness of 80%.", + "# From example 9.4", + "h1 = 300.19 # in kj/kg", + "h2 = 579.9 # in kj/kg", + "h3 = 1515.4 # in kj/kg", + "h4 = 808.5 # in kj/kg", + "", + "# Calculations", + "hx = etareg*(h4-h2)+h2 # in kj/kg", + "eta = ((h3-h4)- (h2-h1))/(h3-hx) # thermal efficiency", + "# Result", + "print '-> The thermal efficiency is: '", + "print round(eta,2)", + "", + "# Part(b)", + "etareg = []", + "x = []", + "eta = []", + "from numpy import linspace ", + "from pylab import plot, show , xlabel, ylabel", + "etareg = linspace(0,0.8,50)", + "for i in range (0,50):", + " x.append(i)", + " eta.append(i)", + " x[i] = (etareg[i]*(h4-h2))+h2 ", + " eta[i] = ((h3-h4)- (h2-h1))/(h3-x[i])", + "", + "plot(etareg,eta)", + "xlabel('Regenerator effectiveness')", + "ylabel('Thermal efficiency')", + "show()" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is: ", + "0.57" + ] + }, + { + "output_type": "display_data", + "png": "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\noyNCQ0MVySQ3V+UPl8GDB+O5557D+fPn4eLiolomV1dX3HfffWjevDmaN2+ORx99FNnZ2YoVjNv5\nbyo2Nlbx21FyM6WkpOC1114DAHTq1AkdOnTAoUOHEBAQoFomZ2dnbNiwwfq4Q4cO6Nix460vXOe9\nLXWsvLxcdOzYURw7dkxcvXrVZqf33r17Fe/MlZPpujfeeKNeOr3lZDp+/Ljo1KmT2Lt3r+J55GY6\ncuSIuHbtmhBCiIyMDNGxY0fVM1V245I1auY6deqU9XeVlpYmHnroIdUzHTx4UPTv319UVFSIS5cu\nia5du4oDBw6omkkIIYqKioSLi4u4fPmyYlluJ9OcOXNEVFSUEEL696jT6cS5c+dUzVRUVCSuXr0q\nhBDi/fffFxMmTLB5XbsvGEIIsW3bNtG5c2fRqVMnsXjxYiGEEGvXrhVr1661HvP888+LTp06CR8f\nH5GRkaF6pl9//VXo9XrRqlUrcc899whXV1dRXFysaqbIyEjh4uJiHXIYGBioaB45mZYuXSq8vb2F\nn5+f6Nu3r0hPT1c9U2X1VTDk5IqOjhbe3t7C19dX9O7du14Kv5zf1TvvvCO8vLxE165dxcqVK+0i\n07///W8xZswYxbPIzXTmzBkxbNgw4ePjI7p27Sq2bNmieqaUlBTRuXNn4enpKUaOHGkdQXkris30\nJiKixsXuR0kREZF9YMEgIiJZWDCIiEgWFgwiIpKFBYMU4eDgAKPRCB8fH4wYMQIlJSVqR5ItOzsb\n27dvV+z6q1atgpeXF8aNG4eysjIMGDAARqMR//3vf2/rOsePH0dMTIz1cUZGBmbNmlXXcYmsWDBI\nEU5OTsjKykJOTg5atWplXdbeXlgslhp/lpWVhW3btt3W9SoqKmQfu2bNGiQnJ2PTpk3IzMyERqNB\nVlYWRo0adVuveezYMfznP/+xPu7evbviS05Q08aCQYrr3bs3jh49CgA4evQoBg8ejICAADz66KPW\nZUCOHj2KXr16wcfHB6+//nqVWc3vvPMOevToAV9fX0RFRQEACgoKYDAYMHXqVHTt2hXBwcEoLS29\n5WtMnDgR06dPR69evTB37lzs27cPffr0gb+/Px5++GEcPnwYZWVlmD9/PuLi4qx/9Z8/fx5hYWHw\n9fVF7969sX//fgBAVFQUxo0bh759+1oXv6zsZrmnT5+O/Px8PPHEE/jHP/6BcePGYd++fTAajcjP\n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\n" + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.8 Page no-406" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine the thermal efficiency.", + "", + "# Given:-", + "# Analysis", + "# States 1, 2, and 3 are the same as in Example 9.4:", + "h1 = 300.19 # in kj/kg", + "h2 = 579.9 # in kj/kg", + "h3 = 1515.4 # in kj/kg", + "# The temperature at state b is the same as at state 3, so ", + "hb = h3", + "", + "pa = 300.00 # in kpa", + "p3 = 1000.00 # in kpa", + "# From table A-22", + "pr3 = 450.5", + "", + "# Interpolating in Table A-22, we get", + "ha = 1095.9 # in kj/kg", + "p4 = 100.00 # in kpa", + "pb = 300.00 # in kpa", + "# Interpolating in Table A-22, we obtain", + "h4 = 1127.6 # in kj/kg", + "", + "# Calculions", + "pra = pr3*(pa/p3)", + "prb = pra", + "pr4 = prb*(p4/pb)", + "# Since the regenerator effectiveness is 100%,", + "hx = h4", + "eta = ((h3-ha)+(hb-h4)-(h2-h1))/((h3-hx)+(hb-ha)) # thermal efficiency", + "", + "# Result", + "print '-> The thermal efficiency is:'", + "print round(eta,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is:", + "0.65" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.9 Page no-408" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine ", + "# (a) the temperature at the exit of the second compressor stage ", + "# (b) the total compressor work input perunit of mass flow. ", + "# (c) Repeat for a single stage of compression from the given inlet state to the final pressure.", + "", + "# Given:-", + "T1 = 300.00 # in kelvin", + "p1 = 100.00 # in kpa", + "p2 = 1000.00 # in kpa", + "p3 = p2", + "pc = 300.00 # in kpa", + "pd = 300.00 # in kpa", + "Td = 300.00 # in kelvin", + "", + "", + "# Part(a)", + "# From table A-22", + "prd = 1.386", + "# Interpolating in Table A-22, we get", + "T2 = 422 # in kelvin", + "h2 = 423.8 # in kj/kg", + "# Calculations", + "pr2 = prd*(p2/pd)", + "# Result", + "print '-> The temperature at the exit of the second compressor stage is:',round(T2,2),'kelvin.'", + "", + "# Part(b)", + "# From Table A-22 at T1 \u0003= 300", + "h1 = 300.19 # in kj/kg", + "# Since Td \u0003= T1,", + "hd = 300.19 # in kj/kg", + "# with pr data from Table A-22 together", + "pr1 = 1.386", + "# Interpolating in Table A-22, we obtain", + "hc = 411.3 # in kj/kg", + "# Calculations", + "prc = pr1*(pc/p1)", + "wcdot = (hc-h1)+(h2-hd) # The total compressor work per unit of mass in kj/kg", + "# Result", + "print '-> The total compressor work input per unit of mass flow is: ',round(wcdot,2),'kJ/kg'", + "", + "# Part(c)", + "# Interpolating in Table A-22, we get", + "T3 = 574 # in kelvin", + "h3 = 579.9 # in kj/kg", + "# Calculations", + "pr3 = pr1*(p3/p1)", + "wcdot = h3-h1 # The work input for a single stage of compression in kj/kg", + "# Results", + "print '-> For a single stage of compression, the temperature at the exit state is: ',round(T3,2),'kelvin'", + "print '-> For a single stage of compression, the work input is: ',round(wcdot,2),'kJ.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The temperature at the exit of the second compressor stage is: 422.0 kelvin.", + "-> The total compressor work input per unit of mass flow is: 234.72 kJ/kg", + "-> For a single stage of compression, the temperature at the exit state is: 574.0 kelvin", + "-> For a single stage of compression, the work input is: 279.71 kJ." + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.11 Page no-412" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determine (a) the thermal efficiency, (b) the back work ratio, (c) the net power developed, in kW.", + "", + "# Given:-", + "T1 = 300.00 # in kelvin", + "p1 = 100.00 # in kpa", + "mdot = 5.807 # in kg/s", + "p2 = 300.00 # in kpa", + "p3 = p2", + "p4 = 1000.00 # in kpa", + "p5 = p4", + "p6 = p4", + "T6 = 1400.00 # in kelvin", + "T8 = T6", + "p7 = 300.00 # in kpa", + "p8 = p7", + "etac = 0.8 # isentropic efficiency of compressor", + "etat = 0.8 # isentropic efficiency of turbine", + "etareg = 0.8 # regenerator effectiveness", + "# Analysis", + "# From example 9.9", + "h1 = 300.19 # in kj/kg", + "h3 = h1 # in kj/kg", + "h2s = 411.3 # in kj/kg", + "h4s = 423.8 # in kj/kg", + "# From example 9.8", + "h6 = 1515.4 # in kj/kg", + "h8 = h6", + "h7s = 1095.9 # in kj/kg", + "h9s = 1127.6 # in kj/kg", + "", + "# Calculations", + "h4 = h3 + (h4s-h3)/etac # in kj/kg", + "h2 = h1 + (h2s-h1)/etac # in kj/kg", + "h9 = h8-etat*(h8-h9s) # in kj/kg", + "h7 = h6-etat*(h6-h7s) # in kj/kg", + "h5 = h4+etareg*(h9-h4) # in kj/kg", + "", + "# Part(a)", + "# Calculations", + "wtdot = (h6-h7)+(h8-h9) # The total turbine work per unit of mass flow in kj/kg", + "wcdot = (h2-h1)+(h4-h3) # The total compressor work input per unit of mass flow in kj/kg", + "qindot = (h6-h5)+(h8-h7) # The total heat added per unit of mass flow in kj/kg", + "eta = (wtdot-wcdot)/qindot # thermal efficiency", + "# Result", + "print '-> The thermal efficiency is: '", + "print round(eta,2)", + "", + "# Part(b)", + "bwr = wcdot/wtdot # back work ratio", + "# Result", + "print '-> The back work ratio is:'", + "print round(bwr,2)", + "", + "# Part(c)", + "Wcycledot = mdot*(wtdot-wcdot) # net power developed in kw", + "# Result", + "print '-> The net power developed, is: ',round(Wcycledot,2),'kW.'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The thermal efficiency is: ", + "0.44", + "-> The back work ratio is:", + "0.45", + "-> The net power developed, is: 2046.62 kW." + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.12 Page no-416" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Example 9.12 Page no-416", + "# determine the velocity at the nozzle exit and the pressure at each principal state. ", + "", + "# Given:-", + "Ta = 240.00 # in kelvin", + "pa = 0.8 # in bar", + "Va = 278.00 # in m/s", + "PR = 8.00 # pressure ratio across the compressor", + "T3 = 1200.00 # in kelvin", + "p5 = 0.8 # in bar", + "", + "# From table A-22", + "ha = 240.02 # in kj/kg", + "h1 = ha + ((Va**2)/2)*10**-3 # in kj/kg", + "# Interpolating in Table A-22 gives", + "pr1 = 1.070", + "pra = .6355", + "", + "# Interpolating in Table A-22, we get", + "h2 = 505.5 # in kj/kg", + "# At state 3 the temperature is given as T3 \u0003= 1200 K. From Table A-22", + "h3 = 1277.79 # in kj/kg", + "", + "", + "# Interpolating in Table A-22 with h4, gives", + "pr4 = 116.8", + "# pr data from table A-22 gives", + "pr4 = 116.00", + "pr3 = 238.00", + "# From table A-22", + "h5 = 621.3 # in kj/kg", + "", + "# The expansion through the nozzle is isentropic to", + "p5 = .8 # in bars", + "", + "# Calculations", + "p1 = (pr1/pra)*pa # in bars", + "# With the help of assumption, 'The turbine work output equals the work required to drive the compressor.',", + "h4 = h3+h1-h2 # in kj/kg", + "p2 = PR*p1 # in bars", + "# Using assumption 'There is no pressure drop for flow through the combustor', ", + "p3 = p2", + "p4 = p3*(pr4/pr3) # in bars", + "pr5 = pr4*(p5/p4)", + "V5 = ((2*(h4-h5)*10**3))**(0.5) # the velocity at the nozzle exit in m/s", + "", + "# Results", + "print '-> The velocity at the nozzle exit in m/s is:'", + "print round(V5,2)", + "print '-> pa in bars = '", + "print round(pa,2)", + "print '-> p1 in bars = '", + "print round(p1,2)", + "print '-> p2 in bars = '", + "print round(p2,2)", + "print '-> p3 in bars = '", + "print round(p3,2)", + "print '-> p4 in bars = '", + "print round(p4,2)", + "print '-> p5 in bars = '", + "print round(p5,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The velocity at the nozzle exit in m/s is:", + "926.99", + "-> pa in bars = ", + "0.8", + "-> p1 in bars = ", + "1.35", + "-> p2 in bars = ", + "10.78", + "-> p3 in bars = ", + "10.78", + "-> p4 in bars = ", + "5.25", + "-> p5 in bars = ", + "0.8" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.13 Page no-421" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# (a) Determine the mass flow rates of the air and the steam, and the net power developed by the gas turbine and vapor power cycle, each in MW. ", + "# (b) Develop a full accounting of the net rate of exergy increase as the air passes through the gas turbine combustor. Discuss. ", + "", + "# Given:-", + "Wnetdot = 45.00 # in MW", + "T1 = 300.00 # in kelvin", + "p1 = 100.00 # in kpa", + "etac = 0.84 # The isentropic efficiency of the compressor", + "T3 = 1400.00 # in kelvin", + "p2 = 1200.00 # in kpa", + "p3 = p2", + "etat = 0.88 # isentropic efficiency of the turbine", + "T5 = 400.00 # in kelvin", + "p4 = 100.00 # in kpa", + "p5 = p4", + "T7 = 400.00 # in degree celcius", + "p7 = 8.00 # in MPa", + "etatw =0.9 # isentropic efficiency of turbine of the vapor cycle", + "p8 = 8.00 # in kpa", + "p9 = p8", + "etap = 0.8 # isentropic efficiency of pump of the vapor cycle", + "T0 = 300.00 # in kelvin", + "p0 = 100.00 # -in kpa", + "", + "# Analysis", + "# With procedure similar to that used in the examples of chapters 8 and 9,we can determine following property data", + "h1 = 300.19 # in kj/kg", + "h2 = 669.79 # in kj/kg", + "h3 = 1515.42 # in kj/kg", + "h4 = 858.02 # in kj/kg", + "h5 = 400.98 # in kj/kg", + "h6 = 183.96 # in kj/kg", + "h7 = 3138.30 # in kj/kg", + "h8 = 2104.74 # in kj/kg", + "h9 = 173.88 # in kj/kg", + "s1 = 1.7020 # in kj/kg.k", + "s2 = 2.5088 # in kj/kg.k", + "s3 = 3.3620 # in kj/kg.k ", + "s4 = 2.7620 # in kj/kg.k", + "s5 = 1.9919 # in kj/kg.k", + "s6 = 0.5975 # in kj/kg.k", + "s7 = 6.3634 # in kj/kg.k", + "s8 = 6.7282 # in kj/kg.k", + "s9 = 0.5926 # in kj/kg.k", + "", + "# Part(a)", + "# By applying mass and energy rate balances", + "# Calculations", + "mvdotbymgdot = (h4-h5)/(h7-h6) # ratio of mass flow rates of vapor and air", + "mgdot = (Wnetdot*10**3)/(((h3-h4)-(h2-h1)) + mvdotbymgdot*((h7-h8)-(h6-h9))) # mass flow rate of air in kg/s", + "mvdot = mvdotbymgdot*mgdot # mass flow rate of vapor in kg/s", + "Wgasdot = mgdot*((h3-h4)-(h2-h1))*10**-3 # net power developed by gas turbine in MW", + "Wvapdot = mvdot*((h7-h8)-(h6-h9))*10**-3 # net power developed by vapor cycle in MW", + "", + "# Results", + "print '-> Mass flow rate of air is: ',round(mgdot,2),'kg/s.'", + "print '-> Mass flow rate of vapor is: ',round(mvdot,2),'kg/s.'", + "print '-> Net power developed by gas turbine is: ',round(Wgasdot,2),'MW.'", + "print '-> Net power developed by vapor cycle is: ',round(Wvapdot,2),'MW.'", + "", + "", + "# Part(b)", + "import math", + "# The net rate of exergy increase of the air passing through the combustor is", + "Edotf32 = mgdot*(h3-h2-T0*(s3-s2))*10**-3 # in MW", + "# The net rate exergy is carried out by the exhaust air stream at 5 is", + "Edotf51 = mgdot*(h5-h1-T0*(s5-s1))/10**3 # in MW", + "# The net rate exergy is carried out as the water passes through the condenser is", + "Edotf89 = mvdot*(h8-h9-T0*(s8-s9))*10**-3 # in MW", + "R = 8.314 # universal gas constant, in SI units", + "M = 28.97 # molar mass of air in grams", + "# The rate of exergy destruction for air turbine is", + "Eddott = mgdot*T0*(s4-s3-(R/M)*math.log(p4/p3))/10**3 # in MW", + "# The rate of exergy destruction for compressor is", + "Eddotc = mgdot*T0*(s2-s1-(R/M)*math.log(p2/p1))/10**3 # in MW", + "# The rate of exergy destruction for steam turbine is", + "Eddotst = mvdot*T0*(s8-s7)/10**3 # in MW", + "# The rate of exergy destruction for pump is", + "Eddotp = mvdot*T0*(s6-s9)/10**3 # in MW", + "# For heat exchanger", + "EddotHE = T0*(mgdot*(s5-s4)+mvdot*(s7-s6))/10**3 # in MW", + "", + "# Results", + "print '-> Balance sheet'", + "print 'Net exergy increase of the gas passing'", + "print '-> Through the combustor: ',round(Edotf32,2),'MW'", + "print 'Disposition of the exergy:'", + "print '\u2022 Net power developed'", + "print 'gas turbine cycle ',round(Wgasdot,2),'MW'", + "print 'vapor cycle ',round(Wvapdot,2),'MW'", + "print '\u2022 Net exergy lost'", + "print 'with exhaust gas at state 5 ',round(Edotf51,2),'MW'", + "print 'from water passing through condenser ',round(Edotf89,2),'MW'", + "print '\u2022 Exergy destruction'", + "print 'air turbine ',round(Eddott,2),'MW'", + "print 'compressor ',round(Eddotc,2),'MW'", + "print 'steam turbine ',round(Eddotst,2),'MW'", + "print 'pump ',round(Eddotp,2),'MW'", + "print 'heat exchanger ',round(EddotHE,2),'MW'" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Mass flow rate of air is: 100.87 kg/s.", + "-> Mass flow rate of vapor is: 15.6 kg/s.", + "-> Net power developed by gas turbine is: 29.03 MW.", + "-> Net power developed by vapor cycle is: 15.97 MW.", + "-> Balance sheet", + "Net exergy increase of the gas passing", + "-> Through the combustor: 59.48 MW", + "Disposition of the exergy:", + "\u2022 Net power developed", + "gas turbine cycle 29.03 MW", + "vapor cycle 15.97 MW", + "\u2022 Net exergy lost", + "with exhaust gas at state 5 1.39 MW", + "from water passing through condenser 1.41 MW", + "\u2022 Exergy destruction", + "air turbine 3.42 MW", + "compressor 2.83 MW", + "steam turbine 1.71 MW", + "pump 0.02 MW", + "heat exchanger 3.69 MW" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.14 Page no-438" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the mass flow rate and the exit Mach number for back pressures of (a) 500 kPa and (b) 784 kPa.", + "", + "# Given:-", + "Tnot = 360.00 # in kelvin", + "pnot = 1.00 # in MPa", + "A2 = 0.001 # in m^2", + "k = 1.4", + "", + "# Calculations", + "pstarbypnot = (1+(k-1)/2)**(k/(1-k))", + "pstar = pstarbypnot*pnot", + "", + "# Part(a)", + "# Since back pressure of 500 kpa is less than critical pressure pstar(528kpa in this case) found above, the nozzle is choked", + "# At the exit", + "M = 1.00", + "p2 = pstar # in MPa", + "T2 = Tnot/(1+((k-1)/2)*(M**2)) # exit temperature in kelvin", + "R = 8.314 # universal gas constant, in SI units", + "Mwt = 28.97 # molar mass of air in grams", + "V2 = ((k*(R/Mwt)*T2*10**3)**0.5) # exit velocity in m/s", + "mdot = (p2/((R/Mwt)*T2))*A2*V2*10**3 # mass flow rate in kg/s", + "", + "# Results", + "print '-> The exit mach number for back pressure of 500kpa is: '", + "print round(M,2)", + "print '-> The mass flow rate in kg/s for back pressure of 500kpa is:'", + "print round(mdot,2)", + "", + "# Part(b)", + "# Since the back pressure of 784kpa is greater than critical pressure of pstar determined above,the flow throughout the nozzle is subsonic and the exit pressure equals the back pressure,", + "p2 = 784.00 # exit pressure in kpa", + "# Calculations", + "M2 = (((2.00)/(k-1))*(((pnot*10**3)/p2)**((k-1)/k)-1))**0.5 # exit mach number", + "T2 = Tnot/(1+((k-1)/2)*(M2**2)) # exit temperature in kelvin", + "V2 = M2*((k*(R/Mwt)*10**3*T2)**0.5) # exit velocity in m/s", + "mdot2 = (p2/((R/Mwt)*T2))*A2*V2 # mass flow rate in kg/s", + "# Results", + "print '-> The mass flow rate at the exit for back pressure of 784kpa is: ',round(mdot2,2),'kg/s.'", + "print '-> The exit mach number for back pressure of 784 kpa is: '", + "print round(M2,2)" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> The exit mach number for back pressure of 500kpa is: ", + "1.0", + "-> The mass flow rate in kg/s for back pressure of 500kpa is:", + "2.13", + "-> The mass flow rate at the exit for back pressure of 784kpa is: 1.79 kg/s.", + "-> The exit mach number for back pressure of 784 kpa is: ", + "0.6" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "source": [ + "##<heading2> Example 9.15 Page no-442" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determine the mass flow rate, the exit pressure, exit Mach number for ", + "# (a) Isentropic flow with M \u0003= 0.7 at the throat. ", + "# (b) Isentropic flow with M \u0003= 1 at the throat and the diverging portion acting as a diffuser. ", + "# (c) Isentropic flow with M \u0003= 1 at the throat and the diverging portion acting as a nozzle. ", + "# (d) Isentropic flow through the nozzle with a normal shock standing at the exit. ", + "# (e) A normal shock stands in the diverging section at a location where the area is 12.5 cm2. ", + "", + "# Given:-", + "# Part(a)", + "Mt = 0.7 # mach mumber at the throat", + "At = 6.25 # throat area in cm^2", + "Ae = 15.00 # exit area in cm^2", + "", + "# The flow throughout the nozzle, including the exit, is subsonic. Accordingly, with this value for A2byAstar, Table 9.1 gives", + "M2 = 0.24", + "# For M2 \u0003= 0.24,", + "T2byTnot = 0.988", + "p2bypnot = 0.959", + "k = 1.4", + "T0 = 280.00 # in kelvin", + "pnot = 6.8 # in bars", + "# Calculations", + "# With Mt \u0003= 0.7, Table 9.1 gives", + "AtbyAstar = 1.09437", + "A2byAstar = (Ae/At)*AtbyAstar", + "T2 = T2byTnot*T0 # in kelvin", + "p2 = p2bypnot*pnot # in bars", + "V2 = M2*((k*(8.314/28.97)*T2*10**3)**0.5) # velocity at the exit in m/s", + "mdot = (p2/((8.314/28.97)*T2))*Ae*V2*10**-2 # mass flow rate in kg/s", + "# Results", + "print '-> Part(a) the mass flow rate in kg/s is: '", + "print round(mdot,2)", + "print '-> The exit pressure in bars is: '", + "print round(p2,2)", + "print '-> The exit mach number is: '", + "print round(M2,2)", + "", + "# Part(b)", + "Mt = 1.00 # mach number at the throat", + "# From table 9.1", + "M2 = 0.26", + "T2byTnot = 0.986 ", + "p2bypnot = 0.953", + "", + "T0 = 280.00 # in kelvin", + "pnot = 6.8 # in bars", + "# Calculations", + "T2 = T2byTnot*T0 # in kelvin", + "p2 = p2bypnot*pnot # in bars", + "k = 1.4", + "V2 = M2*((k*(8314/28.97)*T2)**0.5) # exit velocity in m/s", + "mdot = (p2/((8.314/28.97)*T2))*Ae*V2*10**-2 # mass flow rate in kg/s", + "# Results", + "print '-> Part(b) the mass flow rate is: ',mdot,'kg/s.'", + "print '-> The exit pressure is: ',p2,'bars.'", + "print '-> The exit mach number is: ',M2", + "", + "# Part(c)", + "# From part (b), the exit Mach number in the present part of the example is", + "M2 = 2.4", + "# Using this, Table 9.1 gives", + "p2bypnot = 0.0684", + "pnot = 6.8 # in bars", + "# Calculation", + "p2 = p2bypnot*pnot # in bars", + "# Results", + "# Since the nozzle is choked, the mass flow rate is the same as found in part (b).", + "print '> Part(c) the mass flow rate is: ',mdot,'kg/s.'", + "print '-> The exit pressure is: ',p2,'bars.'", + "print '-> The exit mach number is: ',M2", + "", + "# Part(d)", + "# Since a normal shock stands at the exit and the flow upstream of the shock is isentropic, the Mach number Mx and the pressure px correspond to the values found in part (c), ", + "Mx = 2.4", + "px = 0.465 # in bars", + "# Then, from Table 9.2", + "My = 0.52", + "#py is the exit pressure", + "pybypx = 6.5533", + "py = px*pybypx", + "", + "# The pressure downstream of the shock is thus 3.047 bars. This is the exit pressure", + "# The mass flow is the same as found in part (b).", + "# Results", + "print '-> Part(d) the mass flow rate is: ',mdot,'kg/s.'", + "print '-> The exit pressure is: ',round(py,3),'bars.'", + "print '-> The exit mach number is: ',My", + "", + "# Part(e)", + "# A shock stands in the diverging portion where the area is", + "Ax = 12.5 # in cm^2", + "# Since a shock occurs, the flow is sonic at the throat, so", + "Axstar = 6.25 # in cm^2", + "At = Axstar", + "# The Mach number Mx can then be found from Table 9.1, by using AxbyAxstar as", + "Mx = 2.2", + "", + "# Results", + "# With Mx =\u0003 2.2, the ratio of stagnation pressures is obtained from Table 9.2 as", + "pnotybypnotx = 0.62812", + "", + "# Using this ratio and noting that the flow is subsonic after the shock, Table 9.1 gives", + "M2 = 0.43", + "# For M2 = 0.43,", + "p2bypnoty = 0.88", + "# Calculations", + "A2byAystar = (Ae/Axstar)*pnotybypnotx", + "p2 = p2bypnoty*pnotybypnotx*pnot # in bars", + "", + "# Results", + "# Since the flow is choked, the mass flow rate is the same as that found in part (b).", + "print '-> part(e) the mass flow rate is: ',mdot,'kg/s.'", + "print '-> the exit pressure is: ',p2,'bars.'", + "print '-> the exit mach number is: ',M2" + ], + "language": "python", + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "-> Part(a) the mass flow rate in kg/s is: ", + "0.99", + "-> The exit pressure in bars is: ", + "6.52", + "-> The exit mach number is: ", + "0.24", + "-> Part(b) the mass flow rate is: 1.06238566635 kg/s.", + "-> The exit pressure is: 6.4804 bars.", + "-> The exit mach number is: 0.26", + "> Part(c) the mass flow rate is: 1.06238566635 kg/s.", + "-> The exit pressure is: 0.46512 bars.", + "-> The exit mach number is: 2.4", + "-> Part(d) the mass flow rate is: 1.06238566635 kg/s.", + "-> The exit pressure is: 3.047 bars.", + "-> The exit mach number is: 0.52", + "-> part(e) the mass flow rate is: 1.06238566635 kg/s.", + "-> the exit pressure is: 3.75867008 bars.", + "-> the exit mach number is: 0.43" + ] + } + ], + "prompt_number": 14 + } + ] + } + ] +}
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/README.txt b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/README.txt new file mode 100644 index 00000000..1659704b --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/README.txt @@ -0,0 +1,10 @@ +Contributed By: Hetal Rathod +Course: btech +College/Institute/Organization: IIT Bombay +Department/Designation: Aerospace +Book Title: Fundamental of Thermodynamics by Moran and Shapiro +Author: Michael J. Moran and Howard N. Shapiro +Publisher: John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England +Year of publication: 2006 +Isbn: 978-0-470-03037-0 +Edition: 5th
\ No newline at end of file diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1.png Binary files differnew file mode 100644 index 00000000..630ef263 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_1.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_1.png Binary files differnew file mode 100644 index 00000000..630ef263 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_1.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_2.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_2.png Binary files differnew file mode 100644 index 00000000..763b903c --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_2.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_3.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_3.png Binary files differnew file mode 100644 index 00000000..763b903c --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph1_3.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2.png Binary files differnew file mode 100644 index 00000000..8dbefa98 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_1.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_1.png Binary files differnew file mode 100644 index 00000000..8dbefa98 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_1.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_2.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_2.png Binary files differnew file mode 100644 index 00000000..418e67d8 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_2.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_3.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_3.png Binary files differnew file mode 100644 index 00000000..418e67d8 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph2_3.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3.png Binary files differnew file mode 100644 index 00000000..4253b0e3 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_1.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_1.png Binary files differnew file mode 100644 index 00000000..4253b0e3 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_1.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_2.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_2.png Binary files differnew file mode 100644 index 00000000..e43d18f3 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_2.png diff --git a/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_3.png b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_3.png Binary files differnew file mode 100644 index 00000000..e43d18f3 --- /dev/null +++ b/Fundamental_of_Thermodynamics_by_Moran_and_Shapiro/screenshots/graph3_3.png |