{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Torre de separaci\u00f3n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Por Juli\u00e1n Scortechini (<jscortechini@phasety.com>)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dada la siguiente torre de separaci\u00f3n de hidrocarburos del petr\u00f3leo, encontrar los caudales modulares de las corrientes $D_1, B_1, D_2$ y $B_2$\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Efectuando un balance de masa por componentes sobre todo el sistema se pueden plantear las siguientes ecuaciones\n", "\n", "$$\n", "\\begin{array} -Xileno: 0.07D_1 + 0.18B_1 + 0.15D_2 + 0.24B_2 = 0.15\u00b770 \\frac{kg mol}{min}= 10.50 \\frac{kg mol}{min} \\\\ Estireno: 0.04D_1 + 0.24B_1 + 0.10D_2 + 0.65B_2 = 0.25\u00b770 \\frac{kg mol}{min}= 17.50 \\frac{kg mol}{min} \\\\ Tolueno: 0.54D_1 + 0.42B_1 + 0.54D_2 + 0.10B_2 = 0.40\u00b770 = 28.0 \\frac{kg mol}{min}= 28.0 \\frac{kg mol}{min} \\\\ Benceno: 0.35D_1 + 0.16B_1 + 0.21D_2 + 0.01B_2 = 0.20\u00b770 \\frac{kg mol}{min}= 14.0 \\frac{kg mol}{min}\\end{array}\n", "$$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos expresar este sistema de ecuaciones de la forma $Ax = b $ donde $A$ es la matriz de coeficientes y b el vector de t\u00e9rminos independientes. El vector $x$ son las incognitas, es decir, los caudales de cada corriente $x = [D_1, B_1, D_2, B_2]$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "A = np.mat(\"\"\" 0.07 0.18 0.15 0.24 ; \n", " 0.04 0.24 0.10 0.65 ; \n", " 0.54 0.42 0.54 0.10 ; \n", " 0.35 0.16 0.21 0.01\"\"\")\n", "b = np.array([10.5, 17.5, 28., 14.])\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Primero importamos la biblioteca `Numpy` y le dimos el alias `np`. Luego hemos utilizado la funci\u00f3n `mat()` y la funci\u00f3n `array()` para crear la matriz del sistema y el vector de t\u00e9rminos independientes respectivamente.\n", "\n", "Ahora lo \u00fanico que hace falta para resolver el sistema es invocar a la funci\u00f3n `solve` que resuelve el sistema de ecuaciones lineales. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.linalg.solve(A, b)\n", "y = ['D1', 'B1', 'D2', 'B2']\n", "\n", "print 'La soluci\u00f3n es:'\n", "for t in zip(y, x): \n", " print \"%s = %.2f\" % t" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "La soluci\u00f3n es:\n", "D1 = 26.25\n", "B1 = 17.50\n", "D2 = 8.75\n", "B2 = 17.50\n" ] } ], "prompt_number": 12 } ], "metadata": {} } ] }