summaryrefslogtreecommitdiff
path: root/Thermodynamics
diff options
context:
space:
mode:
Diffstat (limited to 'Thermodynamics')
-rwxr-xr-xThermodynamics/Chapter10.ipynb763
-rwxr-xr-xThermodynamics/Chapter11.ipynb350
-rwxr-xr-xThermodynamics/Chapter12.ipynb504
-rwxr-xr-xThermodynamics/Chapter13.ipynb541
-rwxr-xr-xThermodynamics/Chapter14.ipynb630
-rwxr-xr-xThermodynamics/Chapter15.ipynb361
-rwxr-xr-xThermodynamics/Chapter2.ipynb112
-rwxr-xr-xThermodynamics/Chapter3.ipynb456
-rwxr-xr-xThermodynamics/Chapter4.ipynb605
-rwxr-xr-xThermodynamics/Chapter5.ipynb1018
-rwxr-xr-xThermodynamics/Chapter6.ipynb1076
-rwxr-xr-xThermodynamics/Chapter7.ipynb932
-rwxr-xr-xThermodynamics/Chapter8.ipynb589
-rwxr-xr-xThermodynamics/Chapter9.ipynb585
-rwxr-xr-xThermodynamics/README.txt18
-rwxr-xr-xThermodynamics/screenshots/figure_1.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11_1.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11_2.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11_3.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11_4.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_1_1.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_1_2.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_1_3.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_1_4.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22_1.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22_2.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22_3.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22_4.pngbin0 -> 48166 bytes
30 files changed, 8531 insertions, 9 deletions
diff --git a/Thermodynamics/Chapter10.ipynb b/Thermodynamics/Chapter10.ipynb
new file mode 100755
index 00000000..fbcc64f3
--- /dev/null
+++ b/Thermodynamics/Chapter10.ipynb
@@ -0,0 +1,763 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:897b863d1c4a7fc08bdd18a7c97541fdce377415c35a75aa9b7ef0eec5c061e1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10:AVAILABILITY AND IRREVERSIBILITY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page No:472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=100; # Mass of water in kg\n",
+ "T0=90; # Initial temperature of water in degree celcius\n",
+ "T=30; # temperature of Surroundings in degree celcius\n",
+ "C=4.1868; # Specific heat in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "AE=m*C*((T0-T)-(T+273)*math.log ((T0+273)/(T+273))); # Available energy\n",
+ "Q=m*C*(T0-T); # Heat supplied\n",
+ "UE=Q-AE; # Unavailable energy\n",
+ "\n",
+ "#Result\n",
+ "print \"Available energy =\",round(AE,0),\"kJ\"\n",
+ "print \"Heat supplied = \",round(Q,0),\"kJ\",\"\\nUnavailable energy = \",round(UE,0),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy = 2201.0 kJ\n",
+ "Heat supplied = 25121.0 kJ \n",
+ "Unavailable energy = 22920.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No:474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=250; # Evaporation teemperature of water in degree celcius\n",
+ "Ta=1250; # Initial temperature of combustion gas in degree celcius\n",
+ "Tb=350; # Final temperature of combustion gas in degree celcius\n",
+ "C=1.08; # Specific heat of gas in kJ/kg K\n",
+ "T0=30; # temperature of Surroundings in degree celcius\n",
+ "hfg=1716.2; # Enthalpy of evaporation at T temperature\n",
+ "\n",
+ "#Calculation\n",
+ "del_SH2O=hfg/(T+273); # Entropy change of water\n",
+ "mgas=hfg/(C*(Ta-Tb)); # Mass of gas\n",
+ "del_Sgas=mgas*C*math.log ((Tb+273)/(Ta+273)); # Enthalpy change of gas\n",
+ "del_Stotal=del_SH2O+del_Sgas; # Total entropy change\n",
+ "l_AE=(T0+273)*del_Stotal; # Loss of available energy\n",
+ "\n",
+ "#Result\n",
+ "print \"Loss of available energy = \",round(l_AE,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loss of available energy = 477.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3, Page No:475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Cp=1.1; # Specific heat of combustion gas in kJ/kg K\n",
+ "T3=1600; # Initial temperature of combustion gas in Kelvin\n",
+ "T4=1150; # Final temperature of combustion gas in Kelvin\n",
+ "p1=0.1; # Pressure at inlet of boiler in MPa\n",
+ "p2=8;# Pressure at outlet of boiler in MPa\n",
+ "T2=600; # Temperature at outlet of boiler in degree celcius\n",
+ "m=1; # Mass of water in kg\n",
+ "T0=298; # temperature of Surroundings in kelvin\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).mass flow rate of gases per kg of water\n",
+ "# From steam table \n",
+ "h1=2758; h2=3642;# specific enthalpy in kJ/kg \n",
+ "s1=5.7432; s2=7.0206; # specific entropy in kJ/kg K\n",
+ "mgas=(h2-h1)/(Cp*(T3-T4)); #mass flow rate of gases per kg of water\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).mass flow rate of gases per kg of water =\",round(mgas,3),\"kg gas / kg water\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c). Degrease in Available energy\n",
+ "S21=s2-s1; # Change in entropy of water\n",
+ "S34=mgas*Cp*math.log (T3/T4); # Change in entropy of gases\n",
+ "UEgases=T0*S34; # UnAvailable energy of gas\n",
+ "UEsteam=T0*S21; # UnAvailable energy of steam\n",
+ "d_AE=UEsteam-UEgases; # Degrease in Available energy\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).\",\"\\nChange in entropy of water = \",round(S21,4),\"kJ/K\",\"\\nChange in entropy of gas = \",round(-S34,4),\"kJ/K\"\n",
+ "print \"Unavailable energy of gas = \",round(UEgases,1),\"kJ\",\"\\nUnavailable energy of steam =\",round(UEsteam,1),\"kJ\"\n",
+ "print \"Degrease in Available energy = \",round(d_AE,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(b).mass flow rate of gases per kg of water = 1.786 kg gas / kg water\n",
+ "\n",
+ "(c). \n",
+ "Change in entropy of water = 1.2774 kJ/K \n",
+ "Change in entropy of gas = -0.6487 kJ/K\n",
+ "Unavailable energy of gas = 193.3 kJ \n",
+ "Unavailable energy of steam = 380.7 kJ\n",
+ "Degrease in Available energy = 187.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5, Page No:481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=700;# Exhaust gas temperature in degree celcius\n",
+ "p=120;# Exhaust gas pressure in kPa\n",
+ "Cpo=1.089; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant in kJ/kg K\n",
+ "p0=100; # Pressure of Surroundings in kPa\n",
+ "T0=30; # temperature of Surroundings in degree celcius\n",
+ "\n",
+ "#Calculation\n",
+ "Cvo=Cpo-R; # Specific heat at constant volume\n",
+ "AE=(Cvo*(T-T0))+(p0*R*((T+273)/p-(T0+273)/p0))-((T0+273)*((Cpo*math.log((T+273)/(T0+273)))-(R*math.log (p/p0)))); # Available energy\n",
+ "\n",
+ "#Result \n",
+ "print \"Available energy in Exhaust gas =\",round(AE,0),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy in Exhaust gas = 314.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6, Page No:482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=450; # Initial pressure in kPa\n",
+ "T=600; # Initial temperature in kelvin\n",
+ "V1=0.01; # Initial volume in m^3\n",
+ "TR=1200; # Temperature of heat source in Kelvin\n",
+ "V2=0.02; # Final volume in m^3\n",
+ "p0=100; # Pressure of Surroundings in kPa\n",
+ "T0=300; # temperature of Surroundings in kelvin\n",
+ "\n",
+ "#Calculation\n",
+ "# Useful Work\n",
+ "W=p1*V1*math.log (V2/V1); # Actual work\n",
+ "Wsurr=p0*(V2-V1); # Surrounding work\n",
+ "Wu=W-Wsurr; # Useful work\n",
+ "# Reversible work\n",
+ "Q=W; # For isothermal process\n",
+ "S21=Q/T; # Entropy change of system\n",
+ "Wrev=T0*S21-Wsurr+Q*(1-T0/TR); # reversible work\n",
+ "# Irreversibility of the process\n",
+ "I=Wrev-Wu; # Irreversibility\n",
+ "# Entropy generation \n",
+ "del_Sgen=S21-Q/TR;#Entropy generation\n",
+ "\n",
+ "#Results\n",
+ "print \"Useful Work for the process =\",round(Wu,2),\"kJ\"\n",
+ "print \"Reversible work for the provess =\",round(Wrev,1),\"kJ\"\n",
+ "print \"Irreversibility of the process = \",round(I,2),\"kJ\"\n",
+ "print \"Entropy generation of the process = \",round(del_Sgen,4),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Useful Work for the process = 2.12 kJ\n",
+ "Reversible work for the provess = 2.9 kJ\n",
+ "Irreversibility of the process = 0.78 kJ\n",
+ "Entropy generation of the process = 0.0026 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No:485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration for (i)\n",
+ "# (i).Irreversibility in Turbine\n",
+ "p1=9; # Steam pressure at turbine inlet in MPa\n",
+ "T1=450; # Steam temperature at turbine inlet in degree celcius\n",
+ "p2=50; # Steam pressure at turbine outlet in MPa\n",
+ "x2=0.95; # Quality of steam \n",
+ "p0=100; # Pressure of Surroundings in kPa\n",
+ "T0=300; # temperature of Surroundings in kelvin\n",
+ "q=-10; # Heat loss in kJ/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Decrease in availability\n",
+ "# from steam table\n",
+ "h1=3256.6; h2=2415.4;# specific enthalpy in kJ/kg \n",
+ "s1=6.4844; s2=6.944; # specific entropy in kJ/kg K\n",
+ "d_AE=(h1-h2)-(T0*(s1-s2)); # Decrease in availability\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(i).Irreversibility in turbine\",\"\\n (a).Decrease in availability =\",round(d_AE,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Maxximum work output\n",
+ "wrev=d_AE; #Maxximum work output\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \" (b).Maxximum work output =\",round(wrev,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Actual work output \n",
+ "w=(h1-h2)+q; # From SSSF energy equation\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \" (c).Actual work output = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Irreversibility\n",
+ "I=wrev-w; #Irreversibility\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \" (d).Irreversibility = \",round(I,1),\"kJ/kg\"\n",
+ "\n",
+ "#Variable declaration for (ii)\n",
+ "# (ii).Ammonia compressor\n",
+ "T1=-10; # Temperature at inlet in degree celcius\n",
+ "p2=1.554; # Pressure at outlet in MPa\n",
+ "T2=140; # Temperature at outlet in degree celcius\n",
+ "T0=298; # temperature of Surroundings in kelvin\n",
+ "#from ammonia tables \n",
+ "h1=1433; h2=1752;# specific enthalpy in kJ/kg \n",
+ "s1=5.477; s2=5.655; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (ii)\n",
+ "wactual=-(h2-h1); # Actual work\n",
+ "wmin=-((h2-h1)-(T0*(s2-s1)));# mimimum work\n",
+ "I=wmin-wactual;# Irreversibility\n",
+ "\n",
+ "#Result for (ii)\n",
+ "print \"\\n(ii).Ammonia compressor\",\"\\nActual work = \",wactual,\"kJ/kg\"\n",
+ "print \"Minimum work =\",round(wmin,0),\"kJ/kg\",\"\\nIrreversibility =\",round(I,0),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i).Irreversibility in turbine \n",
+ " (a).Decrease in availability = 979.1 kJ/kg\n",
+ " (b).Maxximum work output = 979.1 kJ/kg\n",
+ " (c).Actual work output = 831.2 kJ/kg\n",
+ " (d).Irreversibility = 147.9 kJ/kg\n",
+ "\n",
+ "(ii).Ammonia compressor \n",
+ "Actual work = -319 kJ/kg\n",
+ "Minimum work = -266.0 kJ/kg \n",
+ "Irreversibility = 53.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8, Page No:487"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Cp=1.1; # Specific heat of combustion gas in kJ/kg K\n",
+ "T3=1600; # Initial temperature of combustion gas in Kelvin\n",
+ "T4=1150; # Final temperature of combustion gas in Kelvin\n",
+ "p1=0.1; # Pressure at inlet of boiler in MPa\n",
+ "p2=8;# Pressure at outlet of boiler in MPa\n",
+ "T2=600; # Temperature at outlet of boiler in degree celcius\n",
+ "m=1; # Mass of water in kg\n",
+ "T0=298; # temperature of Surroundings in kelvin\n",
+ "# From steam table \n",
+ "h1=2758; h2=3642;# specific enthalpy in kJ/kg \n",
+ "s1=5.7432; s2=7.0206; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation \n",
+ "mgas=(h2-h1)/(Cp*(T3-T4)); #mass flow rate of gases per kg of water\n",
+ "S21=s2-s1; # Change in entropy of water\n",
+ "S34=mgas*Cp*math.log (T3/T4); # Change in entropy of gases\n",
+ "# (a).Decrease in availability of gases\n",
+ "d_AEgas=mgas*Cp*(T3-T4)-T0*S34#Decrease in availability of gases\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Decrease in availability of gases = \",round(d_AEgas,2),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Decrease in availability of water\n",
+ "d_AEwater=(h1-h2)-T0*(s1-s2);# Decrease in availability of water\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).Decrease in availability of water =\",round(d_AEwater,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Reversible work for the process\n",
+ "Wrev=d_AEgas+d_AEwater; #Reversible work for the process\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"(c).Reversible work for the process=\",round(Wrev,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Actual work for the process\n",
+ "W=0; # Actual work\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"(d).Actual work for the process =\",W,\"kJ\"\n",
+ "\n",
+ "#Calculation for (e)\n",
+ "# (e).Irreversibility\n",
+ "I=Wrev-W; #Irreversibility\n",
+ "\n",
+ "#Result for (e)\n",
+ "print \"(e).Irreversibility = \",round(I,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Decrease in availability of gases = 690.68 kJ\n",
+ "(b).Decrease in availability of water = -503.3 kJ\n",
+ "(c).Reversible work for the process= 187.3 kJ\n",
+ "(d).Actual work for the process = 0 kJ\n",
+ "(e).Irreversibility = 187.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9, Page No:487"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TH=600; # Temperature of heat sorce in degree celcius\n",
+ "T3=311.06; # Boiler temperature in degree celcius\n",
+ "p3=10; # Boiler pressure in MPa\n",
+ "T4=32.88; # Condensor temperature in degree celcius\n",
+ "p4=5; # Condensor pressure in kPa\n",
+ "T0=288;# Temperature of surroundings in kelvin\n",
+ "# From steam table and refer figure 10.10 for states\n",
+ "h1=137.82; h2=147.82; h3=2724.7; hf4=197.82; hfg4=2423.7; h4=1913.6; # specific enthalpy in kJ/kg \n",
+ "s1=0.4764; s2=s1; s3=5.6141; s4=s3; sf4=0.4764; sfg4=7.9187; s4=6.2782; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "wT=h3-h4; # Turbine work\n",
+ "wp=h2-h1; # Pump work\n",
+ "wnet=wT-wp; # Net work\n",
+ "qH=h3-h2; # Heat supplied in boiler\n",
+ "qL=h4-h1; # Heat rejected in condensor\n",
+ "Wrev_Wpump=T0*(s2-s1); \n",
+ "Wrev_Wboiler=T0*(s3-s2)-T0*qH/(TH+273);\n",
+ "Wrev_Wturbine=T0*(s4-s3);\n",
+ "Wrev_Wcondenser=T0*(s1-s4)+qL;\n",
+ "Wrev_Wcycle=Wrev_Wpump+Wrev_Wboiler+Wrev_Wturbine+Wrev_Wcondenser; \n",
+ "\n",
+ "#Result\n",
+ "print \"The lost (Wrev-W)for the Pump = \",Wrev_Wpump,\"kJ/kg\",\"\\nThe lost (Wrev-W)for the Boiler = \",round(Wrev_Wboiler,1),\"kJ/kg\"\n",
+ "print \"The lost (Wrev-W)for the Turbine = \",round(Wrev_Wturbine,1),\"kJ/kg\"\n",
+ "print \"The lost (Wrev-W)for the condensor = \",round(Wrev_Wcondenser,1),\"kJ/kg\"\n",
+ "print \"The lost (Wrev-W)for the overall cycle = \",round(Wrev_Wcycle,0),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lost (Wrev-W)for the Pump = 0.0 kJ/kg \n",
+ "The lost (Wrev-W)for the Boiler = 629.6 kJ/kg\n",
+ "The lost (Wrev-W)for the Turbine = 191.3 kJ/kg\n",
+ "The lost (Wrev-W)for the condensor = 104.9 kJ/kg\n",
+ "The lost (Wrev-W)for the overall cycle = 926.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.10, Page No:491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# State after reversible adiabatic expansion\n",
+ "p2=50; # pressure in kPa\n",
+ "s2s=6.4844; s1=6.4844; s2=6.944; # specific entropy in kJ/kg K\n",
+ "x2s=0.829; # Quality of steam \n",
+ "h2s=2252.6; h1=3256.6; # specific enthalpy in kJ/kg \n",
+ "T2=81.33; T0=27; # Temperature in degree celcius\n",
+ "\n",
+ "#Calculation\n",
+ "ws=h1-h2s; # Reversible adiabatic work\n",
+ "wa=831.2; # Actual work output in kJ/kg\n",
+ "d_AE=979.1; # Decrease in availability in kJ/LG\n",
+ "eff_I=wa/ws; # First law efficiency of turbine\n",
+ "eff_II=wa/d_AE; # Second law efficiency of turbine\n",
+ "w2srev2=(T2-T0)*(s2-s1); # Negative work\n",
+ "w1rev2=ws-w2srev2; # Decrease in availability\n",
+ "\n",
+ "#Result\n",
+ "print \"First law efficiency of turbine = \",round(eff_I*100,1),\"%\",\"\\nSecond law efficiency of turbine = \",round(eff_II*100,1),\"%\"\n",
+ "print \"Negative work = \",round(w2srev2,2),\"kJ/kg\",\"\\nDcresase in Availability = \",round(w1rev2,2),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First law efficiency of turbine = 82.8 % \n",
+ "Second law efficiency of turbine = 84.9 %\n",
+ "Negative work = 24.97 kJ/kg \n",
+ "Dcresase in Availability = 979.03 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11, Page No:493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=100; # Pressure at inlet in kPa\n",
+ "T1=30; # Temperature at inlet in degree celcius\n",
+ "V1=0; # Velocity at inlet in m/s\n",
+ "p2=350; # Pressure at outlet in kPa\n",
+ "T2=141; # Temperature at exit in degree celcius\n",
+ "V2=90; # Velocity at exit in m/s\n",
+ "p0=100; # Pressure of Surroundings in kPa\n",
+ "T0=30; # temperature of Surroundings in degree celcius\n",
+ "k=1.4; # Index of the Isentropic compression process\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Adiabatic or polytropic compression\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k); # Temperature after isentropic compression\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Adiabatic or polytropic compression\",\"\\nTemperature after isentropic compression =\",round(T2s,1),\"K\"\n",
+ "print \"T2s>T2. Hence there is cooling . Compression is polytropic.\" \n",
+ " \n",
+ "#Calculation for (b)\n",
+ "# (b).The first law efficiency of the compressor\n",
+ "wa=Cpo*(T1-T2)-V2**2/2000; #Actual work of compression\n",
+ "wT=(-R*(T1+273)*math.log (p2/p1))-(V2**2/2000); # Isothermal work\n",
+ "eff_Ilaw=wT/wa; # The first law efficiency of the compressor\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The first law efficiency of the compressor = \",round(eff_Ilaw*100,1),\"%\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Minimum work input & Irreversibility\n",
+ "d_AE=(Cpo*(T1-T2))+((T0+273)*((R*math.log (p2/p1))-(Cpo*math.log ((T2+273)/(T1+273)))))-V2**2/2000; # decrease in availability\n",
+ "wmin=d_AE; # Minimum work input\n",
+ "wrev=wmin;\n",
+ "I=wrev-wa; # Irreversibility\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Minimum work input & Irreversibility\",\"\\nMinimum work input =\",round(wmin,1),\"kJ/kg\"\n",
+ "print \"Irreversibility =\",round(I,0),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Second law efficiency of the compressor\n",
+ "eff_IIlaw=wmin/wa; # Second law efficiency of the compressor\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Second law efficiency of the compressor =\",round(eff_IIlaw*100,0),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Adiabatic or polytropic compression \n",
+ "Temperature after isentropic compression = 433.4 K\n",
+ "T2s>T2. Hence there is cooling . Compression is polytropic.\n",
+ "\n",
+ "(b).The first law efficiency of the compressor = 97.9 %\n",
+ "\n",
+ "(c).Minimum work input & Irreversibility \n",
+ "Minimum work input = -101.4 kJ/kg\n",
+ "Irreversibility = 14.0 kJ/kg\n",
+ "\n",
+ "(d).Second law efficiency of the compressor = 88.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12, Page No:498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T0=313; # Surroundings temperature in kelvin\n",
+ "TL=233; # Refrigerated space temperature in kelvin\n",
+ "QL=3.5167; # Refrigeration load in kW\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Carnot cycle\n",
+ "COPcarnot=TL/(T0-TL); # COP of carnot cycle\n",
+ "Wcarnot=QL/COPcarnot; # Work done\n",
+ "Q0=QL+Wcarnot; # Heat rejected\n",
+ "d_SL=-QL/TL;# Entropy change of refrigerated space\n",
+ "d_S0=Q0/T0; #Entropy change of surroundings\n",
+ "d_Sgen= d_SL+ d_S0; # Entropy generation\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Carnot cycle\",\"\\nWork done = \",round(Wcarnot,4),\"kW\",\"\\nCOP of carnot cycle = \",round(COPcarnot,4)\n",
+ "print (\" Entropy generation = %d kJ/K s \")%d_Sgen\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).Vapour compression cycle\n",
+ "# From Freon-12 property table & figure 10.17\n",
+ "p1=0.0642; p2=0.9607; # Pressure in MPa\n",
+ "h1=169.5; h3=74.5; # specific enthalpy in kJ/kg \n",
+ "s1=0.7269; s3=0.2716;# specific entropy in kJ/kg K\n",
+ "# By calculations s2=s1 gives the following from property table\n",
+ "t2=58.9; # Temperature in degree celcius\n",
+ "h2=217.6; # specific enthalpy in kJ/kg \n",
+ "# From h4=h3 gives the following from chart\n",
+ "h4=h3;\n",
+ "x4=0.44; # Quality of vapour\n",
+ "s4=0.3195;# specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "m=QL/(h1-h4); # Mass flow rate of refrigerant\n",
+ "W=m*(h2-h1); # Work done of vapour compression cycle\n",
+ "COP=QL/W; # COP of vapour compression cycle\n",
+ "QH=QL+W; # Heat rejected to surroundings\n",
+ "d_SL=-QL/TL;# Entropy change of refrigerated space\n",
+ "d_S0=QH/T0; #Entropy change of surroundings\n",
+ "d_Sgen= d_SL+ d_S0; # Entropy generation\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Vapour compression cycle\",\"Work done = \",round(W,3),\"kW\",\"\\nCOP of vapour compression cycle = \",round(COP,2)\n",
+ "print (\" Entropy generation = %f kJ/K s \")%round(d_Sgen,5)\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Difference in work = Lost work of the cycle\n",
+ "d_work=W-Wcarnot; # Difference in work\n",
+ "LWcycle=QH-T0*QL/TL; # Lost work of the cycle\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Difference in work = Lost work of the cycle\",\"\\nDifference in work = \",round(d_work,4),\"kW\"\n",
+ "print \"Lost work of the cycle= \",round(LWcycle,4),\"kW\",\"which is same as Difference in work\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Second Law efficiency of the vapour compression cycle\n",
+ "eff_II=COP/COPcarnot; #Second Law efficiency\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Second Law efficiency of the vapour compression cycle = \",round(eff_II*100,1),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Carnot cycle \n",
+ "Work done = 1.2075 kW \n",
+ "COP of carnot cycle = 2.9125\n",
+ " Entropy generation = 0 kJ/K s \n",
+ "\n",
+ "(b).Vapour compression cycle Work done = 1.781 kW \n",
+ "COP of vapour compression cycle = 1.98\n",
+ " Entropy generation = 0.001830 kJ/K s \n",
+ "\n",
+ "(c).Difference in work = Lost work of the cycle \n",
+ "Difference in work = 0.5731 kW\n",
+ "Lost work of the cycle= 0.5731 kW which is same as Difference in work\n",
+ "\n",
+ "(d).Second Law efficiency of the vapour compression cycle = 67.8 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter11.ipynb b/Thermodynamics/Chapter11.ipynb
new file mode 100755
index 00000000..06493c9c
--- /dev/null
+++ b/Thermodynamics/Chapter11.ipynb
@@ -0,0 +1,350 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:07129d26d6d361c6256f48cf43ea30152b9d8cd21fc1703b7734f18388f313fe"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11:THERMODYNAMIC PROPERTY RELATIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No:510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=150; p2=200; p3=250; p4=300; p5=350; p6=400; p7=450; p8=500; p9=550; p10=600; p11=650; p12=700;\n",
+ "p13=750; p14=800; p15=850; p16=900; # Pressures of merect's boiler experiment in kPa\n",
+ "t1=111.4; t2=120.2; t3=127.4; t4=133.6; t5=138.9; t6=143.6; t7=147.9; t8=151.9; t9=155.5; t10=158.9; t11=162;\n",
+ "t12=165; t13=167.8; t14=170.4; t15=173; t16=175.4; # Temperatures of merect's boiler experiment in degree celcius\n",
+ "n=16;# Total number of readings taken \n",
+ "\n",
+ "#Calculation for constants\n",
+ "# Values of constant A & B\n",
+ "s_y= math.log10 (p1*p2*p3*p4*p5*p6*p7*p8*p9*p10*p11*p12*p13*p14*p15*p16);\n",
+ "s_x=1/(t1+273)+1/(t2+273)+1/(t3+273)+1/(t4+273)+1/(t5+273)+1/(t6+273)+1/(t7+273)+1/(t8+273)+1/(t9+273)+1/(t10+273)+1/(t11+273)+1/(t12+273)+1/(t13+273)+1/(t14+273)+1/(t15+273)+1/(t16+273);\n",
+ "s_xy=((math.log10 (p1))*1/(t1+273))+ ((math.log10 (p2))*1/(t2+273))+ ((math.log10 (p3))*1/(t3+273))+ ((math.log10 (p4))*1/(t4+273))+ ((math.log10 (p5))*1/(t5+273))+ ((math.log10 (p6))*1/(t6+273))+ ((math.log10 (p7))*1/(t7+273))+ ((math.log10 (p8))*1/(t8+273))+ ((math.log10 (p9))*1/(t9+273))+ ((math.log10 (p10))*1/(t10+273))+ ((math.log10 (p11))*1/(t11+273)) + ((math.log10 (p12))*1/(t12+273)) + ((math.log10 (p13))*1/(t13+273)) + ((math.log10 (p14))*1/(t14+273)) + ((math.log10 (p15))*1/(t15+273)) + ((math.log10 (p16))*1/(t16+273));\n",
+ "s_x2=(1/(273+t1))**2+(1/(273+t2))**2+(1/(273+t3))**2+(1/(273+t4))**2+(1/(273+t5))**2+(1/(273+t6))**2+(1/(273+t7))**2+(1/(273+t8))**2+(1/(273+t9))**2+(1/(273+t10))**2+(1/(273+t11))**2+(1/(273+t12))**2+(1/(273+t13))**2+(1/(273+t14))**2+(1/(273+t15))**2+(1/(273+t16))**2;\n",
+ "B= ((n*s_xy)-(s_x*s_y))/((n*s_x2)-((s_x)**2)); # Constant B\n",
+ "A=((s_y)-(B*s_x))/n; # Constant A\n",
+ "\n",
+ "#Result for constants\n",
+ "print \"Values of constant A & B\"\n",
+ "print \"A =\",round(A,5)\n",
+ "print \"B =\",round(B,1),\" (roundoff error)\"\n",
+ "\n",
+ "#Calculation for latent heat of vapourization\n",
+ "# The latent heat of vapourization\n",
+ "T=150; # The latent heat of vapourization at this temperature in degree celcius\n",
+ "d_T=20; d_p=258.7; # Temperature and pressure difference\n",
+ "vg=0.3928; vf=0.0011; # specific volume in m^3/kg\n",
+ "hfg=(T+273)*(vg-vf)*d_p/d_T; # Clapeyron equztion\n",
+ "\n",
+ "#Result for latent heat of vapourization\n",
+ "print \"The latent heat of vapourization at 150 oC =\",round(hfg,2),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Values of constant A & B\n",
+ "A = 7.62068\n",
+ "B = -2091.6 (roundoff error)\n",
+ "The latent heat of vapourization at 150 oC = 2143.19 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3, Page No:517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "p5=6000; # Pressure of superheated steam in kPa\n",
+ "T5=723.15; # Temperature of superheated steam in kelvin\n",
+ "p1=0.6113; # Pressure at reference state in kPa\n",
+ "T1=273.16; # Temperature at reference state in kelvin\n",
+ "hfg1=2501.3; # Latent heat of vapourization of water at reference state in kJ/kg\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "# The critical state properties of water\n",
+ "pc=2.09; # pressure in MPa\n",
+ "Tc=647.3; # Temperature in kelvin\n",
+ "h1=0; # Reference state in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "h2=h1+hfg1; # specific enthalpy in kJ/kg \n",
+ "# At point 2\n",
+ "p2=p1; T2=T1;\n",
+ "z=0.9986;\n",
+ "r=18.015;\n",
+ "A2=(0.4278/(pc*10**4))*(Tc/T2)**2.5; # Constants\n",
+ "B=(0.0867/(pc*10**4))*(Tc/T2); # Constants\n",
+ "h2_h3=R_1*(T2/r)*(((-3/2)*(A2/B)*math.log (1+(B*p2/z)))+z-1); # Enthalpy difference between state 2 & 3\n",
+ "# At point 5\n",
+ "z1=0.9373;\n",
+ "A2=(0.4278/(pc*10**4))*(Tc/T5)**2.5; # Constants\n",
+ "B=(0.0867/(pc*10**4))*(Tc/T5); # Constants\n",
+ "h5_h4=R_1*(T5/r)*(((-3/2)*(A2/B)*math.log (1+(B*p5/z1)))+z1-1); # Enthalpy difference between state 5 & 4\n",
+ "a=1.6198;b=6.6*10**-4; # Constants\n",
+ "h4_h3=a*(T5-T1)+b*(T5**2-T1**2)/2; # Enthalpy difference between state 3 & 4\n",
+ "h5=h2-h2_h3+h5_h4+h4_h3; # Specific enthalpy at state 5 \n",
+ "\n",
+ "#Result\n",
+ "print \"Specific enthalpy at state 5 = \",round(h5,1),\"kJ/kg (roundoff error)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific enthalpy at state 5 = 3308.3 kJ/kg (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No:527"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T2=373; # Temperature of CO2 gas in kelvin\n",
+ "p2=100; # Pressure of CO2 gas in atm\n",
+ "T1=0; # Reference state temperature in kelvin\n",
+ "# The crictical constants for CO2 are \n",
+ "Tc=304.2; # Temperature in kelvin\n",
+ "Pc=72.9; # Pressure in atm\n",
+ "zc=0.275;\n",
+ "\n",
+ "#Calculation\n",
+ "# Refer figure 11.7 for state definition\n",
+ "h1_0=((-3.74*T2)+((30.53/(100**0.5))*((T2**1.5)/1.5))-((4.1/100)*((T2**2)/2))+((0.024/(100**2))*((T2**3)/3)));\n",
+ "Tr=T2/Tc; Pr=p2/Pc; # Reduced properties\n",
+ "# From generalized chart figure 11.6\n",
+ "hR_Tc=10.09;\n",
+ "h1_2=hR_Tc*Tc;\n",
+ "M=44; # Molecular weight\n",
+ "h10=h1_0/M; h12=h1_2/M;\n",
+ "h373=h10-h12; # The required enthalpy of CO2 gas at 373 K and 100 atm\n",
+ "\n",
+ "#Result\n",
+ "print \"The required enthalpy of CO2 gas at 373 K and 100 atm = \",round(h373,0),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required enthalpy of CO2 gas at 373 K and 100 atm = 168.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page No:531"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=11; # Initial pressure in bar\n",
+ "T1=40; # Initial temperature in degree celcius\n",
+ "p2=60; # Final pressure in bar\n",
+ "R_1=8.3143; # Universal gas constant in kJ/kmol K\n",
+ "# The crictical properties for natural gas \n",
+ "Tc=161; # Temperature in kelvin\n",
+ "Pc=46.4; # Pressure in bar\n",
+ "\n",
+ "#Calculation\n",
+ "# Reduced properties are\n",
+ "Pr1=p1/Pc; Pr2=p2/Pc;\n",
+ "Tr1=(T1+273)/Tc;\n",
+ "# T2=T1, The ideal gas enthalpy h2*=h1*=h1\n",
+ "h21=-47.5; # From generalized enthalpy departure chart\n",
+ "M=16; # Molecular weight\n",
+ "Sp2_1=(R_1/M)*math.log (p2/p1)# for the difference in ideal gas entropies\n",
+ "Sp2_Sp_2=-0.1125; Sp_2_Sp_1=-2.1276; # Entropies in kJ/kg K\n",
+ "s2_s1=(Sp2_Sp_2)+(Sp_2_Sp_1);\n",
+ "q=(T1+273)*s2_s1; # Heat transfer\n",
+ "w=q-h21; # Work of compression\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat transfer = \",round(q,1),\"kJ/kg\",\"\\nWork of compression = \",round(w,0),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer = -701.2 kJ/kg \n",
+ "Work of compression = -654.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.8, Page No:538"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=10; # Initial pressure in MPa\n",
+ "T1=263; # Initial temperature in Kelvin\n",
+ "p2=1.5; # Final pressure in MPa\n",
+ "R_1=8.3143; # Universal gas constant in kJ/kmol K\n",
+ "M=28; # Molecular mass\n",
+ "# The crictical properties for nitrogen gas \n",
+ "Tc=126.2; # Temperature in kelvin\n",
+ "Pc=3.39; # Pressure in MPa\n",
+ "\n",
+ "#Calculation\n",
+ "# Reduced properties are\n",
+ "Pr1=p1/Pc; Pr2=p2/Pc;\n",
+ "Tr1=T1/Tc;\n",
+ "# From the generalized chart for enthalpy departure at Pr1 & Tr1\n",
+ "h_11=8.7*Tc/M;\n",
+ "# The solution involves iteration procedure. Assume T2 and check if h2_h1=0\n",
+ "# First approximation T2=200 K\n",
+ "T2=200; # In K\n",
+ "Tr2=T2/Tc;\n",
+ "Cpr=1.046;\n",
+ "h_21=Cpr*(T2-T1);\n",
+ "# From the generalized chart for enthalpy departure at Pr1 & Tr1\n",
+ "h_22=1*Tc/M;\n",
+ "h2_h1=h_11-T2+T1-h_22;\n",
+ "# Second approximation \n",
+ "T2=190; # In K\n",
+ "Tr2=T2/Tc;\n",
+ "Cpr=1.046;\n",
+ "h_21=Cpr*(T2-T1);\n",
+ "# From the generalized chart for enthalpy departure at Pr1 & Tr1\n",
+ "h_22=1.5*Tc/M;\n",
+ "h2_h1=h_11-T2+T1-h_22;\n",
+ "\n",
+ "#Result\n",
+ "print \"Here also h2-h1 != 0. Therefore the temperature is dropping. Thus Joule-Thomson coefficient is positive.\"\n",
+ "print \"There is cooling in this process\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here also h2-h1 != 0. Therefore the temperature is dropping. Thus Joule-Thomson coefficient is positive.\n",
+ "There is cooling in this process\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.9, Page No:544"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Tcammonia=405.9;\n",
+ "Tcwater=647.3;\n",
+ "Tr=0.576; # Condition of similarity\n",
+ "\n",
+ "#Calculation\n",
+ "Twater=Tcwater*Tr; # At reduced temperature Temperature of water\n",
+ "Tammonia=Tcammonia*Tr;#At reduced temperature Temperature of ammonia\n",
+ "# From steam table at Twater\n",
+ "hfgwater=2257;# specific enthalpy in kJ/kg \n",
+ "hfgammonia=Tcammonia/Tcwater *hfgwater; # Latent heat of vaporization of ammonia\n",
+ "\n",
+ "#Result\n",
+ "print \"Latent heat of vaporization of ammonia =\",round(hfgammonia,0),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Latent heat of vaporization of ammonia = 1415.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter12.ipynb b/Thermodynamics/Chapter12.ipynb
new file mode 100755
index 00000000..6b383304
--- /dev/null
+++ b/Thermodynamics/Chapter12.ipynb
@@ -0,0 +1,504 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:26bd61324c67aa0fef3f72b60851ba818d2a228685c4163bcb87732321b4f4fb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12:NON-REACTING MIXTURES OF GASES AND LIQUIDS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No:553"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M1=28.02; # Molecular mass of N2\n",
+ "M2=32; # Molecular mass of O2\n",
+ "M3=39.91; # Molecular mass of Ar\n",
+ "M4=44; # Molecular mass of CO2\n",
+ "M5=2.02; # Molecular mass of H2\n",
+ "y1=0.7803; # Part by volume of N2 in dry atmospheric air\n",
+ "y2=0.2099; # Part by volume of O2 in dry atmospheric air\n",
+ "y3=0.0094; # Part by volume of Ar in dry atmospheric air\n",
+ "y4=0.0003; # Part by volume of CO2 in dry atmospheric air\n",
+ "y5=0.0001; # Part by volume of H2 in dry atmospheric air\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Average molecular mass and apperent gas constant of dry atmospheric air\n",
+ "M=(y1*M1)+(y2*M2)+(y3*M3)+(y4*M4)+(y5*M5); # Average molecular mass\n",
+ "R=R_1/M; #Apperent gas constant of dry atmospheric air\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Average molecular mass and apperent gas constant of dry atmospheric air\",\"\\nAverage molecular mass = \",round(M,3),\"kmol\"\n",
+ "print \"Apperent gas constant of dry atmospheric air =\",round(R,3),\"kJ/kg K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The fraction of each component\n",
+ "m1=(M1*y1)/M;#The fraction of N2 component\n",
+ "m2=(M2*y2)/M;#The fraction of O2 component\n",
+ "m3=(M3*y3)/M;#The fraction of Ar component\n",
+ "m4=(M4*y4)/M;#The fraction of CO2 component\n",
+ "m5=(M5*y5)/M;#The fraction of H2 component\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The fraction of N2,O2,Ar,CO2,H2 components are given below respectively \"\n",
+ "print \"m1 =\",round(m1,4)\n",
+ "print \"m2 =\",round(m2,4)\n",
+ "print \"m3 =\",round(m3,4)\n",
+ "print \"m4 =\",round(m4,4)\n",
+ "print \"m5 =\",round(m5,4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Average molecular mass and apperent gas constant of dry atmospheric air \n",
+ "Average molecular mass = 28.969 kmol\n",
+ "Apperent gas constant of dry atmospheric air = 0.287 kJ/kg K\n",
+ "\n",
+ "(b).The fraction of N2,O2,Ar,CO2,H2 components are given below respectively \n",
+ "m1 = 0.7547\n",
+ "m2 = 0.2319\n",
+ "m3 = 0.013\n",
+ "m4 = 0.0005\n",
+ "m5 = 0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No:555"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M1=44; # Molecular mass of CO2\n",
+ "M2=32; # Molecular mass of O2\n",
+ "M3=28; # Molecular mass of CO\n",
+ "M4=28; # Molecular mass of N2\n",
+ "y1=0.1; # Part by volume of CO2 in exhaust gas\n",
+ "y2=0.06; # Part by volume of O2 in exhaust gas\n",
+ "y3=0.03; # Part by volume of CO in exhaust gas\n",
+ "y4=0.81; # Part by volume of N2 in exhaust gas\n",
+ "R_1=8.3143; # Universal gas constant in kJ/kmol K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Average molecular mass and apperent gas constant of exhaust gas\n",
+ "M=(y1*M1)+(y2*M2)+(y3*M3)+(y4*M4); # Average molecular mass\n",
+ "R=R_1/M; #Apperent gas constant of dry atmospheric air\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Average molecular mass and apperent gas constant of exhaust gas\",\"\\nAverage molecular mass = \",round(M,3),\"kmol\"\n",
+ "print \"Apperent gas constant of exhaust gas =\",round(R,4),\"kJ/kg K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The fraction of each component\n",
+ "m1=(M1*y1)/M;#The fraction of CO2 component\n",
+ "m2=(M2*y2)/M;#The fraction of O2 component\n",
+ "m3=(M3*y3)/M;#The fraction of CO component\n",
+ "m4=(M4*y4)/M;#The fraction of N2 component\n",
+ "print \"\\n(b).The fraction of CO2,O2,CO,N2 components are given below respectively \"\n",
+ "print \"m1 =\",round(m1,3)\n",
+ "print \"m2 =\",round(m2,3)\n",
+ "print \"m3 =\",round(m3,3)\n",
+ "print \"m4 =\",round(m4,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Average molecular mass and apperent gas constant of exhaust gas \n",
+ "Average molecular mass = 29.84 kmol\n",
+ "Apperent gas constant of exhaust gas = 0.2786 kJ/kg K\n",
+ "\n",
+ "(b).The fraction of CO2,O2,CO,N2 components are given below respectively \n",
+ "m1 = 0.147\n",
+ "m2 = 0.064\n",
+ "m3 = 0.028\n",
+ "m4 = 0.76\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3, Page No:557"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "y1=0.79; # Volume of Nitrogen in 1 kg of air\n",
+ "y2=0.21; # Volume of Oxygen in 1 kg of air\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "T0=298; # temperature of Surroundings in kelvin\n",
+ "\n",
+ "#Calculation\n",
+ "del_Sgen=-R_1*((y1*math.log (y1))+(y2*math.log (y2))); #Entropy generation\n",
+ "LW=T0*del_Sgen; # Minimum work\n",
+ "\n",
+ "#Result\n",
+ "print \"The minimum work required for separation of two gases = \",round(LW,0),\"kJ/kmmol K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum work required for separation of two gases = 1273.0 kJ/kmmol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No:562"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "DPT=8; # Dew point temperature in degree celcius\n",
+ "p=100; # Pressure of air in kPa\n",
+ "T=25; # Temperature of air in degree celcius\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).partial pressure of water vapour in air\n",
+ "pv=1.0854; # Saturation pressure of water at DBT in kPa\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).partial pressure of water vapour in air = \",pv,\"kPa\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Specific humidity\n",
+ "sh=0.622*pv/(p-pv);#Specific humidity\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Specific humidity =\",round(sh,4),\"kg of water vapour /kg of dry air\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Relative humidity\n",
+ "pg=3.169; # Saturation pressure of water at T in kPa\n",
+ "RH=pv/pg; #Relative humidity\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Relative humidity =\",round(RH*100,2),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).partial pressure of water vapour in air = 1.0854 kPa\n",
+ "\n",
+ "(b).Specific humidity = 0.0068 kg of water vapour /kg of dry air\n",
+ "\n",
+ "(c).Relative humidity = 34.25 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page No:566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "DBT=35; # Dry bulb temperature in degree celcius\n",
+ "WBT=23; # Wet bulb temperature in degree celcius\n",
+ "P=100; # Pressure of air in kPa\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "# (a).Humidity ratio\n",
+ "hv=2565.3; # specific enthalpy hg at DBT in kJ/kg \n",
+ "hfWBT=96.52; hfgWBT=2443; # specific enthalpy at WBT in kJ/kg \n",
+ "PsatWBT=2.789;# Saturation pressure at WBT in kPa\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "shWBT=0.622*PsatWBT/(P-PsatWBT);# specific humidity\n",
+ "sh=((Cpo*(WBT-DBT))+(shWBT*hfgWBT))/(hv-hfWBT); # Humidity ratio\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Humidity ratio =\",round(sh,4),\"kg w.v /kg d.a\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Relative Humidity\n",
+ "pv=sh*P/(0.622+sh); # Partial pressure of water vapour\n",
+ "pg=5.628; # Saturation pressure at DBT in kPa\n",
+ "RH=pv/pg; #Relative Humidity\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Relative Humidity =\",round(RH*100,2),\"%\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Dew point temperature\n",
+ "DPT=17.5; # Saturation temperature at pg in degree celcius\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Dew point temperature =\",DPT,\"oC\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Specific volume\n",
+ "v=(R*(DBT+273))/(P-pv); # Specific volume\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Specific volume = \",round(v,1),\"m^3/kg\"\n",
+ "\n",
+ "#Calculation for (e)\n",
+ "# (e).Enthalpy of air\n",
+ "h=(Cpo*DBT)+(sh*hv); #Enthalpy of air\n",
+ "\n",
+ "#Result for (e)\n",
+ "print \"\\n(e).Enthalpy of air =\",round(h,0),\"kJ/kg d.a\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Humidity ratio = 0.0128 kg w.v /kg d.a\n",
+ "\n",
+ "(b).Relative Humidity = 35.78 %\n",
+ "\n",
+ "(c).Dew point temperature = 17.5 oC\n",
+ "\n",
+ "(d).Specific volume = 0.9 m^3/kg\n",
+ "\n",
+ "(e).Enthalpy of air = 68.0 kJ/kg d.a\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6, Page No:570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "DPT1=30; # Dew point temperature at inlet in degree celcius\n",
+ "DPT2=15; # Dew point temperature at outlet in degree celcius\n",
+ "RH1=0.50; # Relative humidity at inlet\n",
+ "RH2=0.80; # Relative humidity at outlet\n",
+ "p=101.325; # Atmospheric pressure in kPa\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "pg1=4.246; # saturation pressure of water at DBT1 in kPa\n",
+ "pg2=1.7051; # saturation pressure of water at DBT2 in kPa\n",
+ "pv1=RH1*pg1; pv2=RH2*pg2; # Partial pressure of water vapour in air at inlet and outlet\n",
+ "hv1=2556.3;# specific enthalpy hg at DBT1 in kJ/kg\n",
+ "hv2=2528.9;# specific enthalpy hg at DBT2 in kJ/kg\n",
+ "hv3=63;# specific enthalpy hf at DBT 2in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "sh1=0.622*pv1/(p-pv1); sh2=0.622*pv2/(p-pv2); # Specific humidities at inlet and outlet\n",
+ "q=(Cpo*(DPT2-DPT1))+(sh2*hv2)-(sh1*hv1)+((sh1-sh2)*hv3); # Heat transfer\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat removed from the air =\",round(q,1),\"kJ/kg of dry air\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat removed from the air = -27.3 kJ/kg of dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No:572"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "y1=0.5; # Molecular mass of CH4 in kmol\n",
+ "y2=0.5; # Molecular mass of C3H8 in kmol\n",
+ "T=363; # Temperature of gas in kelvin\n",
+ "p=5.06; # Pressure of gas in MPa\n",
+ "v=0.48; # volume of cylinder in m^3\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "# (a).Using kay\u2019s rule\n",
+ "# let component 1 refer to methane and component 2 to propane\n",
+ "# the critical properties\n",
+ "Tc1=190.7; Tc2=370; # temperature in kelvin\n",
+ "Pc1=46.4; Pc2=42.7; # Pressure in bar\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# using kay\u2019s rule for the mixture\n",
+ "Tcmix=y1*Tc1+y2*Tc2;\n",
+ "Pcmix=y1*Pc1+y2*Pc2;\n",
+ "# reduced properties\n",
+ "Tr=T/Tcmix; Pr=p/Pcmix;\n",
+ "# From generalized chart\n",
+ "z=0.832;\n",
+ "v_1=z*R_1*T/(p*10**3); # molar volume of the mixture\n",
+ "d=(v-v_1)/v; # Percentage deviation from actual value\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Using kay\u2019s rule\",\"\\nPercentage deviation from actual value = \",round(d*100,1),\"%\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Using Redlich-Kwong equation of state\n",
+ "a1=0.42748*R_1*Tc1**2.5/Pc1;\n",
+ "a2=0.42748*R_1*Tc2**2.5/Pc2;\n",
+ "b1=0.08664*R_1*Tc1/Pc1;\n",
+ "b2=0.08664*R_1*Tc2/Pc2;\n",
+ "# Substituting these values in the equation 12.16\n",
+ "# And solving these equation by iteration method we get\n",
+ "v_1=0.47864;# molar volume of the mixture\n",
+ "d=(v-v_1)/v; # Percentage deviation from actual value\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Using Redlich-Kwong equation of state\",\"\\nPercentage deviation from actual value = \",round(d*100,1),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Using kay\u2019s rule \n",
+ "Percentage deviation from actual value = -3.4 %\n",
+ "\n",
+ "(b).Using Redlich-Kwong equation of state \n",
+ "Percentage deviation from actual value = 0.3 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8, Page No:586"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "ln_piCH4=-0.0323;\n",
+ "pi_CH4=0.9683;\n",
+ "p=6895; # Pressure in kPa\n",
+ "T=104.4; # Temperature in degree celcius\n",
+ "a=0.784;\n",
+ "\n",
+ "#Calculation \n",
+ "f_CH4=pi_CH4*a*p; # Faguacity\n",
+ "\n",
+ "#Result\n",
+ "print \"The Required Faguacity = \",round(f_CH4,0),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Required Faguacity = 5234.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter13.ipynb b/Thermodynamics/Chapter13.ipynb
new file mode 100755
index 00000000..7bb44f97
--- /dev/null
+++ b/Thermodynamics/Chapter13.ipynb
@@ -0,0 +1,541 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:844e839da5b715e4c203153163c0d8334c07e355e78986d7eaa05ddf88c71ee4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13:PHASE EQUILIBRIUM:VAPOUR-LIQUID EQUILIBRIUM OF MIXTURES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No:605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "# Take freon 22 as component 1 and Freon 12 as component 2\n",
+ "# (a). y-x diagram at 40 oC\n",
+ "P1sat=15.335; # Saturation pressure of Freon 22 at 40oC in bar\n",
+ "P2sat=9.607; # Saturation pressure of Freon 12 at 40oC in bar\n",
+ "from pylab import *\n",
+ "figure(1); # For Plotting y-x Diagram\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "a=P1sat/P2sat;\n",
+ "x1=linspace(0,1.0,3);\n",
+ "y1=(a*x1)/(1+x1*(a-1)); # y Function\n",
+ "plt.plot (x1,y1,'-*b',label='y1');\n",
+ "plt.plot (x1,x1,'-<r',label='x1'); # plot comment\n",
+ "plt.title (\"(a).y-x diagram for the mixture at 40 oC\");\n",
+ "plt.xlabel(\" x1 \");\n",
+ "plt.ylabel(\" y1 \");\n",
+ "plt.legend(loc='upper left')\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a). y-x diagram at 40 oC\",\"\\n figure 1\"\n",
+ "plt.show();\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b). p-x-y diagram at 40 oC\n",
+ " # By using the following relation calculate p value for various value of x1,y1\n",
+ " # p=(x1*P1sat)+(1-x1)*P2sat\n",
+ "x1=[0,0.2,0.5,0.8,1];\n",
+ "y1=[0,0.285,0.615,0.865,1];\n",
+ "p=[9.607,10.7526,12.471,14.1894,15.335];\n",
+ "figure(2);\n",
+ "plt.plot (x1,p,'-*b',label='Liquid out')\n",
+ "plt.plot(y1,p,'-<r',label='Vapour');\n",
+ "plt.title (\"(b).P-y-x diagram for the mixture at 40 oC\");\n",
+ "plt.xlabel(\" x1 & y1 \");\n",
+ "plt.ylabel(\" p in bar \");\n",
+ "plt.legend(loc='upper left')\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b). p-x-y diagram at 40 oC\",\"\\n figure 2\"\n",
+ "plt.show();\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).t-x-y diagram at 10 bar\n",
+ "# for any value of x1 at p=10 bar, the bubble temperature can be found by trial and error from the following relation\n",
+ " # p=10 bar =(x1*P1sat)+(1-x1)*P2sat\n",
+ "T1sat=23.7; # Saturation temperature of Freon 22 at 10 bar in oC\n",
+ "T2sat=41.6; # Saturation temperature of Freon 12 at 10 bar in oC\n",
+ "# Thus, for x1=0.5, we find that t=31 oC. \n",
+ "x1=0.5; # Let assume\n",
+ "P1sat=12.186; # Saturation pressure of Freon 22 at 31oC in bar\n",
+ "P2sat=7.654; # Saturation pressure of Freon 12 at 31oC in bar\n",
+ "a=P1sat/P2sat;\n",
+ "y1=(a*x1)/(1+x1*(a-1)); # y Function\n",
+ "# For different value of x1 the values of t,y1 are calculated by above expression and given below\n",
+ "x1=[0,0.5,1]; \n",
+ "y1=[0,0.614,1]; \n",
+ "t=[41.6,31,23.7];\n",
+ "figure(3);\n",
+ "plt.plot (x1,t,'-*b',label='f');\n",
+ "plt.plot (y1,t,'-<r',label='g');\n",
+ "plt.title (\"(c).t-y-x diagram for the mixture at 10 bar\");\n",
+ "plt.xlabel(\" x1 & y1 \");\n",
+ "plt.ylabel(\" t in oC \");\n",
+ "plt.legend(loc='upper right');\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"(c).t-x-y diagram at 10 bar\",\"\\n figure 3\"\n",
+ "plt.show();\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a). y-x diagram at 40 oC \n",
+ " figure 1\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nJCRk2bJliwHAx8dnV3h4uP+9e/fs8vPzdb/77rtv/fz8Iqqqa/DgwTEPHjxov2/fvnGVlZXK+/fv\nH3P//n3boUOH/gEAa9eunffdd999u2PHDt+ioiItoVDY4sKFC70CAwO3fOh4KCoKDBzz8fHZFRMT\nM/jt27ctAWDOnDk/lZaWqhkYGOT16NHj0qBBg2LFT5pXrlxx0dTULO7atetV0XOamprFFy9e7Cl6\nbG5unvWf//zneosWLYS9evW6UN2+Fy5cuKJNmzaZgYGBW1RVVcsjIyMnfvPNN99X9cdob29/d+PG\njdPHjx+/t3Xr1k/09PReiXep8Hg8RtROHx+fXW3atMnk8/k5Dg4Ot93c3C6Lf4YNGzbMKCws1DYx\nMXk2efLknePGjdsn3h0hGSQ8PT3jPD0949q3b//A0tIyQ01NrVQ87Rffd3V11PTtU/z19evXz2zV\nqtWbdu3a/dW7d+/zEyZM2CM6oVS1L0mjRo06CAD6+vovxf+fJL9pix6bmZllR0VFfbp8+fJFRkZG\nzy0sLB6vWbNmfnWBt6b2S7ZR9PO1a9e6/Pjjj3N37drlw+PxmKCgoDAej8eEhYUFAYC/v3/43bt3\n7XV1dfNHjBhxBADWrVs3++jRo8N0dXXz9+7dO/6zzz77vbr9AsDs2bPXeXl5RQ8cOPCElpZWkZub\n2+WkpKRuVbW5pt/12bNnrzt06JC3np7eqzlz5vwk+X5tbe1CIyOj50ZGRs+NjY1zVVVVy7W0tIpE\nXUUeHh7Hv/7661X9+vU7Y2lpmWFlZfWoqi9aAKCnp/fqjz/+GLpmzZr5BgYGeT/88MN///jjj6F6\nenqvAGDkyJGH9+/fP2b79u1T+Hx+jomJybMlS5YsHT58+P9q+r9RRDyGoYV6uLZ48eJlRkZGz2fP\nnr2uprLe3t6Hpk6d+qunp2fch8r5+/uH8/n8nKVLly5puJZyIygoKOz58+dGERERfrJuCyFEClyN\navv5+W03MjLKdXBwuFVdmZkzZ/5sbW2d5ujomHL9+vXOsh6Jbypbenq6pY6OTr68Xl53//79Dikp\nKY5CoZCXmJjYzcDA4EVUVJSXrNtFG220SbdxVvG5c+d6X79+vXN1geHYsWODBw0aFMMw7CWYkpeS\n0Vb19s0333ynoaFRvHz58oWybkt125UrV7paW1unqaurv2nbtu1fK1euDJJ1m2ijjTbpN067kjIy\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4926070>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(b). p-x-y diagram at 40 oC \n",
+ " figure 2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4139c50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(c).t-x-y diagram at 10 bar \n",
+ " figure 3\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4bdcc50>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No:612"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=573.15; # Temperature of the water with another liquid in kelvin\n",
+ "R=8.3144/18; # Characteristic gas constant\n",
+ "# (a).4 MPa\n",
+ "P_1=10; # By Method II, The lowest possible pressure at which date available in steam table for 300 oC temperature in kPa\n",
+ "h_i=3076.5; # Specific enthalphy at P_1 in kJ/kg\n",
+ "s_i=9.2813; # Specific entropy at P_1 in kJ/kg K\n",
+ "# from superheat table at p=4 MPa and t=300 oC\n",
+ "hi=2960.7; # Specific enthalphy in kJ/kg\n",
+ "si=6.3615; # Specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "fi=P_1*math.exp ((((hi-h_i)/T)-(si-s_i))/R); # Standard state fugacity of water\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).4 MPa\",\"\\nStandard state fugacity of water = \",round(fi,2),\"kPa (round off error)\"\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).equal to saturation pressure at 300 oC\n",
+ "Psat=8.581; # Saturation pressure at 300 oC in MPa\n",
+ "# From steam table at Psat=8.581 MPa and t=300 oC\n",
+ "hi=2749; # Specific enthalphy in kJ/kg\n",
+ "si=5.7045; # Specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "fi=P_1*math.exp ((((hi-h_i)/T)-(si-s_i))/R); # Standard state fugacity of water\n",
+ "pisat=fi/(Psat*10**3); # fugacity coefficient\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Equal to saturation pressure at 300 oC\",\"\\nStandard state fugacity of water = \",round(fi,0),\"kPa\"\n",
+ "print \"fugacity coefficient =\",round(pisat,4)\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).10 MPa\n",
+ "# Applying Method I \n",
+ "viL=0.001404; # Specific volume at 300 oC in m^3/kg\n",
+ "fi=pisat*Psat*10**3*math.exp ((viL*(P_1-Psat)*10**3)/(R*T)); # Standard state fugacity of water\n",
+ "print \"\\n(c).10 MPa\",\"\\nStandard state fugacity of water = \",round(fi,0),\"kPa\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).4 MPa \n",
+ "Standard state fugacity of water = 3591.45 kPa (round off error)\n",
+ "\n",
+ "(b).Equal to saturation pressure at 300 oC \n",
+ "Standard state fugacity of water = 6694.0 kPa\n",
+ "fugacity coefficient = 0.7801\n",
+ "\n",
+ "(c).10 MPa \n",
+ "Standard state fugacity of water = 6745.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmple 13.3, Page No:615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import math\n",
+ "%matplotlib inline\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "# Let take NH3 as component 1 and H2O as component 2\n",
+ "# (a) & (b)\n",
+ "# Calculation of f1sat = pi1sat*p1sat for ammonia\n",
+ "P_1=50; # low reference state pressure in kPa\n",
+ "P1sat=614.95; # Saturation Pressure of ammonia at 10 oC in kPa\n",
+ "h1sat=1453.3; # Specific enthalpy at 10 oC in kJ/kg\n",
+ "s1sat=5.2104; # Specific entropy at 10 oC in kJ/kg K\n",
+ "R=8.3144/17; # Characteristic gas constant\n",
+ "T=283; # Temperature in kelvin\n",
+ "# At 10 oC and P_1=50 kPa for ammonia\n",
+ "h_1sat=1499.2; # Specific enthalpy in kJ/kg\n",
+ "s_1sat=6.5625; # Specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)&(b)\n",
+ "f1sat=P_1*math.exp ((((h1sat-h_1sat)/T)-(s1sat-s_1sat))/R); # Standard state fugacity of Ammonia\n",
+ "# Calculation of f2sat = pi2sat*p2sat for water\n",
+ "P2sat=1.2276; # Saturation Pressure at 10 oC in kPa for water\n",
+ "pi2sat=1; # At low pressure for water\n",
+ "f2sat = pi2sat*P2sat; # Standard state fugacity of water\n",
+ "# Calulations of ViL/RT\n",
+ "# For ammonia and water at 10 oC\n",
+ "v1L=0.001601; v2L=0.001; # Specific volume in m^3/kg\n",
+ "v1L_RT=v1L/(R*T); v2L_RT=v2L/(R*T);\n",
+ "# Calculations of activity coefficients\n",
+ "# Expression for activity coefficients of ammonia and water become in given by respectively\n",
+ "# r_1=(y1*p/(x1*569.6))*exp (-4.34*10^-6*(p-p1sat)); for ammonia\n",
+ "# r_2=(y2*p/(x2*1.2276))*exp (-7.65*10^-6*(p-p2sat)); for water\n",
+ "# The values thus calculated for r_1,r_2,lny_1,lnr_2 are calculated and plotted in window 1\n",
+ "# Note that the values of pyonting factors are negligibly small\n",
+ "x1=[0,0.2,0.3,0.4,0.5,0.6,0.8,1.0];\n",
+ "y1=[0,0.963,0.986,0.9958,0.9985,0.9993,0.9999,1.0];\n",
+ "lnr_1=[-3.1,-1.845,-1.295,-0.75,-0.33,-0.065,-0.035,-0];\n",
+ "lnr_2=[0,-0.1397,-0.2767,-0.507,-0.709,-0.952,-1.613,-2.2];\n",
+ "# similarly the excess function gE/RT and gE/x1x2RT are also calculated using the following expression respectively\n",
+ "# gE_RT=x1*lnr_1+x2*lnr_2; # the excess function from 12.51\n",
+ " # gE_x1x2RT=(lnr_1/x2)+(lnr_2/x1);\n",
+ "# since gE=0 & x1x2=0 both at x1=0 and x1=1. However its values in between x1=0 & x1=1\n",
+ "# By substituting these values in the above expression and given below\n",
+ "gE_RT=[0,-0.481,-0.582,-0.604,-0.5195,-0.4198,-0.2925,0];\n",
+ "gE_x1x2RT=[-3.1,-2.92,-2.83,-2.74,-2.65,-2.56,-2.38,-2.2];\n",
+ "from pylab import *\n",
+ "figure(1); # For Plotting Diagram\n",
+ "plt.plot (x1,lnr_1,\"-*b\",label='ln r1');\n",
+ "plt.plot (x1,lnr_2,\"-*g\",label='ln r2');\n",
+ "plt.plot (x1,gE_RT,\"r\",label='gE/RT');\n",
+ "plt.plot (x1,gE_x1x2RT,\"-*k\",label='gE/x1x2 RT');\n",
+ "plt.title (\"(a)&(b).Activity coefficients for NH3/H2O at 10 oC\");\n",
+ "plt.xlabel(\" x1 \");\n",
+ "plt.ylabel(\" ln r \");\n",
+ "plt.legend(loc='lower right')\n",
+ "\n",
+ "#Result for (a)&(b)\n",
+ "print \"(a) & (b)\",\"\\nStandard state fugacity of Ammonia = \",f1sat,\"kPa\"\n",
+ "print \"Standard state fugacity of water = \",f2sat,\"kPa\"\n",
+ "print \"v1L/RT = \",v1L_RT,\"(answer mentioned in the textbook is wrong)\",\"\\nv2L/RT = \",v2L_RT\n",
+ "print \"\\n(a)&(b).Activity coefficients for NH3/H2O at 10 oC\"\n",
+ "plt.show();\n",
+ "print \" figure 1 \"\n",
+ "# As x1\u21920,x2\u21921,gE_x1x2RT\u2192A=ln r_1^\u221e\n",
+ "# As x1\u21921,x2\u21920,gE_x1x2RT\u2192B=ln r_2^\u221e\n",
+ "A=-3.1; B=-2.2; # THe Margules constants\n",
+ "print \"The Margules constants \",\"A = \",A,\"B = \",B\n",
+ "print \"From figure 1 for ammonia/water mixture which is characteristic of systems with negative deviation from Roault law.\" \n",
+ "print \"Because \u03b3i<=1 and ln \u03b3i <=0\"\n",
+ "\n",
+ "#Calculations for (c)\n",
+ "# (c).\n",
+ "# Assuming ideal vapour phase, and at low pressures we have \n",
+ "# y1P=\u03b31*x1*p1sat; y2p=\u03b32* x2* p2sat;\n",
+ "# Now the activity coefficients can be found from Margules equations and given below\n",
+ "x1=[0,0.2,0.3,0.4,0.5,0.6,1.0];\n",
+ "y1=[0,0.963,0.986,0.9958,0.9985,0.9999,1.0];\n",
+ "p=[1.2276,8.6597,30.6598,54.6845,150.6458,278.1549,614.95];\n",
+ "# The ideal solution pressure\n",
+ " # PRaoult=x1*P1sat+x2*P2sat;\n",
+ "PRaoult=[1.2276,614.95]; \n",
+ "x_1=[0,1]; # For Ideal solution pressure\n",
+ "from pylab import *\n",
+ "figure(2); # For Plotting Diagram\n",
+ "plt.plot (x1,p,\"-*r\",label='p-x1');\n",
+ "plt.plot (y1,p,\"-*b\",label='p-y1');\n",
+ "plt.plot (x_1,PRaoult,\"g\",label='PRaoult');\n",
+ "plt.title (\"(c).p-x-y diagram of NH3/H2O at 10 oC\");\n",
+ "plt.xlabel(\" x1 & y1 \");\n",
+ "plt.ylabel(\" p, kPa \");\n",
+ "plt.legend(loc='upper left')\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).p-x-y diagram\"\n",
+ "print \"figure 2\"\n",
+ "plt.show();\n",
+ "print \"From figure 2 The actual pressure p < pRaoult. It is thus seen that the mixture has negative deviation from Raoults law.\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) & (b) \n",
+ "Standard state fugacity of Ammonia = 569.617676377 kPa\n",
+ "Standard state fugacity of water = 1.2276 kPa\n",
+ "v1L/RT = 1.15670577403e-05 (answer mentioned in the textbook is wrong) \n",
+ "v2L/RT = 7.22489552801e-06\n",
+ "\n",
+ "(a)&(b).Activity coefficients for NH3/H2O at 10 oC\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nuvkAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4926030>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " figure 1 \n",
+ "The Margules constants A = -3.1 B = -2.2\n",
+ "From figure 1 for ammonia/water mixture which is characteristic of systems with negative deviation from Roault law.\n",
+ "Because \u03b3i<=1 and ln \u03b3i <=0\n",
+ "\n",
+ "\n",
+ "(c).p-x-y diagram"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "figure 2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nspLEgAEDTq5evXqO5DI1NbUccWL7kvctOjraLC8vT0VeXr4kNDS0a3X/79eWIvMA6ntRVFTkiz9k\nGGP45Zdfts+cOXNdedvv2LFj/I8//niprHW+vr6j9fX1EyWX2drahu3bt29EefWFhYXZampqZhgZ\nGb329/cfUt52BQUFypqamhniD5tZs2atnTx58uaytl2yZMnvkh9ceXl5KkpKSkXlXUlIlszMTA2O\n44Q5OTlqJSUl8oqKinzJD6FFixYtLX0lceXKFYdPnWNNTc2MJ0+eWImP7eTkFCxeFxgY2F9VVTVX\nKBRyjDHk5OSocRwnzM7OblS6nmvXrn2vp6eXLLnM3d39oPgD7FOvS7xenETs7OzubNu2bWJZfRLK\nysoFGhoameLSqFGjbDk5OUFZVxIxMTGmNjY2D9evXz9DvGzXrl0/jxs3bqfkOWrUqFG2ZJ3KysoF\nZSW07OzsRm3atHnq4+MzT7zM1NQ0Zvv27b+U9TfBcZzw1q1b333u71zyfWWs7GRYXikrSXTv3v1i\n6ZgMDAwSrl69+sPXvG+JiYn6HMcJJf8Hqfy7UJ+EjGlqambm5uaqiX9PSEgwNDExiS1v+9zcXDUN\nDY2s8tYbGBgkSv5uZGT0JikpSf/GjRtd1NTUctXU1HKtrKyeitfb2tqGt2jR4hUA/PTTT0fEy3v3\n7n1evP2hQ4fclZWVC93c3AL27ds3kjHG+fv7Dx05cuS+smJITk5uYmhomCD+XUVFJV9LSyu9rG0F\nAoG8l5eXj6mp6Ut1dfXs5s2bx3Ecx9LS0rTfv3+vU1JSotC0adN48faS9YpJrgeAtWvXzra0tIzU\n0NDI0tTUzMzOzlZPS0vTFq/X1dV9J/65QYMGBdra2mniNu8GDRoUAMCHDx9USx8nKSlJv/SxjIyM\n3iQmJhqU9drKwhjjAGDZsmWLli9fvrCoqOgbyfUcx7E5c+asyczM1BSXJ0+etBXvV5qpqelLLy8v\nn717944SLzt37lyfPn36nJPc7uHDh+0k6/Ty8vIpXad4dFanTp1uzZs3b5V4uba2dlpSUpJ+6WMn\nJyc3Ea8vvU4oFMqVfl8BQPJ9qAxVVdUP2dnZ6pLLsrOz1dXU1HJLb1ve+5aUlKSvqamZKScnJxS/\nFvJflCRkrG3btk9evHjRUvx706ZN41++fGla3vbPnz9vZWNj86i89aU/sN68eWNkYGCQ2KVLlxu5\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4be7150>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From figure 2 The actual pressure p < pRaoult. It is thus seen that the mixture has negative deviation from Raoults law.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No:624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "x1=0.9; # mole fraction of NH3\n",
+ "x2=0.1; # Mole fraction of H2O\n",
+ "p=490.3; # Pressure in kPa\n",
+ "T=280.1; # Temperature in kelvin\n",
+ "lam12_11=-2131; lam21_22=-2726; # In kJ/kmol\n",
+ "R_1=8.3144; # Universal gas constant in kJ/kmol K\n",
+ "# (a).Enthalpy of saturated liquid Mixture at L/B at bubble temperature\n",
+ "V1L=0.0016; V2L=0.001; #from properties of NH3 and H2O in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "a=((V2L*18)/(V1L*17)) * exp (-lam12_11/(R_1*T));\n",
+ "b=((V1L*17)/(V2L*18)) * exp (-lam21_22/(R_1*T));\n",
+ "d_a=a*(lam12_11/(R_1*T**2)); d_b=b*(lam21_22/(R_1*T**2));\n",
+ "d_lnr1=(-(a*x2**2*d_a/(x1+(a*x2))**2))-(x2*d_b/(b*x1+x2))+(b*x1*x2*d_b/(b*x1+x2)**2);\n",
+ "d_lnr2=(-b*x1**2*d_b/(b*x1+x2)**2)-(x1*d_a/(x1+a*x2))+(a*x1*x2*d_a/(x1+a*x2)**2);x1=0.728; # By substituting these valuses in equation\n",
+ "h_E=-R_1*T**2*(x1*d_lnr1+x2*d_lnr2); # Heat of mixing\n",
+ "x1=0.9;\n",
+ "M=x1*17+x2*18; # Molecular weight\n",
+ "hE=h_E/M; \n",
+ "h1L=32.5; h2L=29.4; # in kJ/kg\n",
+ "hL=(x1*h1L)+(x2*h2L)+hE;# Specific enthalpy of the liquid mixture\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Enthalpy of saturated liquid Mixture at L/B at bubble temperature\",\n",
+ "print \"Specific enthalpy of the liquid mixture = \",round(hL,1),\"kJ/kg\"\n",
+ "\n",
+ "#Variable declaration (b)\n",
+ "# (b).Enthalpy of saturated vapour at V in Equilibrium with liquid at L/B\n",
+ "# From property table of ammonia and water at 0 oC\n",
+ "T1=273.15; # Temperature in kelvin\n",
+ "p1sat=429.4; p2sat=0.6108; # Pressure in kPa\n",
+ "hfg1=1262.4; hfg2=2501.4;# specific enthalpy in kJ/kg \n",
+ "vg1=0.2895; vg2=206.3; # specific volume in m^3/kg\n",
+ "# Referring to fig 13.15 , we have\n",
+ "hb1=1262.4; hb2=2501.4;# specific enthalpy in kJ/kg\n",
+ "M=17; \n",
+ "# The crictical properties \n",
+ "Tc1=405.3; Tc2=647.3;# Temperature in kelvin\n",
+ "pc1=11.28; pc2=22.09; # Pressure in MPa\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "z1=(p1sat*vg1/(R_1*T1/M)); z2=(p2sat*vg2/(R_1*T/M));\n",
+ "A2_1=(0.4278/(pc1*10**3))*(Tc1/T1)**2.5; # Constants\n",
+ "B_1=(0.0867/(pc1*10**3))*(Tc1/T1); # Constants\n",
+ "h1R=R_1*(T1/M)*(((-3/2)*(A2_1/B_1)*log (1+(B_1*p1sat/z1)))+z1-1);\n",
+ "A2_2=(0.4278/(pc2*10**3))*(Tc2/T1)**2.5; # Constants\n",
+ "B_2=(0.0867/(pc2*10**3))*(Tc2/T1); # Constants\n",
+ "h2R=-0.2;\n",
+ "hc1=hb1-h1R; hc2=hb2-h2R; # Enthalpies at 0 oC\n",
+ "Cpo1=14.86; Cpo2=12.92; # In kJ/kg\n",
+ "A2_1=(0.4278/(pc1*10**3))*(Tc1/T)**2.5; # Constants\n",
+ "B_1=(0.0867/(pc1*10**3))*(Tc1/T); # Constants\n",
+ "A2_2=(0.4278/(pc2*10**3))*(Tc2/T)**2.5; # Constants\n",
+ "B_2=(0.0867/(pc2*10**3))*(Tc2/T); # Constants\n",
+ "y1=0.9999; y2=0.0001;\n",
+ "Tc=y1*Tc1+y2*Tc2;\n",
+ "z=0.957;\n",
+ "hR=R_1*(T/M)*(((-3/2)*(A2_1/B_1)*log (1+(B_1*p/z)))+z-1);\n",
+ "hV=y1*(hc1+Cpo1)+y2*(hc2+Cpo2)+hR;\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Enthalpy of saturated vapour at V in Equilibrium with liquid at L/B = \",round(hV,1),\"kJ/kg (roundoff error)\"\n",
+ "\n",
+ "#Variable declaration for (c)\n",
+ "# (c).Enthalpy of saturated vapour at D after complete vaporization of liquid at B/L\n",
+ "T=359.15; # In K\n",
+ "Cpo1=192.2; Cpo2=160.9; # In kJ/kg\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "A2_1=(0.4278/(pc1*10**3))*(Tc1/T)**2.5; # Constants\n",
+ "B_1=(0.0867/(pc1*10**3))*(Tc1/T); # Constants\n",
+ "A2_2=(0.4278/(pc2*10**3))*(Tc2/T)**2.5; # Constants\n",
+ "B_2=(0.0867/(pc2*10**3))*(Tc2/T); # Constants\n",
+ "y1=0.9; y2=0.1;\n",
+ "Tc=y1*Tc1+y2*Tc2;\n",
+ "z=0.9768;\n",
+ "hR=R_1*(T/M)*(((-3/2)*(A2_1/B_1)*log (1+(B_1*p/z)))+z-1);\n",
+ "hD=y1*(hc1+Cpo1)+y2*(hc2+Cpo2)+hR;\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Enthalpy of saturated vapour at D after complete vaporization of liquid at B/L = \",round(hD,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Latent Heat of Vapourization of this Liquid Mixture\n",
+ "hB=-0.2; \n",
+ "hD_hB=hD-hB; #Latent Heat of Vapourization of this Liquid Mixture\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d). Latent Heat of Vapourization of this Liquid Mixture = \",round(hD_hB,1),\"kJ/kg mixture\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Enthalpy of saturated liquid Mixture at L/B at bubble temperature Specific enthalpy of the liquid mixture = -0.2 kJ/kg\n",
+ "\n",
+ "(b).Enthalpy of saturated vapour at V in Equilibrium with liquid at L/B = 1280.1 kJ/kg (roundoff error)\n",
+ "\n",
+ "(c).Enthalpy of saturated vapour at D after complete vaporization of liquid at B/L = 1581.3 kJ/kg\n",
+ "\n",
+ "(d). Latent Heat of Vapourization of this Liquid Mixture = 1581.5 kJ/kg mixture\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter14.ipynb b/Thermodynamics/Chapter14.ipynb
new file mode 100755
index 00000000..4bbbb0eb
--- /dev/null
+++ b/Thermodynamics/Chapter14.ipynb
@@ -0,0 +1,630 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4c4dfb370e475e99da4c5056464d38bcfd8f5f2d436b23af2eaa8055bd431fec"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14:CHEMICAL REACTIONS AND COMBUSTION"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No:644"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# From the Table 14.1 \n",
+ "del_hfHCL=92307; # Enthalpy of Heat in kJ/kmol\n",
+ "del_hfH2O=-241818; # Enthalpy of Heat kJ/kmol\n",
+ "\n",
+ "#Calculation\n",
+ "del_Ho=4*del_hfHCL-2*del_hfH2O; # The standard heat of reaction from enthalpy equation\n",
+ "\n",
+ "#Result\n",
+ "print \"The standard heat of reaction for the process = \",del_Ho,\"kJ (answer mentioned in the textbook is wrong)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The standard heat of reaction for the process = 852864 kJ (answer mentioned in the textbook is wrong)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2, Page No:645"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "del_Ho=5640000; # Heat released during the process\n",
+ "# From the Table 14.1 \n",
+ "del_hfO2=-393509; del_hfH2O=-285830; # Enthalpy of Heat in kJ/kmol\n",
+ "\n",
+ "#Calculation\n",
+ "del_hfsucrose=12*del_hfO2+11*del_hfH2O+del_Ho; # The enthalpy formation of sucrose\n",
+ "\n",
+ "#Result\n",
+ "print \"The enthalpy formation of sucrose = \",del_hfsucrose,\"kJ/kmol (answer mentioned in the textbook is wrong)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The enthalpy formation of sucrose = -2226238 kJ/kmol (answer mentioned in the textbook is wrong)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3, Page No:649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# (a).Balancing of chemical equation\n",
+ "# The unbalanced equation for the process is C8H18 + O2 + N2 \u2192 CO2 + H2O + N2\n",
+ "x=8; # Carbon balance\n",
+ "y=9; # Hydrogen balance\n",
+ "z=12.5; # Oxygen balance in reverse order\n",
+ "n=z*3.76; # Nitrogen Balance\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Balancing of chemical equation\"\n",
+ "print \" C8H18 + z O2 + n N2 \u2192 x CO2 + y H2O + n1 N2 \\n \"\n",
+ "print \" z =\",z,\"\\n n =\",n,\"\\n x =\",x,\"\\n y =\",y,\"\\n n1 =\",5*n\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The theoretical air-fuel ratio\n",
+ "a=1; # Mole of C8H18\n",
+ "AF1=(z+n)/a; #The theoretical air-fuel ratio on mole basis\n",
+ "ma=28.84; # Molecular mass of air \n",
+ "mc=114; # Molecular mass of C8H18\n",
+ "AF2=(AF1*ma)/(a*mc); # The theoretical air-fuel ratio on mass basis\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The theoretical air-fuel ratio\",\"\\nThe theoretical air-fuel ratio on mole basis = \",AF1,\"kmol air / kmol C8H18\"\n",
+ "print \"The theoretical air-fuel ratio on mass basis = \",round(AF2,0),\"kg air / kmol C8H18\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Balancing of chemical equation\n",
+ " C8H18 + z O2 + n N2 \u2192 x CO2 + y H2O + n1 N2 \n",
+ " \n",
+ " z = 12.5 \n",
+ " n = 47.0 \n",
+ " x = 8 \n",
+ " y = 9 \n",
+ " n1 = 235.0\n",
+ "\n",
+ "(b).The theoretical air-fuel ratio \n",
+ "The theoretical air-fuel ratio on mole basis = 59.5 kmol air / kmol C8H18\n",
+ "The theoretical air-fuel ratio on mass basis = 15.0 kg air / kmol C8H18\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4, Page No:650"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "#Variable declaration\n",
+ "# The combustion equation for C4H10 with 80% theoretical air is C4H10 +5.2(O2 + 3.76 N2) \u2192 a(1)CO + a(2)CO2 + 5H2O + 19.55N2\n",
+ "# The following matrix shows the balance of C and O\n",
+ "\n",
+ "#Calculation\n",
+ "A = np.array([(1, 1),(1,2)])\n",
+ "B = np.array([4,5.4])\n",
+ "m = np.linalg.solve(A,B)\n",
+ "\n",
+ "#Result\n",
+ "print \"The equation for the combustion of butane with 80% theoretical air is \"\n",
+ "print \"\\nC4H10 +5.2(O2 + 3.76 N2) \u2192\", m.item(0), \"CO + \",m.item(1), \"CO2 + 5H2O + 19.55N2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equation for the combustion of butane with 80% theoretical air is \n",
+ "\n",
+ "C4H10 +5.2(O2 + 3.76 N2) \u2192 2.6 CO + 1.4 CO2 + 5H2O + 19.55N2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5, Page No:650"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p=101.325; # Atmospheric pressure in kPa\n",
+ "# The complete combustion equation for actane\n",
+ " # yC8H18+ x (O2+3.76N2) \u2192 n1 CO2+n2 H2O+n3 O2+n3 N2\n",
+ "x=12.5*1.5; y=1;\n",
+ "n1=8; n2=9; n3=6.28; n4=70.5;\n",
+ "\n",
+ "#calculation\n",
+ "n=n1+n2+n3+n4; # Total number of moles of the products\n",
+ "AFm=(x+x*3.76)/y ;# Air fuel ratio\n",
+ "m=28.84;\n",
+ "M=116; # Molecular weight of octane\n",
+ "AF=AFm*m/M;\n",
+ "yco2=n1/n; yH2O=n2/n; yO2=n3/n; yN2=n4/n;\n",
+ "pH2O=p*yH2O; # Partial pressure of water vapour in the products\n",
+ "Tsat=45.21; # In oC\n",
+ "\n",
+ "#Result\n",
+ "print \"Air fuel ratio = \",round(AF,2),\"kg air/kg octane\"\n",
+ "print \"Dew point temperature = \",Tsat,\"oC\"\n",
+ "print \"\\nIf the products are cooled below 25 oC then, the water vapour will condense.\"\n",
+ "print \"Because the cooled temperature is less than dew point temperature of water vapour i.e., T < Tsat.\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 22.19 kg air/kg octane\n",
+ "Dew point temperature = 45.21 oC\n",
+ "\n",
+ "If the products are cooled below 25 oC then, the water vapour will condense.\n",
+ "Because the cooled temperature is less than dew point temperature of water vapour i.e., T < Tsat.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.6, Page No:651"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# The complete chemical equation is\n",
+ "#[0.14H2+0.03CH4+0.27CO+0.045CO2+0.01O2+0.505N2]+0.255(O2+3.75N2) \u21920.2H2O+0.345CO2+1.44N2\n",
+ "a=0.14; # Composition of H2 in air\n",
+ "b=0.03; # Composition of CH4 in air\n",
+ "c=0.27; # Composition of CO in air\n",
+ "d=0.045; # Composition of CO2 in air\n",
+ "e=0.01; # Composition of O2 in air\n",
+ "f=0.505; # Composition of N2 in air\n",
+ "g=(0.265-0.01); # O2 requirement from atmospheric air with 1% O2 already in fuel\n",
+ "h=3.76; # By nitrogen balance \n",
+ "i=1; # mole of the air\n",
+ "\n",
+ "#Calculation\n",
+ "#Air fuel ratio on mol (volume) basis\n",
+ "AFvol=(g+(g*h))/i; # Air fuel ratio (theroretical)\n",
+ "AFv=1.1*AFvol; # Air fuel ratio on mol (volume) basis\n",
+ "#Air fuel ratio on mass basis\n",
+ "M1=2; # Molecular mass of H2\n",
+ "M2=16; # Molecular mass of CH4\n",
+ "M3=28; # Molecular mass of CO\n",
+ "M4=44; # Molecular mass of CO2\n",
+ "M5=32; # Molecular mass of O2\n",
+ "M=a*M1+b*M2+c*M3+d*M4+e*M5+f*M3; # Molecular mass of Fuel\n",
+ "Ma=28.84; # Molecular mass of air\n",
+ "AFm=AFv*Ma/(i*M); # Air fuel ratio on mass basis\n",
+ "\n",
+ "#Results\n",
+ "print \"Air fuel ratio on mol (volume) basis =\",round(AFv,3),\"kmol actual air/kmol fuel\"\n",
+ "print \"\\nAir fuel ratio on mass basis = \",round(AFm,2),\"kg air / kg fuel\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio on mol (volume) basis = 1.335 kmol actual air/kmol fuel\n",
+ "\n",
+ "Air fuel ratio on mass basis = 1.56 kg air / kg fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.7, Page No:653"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "#From table 14.2 at 25 oC and 1 atm for C8H8\n",
+ "del_Ho=-2039.7; # LHV in MJ/kmol\n",
+ "# Combustion equation is C3H8+ 5O2 +18.8N2 \u2192 3CO2 +4H2O +18.8N2\n",
+ "# From table 14.3\n",
+ "h333_C3H8=2751; # h333_h298 of C3H8 in kJ/kmol\n",
+ "h333_O2=147; # h333_h298 of O2 in kJ/kmol\n",
+ "h333_N2=145; # h333_h298 of N2 in kJ/kmol\n",
+ "h1333_CO2=52075; # h1333_h298 of CO2 in kJ/kmol\n",
+ "h1333_H2O=32644; # h1333_h298 of H2O in kJ/kmol\n",
+ "h1333_N2=32644; # h1333_h298 of N2 in kJ/kmol\n",
+ "M=44; # molecular mass of C3H8\n",
+ "\n",
+ "#Calculation\n",
+ "Ha_H1=h333_C3H8+5*h333_C3H8+18.8*h333_N2; # The enthalpy differences\n",
+ "Hb_H2=3*h1333_CO2+4*h1333_H2O+18.8*h1333_N2; # The enthalpy differences\n",
+ "Q=(del_Ho+Hb_H2/1000-Ha_H1/1000)/M; # Heat transfer from combustion chamber\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat transfer from combustion chamber =\",round(abs (Q),2),\"MJ/kg C3H8\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer from combustion chamber = 26.33 MJ/kg C3H8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.8, Page No:656"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Ha_H1=6220; # From example 14.7 in kJ/kmol\n",
+ "del_Ho=-2039.7; # From example 14.7 LHV in MJ/kmol\n",
+ "\n",
+ "#Calculation\n",
+ "Hb_H2=-del_Ho+Ha_H1; # For adiabatic combustion of C3H8\n",
+ "# Hb_H2=3*h1333_CO2+4*h1333_H2O+18.8*h1333_N2 By iteration process and making use of the values from Table A.3, A.13, A.15\n",
+ "# we can get the adiabatic flame temperature is\n",
+ "Tad=2300;# The adiabatic flame temperature in kelvin\n",
+ "\n",
+ "#Result\n",
+ "print \"The adiabatic flame temperature =\",Tad,\"K\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The adiabatic flame temperature = 2300 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.9, Page No:658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# (a).Entropy change per kmol of C\n",
+ "# From table 14.1 at 298 K and 1 atm\n",
+ "s_c=5.686; # Absolute entropies of C in kJ/kmol K\n",
+ "s_o2=205.142; # Absolute entropies of o2 in kJ/kmol K\n",
+ "s_co2=213.795; # Absolute entropies of CO2 in kJ/kmol K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "del_s=s_co2-(s_c+s_o2); # The entropy change \n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).The entropy change = \",del_s,\"kJ/K/kmol C\"\n",
+ "\n",
+ "#Variable declaration for(b)\n",
+ "# (b).Entropy change of universe\n",
+ "Tsurr=298; # Temperature of surroundings in kelvin\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# From table 14.1 \n",
+ "del_Ho=-393509; # del_hfco2 in kJ/kmol CO2\n",
+ "Q=abs (del_Ho);\n",
+ "del_Ssurr=Q/Tsurr; # Entropy change of surroundings\n",
+ "del_Suniv=del_s+del_Ssurr; #Entropy change of universe\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Entropy change of universe = \",del_Suniv,\"kJ/K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).The entropy change = 2.967 kJ/K/kmol C\n",
+ "\n",
+ "(b).Entropy change of universe = 1322.967 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.10, Page No:659"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "# (a).The product CO2 is also at 298K\n",
+ "Pco=2/3; # Paratial pressure of CO in atm \n",
+ "Po2=1/3; # Paratial pressure of O2 in atm\n",
+ "Pco2=1; # Paratial pressure of CO2 in atm\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# From table 14.1 at 298 K and 1 atm\n",
+ "s_co2=213.795-R_1*math.log (Pco2); # entropies in kJ/kmol K\n",
+ "s_co=197.653-(R_1*math.log (Pco)); # entropies in kJ/kmol K\n",
+ "s_o2=205.03-R_1*math.log (Po2); # entropies in kJ/kmol K\n",
+ "del_Scv=s_co2-s_co-1/2*s_o2; # Entropy change of comtrol volume \n",
+ "# From table 14.1\n",
+ "del_hfco2=-393509; del_hfco=-110525; # Enthalpy of Heat in kJ/kmol\n",
+ "Q= del_hfco2- del_hfco; # Heat transfer (to surroundings)\n",
+ "del_Ssurr=abs(Q)/T0; # Entropy change of surroundings\n",
+ "del_Sgen=del_Scv+del_Ssurr; #Entropy change of universe\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).The product CO2 is also at 298 K\",\"\\nEntropy change of comtrol volume = \",round(del_Scv,2),\"kJ/K\"\n",
+ "print \"Entropy change of surroundings = \",round(del_Ssurr,2),\"kJ/K\",\"\\nEntropy change of universe = \",round(del_Sgen,3),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The reaction is adiabatic\n",
+ "# Let the adiabatic flame temperature be T. Then since\n",
+ "Q=0;\n",
+ "C_p=44*0.8414;\n",
+ "# From table A.16\n",
+ "T=5057.5; #adiabatic flame temperature in kelvin\n",
+ "s_CO2=213.795+C_p*math.log (T/T0); # entropies in kJ/kmol K\n",
+ "del_Scv=s_CO2-s_co-1/2*s_o2; # Entropy change of comtrol volume \n",
+ "del_Ssurr=abs(Q)/T0; # Entropy change of surroundings\n",
+ "del_Sgen=del_Scv+del_Ssurr; #Entropy change of universe\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The reaction is adiabatic\",\"\\nEntropy change of comtrol volume = \",round(del_Scv,3),\"kJ/K\"\n",
+ "print \"Entropy change of surroundings = \",round(del_Ssurr,3),\"kJ/K\",\"\\nEntropy change of universe = \",round(del_Sgen,3),\"kJ/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).The product CO2 is also at 298 K \n",
+ "Entropy change of comtrol volume = -94.31 kJ/K\n",
+ "Entropy change of surroundings = 949.61 kJ/K \n",
+ "Entropy change of universe = 855.299 kJ/K\n",
+ "\n",
+ "(b).The reaction is adiabatic \n",
+ "Entropy change of comtrol volume = 10.517 kJ/K\n",
+ "Entropy change of surroundings = 0.0 kJ/K \n",
+ "Entropy change of universe = 10.517 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.11, Page No:661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# The Combustion of H2 with Q2 from H2O\n",
+ "#H2(g)+1/2 O2 (g)\u2192H2O(l)+285830 kJ/kmol H2\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "# From table 14.1 at 298 K\n",
+ "del_hfH2O=-285830; # Enthalpy of Heat in kJ/kmol\n",
+ "s_298H2O=69.94; s_298H2=130.684; s_298O2=205.142; # entropies in kJ/kmol K\n",
+ "\n",
+ "#Calculation\n",
+ "GP_GR=del_hfH2O-T0*(s_298H2O-s_298H2-1/2*s_298O2); # Formation of Gibbs function\n",
+ "GR=0;\n",
+ "GP=GP_GR-GR; # Standard Gibbs function of formation of liquid H2O\n",
+ "\n",
+ "#Result\n",
+ "print \"Standard Gibbs function of formation of liquid H2O = \",round(GP,0),\"kJ/kmol\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard Gibbs function of formation of liquid H2O = -237162.0 kJ/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.12, Page No:662"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# the combustion equation\n",
+ "# n1C3H8+n2O2+n3 N2 \u2192 n4 CO2+ n5 H2O+n6 O2+n7 N2\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "# (a).Product species at 25 oC and 1 atm\n",
+ "d_gfC3H8=-24290; d_gfCO2=-394359; d_gfH2O=-228570; # in kJ/kmol\n",
+ "GR=d_gfC3H8;\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "GP=3*d_gfCO2+4*d_gfH2O;\n",
+ "Wmax=GR-GP; # Maximum possible work output\n",
+ "M=44;#Molecular weight\n",
+ "Wmax=Wmax/M;\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).\",\"\\nMaximum possible work output = \",round(Wmax,3),\"kJ/kg fuel (answer mentioned in the textbook is wrong)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The actual partial pressures of products\n",
+ "n1=1; n2=20; n3=75.2;\n",
+ "n4=3; n5=4; n6=15; n7=75.2; # refer equation\n",
+ "SR=19233; SP=19147; # in kJ/K from table\n",
+ "HR=-104680; # in kJ/kmol fuel\n",
+ "d_h0fCO2=-393509; d_h0fH2O=-241818; # in kJ/kmol\n",
+ "HP=3*d_h0fCO2+4*d_h0fH2O;\n",
+ "Wmax=HR-HP-T0*(SR-SP); # Maximum possible work output\n",
+ "Wmax=Wmax/M;\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).\",\"\\nMaximum possible work output = \",round(Wmax,3),\"kJ/kg (round off error)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a). \n",
+ "Maximum possible work output = 47115.159 kJ/kg fuel (answer mentioned in the textbook is wrong)\n",
+ "\n",
+ "(b). \n",
+ "Maximum possible work output = 45852.068 kJ/kg (round off error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter15.ipynb b/Thermodynamics/Chapter15.ipynb
new file mode 100755
index 00000000..537afb59
--- /dev/null
+++ b/Thermodynamics/Chapter15.ipynb
@@ -0,0 +1,361 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aba24805b98ee0919f2ef39d5927b5007d2ce98264adcd2e65263a9fbffd1f67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15:CHEMICAL EQUILIBRIUM"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1, Page No:676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# (b).Number of moles of each constituents\n",
+ "nCH4=2; # Number of moles of CH4\n",
+ "\n",
+ "#Calculation\n",
+ "E=3-nCH4; # Amount of reaction from (a) and refer example 15.1 (a)\n",
+ "nH2O=1-E;# Number of moles of H2O\n",
+ "nCO=1+E;# Number of moles of CO\n",
+ "nH2=4+3*E;# Number of moles of H2\n",
+ "\n",
+ "#Results\n",
+ "print \"(b).Number of moles of each constituents\",\"\\nNumber of moles of H2O = \",nH2O\n",
+ "print \"Number of moles of CO = \",nCO,\"\\nNumber of moles of H2 = \",nH2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(b).Number of moles of each constituents \n",
+ "Number of moles of H2O = 0\n",
+ "Number of moles of CO = 2 \n",
+ "Number of moles of H2 = 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2, Page No:680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T0=298; # Given temperature in kelvin\n",
+ "R_1=8.314; # Universal gas constant in kJ/kg mol K\n",
+ "# (a).CO+1/2 O2 = CO2\n",
+ "# From table of properties of combustion\n",
+ "del_hfco2=-393509;# Enthalpy of heat \n",
+ "del_hfco=-110525;# Enthalpy of heat \n",
+ "s_co2=213.795;# Entropy of heat \n",
+ "s_co=197.652;# Entropy of heat \n",
+ "s_o2=205.142;# Entropy of heat \n",
+ "\n",
+ "#Calculation for (a)\n",
+ "del_Ga=(del_hfco2-del_hfco-T0*(s_co2-s_co-(1/2*s_o2)));\n",
+ "Ka=math.exp (abs (del_Ga)/(R_1*1000*T0));\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).CO+1/2 O2 = CO2\"\n",
+ "print (\" The equilibrium constant at 298 K = %0.3f (Error in textbook) \")%Ka\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).2CO + O2 = 2CO2\n",
+ "Kb=math.exp (2*abs (del_Ga)/(R_1*1000*T0));\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).2CO + O2 = 2CO2\"\n",
+ "print (\"The equilibrium constant at 298 K = %0.3f (Error in textbook)\")%Kb\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).CO+1/2 O2 = CO2\n",
+ " The equilibrium constant at 298 K = 1.123 (Error in textbook) \n",
+ "\n",
+ "(b).2CO + O2 = 2CO2\n",
+ "The equilibrium constant at 298 K = 1.262 (Error in textbook)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3, Page No:686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "R_1=8.314; # Universal gas constant in kJ/kg mol K\n",
+ "T=2800; # Given Temperature in kelvin\n",
+ "\n",
+ "#Calculation\n",
+ "# From table of properties of combustion\n",
+ "del_hfco2=-393509; # Enthalpy of heat \n",
+ "del_hfco=-110525; # Enthalpy of heat \n",
+ "del_H=del_hfco2-del_hfco; # Standard enthalpy of reaction\n",
+ "Ka=1.202*10**45; # The equilibrium constant From the example 15.2\n",
+ "K1=math.log (Ka);\n",
+ "K=math.exp(-(del_H/R_1)*((1/T)-(1/T0))+K1);\n",
+ "\n",
+ "#Result\n",
+ "print\"K =\",round(K,3),\" (roundoff error)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K = 5.687 (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5, Page No:689"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=2800; # Temperature of combustion in kelvin\n",
+ "p=1; # Pressure of combustion in atm\n",
+ "# For this reverse reaction at 2800K and 1atm, from Table 15.1\n",
+ "K=44.168; # K=e^3.788;\n",
+ "\n",
+ "#Calculation\n",
+ "K=math.sqrt (K); # For stoichiometric equation CO+1/2 O2 = CO2 which is halved\n",
+ "# From equation 15.24a and by the iteration process we get the following\n",
+ "a=0.198;\n",
+ "b=(1+a)/2;\n",
+ "c=1-a;\n",
+ "\n",
+ "#Results\n",
+ "print \"The balance for the actual reaction equation CO + O2 \u2192 aCO + bO2 + cCO2 is given by \"\n",
+ "print \"a =\",a,\"\\nb =\",b,\"\\nc =\",c\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The balance for the actual reaction equation CO + O2 \u2192 aCO + bO2 + cCO2 is given by \n",
+ "a = 0.198 \n",
+ "b = 0.599 \n",
+ "c = 0.802\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6, Page No:691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "# By driving the equation for equilibrium constant as shown in example 15.6 we get 6.646(6)^(1/6)=((1-a)/a)((3+a)/(1+a))^1/2\n",
+ "# by simple iteration process we get\n",
+ "a=0.095;\n",
+ "\n",
+ "#Calculations\n",
+ "b=(1+a)/2;\n",
+ "c=1-a;\n",
+ "\n",
+ "#Results\n",
+ "print \"The equilibrium composition of CO = \",a,\"mol (roundoff error)\"\n",
+ "print \"The equilibrium composition of O2 = \",b,\"mol (roundoff error)\"\n",
+ "print \"The equilibrium composition of CO2 = \",c,\"mol (roundoff error)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equilibrium composition of CO = 0.095 mol (roundoff error)\n",
+ "The equilibrium composition of O2 = 0.5475 mol (roundoff error)\n",
+ "The equilibrium composition of CO2 = 0.905 mol (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.7, Page NO:691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=2800; # Temperature of combustion in kelvin\n",
+ "p=1; # Pressure of combustion in atm\n",
+ "# For this reverse reaction at 2800K and 1atm, from Table 15.1\n",
+ "K=44.168; # K=e^3.788;\n",
+ "\n",
+ "#Calculations\n",
+ "K=math.sqrt (K); # For stoichiometric equation CO+1/2 O2 = CO2 which is halved\n",
+ "# From equation 15.24a and by the iteration process we get the following\n",
+ "a=0.302;\n",
+ "b=(1+a)/2;\n",
+ "c=1-a;\n",
+ "\n",
+ "#Results\n",
+ "print \"The balance for the actual reaction equation CO + 1/2O2 + 1.88N2 \u2194 aCO + bO2 + cCO2 +3.76N2 is given by \"\n",
+ "print \"a =\",a,\"\\nb =\",b,\"\\nc =\",c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The balance for the actual reaction equation CO + 1/2O2 + 1.88N2 \u2194 aCO + bO2 + cCO2 +3.76N2 is given by \n",
+ "a = 0.302 \n",
+ "b = 0.651 \n",
+ "c = 0.698\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.8, Page No:693"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=3000; # Temperature of combustion in kelvin\n",
+ "p=1; # Pressure of combustion in atm\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "R_1=8.314; # Universal gas constant in kJ/kg mol K\n",
+ "# Gibbs functions at 298K from Table 14.1\n",
+ "del_gNO=86550; # In kJ/kmol\n",
+ "del_gNO2=51310; # In kJ/kmol\n",
+ "# From table of properties of combustion\n",
+ "del_hfNO=90250; # Enthalpy of heat \n",
+ "del_hfNO2=33180; # Enthalpy of heat \n",
+ "\n",
+ "#Calculations\n",
+ "K1=math.exp (-(del_hfNO/R_1)*((1/T)-(1/T0))-((del_gNO)/(R_1*T0)));\n",
+ "K2=math.exp (-(del_hfNO2/R_1)*((1/T)-(1/T0))-((del_gNO2)/(R_1*T0)));\n",
+ "# By solving equilibrium equations by iteration method\n",
+ "E1=0.228; E2=0.0007;\n",
+ "yNO=E1/4.76; # Mole fraction of NO in exhaust gas\n",
+ "yNO2=E2/4.76; # Mole fraction of NO2 in exhaust gas\n",
+ "\n",
+ "#Results\n",
+ "print \"Percentage of NOx present in the exhaust gas \",\"\\nMole fraction of NO in exhaust gas = \",round(yNO*100,2),\"%\"\n",
+ "print \"Mole fraction of NO2 in exhaust gas = \",round(yNO2*100,4),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage of NOx present in the exhaust gas \n",
+ "Mole fraction of NO in exhaust gas = 4.79 %\n",
+ "Mole fraction of NO2 in exhaust gas = 0.0147 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter2.ipynb b/Thermodynamics/Chapter2.ipynb
new file mode 100755
index 00000000..9380b1f0
--- /dev/null
+++ b/Thermodynamics/Chapter2.ipynb
@@ -0,0 +1,112 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:918b48292f00614bbba5ee6b8d2f7b2b929a3939332547fe2fb6585d1e0c7729"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:THERMODYNAMIC CONCEPTS AND THE ZEROTH LAW"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No:33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "patm = 14.5 ; # atmospheric pressure in psia\n",
+ "pgauge = 2.5; # gauge pressure in psia\n",
+ "A = 10; # Area of the piston in in^2\n",
+ "g=9.80665; # Acceleration due to gravity in m/s^2\n",
+ "#Calculation for (a)\n",
+ "p = patm + pgauge; #total pressure of gas\n",
+ "m=(p-patm)*A ; # mass of the piston\n",
+ "#Result for (a)\n",
+ "print \"In English units\"\n",
+ "print \"Mass of the piston =\",m,\"lbm\"\n",
+ "#Calculation for (b)\n",
+ "p=(p*0.454*g)/(0.0254**2); # conversion of English unit to SI units\n",
+ "patm=(patm*0.454*g)/(0.0254**2); # conversion of English unit to SI units\n",
+ "m = ((p-patm)*(A*2.54**2*10**-4))/g; # Mass of the piston\n",
+ "#Result for (b)\n",
+ "print \"\\nIn SI units \\n\",\"Mass of the piston =\",m,\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In English units\n",
+ "Mass of the piston = 25.0 lbm\n",
+ "\n",
+ "In SI units \n",
+ "Mass of the piston = 11.35 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No:34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Variable declaration\n",
+ "d_r = 13600; # Density of manometric fluid (mercury) in kg/m^*3\n",
+ "g = 8.92; # Gravitational acceleration in m/s^2\n",
+ "#Variable declaration\n",
+ "z1=0.589*math.sin(math.radians(60)); # vertical height of fluid at section 1\n",
+ "z2=2*math.sin(math.radians(30)); # vertical height of fluid at section 2\n",
+ "z=z2-z1; # Difference in vertical heights of fluid\n",
+ "patm = 14.7; # Atmospheric pressure in lbf/in^2\n",
+ "patm=(patm*4.44822*144/0.3048**2); # conversion of lbf/in^2 unit to N/m^2 unit\n",
+ "p=patm + (d_r*g*(z2-z1)); # Balance of force at A\n",
+ "#Result\n",
+ "print \"Difference in vertical heights of fluid = \",round(z,2),\"m\"\n",
+ "print \"\\nThe pressure of fluid in the vessel = \",round(p/1000,0),\"kPa\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Difference in vertical heights of fluid = 0.49 m\n",
+ "\n",
+ "The pressure of fluid in the vessel = 161.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter3.ipynb b/Thermodynamics/Chapter3.ipynb
new file mode 100755
index 00000000..f35af800
--- /dev/null
+++ b/Thermodynamics/Chapter3.ipynb
@@ -0,0 +1,456 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2adb5810f77a16f36c057b0df75843c0d900b3354a62e4e4e5a6c4e231a86e5c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:PROPERTIES OF A PURE SUBSTANCE"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page No:77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "\n",
+ "V=0.01; # Volume of water in a rigid vessel in m^3\n",
+ "m=4.5; # Mass of water+ steam in a rigid vessel in kg\n",
+ "T=35; # Temperature of water in a rigid vessel in degree celcius\n",
+ "#Calculation\n",
+ "\n",
+ "# (a) \n",
+ "v=V/m; # specific volume of water\n",
+ "# From steam table\n",
+ "vf=0.001006; vg=25.22; # specific volume in m^3/kg\n",
+ "x=(v-vf)/(vg-vf); # Quality of steam\n",
+ "x1=1-x; # Quality of water\n",
+ "mg=x*m; # Mass of steam\n",
+ "mf=x1*m; # Mass of water\n",
+ "#Result for (a)\n",
+ "\n",
+ "print \"(a).\\n\",\"Quality of steam in a rigid vessel = \",x,\"\\nQuality of water in a rigid vessel = \",x1\n",
+ "print \"Mass of steam in a rigid vessel = \",round(mg,8),\"kg\\n\",\"Mass of water in a rigid vessel = \",round(mf,9),\"kg\\n\"\n",
+ "# (b)\n",
+ "#Result for (b)\n",
+ "\n",
+ "vc=0.003155; # Crictical volume for water in m^3/kg\n",
+ "print \"(b).\\n\",\"The level of liquid water will rise in the vessel. Since v < vc and refer figure 3.21\\n\"\n",
+ "# (c) \n",
+ "#Result for (c)\n",
+ "\n",
+ "print \"(c)\\n\",\"The final temperature after heating is 370.04 oC. Because it is constant volume process and refer figure 3.21\\n\"\n",
+ "# (d) \n",
+ "#Calculation for (d)\n",
+ "\n",
+ "m1=0.45; # Mass of water in kg\n",
+ "v1=V/m; # specific volume of water\n",
+ "#Result for (d)\n",
+ "\n",
+ "print\"(d).\\n\", \"Level of liquid drops to bottom (v1 > vc). Temperature on reaching saturation state is 298.5 oC and refer figure 3.21\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).\n",
+ "Quality of steam in a rigid vessel = 4.82264368762e-05 \n",
+ "Quality of water in a rigid vessel = 0.999951773563\n",
+ "Mass of steam in a rigid vessel = 0.00021702 kg\n",
+ "Mass of water in a rigid vessel = 4.499782981 kg\n",
+ "\n",
+ "(b).\n",
+ "The level of liquid water will rise in the vessel. Since v < vc and refer figure 3.21\n",
+ "\n",
+ "(c)\n",
+ "The final temperature after heating is 370.04 oC. Because it is constant volume process and refer figure 3.21\n",
+ "\n",
+ "(d).\n",
+ "Level of liquid drops to bottom (v1 > vc). Temperature on reaching saturation state is 298.5 oC and refer figure 3.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No:79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration for (a)\n",
+ "# (a) Ammonia 26 oC and 0.074 m^3/kg\n",
+ "# From saturation table of ammonia at 26 oC\n",
+ "v=0.074; # specific volume of ammonia in m^3/kg\n",
+ "vf=0.001663; vg=0.1245; # specific volume of ammonia in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "x=(v-vf)/(vg-vf); # Quality of vapour since v<vg\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a) Ammonia 26 oC and 0.074 m^3/kg\\n\",\"The Quality of ammonia = \",round(x,3)\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).Ammonia 550kPa and 0.31m^3/kg\n",
+ "# From saturation table of ammonia at 550 kPa\n",
+ "v=0.31; # specific volume of ammonia in m^3/kg\n",
+ "vg=0.23; # specific volume of ammonia in m^3/kg\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# v > vg . Since from superheated table by interpolation for 550kPa and v\n",
+ "T=82.1; # Temperature of ammonia in degree celcius\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Ammonia 550kPa and 0.31m^3/kg\\n\",\"Temperature of ammonia = \",T,\"oC\\n\"\n",
+ "\n",
+ "#Variable declaration for (c)\n",
+ "# (c).Freon 12, 0.35MPa and 0.036 m^3/kg\n",
+ "# From saturation table of Freon 12 at 0.35MPa\n",
+ "v=0.036; # specific volume of Freon 12 in m^3/kg\n",
+ "vf=0.000722; vg=0.049329; # specific volume of Freon 12 in m^3/kg\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "x=(v-vf)/(vg-vf); # Quality of vapour since v<vg\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"(c).Freon 12, 0.35MPa and 0.036 m^3/kg\\n\",\"The Quality of Freon 12 = \",round(x,2)\n",
+ "\n",
+ "#Variable declaration for (d)\n",
+ "# (d).Methane 0.5MPa and 1.0 m^3/kmol\n",
+ "v=1; # specific volume of Methane in m^3/kmol\n",
+ "# From table at 0.5 MPa molar values are\n",
+ "vf=0.04153; vg=2.007; # specific volume of Methane in m^3/kmol\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "x=(v-vf)/(vg-vf); # Quality of vapour since v<vg\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Methane 0.5MPa and 1.0 m^3/kmol\",\"\\nThe Quality of Methane = \",round(x,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Ammonia 26 oC and 0.074 m^3/kg\n",
+ "The Quality of ammonia = 0.589\n",
+ "\n",
+ "(b).Ammonia 550kPa and 0.31m^3/kg\n",
+ "Temperature of ammonia = 82.1 oC\n",
+ "\n",
+ "(c).Freon 12, 0.35MPa and 0.036 m^3/kg\n",
+ "The Quality of Freon 12 = 0.73\n",
+ "\n",
+ "(d).Methane 0.5MPa and 1.0 m^3/kmol \n",
+ "The Quality of Methane = 0.4877\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3, Page No:83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V=300; # Volume of air in the room in m^3\n",
+ "p=1; # Atmospheric pressure in bar\n",
+ "T=25; # Temperature of air in Degree Celcius\n",
+ "R=287; # Characteristic constant of Air in J/kg k\n",
+ "\n",
+ "#Calculation\n",
+ "m=(p*10**5*V)/(R*(T+273)); # Ideal gas equation\n",
+ "\n",
+ "#Result\n",
+ "print \"Mass of air in room = \",round(m,2),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of air in room = 350.0 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page No:84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "D=20; # Diameter of the sphere in cm\n",
+ "m=2.54; # Mass of gas filled in sphere in gram\n",
+ "p=10; # Pressure of gas in bar\n",
+ "T=25; # Temperature of gas in Degree Celcius\n",
+ "R=8.3144*10**3; # Universal gas constant in J/kmol K\n",
+ "\n",
+ "#Calculation\n",
+ "V=(3.14*(D*10**-2)**3)/16; # Volume of das in sphere in m^3\n",
+ "M=(m*10**-3*R*(T+273))/(p*10**5*V); # Molecular weight of the gas\n",
+ "\n",
+ "#Result\n",
+ "print \"Molecular weight of the gas = \",round(M,3),\"\\nTherefore gas in sphere is Helium (unless mixture of two or more gases)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molecular weight of the gas = 4.008 \n",
+ "Therefore gas in sphere is Helium (unless mixture of two or more gases)\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page No:85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p2=2.5; # Pressure of air in the cylinder in bar\n",
+ "T1=430; # Temperature of air in cylinder in Degree Celcius\n",
+ "V1=1.2; # Volume of cylinder in m^3\n",
+ "V2=0.6; # Volume of cylinder upto end stops in m^3\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a) Temperature of air when the piston reaches the stops\n",
+ "T2=(T1+273)*(V2/V1); # constant pressure process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Temperature of air when the piston reaches the stops = \",round(T2,1),\"K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b) The pressure of air when its temperature equals to 25 oC\n",
+ "T3=25; #Room temperature in Degree Celcius\n",
+ "p3=p2*((T3+273)/T2); # constant volume process\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The pressure of air when its temperature equals to 25 oC = \",round(p3,2),\"bar\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Temperature of air when the piston reaches the stops = 351.5 K\n",
+ "\n",
+ "(b).The pressure of air when its temperature equals to 25 oC = 2.12 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page No:92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p=6000; # Pressure of nitrogen gas in kPa\n",
+ "T=150; # Temperature of nitrogen gas in kelvin\n",
+ "V=250; # Volume of tank in litres\n",
+ "R_1=8.3143; # Universal gas constant in kJ/kmol K\n",
+ "M=28.1013; # Molecular mass\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Beattie - Bridgeman equation of state\n",
+ "# Constants for nitrogen gas\n",
+ "c=4.2*10**4; Ao=136.2315; a=0.02617; Bo=0.05046; b=-0.00691;\n",
+ "# By substituting these values in the following equation \n",
+ "# p=(R_1*T/v^2)*(1-(c/(vT^3)))*(v+Bo*(1-(b/v)))-(Ao/v^2*(1-(a/v)))\n",
+ "# By trial and error we get\n",
+ "v=0.1222; # specific volume in m^3/kmol\n",
+ "m=(M*V/1000)/v; # Mass of nitrogen gas\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Beattie - Bridgeman equation of state\",\"\\nMass of nitrogen gas = \",round(m,2),\"kg\"\n",
+ "print \"specific volume of nitrogen gas = \",round(v,4),\"m^3/kmol\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Nitrogen tables\n",
+ "# From property table of nitrogen fas\n",
+ "v=0.004413; # specific volume in m^3/kg\n",
+ "m=(V/1000)/v; # Mass of nitrogen gas\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Nitrogen tables\",\"\\nMass of nitrogen gas = \",round(m,2),\"kg\",\"\\nspecific volume of nitrogen gas = \",round(v,6),\"m^3/kg\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Ideal gas equation of state\n",
+ "m=(p*V/1000)/(R_1*T/M); #Mass of nitrogen gas\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).Ideal gas equation of state\",\"\\nMass of nitrogen gas = \",round(m,2),\"kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Generalized compressibility chart\n",
+ "# The crictical properties for nitrogen gas \n",
+ "Tc=126.2; # Temperature in kelvin\n",
+ "Pc=3.349; # Pressure in MPa\n",
+ "# Reduced properties are\n",
+ "Pr=p/Pc; Tr=T/Tc;\n",
+ "z=0.6; # From chart\n",
+ "m=(p*V/1000)/(z*R_1*T/M); #Mass of nitrogen gas\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n\\n(d).Generalized compressibility chart\",\"\\nMass of nitrogen gas = \",round(m,2),\"kg\"\n",
+ "\n",
+ "#Result for (e)\n",
+ "#(e).Arrangement the methods in order of percentage error\n",
+ "print \" \\n\\n(e).Arrangement the methods in order of percentage error : \"\n",
+ "print \"Nitrogen tables\",\"\\nBeattie - Bridgeman equation of state\",\"\\nGeneralized compressibility chart\",\"\\nIdeal gas equation of state\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Beattie - Bridgeman equation of state \n",
+ "Mass of nitrogen gas = 57.49 kg\n",
+ "specific volume of nitrogen gas = 0.1222 m^3/kmol\n",
+ "\n",
+ "\n",
+ "(b).Nitrogen tables \n",
+ "Mass of nitrogen gas = 56.65 kg \n",
+ "specific volume of nitrogen gas = 0.004413 m^3/kg\n",
+ "\n",
+ "\n",
+ "(c).Ideal gas equation of state \n",
+ "Mass of nitrogen gas = 33.8 kg\n",
+ "\n",
+ "\n",
+ "(d).Generalized compressibility chart \n",
+ "Mass of nitrogen gas = 56.33 kg\n",
+ " \n",
+ "\n",
+ "(e).Arrangement the methods in order of percentage error : \n",
+ "Nitrogen tables \n",
+ "Beattie - Bridgeman equation of state \n",
+ "Generalized compressibility chart \n",
+ "Ideal gas equation of state\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No:97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T=-58.7; #Normal boling point of CF3Br in Degree Celcius\n",
+ "Tc=340.9; # Crictical temperature of CF3Br in K\n",
+ "pc=4.05; # Crictical pressure of CF3Br in MPa\n",
+ "M=148.9; # Moleclar mass of CF3Br\n",
+ "p=1.01325*10**5; # Atmospheric pressure in N/m^2\n",
+ "R1=8314.4; # Universal gas constant in J/kmol K\n",
+ "R=R1/M; # Gas constant of CF3Br\n",
+ "\n",
+ "#Calculation\n",
+ "a=(0.42748*R**2*Tc**2.5)/(pc*10**6); # Constant of Redlich-Kwong equation of state\n",
+ "b=(0.08664*R*Tc)/(pc*10**6); # Constant of Redlich-Kwong equation of state\n",
+ "vi=(R*(T+273))/p; # Ideal gas volume for assigning initial value\n",
+ "# By substituting these values in the Redlich-Kwong equation of state \n",
+ "vi_1=(R*(T+273)/p)+b-((a/(p*(273+T)**0.5*vi))*((vi-b)/(vi+b))); #and solving it by trial and error method we get\n",
+ "\n",
+ "#Result\n",
+ "print \"Saturated vapour volume = \",round(vi_1,5),\"m^3/kg (roundoff error)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Saturated vapour volume = 0.1145 m^3/kg (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter4.ipynb b/Thermodynamics/Chapter4.ipynb
new file mode 100755
index 00000000..a94e74df
--- /dev/null
+++ b/Thermodynamics/Chapter4.ipynb
@@ -0,0 +1,605 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a96d6bb31c1b3d7ae1ce5516661e1ba259f94d24cfffad925aea849eb83692cf"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:WORK AND HEAT"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page No:114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=5; # Pressure of Helium gas at initial state in bar\n",
+ "T1=222; # Temperature of Helium gas at initial state in K\n",
+ "V1=0.055; # Volume of Helium gas at initial state in m^3\n",
+ "n=1.5; # Index of expansion process\n",
+ "R=2.078;# Characteristic gas constant of Helium gas in kJ/kg K\n",
+ "p2=2; # Pressure of Helium gas at final state (after expansion) in bar\n",
+ "\n",
+ "#Calculation for Method I\n",
+ "V2=V1*(p1/p2)**(1/n);# From Polytropic process relation for final volume\n",
+ "W=((p2*10**2*V2)-(p1*10**2*V1))/(n-1); # Work done from Polytropic process relation\n",
+ "\n",
+ "#Result for Method I\n",
+ "print \"Method I\"\n",
+ "print \"\\nWork done =\",round(W,2),\"kJ\"\n",
+ "\n",
+ "#Calculation for Method II\n",
+ "m=(p1*10**2*V1)/(R*T1); # ideal gas equation\n",
+ "T2=T1*(p2/p1)**((n-1)/n); # From Polytropic process relation of final temperature\n",
+ "W=(m*R*(T1-T2))/(1-n); # Work done from Polytropic process relation\n",
+ "\n",
+ "#Result for Method II\n",
+ "print \"\\n\\nMethod II\"\n",
+ "print \"\\nWork done =\",round(W,2),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Method I\n",
+ "\n",
+ "Work done = -14.48 kJ\n",
+ "\n",
+ "\n",
+ "Method II\n",
+ "\n",
+ "Work done = -14.48 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No:115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1.3; # Initial pressure of gas in bar\n",
+ "V1=0.03; # Initial volume of gas in m^3\n",
+ "V2=0.1; # Final volume of gas in m^3\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "W=p1*10**2*(V2-V1); # work done by gas\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Constant pressure process\"\n",
+ "print \"\\nwork done by gas =\",W,\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "W=p1*10**2*V1*math.log(V2/V1);# Work done by gas\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Constant Temperature process\"\n",
+ "print \"\\nwork done by gas =\",W,\"kJ\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "n=1.3; #index of polytropic process \n",
+ "p2=p1*(V1/V2)**n; # From Polytropic process relation for final pressure\n",
+ "W=((p2*10**2*V2)-(p1*10**2*V1))/(1-n); # Work done by gas\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).polytropic process of index 1.3\"\n",
+ "print \"\\nwork done by gas =\",round(W,3),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Constant pressure process\n",
+ "\n",
+ "work done by gas = 9.1 kJ\n",
+ "\n",
+ "\n",
+ "(b).Constant Temperature process\n",
+ "\n",
+ "work done by gas = 4.69549393687 kJ\n",
+ "\n",
+ "\n",
+ "(c).polytropic process of index 1.3\n",
+ "\n",
+ "work done by gas = 3.941 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No:120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "patm=1; # Atmospheric pressure in bar\n",
+ "V1=0.0135; # Volume of Freon 12 at initial state in m^3\n",
+ "D=9; # Diameter of the cylinder in cm\n",
+ "m=90; # Mass of the piston in kg\n",
+ "g=9.80665; # acceleration due to gravity in m/s^2\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a). Determination of the final pressure and volume of the system\n",
+ "A=3.14/4 * (D*10**-2)**2; # Area of the cylinder\n",
+ "p1=0.7449; # Initial pressure of saturated vapour at 30 degree celcius in MPa\n",
+ "v1=0.023508; # Initial specific volume of saturated vapour at 30 degree celcius in m^3/kg\n",
+ "p2=(patm*10**5)+(m*g)/A; # Final pressure of Freon 12\n",
+ "v2=0.084022; # Final specific volume from superheated table at p2 and 30 degree celcius in m^3/kg\n",
+ "mf=V1/v1; # Mass of Freon 12\n",
+ "V2=mf*v2; # Final volume of Freon 12\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a)\",\"\\nFinal pressure = \",p2,\"Pa\",\"\\nFinal volume = \",round(V2,5),\"m^3 (round off error)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b). Calculation of workdone by Freon 12 during this process\n",
+ "Wirrev=p2*(V2-V1); # P dv Work done \n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nWork done = \",round(Wirrev/1000,3),\"kJ (round off error)\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c). Calculation of workdone by Freon 12 during reversible process\n",
+ "Wrev=p1*10**6*V1*math.log (V2/V1);#From reversible process relation for work done\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c)\",\"\\nWork done in reveersible process = \",round(Wrev/1000,2),\"kJ (round off error)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "Final pressure = 238806.086341 Pa \n",
+ "Final volume = 0.04825 m^3 (round off error)\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Work done = 8.299 kJ (round off error)\n",
+ "\n",
+ "\n",
+ "(c) \n",
+ "Work done in reveersible process = 12.81 kJ (round off error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5, Page No:129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=0.1; # Initial pressure (before compression) of air in MPa\n",
+ "T1=30; # Initial temperature (before compression) of air in degree celcius\n",
+ "p2=0.9; # Final pressure (after compression) of air in MPa\n",
+ "R=0.287; # Characteristic constant of air in kJ/kg k\n",
+ "\n",
+ "# (i) Actual work in the flow process\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Isothermal Process\n",
+ "w=-R*(T1+273)*math.log (p2/p1); # work done for isothermal process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(i) Actual work in the flow process\",\"\\n(a).Isothermal Process\",\"\\nwork done = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Polytropic process\n",
+ "n=1.4; # Index of polytropic process\n",
+ "T2=(T1+273)*(p2/p1)**((n-1)/n); # From Polytropic process relation for final temperature\n",
+ "w=(n/(1-n))*R*(T2-(T1+273)); # work done for polytropic process\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Polytropic process\",\"\\ncompression work = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "# (ii).Nonflow work\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Isothermal Process\n",
+ "w=-R*(T1+273)*math.log (p2/p1); # work done for isothermal process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"\\n\\n\\n(ii).Nonflow work\",\"\\n(a).Isothermal Process\",\"\\nwork done = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Polytropic process\n",
+ "w=(1/(1-n))*R*(T2-(T1+273));# work done for polytropic process\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Polytropic process\",\"\\ncompression work = \",round(w,1),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Actual work in the flow process \n",
+ "(a).Isothermal Process \n",
+ "work done = -191.1 kJ/kg\n",
+ "\n",
+ "\n",
+ "(b).Polytropic process \n",
+ "compression work = -265.8 kJ/kg\n",
+ "\n",
+ "\n",
+ "\n",
+ "(ii).Nonflow work \n",
+ "(a).Isothermal Process \n",
+ "work done = -191.1 kJ/kg\n",
+ "\n",
+ "\n",
+ "(b).Polytropic process \n",
+ "compression work = -189.9 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No:135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=1; # Initial pressure (before compression) of air in bar\n",
+ "p2=8; # Final pressure (after compression) of air in bar\n",
+ "Vp=15; # Displacement volume of reciprocating air compressor in litres\n",
+ "Vc=0.05*Vp; # Clearance volume of reciprocating air compressor in litres\n",
+ "N=600; # Speed of compressor in rpm\n",
+ "V1=Vc+Vp; # Total volume of reciprocating air compressor in litres\n",
+ "p3=p2; # constant pressure process\n",
+ "p4=p1; # constant pressure process\n",
+ "V3=Vc;# Clearance volume of reciprocating air compressor in litres\n",
+ "n=1.3; # Index of reversible adiabatic compression process\n",
+ "m=1.4; # Index of reversible adiabatic expansion process\n",
+ "V4=V3*(p3/p4)**(1/m);\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Work per machine cycle\n",
+ "Wcycle = ((n/(n-1))*p1*10**2*V1*10**-3*(1-(p2/p1)**((n-1)/n)))-((m/(m-1))*p4*10**2*V4*10**-3*(1-(p3/p4)**((m-1)/m)));\n",
+ "# Work per machine cycle\n",
+ "Wpower=abs (Wcycle)*(N/60); # Power consumption of the compressor\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a)\",\"\\nWork per machine cycle = \",round(Wcycle,3),\"kJ (Error in textbook)\"\n",
+ "print \"\\nPower consumption of the compressor\",round(Wpower,2),\"kW\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Work of the cycle if m=n\n",
+ "m=n;\n",
+ "W_cycle=(n/(n-1))*p1*10**2*(V1-V4)*10**-3*(1-(p2/p1)**((n-1)/n)); # Work per machine cycle\n",
+ "er=((W_cycle-Wcycle)/Wcycle) * 100 # Error involved in calculating work if m=n\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nWork per machine cycle\",round(W_cycle,3),\"kJ (round off error)\"\n",
+ "print \"\\nError = \",round(er,3),\"% (Error in textbook)\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Clearance volumetric efficiency\n",
+ "C=Vc/Vp;\n",
+ "eff = 1+C+-C*(p2/p1)**(1/n); # Clearance volumetric efficiency\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).\",\"\\nClearance volumetric efficiency = \",round(eff*100,0),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "Work per machine cycle = -3.263 kJ (Error in textbook)\n",
+ "\n",
+ "Power consumption of the compressor 32.63 kW\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Work per machine cycle -3.319 kJ (round off error)\n",
+ "\n",
+ "Error = 1.739 % (Error in textbook)\n",
+ "\n",
+ "\n",
+ "(c). \n",
+ "Clearance volumetric efficiency = 80.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7, Page No:137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=150; # Cylinder Diameter in mm\n",
+ "L=200; # Piston stroke in mm\n",
+ "C=0.05; # Clearance factor\n",
+ "p1=15; # Steam inlet conditions (saturated) in bar\n",
+ "p4=1; # Exhaust or back pressure in bar\n",
+ "p2=p1; # Constant pressure process\n",
+ "p5=p4; # Constant pressure process\n",
+ "\n",
+ "#Calculation\n",
+ "Vp=(3.14*(D*10**-3)**2*L*10**-3)/4; # Swept volme of cylinder\n",
+ "Vc=C*Vp; # Clearance volume of cylinder\n",
+ "V3=Vc+Vp; # Total volume of cylinder\n",
+ "V1=Vc; # Clearance volume\n",
+ "V6=V1; # constant volume process\n",
+ "V4=V3; # constant volume process\n",
+ "V5=Vc+0.3*Vp; # Compression begins at 30% of stroke\n",
+ "V2=Vc+0.4*Vp; # Cut-off occurs at 40% of stroke\n",
+ "p6=p5*(V5/V6); # Pressure after compression\n",
+ "Wcycle=(p1*10**2*(V2-V1))+(p2*10**2*V2*math.log (V3/V2))-(p4*10**2*(V4-V5))-(p5*10**2*V5* math.log(V5/V6)); # Work per Cycle\n",
+ "\n",
+ "#Result\n",
+ "print \"Work per cycle =\",round(Wcycle,3),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work per cycle = 3.652 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8, Page No:142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "D=10; #Bore in cm\n",
+ "L=12.5; #Stroke length in cm\n",
+ "a=9.68; # Area of indicator card in cm^2\n",
+ "l=5.33; # Card length in cm\n",
+ "Ks=21.7; # Indicator spring constant per meter of card length\n",
+ "\n",
+ "#Calculation\n",
+ "A=(3.14*(D*10**-2)**2)/4; # Area of pisaton\n",
+ "Pm=(a/l)*10**-2*Ks*10**6; # Mean effective pressure\n",
+ "W=Pm*A*L*10**-2; # Work done by cycle\n",
+ "\n",
+ "#Result\n",
+ "print \"Work done by cycle = \",round(W,0),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done by cycle = 387.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9, Page No:142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=152; # Bore of steam engine in mm\n",
+ "l=89; # Stroke length of steam engine in mm\n",
+ "a1=8;a2=10; # area of indicatior diagram on two sides\n",
+ "Ks=50; # Indicator spring constant in lbf/in^2/in\n",
+ "N=310; # Engine speed in rpm\n",
+ "d=0.664; # Diameter of flywheel in m\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a)\n",
+ "a=(a1+a2)/2; # Average area of indicator diagram\n",
+ "Ks=50*4.44822/(0.0254)**3; # Unit conversion from lbf/in^2/in to N/m^2\n",
+ "pm=(a/(l/10))*10**-2*Ks; # Mean effective pressure \n",
+ "A=(3.14*(D*10**-3)**2)/4; # Area of the piston\n",
+ "IP=2*pm*l*10**-3*A*N/60; # Indicated power\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a)\",\"\\nIndicated power of Engine =\",round(IP/1000,2),\"kW\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b)\n",
+ "F=12-1.5; # Tangential force on the brake drum in kgf\n",
+ "BP=F*9.81*d/2*2*3.14*N/60; # Brake power of Engine\n",
+ "eff=BP/IP *100 ; # Mechanical efficiency \n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nBrake power of Engine = \",round(BP/1000,2),\"kW\",\"\\nMechanical efficiency of Engine =\",round(eff,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "Indicated power of Engine = 2.29 kW\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Brake power of Engine = 1.11 kW \n",
+ "Mechanical efficiency of Engine = 48.47 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No:156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Tc1=10; # Feed water inlet temperature in degree celcius\n",
+ "Tc2=77; # Feed water outlet temperature in degree celcius\n",
+ "th1=166; # Initial temperature of flue gas in degree celcius\n",
+ "r=4; # Ratio of mass flow rates of flue gases and water\n",
+ "Ch=1.05; # The specific heat of flue gas in kJ/kg K\n",
+ "Cc=4.187; # The specific heat of feed water in kJ/kg K\n",
+ "U=114; # Overall heat transfer coefficient in W/m^2\n",
+ "mc=1; # massflowrate of feed water in kg/s\n",
+ "\n",
+ "#Calculation for Parallel flow\n",
+ "th2=th1-((Cc*(Tc2-Tc1))/(r*Ch)); # Outlet temperature of flue gas in degree celcius\n",
+ "Q=mc/3600*Cc*(Tc2-Tc1); # Heat transfer rate per kg/h of water flow\n",
+ "# Parallel flow \n",
+ "del_Tm=((th1-Tc1)-(th2-Tc2))/math.log ((th1-Tc1)/(th2-Tc2)); # Logarthamic Mean Temperature Difference in degree celcius\n",
+ "A=Q*10**3/(U*del_Tm); # Economiser surface area\n",
+ "\n",
+ "#Result for Parallel flow\n",
+ "print \" (a)Parallel flow\",\"\\nLogarthamic Mean Temperature Difference=\",round(del_Tm,1),\"degree celcius\",\n",
+ "print \"\\nEconomiser surface area =\",round(A,2),\"m^2\"\n",
+ "\n",
+ "#Calculation for Counter flow\n",
+ "# Counter flow\n",
+ "del_Tm=((th1-Tc2)-(th2-Tc1))/math.log ((th1-Tc2)/(th2-Tc1)); # Logarthamic Mean Temperature Difference in degree celcius\n",
+ "A=Q*10**3/(U*del_Tm); # Economiser surface area\n",
+ "\n",
+ "#Result for Counter flow\n",
+ "print\" \\n\\n(b) Counter flow\",\"\\nLogarthamic Mean Temperature Difference=\",round(del_Tm,1),\"degree celcius\",\n",
+ "print \"\\nEconomiser surface area =\",round(A,5),\"m^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a)Parallel flow \n",
+ "Logarthamic Mean Temperature Difference= 68.6 degree celcius \n",
+ "Economiser surface area = 0.01 m^2\n",
+ " \n",
+ "\n",
+ "(b) Counter flow \n",
+ "Logarthamic Mean Temperature Difference= 89.1 degree celcius \n",
+ "Economiser surface area = 0.00767 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter5.ipynb b/Thermodynamics/Chapter5.ipynb
new file mode 100755
index 00000000..4cdef356
--- /dev/null
+++ b/Thermodynamics/Chapter5.ipynb
@@ -0,0 +1,1018 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a6720a62663d7e9e40aacc296786087fbeb2c2cce5605db25fafd27c8d98c84c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:FIRST LAW,INTERNAL ENERGY AND ENTHALPY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle 5.1, Page No:169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q12=-250; # Heat transfer during Discharging of battery in kcal\n",
+ "W21=-0.53; # Consumption of electricity dring Charging process in kWh\n",
+ "\n",
+ "#Calculation\n",
+ "Q21=(W21*3600)-(Q12*4.1868); # First law of thermodynamics\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat loss from battery during charging process = \",Q21,\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat loss from battery during charging process = -861.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No:173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=5; # Mass of water in a tank in kg\n",
+ "T1=30; # Temperature of water at initial state (1) in degree celcius\n",
+ "T2=95; # Temperature of water at final state (2) in degree celcius\n",
+ "Qout=70; # Heat transfer from the water tank to the surrounding air in kJ\n",
+ "W=75; #Electric energy input to a stirrer inside water in kJ\n",
+ "mf=32.3; # Mass of fel in bomb in grams\n",
+ "u1=125.78; # Internal energy of water from steam table (uf at T1) in kJ/kg\n",
+ "u2=397.88; # Internal energy of water from steam table (uf at T2) in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "Qf=m*(u2-u1)-W+Qout; # From First law of thermodynamics\n",
+ "qf=Qf/(mf*10**-3); # Heat consumption per unit mass of fuel \n",
+ "\n",
+ "#Result\n",
+ "print \"Heat consumption per unit mass of fuel =\",round(qf,0),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat consumption per unit mass of fuel = 41966.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3, Page No:173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V=50; # Volume of water in a tank in litres\n",
+ "T1=120; # Temperature of water at initial state (1) in degree celcius\n",
+ "x1=0.6; # Dryness fraction at initial state (1)\n",
+ "T2=-10; # Temperature of water at final state (2) in degree celcius\n",
+ "vf1=0.00106; # specific volume of water from steam tables at T1 in m^3/kg\n",
+ "vg1=0.8919; # specific volume of water from steam tables at T1 in m^3/kg\n",
+ "v1=(1-x1)*vf1+x1*vg1; # Specific volume of misture of liquid and water at state (1)\n",
+ "m=(V*10**-3)/v1; # Mass of water in the tank\n",
+ "vs2=0.0010891; # Specific volume of saturated ice at T2 in m^3/kg\n",
+ "vg2=466.7; # Specific volume of water vapour at T2 in m^3/kg\n",
+ "v2=v1; # constant specific volume during cooling process\n",
+ "x2=(v2-vs2)/(vg2-vs2); # Dryness fraction at state (2)\n",
+ "uf1=503.5; # Specific internal energy at state (1) in kJ/kg\n",
+ "ug1=2529.3; # Specific internal energy at state (1) in kJ/kg\n",
+ "us2=-354.09; # Specific internal energy at state (2) in kJ/kg\n",
+ "ug2=2361.4; # Specific internal energy at state (2) in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "u1=(1-x1)*uf1+x1*ug1; # Total Specific internal energy at state (1) in kJ/kg\n",
+ "u2=(1-x2)*us2+x2*ug2; # Total Specific internal energy at state (2) in kJ/kg\n",
+ "Q12=m*(u2-u1); # Heat transfer during cooling pocess\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat transfer during cooling pocess = \",round(Q12,1),\"kJ (round off error)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer during cooling pocess = -193.3 kJ (round off error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No:174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V1=0.3; # Initial volume of water upto stop 1 in m^3\n",
+ "p1=1; # Initial pressure of water in bar\n",
+ "x1=0.2; # Dryness fraction at initial state (1)\n",
+ "p2=3; # Pressur required to lift the piston in bar\n",
+ "V4=0.45; # Volume of water upto stop 2 in m^3\n",
+ "vf1=0.001043; # Specific volume at state (1) from steam table in m^3/kg\n",
+ "vg1=1.694; # Specific volume at state (1) from steam table in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "v1=vf1+x1*(vg1-vf1); # Total Specific volume at state (1) from steam table in m^3/kg\n",
+ "m=V1/v1; # Mass of water\n",
+ "v3=V4/m; # Specific volume at stop 2\n",
+ "v2=v1; p3=p2; v4=v3; V3=V4; V2=V1; # From process diagram\n",
+ "# (a)\n",
+ "p4=0.361; # Final Pressure at v4 from steam table in Mpa\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a)\",\"\\nFianl pressure = \",p4,\"MPa\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b)\n",
+ "W14=p2*10**2*(V3-V2); # Work done in process \n",
+ "uf1=417.36; # Specific internal energ at initial state in kJ/kg\n",
+ "ufg1=2088.7; # Specific internal energ at initial state in kJ/kg\n",
+ "u1=uf1+x1*ufg1; # Total Specific internal energr at initial state in kJ.kg\n",
+ "u4=2550.2; # Specific internal energ at final state in kJ/kg\n",
+ "Q14=m*(u4-u1)+W14; # From first law of thermodynamics\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nWork done during the process = \",W14,\"kJ\",\"\\nHeat transfer during the process = \",round(Q14,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "Fianl pressure = 0.361 MPa\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Work done during the process = 45.0 kJ \n",
+ "Heat transfer during the process = 1560.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5, Page No:177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V1=0.01; # Initial Volume of Freon 12 vapour in cylinder in m^3\n",
+ "T1=15; # Initial Temperature of Freon 12 vapour in degree celcius\n",
+ "p1=4.914; # Initial pressure (Psat at T1) in bar\n",
+ "p2=9; # Final pressure of Freon 12 vapour after compression in bar\n",
+ "T2=65; # Final temperature of Freon 12 vapour after compression in degree celcius\n",
+ "Q=-0.5; # Heat lost to surroundings during compresson process in kJ\n",
+ "v1=0.035413; # Initial specific volume of Freon 12 vapour from table in m^3/kg\n",
+ "\n",
+ "#Calculation\n",
+ "m=V1/v1; # Mass of vapour\n",
+ "hg1=193.644; # specific enthalpy of Freon 12 vopour at state 1 in kJ/kg\n",
+ "u1=hg1-(p1*10**2*v1); # Total Specific internal energy at state 1\n",
+ "h2=222.9; # specific enthalpy of Freon 12 vapour at state 2 in kJ/kg\n",
+ "v2=0.022537; # specific volume of Freon 12 vapour at state 2 in m^3/kg\n",
+ "u2=h2-(p2*10**2*v2); # Total Specific internal energy at state 2\n",
+ "W=-m*(u2-u1)+Q; # From first law of thermodynamics\n",
+ "\n",
+ "#Result\n",
+ "print \"Work of compression = \",round(W,2),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression = -7.95 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6, Page No:181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "tS=-10; # initial temperature of ice in degree celcius\n",
+ "ts=0; # Melting temperature of ice in degree celcius\n",
+ "Cs=1.94; # Specific heat of ice in kJ/kg k\n",
+ "m=1000; # Mass of ice in kg\n",
+ "tF=10; # Temperature of water after 24 hours in degree celcius\n",
+ "tf=0; # Freezing temperature of water in degree celcius\n",
+ "Cf=4.1868; # Specific heat of water in kJ/kg K\n",
+ "hsg=335; # Latent heat of fusion of ice in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "Q=m*(Cs*(ts-tS)+hsg+Cf*(tF-tf)); # Heat gain of water\n",
+ "Q_dot=Q/(24*3600); # Rate of cooling\n",
+ "\n",
+ "#Result\n",
+ "print \"Rate of cooling = \",round(Q_dot,3),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of cooling = 4.586 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No:188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T1=300; # Temperature of air at state 1 in Kelvin\n",
+ "T2=500; # Temperature of air at state 2 in Kelvin\n",
+ "m_=28.966; # Molecular weight oh air in kg\n",
+ "Cpoav=1.017; # Average value of specific heat of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a). change in enthalpy\n",
+ "h_=27.43*(T2-T1)+3.09*10**-3*(T2**2-T1**2)-0.2296*10**-6*(T2**3-T1**3); #change in enthalpy during process in kJ/kmol\n",
+ "h=h_/m_; # change in enthalpy during process in kJ/kg\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).change in enthalpy during process = \",round(h,2),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).change in enthalpy\n",
+ "h=Cpoav*(T2-T1); # change in enthalpy in kJ/kg\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).change in enthalpy during process with average specfic heat = \",h,\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).change in enthalpy during process = 205.69 kJ/kg\n",
+ "(b).change in enthalpy during process with average specfic heat = 203.4 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8, Page No:189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=0.1; # mass of nitrogen gas in kg\n",
+ "V1=0.1; # Initial volme of nitrogen gas in m^3\n",
+ "p1=1.2; # Initial pressure of nitrogen gas in bar\n",
+ "V2=0.075; # Final volume of nitrogen gas in m^3\n",
+ "Cpo=1.041; # Specific heat at constant pressure of nitrogen in kJ/kg K\n",
+ "R=0.2969393; # Characteristic gas constant of nitrogen in Kj/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "T1=(p1*10**2*V1)/(m*R); # Initial temperature of nitrogen gas \n",
+ "T2=T1*(V2/V1); # Final temperature of nitrogen gas (constant pressure process)\n",
+ "Q=m*Cpo*(T2-T1); # Heat transfer to surroundings\n",
+ "W=p1*10**2*(V2-V1); # Work done\n",
+ "\n",
+ "#Result\n",
+ "print \"Final Temperature of nitrogen gas = \",round(T2,0),\"K\",\"\\nHeat transfer to surroundings = \",round(Q,1),\"kJ\"\n",
+ "print \"Work done = \",W,\"kJ\",\" The Work is done on the gas\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Temperature of nitrogen gas = 303.0 K \n",
+ "Heat transfer to surroundings = -10.5 kJ\n",
+ "Work done = -3.0 kJ The Work is done on the gas\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9, Page No:190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p=1; # pressure inside piston cylinder arrangement in MPa\n",
+ "# stae 1 = saturated liquid\n",
+ "# state 2 = saturated vapour\n",
+ "# state 3 = superheated vapour\n",
+ "v1=0.001127; # specific volume at state 1 in m^3/kg\n",
+ "v2=0.19444; # specific volume at state 2 in m^3/kg\n",
+ "v3=0.4011; # specific volume at state 3 in m^3/kg\n",
+ "u1=761.68; # specific internal energy at state 1 in kK/kg\n",
+ "u2=2583.6; # specific internal energy at state 2 in kK/kg\n",
+ "u3=3296.8; # specific internal energy at state 3 in kK/kg\n",
+ "h1=762.81; # specific enthalpy at state 1 in kJ/kg\n",
+ "h2=2778.1; # specific enthalpy at state 2 in kJ/kg\n",
+ "h3=3697.9; # specific enthalpy at state 3 in kJ/kg\n",
+ "\n",
+ "#Calculation for (Method I)\n",
+ "w12=p*10**3*(v2-v1); # Work done during process 1-2\n",
+ "w23=p*10**3*(v3-v2); # Work done during process 2-3\n",
+ "wtotal=w12+w23; # Total work done\n",
+ "# Calculation of heat transfer\n",
+ "# Method I\n",
+ "q12=(u2-u1)+w12; # Heat transfer during process 1-2\n",
+ "q23=(u3-u2)+w23; # Heat transfer during process 2-3\n",
+ "qtotal=q12+q23; # Total Heat transfer\n",
+ "\n",
+ "#Results for (Method I)\n",
+ "print \"Work done = \",round(wtotal,0),\"kJ/kg\"\n",
+ "print \"\\n\\nCalculation of Heat Transfer\",\"\\nMethod I\",\"\\nHeat Transfer = \",round(qtotal,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (Method II)\n",
+ "# Method II\n",
+ "q12=h2-h1; # Heat transfer during process 1-2\n",
+ "q23=h3-h2; # Heat transfer during process 2-3\n",
+ "qtotal=q12+q23; # Total Heat transfer\n",
+ "\n",
+ "#Result for (Method II)\n",
+ "print \"\\nMethod II\",\"\\nHeat Transfer = \",round(qtotal,1),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done = 400.0 kJ/kg\n",
+ "\n",
+ "\n",
+ "Calculation of Heat Transfer \n",
+ "Method I \n",
+ "Heat Transfer = 2935.1 kJ/kg\n",
+ "\n",
+ "Method II \n",
+ "Heat Transfer = 2935.1 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10, Page No:191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "#Variable declaration\n",
+ "p1=1; # initial pressure of air in piston cylinder arrangement in bar\n",
+ "T=300; # Temperature of air in piston cylinder arrangement in kelvin\n",
+ "p2=10; # Final pressure of air in piston cylinder arrangement in bar\n",
+ "R=0.287; # Characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "w=R*T*math.log(p1/p2); # Work done\n",
+ "q=w; # From first law of thermodynamics\n",
+ "\n",
+ "#Results\n",
+ "print \"The change in internal energy during the isothermal process is zero\"\n",
+ "print \"Work done = \",round(w,1),\"kJ/kg\",\"\\nHeat transfer = \",round(q,1),\"kJ/kg\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in internal energy during the isothermal process is zero\n",
+ "Work done = -198.3 kJ/kg \n",
+ "Heat transfer = -198.3 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No:195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=65;# (Error in textbook) # Pressure of air at state 1 in bar\n",
+ "v1=0.0135; # Volume of air at state 1 in m^3\n",
+ "v2=0.1; # Volume of air at state 2 in m^3\n",
+ "R=0.287; # Characteristic gas constant of air in kJ/kg K\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Adiabatic process\n",
+ "k=1.4; # Index of adiabatic process\n",
+ "p2=p1*(v1/v2)**k; # Pressure of air at state 2 \n",
+ "T1=p1*10**2*v1/R;# Tempewrature of air at state 1\n",
+ "T2=p2*10**2*v2/R;# Tempewrature of air at state 2\n",
+ "w=R*(T2-T1)/(1-k); # work done\n",
+ "q=0; # Adiabatic expansion process\n",
+ "delta_u=Cvo*(T2-T1); # Change in internal energy of air\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Adiabatic Process\",\"\\nFinal Temperature = \",round(T2,1),\"K\",\"\\nWork done = \",round(w,1),\"kJ\"\n",
+ "print \"Change in internal energy of air = \",round(delta_u,1),\"kJ\",\"\\nHeat Ineraction = \",round(q,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Polytropic process\n",
+ "n=1.3; # Index of adiabatic process\n",
+ "p2=p1*(v1/v2)**n; # Pressure of air at state 2 \n",
+ "T1=p1*10**2*v1/R;# Tempewrature of air at state 1\n",
+ "T2=p2*10**2*v2/R;# Tempewrature of air at state 2\n",
+ "w=R*(T2-T1)/(1-n); # work done\n",
+ "delta_u=Cvo*(T2-T1); # Change in internal energy of air\n",
+ "q=delta_u+w; # Adiabatic expansion process\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Polytropic Process\",\"\\nFinal Temperature = \",round(T2,1),\"K\",\"\\nWork done = \",round(w,1),\"kJ\"\n",
+ "print \"Change in internal energy of air = \",round(delta_u,1),\"kJ\",\"\\nHeat Ineraction = \",round(q,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Isothermal process\n",
+ "T1=p1*10**2*v1/R;# Tempewrature of air at state 1\n",
+ "T2=T1; # Tempewrature of air at state 2\n",
+ "p2=p1*(v1/v2); # Pressure of air at state 2\n",
+ "w=R*T1*math.log (v2/v1); # work done\n",
+ "delta_u=Cvo*(T2-T1); # Change in internal energy of air\n",
+ "q=delta_u+w; # Adiabatic expansion process\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).Isothermal Process\",\"\\nFinal Temperature = \",round(T2,1),\"K\",\"\\nWork done = \",round(w,1),\"kJ\"\n",
+ "print \"Change in internal energy of air = \",round(delta_u,1),\"kJ\",\"\\nHeat Ineraction = \",round(q,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Adiabatic Process \n",
+ "Final Temperature = 137.2 K \n",
+ "Work done = 120.9 kJ\n",
+ "Change in internal energy of air = -120.7 kJ \n",
+ "Heat Ineraction = 0.0 kJ\n",
+ "\n",
+ "\n",
+ "(b).Polytropic Process \n",
+ "Final Temperature = 167.7 K \n",
+ "Work done = 132.1 kJ\n",
+ "Change in internal energy of air = -98.9 kJ \n",
+ "Heat Ineraction = 33.2 kJ\n",
+ "\n",
+ "\n",
+ "(c).Isothermal Process \n",
+ "Final Temperature = 305.7 K \n",
+ "Work done = 175.7 kJ\n",
+ "Change in internal energy of air = 0.0 kJ \n",
+ "Heat Ineraction = 175.7 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13, Page No:201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=10; # mass flow rate of chilled water in kg/s\n",
+ "V1=50; #velocity of chilled water at section 1 in m/s\n",
+ "z1=30; # Elevation of section 1 in m\n",
+ "V2=10; #velocity of chilled water at section 2 in m/s\n",
+ "z2=60; # Elevation of section 2 in m\n",
+ "h1=21; # Enthalpy of chilled water at section 1 in kJ/kg\n",
+ "h2=43; # Enthalpy of chilled water at section 2 in kJ/kg\n",
+ "W=35; # Rate of work done by pump in kW\n",
+ "g=9.80665; # Acceleration due to gravity in m/s^2\n",
+ "\n",
+ "#Calculation \n",
+ "Q=m*(h2-h1)+(m*(V2**2-V1**2)/2000)+(m*g*(z2-z1)/1000)-W; # Steady flow energy equation\n",
+ "\n",
+ "#Result\n",
+ "print \"The rate of Heat Transfer From Building (Error in textbook)= \",round(Q,2),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of Heat Transfer From Building (Error in textbook)= 175.94 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.14, Page No:206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1; # Suction pressure of air in bar\n",
+ "p2=5; # Delivery pressure of air in bar\n",
+ "T1=310; # Suction Temperature of air in kelvin\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "# (a) Polytropic compression\n",
+ "T2=475; # Delivery Temperature of air in kelvin\n",
+ "Q=-0.15; # Heat loss to the cooling water in kW\n",
+ "Wpoly=-5.3; # Power consumption of compressor in kW\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "m=(-Wpoly+Q)/(Cpo*(T2-T1)); # mass flow rate of air from SSSF energy equation\n",
+ "n=1/((1-((math.log (T2/T1))/(math.log (p2/p1))))); # Index of polytropic process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Polytropic compression\",\"\\nmass flow rate of air = \",round(m,3),\"kg/s\",\"\\nIndex of polytropic process = \",round(n,4)\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b) Adiabatic compression\n",
+ "k=1.4; # Index of adiabatic process\n",
+ "Wad=-m*Cpo*T1*((p2/p1)**((k-1)/k)-1); # power consumption of compressor\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Adiabatic compression\",\"\\nPower consumption of compressor = \",round(Wad,2),\"kW\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Difference between specific work\n",
+ "wdiff=(abs(Wad)-abs(Wpoly))/m; # Difference between specific work\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Difference between specific work\",\"\\nDifference between specific work = \",round(wdiff,2),\"kJ/kg (roundoff error)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Polytropic compression \n",
+ "mass flow rate of air = 0.031 kg/s \n",
+ "Index of polytropic process = 1.3608\n",
+ "\n",
+ "(b).Adiabatic compression \n",
+ "Power consumption of compressor = -5.65 kW\n",
+ "\n",
+ "(c).Difference between specific work \n",
+ "Difference between specific work = 11.22 kJ/kg (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.15, Page No:208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "W=500; # Power output from steam turbine in MW\n",
+ "Q=10; # Heat loss to surroundings in MW\n",
+ "p1=12.5; # Pressure of staem at steam turbine inlet in MPa\n",
+ "p2=10; # Pressure of staem at steam turbine outlet in kPa\n",
+ "V1=50; # Velocity of steam at steam turbine inlet in m/s\n",
+ "V2=100; # Velocity of steam at steam turbine outlet in m/s\n",
+ "x2=0.85; # Quality of steam at steam turbine outlet\n",
+ "h1=3341.8; # Specific enthalpy of staem at inlet from steam table in kJ/kg\n",
+ "hf2=191.83; hg2=2584.7;# Specific enthalpies of fluid and steam at outlet from steam table in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "h2=(1-x2)*hf2+x2*hg2;# Specific enthalpy of staem at outlet in kJ/kg\n",
+ "m=(W-Q)*10**3/((h1-h2)+(V1**2-V2**2)/2000); # Mass flow rate of steam\n",
+ "\n",
+ "#Result\n",
+ "print \"Mass flow rate of steam = \",round(m,0),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate of steam = 441.0 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.16, Page No:212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=3; # Pressre of air at state 1 in bar\n",
+ "p2=p1; # constant pressure process\n",
+ "T1=450; # Temperature of air at state 1 in kelvin\n",
+ "T2=1250; # Temperature of air at state 2 in kelvin\n",
+ "T3=1000; # Temperature of air at state 3 in kelvin\n",
+ "V3=50; # Velocity of air at state 3 in m/s\n",
+ "T4=800; # Temperature of air at state 4 in kelvin\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Combustion chamber\n",
+ "q=Cpo*(T2-T1); # Heat added to air\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Combustion chamber\",\"\\nHeat added to air = \",q,\"kJ/kg (round off error)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Turbine \n",
+ "k=1.4; # Index of adiabatic process\n",
+ "w=Cpo*(T2-T3)-V3**2/2000; # Work done \n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Turbine\",\"\\nWork done = \",w,\"kJ/kg (round off error)\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Nozzle\n",
+ "V4=math.sqrt (2*Cpo*10**3*(T3-T4)+V3**2); # Velocity of air leaving the nozzle\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Nozzle\",\"\\nVelocity of air leaving the nozzle = \",round(V4,0),\"m/s (round off error)\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Pressure drop\n",
+ "p3=p2*(T3/T2)**(k/(k-1)); # Pressure of air leaving turbine\n",
+ "p4=p3*(T4/T3)**(k/(k-1)); # Pressure of air leaving nozzle\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Pressure drop\",\"\\nPressure of air leaving turbine = \",round(p3,3),\"bar\"\n",
+ "print \"Pressure of air leaving nozzle = \",round(p4,2),\"bar\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Combustion chamber \n",
+ "Heat added to air = 802.8 kJ/kg (round off error)\n",
+ "\n",
+ "(b).Turbine \n",
+ "Work done = 249.625 kJ/kg (round off error)\n",
+ "\n",
+ "(c).Nozzle \n",
+ "Velocity of air leaving the nozzle = 636.0 m/s (round off error)\n",
+ "\n",
+ "(d).Pressure drop \n",
+ "Pressure of air leaving turbine = 1.374 bar\n",
+ "Pressure of air leaving nozzle = 0.63 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.17, Page No:213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V=1000; # Speed of aircraft in kmph\n",
+ "p1=0.35; # Ambient pressure in bar\n",
+ "T1=258; # Ambient temperature in kelvin\n",
+ "V1=V*1000/3600; # unit conversion kmph into m/s\n",
+ "p=1.01325; # Atmospheric pressure in bar\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "k=1.4; # Index of compression process\n",
+ "\n",
+ "#Calculation\n",
+ "T2=T1+(V1**2)/(2*Cpo*10**3); # The temperature after leaving inlet diffuser\n",
+ "p2=p1*(T2/T1)**(k/(k-1)); # Pressure after leaving inlet diffuser\n",
+ "r=p/p2; # Pressre ratio of compressor required for pressurization\n",
+ "\n",
+ "#Result\n",
+ "print \"The temperature after leaving inlet diffuser = \",round(T2,1),\"K\"\n",
+ "print \"Pressre ratio of compressor required for pressurization = \",round(r,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature after leaving inlet diffuser = 296.4 K\n",
+ "Pressre ratio of compressor required for pressurization = 1.78\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.18, Page No:214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=50; # Pressre of steam at diffuser inlet in kPa\n",
+ "T1=150; # Temperature of steam at diffuser inlet in degree celcius\n",
+ "V1=180; # Velocity of steam at diffuser inlet in m/s\n",
+ "A1=1000; # area of diffuser inlet in cm^2\n",
+ "V2=90; # Velocity of steam at diffuser outlet in m/s\n",
+ "p2=1; # Pressre of steam at diffuser outlet in bar\n",
+ "Q=120; # Heat loss to the surroundings in kW\n",
+ "v1=3.24; # Specific volume of steam from superheated steam table in m^3/kg at inlet\n",
+ "h1=2645.9; # # Specific enthalpy of steam from superheated steam table in m^3/kg at inlet\n",
+ "\n",
+ "#Calculation\n",
+ "m=V1*A1*10**-4/v1; # Mass flow rate of steam\n",
+ "q=Q/m; # Heat transfer per unit mass of steam\n",
+ "h2=q+h1+(V1**2-V2**2)/2000; # Specific enthalpy of steam from SSSF energy equationat outlet\n",
+ "v2=1.704; # Specific volume of steam from superheated steam table in m^3/kg at outlet\n",
+ "A2=m*v2/V2; # Area of diffuser exit and Answer given in the textbook is wrong\n",
+ "\n",
+ "#Result\n",
+ "print \"Area of diffuser exit = \",round(A2*10**4,0),\"cm^2 (Answer was wrong in textbook because that\" \n",
+ "print \"the value considered in the textbook for V2 is incorrect. So there is a difference in solution.)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Area of diffuser exit = 1052.0 cm^2 (Answer was wrong in textbook because that\n",
+ "the value considered in the textbook for V2 is incorrect. So there is a difference in solution.)\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.19, Page No:217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import matrix\n",
+ "from numpy import linalg\n",
+ "\n",
+ "#Variable declaration\n",
+ "p=0.15; # Pressure of Freon-12 gas in MPa\n",
+ "T1=10; # Temperature of Freon-12 gas in degree celcius\n",
+ "T2=35; # Temperature of Freon-12 gas in degree celcius\n",
+ "h1=196.762; # Specific enthalpy of Freon-12 from table at 1 in kJ/kg \n",
+ "h2=69.49; # Specific enthalpy of Freon-12 from table at 2 in kJ/kg \n",
+ "h3=178.54; # Specific enthalpy of Freon-12 from table at 3 in kJ/kg \n",
+ "\n",
+ "#Calculation\n",
+ "# For solving Conservation of mass and SSSF energy equations\n",
+ "A=[[1,-1],[h3,-h2]];\n",
+ "B=[[1] ,[h1]];\n",
+ "M=linalg.solve(A, B) \n",
+ "\n",
+ "#Result\n",
+ "print \"Mass of saturated liquid at 35 oC = \",round(M.item(1),3),\"kg/s\"\n",
+ "print \"Mass of saturated vapour at 0.15 MPa = \",round(M.item(0),3),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of saturated liquid at 35 oC = 0.167 kg/s\n",
+ "Mass of saturated vapour at 0.15 MPa = 1.167 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.20, Page No:219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=15;# Inlet pressure of condenser in kPa\n",
+ "x=0.92; # Quality of steam\n",
+ "ms=25; # mass flow rate of steam in kg/s\n",
+ "d_t=12; # temperature rise of water \n",
+ "Cpw=4.1868; # Specific heat of water in kJ/kg K\n",
+ "hfg=225.94; h4_3=2599.1; # specific enthalpy in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "h1=(1-x)*hfg+x*h4_3; # specific enthalpy \n",
+ "h2=225.94; # specific enthalpy in kJ/kg\n",
+ "Q=ms*(h1-h2); # Heat transfer rate in condenser\n",
+ "mw=Q/(Cpw*d_t); # Mass flow rate of water \n",
+ "\n",
+ "#Result\n",
+ "print \"Heat transfer rate in condenser = \",round(Q,0),\"kW\",\"\\nMass flow rate of water = \",round(mw,1),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate in condenser = 54583.0 kW \n",
+ "Mass flow rate of water = 1086.4 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter6.ipynb b/Thermodynamics/Chapter6.ipynb
new file mode 100755
index 00000000..2e760ba9
--- /dev/null
+++ b/Thermodynamics/Chapter6.ipynb
@@ -0,0 +1,1076 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:009f400f836702cde3e9c0f5d144589b0ec3eb912d883ee490ce810f95fed24c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06:SECOND LAW OF THERMODYNAMICS AND ENTROPY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No:259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "QH=500; # Heat supplied in kJ\n",
+ "QL=200; # Heat rejected in kJ\n",
+ "TH=720; # Resorvior Temperature in kelvin\n",
+ "TL=360; # Resorvior Temperature in kelvin\n",
+ "W=260; # Work developed in kJ\n",
+ "\n",
+ "#Calculation\n",
+ "e_max=1-TL/TH; # maximum efficiency\n",
+ "e_clamied=W/QH; # Efficiency clamied\n",
+ "\n",
+ "#Result\n",
+ "if e_clamied<e_max:\n",
+ " print \"It obeys the second law of thermodynamics.The claim is true\"\n",
+ "else:\n",
+ " print \"It violates the second law of thermodynamics.The claim is False\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "It violates the second law of thermodynamics.The claim is False\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No:260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "QH=325; # Heat supplied in kJ\n",
+ "QL=125; # Heat rejected in kJ\n",
+ "TH=1000; # Resorvior Temperature in kelvin\n",
+ "TL=400; # Resorvior Temperature in kelvin\n",
+ "W=200; # Work developed in kJ\n",
+ "\n",
+ "#Calculation\n",
+ "e_carnot=1-TL/TH; # maximum efficiency\n",
+ "e_clamied=W/QH; # Efficiency clamied\n",
+ "\n",
+ "#Result\n",
+ "print \"e_carnot =\",e_carnot\n",
+ "print \"e_clamied=\",round(e_clamied,3) \n",
+ "if e_carnot==e_clamied:\n",
+ " print \"\\nThe machine is reversible\"\n",
+ "elif e_carnot>e_clamied:\n",
+ " print \"\\nThe machine is irreversible\"\n",
+ "else:\n",
+ " print \"\\nHere e_clamied > e_carnot so the cyclic machine is impossible.\"\n",
+ "\n",
+ "print \"It would be reversible if its thermal efficiency is equal to Carnot efficiency,\"\n",
+ "print \"and irreversible if it is less than Carnot efficiency.\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e_carnot = 0.6\n",
+ "e_clamied= 0.615\n",
+ "\n",
+ "Here e_clamied > e_carnot so the cyclic machine is impossible.\n",
+ "It would be reversible if its thermal efficiency is equal to Carnot efficiency,\n",
+ "and irreversible if it is less than Carnot efficiency.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3, Page No:260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# Air conditioning unit\n",
+ "TL=278; # Operating temperature in kelvin\n",
+ "TH=318; # Operating temperature in kelvin\n",
+ "\n",
+ "#Calculation\n",
+ "COP1=TL/(TH-TL); # COP of Air conditioning unit\n",
+ "QL=1; # For some calculation purpose\n",
+ "W1=QL/COP1; # Work input of Air conditioning unit\n",
+ "# Food refrigeration unit\n",
+ "TL=258; # Operating temperature in kelvin\n",
+ "TH=318; # Operating temperature in kelvin\n",
+ "COP2=TL/(TH-TL); # COP of Food refrigeration unit\n",
+ "W2=QL/COP2; # Work input of Food refrigeration unit\n",
+ "Wper=(W2-W1)/W1; # Increase in work input\n",
+ "\n",
+ "#Result\n",
+ "print \"Increase in work input = \",round(Wper*100,0),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in work input = 62.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No:261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#(a).Summer air conditioning (cooling)\n",
+ "TL=298; # Operating temperature in kelvin\n",
+ "TH=318; # Operating temperature in kelvin\n",
+ "q=0.75; # Heat Transfer from fabric of room per degree of temperature difference in kW\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "QL=q*(TH-TL); # Heat Transfer from fabric of room\n",
+ "COPc=TL/(TH-TL); # COP of Air conditioning unit\n",
+ "W=QL/COPc; # Work input of Air conditioning unit\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Summer air conditioning (cooling)\",\"\\nWork input of Air conditioning unit = \",round(W,0),\"kW\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Winter air conditioning (recerse cycle heating)\n",
+ "TH=293; # Operating temperature in kelvin\n",
+ "TL=(-(-2*q*TH)-math.sqrt ((-2*q*TH)**2-(4*q*(q*TH**2-TH))))/(2*q);# Lowest outdoor Temperature by root\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Winter air conditioning (recerse cycle heating)\",\"\\nLowest outdoor Temperature = \",round(TL,0),\"K\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Summer air conditioning (cooling) \n",
+ "Work input of Air conditioning unit = 1.0 kW\n",
+ "\n",
+ "(b).Winter air conditioning (recerse cycle heating) \n",
+ "Lowest outdoor Temperature = 273.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page No:263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# (a).For the refrigerator \n",
+ "TL=258; # Operating temperature in kelvin\n",
+ "TH=313; # Operating temperature in kelvin\n",
+ "QL=3.5167; # Ton of refrigeration in kW\n",
+ "\n",
+ "#Calculation for(a)\n",
+ "COP=TL/(TH-TL); # COP of Refrigeration unit\n",
+ "W=QL/COP; # Power comsumption of refrigerator\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).For the refrigerator\",\"\\nPower comsumption of refrigerator = \",round(W,2),\"kW\"\n",
+ "\n",
+ "#calculation for (b)\n",
+ "# (b). For the freezer\n",
+ "TL=248; # Operating temperature in kelvin\n",
+ "TH=313; # Operating temperature in kelvin\n",
+ "COP=TL/(TH-TL); # COP of Freezer unit\n",
+ "QL=W*COP; # Refrigeration produced\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b). For the freezer\",\"\\nRefrigeration produced = \",round(QL,3),\"kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).For the refrigerator \n",
+ "Power comsumption of refrigerator = 0.75 kW\n",
+ "\n",
+ "(b). For the freezer \n",
+ "Refrigeration produced = 2.86 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page No:277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Psat=200;#Pressure of water in kPa\n",
+ "Tsat=393.38; # Saturation temperaure at Psat in kelvin\n",
+ "# (i).From the equation Tds=du+pdv \n",
+ "# Following are from steam table at Psat\n",
+ "ufg=2025; # specific internal energy of vapourization in kJ/kg\n",
+ "vg=0.8857; # specific volume in m^3/kg\n",
+ "vf=0.001061; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculation for (i)\n",
+ "sfg=(ufg/Tsat)+(Psat*(vg-vf)/Tsat); # specific entropy of vapourization\n",
+ "\n",
+ "#Result for (i)\n",
+ "print \"(i).From the equation Tds=du+pdv \",\"\\nspecific entropy of vapourization = \",round(sfg,4),\"kJ/kg K\"\n",
+ "\n",
+ "#Calculation for (ii)\n",
+ "# (ii).From the equation Tds=dh-vdp\n",
+ "hfg=2201.9; # Specific enthalpy of vapourization in kJ/kg\n",
+ "sfg=hfg/Tsat; # specific entropy of vapourization\n",
+ "\n",
+ "#Result for (ii)\n",
+ "print \"\\n(ii).From the equation Tds=dh-vdp \",\"\\nspecific entropy of vapourization = \",round(sfg,4),\"kJ/kg K\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i).From the equation Tds=du+pdv \n",
+ "specific entropy of vapourization = 5.5975 kJ/kg K\n",
+ "\n",
+ "(ii).From the equation Tds=dh-vdp \n",
+ "specific entropy of vapourization = 5.5974 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No:277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=1; # Pressure of steam at state 1 in bar\n",
+ "T=473; # Temperature of steam at state 1 in kelvin\n",
+ "\n",
+ "#Calculation for (i)\n",
+ "# (i).Pressure after compression\n",
+ "p2=1.5538; # Pressure after compression at (Psat)T from steam table in MPa\n",
+ "\n",
+ "#Result for (i)\n",
+ "print \"(i).Pressure after compression\",\"\\nPressure after compression = \",p2,\"MPa\"\n",
+ "\n",
+ "#Calcultion for (ii)\n",
+ "# (ii).Heat Transfer and work done during the process\n",
+ "# Following are from steam table \n",
+ "s2=6.4323; # specific entropy of steam at state 2 in kJ/kg K\n",
+ "s1=7.8343; # specific entropy of steam at state 1 in kJ/kg K\n",
+ "u2=2595.3; # specific internal energy of steam at state 2 in kJ/kg \n",
+ "u1=2658.1; # specific internal energy of steam at state 1 in kJ/kg \n",
+ "q=T*(s2-s1); # Heat transfer during the process\n",
+ "w=q-(u2-u1); # Work done during the process\n",
+ "\n",
+ "#Result for (ii)\n",
+ "print \"\\n(ii).Heat Transfer and work done during the process\",\"\\nHeat transfer during the process = \",round(q,0),\"kJ\"\n",
+ "print \"Work done during the process = \",round(w,1),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i).Pressure after compression \n",
+ "Pressure after compression = 1.5538 MPa\n",
+ "\n",
+ "(ii).Heat Transfer and work done during the process \n",
+ "Heat transfer during the process = -663.0 kJ\n",
+ "Work done during the process = -600.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8, Page No:278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=6; # Initial pressure of steam in MPa\n",
+ "T1=500; # Initial temperature of steam in degree celcius\n",
+ "p2=10; # Final pressure of steam in bar\n",
+ "# From steam tables\n",
+ "s1=6.8803; sf2=1.3026; sfg2=6.0568; # specific entropy in kJ/kg K\n",
+ "u1=3082.2; uf2=761.68; ufg2=1822; # specific internal energy in kJ/kg\n",
+ "v1=0.05665; vf2=0.001043; vg2=1.694; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculation\n",
+ "x2=(v1-vf2)/(vg2-vf2);# Quality of steam\n",
+ "u2=uf2+x2*ufg2; # specific internal energy in kJ/kg \n",
+ "s2=sf2+x2*sfg2; # specific entropy in kJ/kg K\n",
+ "s21=s2-s1; # Entropy change\n",
+ "q=u2-u1; # Heat transfer\n",
+ "\n",
+ "#Result\n",
+ "print \"Entropy change of the process = \",round(s21,3),\"kJ/kg\",\"\\nHeat transfer for the process =\",round(q,1),\"kJ\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of the process = -5.379 kJ/kg \n",
+ "Heat transfer for the process = -2260.7 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10, Page No:280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=3; # initial pressure of air in bar\n",
+ "T1=200; # initial temperature of air in degree celcius\n",
+ "p2=1.5; # final pressure of air in bar\n",
+ "T2=105; # final temperature of air in degree celcius\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "delta_s= Cpo*math.log ((T2+273)/(T1+273))- R*math.log (p2/p1) # change in entropy during irreversible process\n",
+ "#The value of p2 is taken as wrong in the textbook\n",
+ "\n",
+ "#Result\n",
+ "print \"change in entropy during irreversible process = \",round(delta_s,4),\"kJ/kg K (Answer in the textbook was wrong)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy during irreversible process = -0.0261 kJ/kg K (Answer in the textbook was wrong)\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11, Page No:281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=5; # Initial pressure of argon gas in bar\n",
+ "T1=30; # Initial temperature of argon gas in degree celcius\n",
+ "v1=1; # Initial volume of argon gas in m^3 by assumption\n",
+ "v2=2*v1; # Final volume of argon gas in m^3\n",
+ "R=8.3144/40; # Characteristic gas constant of argon gas in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "p2=p1*(v1/v2); # Final pressure of argon gas\n",
+ "delta_s= R*math.log (v2/v1); # change in entropy (choosing the reversible isothermal path)\n",
+ "\n",
+ "#Result\n",
+ "print \"Final pressure of argon gas =\",p2,\"bar\"\n",
+ "print \"change in entropy (choosing the reversible isothermal path) = \",round(delta_s,4),\"kJ/kg K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure of argon gas = 2.5 bar\n",
+ "change in entropy (choosing the reversible isothermal path) = 0.1441 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No:284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1; # Atmospheric pressure in bar\n",
+ "T1=348; # Atmospheric temperature in kelvin\n",
+ "V1=800; # Volume of air sucked into the cylinder in cm^3\n",
+ "p2=15; # pressure of air after compression in bar\n",
+ "V2=V1/8; # volume of air after compression in cm^3\n",
+ "p3=50; # pressure of air after heat addition in bar\n",
+ "Cvo=0.7165; # Specific heat at constant volme in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Index of compression process\n",
+ "n=math.log (p2/p1)/math.log (V1/V2); # Index of compression process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Index of compression process\"\n",
+ "print \"Index of compression process = \",round(n,1),\" which is less than 1.4. The compression process is polytropic.\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Change in entropy of air during each process\n",
+ "m=(p1*10**2*V1*10**-6)/(R*T1); # Mass of air in cylinder\n",
+ "T2=T1*(p2/p1)*(V2/V1); # Temperature after compression\n",
+ "T3=T2*(p3/p2); # Temperature after heat addition\n",
+ "delta_s21=m*(Cvo*math.log (T2/T1)+R*math.log (V2/V1)); # change in entropy during compression\n",
+ "delta_s32=m*Cvo*math.log (T3/T2); #change in entropy during heat addition\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Change in entropy of air during each process\"\n",
+ "print \"change in entropy during compression = (Error in textbook)\",round(delta_s21,6),\"kJ/K\"\n",
+ "print \"change in entropy during heat addition = (Error in textbook)\",round(delta_s32,6),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Heat transfer during polytropic compression process\n",
+ "k=1.4;# Index of isentropic preocess\n",
+ "Q=m*Cvo*((k-n)/(1-n))*(T2-T1); # Heat transfer during polytropic compression process\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Heat transfer during polytropic compression process\"\n",
+ "print \"Heat transfer during polytropic compression process = (Error in textbook)\",round(Q,4),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Index of compression process\n",
+ "Index of compression process = 1.3 which is less than 1.4. The compression process is polytropic.\n",
+ "\n",
+ "(b).Change in entropy of air during each process\n",
+ "change in entropy during compression = (Error in textbook) -0.000117 kJ/K\n",
+ "change in entropy during heat addition = (Error in textbook) 0.000691 kJ/K\n",
+ "\n",
+ "(c).Heat transfer during polytropic compression process\n",
+ "Heat transfer during polytropic compression process = (Error in textbook) -0.0565 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No:287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.3; # initial pressure of ateam in MPa\n",
+ "T1=350; # Initial temperature of steam in degree celcius\n",
+ "# following are the values taken from steam table for initial state \n",
+ "v1=0.9535; # specific volume in m^3/kg\n",
+ "u1=2886.2; # specific internal energy in kJ/kg\n",
+ "s1=7.868; # specific entropy in kJ/kg K\n",
+ "v2=2*v1; # final specific volume of steam\n",
+ "u2=u1;\n",
+ "# following are the values taken from steam table final state\n",
+ "T2=349; # Final temperature of steam in degree celcius\n",
+ "p2=0.167; # Final pressure of ateam in MPa\n",
+ "s2=8.164; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "delta_s=s2-s1; # Entropy generation\n",
+ "LW=(T1+T2)/2 * delta_s; # Lost work\n",
+ "\n",
+ "#Result\n",
+ "print \"Entropy Generation =\",round(delta_s,3),\"kJ/kg K\",\"\\nLost work = \",round(LW,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy Generation = 0.296 kJ/kg K \n",
+ "Lost work = 103.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No:291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1; # Mass of water in kg\n",
+ "T1=300; # Temperature of water in kelvin\n",
+ "C=4.1868; # Specific heat in kJ/kg K\n",
+ "# (a). Heat Transfer\n",
+ "T2=500; # Temperature of heat reservoir in kelvin\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "Q=m*C*(T2-T1); # Heat transfer\n",
+ "del_Swater=m*C*math.log (T2/T1); # Entropy change of water\n",
+ "del_Sreservoir=-Q/T2; # Entropy change of reservoir\n",
+ "del_Suniverse=del_Swater+del_Sreservoir; # Entropy change of universe\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Heat Transfer\",\"\\nEntropy change of universe =\",round(del_Suniverse,4),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Heat Transfer in each reservoir\n",
+ "T2=400; # Temperature of intermediate reservoir in kelvin\n",
+ "T3=500; # Temperature of heat reservoir in kelvin\n",
+ "Q=m*C*(T3-T2); # Heat transfer\n",
+ "del_Swater=m*C*(math.log (T2/T1)+math.log (T3/T2)); # Entropy change of water\n",
+ "del_SreservoirI=-Q/T2; # Entropy change of reservoir I\n",
+ "del_SreservoirII=-Q/T3; # Entropy change of reservoir II\n",
+ "del_Suniverse=del_Swater+del_SreservoirI+del_SreservoirII; # Entropy change of universe\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Heat Transfer in each reservoir\",\"\\nEntropy change of universe =\",round(del_Suniverse,5),\"kJ/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Heat Transfer \n",
+ "Entropy change of universe = 0.464 kJ/K\n",
+ "\n",
+ "(b).Heat Transfer in each reservoir \n",
+ "Entropy change of universe = 0.25466 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.16, Page No:292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=1; # Mass of saturated steam in kg\n",
+ "T=100; # Teamperature of steam in degree celcius\n",
+ "T0=303; # temperature of Surroundings in kelvin\n",
+ "hfg=2257; # Latent heat of evaporation in kJ/kg\n",
+ "sfg=6.048; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Entropy change\n",
+ "Q=m*hfg; # Heat transfer\n",
+ "del_Ssystem=-m*sfg; # Change of entropy of system\n",
+ "del_Ssurr=Q/T0; # Change of entropy of surroundings\n",
+ "del_Suniverse=del_Ssystem+del_Ssurr; # Change of entropy of universe\n",
+ "\n",
+ "#Ressult for (a)\n",
+ "print \"(a).Entropy change\",\"\\nChange of entropy of system =\",del_Ssystem,\"kJ/K\"\n",
+ "print \"Change of entropy of surroundings =\",round(del_Ssurr,4),\"kJ/K\"\n",
+ "print \"Change of entropy of universe =\",round(del_Suniverse,4),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Effect of heat transfer\n",
+ "del_Suniverse=0; # process is reversible\n",
+ "del_Ssurr=del_Suniverse-del_Ssystem; #Change of entropy of surroundings\n",
+ "QH=hfg; # Heat transfer from the condensing steam to reversible heat engine\n",
+ "QL=T0*del_Ssurr; # Heat receiveded by the surroundins reversible heat engine\n",
+ "W=QH-QL; #work output of reversible heat engine\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Effect of heat transfer\",\"\\nHeat transfer from the condensing steam to reversible heat engine =\",QH,\"kJ\"\n",
+ "print \"Heat receiveded by the surroundins reversible heat engine =\",round(QL,1),\"kJ\"\n",
+ "print \"work output of reversible heat engine =\",round(W,1),\"kJ\"\n",
+ "print \"Difference between QH & QL is converted into work output in a reversible cyclic process\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Entropy change \n",
+ "Change of entropy of system = -6.048 kJ/K\n",
+ "Change of entropy of surroundings = 7.4488 kJ/K\n",
+ "Change of entropy of universe = 1.4008 kJ/K\n",
+ "\n",
+ "(b).Effect of heat transfer \n",
+ "Heat transfer from the condensing steam to reversible heat engine = 2257 kJ\n",
+ "Heat receiveded by the surroundins reversible heat engine = 1832.5 kJ\n",
+ "work output of reversible heat engine = 424.5 kJ\n",
+ "Difference between QH & QL is converted into work output in a reversible cyclic process\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No:293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1; # Mass of ice in kg\n",
+ "T1=258;# Temperature of ice in kelvin\n",
+ "Tm=273; # Melting point of ice in kelvin\n",
+ "T2=303; # temperature of Surroundings in kelvin\n",
+ "Cpice=2.095; # Specific heat of ice in kJ/kg K\n",
+ "hsg=333.5; # Latent heat of fusion in kJ/kg\n",
+ "Cpw=4.1868; # Specific heat of water in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Change of entropy\n",
+ "Q=m*(Cpice*(Tm-T1)+hsg+Cpw*(T2-Tm));# Heat transfer\n",
+ "del_Ssystem=m*((Cpice*math.log (Tm/T1))+(hsg/Tm)+(Cpw*math.log (T2/Tm)));# Change of entropy of system\n",
+ "del_Ssurr=-Q/T2; # Change of entropy of surroundings\n",
+ "del_Suniverse=del_Ssystem+del_Ssurr; # Change of entropy of universe\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Entropy change\",\"\\nChange of entropy of system =\",round(del_Ssystem,4),\"kJ/K\"\n",
+ "print \"Change of entropy of surroundings =\",round(del_Ssurr,4),\"kJ/K\"\n",
+ "print \"Change of entropy of universe =\",round(del_Suniverse,4),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The minimum work of restoring water back to ice\n",
+ "QL=Q; # Refrigerating effect\n",
+ "W=T2*del_Ssystem-QL; # The minimum work of restoring water back to ice\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The minimum work of restoring water back to ice = \",round(W,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Entropy change \n",
+ "Change of entropy of system = 1.7765 kJ/K\n",
+ "Change of entropy of surroundings = -1.6189 kJ/K\n",
+ "Change of entropy of universe = 0.1576 kJ/K\n",
+ "\n",
+ "(b).The minimum work of restoring water back to ice = 47.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No:297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "TA=323;# Temperature at section A in kelvin\n",
+ "PA=125; # Pressure at section A in kPa\n",
+ "TB=287;# Temperature at section B in kelvin\n",
+ "PB=100; # Pressure at section B in kPa\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "SBA=(Cpo*math.log (TB/TA))-(R*math.log (PB/PA)); # Change in entropy\n",
+ "\n",
+ "#Result\n",
+ "print \"Change in entropy from B to A =\",SBA,\"kJ/kg (Error in Textbook)\",\"\\nHence SA>SB. Therefore B to A\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy from B to A = -0.054541503612 kJ/kg (Error in Textbook) \n",
+ "Hence SA>SB. Therefore B to A\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No:298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=12.5; # Pressure of steam at inlet in MPa\n",
+ "T1=500; # Temperature of steam at inlet in degree celcius\n",
+ "V1=50; # Velocity of steam at inlet in m/s\n",
+ "p2=10; # Pressure of steam at outlet in kPa\n",
+ "V2=100; # Velocity of steam at outlet in m/s\n",
+ "# (a).Actual expansion\n",
+ "x2=0.85; # Quality of steam\n",
+ "# From steam table\n",
+ "h1=3341.8; hf2=191.83; hg2=2584.7; # specific enthalpy in kJ/kg \n",
+ "s1=6.4618; sf2=0.6493; sfg2=7.5009; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "h2a=(1-x2)*hf2+x2*hg2; # specific enthalpy in kJ/kg \n",
+ "wa=(h1-h2a)+((V1**2-V2**2)/2000); # Actual work output\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Actual work output of turbine = \",round(wa,2),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Reversible adiabatic expansion\n",
+ "x2s=(s1-sf2)/sfg2; # Quality of steam after reversible adiabatic expansion\n",
+ "h2s=(1-x2s)*hf2+x2s*hg2; # specific enthalpy in kJ/kg \n",
+ "ws=(h1-h2s)+((V1**2-V2**2)/2000); # Reversible adiabatic work output\n",
+ "L=ws-wa; # Lost of work\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Reversible adiabatic expansion\",\"\\nReversible adiabatic work output = \",round(ws,1),\"kJ/kg\"\n",
+ "print \"Lost of work due to irreversibity of expansion process =\",round(L,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Entropy Generation\n",
+ "s2a=sf2+x2*sfg2; # actual specific entropy in kJ/kg K\n",
+ "Sgen=s2a-s1; # Entropy generation\n",
+ "\n",
+ "#Reult for (c)\n",
+ "print \"\\n(c).Entropy Generation =\",round(Sgen,4),\"kJ/kg K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Actual work output of turbine = 1112.28 kJ\n",
+ "\n",
+ "(b).Reversible adiabatic expansion \n",
+ "Reversible adiabatic work output = 1292.0 kJ/kg\n",
+ "Lost of work due to irreversibity of expansion process = 179.7 kJ/kg\n",
+ "\n",
+ "(c).Entropy Generation = 0.5633 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No:302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.1; # pressure at state 1 in MPa\n",
+ "p2=6; # Pressure at state 2 in MPa\n",
+ "# (a).Pump work for water\n",
+ "vf1=0.001043; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "wp=-vf1*(p2-p1)*10**3; # Pump work for water\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Pump work for water =\",round(wp,2),\"kJ\"\n",
+ "\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).For steam\n",
+ "h1=2675.5;# specific enthalpy in kJ/kg \n",
+ "s1=7.3595;# specific entropy in kJ/kg K\n",
+ "# From superheated steam table\n",
+ "t2=675; # Temperature at state 2 in degree celcius\n",
+ "h2=3835.3;# specific enthalpy in kJ/kg \n",
+ "\n",
+ "#Calculation for (b)\n",
+ "wc=-(h2-h1); # Compressor work for steam\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).Compressor work for steam =\",wc,\"kJ/kg\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Pump work for water = -6.15 kJ\n",
+ "(b).Compressor work for steam = -1159.8 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No:303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "# (a).Restoring to initial state by throttling process\n",
+ "T1=303; #Temperature of air at state 1 in kelvin\n",
+ "p1=1; #Pressure of air at state 1 in bar\n",
+ "p2=5; #Pressure of air at state 2 in bar\n",
+ "p3=1;#Pressure of air at state 3 in bar\n",
+ "T3=303; #Temperature of air at state 3 in kelvin\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "k=1.4; # Index of reversible adiabatic compression\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "T2=T1*(p2/p1)**((k-1)/k); # Temperature after reversible adiabatic compression\n",
+ "w12=Cpo*(T2-T1); # Work of reversible adiabatic compression\n",
+ "s21=0; # Entropy change of air\n",
+ "s32=-R*math.log (p3/p2); # Entropy change \n",
+ "s31=s32; # Net entropy change of air\n",
+ "d_Ssurr=0; # Entropy change of surroundings because There is no heat transfer\n",
+ "d_Suniv=s31+d_Ssurr; # Net Entropy change of universe\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Restoring to initial state by throttling process\",\"\\nWork of reversible adiabatic compression = \",round(w12,1),\"kJ/kg\"\n",
+ "print \"Net Entropy change of universe = \",round(d_Suniv,4),\"kJ/kg K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Restoring to initial state by by completing cycle\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "d_Ssystem=0; # Entropy change of systrem is zero because it is cyclic process\n",
+ "q31=Cpo*(T2-T3); # Heat rejected to the surroundings\n",
+ "d_Ssurr=q31/T0; # Entropy change of surroundings\n",
+ "d_Suniv=d_Ssystem+d_Ssurr; # Increase in entropy of the universe\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Restoring to initial state by by completing cycle\",\"\\nNet Entropy change of universe = \",round(d_Suniv,3),\"kJ/kg K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Restoring to initial state by throttling process \n",
+ "Work of reversible adiabatic compression = 177.5 kJ/kg\n",
+ "Net Entropy change of universe = 0.4619 kJ/kg K\n",
+ "\n",
+ "(b).Restoring to initial state by by completing cycle \n",
+ "Net Entropy change of universe = 0.596 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter7.ipynb b/Thermodynamics/Chapter7.ipynb
new file mode 100755
index 00000000..a9e9200a
--- /dev/null
+++ b/Thermodynamics/Chapter7.ipynb
@@ -0,0 +1,932 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0bbd88c617eea37997c2d1895d18307cb6167940684ace795d89722f10167f53"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7:COMBINED FIRST AND SECOND LAWS APPLICATION TO PROCESSES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1, Page No:316"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1; # Initial pressure of fluid in MPa\n",
+ "T1=250; # Initial temperture of fluid in degree celcius\n",
+ "V=0.28; # Volume of container in m^3\n",
+ "p2=0.35; # Initial pressure of the fluid in MPa\n",
+ "# (a).Water\n",
+ "v1=0.2327; # specific volume of vapour from steam table at state 1 in m^3/kg\n",
+ "v2=v1; # constant volume process\n",
+ "vf2=0.001079; vfg2=0.5232; # specific volume of vapour from steam table at state 2 in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "m=V/v1; # mass of steam\n",
+ "x2=(v2-vf2)/vfg2; # quality of steam at state 2\n",
+ "t2=138.88; # Final temperature of fluid in degree celcius (saturation temperature at p2)\n",
+ "# following are the values taken from steam tables\n",
+ "u1=2709.9; # specific internal energy at state 1 in kJ/kg\n",
+ "s1=6.9247; # Specific entropy at state 1 in kJ/kg K\n",
+ "uf2=582.95; ug2=2548.9; # specific internal energy at state 2 in kJ/kg\n",
+ "sf2=1.7245; sg2=6.9405; # Specific entropy at state 2 in kJ/kg K\n",
+ "u2=(1-x2)*uf2+x2*ug2; # specific internal energy at state 2 \n",
+ "s2=(1-x2)*sf2+x2*sg2; # specific enropy at state 2 \n",
+ "Q=m*(u2-u1); # Heat transferred\n",
+ "S21=m*(s2-s1); # Entropy change\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Water\",\"Final Temperature = \",t2,\"oC\",\"\\nHeat transferred = \",round(Q,3),\"kJ (answer mentioned in the textbook is wrong)\"\n",
+ "print \"Entropy change = \",round(S21,3),\"kJ/kg K (round off error)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "m=(p1*10**3*V)/(R*(T1+273)); # Mass of air\n",
+ "T2=(p2/p1)*(273+T1); # Final temperature of air\n",
+ "Q=m*Cvo*(T2-(T1+273)); # Heat transferred\n",
+ "S21=m*Cvo*math.log (T2/(273+T1)); # Change in entropy\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Air\",\"Final Temperature = \",round(T2,0),\"oC\",\"\\nHeat transferred = \",round(Q,0),\"kJ (roundoff error)\"\n",
+ "print \"Entropy change = \",round(S21,3),\"kJ/kg K (round off error)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Water Final Temperature = 138.88 oC \n",
+ "Heat transferred = -1512.051 kJ (answer mentioned in the textbook is wrong)\n",
+ "Entropy change = -3.479 kJ/kg K (round off error)\n",
+ "\n",
+ "(b).Air Final Temperature = 183.0 oC \n",
+ "Heat transferred = -454.0 kJ (roundoff error)\n",
+ "Entropy change = -1.403 kJ/kg K (round off error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No:319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1.0021; # Initial pressure of the fluid in MPa\n",
+ "T1=180; # Initial temperature of the fluid in degree celcius\n",
+ "m=0.5; # Mass of the fluid in kg\n",
+ "p2=p1; # Constant pressure process\n",
+ "# (a).Steam\n",
+ "x1=0.8; # Quality of the steam at state 1\n",
+ "# Following are the values taken from steam table \n",
+ "vf1=0.001127; vfg1=0.1929; # specific volume of the steam in m^3/kg\n",
+ "hf1=763.2; hfg1=2015; # specific enthalpy in kJ/kg \n",
+ "sf1=2.1396; sfg1=4.4460; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "v1=vf1+x1*vfg1; # specific volume in m^3/kg\n",
+ "h1=hf1+x1*hfg1; # specific enthalpy in kJ/kg \n",
+ "s1=sf1+x1*sfg1; # specific entropy in kJ/kg K\n",
+ "v2=2*v1; # Final volume of the fluid\n",
+ "t2=410.5; # Final temperature of steam in degree celcius (from superheated steam table)\n",
+ "h2=3286.4; # specific enthalpy in kJ/kg \n",
+ "s2=7.525; # specific entropy in kJ/kg K\n",
+ "S21=m*(s2-s1); # Change in entropy\n",
+ "W=m*p1*10**3*(v2-v1); # Work done\n",
+ "Q=m*(h2-h1); # Heat transferred\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"Final Temperature = \",t2+273,\"K\",\"\\nChange in entropy = \",S21,\"kJ/K (Error in textbook)\"\n",
+ "print \"Work done = \",round(W,1),\"kJ\",\"\\nHeat transferred = \",Q,\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "V1=m*R*(T1+273)/(p1*10**3); # Initil volume\n",
+ "V2=2*V1; # Final volume\n",
+ "T2=(T1+273)*V2/V1; # Final temperature\n",
+ "S21=m*Cpo*math.log (V2/V1); # Change in entropy\n",
+ "W=p1*10**3*(V2-V1); # Work done\n",
+ "Q=m*Cpo*(T2-(T1+273));# Heat transferred\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Air\",\"Final Temperature = \",T2,\"K\",\"\\nChange in entropy = \",round(S21,3),\"kJ/K\"\n",
+ "print \"Work done = \",round(W,0),\"kJ\",\"\\nHeat transferred = \",round(Q,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam Final Temperature = 683.5 K \n",
+ "Change in entropy = 0.9143 kJ/K (Error in textbook)\n",
+ "Work done = 77.9 kJ \n",
+ "Heat transferred = 455.6 kJ\n",
+ "\n",
+ "(b).Air Final Temperature = 906.0 K \n",
+ "Change in entropy = 0.348 kJ/K\n",
+ "Work done = 65.0 kJ \n",
+ "Heat transferred = 227.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No:321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.5; # Mass of the fluid in kg\n",
+ "p1=1; # Initial pressure of fluid in bar\n",
+ "T1=150; # Initial temperture of fluid in degree celcius\n",
+ "v2=0.3; # Final specific volume in m^3/kg\n",
+ "# (a).Steam\n",
+ "# Following are the values taken from steam table \n",
+ "u1=2582.8; # specific internal energy in kJ/kg\n",
+ "s1=7.6134; # specific entropy in kJ/kg K\n",
+ "vf2=0.001091; vfg2=0.3917; # specific volume of the steam in m^3/kg\n",
+ "sf2=1.8418; sfg2=4.9961; # specific entropy in kJ/kg K\n",
+ "uf2=631.7; ufg2=1927.8; # specific internal energy in kJ/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "x2=(v2-vf2)/vfg2; # Quality of steam at state 2\n",
+ "s2=sf2+x2*sfg2; # specific entropy in kJ/kg K\n",
+ "u2=uf2+x2*ufg2; # specific internal energy in kJ/kg\n",
+ "S21=m*(s2-s1); # Change in entropy\n",
+ "U21=m*(u2-u1); # Change in internal energy\n",
+ "Q=(T1+273)*(S21); # Heat transferred\n",
+ "W=Q-U21; # Work done\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"\\nChange in internal energy = \",round(U21,0),\"kJ\"\n",
+ "print \"Change in entropy = \",round(S21,4),\"kJ/K\",\"\\nWork done = \",round(W,1),\"kJ\",\"\\nHeat transferred = \",round(Q,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "U21=0; # From fig 7.6\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "v1=(R*(T1+273))/(p1*10**2); # initial specific volume\n",
+ "S21=m*R*math.log (v2/v1); # Change in entropy\n",
+ "Q=(T1+273)*(S21); # Heat transferred\n",
+ "W=Q; # Work done\n",
+ "\n",
+ "#Result for(b)\n",
+ "print \"\\n(b).Air\",\"\\nChange in internal energy = \",round(U21,0),\"kJ\"\n",
+ "print \"Change in entropy = \",round(S21,4),\"kJ/K\",\"\\nWork done = \",round(W,1),\"kJ\",\"\\nHeat transferred = \",round(Q,1),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam \n",
+ "Change in internal energy = -720.0 kJ\n",
+ "Change in entropy = -2.9386 kJ/K \n",
+ "Work done = -523.0 kJ \n",
+ "Heat transferred = -1243.0 kJ\n",
+ "\n",
+ "(b).Air \n",
+ "Change in internal energy = 0.0 kJ\n",
+ "Change in entropy = -0.6018 kJ/K \n",
+ "Work done = -254.6 kJ \n",
+ "Heat transferred = -254.6 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4, Page No:323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=1.5; # Mass of the fluid in kg\n",
+ "p1=1.6; # Initial pressure of fluid in MPa\n",
+ "T1=250; # Initial temperture of fluid in degree celcius\n",
+ "p2=150; # Initial pressure of the fluid in kPa\n",
+ "# (a).Steam\n",
+ "# Following are the values taken from steam table \n",
+ "# state 1 is superheated\n",
+ "u1=2692.3; # specific internal energy in kJ/kg\n",
+ "s1=6.6732; # specific entropy in kJ/kg K\n",
+ "v1=0.14184; # specific volume of the steam in m^3/kg\n",
+ "# State 2 is wet (s1=s2<sg2)\n",
+ "T2=111.37; # Final temperature of steam in degree celcius\n",
+ "sf2=1.4336; sfg2=5.7897; # specific entropy in kJ/kg K\n",
+ "uf2=466.94; ufg2=2052.7; # specific internal energy in kJ/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "x2=(s1-sf2)/sfg2; # Quality of steam at state 2\n",
+ "u2=uf2+x2*ufg2; # specific internal energy in kJ/kg\n",
+ "W=-m*(u2-u1);# Work done\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"\\nFinal temperature of steam =\",T2+273,\"K\",\"\\nWork done = \",round(W,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "k=1.4; # index of reversible adiabatic process\n",
+ "T2=(T1+273)*((p2*10**-3)/p1)**((k-1)/k); # Final temperature of air\n",
+ "W=-m*Cvo*(T2-(T1+273)); # Work done\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).Air\",\"\\nFinal temperature of steam =\",round(T2,1),\"K\",\"\\nWork done = \",round(W,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam \n",
+ "Final temperature of steam = 384.37 K \n",
+ "Work done = 551.5 kJ\n",
+ "(b).Air \n",
+ "Final temperature of steam = 265.9 K \n",
+ "Work done = 276.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "`Example 7.5, Page No:325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.5; # Mass of the fluid in kg\n",
+ "p1=1.6; # Initial pressure of fluid in MPa\n",
+ "T1=250; # Initial temperture of fluid in degree celcius\n",
+ "p2=150; # Initial pressure of the fluid in kPa\n",
+ "n=1.25; # Index of polytropic process\n",
+ "# (a).Steam\n",
+ "# Following are the values taken from steam table \n",
+ "# state 1 is superheated\n",
+ "u1=2692.3; # specific internal energy in kJ/kg\n",
+ "s1=6.6732; # specific entropy in kJ/kg K\n",
+ "v1=0.14184; # specific volume of the steam in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "v2=v1*(p1/(p2*10**-3))**(1/n); # specific volume of the steam at state 2\n",
+ "# State 2 is wet \n",
+ "T2=111.37; # Final temperature of steam in degree celcius\n",
+ "vf2=0.0010531; vfg2=1.1582; # specific volume of the steam in m^3/kg\n",
+ "x2=(v2-vf2)/vfg2; # Quality of steam at state 2\n",
+ "sf2=1.4336; sfg2=5.7897; # specific entropy in kJ/kg K\n",
+ "uf2=466.94; ufg2=2052.7; # specific internal energy in kJ/kg\n",
+ "s2=sf2+x2*sfg2; # specific entropy in kJ/kg K\n",
+ "u2=uf2+x2*ufg2; # specific internal energy in kJ/kg\n",
+ "W=m*((p2*v2)-(p1*10**3*v1))/(1-n); # Work done\n",
+ "Q=m*(u2-u1)+W; # Heat ttransferred\n",
+ "S21=m*(s2-s1); # Change in entropy\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"\\nFinal Temperature = \",T2+273,\"K\",\"\\nChange in entropy = \",round(S21,1),\"kJ/K\"\n",
+ "print \"Work done = \",round(W,0),\"kJ\",\"\\nHeat transferred = \",round(Q,0),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "T2=(T1+273)*((p2*10**-3)/p1)**((n-1)/n); # Final temperature of air\n",
+ "W=m*R*(T2-(T1+273))/(1-n); # Work done\n",
+ "Q=m*Cvo*(T2-(T1+273))+W; # Heat transferred\n",
+ "S21=m*(Cvo+R/(1-n))*math.log (T2/(T1+273)); # Change in entropy\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Air\",\"\\nFinal Temperature = \",round(T2,0),\"K\",\"\\nChange in entropy = \",round(S21,3),\"kJ/K\"\n",
+ "print \"Work done = \",round(W,0),\"kJ\",\"\\nHeat transferred = \",round(Q,1),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam \n",
+ "Final Temperature = 384.37 K \n",
+ "Change in entropy = -0.8 kJ/K\n",
+ "Work done = 514.0 kJ \n",
+ "Heat transferred = -322.0 kJ\n",
+ "\n",
+ "(b).Air \n",
+ "Final Temperature = 326.0 K \n",
+ "Change in entropy = 0.306 kJ/K\n",
+ "Work done = 340.0 kJ \n",
+ "Heat transferred = 127.7 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6, Page No:335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=1; # Massflow rate of the steam in kg/s\n",
+ "p1=3.5; # Pressure at inlet in MPa\n",
+ "T1=400; # Temperature at inlet in degree celcius\n",
+ "V1=250; # Velocity of stesm at inlet in m/s\n",
+ "p2=50; # Pressure at outlet in kPa\n",
+ "T2=100; # Temperature at outlet in degree celcius\n",
+ "V2=30; # Velocity of stesm at outlet in m/s\n",
+ "# For actual expansion in the turbine\n",
+ "h1=3222.3; h2=2682.5; # specific enthalpy in kJ/kg at inlet and exit\n",
+ "\n",
+ "#Calculation\n",
+ "wa=h1-h2+(V1**2-V2**2)/2000; # Work done\n",
+ "W=m*wa; # Power output\n",
+ "# For reversible adiabatic expansion\n",
+ "# Following are the values taken from steam table \n",
+ "s1=6.8405; # specific entropy in kJ/kg K\n",
+ "s2s=s1; # Isentropic expansion\n",
+ "sf2=1.091; sfg2=6.5029; # specific entropy in kJ/kg K\n",
+ "hf2=340.49; hfg2=2305.4; # specific enthalpy in kJ/kg\n",
+ "x2s=(s1-sf2)/sfg2; # Quality of steam at state 2\n",
+ "h2s=hf2+x2s*hfg2; # specific enthalpy in kJ/kg\n",
+ "ws=h1-h2s+(V1**2-V2**2)/2000; # Isentropic Work done\n",
+ "eff_isen=wa/ws; # Isentropic efficiency of the turbine\n",
+ "\n",
+ "#Result\n",
+ "print \"Power output of the turbine = \",round(W,0),\"kW (Error in textbook)\"\n",
+ "print \"Isentropic efficiency of the turbine = \",round(eff_isen*100,1),\"% (Error in textbook)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power output of the turbine = 571.0 kW (Error in textbook)\n",
+ "Isentropic efficiency of the turbine = 65.3 % (Error in textbook)\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7, Page No:336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1; # Massflow rate of the steam in kg/s\n",
+ "p1=3.5; # Pressure at inlet in bar\n",
+ "T1=160; # Temperature at inlet in degree celcius\n",
+ "p2=1; # Pressure at outlet in bar\n",
+ "Cpo=1.005; # Specific heat at constant pressure in kJ/kg K\n",
+ "eff_isen=0.85; # Isentropic efficiency of the turbine\n",
+ "k=1.4; # index of isentropic process\n",
+ "\n",
+ "#Calculation\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k); # Final temperature after isentropic expansion\n",
+ "Ws=m*Cpo*((T1+273)-T2s); # Isentropic power developed\n",
+ "Wa=eff_isen*Ws; # Actual power developed\n",
+ "T2=(T1+273)-(Wa/(m*Cpo)); # Final temperature after expansion\n",
+ "\n",
+ "#Result\n",
+ "print \"Actual power developed =\",round(Wa,0),\"kW (Error in textbook)\",\n",
+ "print \"\\nFinal temperature after expansion = \",round(T2,1),\"K(Roundoff error)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Actual power developed = 111.0 kW (Error in textbook) \n",
+ "Final temperature after expansion = 322.3 K(Roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8, Page No: 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=0.05; # mass flowrate of Freon 12 in kg/s\n",
+ "p1=300; # Pressure of Freon 12 at inlet in kpa\n",
+ "t1=5; # Temperature of Freon 12 at inlet in degree celcius\n",
+ "p2=1.2; # Pressure of Freon 12 at outlet in MPa\n",
+ "t2=80; # Temperature of Freon 12 at outlet in degree celcius\n",
+ "W=-2.3; # Power consumption of compressor in kW\n",
+ "# (a).Heat transfer from the body of compressor to environment\n",
+ "# From the table of properties of Freon 12\n",
+ "h1= 190.8; h2=230.4; # specific enthalpy in kJ/kg \n",
+ "s1=0.71; s2=0.7514 # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "Q=m*(h2-h1)+W; # Heat transfer \n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Heat transfer from the body of compressor to environment =\",Q,\"kW\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Adiabatic efficiency of the compressor\n",
+ "# For adiabatic compression p2=1.2Mpa,s2s=s1\n",
+ "t2s=61.7;# Temperature of Freon 12 at outlet in degree celcius\n",
+ "h2s=216.14; # specific enthalpy in kJ/kg \n",
+ "ws=(h2s-h1); # Reversible adiabatic work\n",
+ "wa=W/m; # Actual work\n",
+ "eff_com=abs (ws/wa); # Adiabatic efficiency\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Adiabatic efficiency of the compressor = \",round(eff_com*100,0),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Heat transfer from the body of compressor to environment = -0.32 kW\n",
+ "\n",
+ "(b).Adiabatic efficiency of the compressor = 55.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9, Page No:340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=1; # Pressure of air at inlet of compressor in bar\n",
+ "T1=30; # Temperature of air at inlet of compressor in degree celcius\n",
+ "p2=12; # Delivery pressure of air in bar\n",
+ "T2=400; # Temperature of air at inlet of compressor in degree celcius\n",
+ "V2=90; # Velocity of air at exit in m/s\n",
+ "w=3740; # Power input to compressor in kW\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "wa=Cpo*(T2-T1)+V2**2/2000; # Actual specific work input\n",
+ "m=w/wa; # Mass flow rate of air\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k);# Isentropic discharge temperature\n",
+ "ws=Cpo*(T2s-(T1+273))+V2**2/2000; # Isentropic work\n",
+ "eff_com=ws/wa; # Isentrpic efficiency\n",
+ "\n",
+ "#Result\n",
+ "print \"Isentropic discharge temperature = \",round(T2s,1),\"K\",\"\\nIsentrpic efficiency of compressor =\",round(eff_com*100,0),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Isentropic discharge temperature = 616.3 K \n",
+ "Isentrpic efficiency of compressor = 85.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle 7.10, Page No:344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=3; # Pressure of fluid at inlet in bar\n",
+ "T1=150; # Temperature of fluid at inlet in degree celcius\n",
+ "V1=90; # Velocity of fluid at inlet in m/s \n",
+ "eff_nozzle=0.85; # Nozzle efficiency\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "p2=1/3*p1;\n",
+ "# (a).Steam\n",
+ "# Following are taken from steam table\n",
+ "h1=2761; # specific enthalpy in kJ/kg \n",
+ "s1=7.0778;# specific entropy in kJ/kg K\n",
+ "s2s=s1; # Isentropic process\n",
+ "sf2s=1.3026; sfg2s=6.0568;# specific entropy in kJ/kg K\n",
+ "hf2=417.46; hfg2=2258; # specific enthalpy in kJ/kg \n",
+ "\n",
+ "#Calculation for (a)\n",
+ "x2s=(s2s-sf2s)/sfg2s; # Quality of steam\n",
+ "h2s=hf2+x2s*hfg2;\n",
+ "V2s=math.sqrt (2000*(h1-h2s)+V1**2); # Isentropic Velocity \n",
+ "V2=math.sqrt (eff_nozzle) *V2s; # Actual nozzle exit velocity\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"\\nActual nozzle exit velocity = \",round(V2,1),\"m/s (round off error)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k); # Isentropic temperature\n",
+ "V2s=math.sqrt ((2000*Cpo*((T1+273)-T2s))+V1**2); # Isentropic Velocity and (answer mentioned in the textbook is wrong)\n",
+ "V2=math.sqrt (eff_nozzle) *V2s; # Actual nozzle exit velocity\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Air\",\"\\n Actual nozzle exit velocity = \",round(V2,1),\"m/s (answer mentioned in the textbook is wrong)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam \n",
+ "Actual nozzle exit velocity = 575.1 m/s (round off error)\n",
+ "\n",
+ "(b).Air \n",
+ " Actual nozzle exit velocity = 448.7 m/s (answer mentioned in the textbook is wrong)\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11, Page No:348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=200; # Pressure of fluid at inlet in kPa\n",
+ "T1=200; # Temperature of fluid at inlet in degree celcius\n",
+ "V1=700; # Velocity of fluid at inlet in m/s \n",
+ "V2=70; # Velocity of fluid at outlet in m/s \n",
+ "# (a).Reversible Adiabatic process\n",
+ "# state of steam entering diffuser (superheated)\n",
+ "h1=2870.5;# specific enthalpy in kJ/kg \n",
+ "s1=7.5066; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "h2=h1+(V1**2-V2**2)/2000; # From first and second laws\n",
+ "s2=s1; # Isentropic peocess\n",
+ "# From superheated table\n",
+ "p2s=550; # Pressure of fluid at outlet in kPa\n",
+ "T2=324; # Temperature of fluid at outlet in degree celcius\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Reversible adiabatic process\",\"\\nPressure of fluid at outlet = \",p2s,\"kPa\"\n",
+ "print \"Temperature of fluid at outlet =\",T2,\"oC\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Actual diffusion\n",
+ "# for the same change in K.E, from first law\n",
+ "h2=3113.1;# specific enthalpy in kJ/kg\n",
+ "p2=400; # Actual exit pressure in kPa\n",
+ "t2=322.4; # from superheated table in degree celcius\n",
+ "eff_d=(p2-p1)/(p2s-p1); # Diffuser efficiency\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Actual diffusion\",\"\\nThe exit temperature =\",t2,\"oC\",\"\\nDiffuser efficiency = \",round(eff_d*100,0),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Reversible adiabatic process \n",
+ "Pressure of fluid at outlet = 550 kPa\n",
+ "Temperature of fluid at outlet = 324 oC\n",
+ "\n",
+ "(b).Actual diffusion \n",
+ "The exit temperature = 322.4 oC \n",
+ "Diffuser efficiency = 57.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12, Page No:349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1; # Pressure of fluid at inlet in bar\n",
+ "T1=60; # Temperature of fluid at inlet in degree celcius\n",
+ "p2=2.8; # Pressure of fluid at outlet in bar\n",
+ "eff_d=0.80; # Diffuser efficiency\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# (a).Actual Diffuser\n",
+ "p2s=((p2-p1)/eff_d)+p1; # Isentropic pressure\n",
+ "T2=(T1+273)*(p2s/p1)**((k-1)/k); # Exit temperature\n",
+ "V1=math.sqrt (2000*Cpo*(T2-(T1+273))); # Initial Velocity\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Actual Diffuser\",\"\\nTemperature of air leaving diffuser =\",round(T2,1),\"K\"\n",
+ "print \"Initial Velocity =\",round(V1,1),\"m/s\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Reversible Adiabatic diffuser\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k); # Isentropic exit temperature\n",
+ "V1=math.sqrt (2000*Cpo*(T2s-(T1+273))); # Initial Velocity\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Reversible Adiabatic diffuser\",\"\\nTemperature of air leaving diffuser =\",round(T2s,0),\"K\"\n",
+ "print \"Initial Velocity =\",round(V1,1),\"m/s\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Actual Diffuser \n",
+ "Temperature of air leaving diffuser = 466.3 K\n",
+ "Initial Velocity = 517.3 m/s\n",
+ "\n",
+ "(b).Reversible Adiabatic diffuser \n",
+ "Temperature of air leaving diffuser = 447.0 K\n",
+ "Initial Velocity = 478.1 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No:350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=18; # mass flow rate of air in kg/s\n",
+ "p1=3.6; # Pressure of fluid at inlet of turbine in MPa\n",
+ "T1=800; # Temperature of fluid at inlet of turbine in Kelvin\n",
+ "V1=100; # Velocity of fluid at inlet of turbine in m/s \n",
+ "V2=150; # Velocity of fluid at outlet of turbine in m/s\n",
+ "W=3.6; # Power output of turbine in MW\n",
+ "p3=1.01; # pressure at diffuser outlet in bar\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# (a) Pressure at diffuser inlet\n",
+ "T2=((Cpo*T1)-((W*10**3)/m+(V2**2-V1**2)/2000))/Cpo; # Temperature at outlet of turbine\n",
+ "T3=(T2+273)+((V2**2)/(2*Cpo*10**3)); # Temperature of fluid at diffuser inlet\n",
+ "p2=p3*((T2+273)/T3)**(k/(k-1)); #pressure at diffuser inlet\n",
+ "\n",
+ "#Result \n",
+ "print \"(a).pressure at diffuser inlet =\",round(p2,3),\"bar\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).pressure at diffuser inlet = 0.966 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14, Page No:351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T1=35; # Temperature of freon 12 before throttling in degree celcius\n",
+ "T2=5; # Temperature of freon 12 after throttling in degree celcius\n",
+ "# from property table of freon 12\n",
+ "h1=69.49;# specific enthalpy in kJ/kg \n",
+ "hf2=40.66; hfg2=148.86; # specific enthalpy in kJ/kg \n",
+ "h2=h1; # throttling process\n",
+ "\n",
+ "#Calculation \n",
+ "x2=(h2-hf2)/hfg2; # Quality of Freon 12 vapour\n",
+ "\n",
+ "#Result\n",
+ "print \"Quality of Freon 12 vapour = \",round(x2,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quality of Freon 12 vapour = 0.194\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15, Page No:353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p2=276; # Pressure at inlet in kPa\n",
+ "p=6.5; # gauge pressure at outlet in cm Hg\n",
+ "T3=110; # Temperature at outlet in degree celcius\n",
+ "pa=756; # Barometric pressure in mm Hg\n",
+ "mc=760;# Mass of condensed steam in g\n",
+ "ms=25; # Mass of separated water in g\n",
+ "den=13600; # Density of mercury in kg/m^3\n",
+ "g=9.81; # Acceleration due to gravity in m/s^2\n",
+ "\n",
+ "#Calculation\n",
+ "z=(pa*10**-3)+(p*10**-2);# absolute pressure in m Hg\n",
+ "p3=den*g*z; # Pressure after throttling\n",
+ "h3=2697.4;# specific enthalpy in kJ/kg \n",
+ "hf2=545.31; hfg2=2175.2; # specific enthalpy in kJ/kg \n",
+ "x2=(h3-hf2)/hfg2; # Quality of steam\n",
+ "x1=(mc/(mc+ms))*x2; # Quality of steam in the main line\n",
+ "\n",
+ "#Result\n",
+ "print \"Quality of steam in the main line =\",round(x1,4),\" (roundoff error)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quality of steam in the main line = 0.9579 (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter8.ipynb b/Thermodynamics/Chapter8.ipynb
new file mode 100755
index 00000000..de9fddbf
--- /dev/null
+++ b/Thermodynamics/Chapter8.ipynb
@@ -0,0 +1,589 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c31b3e182c94546bee565a2d8036e956b36a8e464b50b24f4e687e55ce855452"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8:VAPOUR CYCLE"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page No: 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TH=311.06; # Source temperature in degree celcius\n",
+ "pb=10; # Boiler pressure in MPa\n",
+ "TL=32.88; # Sink temperature in degree celcius \n",
+ "pc=5; # Condenser pressure in kPa\n",
+ "# From steam tables at pb\n",
+ "h2=1407.56; # specific enthalpy in kJ/kg \n",
+ "h3=2724.7; # specific enthalpy in kJ/kg \n",
+ "s2=3.3596; # specific entropy in kJ/kg K\n",
+ "s3=5.6141; # specific entropy in kJ/kg K\n",
+ "# From steam tables at pc\n",
+ "hf=137.82; hfg=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf=0.4764; sfg=7.9187; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "x1=(s2-sf)/sfg; # quality of steam at state 1\n",
+ "x4=(s3-sf)/sfg; # quality of steam at state 4\n",
+ "h1=hf+x1*hfg; # specific enthalpy at state 1\n",
+ "h4=hf+x4*hfg; # specific enthalpy at state 4\n",
+ "wT=h3-h4; # Turbine work\n",
+ "wC=h2-h1; # Compressor work\n",
+ "wnet=wT-wC; # Net work output\n",
+ "qH=h3-h2; # Heat added\n",
+ "rw=wnet/wT; # Ratio of net work to trbine work\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Result\n",
+ "print \"Ratio of net work to trbine work =\",round(rw,3),\"\\nThermal efficiency =\",round(eff_th*100,1),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,3),\"kg/kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of net work to trbine work = 0.618 \n",
+ "Thermal efficiency = 47.6 %\n",
+ "specific steam consumption = 5.741 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No:366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TH=311.06; # Source temperature in degree celcius\n",
+ "p2=10; # Boiler pressure in MPa\n",
+ "TL=32.88; # Sink temperature in degree celcius \n",
+ "p1=5; # Condenser pressure in kPa\n",
+ "# From steam tables at p2\n",
+ "h3=2724.7; # specific enthalpy in kJ/kg \n",
+ "s3=5.6141; # specific entropy in kJ/kg K\n",
+ "# From steam tables at p1\n",
+ "hf=137.82; hfg=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf=0.4764; sfg=7.9187; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculations\n",
+ "x4=(s3-sf)/sfg; # quality of steam at state 4\n",
+ "h4=hf+x4*hfg; # specific enthalpy at state 4\n",
+ "h1=137.82; # specific enthalpy at state 1 in kJ/kg \n",
+ "s1=0.4764; # specific entropy at state in kJ/kgK\n",
+ "v1=0.001005; # specific volume in m^3/kg\n",
+ "wp=abs (v1*(p2*10**3-p1)); # Pump work (absolute value)\n",
+ "h2=h1+wp; # specific enthalpy at state 2\n",
+ "wT=h3-h4; # Turbine work\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=h3-h2; # Heat added\n",
+ "rw=wnet/wT; # Ratio of net work to trbine work\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results\n",
+ "print \"Ratio of net work to trbine work =\",round(rw,2),\"\\nThermal efficiency =\",round(eff_th*100,0),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,3),\"kg/kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of net work to trbine work = 0.99 \n",
+ "Thermal efficiency = 39.0 %\n",
+ "specific steam consumption = 3.585 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No:369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TH=311.06; # Source temperature in degree celcius\n",
+ "p2=10; # Boiler pressure in MPa\n",
+ "TL=32.88; # Sink temperature in degree celcius \n",
+ "p1=5; # Condenser pressure in kPa\n",
+ "# (a).Actual carnot cycle\n",
+ "eff_Tur=0.8; # Efficiency of turbine\n",
+ "eff_com=0.6; # Efficiency of compressure\n",
+ "# From steam tables at p2\n",
+ "h3=2724.7; # specific enthalpy in kJ/kg \n",
+ "s3=5.6141; # specific entropy in kJ/kg K\n",
+ "s2=3.3596; # specific entropy in kJ/kg K\n",
+ "h2=1407.56; # specific enthalpy in kJ/kg \n",
+ "# From steam tables at p1\n",
+ "hf=137.82; hfg=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf=0.4764; sfg=7.9187; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculations for (a)\n",
+ "x1=(s2-sf)/sfg; # quality of steam at state 1\n",
+ "x4=(s3-sf)/sfg; # quality of steam at state 4\n",
+ "h1=hf+x1*hfg; # specific enthalpy at state 1\n",
+ "h4=hf+x4*hfg; # specific enthalpy at state 4\n",
+ "wTs=h3-h4; # Turbine work\n",
+ "wT=eff_Tur*wTs; # Actual turbine work\n",
+ "wCs=h2-h1; # Compressor work\n",
+ "wC=wCs/eff_com; # Actual compressor work\n",
+ "wnet=wT-wC; # Net work output\n",
+ "h2a=h1+wC; # specific enthalpy\n",
+ "qH=h3-h2a; # Heat added\n",
+ "rw=wnet/wT; # Ratio of net work to trbine work\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results for (a)\n",
+ "print \"(a).Actual carnot cycle\",\"\\nRatio of net work to trbine work =\",round(rw,4),\"\\nThermal efficiency =\",round(eff_th*100,2),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,1),\"kg/kWh\"\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).Actual Rankine cycle\n",
+ "eff_Tur=0.8; # Efficiency of turbine\n",
+ "eff_pump=0.9; # Efficiency of Pump\n",
+ "# From steam tables at p1\n",
+ "h1=137.82; # specific enthalpy at state 1 in kJ/kg \n",
+ "s1=0.4764; # specific entropy at state in kJ/kgK\n",
+ "v1=0.001005; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculations for (b)\n",
+ "wps=abs (v1*(p2*10**3-p1)); # Pump work (absolute value)\n",
+ "wp=wps/eff_pump; # Actual pmp work\n",
+ "h2a=h1+wp; # # specific enthalpy at state 2\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=h3-h2a; # Heat added\n",
+ "rw=wnet/wT; # Ratio of net work to trbine work\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results for (b)\n",
+ "print \"\\n\\n(b).Actual Rankine cycle\",\"\\nRatio of net work to trbine work =\",round(rw,3),\"\\nThermal efficiency =\",round(eff_th*100,0),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,1),\"kg/kWh\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Actual carnot cycle \n",
+ "Ratio of net work to trbine work = 0.2046 \n",
+ "Thermal efficiency = 15.68 %\n",
+ "specific steam consumption = 21.7 kg/kWh\n",
+ "\n",
+ "\n",
+ "(b).Actual Rankine cycle \n",
+ "Ratio of net work to trbine work = 0.986 \n",
+ "Thermal efficiency = 31.0 %\n",
+ "specific steam consumption = 4.5 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page No:379 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T3=450; # temperature of steam at state 3 in degree celcius\n",
+ "p3=10; # Boiler pressure in MPa \n",
+ "p6=5; # Condenser pressure in kPa\n",
+ "# From steam tables at state 1\n",
+ "hf=137.82; hfg=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf=0.4764; sfg=7.9187; # specific entropy in kJ/kg K\n",
+ "h1=137.82; # specific enthalpy at state 1 in kJ/kg \n",
+ "s1=0.4764; # specific entropy at state in kJ/kgK\n",
+ "v1=0.001005; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculations for (a)\n",
+ "wp=abs (v1*(p3*10**3-p6)); # Pump work (absolute value)\n",
+ "h2=h1+wp; # specific enthalpy at state 2\n",
+ "# (a).Rankine cycle with superheat\n",
+ "# From steam tables at state 3\n",
+ "h3=3240.9;# specific enthalpy in kJ/kg\n",
+ "s3=6.419; # specific entropy in kJ/kg K\n",
+ "# State 4_1\n",
+ "x4_1=(s3-sf)/sfg; # Quality of steam at state 4_1\n",
+ "h4_1=hf+x4_1*hfg; # specific enthalpy at state 4_1\n",
+ "wT=h3-h4_1; # Turbine work\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=h3-h2; # Heat added\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results for (a)\n",
+ "print \"(a).Rankine cycle with superheat\",\"\\nQuality of steam at exhaust = \",round(x4_1,2),\"\\nThermal efficiency =\",round(eff_th*100,1),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,3),\"kg/kWh\"\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).Reheat cycle\n",
+ "s4=s3; # isentropic expansion\n",
+ "x4=0.975; # Quality of steam at state 4\n",
+ "# from steam table intermediate pressure is selected for s4 & x4 by interpolation and assumed by round value\n",
+ "p4=1.2; # Intermediate pressure in MPa\n",
+ "# From steam tables at state 4\n",
+ "hf4=798.6; hfg4=1986.2; # specific enthalpy in kJ/kg \n",
+ "h4=hf4+x4*hfg4; # specific enthalpy in kJ/kg \n",
+ "# From steam tables at state 5\n",
+ "h5=3368.5;# specific enthalpy in kJ/kg\n",
+ "s5=7.5266; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculations for (b)\n",
+ "x6=(s5-sf)/sfg; # Quality of steam at state 6\n",
+ "h6=hf+x6*hfg; # specific enthalpy in kJ/kg \n",
+ "wT=(h3-h4)+(h5-h6); # Turbine work\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=(h3-h2)+(h5-h4); # Heat added\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results for (b)\n",
+ "print \"\\n\\n(b).Reheat cycle\",\"\\nQuality of steam at exhaust = \",round(x6,2),\"\\nThermal efficiency =\",round(eff_th*100,1),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,3),\"kg/kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Rankine cycle with superheat \n",
+ "Quality of steam at exhaust = 0.75 \n",
+ "Thermal efficiency = 41.2 %\n",
+ "specific steam consumption = 2.825 kg/kWh\n",
+ "\n",
+ "\n",
+ "(b).Reheat cycle \n",
+ "Quality of steam at exhaust = 0.89 \n",
+ "Thermal efficiency = 42.1 %\n",
+ "specific steam consumption = 2.295 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No:386 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T5=311.06; # temperature of steam at state 5 in degree celcius\n",
+ "p5=10; # Boiler pressure in MPa\n",
+ "p4=p5;\n",
+ "T7=32.88; # temperature of steam at state 7 in degree celcius \n",
+ "p7=5; # Condenser pressure in kPa\n",
+ "p1=p7;\n",
+ "# From steam tables at p7\n",
+ "h1=137.82; # specific enthalpy at state 1 in kJ/kg \n",
+ "s1=0.4764; # specific entropy at state 1 in kJ/kgK\n",
+ "v1=0.001005; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculations\n",
+ "wp=abs (v1*(p5*10**3-p7)); # Pump work (absolute value)\n",
+ "h2=h1+wp; # specific enthalpy at state 2\n",
+ "T6=(T5+T7)/2; # Temperature of bleed system\n",
+ "h5=2724.7; # specific enthalpy at state 5 in kJ/kg \n",
+ "s5=5.6141; # specific entropy at state 5 in kJ/kgK\n",
+ "# From steam tables at state 6\n",
+ "p6=791.5; # bleed steam pressure in kPa\n",
+ "p2=p6; p3=p6;\n",
+ "vf6=0.00114; # specific volume in m^3/kg\n",
+ "v3=vf6;\n",
+ "hf6=719.21; hfg6=2049.5; # specific enthalpy in kJ/kg \n",
+ "sf6=2.0419; sfg6=4.6244; # specific entropy in kJ/kg K\n",
+ "x6=(s5-sf6)/sfg6; # quality of steam at state 6\n",
+ "h6=hf6+x6*hfg6; # specific enthalpy at state 6\n",
+ "h3=hf6; # specific enthalpy at state 3\n",
+ "m1=(h3-h2)/(h6-h2); # Fraction of bleed steam\n",
+ "wLP=abs (v1*(p2-p1)); # LP work\n",
+ "wHP=abs (v3*(p4*10**3-p3)); # HP work\n",
+ "wp=(1-m1)*wLP+wHP; # Total pump work\n",
+ "h2=h1+wp; h4=h3+wp; # Specific Enthalpies of water\n",
+ "# From steam tables at pc\n",
+ "hf7=137.82; hfg7=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf7=0.4764; sfg7=7.9187; # specific entropy in kJ/kg K\n",
+ "x7=(s5-sf7)/sfg7; # quality of steam at state 7\n",
+ "h7=hf7+x7*hfg7; # specific enthalpy at state 4\n",
+ "wT=(h5-h6)+(1-m1)*(h6-h7); # Turbine work\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=h5-h4; # Heat added\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Result\n",
+ "print \"Thermal efficiency =\",round(eff_th*100,1),\"%\",\"\\nspecific steam consumption =\",round(SSC,3),\"kg/kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 42.4 % \n",
+ "specific steam consumption = 4.254 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6, Page No:389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration \n",
+ "ps=6.89+1; # Pressure of steam produced in bar (Absolute)\n",
+ "x=0.96; # Quality of steam produced\n",
+ "f=75; # Steady flow of water in litres\n",
+ "t=9.5; # Time consumption of water in minutes\n",
+ "tf=685; #Time consumption of 10 litre fuel in seconds\n",
+ "Vf=10; # consumption of fuel in litres\n",
+ "Sf=0.85; # specific gravity of water\n",
+ "CV=43125; # Calorific value of fuel in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "ms=f/(t*60);# Steam generation\n",
+ "mf=Vf*Sf/tf; # consumption of fuel\n",
+ "# From steam tables at ps\n",
+ "hf=718.5; hfg=2050; # specific enthalpy in kJ/kg \n",
+ "hs=hf+x*hfg; # specific enthalpy of steam produced\n",
+ "hFW=146.7; # Enthalpy of feed water at 35 degree celcius\n",
+ "eff_boiler=(ms*(hs-hFW))/(mf*CV); # Boiler Efficiency\n",
+ "\n",
+ "#Result\n",
+ "print \"Boiler Efficiency = \",round(eff_boiler*100,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Boiler Efficiency = 62.45 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7, Page No:394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration \n",
+ "TL=-15; # Source temperature in degree celcius\n",
+ "TH=40; # Sink temperature in degree celcius\n",
+ "# From the table of properties of Freon - 12\n",
+ "h2=203.05; h3=74.53; hf4=22.31; hg4=180.85; # specific enthalpy in kJ/kg \n",
+ "s1=0.682; s3=0.2716; sf4=0.0906; sg4=0.7046; sfg4=sg4-sf4;# specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculations\n",
+ "sf1=sf4; sfg1=sfg4; s2=s1; s4=s3; hf1=hf4; hg1=hg4; hfg4=hg4-hf4; hfg1=hfg4;# refer figure 8.20 \n",
+ "x1=(s1-sf1)/sfg1; # Dryness fraction at state 1\n",
+ "x4=(s4-sf4)/sfg4; # dryness fraction at state 4\n",
+ "h1=hf1+x1*hfg1; h4=hf4+x4*hfg4; # specific enthalpy in kJ/kg \n",
+ "wc=h2-h1; # work of compression\n",
+ "wE=h3-h4; # Work of expansion\n",
+ "qL=h1-h4; # Refrigerating effect\n",
+ "qH=h2-h3; # Heat rejected\n",
+ "wnet=wc-wE; # Net work\n",
+ "COPc=qL/wnet; # COP of the cycle\n",
+ "\n",
+ "#Results\n",
+ "print \"Work of compression = \",round(wc,2),\"kJ/kg\",\"\\nWork of expansion =\",round(wE,2),\"kJ/kg\"\n",
+ "print \"Refrigerating effect = \",round(qL,2),\"kJ/kg\"\n",
+ "print \"Heat rejected =\",qH,\"kJ/kg\",\"\\nCOP of the cycle =\",round(COPc,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression = 28.04 kJ/kg \n",
+ "Work of expansion = 5.48 kJ/kg\n",
+ "Refrigerating effect = 105.97 kJ/kg\n",
+ "Heat rejected = 128.52 kJ/kg \n",
+ "COP of the cycle = 4.699\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No:400 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TL=-15; # Source temperature in degree celcius\n",
+ "TH=40; # Sink temperature in degree celcius\n",
+ "# From the table of properties of Freon - 12\n",
+ "h3=74.53; h1=180.85; h4=h3; # specific enthalpy in kJ/kg \n",
+ "s1=0.7046; s2=0.682; # specific entropy in kJ/kg K\n",
+ "\n",
+ "# (a) \n",
+ "\n",
+ "#Calculation for (i)\n",
+ "# (i).Condensor and Evaporator pressure\n",
+ "pc=0.9607; # Saturation pressure at TH in MPa\n",
+ "pE=0.1826; # Saturation pressure at TL in MPa\n",
+ "\n",
+ "#Results for (i)\n",
+ "print \"(a)\",\"\\n(i).Condensor and Evaporator pressure\",\"\\nCondensor pressure = \",pc,\"MPa\"\n",
+ "print \"Evaporator pressure = \",pE,\"MPa\"\n",
+ "\n",
+ "#Calculation for (ii)\n",
+ "# (ii).Compressor discharge temperature & Enthalpy\n",
+ "p2=pc; # Condensor pressure\n",
+ "s2=s1; # refer figure 8.25\n",
+ "# From the table of properties of Freon - 12 at pc\n",
+ "t2=46.8; # Compressor discharge temperature in degree celcius\n",
+ "h2=208.3; # specific enthalpy in kJ/kg \n",
+ "\n",
+ "#Results for (ii)\n",
+ "print \"\\n(ii).Compressor discharge temperature & Enthalpy\",\"\\nCompressor discharge temperature = \",t2,\"oC\"\n",
+ "print \"Enthalpy = \",h2,\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (iii)\n",
+ "# (iii).Ratio of COP of the cycle to Carnot COP\n",
+ "w=h2-h1; # Compressor work\n",
+ "qL=h1-h4; # Refrigeration effect\n",
+ "COP=qL/w; # COP of the cycle\n",
+ "COPc=4.68; # COP of carnot cycle from example 8.7\n",
+ "r=COP/COPc; # Ratio of COP of the cycle to Carnot COP\n",
+ "\n",
+ "#Results for (iii)\n",
+ "print \"\\n(iii).Ratio of COP of the cycle to Carnot COP = \",round(r,2)\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b) \n",
+ "QL=0.440; # Capacity of refrigerator in kW (1/8 ton of refrigeration)\n",
+ "m=QL/qL; # Mass flow rate of refrigerant\n",
+ "W=m*w; # Power consumption of compressor\n",
+ "QH=QL+W; # Heat rejected\n",
+ "\n",
+ "#Results for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nMass flow rate of refrigerant = \",round(m,5),\"kg/s\",\"\\nPower consumption of compressor = \",round(W,4),\"kW\"\n",
+ "print \"Heat rejected to surroundings = \",round(QH,4),\"kW (Error in textbook answer)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "(i).Condensor and Evaporator pressure \n",
+ "Condensor pressure = 0.9607 MPa\n",
+ "Evaporator pressure = 0.1826 MPa\n",
+ "\n",
+ "(ii).Compressor discharge temperature & Enthalpy \n",
+ "Compressor discharge temperature = 46.8 oC\n",
+ "Enthalpy = 208.3 kJ/kg\n",
+ "\n",
+ "(iii).Ratio of COP of the cycle to Carnot COP = 0.83\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Mass flow rate of refrigerant = 0.00414 kg/s \n",
+ "Power consumption of compressor = 0.1136 kW\n",
+ "Heat rejected to surroundings = 0.5536 kW (Error in textbook answer)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter9.ipynb b/Thermodynamics/Chapter9.ipynb
new file mode 100755
index 00000000..a863c7cf
--- /dev/null
+++ b/Thermodynamics/Chapter9.ipynb
@@ -0,0 +1,585 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1fcefba58d1aff268f075c74fd2cddb1b329d45775f950b8a0c675f9e594fddf"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9:GAS CYCLES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No:425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=8; # Compression ratio of an engine\n",
+ "p1=100; # Pressure of air before compression in lPa\n",
+ "T1=300; # Temperature air before compression in kelvin\n",
+ "qH=1800; # Heat added to the air in kJ/kg\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (1)\n",
+ "# Otto cycle\n",
+ "# (1) state 2\n",
+ "p2=p1*(r)**k; # Pressure at the end of compression\n",
+ "T2=T1*(p2/p1)**((k-1)/k);# Temperature at the end of compression\n",
+ "# state 3\n",
+ "T3=(qH/Cvo)+T2; # Temperatue after heat addition\n",
+ "p3=p2*(T3/T2); # Pressure after heat addition\n",
+ "# state 4\n",
+ "p4=p3*(1/r)**k; # Pressure after expansion\n",
+ "T4=T3*(p4/p3)**((k-1)/k);# Temperature after expansion\n",
+ "\n",
+ "#Result for (1)\n",
+ "print \"(1).state 1\",\"\\n Pressure of air before compression = \",p1,\"kPa\",\"\\n Temperature air before compression =\",T1,\"K\"\n",
+ "print \"state 2\",\"\\n Pressure of air at the end of compression = \",round(p2,0),\"kPa\"\n",
+ "print \" Temperature at the end of compression =\",round(T2,1),\"K\"\n",
+ "print \"state 3\",\"\\n Pressure after heat addition = \",round(p3,0),\"kPa (round off error)\"\n",
+ "print \" Temperature after heat addition =\",round(T3,1),\"K (round off error)\"\n",
+ "print \"state 4\",\"\\n Pressure after expansion = \",round(p4,1),\"kPa (round off error)\"\n",
+ "print \" Temperature after expansion =\",round(T4,1),\"K (round off error)\"\n",
+ "\n",
+ "#Calculation for (2)\n",
+ "# (2).Thermal efficiency\n",
+ "qL=Cvo*(T4-T1); # Heat rejected\n",
+ "eff_th=1-qL/qH; # thermal efficiency\n",
+ "\n",
+ "#Result for (2)\n",
+ "print \"\\n(2).Thermal efficienvy = \",round(eff_th*100,2),\"% (round off error)\"\n",
+ "\n",
+ "#Calculation for (3)\n",
+ "# (3). Mean effective pressure\n",
+ "wnet=qH-qL; # net work\n",
+ "v1=R*T1/p1; # Specific volume at state 1\n",
+ "v2=v1/r; # Specific volume at state 2\n",
+ "pm=wnet/(v1-v2); # Mean effective pressure\n",
+ "\n",
+ "#Result for (3)\n",
+ "print \"\\n(3).Mean effective pressure = \",round(pm,0),\"kPa\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(1).state 1 \n",
+ " Pressure of air before compression = 100 kPa \n",
+ " Temperature air before compression = 300 K\n",
+ "state 2 \n",
+ " Pressure of air at the end of compression = 1838.0 kPa\n",
+ " Temperature at the end of compression = 689.2 K\n",
+ "state 3 \n",
+ " Pressure after heat addition = 8537.0 kPa (round off error)\n",
+ " Temperature after heat addition = 3201.4 K (round off error)\n",
+ "state 4 \n",
+ " Pressure after expansion = 464.5 kPa (round off error)\n",
+ " Temperature after expansion = 1393.5 K (round off error)\n",
+ "\n",
+ "(2).Thermal efficienvy = 56.47 % (round off error)\n",
+ "\n",
+ "(3).Mean effective pressure = 1349.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No:430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "r=18; # Compression ratio of an engine\n",
+ "p1=100; # Pressure of air before compression in lPa\n",
+ "T1=300; # Temperature air before compression in kelvin\n",
+ "qH=1800; # Heat added to the air in kJ/kg\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# Diesel cycle\n",
+ "# state 2\n",
+ "T2=T1*(r)**(k-1); # Temperature at the end of compression\n",
+ "p2=p1*(r)**k; # Pressure at the end of compression\n",
+ "# state 3\n",
+ "T3=(qH/Cpo)+T2; # Temperatue after heat addition\n",
+ "p3=p2; #constant pressure\n",
+ "Tmax=T3; # maximum temperature\n",
+ "Pmax=p3; # Maximum pressure\n",
+ "# state 4\n",
+ "v3=R*T3/p3; # Specific volume at state 3\n",
+ "v4=R*T1/p1; # Specific volume at state 4\n",
+ "T4=T3*(v3/v4)**(k-1); # Temperature after expansion\n",
+ "p4=p3*(v3/v4)**k; # Pressure after expansion\n",
+ "qL=Cvo*(T4-T1); # Heat rejected\n",
+ "wnet=qH-qL; # net work\n",
+ "eff_th=wnet/qH; # thermal efficiency\n",
+ "v1=R*T1/p1; # Specific volume at state 1\n",
+ "v2=v1/r; # Specific volume at state 2\n",
+ "pm=wnet/(v1-v2); # Mean effective pressure\n",
+ "\n",
+ "#Results\n",
+ "print \"Maximum pressure = \",Pmax,\"kPa\",\"Maximum Temperature = \",Tmax,\"K\"\n",
+ "print \"Thermal efficienvy = \",round(eff_th*100,1),\"%\"\n",
+ "print \"Mean effective pressure = \",round(pm,0),\"kPa (Error in textbook)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum pressure = 5719.80874166 kPa Maximum Temperature = 2747.02343004 K\n",
+ "Thermal efficienvy = 59.4 %\n",
+ "Mean effective pressure = 1315.0 kPa (Error in textbook)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3, Page No: 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.1; # Pressure of air at inlet in MPa\n",
+ "T1=300; # Temperature of air at inlet in kelvin\n",
+ "p2=0.6; # Pressure of air at exit in MPa\n",
+ "T3=1200; # Maximun temperature of air in kelvin\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# Brayton cycle\n",
+ "rp=p2/p1; # pressure ratio\n",
+ "T2=T1*(p2/p1)**((k-1)/k);# Temperature at the end of compression\n",
+ "wc=Cpo*(T2-T1); # compressor work\n",
+ "T4=T3*(p1/p2)**((k-1)/k);# Temperature at the end of expansion\n",
+ "wT=Cpo*(T3-T4); # Turbine work\n",
+ "qH=Cpo*(T3-T2); # heat addition\n",
+ "wnet=wT-wc; # net work\n",
+ "eff_th=wnet/qH; # thermal efficiency\n",
+ "rw=wnet/wT; # worh ratio\n",
+ "\n",
+ "#Result \n",
+ "print \"Thermal Efficiency = \",round(eff_th*100,1),\"%\"\n",
+ "print \"Work Ratio = \",round(rw,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal Efficiency = 40.1 %\n",
+ "Work Ratio = 0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No: 441"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.1; # Pressure of air at inlet in MPa\n",
+ "T1=300; # Temperature of air at inlet in kelvin\n",
+ "p2=0.6; # Pressure of air at exit in MPa\n",
+ "T3=1200; # Maximun temperature of air in kelvin\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "eff_t=0.85; # Turbine efficiency\n",
+ "eff_c=0.8; # Compressor efficienct\n",
+ "\n",
+ "#Calculation\n",
+ "# Brayton cycle\n",
+ "rp=p2/p1; # pressure ratio\n",
+ "T2s=T1*(p2/p1)**((k-1)/k);# Isentropic Temperature at the end of compression\n",
+ "T2=((T2s-T1)/eff_c)+T1; # Actual Temperature at the end of compression\n",
+ "p3=0.585; # as per given in MPa\n",
+ "p4s=0.11; # As per given in MPa\n",
+ "T4s=T3*(p4s/p3)**((k-1)/k); # Isentropic temperature after reversible adiabatic expansion\n",
+ "T4=T3-(eff_t*(T3-T4s));# Actual temperature at state 4\n",
+ "wc=Cpo*(T2-T1); # compressor work\n",
+ "wT=Cpo*(T3-T4); # Turbine work\n",
+ "qH=Cpo*(T3-T2); # heat addition\n",
+ "wnet=wT-wc; # net work\n",
+ "eff_th=wnet/qH; # thermal efficiency\n",
+ "rw=wnet/wT; # worh ratio\n",
+ "\n",
+ "#Result \n",
+ "print \"Thermal Efficiency = \",round(eff_th*100,0),\"%\"\n",
+ "print \"Work Ratio = \",round(rw,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal Efficiency = 21.0 %\n",
+ "Work Ratio = 0.353\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5, Page No: 448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.1; # Pressure of air at inlet in MPa\n",
+ "T1=300; # Temperature of air at inlet in kelvin\n",
+ "p2=0.6; # Pressure of air at exit in MPa\n",
+ "T3=1200; # Maximun temperature of air in kelvin\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# Brayton cycle\n",
+ "rp=p2/p1; # pressure ratio\n",
+ "T2=T1*(p2/p1)**((k-1)/k);# Temperature at the end of compression\n",
+ "T4=T3*(p1/p2)**((k-1)/k);# Temperature at state 4\n",
+ "Tx=T4; Ty=T2; # regenerator temperatures\n",
+ "qH=Cpo*(T3-Tx); # Heat added in the cycle with regenerator\n",
+ "qL=Cpo*(Ty-T1);# Heat rejected in the cycle with regenerator\n",
+ "eff_th=1-qL/qH; # Thermal efficiency\n",
+ "\n",
+ "#Result\n",
+ "print \"Thermal efficiency with regenerator = \",round(eff_th*100,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency with regenerator = 58.3 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6, Page No: 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V1=250; # Velocoty of jet aircraft in m/s\n",
+ "p1=60; # Atmospheric pressure in kPa\n",
+ "T1=260; # Atmospheric temperature in kelvin\n",
+ "rp=8; # Pressure ratio of compressor\n",
+ "T4=1350; # Temperature of gas at turbine inlet in kelvin\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).The pressure and temperature at each point of the cycle\n",
+ "# process 1-2 isentropic diffusion\n",
+ "T2=T1+(V1**2)/(2*Cpo*10**3); # Temperature at state 2\n",
+ "p2=p1*(T2/T1)**(k/(k-1)); # Pressure at state 2\n",
+ "# process 2-3 isentropic compression\n",
+ "p3=rp*p2; # perssure at state 3\n",
+ "T3=T2*(p3/p2)**((k-1)/k); # Temperature at state 3\n",
+ "wc=Cpo*(T3-T2); # compressor work\n",
+ "# process 3-4 Constant pressur heat addition\n",
+ "qH=Cpo*(T4-T3); # heat addition\n",
+ "p4=p3; # constant pressure\n",
+ "# process 4-5 isentropic expansion in turbine\n",
+ "wT=wc;\n",
+ "T5=T4-(wT/Cpo); # Temperature at state 5\n",
+ "p5=p4*(T5/T4)**(k/(k-1)); # Pressure at state 5\n",
+ "# process 5-6 Isentropic expansion in nozzle\n",
+ "p6=p1;\n",
+ "T6=T5*(p6/p5)**((k-1)/k); # Temperature at state 6\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).The pressure and temperature at each point of the cycle\",\"\\n State 1\",\"\\n p1 =\",p1,\"kPa\",\"\\n T1 =\",T1,\"K\"\n",
+ "print \"\\n State 2\",\"\\n p2 =\",round(p2,1),\"kPa\",\"\\n T2 =\",round(T2,1),\"K\",\n",
+ "print \"\\n State 3\",\"\\n p3 =\",round(p3,0),\"kPa\",\"\\n T3 =\",round(T3,1),\"K\"\n",
+ "print \"\\n State 4\",\"\\n p4 =\",round(p4,0),\"kPa\",\"\\n T4 =\",T4,\"K\"\n",
+ "print \"\\n State 5\",\"\\n p5 =\",round(p5,0),\"kPa (roundoff error)\",\"\\n T5 =\",round(T5,1),\"K (roundoff error)\"\n",
+ "print \" State 6\",\"\\n p6 =\",p6,\"kPa\",\"\\n T6 =\",round(T6,0),\"K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Exit velocity of jet\n",
+ "V6=math.sqrt (2*Cpo*10**3*(T5-T6)); # Exit velocity of jet\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Exit velocity of jet =\",round(V6,0),\"m/s (roundoff error)\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Specific thrust and work output\n",
+ "F_mair=(V6-V1); # Specific thrust \n",
+ "w=F_mair*V1/1000; # Work output\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).Specific thrust and work output\",\"\\nSpecific thrust =\",round(F_mair,0),\"N (roundoff error)\"\n",
+ "print \"Work output = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Propulsion efficiency\n",
+ "eff_p=w/(w+(V6**2-V1**2)/2000);# Propulsion efficiency\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n\\n(d).Propulsion efficiency =\",round(eff_p*100,1),\"%\"\n",
+ "\n",
+ "#Calculation for (e)\n",
+ "# (e).Overall thermal efficiency\n",
+ "eff_th=w/qH; # Overall thermal efficiency\n",
+ "\n",
+ "#Result for (e)\n",
+ "print \"(e).Overall thermal efficiency =\",round(eff_th*100,1),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).The pressure and temperature at each point of the cycle \n",
+ " State 1 \n",
+ " p1 = 60 kPa \n",
+ " T1 = 260 K\n",
+ "\n",
+ " State 2 \n",
+ " p2 = 89.1 kPa \n",
+ " T2 = 291.1 K \n",
+ " State 3 \n",
+ " p3 = 713.0 kPa \n",
+ " T3 = 527.4 K\n",
+ "\n",
+ " State 4 \n",
+ " p4 = 713.0 kPa \n",
+ " T4 = 1350 K\n",
+ "\n",
+ " State 5 \n",
+ " p5 = 364.0 kPa (roundoff error) \n",
+ " T5 = 1113.8 K (roundoff error)\n",
+ " State 6 \n",
+ " p6 = 60 kPa \n",
+ " T6 = 666.0 K\n",
+ "\n",
+ "\n",
+ "(b).Exit velocity of jet = 948.0 m/s (roundoff error)\n",
+ "\n",
+ "\n",
+ "(c).Specific thrust and work output \n",
+ "Specific thrust = 698.0 N (roundoff error)\n",
+ "Work output = 174.6 kJ/kg\n",
+ "\n",
+ "\n",
+ "(d).Propulsion efficiency = 29.4 %\n",
+ "(e).Overall thermal efficiency = 21.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7, Page No:458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=100; # Pressure of air at inlet in kPa\n",
+ "T1=288; # Temperature of air at inlet in kelvin\n",
+ "rp=12; # Pressure ratio of the compressor\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "T3=T1; # From figure\n",
+ "\n",
+ "#Calculation\n",
+ "# process 1-2\n",
+ "p2=12*p1; # Pressure at state 2\n",
+ "T2=T1*(p2/p1)**((k-1)/k); # Temperature at state 2\n",
+ "wc=Cpo*(T2-T1); # Compressor work\n",
+ "# process 2-3\n",
+ "qH=Cpo*(T2-T3); # Heat added\n",
+ "# process 3-4\n",
+ "T4=T3*(1/rp)**((k-1)/k); # Temperature at state 4\n",
+ "# process 4-1 Refrigerating coil\n",
+ "qL=Cpo*(T1-T4); # heat rejected\n",
+ "wnet=qH-qL; # net work\n",
+ "cop=qL/wnet; # Cop of plant\n",
+ "pc=wnet/qL; # Power consumption per kW of refrigeration\n",
+ "\n",
+ "#Result\n",
+ "print \"COP of the cycle =\",round(cop,3),\"\\nPower consumption per kW of refrigeration =\",round(pc,3),\"kW/kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP of the cycle = 0.967 \n",
+ "Power consumption per kW of refrigeration = 1.034 kW/kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No:459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=100; # Pressure of air at inlet in kPa\n",
+ "T1=288; # Temperature of air at inlet in kelvin\n",
+ "rp=12; # Pressure ratio of the compressor\n",
+ "T4=223; # Temperature at state 4\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "T3=T1; # From figure\n",
+ "\n",
+ "#Calculation\n",
+ "# process 1-2\n",
+ "p2=12*p1; # Pressure at state 2\n",
+ "T2=T1*(p2/p1)**((k-1)/k); # Temperature at state 2\n",
+ "wc=Cpo*(T2-T1); # Compressor work\n",
+ "# process 2-3\n",
+ "qH=Cpo*(T2-T3); # Heat added\n",
+ "# process 3-4 cooling in regenerative heat exchanger\n",
+ "qregen=Cpo*(T3-T4); # cooling in regenerative heat exchanger\n",
+ "# process 4-5 Expander\n",
+ "T5=T4*(1/rp)**((k-1)/k); # Temperature at state 5\n",
+ "wE=Cpo*(T4-T5); # Expander work\n",
+ "# process 5-6 Refrigerating coil\n",
+ "T6=T4; # From figure 9.32\n",
+ "qL=Cpo*(T6-T5); # Heat rejected\n",
+ "# process 6-1 Heating in regenerative heat exchanger\n",
+ "qregen=Cpo*(T1-T6); # Heat supplied\n",
+ "wnet=qH-qL; # net work\n",
+ "cop=qL/wnet; # Cop of plant\n",
+ "\n",
+ "#Result\n",
+ "print \"COP of the modified cycle =\",round(cop,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP of the modified cycle = 0.615\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/README.txt b/Thermodynamics/README.txt
index f55906ea..9f3df981 100755
--- a/Thermodynamics/README.txt
+++ b/Thermodynamics/README.txt
@@ -1,10 +1,10 @@
-Contributed By: pratik gandhi
-Course: bca
-College/Institute/Organization: Cybercom Creation
-Department/Designation: Developer
+Contributed By: Manikandan D
+Course: be
+College/Institute/Organization: EBET Group of Institutions,Kangayam
+Department/Designation: Mechanical Engineering
Book Title: Thermodynamics
-Author: B. l. Singhal
-Publisher: Tech-max Publications, Pune
-Year of publication: 2011
-Isbn: 978-81-8492-103-8
-Edition: 3 \ No newline at end of file
+Author: C P Arora
+Publisher: Tata McGraw Hill, New Delhi
+Year of publication: 2001
+Isbn: 0-07-462014-2
+Edition: 1 \ No newline at end of file
diff --git a/Thermodynamics/screenshots/figure_1.png b/Thermodynamics/screenshots/figure_1.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11.png b/Thermodynamics/screenshots/figure_11.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11_1.png b/Thermodynamics/screenshots/figure_11_1.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11_1.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11_2.png b/Thermodynamics/screenshots/figure_11_2.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11_2.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11_3.png b/Thermodynamics/screenshots/figure_11_3.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11_3.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11_4.png b/Thermodynamics/screenshots/figure_11_4.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11_4.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_1_1.png b/Thermodynamics/screenshots/figure_1_1.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1_1.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_1_2.png b/Thermodynamics/screenshots/figure_1_2.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1_2.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_1_3.png b/Thermodynamics/screenshots/figure_1_3.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1_3.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_1_4.png b/Thermodynamics/screenshots/figure_1_4.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1_4.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22.png b/Thermodynamics/screenshots/figure_22.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22_1.png b/Thermodynamics/screenshots/figure_22_1.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22_1.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22_2.png b/Thermodynamics/screenshots/figure_22_2.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22_2.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22_3.png b/Thermodynamics/screenshots/figure_22_3.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22_3.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22_4.png b/Thermodynamics/screenshots/figure_22_4.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22_4.png
Binary files differ