{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE20255](https://jckantor.github.io/CBE20255)\n", "by Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE20255.git).\n", "The text is released under the [CC-BY-NC-ND-4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode),\n", "and code is released under the [MIT license](https://opensource.org/licenses/MIT).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Binary Phase Diagrams for Ideal Mixtures](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/07.06-Binary-Phase-Diagrams-for-Ideal-Mixtures.ipynb) | [Contents](toc.ipynb) | [Bubble and Dew Points for Multicomponent Mixtures](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/07.08-Bubble-and-Dew-Points-for-Multicomponent-Mixtures.ipynb) >

\"Open" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "5WXZyjKQyKp9" }, "source": [ "# Bubble and Dew Points for Binary Mixtures" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "5WXZyjKQyKp9" }, "source": [ "## Summary\n", "\n", "This notebook illustrates the use of Raoult's Law and Antoine's equation to compute the bubble and dew points for an ideal solution. The video is used with permission from [LearnChemE](http://learncheme.ning.com/), a project at the University of Colorado funded by the National Science Foundation and the Shell Corporation." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "RQItYLeQyKp_" }, "source": [ "## Overview of the Calculations\n", "\n", "![BubbleDewPointCalculations.png](https://github.com/jckantor/CBE20255/blob/master/notebooks/figures/BubbleDewPointCalculations.png?raw=true)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "HIc89m0byKqA" }, "source": [ "## Bubble Point Calculations for Binary Mixtures\n", "\n", "For an ideal binary mixture of components $A$ and $B$, applying Raoult's law at the bubble point temperature gives the constraint\n", "\n", "\\begin{equation}\n", "P = x_A P_A^{sat}(T) + x_B P_B^{sat}(T)\n", "\\end{equation}\n", "\n", "where $x_A P_A^{sat}(P)$ and $x_B P_B^{sat}(P)$ are the partial pressures of $A$ and $B$, respectively. This relationship is the basis for an interative procedure for computing the bubble point temperature.\n", "\n", "Step 1: Guess the temperature.\n", "\n", "Step 2: Compute the 'K-factors'\n", "\n", "\\begin{equation}\n", "K_A = \\frac{P^{sat}_A(T)}{P}\\qquad\\mbox{and}\\qquad K_B = \\frac{P^{sat}_B(T)}{P}\n", "\\end{equation}\n", "\n", "Step 3: Compute the vapor phase mole fractions \n", "\n", "\\begin{equation}\n", "y_A = K_A x_A\\qquad\\mbox{and}\\qquad y_B = K_B x_B\n", "\\end{equation}\n", "\n", "Step 4: Check if $y_A + y_B = 1$. Adjust the temperature and repeat until the vapor phase mole fractions sum to one." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "xTt9vtkEyKqB" }, "source": [ "### Solution by Manual Iteration\n", "\n", "We're given a binary mixture composed of acetone and ethanol at atmospheric pressure where the liquid phase mole fraction of acetone is 0.40. The problem is to find the equilibrium temperature and the composition of the vapor phase." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ad1-YW8tyKqC" }, "source": [ "Initialize the Python workspace with with default settings for plots." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": {}, "colab_type": "code", "id": "LU0IIdAJyKqD" }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": {}, "colab_type": "code", "id": "OgTliHQdX2hb" }, "outputs": [], "source": [ "from scipy.optimize import brentq\n", "\n", "class Species(object):\n", " \n", " def __init__(self, name='no name', Psat=lambda T: null):\n", " self.name = name\n", " self.Psat = Psat\n", " \n", " # compute saturation pressure given temperature. \n", " def Psat(self, T):\n", " raise Exception('Psat() has not been defined for ' + self.name)\n", " \n", " # compute saturation temperature given pressure\n", " def Tsat(self, P):\n", " return brentq(lambda T: self.Psat(T) - P, -50, 200)\n", "\n", "\n", "acetone = Species('acetone', lambda T: 10**(7.02447 - 1161.0/(T + 224)))\n", "benzene = Species('benzene', lambda T: 10**(6.89272 - 1203.531/(T + 219.888)))\n", "ethanol = Species('ethanol', lambda T: 10**(8.04494 - 1554.3/(T + 222.65)))\n", "hexane = Species('hexane', lambda T: 10**(6.88555 - 1175.817/(T + 224.867)))\n", "toluene = Species('toluene', lambda T: 10**(6.95808 - 1346.773/(T + 219.693)))\n", "p_xylene = Species('p_xylene', lambda T: 10**(6.98820 - 1451.792/(T + 215.111)))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": {}, "colab_type": "code", "id": "ICbm_Z_-yKqG" }, "outputs": [], "source": [ "A = acetone\n", "B = ethanol\n", "\n", "P = 760\n", "xA = 0.4\n", "xB = 1 - xA" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "4kDs3ZeuyKqJ" }, "source": [ "We will use Antoine's equation to compute the saturation pressures for the pure components. These function are stored as entries in a simple Python dictionary." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "FRj4uIqCyKqN" }, "source": [ "The next cell performs the calculations outlined above. Execute this cell with different values of `T` until the vapor phase mole fractions sum to one." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "executionInfo": { "elapsed": 325, "status": "ok", "timestamp": 1541161520302, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "k1pWMU0tyKqO", "outputId": "d1bb8121-d066-41dc-ecb2-8856e460942e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.337689658645641\n" ] } ], "source": [ "T = 65\n", "\n", "KA = A.Psat(T)/P\n", "KB = B.Psat(T)/P\n", "\n", "yA = KA*xA\n", "yB = KA*xB\n", "\n", "print(yA + yB)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "rUmHpaqKyKqU" }, "source": [ "### Solution with a Root-Finding Function\n", "\n", "To compute the bubble point for a binary mixture we need to solve the equation\n", "\n", "$$P = x_A P^{sat}_A(T_{bubble}) + x_B P^{sat}_B(T_{bubble})$$\n", "\n", "where $P$ and $x_A$ (and therefore $x_B = 1 - x_A$) are known. The bubble point composition is given by\n", "\n", "$$y_A = \\frac{x_A P^{sat}_A(T)}{P}\\qquad\\mbox{and}\\qquad y_B = \\frac{x_B P^{sat}_B(T)}{P}$$\n", "\n", "Matlab and Python functions for solving equations rely on *root-finding* methods, that is, methods that find the *zeros* of a function. In this case we need to write our problem as\n", "\n", "$$x_A \\frac{P^{sat}_A(T)}{P} + x_B\\frac{P^{sat}_B(T)}{P} = 1$$\n", "\n", "Here we use the `brentq` function from the scipy.optimize library to return the root of this equation." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "executionInfo": { "elapsed": 258, "status": "ok", "timestamp": 1541161568813, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "hbZkm79ByKqU", "outputId": "8dc3e7c4-0f30-4419-8f97-9449645907e8" }, "outputs": [ { "data": { "text/plain": [ "68.5195836108029" ] }, "execution_count": 7, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "from scipy.optimize import brentq\n", "\n", "brentq(lambda T: xA*A.Psat(T)/P + xB*B.Psat(T)/P - 1.0, 0, 100)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 380, "status": "ok", "timestamp": 1541161672447, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "oy2swJa4yKqY", "outputId": "040666cb-4399-4205-d07e-35aa00d7a97f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bubble point temperature = 68.520 [deg C]\n", "Bubble point composition = 0.598, 0.402\n" ] } ], "source": [ "def Tbub(X) :\n", " xA, xB = X\n", " return brentq(lambda T: xA*A.Psat(T)/P + xB*B.Psat(T)/P - 1.0, 0, 100)\n", "\n", "print(\"Bubble point temperature = {:6.3f} [deg C]\".format(Tbub((xA,xB))))\n", "\n", "yA = xA*A.Psat(Tbub((xA,xB)))/P\n", "yB = xB*B.Psat(Tbub((xA,xB)))/P\n", "\n", "print(\"Bubble point composition = {:.3f}, {:.3f}\".format(yA,yB))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "okQp3TUzyKqb" }, "source": [ "### Bubble Point Curve for a Txy Diagram\n", "\n", "It's a relatively simply matter to encapsulate the bubble point calculation into a function that, given the liquid phase mole fraction for an ideal binary mixture, uses a root-finding procedure to return the bubble point temperature." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 393 }, "colab_type": "code", "executionInfo": { "elapsed": 395, "status": "ok", "timestamp": 1541161741203, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "FAGRsVuuyKqc", "outputId": "063dce60-2ee1-4e1b-f76a-dfacdd47a45a" }, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Bubble Point for acetone/ethanol at 760.0 [mmHg]')" ] }, "execution_count": 13, "metadata": { "tags": [] }, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "x = np.linspace(0,1)\n", "plt.plot(x,[Tbub((xA,xB)) for (xA,xB) in zip(x,1-x)])\n", "plt.xlabel('x [mole fraction {:s}]'.format(A.name))\n", "plt.ylabel('Temperature [deg C]')\n", "plt.title('Bubble Point for {:s}/{:s} at {:5.1f} [mmHg]'.format(A.name,B.name,P))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ULBSOAV4yKqg" }, "source": [ "## Dew Point Calculations for a Binary Mixture\n", "\n", "To compute the dew point for a binary mixture we need to solve the equation\n", "\n", "$$y_A\\frac{P}{P^{sat}_A(T)} + y_B\\frac{P}{P^{sat}_B(T)} = 1$$\n", "\n", "where $P$ and $y_A$ (and therefore $y_B = 1 - y_A$) are known. The dew point composition is given by\n", "\n", "$$x_A = y_A\\frac{P}{P^{sat}_A(T)}\\qquad\\mbox{and}\\qquad x_B = y_B\\frac{P}{P^{sat}_B(T)}$$\n", "\n", "Matlab and Python functions for solving equations rely on *root-finding* methods, that is, methods that find the *zeros* of a function. Here we use the `fsolve` function from the scipy.optimize library to return the root of the dew point equation. Note that `fsolve` returns a list of roots, so the terminal `[0]` on the expression selects the first root (and presumably only) of the bubble point equation." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 261, "status": "ok", "timestamp": 1541161879025, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "N-Sv-yOKyKqg", "outputId": "4d007caa-0d44-4e05-ee48-7caba0bd76ea" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dew point temperature = 68.520 [deg C]\n", "Dew point composition = 0.400, 0.600\n" ] } ], "source": [ "def Tdew(Y):\n", " yA,yB = Y\n", " return brentq(lambda T:yA*P/A.Psat(T) + yB*P/B.Psat(T) - 1.0, 0, 100)\n", "\n", "print(\"Dew point temperature = {:6.3f} [deg C]\".format(Tdew((yA,yB))))\n", "\n", "xA = yA*P/A.Psat(Tdew((yA,yB)))\n", "xB = yB*P/B.Psat(Tdew((yA,yB)))\n", "\n", "print(\"Dew point composition = {:.3f}, {:.3f}\".format(xA,xB));" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "A54mrzhmyKqk" }, "source": [ "### Dew Point Curve on the Txy diagram" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "3_RwCnO9yKql" }, "source": [ "As shown above for bubble point calculations, the dew point curve on the Txy diagram can be plotted by mapping the Tdew function onto a grid of mole fractions." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 376 }, "colab_type": "code", "executionInfo": { "elapsed": 496, "status": "ok", "timestamp": 1541161881092, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "4gqY2dF-yKqn", "outputId": "27d20dd3-2bae-4777-85f2-fd50d75a784e" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "y = np.linspace(0,1)\n", "plt.plot(y,[Tdew((yA,yB)) for (yA,yB) in zip(y,1-y)])\n", "plt.xlabel('y [mole fraction {:s}]'.format(A.name))\n", "plt.ylabel('Temperature [deg C]')\n", "plt.title('Dew Point for {:s}/{:s} at {:5.1f} [mmHg]'.format(A.name,B.name,P));" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "FcGk8eztyKqq" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Binary Phase Diagrams for Ideal Mixtures](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/07.06-Binary-Phase-Diagrams-for-Ideal-Mixtures.ipynb) | [Contents](toc.ipynb) | [Bubble and Dew Points for Multicomponent Mixtures](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/07.08-Bubble-and-Dew-Points-for-Multicomponent-Mixtures.ipynb) >

\"Open" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "Copy of Bubble_and_Dew_Points_for_Binary_Mixtures.ipynb", "provenance": [ { "file_id": "https://github.com/jckantor/CBE20255/blob/master/notebooks/Bubble_and_Dew_Points_for_Binary_Mixtures.ipynb", "timestamp": 1541161908223 } ], "toc_visible": true, "version": "0.3.2" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }