diff options
Diffstat (limited to 'Chemical_Engineering_Thermodynamics/ch13_1.ipynb')
-rw-r--r-- | Chemical_Engineering_Thermodynamics/ch13_1.ipynb | 313 |
1 files changed, 313 insertions, 0 deletions
diff --git a/Chemical_Engineering_Thermodynamics/ch13_1.ipynb b/Chemical_Engineering_Thermodynamics/ch13_1.ipynb new file mode 100644 index 00000000..4dce9007 --- /dev/null +++ b/Chemical_Engineering_Thermodynamics/ch13_1.ipynb @@ -0,0 +1,313 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "\n", + "Chapter 13 : Fugacity of a Component in a Mixture by Equations of State" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 13.2 Page Number : 433" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Caculation of fugacity coefficients\n", + "\n", + "import math \n", + "\n", + "\n", + "# Variables\n", + "T = 310.93;\t\t\t#[K] - Temperature\n", + "P = 2.76*10**(6);\t\t\t#[Pa] - Pressure\n", + "y1 = 0.8942;\t\t\t#[mol] - mole fraction of component 1\n", + "y2 = 1 - y1;\t\t\t#[mol] - mole fraction of component 2\n", + "R=8.314;\t\t\t#[J/mol*K] - Universal gas constant\n", + "\n", + "#For component 1 (methane)\n", + "Tc_1 = 190.6;\t\t\t#[K] - Critical temperature\n", + "Pc_1 = 45.99*10**(5);\t\t\t#[N/m**(2)] - Critical pressure\n", + "Vc_1 = 98.6;\t\t\t#[cm**(3)/mol] - Critical molar volume\n", + "Zc_1 = 0.286;\t\t\t# - Critical compressibility factor\n", + "w_1 = 0.012;\t\t\t# - Critical acentric factor\n", + "#Similarly for component 2 (n-Butane)\n", + "Tc_2 = 425.1;\t\t\t#[K]\n", + "Pc_2 = 37.96*10**(5);\t\t\t#[N/m**(2)]\n", + "Vc_2 = 255;\t\t\t#[cm**(3)/mol]\n", + "Zc_2=0.274;\n", + "w_2=0.2;\n", + "\n", + "# Calculations\n", + "#For component 1\n", + "Tr_1 = T/Tc_1;\t\t\t#Reduced temperature\n", + "#At reduced temperature\n", + "B1_0 = 0.083-(0.422/(Tr_1)**(1.6));\n", + "B1_1 = 0.139-(0.172/(Tr_1)**(4.2));\n", + "#We know,(B*Pc)/(R*Tc) = B_0+(w*B_1)\n", + "B_11 = ((B1_0+(w_1*B1_1))*(R*Tc_1))/Pc_1;\t\t\t#[m**(3)/mol]\n", + "\n", + "#Similarly for component 2\n", + "Tr_2 = T/Tc_2;\t\t\t#Reduced temperature\n", + "#At reduced temperature Tr_2,\n", + "B2_0 = 0.083-(0.422/(Tr_2)**(1.6));\n", + "B2_1 = 0.139-(0.172/(Tr_2)**(4.2));\n", + "B_22 = ((B2_0+(w_2*B2_1))*(R*Tc_2))/Pc_2;\t\t\t#[m**(3)/mol]\n", + "\n", + "#For cross coeffcient\n", + "Tc_12 = (Tc_1*Tc_2)**(1./2);\t\t\t#[K]\n", + "w_12 = (w_1+w_2)/2;\n", + "Zc_12 = (Zc_1+Zc_2)/2;\n", + "Vc_12 = (((Vc_1)**(1./3)+(Vc_2)**(1./3))/2)**(3);\t\t\t#[cm**(3)/mol]\n", + "Vc_12 = Vc_12*10**(-6);\t\t\t#[m**(3)/mol]\n", + "Pc_12 = (Zc_12*R*Tc_12)/Vc_12;\t\t\t#[N/m**(2)]\n", + "\n", + "# Variables, Z = 1 + (B*P)/(R*T)\n", + "#Now we have,(B_12*Pc_12)/(R*Tc_12) = B_0 + (w_12*B_1)\n", + "#where B_0 and B_1 are to be evaluated at Tr_12\n", + "Tr_12 = T/Tc_12;\n", + "#At reduced temperature Tr_12\n", + "B_0 = 0.083-(0.422/(Tr_12)**(1.6));\n", + "B_1 = 0.139-(0.172/(Tr_12)**(4.2));\n", + "B_12 = ((B_0+(w_12*B_1))*R*Tc_12)/Pc_12;\t\t\t#[m**(3)/mol]\n", + "#For the mixture\n", + "B = y1**(2)*B_11+2*y1*y2*B_12+y2**(2)*B_22;\t\t\t#[m**(3)/mol]\n", + "\n", + "#Now del_12 can be calculated as,\n", + "del_12 = 2*B_12 - B_11 - B_22;\t\t\t#[m**(3)/mol]\n", + "\n", + "#We have the relation, math.log(phi_1) = (P/(R*T))*(B_11 + y2**(2)*del_12), therefore\n", + "phi_1 = math.exp((P/(R*T))*(B_11 + y2**(2)*del_12));\n", + "#Similarly for component 2\n", + "phi_2 = math.exp((P/(R*T))*(B_22 + y1**(2)*del_12));\n", + "\n", + "# Results\n", + "print \" The value of fugacity coefficient of component 1 phi_1) is %f\"%(phi_1);\n", + "print \" The value of fugacity coefficient of component 2 phi_2) is %f\"%(phi_2);\n", + "\n", + "#Finally fugacity coefficient of the mixture is given by\n", + "#math.log(phi) = y1*math.log(phi_1) + y2*math.log(phi_2);\n", + "phi = math.exp(y1*math.log(phi_1) + y2*math.log(phi_2));\n", + "\n", + "print \" The value of fugacity coefficient of the mixture phi) is %f \"%(phi);\n", + "#The fugacity coefficient of the mixture can also be obtained using\n", + "#math.log(phi) = (B*P)/(R*T)\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The value of fugacity coefficient of component 1 phi_1) is 0.965152\n", + " The value of fugacity coefficient of component 2 phi_2) is 0.675374\n", + " The value of fugacity coefficient of the mixture phi) is 0.929376 \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 13.7 Page Number : 447" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of fugacity coefficients\n", + "\n", + "from scipy.optimize import fsolve \n", + "import math \n", + "\n", + "# Variables\n", + "T = 460.;\t\t\t#[K] - Temperature\n", + "P = 40.*10**(5);\t\t\t#[Pa] - Pressure\n", + "R=8.314;\t\t\t#[J/mol*K] - Universal gas constant\n", + "# component 1 = nitrogen\n", + "# component 2 = n-Butane\n", + "y1 = 0.4974;\t\t\t# Mole percent of nitrogen\n", + "y2 = 0.5026;\t\t\t# Mole percent of n-Butane\n", + "Tc_nit = 126.2;\t\t\t#[K]\n", + "Pc_nit = 34.00*10**(5);\t\t\t#[Pa]\n", + "Tc_but = 425.1;\t\t\t#[K]\n", + "Pc_but = 37.96*10**(5);\t\t\t#[Pa]\n", + "\n", + "# (1). van der Walls equation of state\n", + "\n", + "# The fugacity coefficient of component 1 in a binary mixture following van der Walls equation of state is given by,\n", + "# math.log(phi_1) = b_1/(V-b) - math.log(Z-B) -2*(y1*a_11 + y2*a_12)/(R*T*V)\n", + "# and for component 2 is given by,\n", + "# math.log(phi_2) = b_2/(V-b) - math.log(Z-B) -2*(y1*a_12 + y2*a_22)/(R*T*V)\n", + "# Where B = (P*b)/(R*T)\n", + "\n", + "# Calculations\n", + "# For componenet 1 (nitrogen)\n", + "a_1 = (27*R**(2)*Tc_nit**(2))/(64*Pc_nit);\t\t\t#[Pa-m**(6)/mol**(2)]\n", + "b_1 = (R*Tc_nit)/(8*Pc_nit);\t\t\t#[m**(3)/mol]\n", + "\n", + "# Similarly for componenet 2 (n-Butane)\n", + "a_2 = (27*R**(2)*Tc_but**(2))/(64*Pc_but);\t\t\t#[Pa-m**(6)/mol**(2)]\n", + "b_2 = (R*Tc_but)/(8*Pc_but);\t\t\t#[m**(3)/mol]\n", + "\n", + "# Here\n", + "a_11 = a_1;\n", + "a_22 = a_2;\n", + "# For cross coefficient\n", + "a_12 = (a_1*a_2)**(1./2);\t\t\t#[Pa-m**(6)/mol**(2)]\n", + "\n", + "# For the mixture \n", + "a = y1**(2)*a_11 + y2**(2)*a_22 + 2*y1*y2*a_12;\t\t\t#[Pa-m**(6)/mol**(2)]\n", + "b = y1*b_1 + y2*b_2;\t\t\t#[m**(3)/mol]\n", + "\n", + "# The cubic form of the van der Walls equation of state is given by,\n", + "# V**(3) - (b+(R*T)/P)*V**(2) + (a/P)*V - (a*b)/P = 0\n", + "# Substituting the value and solving for V, we get\n", + "# Solving the cubic equation\n", + "def f(V): \n", + " return V**(3)-(b+(R*T)/P)*V**(2)+(a/P)*V-(a*b)/P\n", + "V_1=fsolve(f,-1)\n", + "V_2=fsolve(f,0)\n", + "V_3=fsolve(f,1)\n", + "# The molar volume V = V_3, the other two roots are imaginary\n", + "V = V_3;\t\t\t#[m**(3)/mol]\n", + "\n", + "# The comprssibility factor of the mixture is \n", + "Z = (P*V)/(R*T);\n", + "# And B can also be calculated as\n", + "B = (P*b)/(R*T);\n", + "\n", + "# The fugacity coefficient of component 1 in the mixture is\n", + "phi_1 = math.exp(b_1/(V-b) - math.log(Z-B) -2*(y1*a_11 + y2*a_12)/(R*T*V));\n", + "# Similarly fugacity coefficient of component 2 in the mixture is \n", + "phi_2 = math.exp(b_2/(V-b) - math.log(Z-B) -2*(y1*a_12 + y2*a_22)/(R*T*V));\n", + "\n", + "# The fugacity coefficient of the mixture is given by,\n", + "# math.log(phi) = y1*math.log(phi_1) + y2*math.log(phi_2)\n", + "phi = math.exp(y1*math.log(phi_1) + y2*math.log(phi_2));\n", + "\n", + "# Also the fugacity coefficient of the mixture following van der Walls equation of state is given by,\n", + "# math.log(phi) = b/(V-b) - math.log(Z-B) -2*a/(R*T*V)\n", + "phi_dash = math.exp(b/(V-b) - math.log(Z-B) -2*a/(R*T*V));\n", + "# The result is same as obtained above\n", + "\n", + "# Results\n", + "print \" 1van der Walls equation of state\";\n", + "print \" The value of fugacity coefficient of component 1 nitrogen) is %f\"%(phi_1);\n", + "print \" The value of fugacity coefficient of component 2 n-butane) is %f\"%(phi_2);\n", + "print \" The value of fugacity coefficient of the mixture is %f\"%(phi);\n", + "print \" Also the fugacity coefficient of the mixture from van der Walls equation of state is %f which is same as above)\"%(phi_dash);\n", + "\n", + "# (2). Redlich-Kwong equation of state\n", + "\n", + "# For component 1,\n", + "a_1_prime = (0.42748*R**(2)*Tc_nit**(2.5))/Pc_nit;\t\t\t#[Pa-m**(6)/mol**(2)]\n", + "b_1_prime = (0.08664*R*Tc_nit)/Pc_nit;\t\t\t#[m**(3)/mol]\n", + "\n", + "#similarly for component 2,\n", + "a_2_prime = (0.42748*R**(2)*Tc_but**(2.5))/Pc_but;\t\t\t#[Pa-m**(6)/mol**(2)]\n", + "b_2_prime = (0.08664*R*Tc_but)/Pc_but;\t\t\t#[m**(3)/mol]\n", + "\n", + "# For cross coefficient\n", + "a_12_prime = (a_1_prime*a_2_prime)**(1./2);\t\t\t#[Pa-m**(6)/mol**(2)]\n", + "# For the mixture\n", + "a_prime = y1**(2)*a_1_prime + y2**(2)*a_2_prime +2*y1*y2*a_12_prime;\t\t\t#[Pa-m**(6)/mol**(2)]\n", + "b_prime = y1*b_1_prime +y2*b_2_prime;\t\t\t#[m**(3)/mol]\n", + "\n", + "\n", + "#The cubic form of Redlich Kwong equation of state is given by,\n", + "# V**(3)-((R*T)/P)*V**(2)-((b**(2))+((b*R*T)/P)-(a/(T**(1/2)*P))*V-(a*b)/(T**(1/2)*P)=0\n", + "# Solving the cubic equation\n", + "def f1(V): \n", + " return V**(3)-((R*T)/P)*V**(2)-((b_prime**(2))+((b_prime*R*T)/P)-(a_prime/(T**(1./2)*P)))*V-(a_prime*b_prime)/(T**(1./2)*P)\n", + "V_4=fsolve(f1,1)\n", + "V_5=fsolve(f1,0)\n", + "V_6=fsolve(f1,-1)\n", + "# The molar volume V = V_4, the other two roots are imaginary\n", + "V_prime = V_4;\t\t\t#[m**(3)/mol]\n", + "\n", + "# The compressibility factor of the mixture is\n", + "Z_prime = (P*V_prime)/(R*T);\n", + "# And B can also be calculated as\n", + "B_prime = (P*b_prime)/(R*T);\n", + "\n", + "# The fugacity coefficient of component 1 in the binary mixture is given by\n", + "# math.log(phi_1) = b_1/(V-b) - math.log(Z-B) + ((a*b_1)/((b**(2)*R*T**(3/2))))*(math.log((V+b)/V)-(b/(V+b)))-(2*(y1*a_1+y2*a_12)/(R*T**(3/2)b))*(math.log(V+b)/b)\n", + "\n", + "phi_1_prime = math.exp((b_1_prime/(V_prime-b_prime))-math.log(Z_prime-B_prime)+((a_prime*b_1_prime)/((b_prime**(2))*R*(T**(3./2))))*(math.log((V_prime+b_prime)/V_prime)-(b_prime/(V_prime+b_prime)))-(2*(y1*a_1_prime+y2*a_12_prime)/(R*(T**(3./2))*b_prime))*(math.log((V_prime+b_prime)/V_prime)));\n", + "\n", + "\n", + "# Similarly fugacity coefficient of component 2 in the mixture is \n", + "phi_2_prime = math.exp((b_2_prime/(V_prime-b_prime))-math.log(Z_prime-B_prime)+((a_prime*b_2_prime)/((b_prime**(2))*R*(T**(3./2))))*(math.log((V_prime+b_prime)/V_prime)-(b_prime/(V_prime+b_prime)))-(2*(y1*a_12_prime+y2*a_2_prime)/(R*(T**(3./2))*b_prime))*(math.log((V_prime+b_prime)/V_prime)));\n", + "\n", + "# The fugacity coefficient of the mixture is given by,\n", + "# math.log(phi) = y1*math.log(phi_1) + y2*math.log(phi_2)\n", + "phi_prime = math.exp(y1*math.log(phi_1_prime) + y2*math.log(phi_2_prime));\n", + "\n", + "# Also the fugacity coefficient for the mixture following Redlich-kwong equation of state is also given by\n", + "# math.log(phi) = b/(V-b) - math.log(Z-B) - (a/(R*T**(3/2)))*(1/(V+b)+(1/b)*math.log((V+b)/V))\n", + "phi_prime_dash = math.exp(b_prime/(V_prime-b_prime) - math.log(Z_prime-B_prime) - (a_prime/(R*T**(3./2)))*(1/(V_prime+b_prime)+(1./b_prime)*math.log((V_prime+b_prime)/ V_prime)));\n", + "\n", + "print \" \\nRedlich-Kwong equation of state\";\n", + "print \" The value of fugacity coefficient of component 1 nitrogen) is %f\"%(phi_1_prime);\n", + "print \" The value of fugacity coefficient of component 2 n-butane) is %f\"%(phi_2_prime);\n", + "print \" The value of fugacity coefficient of the mixture is %f\"%(phi_prime);\n", + "print \" Also the fugacity coefficient for the mixture from Redlich-kwong equation of state is %f which is same as above)\"%(phi_prime_dash);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " 1van der Walls equation of state\n", + " The value of fugacity coefficient of component 1 nitrogen) is 1.057500\n", + " The value of fugacity coefficient of component 2 n-butane) is 0.801865\n", + " The value of fugacity coefficient of the mixture is 0.920192\n", + " Also the fugacity coefficient of the mixture from van der Walls equation of state is 0.920192 which is same as above)\n", + " \n", + "Redlich-Kwong equation of state\n", + " The value of fugacity coefficient of component 1 nitrogen) is 1.071129\n", + " The value of fugacity coefficient of component 2 n-butane) is 0.793063\n", + " The value of fugacity coefficient of the mixture is 0.920948\n", + " Also the fugacity coefficient for the mixture from Redlich-kwong equation of state is 0.920948 which is same as above)\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file |