{ "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", "< [PVT Computations for Non-ideal Gases](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/06.01-PVT-Calculations-for-Non-Ideal-Gases.ipynb) | [Contents](toc.ipynb) | [Vapor/Liquid Equilibrium](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/07.00-Vapor-Liquid-Equilibrium.ipynb) >

\"Open" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "hOP4pxr-Ufl2" }, "source": [ "# Hydrogen Storage in a Fuel Cell Vehicle\n", "\n", "The [Toyota Mirai](https://en.wikipedia.org/wiki/Toyota_Mirai) is a mid-sized fuel-cell vehicle currently on sale in the United States, Japan, and Europe. The unique feature of the Mirai is the use of hydrogen as a fuel. Setting aside the issue of where the hydrogen comes from, converting the free energy of combustion directly into electricity is a significant potential advance towards a more energy efficient and environmentally benigh transportation infrastructure. \n", "\n", "![alt text](https://cdn.greenoptimistic.com/wp-content/uploads/2015/02/SS1423331371.jpg?x81535)\n", "\n", "The on-board storage of hydrogen in the Toyota Mirai consists of two high pressure carbon-fiber tanks located under the rear seat and behind the trunk mounted battery system. THe tanks are manufactured by [Quantum Fuel Systems](http://www.qtww.com/). Combined, the tanks store up to 5 kg of hydrogen at a pressure of 70 MPa. (i.e, approximately 10,000 psig).\n", "\n", "![alt text](https://www.researchgate.net/profile/Mirko_Kunowsky/publication/236331802/figure/download/fig7/AS:325430310653977@1454600040840/Schematic-diagram-of-a-type-4-pressure-vessel-and-its-components-for-gaseous-hydrogen.png)\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "cb4SGTLxVPrX" }, "source": [ "## Data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "nW7kafJUS1y1" }, "outputs": [], "source": [ "# Hydrogen Data\n", "\n", "R = 0.08206 # liter-atm/(gmol-K)\n", "MW = 2.01588 # molecular mass\n", "\n", "Tcritical = 33.20 # Kelvin\n", "Pcritical = 12.8 # atm\n", "\n", "acentric_factor = -0.220 # wikipedia" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 349, "status": "ok", "timestamp": 1539263312815, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "viRd6mmz0KUJ", "outputId": "d0c3b6a8-bf8c-416a-a773-3274f4a05a7b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Operating temperature = 298 K\n", "Operating pressure = 691.85 atm\n" ] } ], "source": [ "# Problem Data\n", "\n", "mass = 5.0 # mass (kg)\n", "T = 298 # operating temperature (K)\n", "P = 1 + 70000.0/101.325 # operating pressure (atm)\n", "\n", "print('Operating temperature =', T, 'K')\n", "print('Operating pressure =', round(P,2), 'atm')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "dZBpGd2aSwdg" }, "source": [ "## Problem 1. Required Tank Volume\n", "\n", "Given the problem and chemical data above, including a required tank volume sufficient to hold 5 kg of compressed hydrogen gas, compute the required volume the tanks must accomodate at a temperature of 298 K." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "hrUcHGazcTT5" }, "source": [ "### Solution using Ideal Gas Law\n", "\n", "The very high pressures make it unlikely that the ideal gas law will give an accurate answer. Nevertheless, we use the ideal gas model to establish a reference value to assess other solutions. For an ideal gas,\n", "\n", "\\begin{equation}\n", "P \\hat{V} = R T\n", "\\end{equation}" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 258, "status": "ok", "timestamp": 1539033991212, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "Vs9PmqlucXj0", "outputId": "5135908f-d389-46a5-8a86-46ca826cac88" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Molar Volume = 0.03535 liters/gmol\n", "Tank Volume = 87.67 liters\n" ] } ], "source": [ "Vmolar = R*T/P\n", "\n", "gmols = mass*1000/MW\n", "Vtank = gmols*Vmolar\n", "\n", "print(\"Molar Volume =\", round(Vmolar,5), \"liters/gmol\")\n", "print(\"Tank Volume =\", round(Vtank,2), \"liters\")" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "tHyOlzDCYhbB" }, "source": [ "### Solution using Compressibility Charts" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "0ev1UC369GMx" }, "source": [ "#### Newton's Correction\n", "\n", "The operating point for the hydrogen tank will be a several multiples of both the critical temperature and critical pressure. As noted in Felder, et al., when using generalized compressibility charts for hydrogen or helium, a so-called 'Newton's Correction' is needed.\n", "\n", "\\begin{align*}\n", "T_c^a &= T_c + 8 K \\\\\n", "P_c^a &= P_c + 8\\mbox{ atm}\n", "\\end{align*}\n", "\n", "We then compute the reduced temperature and pressure based on the adjusted critical point data." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 364, "status": "ok", "timestamp": 1539033993346, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "bJJkb7vmTfrf", "outputId": "02247fad-8b41-44e2-a2d5-2e1d398ddfad" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Adjusted Reduced Temperature = 7.233009708737864\n", "Adjusted Reduced Pressure = 33.261840706788895\n" ] } ], "source": [ "Treduced = T/(Tcritical + 8)\n", "Preduced = P/(Pcritical + 8)\n", "print(\"Adjusted Reduced Temperature =\", Treduced)\n", "print(\"Adjusted Reduced Pressure =\", Preduced)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "2UaWPm0vamWL" }, "source": [ "#### Nelson-Obert Generalized Compressibility Chart\n", "\n", "The generalized compressibility charts provide estimates for compressibility as a function of reduced pressure and temperature. The estimates are the result of averaging data for a set of gases.\n", "\n", "\\begin{equation}\n", "z = \\frac{P \\hat{V}}{R T}\n", "\\end{equation}\n", "\n", "![alt text](http://eon.sdsu.edu/testhome/Test/solve/basics/tables/tablesRG/zNO40.png)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 308, "status": "ok", "timestamp": 1539033994900, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "9Tlx9L40T1kR", "outputId": "5b851bd6-25e1-431b-a828-60b51040f947" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Molar Volume = 0.05125 liters/gmol\n", "Tank Volume = 127.12 liters\n" ] } ], "source": [ "# chart lookup\n", "z = 1.45\n", "\n", "Vmolar = z*R*T/P\n", "\n", "gmols = mass*1000/MW\n", "Vtank = gmols*Vmolar\n", "\n", "print(\"Molar Volume =\", round(Vmolar,5), \"liters/gmol\")\n", "print(\"Tank Volume =\", round(Vtank,2), \"liters\")" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "u-qQBo403jAv" }, "source": [ "### Solution using Soave-Redlich-Kwong Equation\n", "\n", "The Soave-Redlich-Kwong equation of state is given by\n", "\n", "\\begin{align}\n", "P = \\frac{RT}{\\hat{V}-b} - \\frac{\\alpha a}{\\hat{V}(\\hat{V}+b)}\n", "\\end{align}\n", "\n", "where\n", "\n", "\\begin{align*}\n", "a & = 0.42747 \\frac{(RT_c)^2}{P_c} \\\\\n", "b & = 0.08664 \\frac{RT_c}{P_c} \\\\\n", "m & = 0.48508 + 1.55171\\omega - 0.1561\\omega^2\\\\\n", "T_r & = \\frac{T}{T_c}\\\\\n", "\\alpha & = \\left[1 + m\\left(1 - \\sqrt{T_r}\\right)\\right]^2\n", "\\end{align*}\n", "\n", "Equations of state provide a relationship among three intensive variables -- $P$, $T$, and $\\hat{V}$. Given two of these variables, an equation of state provides a means to compute the third. \n", "\n", "There are three cases:\n", "\n", "* **Compute pressure $P$** given temperature $T$ and molar volume $\\hat{V}$. This is the most straightforward case. The equations explicitly give $P$ and be used exactly as written.\n", "\n", "* **Compute temperature $T$** given pressure $P$ and molar volume $\\hat{V}$. This is not a common case but can be solved with straightforward iteration. The iteration starts by estimating $T$ with, say, the ideal gas law. Then compute the temperature dependent parameters $T_r$, $\\alpha$, the constant parameters $a$, $b$, and $m$, then finally solve for $T$ as $$T = \\frac{\\hat{V}-b}{R}\\left(P + \\frac{\\alpha a}{\\hat{V}(\\hat{V}+b)}\\right)$$Repeat the calculation until $T$ converges to a constant value.\n", "\n", "* **Compute molar volume $\\hat{V}$** given temperature $T$ and pressure $P$. This calculation requires the solution a cubic equation for $\\hat{V}$ which requires some care in coding. It is somewhat more convenient to rework the equation by defining parameters\n", "\\begin{align*}\n", "A & = \\frac{\\alpha a P}{R^2T^2} \\\\\n", "B & = \\frac{bP}{RT}\n", "\\end{align*}\n", "to yield a cubic equation for compressibility $z$\n", "$$z^3 - z^2 + (A - B - B^2)z - AB = 0$$\n", "The following code cell demonstrates the use of [`fsolve`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fsolve.html#scipy.optimize.fsolve) from the [`scipy.optimize`](https://docs.scipy.org/doc/scipy/reference/optimize.html#root-finding) library for the solution to the compressibility equation." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 504, "status": "ok", "timestamp": 1539033996733, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "6j6DyXA8UvRW", "outputId": "897674e6-379b-4528-d5e5-8b0d7c406dea" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Molar Volume = 0.05205 liters/gmol\n", "Tank Volume = 129.09 liters\n" ] } ], "source": [ "a = 0.42747*R**2*Tcritical**2/Pcritical\n", "b = 0.08664*R*Tcritical/Pcritical\n", "m = 0.48508 + 1.55171*acentric_factor - 0.1561*acentric_factor**2\n", "Tr = T/Tcritical\n", "alpha = (1 + m*(1-Tr**0.5))**2\n", "\n", "A = alpha*a*P/(R**2*T**2)\n", "B = b*P/(R*T)\n", "\n", "def f(z):\n", " return z**3 - z**2 + (A-B-B**2)*z - A*B\n", "\n", "from scipy.optimize import fsolve\n", "z = fsolve(f, 1)[0]\n", "\n", "Vmolar = z*R*T/P\n", "\n", "gmols = mass*1000/MW\n", "Vtank = gmols*Vmolar\n", "\n", "print(\"Molar Volume =\", round(Vmolar,5), \"liters/gmol\")\n", "print(\"Tank Volume =\", round(Vtank,2), \"liters\")" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ow7LN4l0x8SC" }, "source": [ "## Problem 2. Estimating Mass of Hydrogen using a Pressure Sensor\n", "\n", "Drivers need to accurately monitor the amount of hydrogen fuel remaining in the tank, and refueling stations need to accurately meter the amount of hydrogen transferred to the tank. For this purpose, create a graph of pressure as a function of mass in the tank assuming an operating temperature of 298 K." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "-OGVAq6Wl2or" }, "source": [ "### Solution using SRK equation of state." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 376 }, "colab_type": "code", "executionInfo": { "elapsed": 345, "status": "ok", "timestamp": 1539034133477, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "0mFhcswwazmQ", "outputId": "def47322-b762-4443-aaa6-2b6042c57043" }, "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", "mass = np.linspace(.01,5,200)\n", "\n", "Vmolar = Vtank/(mass*1000/MW)\n", "\n", "a = 0.42747*R**2*Tcritical**2/Pcritical\n", "b = 0.08664*R*Tcritical/Pcritical\n", "m = 0.48508 + 1.55171*acentric_factor - 0.1561*acentric_factor**2\n", "Tr = T/Tcritical\n", "alpha = (1 + m*(1-Tr**0.5))**2\n", "\n", "Ptank = R*T/(Vmolar - b) - alpha*a/(Vmolar*(Vmolar+b))\n", "\n", "plt.plot(mass, Ptank)\n", "plt.xlabel('mass hydrogen / kg')\n", "plt.ylabel('pressure / atm')\n", "plt.title('pressure vs mass for a ' + str(round(Vtank,2)) + ' liter tank');" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "bvDAqpWimolS" }, "source": [ "For an ideal gas at constant temperature, the pressure mass relationship would be a straight line. The nonlinear nature of this solution demonstrates the tank is operating in a regime where hydrogen gas behaves as a nonideal gas." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "f9XxceqdmTDM" }, "source": [ "## Problem 3. Python function to estimate hydrogen mass.\n", "\n", "(Note: This problem requires some Python coding skills, including the definition of functions.)\n", "\n", "Building on the last problem, write a Python function that returns an estimate the mass of hydrogen in the tank given measurements of pressure, temperature, and the tank volume." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 361 }, "colab_type": "code", "executionInfo": { "elapsed": 622, "status": "ok", "timestamp": 1539035611999, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "AfSGfYRIdhEz", "outputId": "0fae17fd-fdf3-4669-f491-6f44d533da5e" }, "outputs": [ { "data": { "image/png": "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\nHqxZs4YPP/wQk8nE3Xffze233+7o+Fdt0aJFzJs3j9atW9e89r//+7+88MILLjXO8vJynn/+eTIy\nMigvL2fmzJnExsbyzDPPuNQ4f2revHm0aNGCAQMGuNw4i4uLmT17NoWFhVRVVTFz5kw6duzocuOE\ni7dili5dCsCjjz5Kly5dXHKcSUlJzJ07lw8++AC4OKfgD3/4A1arla5du/Lss88CsHDhQlasWIHJ\nZOLJJ5+kb9++tZrD5cpZRESkvnOpy9oiIiKuQOUsIiLiZFTOIiIiTkblLCIi4mRUziIiIk5G5Swi\n18RqtTJq1KirXhVpxYoVWK1WO6cScS0qZxG5JklJSXTq1AmTyXRVnz9v3jyVs8g1cum1tUWcVUJC\nAnPnzqV58+akp6fj7+/P3//+dy5cuMCjjz5K+/btadeuHdOnT+f1119n7969lJeX06tXL55++mmy\nsrKYPXs2cHFhk8mTJzNhwgQ++eQTli9fjo+PD97e3vz1r3/l+PHjzJ07ly+++AKAOXPm0LNnT/r2\n7XtVx/rPEt62bRv9+/f/2WtWq5UXX3yRU6dOUVlZSdeuXXnhhRd48803OXPmDPfddx9vvfUWQ4YM\n4dFHH2Xjxo1UVVUxffp0Fi9ezOnTp3nppZcYMGBA3XwDRJyczpxFHOTQoUM8/fTTfPnllwQGBvL1\n118DF7dafOyxx5g+fTqrV68mMzOTTz/9lKVLl5KamsqmTZtYvXo10dHRLFy4kE8//bRmjeM333yT\n+fPn8+mnn3LvvfeSlZV1xQxXc6z/tH379l+UaEFBATExMXz22WcsWbKEbdu2cfz4cZ544gkAPv74\nYwIDAyktLSU2NpYvv/wSX19fNm7cyPvvv8+MGTP4/PPPa+M/q4hL0JmziIO0bduWsLAwAHr06MGR\nI0cYOnQojRs3Jjo6Grh4hr1//37uuece4OIa5GlpaQwcOJDPP/+cOXPmcNNNNzF58mQAJkyYwIMP\nPsjIkSMZNWoUrVu3JiEh4bIZruZYP1VcXExxcXFN7h8FBASQkZHB5MmT8fT0JDs7m/z8/Eses2fP\nnsDFTSN69OgBQLNmzSgqKrr6/3giLk7lLOIg/7nl3o+Xjz08PGpe9/T0ZNKkSTzwwAO/+PqVK1fy\nww8/sGbNGj755BO+/PJLnn32WdLT09myZQuPPfYYzzzzDD4+Pj/7uqqqqpo/X+2xfrRz505uvPHG\nS2ZJTEzks88+w2w2M378+Mu+h7u7+yX/LCL/psvaIg5y6tSpmsvOe/bsISYm5hef07NnT9atW0d1\ndTUAb731FikpKaxYsYLExET69evHiy++SEZGBnl5ecybN4/w8HCmTp3Kb37zGxITE/Hz8yMzMxPD\nMCgrK+PAgQOXzHO5Y/3Upe43A+Tm5tK6dWvMZjNJSUmkpqZSWVkJgMlkqnlPEbk6OnMWcZC2bdvy\n+uuvc+bMGRo3bswdd9xBXl7ezz5nxIgR7N+/nylTpuDu7k6nTp2IjIykrKyMF198EU9PTwzD4KGH\nHiI4OJiSkhImTJhAQEAAZrOZP//5z4SEhBATE8O4ceOIioqie/ful8xzuWP91A8//MAzzzzzi68d\nNWoU06dP5+6776ZHjx7cf//9/M///A+LFy9m4MCB3Hnnnbzzzju19x9PxMVpVyoRB/hxtvaPM6hF\nRH5Kl7VFREScjM6cRUREnIzOnEVERJyMyllERMTJqJxFREScjMpZRETEyaicRUREnIzKWURExMn8\nf9KvH//RsKTnAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "from scipy.optimize import fsolve\n", "\n", "def mass_in_tank(P, T=298, Vtank=129.09):\n", " a = 0.42747*R**2*Tcritical**2/Pcritical\n", " b = 0.08664*R*Tcritical/Pcritical\n", " m = 0.48508 + 1.55171*acentric_factor - 0.1561*acentric_factor**2\n", "\n", " Tr = T/Tcritical\n", " alpha = (1 + m*(1-Tr**0.5))**2\n", " \n", " A = alpha*a*P/(R**2*T**2)\n", " B = b*P/(R*T)\n", " \n", " f = lambda z: z**3 - z**2 + (A-B-B**2)*z - A*B\n", " z = float(fsolve(f,1.0))\n", "\n", " Vmolar = z*R*T/P # molar volume\n", " return MW*Vtank/Vmolar/1000\n", "\n", "\n", "# demonstrate solution\n", "\n", "P = np.linspace(1,700)\n", "plt.plot(P, [mass_in_tank(p) for p in P])\n", "plt.xlabel('pressure / atm')\n", "plt.ylabel('mass of hydrogen / kg');" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "tkPrxILLSSuB" }, "source": [ "## Problem 4. Limit on tank leak rate.\n", "\n", "The lower flammability limit of hydrogen in air is 4 volume%. Assume the vehicle is stored in a single car garage with interior dimensions 7m (H) x 4m (W) x 2.5m (H), and the air is replenished at a rate of 0.03 air changes per hour. What is the maximum tolerable leakage rate of hydrogen from the car storage tanks? Express the answer as a mass flow. What amount of time would be required for 5kg to safely dissipate by leakage from the tanks. Does this calculation suggestion any engineering challenges?" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 102 }, "colab_type": "code", "executionInfo": { "elapsed": 275, "status": "ok", "timestamp": 1539035798434, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "Ixn8y5ptTq9M", "outputId": "c96a8f5a-57a0-4912-f215-02e364848328" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total molar flowrate through garage = 85.87594279517198 gmol/hour\n", "maximum hydrogen molar flowrate through garage = 3.435037711806879 gmol/hour\n", "maximum hydrogen molar flowrate through garage = 6.924623822477252 g/hour\n", "minimum time to safely dissipate 5kg hydrogen = 722.0608841985113 hours\n", "minimum time to safely dissipate 5kg hydrogen = 30.08587017493797 days\n" ] } ], "source": [ "# volume of the garage\n", "\n", "Vgarage = 7*4*2.5*1000 # liters\n", "nflow = 0.03*1*Vgarage/(R*T)\n", "\n", "print('total molar flowrate through garage =', nflow, 'gmol/hour')\n", "\n", "nH2flow = 0.04*nflow\n", "\n", "print('maximum hydrogen molar flowrate through garage =', nH2flow, 'gmol/hour')\n", "\n", "mH2flow = MW*nH2flow\n", "\n", "print('maximum hydrogen molar flowrate through garage =', mH2flow, 'g/hour')\n", "\n", "tfinal = 5000/mH2flow\n", "\n", "print('minimum time to safely dissipate 5kg hydrogen =', tfinal, 'hours')\n", "print('minimum time to safely dissipate 5kg hydrogen =', tfinal/24, 'days')\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "n-t1MpBHrsH-" }, "source": [ "The engineering challenge is to design a storage tank that dissipates hydrogen at a rate no greater than about 7g/hr when filled to a pressure of 10,000 psig. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "I6wq2B3NnjmJ" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [PVT Computations for Non-ideal Gases](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/06.01-PVT-Calculations-for-Non-Ideal-Gases.ipynb) | [Contents](toc.ipynb) | [Vapor/Liquid Equilibrium](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/07.00-Vapor-Liquid-Equilibrium.ipynb) >

\"Open" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "Hydrogen_Storage_FCEV.ipynb", "provenance": [ { "file_id": "1sTQJ4fUldYPAeZwxtJMGfMGyqPCZ85J6", "timestamp": 1539003699171 } ], "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 }