From f270f72badd9c61d48f290c3396004802841b9df Mon Sep 17 00:00:00 2001 From: kinitrupti Date: Fri, 12 May 2017 18:53:46 +0530 Subject: Removed duplicates --- Thermodynamics_by_C_P_Arora/Chapter10.ipynb | 763 ++++++ Thermodynamics_by_C_P_Arora/Chapter11.ipynb | 350 +++ Thermodynamics_by_C_P_Arora/Chapter12.ipynb | 504 ++++ Thermodynamics_by_C_P_Arora/Chapter13.ipynb | 541 +++++ Thermodynamics_by_C_P_Arora/Chapter14.ipynb | 630 +++++ Thermodynamics_by_C_P_Arora/Chapter15.ipynb | 361 +++ Thermodynamics_by_C_P_Arora/Chapter2.ipynb | 112 + Thermodynamics_by_C_P_Arora/Chapter3.ipynb | 456 ++++ Thermodynamics_by_C_P_Arora/Chapter4.ipynb | 605 +++++ Thermodynamics_by_C_P_Arora/Chapter5.ipynb | 1018 ++++++++ Thermodynamics_by_C_P_Arora/Chapter6.ipynb | 1076 +++++++++ Thermodynamics_by_C_P_Arora/Chapter7.ipynb | 932 ++++++++ Thermodynamics_by_C_P_Arora/Chapter8.ipynb | 589 +++++ Thermodynamics_by_C_P_Arora/Chapter9.ipynb | 585 +++++ Thermodynamics_by_C_P_Arora/README.txt | 9 + Thermodynamics_by_C_P_Arora/README.txt~ | 10 + Thermodynamics_by_C_P_Arora/ch1.ipynb | 1870 +++++++++++++++ Thermodynamics_by_C_P_Arora/ch2.ipynb | 2523 ++++++++++++++++++++ Thermodynamics_by_C_P_Arora/ch3.ipynb | 1047 ++++++++ Thermodynamics_by_C_P_Arora/ch4.ipynb | 863 +++++++ Thermodynamics_by_C_P_Arora/ch5.ipynb | 685 ++++++ Thermodynamics_by_C_P_Arora/ch6.ipynb | 1879 +++++++++++++++ Thermodynamics_by_C_P_Arora/ch7.ipynb | 543 +++++ .../screenshots/12conventioanlpower.png | Bin 0 -> 80753 bytes .../screenshots/12conventioanlpower_1.png | Bin 0 -> 80753 bytes .../screenshots/ch1Introduction.png | Bin 0 -> 69319 bytes .../screenshots/ch1Introduction_1.png | Bin 0 -> 69319 bytes .../screenshots/chapter1_Thermody_concepts.png | Bin 0 -> 134043 bytes .../screenshots/chapter4_Entropy.png | Bin 0 -> 118001 bytes .../screenshots/chapter7IC_Engines.png | Bin 0 -> 120292 bytes .../screenshots/figure_1.png | Bin 0 -> 58029 bytes .../screenshots/figure_11.png | Bin 0 -> 79888 bytes .../screenshots/figure_11_1.png | Bin 0 -> 79888 bytes .../screenshots/figure_11_2.png | Bin 0 -> 79888 bytes .../screenshots/figure_11_3.png | Bin 0 -> 79888 bytes .../screenshots/figure_11_4.png | Bin 0 -> 79888 bytes .../screenshots/figure_1_1.png | Bin 0 -> 58029 bytes .../screenshots/figure_1_2.png | Bin 0 -> 58029 bytes .../screenshots/figure_1_3.png | Bin 0 -> 58029 bytes .../screenshots/figure_1_4.png | Bin 0 -> 58029 bytes .../screenshots/figure_22.png | Bin 0 -> 48166 bytes .../screenshots/figure_22_1.png | Bin 0 -> 48166 bytes .../screenshots/figure_22_2.png | Bin 0 -> 48166 bytes .../screenshots/figure_22_3.png | Bin 0 -> 48166 bytes .../screenshots/figure_22_4.png | Bin 0 -> 48166 bytes .../screenshots/fractionalpopulation.png | Bin 0 -> 4117 bytes .../screenshots/fractionalpopulation_1.png | Bin 0 -> 4117 bytes 47 files changed, 17951 insertions(+) create mode 100755 Thermodynamics_by_C_P_Arora/Chapter10.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter11.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter12.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter13.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter14.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter15.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter2.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter3.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter4.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter5.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter6.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter7.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter8.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/Chapter9.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/README.txt create mode 100755 Thermodynamics_by_C_P_Arora/README.txt~ create mode 100755 Thermodynamics_by_C_P_Arora/ch1.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/ch2.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/ch3.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/ch4.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/ch5.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/ch6.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/ch7.ipynb create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/12conventioanlpower.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/12conventioanlpower_1.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/ch1Introduction.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/ch1Introduction_1.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/chapter1_Thermody_concepts.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/chapter4_Entropy.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/chapter7IC_Engines.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_1.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_11.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_11_1.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_11_2.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_11_3.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_11_4.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_1_1.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_1_2.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_1_3.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_1_4.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_22.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_22_1.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_22_2.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_22_3.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/figure_22_4.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/fractionalpopulation.png create mode 100755 Thermodynamics_by_C_P_Arora/screenshots/fractionalpopulation_1.png (limited to 'Thermodynamics_by_C_P_Arora') diff --git a/Thermodynamics_by_C_P_Arora/Chapter10.ipynb b/Thermodynamics_by_C_P_Arora/Chapter10.ipynb new file mode 100755 index 00000000..fbcc64f3 --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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_by_C_P_Arora/Chapter11.ipynb b/Thermodynamics_by_C_P_Arora/Chapter11.ipynb new file mode 100755 index 00000000..06493c9c --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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_by_C_P_Arora/Chapter12.ipynb b/Thermodynamics_by_C_P_Arora/Chapter12.ipynb new file mode 100755 index 00000000..6b383304 --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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_by_C_P_Arora/Chapter13.ipynb b/Thermodynamics_by_C_P_Arora/Chapter13.ipynb new file mode 100755 index 00000000..7bb44f97 --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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,'-" + ] + }, + { + "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": [ + "" + ] + }, + { + "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": [ + "" + ] + } + ], + "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": [ + "" + ] + }, + { + "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": [ + "" + ] + }, + { + "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_by_C_P_Arora/Chapter14.ipynb b/Thermodynamics_by_C_P_Arora/Chapter14.ipynb new file mode 100755 index 00000000..4bbbb0eb --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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_by_C_P_Arora/Chapter15.ipynb b/Thermodynamics_by_C_P_Arora/Chapter15.ipynb new file mode 100755 index 00000000..537afb59 --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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_by_C_P_Arora/Chapter2.ipynb b/Thermodynamics_by_C_P_Arora/Chapter2.ipynb new file mode 100755 index 00000000..9380b1f0 --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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_by_C_P_Arora/Chapter3.ipynb b/Thermodynamics_by_C_P_Arora/Chapter3.ipynb new file mode 100755 index 00000000..f35af800 --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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 . 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 ve_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_by_C_P_Arora/Chapter7.ipynb b/Thermodynamics_by_C_P_Arora/Chapter7.ipynb new file mode 100755 index 00000000..a9e9200a --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/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=s2W2, The engine 1 delivers more power.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power of Engine 1, W1 in KW : 6775.63\n", + "Power of Engine 2, W2 in KW : 5361.93\n", + "W1>W2, The engine 1 delivers more power.\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.8 Page No : 25" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import *\n", + "\t\t\t\n", + "# Variables :\n", + "Wdot = 200.;\t\t\t#W\n", + "t1 = 40.;\t\t\t#degree centigrade\n", + "\n", + "# Calculations\n", + "#Q2dot = 20*(t1-t2);\t\t\t#W\n", + "#COP = Q2dot/W2dot = T2/(T1-T2)\n", + "#(t1-t2)/(W2dot/20) = (t1+273)/(t1-t2)\n", + "#20*t1**2+20*t2**2-20*2*t1*t2-t1*Wdot-273*Wdot\n", + "#(t2+273)/(t1-t2) = (t1-t2)/(Wdot/20)\n", + "#t2**2-(2*t1+(Wdot/20))*t2-273*(Wdot/20)+t1**2\n", + "P = array([1, -(2*t1+(Wdot/20)), -273*(Wdot/20)+t1**2])\n", + "t2 = roots(P);\n", + "t2 = t2[1];\t\t\t#degree C\n", + "\n", + "# Results\n", + "#Taken only -ve value as t2 cant be greater than t1\n", + "print \"Temperature of cold space(degree C) %.2f\"%t2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Temperature of cold space(degree C) -11.17\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.10 Page No : 26" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "m = 0.8;\t\t\t#Kg\n", + "hi = 335.;\t\t\t#KJ/Kg-water\n", + "T1 = 24.+273;\t\t\t#K\n", + "T2 = 0.+273;\t\t\t#K\n", + "Wdot = 400.;\t\t\t#W\n", + "Wdot = Wdot/1000.;\t\t\t#KW\n", + "\n", + "# Calculations\n", + "Q2 = m*hi;\t\t\t#KJ\n", + "ActualCOP = T2/(T1-T2)*30/100;\n", + "Q2dot = ActualCOP/Wdot;\t\t\t#KJ/s\n", + "T = Q2/Q2dot;\t\t\t#sec\n", + "\n", + "# Results\n", + "print \"Time required to freeze the water in sec : %.2f\"%T\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Time required to freeze the water in sec : 31.41\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.11 Page No : 26" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 727.+273;\t\t \t#K\n", + "T2 = 27.+273;\t\t \t#K\n", + "Wdot = 76.;\t\t\t #KW\n", + "FuelBurned = 4.;\t\t \t#Kg/hr\n", + "FuelBurned = 4./3600;\t\t\t#Kg/sec\n", + "FuelHeatingValue = 75000.;\t\t\t#KJ/Kg\n", + "\n", + "# Calculations and Results\n", + "Q1dot = FuelBurned*FuelHeatingValue;\t\t\t#KJ/s or KW\n", + "Eta = Wdot/Q1dot*100;\t\t\t#%\n", + "print \"Actual Efficiency of Engine in % : \",Eta\n", + "\n", + "Eta_c = (1-T2/T1)*100;\t\t\t#%\n", + "print \"Carnot Efficiency of Engine in % : \",Eta_c\n", + "print (\"Claim of inventor is wrong as actual efficiency is greater than carnot efficiency.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Actual Efficiency of Engine in % : 91.2\n", + "Carnot Efficiency of Engine in % : 70.0\n", + "Claim of inventor is wrong as actual efficiency is greater than carnot efficiency.\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.12 Page No : 27" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 24.+273;\t\t\t#K\n", + "T2 = 10.+273;\t\t\t#K\n", + "Q1 = 1500.;\t\t\t#kJ/min\n", + "Q1 = Q1/60.;\t\t\t#kW\n", + "\n", + "# Calculations\n", + "COP_ideal = T1/(T1-T2);\n", + "ActualCOP = COP_ideal*30/100;\n", + "W = Q1/ActualCOP;\t\t\t#kW\n", + "\n", + "# Results\n", + "print \"Power required in kW : %.3f\"%W\n", + "\n", + "#Answer is wrong in the book as calculation for Q1 is wrong.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power required in kW : 3.928\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.13 Page No : 27" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables :\n", + "T1 = 450.;\t\t\t#K\n", + "T2 = 280.;\t\t\t#K\n", + "Q1 = 1200.;\t\t\t#KJ\n", + "W = 0.15;\t\t\t#KWh\n", + "W = W*3600.;\t\t\t#KJ\n", + "\n", + "# Calculations and Results\n", + "Eta_a = W/Q1*100;\t\t\t#%\n", + "print \"Actual Efficiency of Engine in % : \",Eta_a\n", + "\n", + "Eta_c = (1-T2/T1)*100;\t\t\t#%\n", + "print \"Carnot Efficiency of Engine in %% : %.1f\"%(Eta_c)\n", + "print (\"We would not issue a patent as actual efficiency is greater than carnot efficiency.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Actual Efficiency of Engine in % : 45.0\n", + "Carnot Efficiency of Engine in % : 37.8\n", + "We would not issue a patent as actual efficiency is greater than carnot efficiency.\n" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.14 Page No : 28" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 1000.;\t\t\t#K\n", + "T3 = 100.;\t\t\t#K\n", + "Q1 = 1680.;\t\t\t#KJ\n", + "\n", + "#Eta_a = Eta_b : 1-T2/T1 = 1-T3/T2\n", + "T2 = math.sqrt(T1*T3);\t\t\t#K\n", + "Eta_a = 1-T2/T1;\n", + "Eta_b = Eta_a;\n", + "W1 = Eta_a*Q1;\t\t\t#KJ\n", + "Q2 = Q1-W1;\t\t\t#KJ\n", + "Q3 = (1-Eta_b)*Q2;\t\t\t#KJ\n", + "print \"Heat rejected by engine B in KJ : \",Q3\n", + "print \"Temperature at which heat is rejected by engine A in K : %.2f\"%T2\n", + "print \"Workdone by engine A in KJ ; %.2f\"%W1\n", + "\n", + "W2 = Eta_b*Q2;\t\t\t#KJ\n", + "print \"Workdone by engine B in KJ ; %.2f\"%W2\n", + "\n", + "#If W1 = W2\n", + "#Q/T = constant\n", + "T2 = (T1+T3)/2;\t\t\t#K\n", + "Eta_a = (1-T2/T1)*100;\t\t\t#%\n", + "Eta_b = (1-T3/T2)*100;\t\t\t#%\n", + "print (\"If Engine A & B deliver equal work.\")\n", + "print \"of Engine A in %% : %.2f\"%Eta_a\n", + "print \"of Engine B in %% : %.2f\"%Eta_b\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat rejected by engine B in KJ : 168.0\n", + "Temperature at which heat is rejected by engine A in K : 316.23\n", + "Workdone by engine A in KJ ; 1148.74\n", + "Workdone by engine B in KJ ; 363.26\n", + "If Engine A & B deliver equal work.\n", + "of Engine A in % : 45.00\n", + "of Engine B in % : 81.82\n" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.15 Page No : 29" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables :\n", + "T1 = 800.+273;\t\t\t#K\n", + "T2 = 30.+273;\t\t\t#K\n", + "T3 = 30.+273;\t\t\t#K\n", + "T4 = -15.+273;\t\t\t#K\n", + "Q1 = 1900.;\t\t\t#KJ\n", + "W2 = 290.;\t\t\t#KJ\n", + "\n", + "# Calculations and Results\n", + "#Eta = 1-T2/T1 = W1/Q1\n", + "W1 = (1-T2/T1)*Q1;\t\t\t#KJ\n", + "Q2 = Q1-W1;\t\t\t#KJ\n", + "W3 = W1-W2;\t\t\t#KJ\n", + "\n", + "#COP = T4/(T3-T4) = Q4/W3\n", + "Q4 = T4/(T3-T4)*W3;\t\t\t#KJ\n", + "print \"Heat absorbed by refrigerant in KJ : %.2f\"%Q4\n", + "\n", + "Q3 = W3+Q4;\t\t\t#KJ\n", + "TotalHeat = Q2+Q3;\t\t\t#KJ\n", + "print \"Total Heat transferred to reservoir at 30 degree centigrade in KJ : %.2f\"%TotalHeat\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat absorbed by refrigerant in KJ : 6154.54\n", + "Total Heat transferred to reservoir at 30 degree centigrade in KJ : 7764.54\n" + ] + } + ], + "prompt_number": 34 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.16 Page No : 30" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 840.+273;\t\t\t#K\n", + "T2 = 60.+273;\t\t\t#K\n", + "T3 = 5.+273;\t\t\t#K\n", + "W3 = 30.;\t\t\t#KW\n", + "Q3 = 17.;\t\t\t#KJ/s\n", + "\n", + "# Calculations\n", + "#Q3/T3 = Q4/T4\n", + "T4 = T2;\t\t\t#K\n", + "Q4 = Q3/T3*T4;\t\t\t#KJ/s\n", + "W2 = Q4-Q3;\t\t\t#KJ/s\n", + "W1 = W2+W3;\t\t\t#KJ/s\n", + "Q1subQ2 = W1;\t\t\t#KJ/s\n", + "#Q1/T1 = Q2/T2\n", + "Q1ByQ2 = T1/T2;\n", + "\t\t\t#Q1subQ2 = Q1subQ2*Q2-Q2\n", + "Q2 = Q1subQ2/(Q1ByQ2-1);\t\t\t#KW\n", + "Q1 = Q1ByQ2*Q2;\t\t\t#KW\n", + "\n", + "# Results\n", + "print \"Rate of heat supply from 800 degree C source in KW : %.1f\"%Q1\n", + "print \"Rate of heat rejection to sink in KW : %.3f\"%(Q2+Q4)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Rate of heat supply from 800 degree C source in KW : 47.6\n", + "Rate of heat rejection to sink in KW : 34.607\n" + ] + } + ], + "prompt_number": 35 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.17 Page No : 31" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 27.+273;\t\t\t#K\n", + "T2 = -23.+273;\t\t\t#K\n", + "W = 1.;\t\t\t#KW\n", + "Q2 = 20000.;\t\t\t#KJ/hr\n", + "\n", + "# Calculations and Results\n", + "Q2 = Q2/3600;\t\t\t#KJ/s\n", + "ActualCOP = Q2/W;\n", + "print \"COP of machine : %.3f\"%ActualCOP\n", + "\n", + "IdealCOP = T2/(T1-T2);\n", + "print \"Ideal COP of machine : %.0f\"%IdealCOP\n", + "print (\"ActualCOP>IdealCOP, Inventor's claim is wrong.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "COP of machine : 5.556\n", + "Ideal COP of machine : 5\n", + "ActualCOP>IdealCOP, Inventor's claim is wrong.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.18 Page No : 32" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import *\n", + "\t\t\t\n", + "# Variables :\n", + "#Heat Pump in winter\n", + "Q1 = 2400.;\t\t\t#KJ/hr/degree temperature difference\n", + "t1 = 20.;\t\t\t#degreeC\n", + "t2 = 0.;\t\t\t#degreeC\n", + "\n", + "# Calculations and Results\n", + "Q1 = Q1*(t1-t2)/3600;\t\t\t#KJ/s\n", + "T1 = t1+273;\t\t\t#K\n", + "T2 = t2+273;\t\t\t#K\n", + "COP = T1/(T1-T2);\n", + "W = Q1/COP;\t\t\t#KW\n", + "print \"Power required to drive heat pump in KW : %.2f\"%W\n", + "\n", + "#Refrigerating unit in summer\n", + "T4 = 20+273;\t\t\t#K\n", + "#Q4 = 2400*(T3-T4)/3600;\t\t\t#KJ/s\n", + "Q3subQ4 = W;\t\t\t#KJ\n", + "#COP = Q4/(Q3subQ4) = T4/(T3-T4);\n", + "#T3**2-2*T3*T4+T4**2-T4*3600/2400*(Q3subQ4) = 0\n", + "P = array([1, -2*T4, T4**2-T4*3600./2400*(Q3subQ4)])\n", + "T3 = roots(P);\n", + "T3 = T3[0];\t\t\t#K(Maximum outside temperature)\n", + "print \"Maximum outside temperature in K : %.0f\"%T3\n", + "print \"in degree C : %.0f\"%(T3-273)\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power required to drive heat pump in KW : 0.91\n", + "Maximum outside temperature in K : 313\n", + "in degree C : 40\n" + ] + } + ], + "prompt_number": 39 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.20 Page No : 34" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "VcByVa = 14.;\t\t\t#Overall expansion ratio\n", + "T1 = 257+273.;\t\t\t#K\n", + "T2 = 27+273.;\t\t\t#K\n", + "Gamma = 1.4;\n", + "Ta = T1;\t\t\t#K\n", + "Tb = T1;\t\t\t#K\n", + "Tc = T2;\t\t\t#K\n", + "Td = T2;\t\t\t#K\n", + "\n", + "# Calculations and Results\n", + "VcByVb = (Tb/Tc)**(1/(Gamma-1));\t\t\t#Expansion ratio for Adiabatic Process : \n", + "print \"ratio for adiabatic process : %.2f\"%VcByVb\n", + "\n", + "VbByVa = VcByVa/VcByVb;\t\t\t#Expansion ratio for Isothermal Process : \n", + "print \"Expansion ratio for Isothermal process : %.3f\"%VbByVa\n", + "Eta = (1-T2/T1)*100;\t\t\t#%\n", + "print \"Thermal Efficiency of carnot cycle in %% : %.1f\"%Eta\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "ratio for adiabatic process : 4.15\n", + "Expansion ratio for Isothermal process : 3.375\n", + "Thermal Efficiency of carnot cycle in % : 43.4\n" + ] + } + ], + "prompt_number": 40 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.21 Page No : 34" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "W = 10.;\t\t\t#KW\n", + "\t\t\t#For flat plate collector\n", + "T1 = 90.+273;\t\t\t#K\n", + "T2 = 27.+273;\t\t\t#K\n", + "Tmax = T1;\t\t\t#K\n", + "IE = 1.;\t\t\t#KW/m**2 incident energy\n", + "EtaCollection = 60./100;\n", + "\n", + "# Calculations and Results\n", + "#Eta = 1-T2/T1 = W/Q1\n", + "Q1 = W/(1-T2/T1);\t\t\t#KJ/s\n", + "A1 = Q1/IE/EtaCollection;\t\t\t#m**2\n", + "print \"Solar Collector Area required in m**2 : %.3f\"%A1\n", + "\n", + "#For parabolic collector\n", + "T3 = 250.+273;\t\t\t#K\n", + "T4 = 27.+273;\t\t\t#K\n", + "Tmax = T3;\t\t\t#K\n", + "IE = 1.;\t\t\t#KW/m**2 incident energy\n", + "EtaCollection = 50./100;\n", + "\n", + "#Eta = 1-T2/T1 = W/Q1\n", + "Q3 = W/(1-T4/T3);\t\t\t#KJ/s\n", + "A2 = Q3/IE/EtaCollection;\t\t\t#m**2\n", + "print \"Parabolic Solar Collector Area required in m**2 : %.3f\"%A2\n", + "\t\t\t#Answer of 2nd part is wrong in the book.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Solar Collector Area required in m**2 : 96.032\n", + "Parabolic Solar Collector Area required in m**2 : 46.906\n" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.24 Page No : 37" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 40.+273;\t\t\t#K\n", + "T2 = 5.+273;\t\t\t#K\n", + "T3 = 400.+273;\t\t\t#K\n", + "T4 = T1;\t\t\t#K\n", + "Q2 = 1500.;\t\t\t#KJ/min\n", + "\n", + "# Calculations and Results\n", + "COP_R = T2/(T1-T2);\n", + "print \"COP of refrigerator is : %.3f\"%COP_R\n", + "\n", + "Q2dot = Q2/60;\t\t\t#KJ/s\n", + "Wdot = Q2dot/COP_R;\t\t\t#KW\n", + "print \"Work Input to refrigerator in KW : %.4f\"%Wdot\n", + "\n", + "Eta = (1-T4/T3);\t\t\t#%\n", + "Q3dot = Wdot/Eta;\t\t\t#KW\n", + "OverallCOP = Q2dot/Q3dot;\t\t\t#\n", + "print \"Overall COP of refrigerator : %.4f\"%OverallCOP\n", + "\t\t\t\n", + "#Ans of overall COP is wrong in the book.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "COP of refrigerator is : 7.943\n", + "Work Input to refrigerator in KW : 3.1475\n", + "Overall COP of refrigerator : 4.2488\n" + ] + } + ], + "prompt_number": 42 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.25 Page No : 38" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 1500.;\t\t\t#K\n", + "T2 = 450.;\t\t\t#K\n", + "T3 = 150.;\t\t\t#K\n", + "Q3 = 250.;\t\t\t#KJ\n", + "\n", + "# Calculations and Results\n", + "COP_CR = T3/(T2-T3);\n", + "print \"COP of cold refrigerator is : %.1f\"%COP_CR\n", + "\n", + "COP_HR = T2/(T1-T2);\n", + "print \"COP of hotter refrigerator is : %.4f\"%COP_HR\n", + "COP = T3/(T1-T3);\n", + "print \"COP of composite system is : %.3f\"%COP\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "COP of cold refrigerator is : 0.5\n", + "COP of hotter refrigerator is : 0.4286\n", + "COP of composite system is : 0.111\n" + ] + } + ], + "prompt_number": 43 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.26 Page No : 38" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 870.;\t\t\t#K\n", + "T2 = 580.;\t\t\t#K\n", + "T3 = 290.;\t\t\t#K\n", + "Wdot = 85.;\t\t\t#KW\n", + "Q3 = 3000.;\t\t\t#KJmin\n", + "Q3 = Q3/60.;\t\t\t#KJ/s\n", + "Q1plusQ2 = Wdot+Q3;\t\t\t#KJ\n", + "\n", + "#sigma(Q/T) = 0\n", + "#Q1/T1+Q2/T2 = Q3/T3\n", + "#Q1/T1+(Q1plusQ2-Q1)/T2-Q3/T3 = 0\n", + "Q1 = (-Q3*T1*T2/T3+Q1plusQ2*T1)/(T1-T2);\t\t\t#KW\n", + "print \"Heat Supplied by source1 in KW : %.0f\"%Q1\n", + "\n", + "Q2 = Q1plusQ2-Q1;\t\t\t#KW\n", + "print \"Heat Supplied by source2 in KW : %.0f\"%Q2\n", + "\n", + "Eta = Wdot/(Q1+Q2)*100;\t\t\t#%\n", + "print \"Efficiency of engine in %% : %.2f\"%Eta\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat Supplied by source1 in KW : 105\n", + "Heat Supplied by source2 in KW : 30\n", + "Efficiency of engine in % : 62.96\n" + ] + } + ], + "prompt_number": 45 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/Thermodynamics_by_C_P_Arora/ch4.ipynb b/Thermodynamics_by_C_P_Arora/ch4.ipynb new file mode 100755 index 00000000..6ceae71d --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/ch4.ipynb @@ -0,0 +1,863 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:ea35efcfa8b2b76b1ca1456260b722b88d999ecbb9e7a41ed6195c31bb1ca2a1" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 4 : Entropy" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.1 Page No : 6" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 400.;\t\t\t#Kelvin\n", + "T2 = 300.;\t\t\t#Kelvin\n", + "Q1 = 4800.;\t\t\t#KJ\n", + "Q2 = -4800.;\t\t\t#KJ\n", + "\n", + "# Calculations\n", + "#Q1/T1+Q2/T2< = 0\n", + "LHS = Q1/T1+Q2/T2;\t\t\t#\n", + "\n", + "# Results\n", + "print \"/T1+Q2/T2 = \",LHS\n", + "print (\"It is less than zero. Process is irreversible\")\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "/T1+Q2/T2 = -4.0\n", + "It is less than zero. Process is irreversible\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.2 Page No : 6" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T1 = 290.+273;\t\t\t#Kelvin\n", + "T2 = 8.5+273;\t\t\t#Kelvin\n", + "Q1 = 300.;\t\t\t#KJ\n", + "#Case 1 :\n", + "Q2 = -215.;\t\t\t#KJ\n", + "\n", + "# Calculations and Results\n", + "sigmaQbyT = Q1/T1+Q2/T2\n", + "print \"(i) Q1/T1+Q2/T2 = %.4f\"%sigmaQbyT\n", + "print (\"It is less than zero. Cycle is irreversible\")\n", + "\n", + "#Case 2 :\n", + "Q2 = -150.;\t\t\t#KJ\n", + "sigmaQbyT = Q1/T1+Q2/T2\n", + "print \"(ii) Q1/T1+Q2/T2 = %.0f\"%sigmaQbyT\n", + "print (\"It is equal to zero. Cycle is reversible\");\n", + "#Case 3 :\n", + "Q2 = -75.;\t\t\t#KJ\n", + "sigmaQbyT = Q1/T1+Q2/T2\n", + "print \"(iii) Q1/T1+Q2/T2 = %.4f\"%sigmaQbyT\n", + "print (\"It is greater than zero. Cycle is impossible.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Q1/T1+Q2/T2 = -0.2309\n", + "It is less than zero. Cycle is irreversible\n", + "(ii) Q1/T1+Q2/T2 = 0\n", + "It is equal to zero. Cycle is reversible\n", + "(iii) Q1/T1+Q2/T2 = 0.2664\n", + "It is greater than zero. Cycle is impossible.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.3 Page No : 18" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\t\t\t\n", + "# Variables :\n", + "V1 = 10.;\t\t\t#m**3\n", + "T1 = 175.+273;\t\t\t#Kelvin\n", + "T2 = 36.+273;\t\t\t#Kelvin\n", + "p1 = 5.;\t\t\t#bar\n", + "p2 = 1.;\t\t\t#bar\n", + "R = 287.;\t\t\t#KJ/KgK\n", + "Cp = 1.005;\t\t\t#KJ/KgK\n", + "\n", + "# Calculations\n", + "#p*V = m*R*T\n", + "m = p1*10**5*V1/R/T1;\t\t\t#Kg\n", + "deltaS = m*Cp*math.log(T2/T1)+m*R/1000*math.log(p1/p2);\t\t\t#KJ/K\n", + "\n", + "# Results\n", + "print \"Entropy change in KJ/K : %.3f\"%deltaS\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Entropy change in KJ/K : 3.445\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.4 Page No : 18" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "deltaS = 5.;\t\t\t#KJ/KgK\n", + "W = 2000.;\t\t\t#KJ/Kg\n", + "T1 = 327.+273;\t\t\t#Kelvin\n", + "\n", + "# Calculations and Results\n", + "Q1 = deltaS*T1;\t\t\t#KJ/Kg\n", + "Q2 = Q1-W;\t\t\t#KJ/Kg\n", + "Eta = W/Q1*100;\t\t\t#%\n", + "print \"Efficiency in %% : %.1f\"%Eta\n", + "\n", + "T2 = Q2/Q1*T1;\t\t\t#K\n", + "print \"Lowest temperature in Kelvin : \",T2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Efficiency in % : 66.7\n", + "Lowest temperature in Kelvin : 200.0\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.5 Page No : 19" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy\n", + "from scipy.integrate import quad \n", + "\t\t\t\n", + "# Variables :\n", + "mc = 0.5;\t\t\t#Kg\n", + "Tc = 100.+273;\t\t\t#K\n", + "Cpc = 0.393;\t\t\t#KJ/KgK\n", + "Tw = 10.+273;\t\t\t#K\n", + "Cpw = 4.2;\t\t\t#KJ/KgK\n", + "\n", + "# Calculations and Results\n", + "def f0(T): \n", + "\t return mc*Cpc\n", + "\n", + "Q = quad(f0,Tc,Tw)[0]\n", + "\n", + "def f1(T): \n", + "\t return mc*Cpc/T\n", + "\n", + "deltaSc = quad(f1,Tc,Tw)[0]\n", + "\n", + "deltaSw = abs(Q)/Tw;\t\t\t#KJ/K\n", + "deltaSuniverse = deltaSc+deltaSw;\t\t\t#Kj/K\n", + "print \"Part (i) Chane in entropy in KJ/K : %.4f\"%deltaSuniverse\n", + "\n", + "T1 = 383.;\t\t\t#K\n", + "T2 = 283.;\t\t\t#K\n", + "T = (T1+T2)/2;\t\t\t#K\n", + "\n", + "def f2(T): \n", + "\t return 1/T\n", + "a = quad(f2,T1,T)[0]\n", + "deltaSuniverse = mc*Cpc*( a + 0.1627)\n", + "print \"Part (ii) Chane in entropy in KJ/K : %.5f\"%deltaSuniverse\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) Chane in entropy in KJ/K : 0.0082\n", + "Part (ii) Chane in entropy in KJ/K : 0.00448\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.6 Page No : 20" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables :\n", + "Tc = 35.+273;\t\t\t#K\n", + "W = 500.;\t\t\t#KJ\n", + "T1 = 308.;\t\t\t#K\n", + "T2 = 308.;\t\t\t#K\n", + "T0 = 15.+273;\t\t\t#K\n", + "Q = W;\t \t\t#KJ\n", + "deltaS1 = 0;\t\t\t#as heat supplied is zero\n", + "\n", + "# Calculations\n", + "deltaS2 = Q/T0;\t\t\t#KJ/K\n", + "\n", + "# Results\n", + "print \"Change in entropy in KJ/K : %.4f\"%deltaS2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Change in entropy in KJ/K : 1.7361\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.7 Page No : 20" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\n", + "# Variables :\n", + "mi = 0.5;\t\t\t#Kg\n", + "Ti = -10.+273;\t\t\t#K\n", + "Cpi = 2.;\t\t\t#KJ/KgK\n", + "Cpw = 4.2;\t\t\t#KJ/KgK\n", + "Li = 334.;\t\t\t#KJ/Kg\n", + "mc = 5.;\t\t\t#Kg\n", + "Tc = 80.+273;\t\t\t#K\n", + "Cpc = 0.5;\t\t\t#KJ/KgK\n", + "T0 = 0.+273;\t\t\t#K\n", + "\n", + "# Calculations and Results\n", + "#mi*[Cpi*(T0-Ti)+Li+Cpw*(T-T0)] = mc*Cpc*(Tc-T)\n", + "T = (mc*Cpc*Tc-mi*Cpi*(T0-Ti)-mi*Li+mi*Cpw*T0)/(mi*Cpw+mc*Cpc);\t\t\t#K\n", + "deltaSi = mi*Cpi*math.log(T0/Ti)+Li/T0+mi*Cpw*math.log(T/T0);\t\t\t#KJ/K\n", + "print \"Entropy chane of Ice in KJ/K : %.4f\"%deltaSi\n", + "\n", + "deltaSc = mc*Cpc*math.log(T/Tc);\t\t\t#KJ/K\n", + "print \"Entropy chane of Copper in KJ/K : %.4f\"%deltaSc\n", + "\n", + "deltaSsurr = 0;\t\t\t#No heat transfer between system & Surrounding\n", + "deltaSuniverse = deltaSi+deltaSc+deltaSsurr;\t\t\t#KJ/K\n", + "print \"Entropy chane of universe in KJ/K : %.4f\"%deltaSuniverse\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Entropy chane of Ice in KJ/K : 1.2989\n", + "Entropy chane of Copper in KJ/K : -0.5971\n", + "Entropy chane of universe in KJ/K : 0.7018\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.8 Page No : 21" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy\n", + "from scipy.integrate import quad \n", + "\t\t\t\n", + "# Variables :\n", + "m1 = 5.;\t\t\t#Kg\n", + "T1 = 200.+273;\t\t\t#K\n", + "Cp1 = 0.4;\t\t\t#KJ/KgK\n", + "m2 = 100.;\t\t\t#Kg\n", + "T2 = 30.+273;\t\t\t#K\n", + "Cp2 = 2.1;\t\t\t#KJ/KgK\n", + "\n", + "# Calculations\n", + "#m1*Cp1*(T1-T) = m2*Cp2*(T-T2)\n", + "T = (m1*Cp1*T1+T2*m2*Cp2)/(m2*Cp2+m1*Cp1);\t\t\t#K\n", + "\n", + "def f8(T): \n", + "\t return m1*Cp1/T\n", + "\n", + "deltaS1 = quad(f8,T1,T)[0]\n", + "\n", + "def f9(T): \n", + "\t return m2*Cp2/T\n", + "\n", + "deltaS2 = quad(f9,T2,T)[0]\n", + "deltaSsurr = 0;\t\t\t#No heat transfer neglected\n", + "deltaSuniverse = deltaS1+deltaS2+deltaSsurr;\t\t\t#KJ/K\n", + "\n", + "# Results\n", + "print \"Increase in Entropy of universe in KJ/K : %.4f\"%deltaSuniverse\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Increase in Entropy of universe in KJ/K : 0.2284\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.9 Page No : 22" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy\n", + "from scipy.integrate import quad \n", + "\n", + "# Variables :\n", + "HeatTransfer = 2;\t\t\t#KJ/degreeCentigrade(it is d'Q/dT)\n", + "T1 = 27+273;\t\t\t#K\n", + "T2 = 127+273;\t\t\t#K\n", + "\n", + "# Calculations\n", + "def f22(T): \n", + "\t return HeatTransfer/T\n", + "\n", + "deltaS = quad(f22,T1,T2)[0]\n", + "\n", + "# Results\n", + "print \"Entropy change when heat is transfered to system in KJ/K : %.4f\"%deltaS\n", + "print \"change when end states are achieved by stirring action in KJ/K : %.4f\"%deltaS\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Entropy change when heat is transfered to system in KJ/K : 0.5754\n", + "change when end states are achieved by stirring action in KJ/K : 0.5754\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.11 Page No : 23" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy\n", + "from scipy.integrate import quad \n", + "\t\t\t\n", + "# Variables :\n", + "m1 = 2.;\t\t\t#Kg\n", + "T1 = 80.+273;\t\t\t#K\n", + "m2 = 3.;\t\t\t#Kg\n", + "T2 = 30.+273;\t\t\t#K\n", + "Cp = 4.187;\t\t\t#KJ/KgK\n", + "\n", + "# Calculations\n", + "#m1*Cp1*(T1-T) = m2*Cp2*(T-T2)\n", + "T = (m1*Cp*T1+T2*m2*Cp)/(m2*Cp+m1*Cp);\t\t\t#K\n", + "\n", + "def f26(T): \n", + "\t return m1*Cp/T\n", + "\n", + "deltaS = quad(f26,T1,T)[0] + 0.8029\n", + "\n", + "print \"Total Entropy change due to mixing process in KJ/K : %.4f\"%deltaS\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Total Entropy change due to mixing process in KJ/K : 0.0592\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.14 Page No : 26" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy.integrate import quad \n", + "\t\t\t\n", + "# Variables :\n", + "V1 = 4.;\t\t\t#m**3\n", + "V2 = 4.;\t\t\t#m**3\n", + "m = 20.;\t\t\t#Kg\n", + "p1 = 4.*100;\t\t\t#KPa\n", + "p2 = 8.*100;\t\t\t#KPa\n", + "Cp = 1.005;\t\t\t#KJ/KgK\n", + "Cv = 0.718;\t\t\t#KJ/KgK\n", + "\n", + "# Calculations and Results\n", + "R = Cp-Cv;\t\t\t#KJ/KgK\n", + "T1 = p1*V1/m/R;\t\t\t#K\n", + "T2 = p2*V2/m/R;\t\t\t#K\n", + "deltaU = m*Cv*(T2-T1);\t\t\t#KJ\n", + "print \"Change in internal energy in KJ : %.2f\"%deltaU\n", + "W = 0;\t\t\t#KJ\n", + "print \"no movement, Work done in KJ : \",W\n", + "\n", + "Q = W+deltaU;\t\t\t#KJ\n", + "print \"Heat transfered in KJ : %.2f\"%Q\n", + "\n", + "def f19(T): \n", + "\t return m*Cv/T\n", + "\n", + "deltaS = quad(f19,T1,T2)[0]\n", + "\n", + "print \"Entropy change in KJ/K : %.4f\"%deltaS\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Change in internal energy in KJ : 4002.79\n", + "no movement, Work done in KJ : 0\n", + "Heat transfered in KJ : 4002.79\n", + "Entropy change in KJ/K : 9.9536\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.15 Page No : 26" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy\n", + "from scipy.integrate import quad \n", + "\t\t\t\n", + "# Variables :\n", + "V1 = 4.;\t\t\t#m**3\n", + "V2 = 4.;\t\t\t#m**3\n", + "m = 600./1000;\t\t\t#Kg\n", + "C = 150.;\t\t\t#J/K\n", + "T1 = 100.+273;\t\t\t#K\n", + "T0 = 8.+273;\t\t\t#K\n", + "Cp = C/1000;\t\t\t#KJ/K\n", + "\n", + "# Calculations and Results\n", + "def f10(T): \n", + "\t return Cp/T\n", + "\n", + "deltaSblock = quad(f10,T1,T0)[0]\n", + "\n", + "Q = Cp*(T1-T0);\t\t\t#KJ\n", + "deltaSlake = Q/T0;\t\t\t#KJ/K\n", + "deltaSuniverse = deltaSblock+deltaSlake;\t\t\t#KJ/K\n", + "print \"Part (i) Entropy change of universe in KJ/K : %.4f\"%deltaSuniverse\n", + "\n", + "T1 = 8.+273;\t\t\t#K\n", + "Z = 100.;\t\t \t#meter\n", + "g = 9.81;\t\t\t #gravity constant\n", + "PE = m*g*Z/1000.;\t\t#KJ\n", + "deltaT = PE/Cp;\t\t\t#degree centigrade\n", + "T2 = T1+deltaT;\t\t\t#K\n", + "\n", + "def f11(T): \n", + "\t return Cp/T\n", + "\n", + "deltaSblock = - quad(f11,T1,T2)[0]\n", + "\n", + "deltaSlake = PE/T0;\t\t\t#KJ/K\n", + "deltaSuniverse = deltaSblock+deltaSlake;\t\t\t#KJ/K\n", + "print \"Part (ii) Entropy change of universe in %f KJ/K : \"%deltaSuniverse\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) Entropy change of universe in KJ/K : 0.0066\n", + "Part (ii) Entropy change of universe in 0.000014 KJ/K : \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.17 Page No : 29" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\n", + "\n", + "# Variables :\n", + "m = 1.;\t\t\t#Kg\n", + "p1 = 1.;\t\t\t#bar\n", + "T1 = 290.;\t\t\t#K\n", + "p2 = 30.;\t\t\t#bar\n", + "T2 = 290.;\t\t\t#K\n", + "n = 1.3;\t\t\t#consmath.tant\n", + "R = 300.;\t\t\t#Nm/KgK\n", + "Cv = 0.72;\t\t\t#KJ/KgK\n", + "\n", + "# Calculations and Results\n", + "print (\"part (a) Isothermally\")\n", + "V1 = R*T1/p1/10**5;\t\t\t#m**3/Kg\n", + "V2 = p1*V1/p2;\t\t\t#m**3/Kg\n", + "w = p1*10**5*V1*math.log(V2/V1)/1000;\t\t\t#KJ/Kg\n", + "print \"Workdone in KJ/Kg : %.1f\"%w\n", + "\n", + "deltaU = m*Cv*(T2-T1);\t\t\t#KJ(as T1 = T2)\n", + "print \"Change in internal energy in KJ : \",deltaU\n", + "\n", + "q = w+deltaU;\t\t\t#KJ/Kg\n", + "print \"Heat transfer in KJ/Kg : %.1f\"%q\n", + "\n", + "S2subS1 = m*R/1000*math.log(V2/V1)+m*Cv*math.log(T2/T1);\t\t\t#KJ/KgK\n", + "print \"Change in entropy in KJ/KgK : %.4f\"%S2subS1\n", + "\n", + "print (\"\\npart (b) Polytropically\")\n", + "T2 = T1*(p2/p1)**((n-1)/n);\t\t\t#K\n", + "print \"Temperature T2 in K : %.1f\"%T2\n", + "\n", + "V1 = R*T1/p1/10**5;\t\t\t#m**3/Kg\n", + "V2 = (p1/p2)**(1/n)*V1;\t\t\t#m**3/Kg\n", + "w = m*R/1000*(T1-T2)/(n-1);\t\t\t#KJ/Kg\n", + "print \"Workdone in KJ/Kg : %.1f\"%w\n", + "\n", + "deltaU = m*Cv*(T2-T1);\t\t\t#KJ(as T1 = T2)\n", + "q = w+deltaU;\t\t\t#KJ/Kg\n", + "print \"Heat transfer in KJ/Kg : %.1f\"%q\n", + "\n", + "S2subS1 = m*R/1000*math.log(V2/V1)+m*Cv*math.log(T2/T1);\t\t\t#KJ/KgK\n", + "print \"Change in entropy in KJ/KgK : %.4f\"%S2subS1\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "part (a) Isothermally\n", + "Workdone in KJ/Kg : -295.9\n", + "Change in internal energy in KJ : 0.0\n", + "Heat transfer in KJ/Kg : -295.9\n", + "Change in entropy in KJ/KgK : -1.0204\n", + "\n", + "part (b) Polytropically\n", + "Temperature T2 in K : 635.7\n", + "Workdone in KJ/Kg : -345.7\n", + "Heat transfer in KJ/Kg : -96.8\n", + "Change in entropy in KJ/KgK : -0.2198\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.18 Page No : 30" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\t\t\t\n", + "# Variables :\n", + "P1 = 480.;\t\t\t#kPa\n", + "T1 = 190.+273;\t\t\t#K\n", + "T3 = 190.+273;\t\t\t#K\n", + "P2 = 94.;\t\t\t#kPa\n", + "P3 = 150.;\t\t\t#kPa\n", + "T2 = T3*P2/P3;\t\t\t#K\n", + "R = 0.29;\t\t\t#KJ/KgK\n", + "m = 1.;\t\t\t#Kg\n", + "Cp = 1.011;\t\t\t#KJ/KgK\n", + "\n", + "#T2/T1 = (P2/P1)**((Gamma-1)/Gamma)\n", + "#((Gamma-1)/Gamma) = math.log(T2/T1)/math.log(P2/P1);\t\t\t#\n", + "Gamma = 1.402;\t\t\t#by trial method\n", + "print \"Index of adiabatic expansion : %.2f\"%Gamma\n", + "\n", + "Cv = R/(Gamma-1);\t\t\t#KJ/KgK\n", + "W1_2 = m*R*(T1-T2)/(Gamma-1);\t\t\t#KJ/Kg\n", + "print \"Work done, W1-2 per Kg of air in KJ/Kg : %.2f\"%W1_2\n", + "\n", + "W2_3 = 0;\t\t\t#Consmath.tant volume process\n", + "print \"Work done, W2-3 per Kg of air in KJ/Kg : %.0f\"%W2_3\n", + "\n", + "W3_1 = m*R*T2*math.log(P3/P1);\t\t\t#KJ/Kg\n", + "print \"Work done, W1-2 per Kg of air in KJ/Kg : %.2f\"%W3_1\n", + "\n", + "W = W1_2+W2_3+W3_1;\t\t\t#KJ/Kg\n", + "print \"Total Work done in KJ/Kg : %.2f\"%W\n", + "\n", + "S2subS1 = 0;\t\t\t#adiabatic process\n", + "S3subS2 = m*R*math.log(P2/P3)+m*Cp*math.log(T3/T2);\t\t\t#KJ/KgK\n", + "print \"Change in specific entropy, S1-2 in KJ/KgK ; %.3f\"%S3subS2\n", + "\n", + "S1subS3 = -S2subS1-S3subS2;\t\t\t#KJ/KgK\n", + "print \"Change in specific entropy, S3-1 in KJ/KgK ; %.3f\"%S1subS3\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Index of adiabatic expansion : 1.40\n", + "Work done, W1-2 per Kg of air in KJ/Kg : 124.70\n", + "Work done, W2-3 per Kg of air in KJ/Kg : 0\n", + "Work done, W1-2 per Kg of air in KJ/Kg : -97.87\n", + "Total Work done in KJ/Kg : 26.82\n", + "Change in specific entropy, S1-2 in KJ/KgK ; 0.337\n", + "Change in specific entropy, S3-1 in KJ/KgK ; -0.337\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.21 Page No : 33" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\t\t\t\n", + "# Variables :\n", + "p1 = 5.;\t\t\t#bar\n", + "T1 = 30.+273;\t\t\t#K\n", + "p2 = 4.;\t\t\t#bar\n", + "m = 1.; \t\t\t#Kg\n", + "R = 0.287;\t\t\t#KJ/KgK\n", + "\n", + "# Calculations\n", + "#deltaS = m*R*math.log(p1/p2)+m*Cp*math.log(T2/T1);\t\t\t#KJ/kgK\n", + "deltaS = m*R*math.log(p1/p2);\t\t\t#KJ/kgK(T2/T1 leads to 2nd term zero)\n", + "\n", + "# Results\n", + "print \"Entropy Change in KJ/KgK : %.5f\"%deltaS\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Entropy Change in KJ/KgK : 0.06404\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.22 Page No : 34" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy\n", + "from scipy.integrate import quad \n", + "\t\t\t\n", + "# Variables :\n", + "Cpg = 1.05;\t\t\t#KJ/KgK\n", + "t1 = 400.;\t\t\t#degree centigrade\n", + "t2 = 360.;\t\t\t#degree centigrade\n", + "T = 30.+273;\t\t\t#K\n", + "\n", + "# Calculations\n", + "Q = Cpg*(t1-t2);\t\t\t#KJ/Kg\n", + "deltaSsurr = Q/T;\t\t\t#KJ/KgK\n", + "\n", + "def f25(T): \n", + "\t return Cpg/T\n", + "\n", + "deltaSsystem = quad(f25,t1+273,t2+273)[0]\n", + "deltaSuniverse = deltaSsystem+deltaSsurr;\t\t\t#KJ/KgK\n", + "\n", + "# Results\n", + "print \"Change in entropy of the universe in KJ/KgK : %.4f\"%deltaSuniverse\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Change in entropy of the universe in KJ/KgK : 0.0743\n" + ] + } + ], + "prompt_number": 18 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/Thermodynamics_by_C_P_Arora/ch5.ipynb b/Thermodynamics_by_C_P_Arora/ch5.ipynb new file mode 100755 index 00000000..a7688b21 --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/ch5.ipynb @@ -0,0 +1,685 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:3ebf775cd37f8da59364495c7787c49c7b13cef5f433a38d770b6bcb86676939" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 5 : Properties of Steam" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.1 Page No : 6" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables : \n", + "deltaQ = 1000.;\t\t\t#KJ\n", + "T = 1073.;\t\t\t#Kelvin\n", + "T0 = 20.+273;\t\t\t#Kelvin\n", + "\n", + "# Calculations and Results\n", + "deltaS = deltaQ/T;\t\t\t#KJ/K\n", + "A = deltaQ-T0*deltaS;\t\t\t#KJ\n", + "print \"Available energy in KJ : %.2f\"%A\n", + "\n", + "UA = T0*deltaS;\t\t\t#KJ\n", + "print \"Unavailable energy in KJ : %.2f\"%UA\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Available energy in KJ : 726.93\n", + "Unavailable energy in KJ : 273.07\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.2 Page No : 6" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\t\t\t\n", + "# Variables :\n", + "m = 2.;\t\t\t#Kg\n", + "T1 = 300.+273;\t\t\t#Kelvin\n", + "T2 = 150.+273;\t\t\t#Kelvin\n", + "T0 = 20.+273;\t\t\t#Kelvin\n", + "Cp = 0.45;\t\t\t#KJ/KgK\n", + "\n", + "# Calculations and Results\n", + "deltaQ = m*Cp*(T1-T2);\t\t\t#KJ\n", + "deltaS = m*Cp*math.log(T1/T2);\t\t\t#KJ/K\n", + "A = deltaQ-T0*deltaS;\t\t\t#KJ\n", + "print \"Reversible work or Available energy in KJ : %.2f\"%A\n", + "\n", + "UA = T0*deltaS;\t\t\t#KJ\n", + "print \"Irreversibility in KJ : %.2f\"%UA\n", + "#Irreversibilty is not calculated in the book and asked in the question.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Reversible work or Available energy in KJ : 54.96\n", + "Irreversibility in KJ : 80.04\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.3 Page No : 6" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\t\t\t\n", + "# Variables :\n", + "m = 5.;\t\t\t#Kg\n", + "p = 1.;\t\t\t#bar\n", + "T0 = 20.+273;\t\t\t#Kelvin\n", + "T1 = 23.+273;\t\t\t#Kelvin\n", + "T2 = 227.+273;\t\t\t#Kelvin\n", + "Cp = 1.005;\t\t\t#J/KgK\n", + "\n", + "# Calculations\n", + "deltaS = Cp*math.log(T1/T2);\t\t\t#KJ/KgK\n", + "deltaQ = Cp*(T2-T1);\t\t\t#KJ\n", + "A = m*(deltaQ+T0*deltaS);\t\t\t#KJ\n", + "\n", + "# Results\n", + "print \"Increase in availability due to heating in KJ : %.2f\"%A\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Increase in availability due to heating in KJ : 253.24\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.4 Page No : 7" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "Q1 = 400.;\t\t\t#KJ\n", + "T1 = 1227.+273;\t\t\t#Kelvin\n", + "T2 = 27.+273;\t\t\t#Kelvin\n", + "\n", + "# Calculations and Results\n", + "A = Q1-T2*Q1/T1;\t\t\t#KJ\n", + "print \"Availability of the system in KJ : \",A\n", + "\n", + "UA = Q1-A;\t\t\t#KJ\n", + "print \"Unavailable energy in KJ : \",UA\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Availability of the system in KJ : 320.0\n", + "Unavailable energy in KJ : 80.0\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.5 Page No : 7" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "P = 1.;\t\t\t#KW or KJ/s\n", + "Q = 6.;\t\t\t#MJ/hr\n", + "Q = Q*1000./3600;\t\t\t#KJ/s\n", + "T1 = 26.+273;\t\t\t#Kelvin\n", + "T2 = 3.+273;\t\t\t#Kelvin\n", + "\n", + "# Calculations\n", + "COP = T1/(T1-T2);\n", + "W = Q/COP;\t\t\t#KJ/s or KW\n", + "\n", + "# Results\n", + "print \"Work required to pump heat in KJ/s or KW : %.3f\"%W\n", + "print (\"As P>W, required condition can be maintained.\")\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Work required to pump heat in KJ/s or KW : 0.128\n", + "As P>W, required condition can be maintained.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.6 Page No : 8" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "T = 727.+273;\t\t\t#Kelvin\n", + "T0 = 17.+273;\t\t\t#Kelvin\n", + "deltaQ = 4000.;\t\t\t#KJ\n", + "\n", + "# Calculations and Results\n", + "deltaS = deltaQ/T;\t\t\t#KJ/K\n", + "A = deltaQ-T0*deltaS;\t\t\t#KJ\n", + "print \"Availability of heat energy in KJ : \",A\n", + "UA = T0*deltaS;\t\t\t#KJ\n", + "print \"Unavailable heat energy in KJ : \",UA\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Availability of heat energy in KJ : 2840.0\n", + "Unavailable heat energy in KJ : 1160.0\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.7 Page No : 8" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "deltaQ = 850.;\t\t\t#KJ\n", + "T = 180+273.;\t\t\t#Kelvin\n", + "T0 = 22+273.;\t\t\t#Kelvin\n", + "\n", + "# Calculations\n", + "deltaS = deltaQ/T;\t\t\t#KJ/K\n", + "A = deltaQ-T0*deltaS;\t\t\t#KJ\n", + "\n", + "# Results\n", + "print \"Available energy in KJ : %.2f\"%A\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Available energy in KJ : 296.47\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.8 Page No : 8" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "deltaQ = 850.;\t\t\t#KJ\n", + "T1 = 1400.+273.;\t\t\t#Kelvin\n", + "T2 = 250.+273.;\t\t\t#Kelvin\n", + "T0 = 20.+273.;\t\t\t#Kelvin\n", + "Q = -1000.; \t\t\t#KJ\n", + "\n", + "# Calculations and Results\n", + "deltaS1 = Q/T1;\t\t\t#KJ/K(-ve as heat leaving)\n", + "deltaS2 = abs(Q)/T2;\t\t\t#KJ/K(+ve Q as steam receives heat)\n", + "deltaS = deltaS1+deltaS2;\t\t\t#KJ/K\n", + "print (\"Part (i) As energy leaves the hot gases : \");\n", + "A = (T1-T0)*deltaS1;\t\t\t#KJ\n", + "UA = T0*deltaS1;\t\t\t#KJ\n", + "print \"Available energy in KJ : %.2f\"%A\n", + "print \"Unavailable energy in KJ : %.2f\"%UA\n", + "print (\"Part (ii) As energy enters the system : \");\n", + "\n", + "A = (T2-T0)*deltaS2;\t\t\t#KJ\n", + "UA = T0*deltaS2;\t\t\t#KJ\n", + "print \"Available energy in KJ : %.2f\"%A\n", + "print \"Part (iii) Unavailable energy in KJ : %.2f\"%UA\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) As energy leaves the hot gases : \n", + "Available energy in KJ : -824.87\n", + "Unavailable energy in KJ : -175.13\n", + "Part (ii) As energy enters the system : \n", + "Available energy in KJ : 439.77\n", + "Part (iii) Unavailable energy in KJ : 560.23\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.9 Page No : 9" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy\n", + "from scipy.integrate import quad \n", + "\t\t\t\n", + "# Variables :\n", + "deltaQ = 850.;\t\t\t#KJ\n", + "T1 = 523.;\t\t\t#Kelvin\n", + "T2 = 873.;\t\t\t#Kelvin\n", + "T0 = 288.;\t\t\t#Kelvin\n", + "dQ_by_dT = 100.;\t\t\t#KJ/K\n", + "\n", + "\n", + "# Calculations and Results\n", + "def f3(T): \n", + "\t return 100/T\n", + "\n", + "deltaS = quad(f3,T1,T2)[0]\n", + "\n", + "\n", + "def f4(T): \n", + "\t return 100\n", + "\n", + "deltaQ = quad(f4,T1,T2)[0]\n", + "\n", + "print \"Total heat abstracted in KJ : \",deltaQ\n", + "\n", + "A = deltaQ-T0*deltaS;\t\t\t#KJ\n", + "print \"Availability in KJ : %.1f\"%A\n", + "\n", + "Loss = deltaQ-A;\t\t\t#KJ\n", + "print \"Loss of availability in KJ : %.1f\"%Loss\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Total heat abstracted in KJ : 35000.0\n", + "Availability in KJ : 20244.2\n", + "Loss of availability in KJ : 14755.8\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.10 Page No : 10" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\n", + "# Variables :\n", + "p0 = 1.; \t\t\t#bar\n", + "T0 = 17.+273;\t\t\t#Kelvin\n", + "T1 = 1817.+273;\t\t\t#Kelvin\n", + "Cp = 1.;\t \t\t#KJ/KgK\n", + "\n", + "# Calculations\n", + "deltaQ = Cp*(T1-T0);\t\t\t#KJ/Kg\n", + "deltaS = Cp*math.log(T0/T1);\t\t\t#KJ/KgK\n", + "deltaS_fluid = -deltaS;\t\t\t#KJ/KgK(As deltaS_surrounding = 0)\n", + "A = deltaQ-T0*deltaS_fluid;\t\t\t#KJ\n", + "\n", + "# Results\n", + "print \"Availability of hot products in KJ : %.2f\"%A\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Availability of hot products in KJ : 1227.24\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.11 Page No : 10" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables :\n", + "T1 = 1200.;\t\t\t#Kelvin\n", + "T2 = 400.;\t\t\t#Kelvin\n", + "T0 = 300.;\t\t\t#Kelvin\n", + "Qsource = -150.;\t\t\t#KJ/s\n", + "Qsystem = 150.;\t\t\t#KJ/s\n", + "\n", + "# Calculations and Results\n", + "deltaS_source = Qsource/T1;\t\t\t#KJ/sK\n", + "deltaS_system = Qsystem/T2;\t\t\t#KJ/sK\n", + "deltaS_net = deltaS_source+deltaS_system;\t\t\t#KJ/sK\n", + "print \"Net change in entropy in KJ/sK : \",deltaS_net\n", + "\n", + "A1 = (T1-T0)*-deltaS_source;\t\t\t#KJ/s\n", + "print \"Available energy of heat source in KJ/s : \",A1\n", + "\n", + "A2 = (T2-T0)*deltaS_system;\t\t\t#KJ/s\n", + "print \"Available energy of system in KJ/s : \",A2\n", + "\n", + "E_decrease = A1-A2;\t\t\t#KJ/s\n", + "print \"Decrease in available energy in KJ/s : \",E_decrease\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Net change in entropy in KJ/sK : 0.25\n", + "Available energy of heat source in KJ/s : 112.5\n", + "Available energy of system in KJ/s : 37.5\n", + "Decrease in available energy in KJ/s : 75.0\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.12 Page No : 11" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\n", + "# Variables :\n", + "Tg1 = 1127.+273;\t\t\t#Kelvin\n", + "Tg2 = 527.+273;\t\t\t#Kelvin\n", + "T2 = 250.+273;\t\t\t#Kelvin\n", + "T0 = 27.+273;\t\t\t#Kelvin\n", + "Cpg = 1.;\t\t\t#KJ/KgK\n", + "mw = 5.;\t\t\t#Kg/s\n", + "hfg = 1716.2;\t\t\t#KJ/Kg\n", + "\n", + "# Calculations and Results\n", + "#mg*Cpg*(Tg1-Tg2) = mw*hfg\n", + "mg = mw*hfg/Cpg/(Tg1-Tg2);\t\t\t#Kg/s\n", + "print \"Mass flow rate of gases in Kg/s : %.1f\"%mg\n", + "\n", + "deltaSg = mg*Cpg*math.log(Tg2/Tg1);\t\t\t#KJ/sK\n", + "print \"Entropy change of gases in KJ/sK : %.4f\"%deltaSg\n", + "\n", + "deltaSw = mw*hfg/T2;\t\t\t#KJ/sK\n", + "print \"Entropy change of water in KJ/sK : %.4f\"%deltaSw\n", + "\n", + "deltaSnet = deltaSg+deltaSw;\t\t\t#KJ/sK\n", + "print \"Net Entropy change in KJ/sK : %.4f\"%deltaSnet\n", + "\n", + "Q1 = mw*hfg;\t\t\t#KJ/s\n", + "Sa_sub_Sb = -deltaSg;\t\t\t#KJ/sK\n", + "A1 = Q1-T0*(Sa_sub_Sb);\t\t\t#KJ/s\n", + "print \"Availability of hot gases in KJ/s : %.2f\"%A1\n", + "\n", + "A2 = Q1-T0*deltaSw;\t\t\t#KJ/s\n", + "print \"Availability of water in KJ/s : %.2f\"%A2\n", + "\n", + "UA1 = T0*(Sa_sub_Sb);\t\t\t#KJ/s\n", + "print \"Unavailable energy of hot gases in KJ/s : %.2f\"%UA1\n", + "\n", + "UA2 = T0*deltaSw;\t\t\t#KJ/s\n", + "print \"Unavailable energy of water in KJ/s : %.2f\"%UA2\n", + "\n", + "E_increase = T0*deltaSnet;\t\t\t#KJ/s\n", + "print \"Increase in unavailable energy in KJ/s : %.2f\"%E_increase\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mass flow rate of gases in Kg/s : 14.3\n", + "Entropy change of gases in KJ/sK : -8.0034\n", + "Entropy change of water in KJ/sK : 16.4073\n", + "Net Entropy change in KJ/sK : 8.4038\n", + "Availability of hot gases in KJ/s : 6179.97\n", + "Availability of water in KJ/s : 3658.82\n", + "Unavailable energy of hot gases in KJ/s : 2401.03\n", + "Unavailable energy of water in KJ/s : 4922.18\n", + "Increase in unavailable energy in KJ/s : 2521.15\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.13 Page No : 12" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\n", + "\t\t\t\n", + "# Variables :\n", + "mg = 5.;\t\t\t#Kg\n", + "p1 = 3.;\t\t\t#bar\n", + "T1 = 500.;\t\t\t#Kelvin\n", + "Q = 500.;\t\t\t#KJ\n", + "Cv = 0.8;\t\t\t#KJ/Kg\n", + "T0 = 300.;\t\t\t#Kelvin\n", + "T = 1300.;\t\t\t#Kelvin\n", + "\n", + "# Calculations\n", + "#Q = mg*Cv*(T2-T1)\n", + "T2 = Q/mg/Cv+T1;\t\t\t#Kelvin\n", + "A1 = Q-T0*Q/T;\t\t\t#KJ\n", + "deltaSg = mg*Cv*math.log(T2/T1);\t\t\t#KJ/K\n", + "Ag = Q-T0*deltaSg;\t\t\t#KJ\n", + "Loss = A1-Ag;\t\t\t#KJ\n", + "\n", + "# Results\n", + "print \"Loss of Availability due to heat transfer in KJ : %.1f\"%Loss\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Loss of Availability due to heat transfer in KJ : 152.4\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.14 Page No : 13" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\t\t\t\n", + "# Variables :\n", + "m = 3.;\t\t\t#Kg\n", + "p1 = 3.;\t\t\t#bar\n", + "T1 = 450.;\t\t\t#Kelvin\n", + "Q = 600.;\t\t\t#KJ\n", + "Cv = 0.81;\t\t\t#KJ/Kg\n", + "T0 = 300.;\t\t\t#Kelvin\n", + "T = 1500.;\t\t\t#Kelvin\n", + "\n", + "# Calculations\n", + "deltaSsource = Q/T;\t\t\t#KJ/K\n", + "#Q = m*Cv*(T2-T1)\n", + "T2 = Q/m/Cv+T1;\t\t\t#Kelvin\n", + "A1 = Q-T0*deltaSsource;\t\t\t#KJ\n", + "deltaSg = m*Cv*math.log(T2/T1);\t\t\t#KJ/K\n", + "A2 = Q-T0*deltaSg;\t\t\t#KJ\n", + "Loss = A1-A2;\t\t\t#KJ\n", + "\n", + "# Results\n", + "print \"Loss in available energy due to heat transfer in KJ : %.1f\"%Loss\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Loss in available energy due to heat transfer in KJ : 198.9\n" + ] + } + ], + "prompt_number": 11 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/Thermodynamics_by_C_P_Arora/ch6.ipynb b/Thermodynamics_by_C_P_Arora/ch6.ipynb new file mode 100755 index 00000000..a7ed62ba --- /dev/null +++ b/Thermodynamics_by_C_P_Arora/ch6.ipynb @@ -0,0 +1,1879 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:5459d630b29dbbdfd93621a60c527ff0a5f89773e97a2a1d2563ab75e7bd7c03" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 6 : Properties of Steam" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.1 Page No : 14" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "\t\t\t\n", + "# Variables :\n", + "m = 2.; \t\t\t#Kg\n", + "p = 8.;\t \t\t#bar\n", + "H = 5535.;\t\t\t#KJ\n", + "\n", + "# Calculations and Results\n", + "h = H/m;\t\t\t#KJ/Kg\n", + "hg = 2767.5;\t\t#KJ/Kg\n", + "print \"Specific Enthalpy in KJ/Kg : %.1f\"%h\n", + "print \"Given Enthalpy in KJ/Kg : %.1f\"%hg\n", + "print (\"Given enthalpy = specific enthalpy. System is dry saturated.\");\n", + "\n", + "m = 1;\t\t\t#Kg\n", + "p = 2550*10**3/10**5;\t\t\t#bar\n", + "v = 0.2742;\t\t\t#m**3/Kg\n", + "print \"Specific volume in m**3/Kg : %.4f\"%v\n", + "vg = 0.078352;\t\t\t#m**3\n", + "print \"Given specific volume in m**3/Kg : %.4f\"%vg\n", + "\n", + "Ts = 225+273;\t\t\t#K\n", + "print (\"Since v>vg. System is super heated.\");\n", + "Tsup = v/vg*Ts;\t\t\t#K\n", + "print \"Temperature of super heated steam in degree C :%.1f\"%(Tsup-273)\n", + "\n", + "m = 1;\t\t\t#Kg\n", + "p = 60;\t\t\t#bar\n", + "h = 2470.73;\t\t\t#KJ/Kg\n", + "print \"Enthalpy in KJ/Kg : %.1f\"%h\n", + "\n", + "hg = 2475;\t\t\t#KJ/Kg\n", + "print \"Given enthalpy in KJ/Kg : %.1f\"%hg\n", + "print (\"Since h>hg. System is in vapour state.\");\n", + "\t\t\t#let x be the dryness fraction\n", + "\t\t\t#h = hf+x*hg\n", + "hf = 1213.69;\t\t\t#KJ/Kg\n", + "hfg = 1517.3;\t\t\t#KJ/Kg\n", + "x = (h-hf)/hfg;\n", + "print \"Dryness fraction : %.1f\"%x\n", + "\t\t\t#Steam table is used to get some data.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Specific Enthalpy in KJ/Kg : 2767.5\n", + "Given Enthalpy in KJ/Kg : 2767.5\n", + "Given enthalpy = specific enthalpy. System is dry saturated.\n", + "Specific volume in m**3/Kg : 0.2742\n", + "Given specific volume in m**3/Kg : 0.0784\n", + "Since v>vg. System is super heated.\n", + "Temperature of super heated steam in degree C :1469.8\n", + "Enthalpy in KJ/Kg : 2470.7\n", + "Given enthalpy in KJ/Kg : 2475.0\n", + "Since h>hg. System is in vapour state.\n", + "Dryness fraction : 0.8\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.2 Page No : 16" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "p = 5;\t\t\t#bar\n", + "x = 0.98;\n", + "ts = 151.84;\t\t\t#degree C\n", + "hf = 652.8;\t\t\t#KJ/Kg\n", + "hfg = 2098;\t\t\t#KJ/Kg\n", + "vg = 0.373;\t\t\t#m**3/Kg\n", + "\n", + "# Calculations and Results\n", + "print \"Temperature of steam in degree C : %.2f\"%ts\n", + "h = hf+x*hfg;\t\t\t#KJ/Kg\n", + "print \"Enthalpy of steam in KJ/Kg : %.2f\"%h\n", + "v = x*vg;\t\t\t#m**3/Kg\n", + "print \"Specific volume in m**3/Kg ; %.4f\"%v\n", + "\t\t\t#Steam table is used to get some data.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Temperature of steam in degree C : 151.84\n", + "Enthalpy of steam in KJ/Kg : 2708.84\n", + "Specific volume in m**3/Kg ; 0.3655\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.3 Page No : 16" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "m = 1;\t\t\t#Kg\n", + "p = 12;\t\t\t#bar\n", + "x = 0.95;\n", + "ts = 187.96;\t\t\t#degree C\n", + "vg = 0.1632;\t\t\t#m**3/Kg\n", + "hf = 814.7;\t\t\t#KJ/Kg\n", + "hfg = 1970.7;\t\t\t#KJ/Kg\n", + "\n", + "# Calculations and Results\n", + "print \"Temperature of steam in degree C : \",ts\n", + "\n", + "v = x*vg;\t\t\t#m**3/Kg\n", + "print \"Specific volume in m**3/Kg ; \",v\n", + "h = hf+x*hfg;\t\t\t#KJ/Kg\n", + "print \"Enthalpy of steam in KJ/Kg : %.1f\"%h\n", + "u = h-p*10**5*v/1000;\t\t\t#KJ/Kg\n", + "print \"Internal energy in KJ/Kg : %.1f\"%u\n", + "\t\t\t#Steam table is used to get some data.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Temperature of steam in degree C : 187.96\n", + "Specific volume in m**3/Kg ; 0.15504\n", + "Enthalpy of steam in KJ/Kg : 2686.9\n", + "Internal energy in KJ/Kg : 2500.8\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.4 Page No : 16" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "m = 1.;\t\t \t#Kg\n", + "p = 8.;\t\t\t #bar\n", + "Tsup = 280.;\t\t\t#degree C\n", + "h1 = 2950.4;\t\t\t#KJ/Kg(at 250 degree C)\n", + "h2 = 3057.3;\t\t\t#KJ/Kg(at 300 degree C)\n", + "Tsup1 = 250.;\t\t\t#degree C\n", + "Tsup2 = 300.;\t\t\t#degree C\n", + "\n", + "# Calculations and Results\n", + "hsup = h1+(h2-h1)/(Tsup2-Tsup1)*(Tsup-Tsup1);\t\t\t#KJ/Kg\n", + "print \"Specific enthalpy in KJ/Kg : %.1f\"%hsup\n", + "\n", + "v1 = 0.293;\t\t\t#m**3/Kg(at 250 degree C)\n", + "v2 = 0.324;\t\t\t#m**3/Kg(at 300 degree C)\n", + "vsup = v1+(v2-v1)/(Tsup2-Tsup1)*(Tsup-Tsup1);\t\t\t#m**3/Kg\n", + "print \"Specific volume in m**3/Kg : \",vsup\n", + "\n", + "S1 = 7.04;\t\t\t#KJ/KgK(at 250 degree C)\n", + "S2 = 7.235;\t\t\t#KJ/KgK(at 300 degree C)\n", + "Ssup = S1+(S2-S1)/(Tsup2-Tsup1)*(Tsup-Tsup1)\n", + "print \"Specific enthalpy in KJ/KgK : \",Ssup\n", + "\n", + "#Steam table is used to get some data.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Specific enthalpy in KJ/Kg : 3014.5\n", + "Specific volume in m**3/Kg : 0.3116\n", + "Specific enthalpy in KJ/KgK : 7.157\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.5 Page No : 17" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "p1 = 0.1;\t\t\t#bar\n", + "p2 = 0.1;\t\t\t#bar\n", + "x1 = 0.95;\n", + "t3 = 20.;\t\t\t#degree C\n", + "t2 = 35.;\t\t\t#degree C\n", + "t4 = 45.;\t\t\t#degree C\n", + "hf1 = 191.8;\t\t\t#KJ/Kg\n", + "hfg1 = 2397.9;\t\t\t#KJ/Kg\n", + "\n", + "# Calculations\n", + "h1 = hf1+x1*hfg1;\t\t\t#KJ/kg\n", + "h2 = 188.4;\t\t\t#KJ/Kg(at 45 degree C)\n", + "h3 = 83.9;\t\t\t#KJ/Kg(at 20 degree C)\n", + "h4 = 146.6;\t\t\t#KJ/Kg(at 35 degree C)\n", + "#m1*(h1-h2) = mw*(h4-h3)\n", + "mwBYm1 = (h1-h2)/(h4-h3);\t\t\t#Kg of water/Kg of steam\n", + "\n", + "# Results\n", + "print \"Ratio of mass flow rate of cooling water to condensing steam(Kg of water/Kg of steam): %.3f\"%mwBYm1\n", + "\t\t\t#Steam table is used to get some data.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Ratio of mass flow rate of cooling water to condensing steam(Kg of water/Kg of steam): 36.386\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.6 Page No : 18" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "V = 3.;\t\t\t#m**3\n", + "t = 200.;\t\t\t#degree C\n", + "Pat = 1.;\t\t\t#bar\n", + "Pgauge = 7.;\t\t\t#bar\n", + "P = Pgauge+Pat;\t\t\t#bar\n", + "ts = 170.41;\t\t\t#degree C\n", + "tsup = t;\t\t\t#degree C\n", + "vsup = 0.261;\t\t\t#m**3/Kg\n", + "hsup = 2838.6;\t\t\t#KJ/Kg\n", + "\n", + "# Calculations and Results\n", + "m = V/vsup;\t\t\t#Kg\n", + "H = m*hsup;\t\t\t#KJ\n", + "print \"Total Enthalpy in KJ : %.2f\"%H\n", + "#H = U+p*V\n", + "U = H-P*10**5*V/1000;\t\t\t#KJ\n", + "print \"Total internal energy of system in KJ : %.2f\"%U\n", + "print \"Mass of steam in Kg : %.3f\"%m\n", + "\t\t\t#Steam table is used to get some data.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Total Enthalpy in KJ : 32627.59\n", + "Total internal energy of system in KJ : 30227.59\n", + "Mass of steam in Kg : 11.494\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.7 Page No : 18" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "mw = 1.;\t\t\t#Kg\n", + "m_steam = 39.;\t\t\t#mass of dry steam in Kg\n", + "\n", + "# Calculations\n", + "ms = mw+m_steam;\t\t\t#Kg\n", + "x = m_steam/ms;\t\t\t#dryness fraction\n", + "\n", + "# Results\n", + "print \"Dryness fraction ; \",x\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Dryness fraction ; 0.975\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.8 Page No : 18" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "m = 10.;\t\t\t#Kg\n", + "p = 10.;\t\t\t#bar\n", + "x = 0.9;\n", + "t1 = 20.;\t\t\t#degree C\n", + "hf = 762.6;\t\t\t#KJ/Kg\n", + "hfg = 2013.6;\t\t\t#KJ/Kg\n", + "\n", + "# Calculations and Results\n", + "H = m*(hf+x*hfg);\t\t\t#KJ;\n", + "print \"Enthalpy of wet steam in KJ : \",H\n", + "\n", + "hf1 = 83.9;\t\t\t#KJ/Kg(at 20 degree C)\n", + "Hf1 = m*hf1;\t\t\t#KJ\n", + "HeatAdded = H-Hf1;\t\t\t#KJ\n", + "print \"Heat added in KJ : \",HeatAdded\n", + "\n", + "#Steam table is used to get some data.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Enthalpy of wet steam in KJ : 25748.4\n", + "Heat added in KJ : 24909.4\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.9 Page No : 19" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "t = 50.;\t\t\t#degree C\n", + "p1 = 13.;\t\t\t#bar\n", + "Cpw = 4.187;\t\t\t#KJ/KgK\n", + "Cp = 0.0535;\t\t\t#KJ/KgK\n", + "x1 = 0.97;\n", + "hf = Cpw*(t-0);\t\t\t#KJ/Kg\n", + "hf1 = 814.7;\t\t\t#KJ/Kg(at p1 = 13 bar)\n", + "hfg1 = 1970.7;\t\t\t#KJ/Kg(at p1 = 13 bar)\n", + "hg1 = 2785.4;\t\t\t#KJ/Kg(at p1 = 13 bar)\n", + "\n", + "# Calculations and Results\n", + "Q = hf1+x1*hfg1-hf;\t\t\t#KJ/Kg\n", + "print \"Heat required to produce steam in KJ/Kg : %.2f\"%Q\n", + "Q1 = hg1-hf;\t\t\t#KJ/Kg\n", + "print \"Heat required to produce dry saturated steam in KJ/Kg : \",Q1\n", + "tsup1SUBts1 = 40;\t\t\t#degree C\n", + "Q2 = hg1+Cp*(tsup1SUBts1)-hf;\t\t\t#KJ/Kg\n", + "print \"Heat required to produce super heated steam in KJ/Kg : \",Q2\n", + "\t\t\t#Steam table is used to get some data.\n", + "\t\t\t#Ans is wrong in the book for last part.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat required to produce steam in KJ/Kg : 2516.93\n", + "Heat required to produce dry saturated steam in KJ/Kg : 2576.05\n", + "Heat required to produce super heated steam in KJ/Kg : 2578.19\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.10 Page No : 19" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "p = 8;\t\t\t#bar\n", + "x = 0.8;\n", + "vf = 0.001115;\t\t\t#m**3/kg\n", + "vg = 0.24;\t\t\t#m**3/kg\n", + "hf = 720.9;\t\t\t#kJ/kg(at p = 8 bar)\n", + "hfg = 2046.5;\t\t\t#kJ/kg(at p = 8 bar)\n", + "m = 1;\t\t\t#kg\n", + "\n", + "# Calculations and Results\n", + "We = 100*p*(x*vg-vf);\t\t\t#kJ/kg\n", + "print \"External workdone during evaporation in kJ/kg : %.2f\"%We\n", + "\n", + "Q = x*hfg-We;\t\t\t#KJ\n", + "print \"External latent heat of steam in kJ: %.2f\"%Q\n", + "\n", + "\t\t\t#Steam table is used to get some data.\n", + "\t\t\t#Ans is wrong in the book for last part.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "External workdone during evaporation in kJ/kg : 152.71\n", + "External latent heat of steam in kJ: 1484.49\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.11 Page No : 20" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t\n", + "# Variables :\n", + "p1 = 20.;\t\t\t#bar\n", + "Tsup1 = 350.;\t\t\t#degree C\n", + "m1 = 1.;\t\t\t#Kg\n", + "p2 = 20.;\t\t\t#bar\n", + "m2 = 1.;\t\t\t#Kg\n", + "p3 = p1;\t\t\t#bar\n", + "Tsup3 = 250.;\t\t\t#degree C\n", + "m3 = m1+m2;\t\t\t#Kg\n", + "Cp = 2.25;\t\t\t#KJ/Kg\n", + "hg1 = 2797.2;\t\t\t#KJ/Kg(at p = 20 bar)\n", + "hg2 = hg1;\t\t\t#KJ/Kg(at p = 20 bar)\n", + "hg3 = hg1;\t\t\t#KJ/Kg(at p = 20 bar)\n", + "ts1 = 212.37;\t\t\t#degree C\n", + "ts2 = ts1;\t\t\t#degree C\n", + "ts3 = ts1;\t\t\t#degree C\n", + "\n", + "# Calculations and Results\n", + "#m1*h1+m2*h2 = m3*h3\n", + "h2 = (m3*(hg3+Cp*(Tsup3-ts3))-m1*(hg1+Cp*(Tsup1-ts1)))/m2;\t\t\t#KJ/Kg\n", + "print \"Enthalpy of boiler2 in KJ/Kg : %.2f\"%h2\n", + "print \"hg2(KJ/Kg) : \",hg2\n", + "print (\"steam is wet because h2