{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter5: Heat Exchangers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.1,Page no:5.22" ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0236\n", "Required surface is fulfilled by connecting 3.0 (three) 6m harpins in series\n" ] } ], "source": [ "#Harpin exchanger\n", "import math\n", "#Variable declaration\n", "Di=35.0 #[mm]\n", "Di=Di/1000 #[m]\n", "Do=42.0 #[mm]\n", "Do=Do/1000 #[m]\n", "#for benzene\n", "mb_dot=4450.0 #[kg/h]\n", "Cpb=1.779 #[kJ/(kg.K)]\n", "t2=322.0 #[K]\n", "t1=300.0 #[K]\n", "\n", "#Calculation\n", "Q=mb_dot*Cpb*(t2-t1) #for benzene in [kJ/h]\n", "#For toulene\n", "T1=344.0 #[K]\n", "T2=311.0 #[K]\n", "Cpt=1.842 #[kJ/kg.K]\n", "mt_dot=Q/(Cpt*(T1-T2)) #[kg/h]\n", "Q=Q*1000.0/3600 #[W]\n", "#Hot fluid(toluene)\n", "#Cold fluid(benzene)\n", "dT1=22.0 #[K]\n", "dT2=11.0 #[K]\n", "dTlm=(dT1-dT2)/(math.log(dT1/dT2)) #[K]\n", "#Clod fluid:Inner pipe,benzene\n", "Di=0.035 #[m]\n", "Ai=(math.pi/4)*Di**2 #Flow area[sq m]\n", "Gi=mb_dot/Ai #Mass velocity [kg/m**2.h]\n", "Gi=Gi/3600 #[kg/m**2.s]\n", "mu=4.09*10**-4 #[kg/(m.s)]\n", "Nre=Di*Gi/mu #Reynolds number\n", "Cp=Cpb*10**3 #[J/(kg.K)]\n", "k=0.147 #[W/m.K]\n", "Npr=Cp*mu/k #Prandtl number\n", "hi=(k/Di)*0.023*(Nre**0.8)*(Npr**0.4) #[W/sq m.K]\n", "hio=hi*Di/Do #[W/sq m.K]\n", "D1=0.042 #Outside dia of inside pipe[mm]\n", "D2=0.0525 #Inside dia of outside pipe[m]\n", "De=round((D2**2-D1**2)/D1,4) #[m]\n", "aa=math.pi*(D2**2-D1**2)/4 #Flow area[sq m]\n", "Ga=mt_dot/aa #Mass velocity in [kg/m**2.h]\n", "Ga=Ga/3600 #[kg/m**2.s]\n", "mu=5.01*10**-4 #[kg/(m.s)]\n", "Nre=De*Ga/mu #Reynolds number\n", "Npr=Cp*mu/k #Prandtl number\n", "ho=(k/De)*0.023*(Nre**0.8)*(Npr**0.3) #[W/sq m.K]\n", "Uc=1.0/(1.0/ho+1.0/hio) #[W/sq m.K]\n", "Rdi=1.6*10**-4 #Fouling factor [m**2.K/W]\n", "Rdo=1.6*10**-4 #Fouling factor[m**2.K/W]\n", "Rd=Rdi+Rdo #(m**2.K/W)\n", "Ud=1.0/(1.0/Uc+Rd) #[W/sq m.K]\n", "A=Q/(Ud*dTlm) #sq m\n", "ex=0.136 #[sq m]\n", "l=A/ex #m\n", "tl=12 #Total length of one harpin of 6m [m]\n", "\n", "#Result\n", "print\"Required surface is fulfilled by connecting\",round(l/tl),\"(three) 6m harpins in series\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.2,Page no:5.26" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Area = 16.15 m**2,\n", "Length fo pipe required = 51.41 m(approx)\n" ] } ], "source": [ "#Length of pipe\n", "import math\n", "\n", "#Variable declaration\n", "ma_dot=300.0*1000.0/24 #Mass flow rate of acid in [kg/h]\n", "mw_dot=500.0*1000.0/24 #Mass flow rate of water in [kg/h]\n", "Cp1=1.465 #[kJ/kg.K]\n", "T1=333.0 #[K]\n", "T2=313.0 #[K]\n", "Q=ma_dot*Cp1*(T1-T2) #[kJ/h]\n", "Q=Q*1000.0/3600.0 #[W]\n", "Cp2=4.187 #[kJ/kg.K]\n", "t1=288.0 #[K]\n", "\n", "#Calculation\n", "t2=(Q/(mw_dot*Cp2))+t1 #[K]\n", "dT1=T1-t2 #[K]\n", "dT2=T2-t1 #[K] \n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "dTlm=32.26 #Approximation in [K]\n", "#Inner pipe\n", "m_dot=12500.0 #[kg/h]\n", "Di=0.075 #[m]\n", "Ai=(math.pi/4.0)*Di**2 #[sq m]\n", "G=ma_dot/Ai #[kg/m**2.h]\n", "G=G/3600 #[kg/m**2.s]\n", "mu=0.0112 #[kg/m.s]\n", "k=0.302 #W/(m.K)\n", "Nre=Di*G/mu #Reynold number\n", "Npr=Cp1*10**3*mu/k #Prandtl number\n", "hi=(k/Di)*0.023*(Nre**0.8)*(Npr**0.3) #W/sq m.K\n", "Do=0.1 #[m]\n", "hio=hi*Di/Do #W/sq m.K\n", "D1=0.1 #[m]\n", "D2=0.125 #[m]\n", "De=(D2**2-D1**2)/D1 #[m]\n", "Aa=(math.pi/4)*(D2**2-D1**2) #[sq m]\n", "Ga=mw_dot/Aa #[kg/m**2.h]\n", "Ga=Ga/3600 #[kg/sq m.s]\n", "mu=0.0011 #[kg/m.s]\n", "Nre=De*Ga/mu #Reynolds number\n", "k=0.669 #for water\n", "Npr=Cp2*10**3*mu/k #Prandtl number\n", "ho=(k/De)*0.023*(Nre**0.8)*Npr**0.4 #[W/sq m.K]\n", "xw=(Do-Di)/2 #[m]\n", "Dw=(Do-Di)/math.log(Do/Di) #[m]\n", "kw=46.52 #thermal conductivity of wall in [W/m.K]\n", "Uc=1.0/(1.0/ho+1.0/hio+xw*Do/(kw*Dw)) #[W/sq m.K]\n", "Ud=Uc #As dirt factor values are not given\n", "round(Ud,1)\n", "#Ud=195.32 #Approximation\n", "A=Q/(Ud*dTlm) #[sq m]\n", "L=A/(math.pi*Do) #[sq m]\n", "\n", "#Result\n", "print\"Area =\",round(A,2),\"m**2,\\nLength fo pipe required =\",round(L,2),\"m(approx)\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.3,Page no:5.29" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total lenggth of double pipe heat exchanger is 36.9 m\n" ] } ], "source": [ "#Double pipe heat exchanger\n", "import math\n", "\n", "#Variable declaration\n", "me_dot=5500.0 #[kg/h]\n", "me_dot1=me_dot/3600 #[kg/s]\n", "Di=0.037 #I.D of inner pipe in [m]\n", "Ai=(math.pi/4)*Di**2 #[sq m]\n", "G=me_dot1/Ai #[kg/sq m.s]\n", "mu=3.4*10**-3 #[Pa.s] or [kg/(m.s)]\n", "Nre=Di*G/mu #Reynolds number\n", "Cp=2.68 #[kJ/kg.K]\n", "Cp1=Cp*10**3 #[J/kgK]\n", "k=0.248 #[W/m.K]\n", "\n", "#Calculation\n", "Npr=Cp1*mu/k #Prandtl number\n", "#Nre is greater than 10,000,Use Dittus-Boelter eqn:\n", "Nnu=0.023*(Nre**0.8)*(Npr**0.3) #Nusselt number\n", "hi=k*Nnu/Di #[W/sq m.K]\n", "T2=358.0 #[K]\n", "T1=341 #[K]\n", "Cp2=1.80 #[kJ/kg.K]\n", "t2=335 #[K]\n", "t1=303.0 #[K]\n", "mt_dot=me_dot*Cp*(T2-T1)/(Cp2*(t2-t1)) #[kg/h]\n", "mt_dot=mt_dot/3600 #[kg/s]\n", "D1=0.043 #[m]\n", "D2=0.064 #Inside dia of outer pipe\n", "De=(D2**2-D1**2)/D1 #Equivalent diameter [m]\n", "Aa=math.pi/4*(D2**2-D1**2) #[sq m]\n", "Ga=mt_dot/Aa #kg/(sq m.s)\n", "mu2=4.4*10**-4 # Viscosity of toluene Pa.s\n", "k2=0.146 #For toluene [W/m.K]\n", "Cp2=1.8*10**3 #J/kg.K\n", "Nre=De*Ga/mu2 #Reynolds number\n", "Npr=Cp2*mu2/k2 #Prandtl number\n", "Nnu=0.023*Nre**0.8*Npr**0.4 #Nusselt number\n", "ho=k2*Nnu/De #W/(sq m.K)\n", "Dw=(D1-Di)/math.log(D1/Di) #[m]\n", "x=0.003 #Wall thickness in [m]\n", "Uo=1.0/(1.0/ho+(1.0/hi)*(D1/Di)+(x*D1/(46.52*Dw))) #[W/sq m.K]\n", "dT1=38.0 #[K]\n", "dT2=23 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "Q=me_dot1*Cp*(T2-T1) #[kJ/s]\n", "Q=Q*1000 #[J/s]\n", "L=Q/(Uo*math.pi*D1*dTlm) #[m]\n", "\n", "#Result\n", "print\"Total lenggth of double pipe heat exchanger is\",round(L,1),\"m\"\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.4,Page no:5.35" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Effectiveness of heat exchanger is 0.647\n", "Outlet temperature of hot liquid is 321.9 K( 48.9 degree C)\n", "Outlet temperature of water is 297.23 K( 24.23 degree C)\n" ] } ], "source": [ "#Parallel flow arrangement\n", "import math\n", "#Variable declaration\n", "mc_dot=1000.0 #[kg/h]\n", "mc_dot=mc_dot/3600 #[kg/s]\n", "mh_dot=250.0 #[kg/h]\n", "mh_dot=mh_dot/3600 #[kg/s]\n", "Cpc=4187.0 #[J/(kg.K)]\n", "Cph=3350 #[W/K]\n", "\n", "#Calculation\n", "w=mc_dot*Cpc #[W/K]\n", "l=mh_dot*Cph #[W/K]\n", "C=mh_dot*Cph/(mc_dot*Cpc)\n", "U=1160.0 #[W/sq m.K]\n", "A=0.25 #Heat transfer surface for exchanger in [sq m]\n", "ntu=U*A/(mh_dot*Cph) #\n", "E=(1-math.exp(-ntu*(1+C)))/(1+C) #Effectiveness of heat exchanger\n", "T1=393.0 #Inlet temperature in [K]\n", "t1=283 #Cooling water [K]\n", "T2=T1-E*(T1-t1) #Outlet T of hot liquid \n", "\n", "t2=C*(T1-T2)+t1 #[K]\n", "\n", "#Result\n", "print\"Effectiveness of heat exchanger is \",round(E,3)\n", "print\"Outlet temperature of hot liquid is \",round(T2,1),\"K(\",round(T2,1)-273,\"degree C)\"\n", "print\"Outlet temperature of water is \",round(t2,2),\"K(\",round(t2,2)-273,\"degree C)\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.5,Page no:5.36" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Effectiveness of exchanger is 0.9512\n", "Outlet temperature of oil is 291.85 K( 18.85 degree C)\n", "Outlet temperature of water is 303.19 K( 303.19 degree C)\n", "Rate of heat transfer is 22962.5 W\n" ] } ], "source": [ "#Counter flow exchanger\n", "import math\n", "#Variable declaration\n", "Cpc=4187.0 #Specific heat of water in [J/(kg.K)]\n", "Cph=2000.0 #Sp heat of oil in [J/(kg.K)]\n", "mc_dot=1300.0/3600 #[kg/s]\n", "mh_dot=550.0/3600 #[kg/s]\n", "w=mc_dot*Cpc #[W/K]\n", "o=mh_dot*Cph #[W/K]\n", "\n", "#Calculation\n", "#Heat capacity of rate of hot fluid is smaller than water\n", "U=1075.0 #[W/sq m.K]\n", "A=1.0 #[sq m]\n", "ntu=(U*A)/(mh_dot*Cph) \n", "C=mh_dot*Cph/(mc_dot*Cpc) \n", "E=(1-math.exp(-ntu*(1-C)))/(1-C*math.exp(-ntu*(1-C))) #Effeciency\n", "T1=367.0 #[K]\n", "t1=288.0 #[K]\n", "T2=T1-E*(T1-t1) #Outlet temperature [K]\n", "T2=round(T2,2)\n", "#T2=291.83 #Approximated in book without precise calculation\n", "t2=C*(T1-T2)+t1 #[K]\n", "Q=mh_dot*Cph*(T1-T2) #[W]\n", "\n", "#Result\n", "print\"Effectiveness of exchanger is\",round(E,4)\n", "print\"Outlet temperature of oil is\",T2,\"K(\",T2-273,\"degree C)\"\n", "print\"Outlet temperature of water is\",round(t2,2),\"K(\",round(t2,2),\"degree C)\"\n", "print\"Rate of heat transfer is\",round(Q,1),\"W\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.6,Page no:5.37" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "By LMTD approach area of heat exchanger is 0.607 m^2\n", "By Ntu approach Area of heat exchanger is 0.607 m^2\n", "Outlet temperature of cold water= 306.0 K( 33.0 degree C)\n" ] } ], "source": [ "#LMTD approach\n", "import math\n", "\n", "#Variable declaration\n", "\n", "#LMTD Approach\n", "Cph=4187.0 #[J/(kg.K)]\n", "mh_dot=600.0/3600 #Hot side flow rate [kg/s]\n", "mc_dot=1500.0/3600 #[kg/s]\n", "Cpc=Cph #[J/kg.K]\n", "T1=343.0 #[K]\n", "T2=323.0 #[K]\n", "\n", "#Calculation\n", "Q=mh_dot*Cph*(T1-T2) #[W]\n", "t1=298.0 #[K]\n", "t2=(mh_dot*Cph*(T1-T2))/(mc_dot*Cpc)+t1 #[K]\n", "dT1=45.0 #[K]\n", "dT2=17.0 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "hi=1600.0 #Heat transfer coeff in [W/sq m.K]\n", "ho=hi #[W/sq m.K]\n", "U=1.0/(1.0/hi+1.0/ho) #[W/sq m.K]\n", "A=Q/(U*dTlm) #[sq m]\n", "\n", "#Effectiveness-NTU approach\n", "#hot water:\n", "h=mh_dot*Cph #[W/K]\n", "c=mc_dot*Cpc #[W/K]\n", "#Heat capacity rate of hot fluid is small\n", "C=mh_dot*Cph/(mc_dot*Cpc) #\n", "E=(T1-T2)/(T1-t1) #Effectiveness\n", "#for paralell flow:\n", "ntu=-math.log(1-E*(1+C))/(1+C) \n", "A2=(ntu*mh_dot*Cph)/U #[sq m]\n", "t2=C*(T1-T2)+t1 #[K]\n", "\n", "#Result\n", "print\"By LMTD approach area of heat exchanger is\",round(A,3),\"m^2\"\n", "print\"By Ntu approach Area of heat exchanger is\",round(A,3),\"m^2\"\n", "print\"Outlet temperature of cold water=\",t2,\"K(\",t2-273,\"degree C)\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.7,Page no:5.39" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of tubes required = 44.0\n" ] } ], "source": [ "#Shell and tube exchanger\n", "import math\n", "\n", "#Variable declaration\n", "mw_dot=10.0 #[kg/s]\n", "Cpw=4.187 #[kJ/(kg.K)]\n", "t2=318.0 #[K]\n", "t1=295 #[K]\n", "Q=mw_dot*Cpw*(t2-t1) #[kJ/s]\n", "Q=Q*1000 #W\n", "dT1=98.0 #[K]\n", "dT2=75 #[K]\n", "\n", "#Calculation\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "hi=850.0 #[W/sq m.K]\n", "id=0.027 #Inside dia[m]\n", "od=0.031 #Outside dia [m]\n", "hio=hi*id/od #[W/sq m.K]\n", "ho=6000.0 #Heat transfer coefficients[W/sq m.K]\n", "Uo=1.0/(1.0/ho+1.0/hio) #[W/sq m.K]\n", "Ao=Q/(Uo*dTlm) #[sq m]\n", "L=4.0 #Length [m]\n", "n=Ao/(math.pi*od*L) #[No. of tubes]\n", "\n", "#Result\n", "print\"Number of tubes required =\",round(n)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.8,Page no:5.40" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fouling factor=Sclae resistance=9.65e-04 m^2 K/W\n" ] } ], "source": [ "#Order of Scale resistance\n", "import math\n", "\n", "#Variable declaration\n", "mdot=7250 #Nitrobenzene in shell in [kg/h]\n", "Cp=2.387 #[kJ/(kg.K)]\n", "mu=7*10**-4 #Pa.s\n", "k=0.151 #[W/m.K]\n", "T1=400.0 #[K]\n", "T2=317.0 #[K]\n", "t1=305.0 #[K]\n", "t2=345.0 #[K]\n", "\n", "#Calculation\n", "dT1=T1-t2 #[K]\n", "dT2=T2-t1 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "Q=mdot*Cp*(T1-T2) #[kJ/h]\n", "Q=Q*1000.0/3600 #[W]\n", "n=166.0 #no of tubes\n", "L=5.0 #[m]\n", "Do=0.019 #[m]\n", "Di=0.015 #[m]\n", "Ao=n*math.pi*Do*L #[sq m]\n", "Uo=Q/(Ao*dTlm) #[W/sq m.K]\n", "Ud=Uo\n", "#Shell side heat transfer coefficient\n", "Pt=0.025 #[m]\n", "C_dash=Pt-(0.5*Do+0.5*Do)\n", "\n", "#Shell side crossflow area\n", "B=0.15 #[m]\n", "id=0.45 #[m]\n", "ass=id*C_dash*B/Pt #[sq m]\n", "#As there are two shell passes,area per pass is :\n", "as_dash=ass/2 #[sq m]\n", "\n", "#Equivalent diameter of shell \n", "De=4*(Pt**2-(math.pi/4)*Do**2)/(math.pi*Do) #[m]\n", "\n", "#Mass velocity on shell side\n", "Gs=mdot/as_dash #[kg/m**2.h]\n", "Gs=Gs/3600 #[kg/m**2.s]\n", "mu=7.0*10**-4 #Pa.s\n", "Cp=Cp*1000 #J/kg.K\n", "Nre=De*Gs/mu #Reynold number\n", "Npr=Cp*mu/k #Prandtls number\n", "Nnu=0.36*Nre**0.55*Npr**(1.0/3.0) #Nusselts number\n", "hi=1050.0 #[W/sq m .K]\n", "ho=Nnu*k/De #[W/sq m.K]\n", "Uo=1.0/(1.0/ho+(1.0/hi*(Do/Di))) #[W/sq m K]\n", "Uc=Uo\n", "Rd=(Uc-Ud)/(Uc*Ud) #m**2.K/W\n", "\n", "#Result\n", "print\"Fouling factor=Sclae resistance=%.2e\" %round(Rd,6),\"m^2 K/W\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.9,Page no:5.42" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Length of tube required is 4.4 m\n" ] } ], "source": [ "#Length of tube required\n", "import math\n", "#Variable declaration\n", "k=0.628 #W/(m.K)\n", "rho=980.0 #[kg/m**3]\n", "mu=6*10**-4 #kg/(m.s)\n", "Cpw=4.187 #kJ/(kg.K)\n", "Cp=Cpw*10**3 #J/(kg.K)\n", "Di=25.0 #[mm]\n", "Di=Di/1000 #[m]\n", "\n", "#Calculation\n", "mw_dot=1200.0*10**-3*rho #Mass flow rate of water [kg/h]\n", "mw_dot=mw_dot/3600.0 #[kg/s]\n", "Ai=(math.pi*Di**2)/4.0 #Inside area of tube in sq m\n", "G=mw_dot/Ai #kg/m**2.s\n", "Nre=Di*G/mu #Reynolds number\n", "Npr=Cp*mu/k #Pranddtl number\n", "#Inside heat transfer coefficient\n", "Nnu=0.023*Nre**0.8*Npr**0.4 #Nusselt number\n", "hi=Nnu*k/Di #[W/sq m.K]\n", "ho=6000.0 #[W#sq m.K]\n", "Do=0.028 #[m]\n", "Dw=(Do-Di)/math.log(Do/Di) #[m]\n", "x=(Do-Di)/2 #[m]\n", "k2=348.9 #thermal conductivity of metal in [W/m.K]\n", "Uo=1.0/((1.0/ho)+(1.0/hi)*(Do/Di)+(x/k2)*(Do/Dw)) #[W/sq m.K]\n", "t1=303.0 #[K]\n", "t2=343.0 #[K]\n", "Q=mw_dot*Cpw*(t2-t1) #[kJ/h]\n", "Q=Q*1000.0 #[W]\n", "Ts=393.0 #[K]\n", "dT1=Ts-t1 #[K]\n", "dT2=Ts-t2 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "Ao=Q/(Uo*dTlm) #[sq m]\n", "L=Ao/(math.pi*Do) #Length\n", "\n", "#Result\n", "print\"Length of tube required is\",round(L,2),\"m\" \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.10,Page no:5.44" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rd calculated(1.01e-03 W/m^2.K) is maximum allowable scale resistance\n", "As Rd calculated(1.01e-03 W/m^2K) is more than Rd given 9e-04( W/m^2,K),the given heat exchanger is suitable\n" ] } ], "source": [ "#Suitability of Exchanger\n", "import math\n", "\n", "#Variable declaration\n", "m_dot=7250.0 #[kg/h] of nitrobenzene \n", "Cp=2.387 #[kJ/kg.K]\n", "mu=7*10**-4 #[kg/m.s]\n", "k=0.151 #[W/m.K]\n", "vis=1.0 \n", "Ft=0.9 #LMTD correction factor\n", "T1=400.0 #[K]\n", "T2=317.0 #[K]\n", "t1=333.0 #[K]\n", "t2=300.0 #[K]\n", "\n", "#Calculation\n", "dT1=T1-t1 #[K]\n", "dT2=T2-t2 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "#For nitrobenzene\n", "Q=m_dot*Cp*(T1-T2) #[kJ/h]\n", "Q=Q*1000.0/3600 #[W]\n", "n=170.0 #No. of tubes\n", "L=5.0 #[m]\n", "Do=0.019 #[m]\n", "Di=0.015 #[m]\n", "Ao=n*math.pi*Do*L #[sq m]\n", "Uo=Q/(Ao*Ft*dTlm) #[W/sq m.K]\n", "Ud=Uo #[W/sq m.K]\n", "B=0.15 #Baffle spacing [m]\n", "Pt=0.025 #Tube pitch in [m]\n", "C_dash=Pt-Do # ance in [m]\n", "id=0.45 #[m]\n", "\n", "#Shell side cross flow area\n", "ass=id*C_dash*B/Pt #[sq m]\n", "\n", "#Equivalent diameter of shell\n", "De=4*(Pt**2-(math.pi/4)*(Do**2))/(math.pi*Do) #[m]\n", "\n", "#Mass velocity on shell side\n", "Gs=m_dot/ass #[kg/(m.h)]\n", "Gs=Gs/3600.0 #[kg/m**2.s]\n", "mu=7.0*10**-4 #[kg/m.s]\n", "Cp=Cp*1000.0 #[J/kg.K]\n", "Nre=De*Gs/mu #Reynolds number\n", "Npr=Cp*mu/k #Prandtl number\n", "\n", "#From empirical eqn:\n", "mu_w=mu #\n", "Nnu=0.36*Nre**0.55*Npr**(1.0/3.0)\n", "ho=Nnu*k/De #[W/sq m.K]\n", "hi=1050.0 #Given [W/sq m.K]\n", "Uo=1.0/(1.0/ho+(1.0/hi)*(Do/Di)) #[W/sq m.K]\n", "Uc=Uo #W/sq m.K\n", "\n", "#Suitability of heat exchanger\n", "Rd_given=9*10**-4 #[W/sq m.K]\n", "Rd=(Uc-Ud)/(Uc*Ud) #[W/sq m.K]\n", "\n", "#Result\n", "print\"Rd calculated(%.2e\"%Rd,\"W/m^2.K) is maximum allowable scale resistance\"\n", "print\"As Rd calculated(%.2e\"%Rd,\"W/m^2K) is more than Rd given %.e(\"%Rd_given,\" W/m^2,K),the given heat exchanger is suitable\"\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.11,Page no:5.47" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of tubes required= 1.0\n" ] } ], "source": [ "#Number of tubes required\n", "import math\n", "\n", "#Variable declaration\n", "mw_dot=1720.0 #water in [kg/h]\n", "t1=293.0 #[K]\n", "t2=318.0 #[K]\n", "Cpw=4.28 #[kJ/kg.K]\n", "\n", "#Calculation\n", "Q=mw_dot*Cpw*(t2-t1) #[kJ/h]\n", "Q=Q*1000.0/3600 #W\n", "lamda=2230.0 #[kJ/kg]\n", "dT1=90.0 #[K]\n", "dT2=65.0 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "\n", "#Calculation of inside heat transfer coefficient\n", "Di=0.0225 #[m]\n", "u=1.2 #[m/s]\\\n", "rho=995.7 #[kg/m**3]\n", "v=0.659*10**-6 #[m/s]\n", "mu=v*rho #[kg/m.s]\n", "Nre=Di*u*rho/mu #reynolds number\n", "Cp=Cpw*1000 #[J/kg.K]\n", "k=2.54 #[kJ/h.m.K]\n", "k=k*1000.0/3600 #[W/m.K]\n", "Npr=Cp*mu/k #Prandtl number\n", "Nnu=0.023*Nre**0.8*Npr**0.4 #Nusselt number\n", "hi=k*Nnu/Di #[W/sq m.K]\n", "ho=19200.0 #[kJ/h.m**2.K]\n", "ho=ho*1000.0/3600 #[W/m**2.K]\n", "Do=0.025 #[m]\n", "Dw=(Do-Di)/math.log(Do/Di) #[m]\n", "x=(Do-Di)/2 #[m]\n", "kt=460.0 #For tube wall material [kJ/h.m.K]\n", "kt=kt*1000.0/3600 #[W/m.K]\n", "Uo=1.0/(1.0/ho+(1.0/hi)*(Do/Di)+(x/kt)*(Do/Dw)) #[W/sq m.K]\n", "#Q=Uo*Ao*dTlm\n", "Ao=Q/(Uo*dTlm) #[sq m]\n", "L=4.0 #Tube length in [m]\n", "n=Ao/(math.pi*Do*L) #[Number of tubes]\n", "\n", "\n", "#Result\n", "print\"Number of tubes required=\",round(n)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.12,Page no:5.49" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Water velocity must be 3.88 m/s\n" ] } ], "source": [ "#Shell and tube heat exchanger\n", "import math\n", "\n", "#Variable declaration\n", "t1=290.0 #Inlet temperature of cooling water [K]\n", "ho=2250.0 #Heat transfer coefficient based on inside area in [W/sq m.K]\n", "lamda=400.0 #[kJ/kg] LAtent heat of benzene \n", "mb_dot=14.4 #[t/h] Condensation rate of benzene vapour\n", "Cpw=4.187 #Specific heat\n", "\n", "\n", "#Calculation\n", "\n", "#With no Scale\n", "Q=mb_dot*1000.0*lamda #Heat duty of condenser in [kJ/h]\n", "Q=(Q/3600.0)*1000.0 #[W]\n", "#Shell and tube type of heat exchanger is used as a single pass surface condenser\n", "Di=0.022 #I.D of tube[m]\n", "L=2.5 #Length of each tube in [m]\n", "n=120.0 #Number of tubes\n", "A=math.pi*Di*L #Area of heat transfer per metre length in [m**2/m]\n", "A=n*A #Total area of heat transfer in [m**2]\n", "Ai=(math.pi/4.0)*Di**2 #Cross-sectional area of each tube in [m**2]\n", "Ai=n*Ai #Total area of flow in [m**2]\n", "u=0.75 #Velocty of water [ms**-1]\n", "V=u*Ai #Volumetric flow of water \n", "rho=1000.0 #[Density of water in [kg/m**3]]\n", "mw_dot=V*rho #Mass flow rate of water in [kg/s]\n", "\n", "#Heat balance\n", "#Q=mw_dot*Cpw*(t2-t1)\n", "t2=Q/(mw_dot*Cpw*1000)+t1 #[K]\n", "T=350.0 #Condensing benzene temperature in [K]\n", "dT1=T-t1 #[K]\n", "dT2=T-t2 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #LMTD\n", "U=Q/(A*dTlm) #[W/m**2.K]\n", "U=round(U)\n", "#Neglecting resistance,we have:\n", "hi=1/(1/U-1/ho) #[W/m**2.K]\n", "#hi is proportional to u**0.8\n", "C=hi/(u**0.8) #Constant\n", "\n", "#With Scale\n", "Rd=2.5*10**-4 #[m**2 K./W]\n", "#1/U=1/hi+1/ho+Rd\n", "#U=hi/(1+3.38*u**0.8)\n", "#mw_dot=rho*u*Ai #[kg/s]\n", "#Let t2 be the outlet temperature of water \n", "#Q=mw_dot*Cpw*(t2-t1)\n", "#t2=Q/(mw_dot*Cpw)+t1 \n", "dT1=60.0\n", "#dT2=T-(t1+8.373/u)\n", "#dTlm=8.373/(u*math.log(60*u/(60*u-8.373)))\n", "#Q=U*A*dTlm\n", "#1.89=((u**-0.2)/(1+3.38*u**0.8))*(1/math.log((60*u)/60*u-8.373)\n", "#If we assume values of u greater than 0.75 m/s\n", "#For u=3.8 #[ms**-1]\n", "u=3.8 #]ms**-1]\n", "\n", "#Result\n", "print\"Water velocity must be 3.88 m/s\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.13,Page no:5.52" ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No. of tubes= 100.0 \n", "Length of tube= 2.48 m\n" ] } ], "source": [ "#Length of pipe in Exchanger\n", "import math\n", "\n", "#Variable declaration\n", "mh_dot=1.25 #[kg/s]\n", "Cpw=4.187*10**3 #Heat capacity of water in [J/kg.K]\n", "lamda=315.0 #[kJ/kg]\n", "Q=mh_dot*lamda #Rate of heat transfer from vapour [kJ/s]\n", "Q=Q*10**3 #[W]\n", "Ts=345.0 #Temperature of condensing vapour[K]\n", "t1=290.0 #Inlet temperature of water [K]\n", "t2=310.0 #Outlet temperature of water[K]\n", "\n", "#Calculation\n", "dT1=Ts-t1 #[K]\n", "dT2=Ts-t2 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "#Heat removed from vapour = Heat gained\n", "mw_dot=Q/(Cpw*(t2-t1)) #[kg/s]\n", "hi=2.5 #[kW/sq m.K]\n", "hi=hi*1000 #[W/sq m.K]\n", "Do=0.025 #[m]\n", "Di=0.020 #[m]\n", "hio=hi*(Di/Do) #Inside heat transfer cosfficient referred to outside dia in [W/sq m.K]\n", "ho=0.8 #Outside heat tranbsfer coefficient in [kW/sq m.K]\n", "ho=ho*1000.0 #[W/sq m.K]\n", "Uo=1.0/(1.0/ho+1.0/hio) #[W/sq m.K]\n", "#Ud is 80% of Uc\n", "Ud=(80.0/100)*Uo #[W/sq m.K]\n", "Ao=Q/(Ud*dTlm) #[sq m]\n", "L=1.0 #[m]\n", "A=math.pi*Do*L #Outside area of pipe per m length of pipe\n", "len=Ao/A #Total length of piping required.\n", "rho=1000.0 #[kg/m**3]\n", "V=mw_dot/rho #[m**3/s]\n", "v=0.6 #[m/s]\n", "a=V/v #Cross-sectional area for flow pass [sq m]\n", "a1=(math.pi*Di**2.0)/4 #[sq m]\n", "#for single pass on tube side fluid(water)\n", "n=round(a/a1) #No. of tubes per pass\n", "l=len/n #Length of each tube in [m]\n", "#For two passes on water side:\n", "tn=2*n #Total no of tubes\n", "l2=len/tn #Length of each tube in [m]\n", "#For four passes on water side/tube side\n", "tn2=4*n #Total no. of tubes\n", "l3=len/tn2 #Length of each tube in [m]\n", "\n", "\n", "#Result\n", "print\"No. of tubes=\",tn2,\"\\nLength of tube=\",round(l3,2),\"m\"\n", "\n", " \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.14,Page no:5.54" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NOTE:The calculation of line no.36 to calculate 'ass' is wrongly done in Book by printing 0.0353,,..which is wrong\n", "\n", "Rd=7.34e-04 K/W,\n", "which is less than the provided,so this if installed will not give required temperatures without frequent cleaning\n" ] } ], "source": [ "#Dirt factor\n", "\n", "import math\n", "\n", "#Variable declaration\n", "\n", "#Properties of crude oil:\n", "Cpc=1.986 #[kJ/(kg.K)]\n", "mu1=2.9*10**-3 #[N.s/sq m]\n", "k1=0.136 #[W/m.K]\n", "rho1=824 #[kg/m**3]\n", "#Properties of bottom product:\n", "Cp2=2.202 #[kJ/kg.K]\n", "rho2=867.0 #[kg/m**3]\n", "mu2=5.2*10**-3 #[N.s/sq m]\n", "k2=0.119 #[W/sq m.K]\n", "mc_dot=135000.0 #Basis: cruid oil flow rate in [kg/h]\n", "m_dot=106000.0 #Bottom product flow rate inn [kg/h]\n", "t1=295.0 #[K]\n", "t2=330.0 #[K]\n", "T1=420.0 #[K]\n", "T2=380.0 #[K]\n", "dT1=T1-t2 #[K]\n", "dT2=T2-t1 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "Q=mc_dot*Cpc*(t2-t1) #kJ/h\n", "Q=Q*1000.0/3600 #[W]\n", "#Shell side calculations:\n", "Pt=25.0 #[mm]\n", "Pt=Pt/1000 #[m]\n", "B=0.23 #[m]\n", "Do=0.019 #[m]Outside diameter for square pitch \n", "c_dash=Pt-Do # ance in [m]\n", "id=0.6 #[m]\n", "ass=id*c_dash*B/Pt # Cross flow area of shell [sq m]\n", "#since there is a Calculaiton mistake ,we take:\n", "ass=0.0353 \n", "Gs=m_dot/ass #Shell side mass velocity in [kg/sq m.h]\n", "Gs=Gs/3600 #[kg/sq m.s]\n", "De=4*(Pt**2-(math.pi/4)*Do**2)/(math.pi*Do) #[m]\n", "Nre=De*Gs/mu2 #Reynolds number\n", "Npr=Cp2*1000*mu2/k2 #Prandtl number\n", "muw=mu2 #Since mu/muw=1\n", "Nnu=0.36*(Nre**0.55)*Npr**(1.0/3.0)*(mu2/muw)**(0.14) #Nusselt number\n", "ho=Nnu*k2/De #[W/sq m.K]\n", "#Tube side heat transfer coefficient:\n", "n=324.0 #No. of tubes\n", "n_p=324.0/2 #No.of tubes per pass\n", "t=2.1 #Thickness in [mm]\n", "t=t/1000 #[m]\n", "Di=Do-2*t #I.d of tube in [m]\n", "A=(math.pi/4)*(Di**2) #Cross-sectional area of one tube in [sq m]\n", "A_p=n_p*A #Total area for flow per pass in [sq m]\n", "G=mc_dot/A_p #[kg/sq m h]\n", "G=G/3600.0 #[kg/sq m.s]\n", "Nre=Di*G/mu1 #Reynolods number\n", "Npr=42.35 #Prandtl number\n", "Nnu=0.023*(Nre**0.8)*(Npr**0.4) #Nusselt number\n", "hi=Nnu*k1/Di #[W/sq m.K]\n", "hio=hi*Di/Do #[W/sq m.K]\n", "Uo=1.0/(1.0/ho+1.0/hio) #[W/sq m.K]\n", "Uc=Uo\n", "L=4.88 #Length of tube in [m]\n", "Ao=n*math.pi*Do*L #[sq m]\n", "Ud=Q/(Ao*dTlm) #[W/sq m.K]\n", "Rd=(Uc-Ud)/(Uc*Ud) #[m**2.K/W]\n", "\n", "#Result\n", "print\"NOTE:The calculation of line no.36 to calculate 'ass' is wrongly done in Book by printing 0.0353,,..which is wrong\" \n", "print\"\\nRd=%.2e\"%Rd,\"K/W,\\nwhich is less than the provided,so this if installed will not give required temperatures without frequent cleaning\"\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.15,Page no:5.57" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overall heat transfer coefficient is 135.1 W/m^2.K and\n", "\n", "Heat transfer area is 9.17 m^2\n" ] } ], "source": [ "#Heat transfer area\n", "import math\n", "\n", "#Variable declaration\n", "#CASE I:\n", "Cp=4*10**3 #[J/kg.K]\n", "t1=295 #[K]\n", "t2=375 #[K]\n", "sp=1.1 #Specific gravity of liquid \n", "v1=1.75*10**-4 #Flow of liquid in [m**3/s]\n", "rho=sp*1000 #[kg/m**3]\n", "m_dot=v1*rho #[kg/s]\n", "Q=m_dot*Cp*(t2-t1) #[W]\n", "T=395 #[K]\n", "dT1=T-t1 #[K]\n", "dT2=T-t2 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "U1A=Q/dTlm #[W/K]\n", "#CASE-II\n", "v2=3.25*10**-4 #Flow in [m**3/s]\n", "T2=370 #[K]\n", "m_dot=v2*rho #[kg/s]\n", "\n", "\n", "#Calculation\n", "Q=m_dot*Cp*(T2-t1) #[W]\n", "dT1=T-t1 #[K]\n", "dT2=T-T2 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "U2A=Q/dTlm #[W/K]\n", "#since u is propn to v\n", "#hi =C*v**0.8\n", "\n", "U2_by_U1=U2A/U1A \n", "\n", "ho=3400 #Heat transfer coeff for condensing steam in [W/sq m.K]\n", "C=poly([0])\n", "#Let C=1 and v=v1\n", "#C=1 \n", "v=v1 #=1.75*10**-4 m**3/s\n", "hi=C*v**0.8\n", "U1=1.0/(1.0/ho+1.0/hi) #\n", "#When v=v2\n", "v=v2 \n", "hi=C*v**0.8\n", "U2=1.0/(1.0/ho+1.0/hi) #\n", "#Since U2=1.6U1\n", "#On solving we get:\n", "C=142497\n", "v=v1\n", "hi=C*v**0.8\n", "U1=1.0/(1.0/ho+1.0/hi) #\n", "A=U1A/U1 #Heat transfer area in [sq m]\n", "\n", "#Result\n", "print\"Overall heat transfer coefficient is\",round(U1,1),\"W/m^2.K and\\n\\nHeat transfer area is\",round(A,2),\"m^2\"\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.16,Page no:5.59" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Length of tube required = 2.66 m\n" ] } ], "source": [ "#Oil Cooler\n", "import math\n", "\n", "#Variable declaration\n", "mo_dot=6*10**-2 #[kg/s]\n", "Cpo=2*10**3 #Specific heat of oil in [J/kg.K]\n", "Cpw=4.18*10**3 #Specific heat of water in [J/kg.K]\n", "T1=420 #[K]\n", "T2=320 #[K]\n", "T=290 #[K] Water entering temperature\n", "\n", "#Calculation\n", "Q=mo_dot*Cpo*(T1-T2) #[J/s]=[W]\n", "#Heat given out =Heat gained\n", "t2=Q/(mo_dot*Cpw)+T #[K]\n", "dT1=T1-t2 #[K]\n", "dT2=T2-T #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "hi=1.6*1000 #[W/sq m.K]\n", "ho=3.6*1000 #[W/sq m.K]\n", "U=1.0/(1.0/ho+1.0/hi) #[W/sq m.K]\n", "A=Q/(U*dTlm) #[sq m]\n", "D=0.025 #[m]\n", "L=A/(math.pi*D) #[m]\n", "\n", "#Result\n", "print\"Length of tube required =\",round(L,2),\"m\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.17,Page no:5.60" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total length of tubing required= 163.0 m\n" ] } ], "source": [ "#Countercurrent flow heat exchanger\n", "import math\n", "\n", "#Variable declaration\n", "mb_dot=1.25 #Benzene in [kg/s]\n", "Cpb=1.9*10**3 #For benzene in [J/kg.K]\n", "Cpw=4.187*10**3 #in [J/kg.K]\n", "T1=350 #[K]\n", "T2=300 #[K]\n", "Q=mb_dot*Cpb*(T1-T2) #[W]\n", "t1=290 #[K]\n", "t2=320 #[K]\n", "\n", "#Calculation\n", "dT1=T1-t2 #[K]\n", "dT2=T2-t1 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "mw_dot=Q/(Cpw*(t2-t1)) #Minimum flow rate of water in [kg/s]\n", "hi=850 #[W/sq m.K]\n", "ho=1700 #[W/sq m.K]\n", "Do=0.025 #[m]\n", "Di=0.022 #[m]\n", "x=(Do-Di) /2 #Thickness in [m]\n", "hio=hi*(Di/Do) #[W/sq m.K]\n", "Dw=(Do-Di)/math.log(Do/Di) #[m]\n", "k=45.0 #[W/m.K]\n", "Uo=1.0/((1.0/ho)+(1.0/hio)+(x/k)*(Do/Dw)) #[W/sq m.K]\n", "Ao=Q/(Uo*dTlm) #[sq m]\n", "L=1.0 #Length in [m]\n", "area=math.pi*Do*L # Outside surface area of tube per i m length \n", "Tl=Ao/area #Total length of tubing required in [m]\n", "\n", "#Result\n", "print\"Total length of tubing required=\",round(Tl),\"m\"\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.18,Page no:5.61" ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Uc( 994.0 W/m^2.K) is in excess of Ud( 754.0 W/m^2.K),therefore we allow for reasonable scale resistance,\n", "Rd=3.2e-04 K/W\n", "\n", "No.of tubes = 60.0\n" ] } ], "source": [ "#Vertical Exchanger\n", "import math\n", "\n", "#Variable declaration\n", "m_dot=4500.0 #Benzene condensation rate in [kg/h]\n", "lamda=394.0 #Latent heat of condensation of benzene in [kJ/kg]\n", "Q=m_dot*lamda #[kJ/h]\n", "Q=Q*1000.0/3600 #[W]\n", "Cpw=4.18 #[kJ/kg.K]\n", "t1=295.0 #[K]\n", "t2=300.0 #[K]\n", "\n", "\n", "#Calculation\n", "#For water :\n", "mw_dot=Q/(Cpw*1000*(t2-t1)) #[kg/s]\n", "rho=1000.0 #[kg/m**3\n", "V=mw_dot/rho #Volumetric flow rate in [m**3/s]\n", "u=1.05 #[m/s]\n", "A=V/u #Cross-sectional area required in [sq m]\n", "#For tube:\n", "x=1.6 #thickness in [mm]\n", "x=x/1000 #[m]\n", "Do=0.025 #[m]\n", "Di=Do-2*x #[m]\n", "A1=(math.pi*Di**2)/4 #Of one tube [sq m]\n", "n=A/A1 #No. of tubes reuired \n", "n=round(n)\n", "L=2.5 #Length of tube in [m]\n", "Ao=n*math.pi*Do*L #Surface area for heat transfer in [sq m]\n", "Ts=353.0 #Condensing temp of benzene in [K]\n", "T1=295.0 #Inlet temperature in [K]\n", "T2=300.0 #Outlet temperature in [K]\n", "dT1=Ts-T1 #[K]\n", "dT2=Ts-T2 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "Uo=Q/(Ao*dTlm) #[W/sq mK]\n", "Ud=Uo #[W/sq m.K]\n", "#OVERALL HEAT TRANSFER COEFFCIENT:\n", "#Inside side:\n", "T=(T2+T1)/2 #[K]\n", "hi=1063*((1+0.00293*T)*u**0.8)/(Di**0.2) #[W/sq m.K]\n", "hio=hi*(Di/Do) #[W/sq m.K]\n", "Dw=(Do-Di)/math.log(Do/Di) #[m]\n", "k=45.0 #For tube in [W/(m.)]\n", "#Outside of tube:\n", "mdot_dash=1.25/n #[kg/s]\n", "M=mdot_dash/(math.pi*Do) #[kg/(m.s)]\n", "k=0.15 #[W/(m.K)]\n", "rho=880.0 #[kg/m**3]\n", "mu=0.35*10**-3 #[N.s/sq m]\n", "g=9.81 #[m/s**2] Acceleration due to gravity\n", "hm=(1.47*((4*mdot_dash)/mu)**(-1.0/3.0))/(mu**2/(k**3*rho**2*g))**(1.0/3.0) #[W/sq m.K]\n", "ho=hm #[W/sq m.K]\n", "k=45 #[W/m]\n", "Uo=1.0/(1.0/ho+1.0/hio+(x*Do)/(k*Dw))\n", "#Uo=1/(1/ho+1/hio+(x*Do/(k*Dw))) #Overall heat transfer coefficient in [W/sq m.K]\n", "Uc=Uo #[W/sq m.K]\n", "Rd=(Uc-Ud)/(Uc*Ud) #Maximum allowable sclae resistance in [K/W]\n", "\n", "#Result\n", "print\"Uc(\",round(Uc),\"W/m^2.K) is in excess of Ud(\",round(Ud),\"W/m^2.K),therefore we allow for reasonable scale resistance,\\nRd=%.1e\"%Rd,\"K/W\\n\" \n", "print\"No.of tubes =\",n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.19,Page no:5.64" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Heat transfer area is 33.45 m^2\n" ] } ], "source": [ "#Countercurrent Heat Exchanger\n", "import math\n", "\n", "#Variable declaration\n", "mw_dot=5 #Water flow rate in [kg/s]\n", "Cpw=4.18 #Heat capacity of water [kJ/kg.K]\n", "t1=303 #[K]\n", "t2=343 #[K]\n", "\n", "#Calculation\n", "Q=mw_dot*Cpw*(t2-t1) #[kJ/s]\n", "Q=Q*1000 #[W]\n", "T1=413 #[K]\n", "T2=373 #[K]\n", "dT1=T1-t2 #[K]\n", "dT2=T2-t1 #[K]\n", "dTlm=dT1 #/[K]\n", "hi=1000 #[W/sq m.K]\n", "ho=2500 #[W/sq m.K]\n", "Rd=1.0/(0.714*1000) #Fouling factor[m**2.K/KW]\n", "U=1.0/(1.0/hi+1.0/ho+Rd) #[W/sq m.K]\n", "A=Q/(U*dTlm) #[sq m]\n", "\n", "#Result\n", "print\"Heat transfer area is\",round(A,2),\"m^2\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no5.20:,Page no:5.65" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Heat exchanger surface area is 10.84 m^2\n" ] } ], "source": [ "#Number of tube side pass\n", "import math\n", "\n", "#Variable declaration\n", "Cpo=1.9 #Heat capacity for oil[kJ/kg.K]\n", "Cps=1.86 #Heat capacity for steam [kJ/kg.K]\n", "ms_dot=5.2 #Mass flow rate in [kg/s]\n", "T1=403.0 #[K]\n", "T2=383.0 #[K]\n", "\n", "#Calculation\n", "Q=ms_dot*Cps*(T1-T2) #[kJ/s]\n", "Q=Q*1000.0 #[W]\n", "t1=288.0 #[K]\n", "t2=358.0 #[K]\n", "dT2=T1-t2 #[K]\n", "dT1=T2-t1 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #LMTD in [K]\n", "U=275.0 #Overall heat transfer coeffcient in [W#sq m.K]\n", "Ft=0.97 #LMTD correction factor\n", "A=Q/(U*Ft*dTlm) #[sq m]\n", "\n", "#Result\n", "print\"Heat exchanger surface area is\",round(A,2),\"m^2\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.21,Page no:5.66" ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The length is more than allowable 2.44 m length,so we must use more than one tube\n", "This length is within 2.44 m requirement,so the design choice is:\n", "\n", "--Type of heat exchanger : \t1-2 Shell and tube heat exchanger\n", "--No of tubes per pass=\t\t36.0\n", "--Length of tube per pass=\t1.83 m\n" ] } ], "source": [ "#Number of tubes passes\n", "import math\n", "\n", "#Variable declaration\n", "mc_dot=3.783 #Cold water flow rate[kg/s]\n", "mh_dot=1.892 #Hot water flow rate [kg/s]\n", "Cpc=4.18 #Sp heat of cold water [kJ/(kg.K)]\n", "T1=367.0 #[K]\n", "t2=328.0 #[K]\n", "t1=311.0 #[K]\n", "Cph=4.18 #Specific heat of hot water [kJ/(kg.K)]\n", "rho=1000.0 #Density [kg/m**3]\n", "D=0.019 #Diameter of tube in [m]\n", "U=1450.0 #Overal heat transfer coefficient in [W/sq m.K] \n", "\n", "#Calculation\n", "T2=T1-mc_dot*Cpc*(t2-t1)/(mh_dot*Cph) #[K]\n", "Q=mc_dot*Cpc*(t2-t1) #[kJ/s]\n", "Q=Q*1000.0 #[W]\n", "#For counterflow heat exchanger\n", "dT1=T1-t2 #[K]\n", "dT2=17.0 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "lmtd=dTlm #LMTD \n", "Ft=0.88 #LMTD correction factor\n", "A=Q/(U*dTlm) #[sq m]\n", "u=0.366 #Velocity through tubes[ms**-1]\n", "Ai=mc_dot/(rho*u) #Total flow Area in [sq m]\n", "n=Ai/((math.pi/4)*(D**2)) #No. of tubes \n", "L=1.0 #Per m length[m]\n", "sa=math.pi*D*L #S.S per tube per 1 m length\n", "L=A/(n*math.pi*D) #Length of tubes in [m]\n", "\n", "#Result\n", "print\"The length is more than allowable 2.44 m length,so we must use more than one tube\"\n", "#For 2passes on the tube side\n", "A=Q/(U*Ft*lmtd) #[sq m]\n", "L=A/(2*n*math.pi*D) #Length in [m]\n", "print\"This length is within 2.44 m requirement,so the design choice is:\\n\"\n", "print\"--Type of heat exchanger : \\t1-2 Shell and tube heat exchanger\"\n", "print\"--No of tubes per pass=\\t\\t\",round(n)\n", "print\"--Length of tube per pass=\\t\",round(L,2),\"m\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.22,Page no:5.67" ] }, { "cell_type": "code", "execution_count": 143, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "For countercurrent flow arrangement:\n", "Exit temperature of hot fluid is 721.0 K( 448.0 degree C)\n", "Exit temperature of cold fluid is 553.0 K( 280.0 degree C)\n", "\n", "For Parallel flow arrangement:\n", "Exit temperature of Hot water= 734.8 K( 461.8 degree C)\n", "Exit temperature of cold water= 543.2 K( 270.2 degree C)\n" ] } ], "source": [ "#Outlet temperature for hot and cold fluids\n", "import math\n", "\n", "#Variable declaration\n", "mh_dot=16.67 #Mass flow rate of hot fluid in [kg/s]\n", "mc_dot=20.0 #Mass flow rate of cold fluid in [kg/s]\n", "Cph=3.6 #Sp heat of hot fluid in [kJ/kg.K]\n", "Cph=Cph*1000 #Sp heat of hot fluid in [J/kg.K]\n", "Cpc=4.2 #Sp heat of cold fluid in [kJ/(kg.K)]\n", "Cpc=Cpc*1000 #Sp heat of cold fluid in [J/(kg.K)]\n", "U=400.0 #Overall heat transfer coefficient in [W/sq m.K]\n", "A=100.0 #Surface area in [sq m]\n", "\n", "#Calculation\n", "mCp_h=mh_dot*Cph #[J/s] or [W/K]\n", "mCp_c=mc_dot*Cpc #[J/s] or [W/K]\n", "mCp_small=mCp_h #[W/K]\n", "C=mCp_small/mCp_c #Capacity ratio \n", "ntu=U*A/mCp_small #NTU\n", "T1=973.0 #Hot fluid inlet temperature in [K]\n", "t1=373.0 #Cold fluid inlet temperature in [K]\n", "\n", "#Case 1:Countercurrent flow arrangement\n", "E=(1.0-math.exp(-(1.0-C)*ntu))/(1.0-C*math.exp(-(1.0-C)*ntu)) #Effectiveness\n", "E=round(E,2)\n", "#W=T1-T2/(T1-t1) therefore:\n", "T2=T1-E*(T1-t1) #[K]\n", "print\"For countercurrent flow arrangement:\"\n", "print\"Exit temperature of hot fluid is\",T2,\"K(\",T2-273,\"degree C)\"\n", "t2=mCp_h*(T1-T2)/(mCp_c)+t1 #[From energy balance eqn in ][K]\n", "print\"Exit temperature of cold fluid is\",round(t2),\" K(\",round(t2-273) ,\"degree C)\\n\"\n", "\n", "#Case 2:Parallel flow arrangement\n", "E1=(1-math.exp(-(1.0+C)*ntu))/(1.0+C)\n", "E1=round(E1,3)\n", "T2=T1-E1*(T1-t1) #[K]\n", "t2=mCp_h*(T1-T2)/(mCp_c)+t1 #[From energy balance eqn in ][K]\n", "print\"For Parallel flow arrangement:\"\n", "print\"Exit temperature of Hot water=\",T2,\"K(\",T2-273,\"degree C)\"\n", "print\"Exit temperature of cold water=\",round(t2,1),\"K(\",round(t2-273,1),\"degree C)\"\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.23,Page no:5.69" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "In textbook value of mCp_h is wrongly calculated as 231.1 so we will take this only for calculation\n", "\n", "From LMTD approach:\n", "length= 6.61 m\n", "\n", "From NTU method:\n", "length= 7.26 m\n" ] } ], "source": [ "#Counter flow concentric heat exchanger\n", "import math\n", "from scipy.optimize import fsolve\n", "\n", "#Variable declaration\n", "Cpo=2131.0 #Sp heat of oil in [J/kg.K]\n", "Cpw=4187.0 #Sp heat of water in [J/kg.K]\n", "mo_dot=0.10 #Oil flow rate in [kg/s]\n", "mw_dot=0.20 #Water flow rate in [kg/s]\n", "U=380.0 #Overall heat transfer coeff in [W/sq m.K]\n", "T1=373.0 #Initial temp of oil [K]\n", "T2=333.0 #Final temperature of oil [K]\n", "t1=303.0 #Water enter temperature in [K]\n", "\n", "\n", "#Calculation\n", "t2=t1+mo_dot*Cpo*(T1-T2)/(mw_dot*Cpw) #[K] \n", "\n", "#1.LMTD method\n", "dT1=T1-t2 #[K]\n", "dT2=T2-t1 #[K]\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "lmtd=dTlm #[K]\n", "Q=mo_dot*Cpo*(T1-T2) #[J/s]\n", "A=Q/(U*dTlm) #[sq m]\n", "Do=0.025 #Inner tubve diameter [m]\n", "L=A/(math.pi*Do) #Length in [m]\n", "\n", "#2.NTU method\n", "mCp_c=mw_dot*Cpw #[W/K]\n", "mCp_h=mo_dot*Cpo #[W/K]\n", "print\"In textbook value of mCp_h is wrongly calculated as 231.1 so we will take this only for calculation\\n\"\n", "mCp_h=231.1 #[W/K]\n", "#mCp_h is smaller\n", "C=mCp_h/mCp_c\n", "E=(T1-T2)/(T1-t1) #Effeciency\n", "#For countercurrent flow\n", "def f(ntu):\n", " x=E-(1.0-math.exp(-(1.0-C)*ntu))/(1.0-C*math.exp(-(1.0-C)*ntu))\n", " return(x)\n", "ntu=fsolve(f,1)\n", "A=ntu*mCp_h/U #[sq m]\n", "A=round(A[0],2)\n", "L1=A/(math.pi*Do) #Length in [m]'\n", "\n", "\n", "#Result\n", "print\"From LMTD approach:\\nlength=\",round(L,2),\"m\\n\" \n", "print\"From NTU method:\\nlength=\",round(L1,2),\"m\" \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.24,Page no:5.70" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No. of tubes required = 86.0\n" ] } ], "source": [ "#Number of tubes required\n", "import math\n", "from scipy.optimize import fsolve\n", "\n", "#Variable declaration\n", "ho=200.0 #[W/sq m.K]\n", "hi=1500.0 #[W/sq m.K]\n", "Cpw=4.2 #Sp heat of Water in [kJ/(kg.K)]\n", "Cpo=2.1 #Sp heat of Oil in [kJ/(kg.K)]\n", "E=0.8 #Effectiveness\n", "k=46.0 #[W/m.K]\n", "m_dot=0.167 #[kg/s]\n", "\n", "\n", "#Calculation\n", "\n", "mCp_oil=2*m_dot*Cpo*1000.0 #For oil [W/K]\n", "#mCp_oil is wrongly calculated as 710.4\n", "mCp_water=m_dot*Cpw*1000.0 #For water [W/K]\n", "#mCp_oil is wrongly calculated as 710.4\n", "#NOTE:The above two values are wrongly calculated in book as 710.4\n", "#so we take here:\n", "mCp_small=710.4 #[W/K]\n", "#Since both mCp_water and mCp_oil are equal ,therefore:\n", "C=1.0 \n", "def f(ntu):\n", " x=E-(ntu/(1+ntu))\n", " return(x)\n", "ntu=fsolve(f,1)\n", "id=20.0 #Internal diameter in [mm]\n", "od=25.0 #External diameter in [mm]\n", "hio=hi*id/od #[W/sq m.K]\n", "Dw=(od-id)/math.log(od/id) #[mm]\n", "Dw=Dw/1000.0 #[m]\n", "x=(od-id)/2.0 #[mm]\n", "x=x/1000.0 #[m]\n", "Do=0.025 #External dia in [m]\n", "L=2.5 #Length of tube in [m]\n", "Uo=1.0/(1.0/ho+1.0/hio+(x/k)*(Dw/Do)) #[W/sq m.K]\n", "A=ntu*mCp_small/Uo #Heat transfer area in [sq m]\n", "n=A/(math.pi*Do*L) #No of tubes\n", "\n", "#Result\n", "print\"No. of tubes required =\",round(n+1)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example no:5.25,Page no:5.72" ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "For parallel flow,Area = 1.234 m^2\n", "For countercurrent flow,Area= 1.195 m\n", "\n", "For the same terminal temperatures of the fluid ,\n", "the surface area for the counterflow arrangement is less than the required for the parallel flow\n" ] } ], "source": [ "#Parallel and Countercurrent flow\n", "import math\n", "\n", "#Variable declaration\n", "#(i)Parallel flow\n", "T1=633.0 #[K]\n", "t2=303.0 #[K]\n", "T2=573.0 #[K]\n", "t1=400.0 #[K]\n", "\n", "#Calculation\n", "dT1=T1-t2 #[K]\n", "dT2=T2-t1 #[K]\n", "mh_dot=1.2 #[kg/s]\n", "U=500.0 #Overall heat transfer coefficient in [W/sqm.K]\n", "Cp=2083.0 #Sp.heat of oil J/kg.K\n", "dTlm=(dT1-dT2)/math.log(dT1/dT2) #[K]\n", "Q=mh_dot*Cp*(T1-T2) #[W]\n", "A=Q/(U*dTlm) #[sq m]\n", "\n", "#(ii)Counter current flow\n", "dT1=T1-t1 #[K]\n", "dT2=T2-t2 #[K]\n", "dTlm=(dT2-dT1)/math.log(dT2/dT1) #[K]\n", "A1=Q/(U*dTlm) #[sq m]\n", "\n", "#Result\n", "print\"For parallel flow,Area =\",round(A,3),\"m^2\\nFor countercurrent flow,Area=\",round(A1,3),\"m\\n\"\n", "print\"For the same terminal temperatures of the fluid ,\\nthe surface area for the counterflow arrangement is less than the required for the parallel flow\"\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }