{ "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", "< [Adiabatic Flame Temperature](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/08.06-Adiabatic-Flame-Temperature.ipynb) | [Contents](toc.ipynb) | [Products: Product Design and Analysis](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/A.00-Projects-Product-Design-and-Analysis.ipynb) >

\"Open" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Torpedo Propulsion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "This notebook demonstrates a variety of energy calculations analyzing the design requirements for propulsion systems of naval torpedos." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Background\n", "\n", "[Torpedo technology](https://www.youtube.com/watch?v=RV8MF-440xg) contributes to the security and safety of naval forces. In this notebook we explore the extreme requirements and design alternatives for torpedo propulsion.\n", "\n", "

\"MK46
\"MK46 torpedo launch\" by United States Navy, Mass Communication Specialist John L. Beeman - Navy NewsStand Photo ID: 070412-N-9851B-007\n", "Navy NewsStand Home. Licensed under Public Domain via Wikimedia Commons.

\n", "\n", "Torpedo propulsion systems must operate in the absence of atmospheric oxygen for an oxidizer, provide the power necessary for fast and deep dives, be stable in storage and safe in marine and airborne environments. In this note we'll look at \n", "\n", "1. Calculating the energy and power required to for torpedo propulsion.\n", "2. A monopropellant chemistry powering a hot-gas piston engine in the Mk 46 and Mk 48 torpedos.\n", "3. A lithum/sulfur hexaflouride chemistry powering a self-contained Rankine cycle engine for the Mk 50 where the combustion products are more dense than the reactants.\n", "4. An AgO/Al battery system powering an electrically driven torpedo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Power and Energy Requirements\n", "\n", "The [drag force on a torpedo](http://tglang.com/uploads/Hydrodynamic_Drag_of_Torpedoes.pdf) is given by the formula\n", "\n", "$$F_D = \\frac{1}{2}\\rho v^2 C_D A $$\n", "\n", "where _CD_ is the drag coefficient, _ρ_ is the density of the fluid, _v_ is velocity, and _A_ is the cross-sectional area. Assume _CD_ = 0.095 for a well-designed torpedo. \n", "\n", "The Mk-48 ADCAP, which is 21 inches in diameter and a mass of 1,663 kg, is claimed to have a range of 42,530 yards at 55 knots. \n", "\n", "* What is the power requirement in kw and horsepower at these speeds? \n", "* How much energy is required to accelerate the torpedo to its operating speed? \n", "* How much energy is required to cover the range of operation? \n", "* Assuming the propulsion system has an overall efficiency of 25%, how much fuel energy is required?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Hydrodynamic Power Requirement" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Drag force at 55 knots = 8709.8 Newtons\n", "Power requirement at 55 knots = 246.4 kW\n", "Power requirement at 55 knots = 330.5 Hp\n" ] } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "\n", "# One knot = 0.51444 meters per sec\n", "v = 55*0.51444 # m/s\n", "\n", "# One inch = 0.0254 meters\n", "A = 0.25*np.pi*(21*0.0254)**2 # m**2\n", "\n", "Cd = 0.095\n", "rho = 1025.0 # kg/m**3 (sea water)\n", "Fd = 0.5*rho*v**2*Cd*A # Newtons\n", "\n", "print(\"Drag force at 55 knots = {:6.1f} Newtons\".format(Fd))\n", "\n", "W = v*Fd # Joules\n", "\n", "print(\"Power requirement at 55 knots = {:6.1f} kW\".format(W/1000.0))\n", "print(\"Power requirement at 55 knots = {:6.1f} Hp\".format(W/745.7))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Energy to Accelerate to Operating Speed" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Energy required to accelerate to 55 knots= 665.7 kJ\n" ] } ], "source": [ "m = 1663.0 # kg\n", "v = 55*0.51444 # m/s\n", "Ea = 0.5*m*v**2 # Joules\n", "\n", "print(\"Energy required to accelerate to 55 knots= {:6.1f} kJ\".format(Ea/1000.0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Energy to Reach Terminal Range" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time required for range = 1374.5 sec\n", "Energy required for range = 338719.2 kJ\n" ] } ], "source": [ "d = 42530*0.9144 # meters\n", "v = 55*0.51444 # m/s\n", "t = d/v # seconds to range\n", "Er = W*t # energy required\n", "\n", "print(\"Time required for range = {:6.1f} sec\".format(t))\n", "print(\"Energy required for range = {:7.1f} kJ\".format(Er/1000))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fuel Energy Requirement" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fuel Energy Requirment at 25% eff. = 1357539.5 kJ\n" ] } ], "source": [ "E_fuel = (Er + Ea)/0.25/1000.0 # kJ\n", "print(\"Fuel Energy Requirment at 25% eff. = {:6.1f} kJ\".format(E_fuel))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Monopropellant Propulsion for the Mk 48 Torpedo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\"Mk
\"Mk 48 torpedo maintenance 1982\" by United States Navy - U.S. DefenseImagery photo VIRIN: DN-SC-86-00553. Licensed under Public Domain via Wikimedia Commons.

\n", "\n", "The Mk 48 and torpedos use a monopropellant called Otto Fuel II to drive a hot-gas piston engine. The principle component of Otto fuel is propylene glycol dinitrate (PGDN, also called by its IUPAC name 1,2-propanediol dinitrate) that makes up 76% of the fuel by weight. Assuming the reaction proceeds as\n", "\n", "C3H6N2O6 → 3 CO2 + 3 NH3\n", "\n", "* What is the specific energy content measured as kJ/kg of fuel at standard conditions?\n", "\n", "* The Mk 48 torpedo has an estimated maximum operating depth of 800m. What is specific energy content of the fuel at the pressure encountered at that depth?\n", "\n", "* How much fuel will be required by the Mk 48 ADCAP?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Specific Enthalpy of Reaction\n", "\n", "The [density of Otto fuel](http://www.copperheadchemical.com/Defense/OTTOFuelII_0106.pdf) is 1.232 g/ml. The thermochemical data for [1,2-propanediol dinitrate](http://webbook.nist.gov/cgi/cbook.cgi?Name=1%2C2-propanediol+dinitrate&Units=SI) is available from the [NIST Webbook](http://webbook.nist.gov/chemistry/)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Molar Heat of Reaction = -1021.4 kJ/gmol PGDN\n", "Heat of Reaction = -4673.9 kJ/kg fuel\n" ] } ], "source": [ "mw = dict()\n", "mw['PGDN'] = 166.0895 # g/gmol\n", "\n", "Hf = dict()\n", "Hf['PGDN'] = -296.9 # kJ/gmol\n", "Hf['CO2'] = -393.5 \n", "Hf['NH3'] = -45.94 \n", "\n", "dH = 3*Hf['CO2'] + 3*Hf['NH3'] - Hf['PGDN']\n", "print(\"Molar Heat of Reaction = {:6.1f} kJ/gmol PGDN\".format(dH))\n", "\n", "dH_fuel = 0.76*1000*dH/mw['PGDN']\n", "print(\"Heat of Reaction = {:6.1f} kJ/kg fuel\".format(dH_fuel))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Specific Enthalpy of Reaction at 800m" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Molar Heat of Reaction = -957.6 kJ/gmol PGDN\n", "Heat of Reaction = -4381.8 kJ/kg fuel\n" ] } ], "source": [ "# volume of fuel per kg-mol of PGDN\n", "rho = 1232.0 # kg/m**3\n", "gmols = rho*0.76*1000.0/mw['PGDN'] # gmols/m**3\n", "Vhat = 1.0/gmols # m**3/gmol\n", "\n", "Patm = 101325.0 # N/m**2\n", "P800 = Patm + 800.0*1025.0*9.81 # N/m**2\n", "R = 8.314 # m**3Pa/K/gmol\n", "T = 298.15 # standard temperature\n", "\n", "Hf['PGDN'] = -296.9 + Vhat*(P800-Patm)/1000\n", "Hf['CO2'] = -393.5 + R*T*np.log(P800/Patm)/1000\n", "Hf['NH3'] = -45.94 + R*T*np.log(P800/Patm)/1000\n", "\n", "dH = 3*Hf['CO2'] + 3*Hf['NH3'] - Hf['PGDN']\n", "print(\"Molar Heat of Reaction = {:6.1f} kJ/gmol PGDN\".format(dH))\n", "\n", "dH_fuel_800 = 0.76*1000*dH/mw['PGDN']\n", "print(\"Heat of Reaction = {:6.1f} kJ/kg fuel\".format(dH_fuel_800))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fuel Requirements" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Otto Fuel Required = 290.5 kg\n" ] } ], "source": [ "mass_fuel = E_fuel/(-dH_fuel)\n", "print(\"Otto Fuel Required = {:6.1f} kg\".format(mass_fuel))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also try and estimate the fuel capacity from [available diagrams of the Mk 48 torpedo](http://www.navsea.navy.mil/nuwc/newport/MAST/MK48.pdf). " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Maximum fuel capacity = 235.9 liters\n", "Maximum fuel capacity = 290.6 kg\n" ] } ], "source": [ "L = (400.0/1951.0)*5.86 # length of fuel tank in m\n", "A = 0.25*np.pi*(0.50)**2 # cross-sectional area in m\n", "V = A*L*1000.0 # volume in liters\n", "rho = 1.232 # Otto fuel density in g/ml\n", "\n", "print(\"Maximum fuel capacity = {:6.1f} liters\".format(V))\n", "print(\"Maximum fuel capacity = {:6.1f} kg\".format(V*rho))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Second Estimate of Fuel Requirements\n", "\n", "Compute the engine work requirement assuming an 85% propulsion system efficiency, and a motor conversion efficiency of 88% (same as a Tesla roadster)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "W_engine = (Ea+Er)/0.85/0.88" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Estimate the adiabatic combustion temperature assuming that 76% of the fuel mass is available for a sensible temperature increase." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimated Combustion Temperature = 3639.6 K\n" ] } ], "source": [ "Cp = dict()\n", "Cp['CO2'] = 35.6 # J/K/gmol\n", "Cp['NH3'] = 37.0 # J/K/gmol\n", "\n", "Tcomb = 298.15 - 0.76*dH*1000.0/(3*Cp['CO2'] + 3*Cp['NH3'])\n", "print(\"Estimated Combustion Temperature = {:6.1f} K\".format(Tcomb))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assume that work is extracted by a 12-to-1 [adiabatic expansion of the combustion gases](http://en.wikipedia.org/wiki/Adiabatic_process) in a hot-gas piston engine, compute the moles of hot gas required." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gram-moles of hot gas required = 8593.5\n" ] } ], "source": [ "R = 8.314 # m**3 Pa/K/gmol\n", "gamma = (0.52+0.21)/(0.4 + 0.16)\n", "alpha = 1.0/(gamma-1)\n", "Vr = 1.0 - 12.0**(1-gamma)\n", "n_gas = W_engine/alpha/8.314/Tcomb/Vr\n", "print(\"gram-moles of hot gas required = {:6.1f}\".format(n_gas))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assume the fuel additives have the same average molecular weight as the ammonia/carbon dioxide mixture." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Otto fuel required = 237.9 kg\n" ] } ], "source": [ "n_pgdn = (0.76*n_gas)/6.0\n", "\n", "mass_pgdn = mw['PGDN']*n_pgdn\n", "mass_otto = mass_pgdn/0.76/1000.0\n", "\n", "print(\"Otto fuel required = {:6.1f} kg\".format(mass_otto))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mk 50 Torpedo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The [Mk 50 torpedo](http://en.wikipedia.org/wiki/Mark_50_torpedo) was designed a lightweight device that could be used against fast and deep-diving submarines. It is a much smaller device only 9.5 ft long, 12.75 inches in diameter, and 800 pounds. The small size allows it to launched from a variety of platforms, including ships, airplanes, and helicopters.\n", "\n", "

\"US
\"US Navy 040623-N-5319A-001 Sailors assigned to the weapons department aboard the guided missile destroyer USS Bulkeley (DDG 84), hoist an Anti-Submarine Warfare (ASW) MK-50 Torpedo off of the flight deck\" by U.S. Navy photo by Photographer's Mate 1st Class Brien Aho - This Image was released by the United States Navy with the ID 040623-N-5319A-001. Licensed under Public Domain via Wikimedia Commons.

\n", "\n", "A critical part of its design is the Stored Chemical Energy Propulsion System (SCEPS) in which sulfur hexaflouride gas is sprayed onto a solid block of lithium to produce the heat necessary to run a steam-powered, closed-cycle rankine engine. Sulfer hexaflouride has a number of interesting properties which are demonstrated in these videos." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"d-XbjFn3aqE\",420,315,rel=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sulfur hexaflouride is relatively inert but reacts with lithium at an operating temperature of about 790 °C via the [stoichiometric reaction](http://www.dtic.mil/dtic/tr/fulltext/u2/a224846.pdf)\n", "\n", "8 Li + SF6 → Li2S + 6 LiF\n", "\n", "This reaction produces no gaseous products which allows the propulsion system to be completely self-contained - an enormous design advantage for a torpedo that must operate under high pressure conditions in deep ocean waters.\n", "\n", "* Estimate the heat of reaction at the normal operating conditions. \n", "* What is the heat of reaction per unit mass of reactants? Per unit volume? Compare to the lower heating values of some common fuels.\n", "* The heat is used to generate steam for a closed cycle Rankine engine employing a steam turbine. The creep limit of stainless steel limits the inlet temperature of the steam turbine to 565 °C. If the condenser temperature is 30 °C, what is the maximum acheivable Carnot efficiency of the steam engine? \n", "* An alternative formula for estimating the heat engine efficiency under maximum power conditions is the Curzon-Ahlborn efficiency given by $\\eta = 1-\\sqrt{\\frac{T_{cold}}{T_{hot}}}$. Estimate the Curzon-Ahlborn efficiency of this steam engine. \n", "* The Mk 50 torpedo has a diameter of 12.75 inches, an estimated speed of 50 knots, and an estimated range of 15 km. Assuming a drag coefficient 0.10, an engine efficiency equal to the Curzon-Ahlborn efficiency, and an overall propulsion system efficiency of 85%, how much fuel is required?\n", "\n", "The core issue for this problem is finding reliable thermodynamic information. Here's one source ( [http://www.update.uu.se/~jolkkonen/pdf/CRC_TD.pdf](http://www.update.uu.se/~jolkkonen/pdf/CRC_TD.pdf)) that you may find useful in addition to the [NIST Webbook](http://webbook.nist.gov/chemistry/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Heat of Reaction" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Heat of Reaction at 790 deg C = -3149.2 kJ/gmol\n" ] } ], "source": [ "Hf = dict() # kJ/gmol\n", "Cp = dict() # J/K/gmol\n", "\n", "Hf['Li'] = 0.0\n", "Cp['Li'] = 24.8\n", "\n", "Hf['SF6'] = -1220.5\n", "Cp['SF6'] = 97.0\n", "\n", "Hf['Li2S'] = -441.4\n", "Cp['Li2S'] = 54.1 # Missing Data, use Li2O\n", "\n", "Hf['LiF'] = -616.0\n", "Cp['LiF'] = 41.6\n", "\n", "Hr = Hf['Li2S'] + Cp['Li2S']*(25-790)/1000.0 \\\n", " + 6*(Hf['LiF'] + Cp['LiF']*(25-790)/1000.0) \\\n", " - 8*Hf['Li'] - Hf['SF6']\n", "\n", "print(\"Heat of Reaction at 790 deg C = {:6.1f} kJ/gmol\".format(Hr))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Specific Heat of Reaction" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Heat of Reaction at 790 deg C = -15622.1 kJ/kg\n" ] } ], "source": [ "mw = dict()\n", "mw['Li'] = 6.941\n", "mw['SF6'] = 146.06\n", "\n", "dH = Hr*1000.0/(8*mw['Li'] + mw['SF6'])\n", "print(\"Heat of Reaction at 790 deg C = {:6.1f} kJ/kg\".format(dH))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Carnot Efficiency" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Carnot efficiency = 0.638\n" ] } ], "source": [ "eta_carnot = 1 - (30+273.15)/(565+273.15)\n", "print(\"Carnot efficiency = {:6.3f}\".format(eta_carnot))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Curzon-Ahlborn Efficiency" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Curzon-Ahlborn efficiency = 0.399\n" ] } ], "source": [ "eta_ca = 1 - np.sqrt((30+273.15)/(565+273.15))\n", "print(\"Curzon-Ahlborn efficiency = {:6.3f}\".format(eta_ca))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fuel Requirement" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Drag force at 50 knots = 2792.6 Newtons\n", "Power requirement at 50 knots = 71826.5 Watts\n", "Power requirement at 50 knots = 96.3 Hp\n", "Hydrodynamic Energy requirement at 50 knots = 41889.5 kJ\n", "Fuel Energy requirement at 50 knots = 123638.9 kJ\n", "Fuel Requirement at 50 knots = 7.9 kg\n", "Li Requirement = 2.18 kg\n", "SF6 Requirement = 5.73 kg\n" ] } ], "source": [ "A = 0.25*np.pi*(12.75*0.0254)**2 # area in m**2\n", "rho = 1025.0 # kg/m**3\n", "v = 50*0.5144 # m/s\n", "Cd = 0.10\n", "Fd = 0.5*rho*Cd*A*v**2 # drag force in Newtons\n", "\n", "print(\"Drag force at 50 knots = {:6.1f} Newtons\".format(Fd))\n", "\n", "W = v*Fd\n", "\n", "print(\"Power requirement at 50 knots = {:6.1f} Watts\".format(W))\n", "print(\"Power requirement at 50 knots = {:6.1f} Hp\".format(W/745.7))\n", "\n", "t = 15000.0/v # time in sec\n", "E = W*t/1000.0 # energy required in kJ\n", "\n", "print(\"Hydrodynamic Energy requirement at 50 knots = {:6.1f} kJ\".format(E))\n", "\n", "E_fuel = E/0.85/eta_ca\n", "\n", "print(\"Fuel Energy requirement at 50 knots = {:6.1f} kJ\".format(E_fuel))\n", "\n", "print(\"Fuel Requirement at 50 knots = {:6.1f} kg\".format(E_fuel/(-dH)))\n", "w_Li = 8*mw['Li']/(8*mw['Li'] + mw['SF6'])\n", "print(\"Li Requirement = {:6.2f} kg\".format(w_Li*E_fuel/(-dH)))\n", "print(\"SF6 Requirement = {:6.2f} kg\".format((1-w_Li)*E_fuel/(-dH)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Black Shark Electric Torpedo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The [Black Shark torpedo](http://en.wikipedia.org/wiki/Black_Shark_torpedo) is an electrically powered, 21 inch diameter torpedo produced by Whitehead Sistemi Subacquei (WASS) group of Italy. It has an estimated range of 22 km at a speed of 52 knots. \n", "\n", "\n", "\n", "The Black Shark torpedo employs a salt water activated [AgO-Al battery[(http://www.saftbatteries.com/force_download/Torpedo_brochure09_13.pdf) The anode half-reaction is\n", "\n", "2 Al + 8 OH- → 2 Al02- + 4 H2O + 6 electrons\n", "\n", "The OH- is produced by the dissolution of NaOH when then the torpedo enters the water. The cathode half-reaction is\n", "\n", "3 AgO + 3 H2O + 6 electrons → 3 Ag + 6 OH-\n", "\n", "for an overall electrochemical reaction\n", "\n", "2 Al + 3 AgO + 2 OH- → 2 AlO2- + 3 AgO + H2O\n", "\n", "An individual battery cell has a measured potential of Ecell = 1.33 volts under operating conditions. The Gibb's free energy $\\Delta G$, is related to the number of electrons transferred in the reaction, $n$, and the cell potential by\n", "\n", "$$\\Delta G = -n F E_{cell} $$\n", "\n", "where $F = 96,485$ Columbs/gmol is the charge on one gram-mole of electrons.\n", "\n", "Assuming the battery/motor system has an overall efficiency of a Tesla roadster (88% efficient), and the propulsion system is 85% efficient, estimate the chemical reactants necessary to power the Black Shark torpedo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gibb's Free Energy" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Gibb's Free Energy = -770.0 kJ\n", "Gibb's Free Energy = -928.6 kJ/kg\n" ] } ], "source": [ "dG = -6.0*96485.0*1.33/1000.0\n", "print(\"Gibb's Free Energy = {:6.1f} kJ\".format(dG))\n", "\n", "mw['Al'] = 26.98\n", "mw['AgO'] = 231.735\n", "mw['NaOH'] = 39.997\n", "\n", "dG = 1000.0*dG/(2*mw['Al'] + 3*mw['AgO'] + 2*mw['NaOH'])\n", "print(\"Gibb's Free Energy = {:6.1f} kJ/kg\".format(dG))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Energy Requirement" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Drag force at 52 knots = 7784.3 Newtons\n", "Power requirement at 52 knots = 208221.8 Watts\n", "Power requirement at 52 knots = 279.2 Hp\n", "Hydrodynamic Energy requirement at 52 knots = 171255.6 kJ\n" ] } ], "source": [ "A = 0.25*np.pi*(21.0*0.0254)**2 # area in m**2\n", "rho = 1025.0 # kg/m**3\n", "v = 52*0.5144 # m/s\n", "Cd = 0.095\n", "Fd = 0.5*rho*Cd*A*v**2 # drag force in Newtons\n", "\n", "print(\"Drag force at 52 knots = {:6.1f} Newtons\".format(Fd))\n", "\n", "W = v*Fd\n", "\n", "print(\"Power requirement at 52 knots = {:6.1f} Watts\".format(W))\n", "print(\"Power requirement at 52 knots = {:6.1f} Hp\".format(W/745.7))\n", "\n", "t = 22000.0/v # time in sec\n", "E = W*t/1000.0 # energy required in kJ\n", "\n", "print(\"Hydrodynamic Energy requirement at 52 knots = {:6.1f} kJ\".format(E))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Battery Requirement" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Battery Energy requirement at 52 knots = 228951.3 kJ\n", "Battery Reactant Requirements at 52 knots = 246.6 kg\n" ] } ], "source": [ "E_battery = E/0.85/0.88\n", "\n", "print(\"Battery Energy requirement at 52 knots = {:6.1f} kJ\".format(E_battery))\n", "\n", "print(\"Battery Reactant Requirements at 52 knots = {:6.1f} kg\".format(E_battery/(-dG)))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Adiabatic Flame Temperature](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/08.06-Adiabatic-Flame-Temperature.ipynb) | [Contents](toc.ipynb) | [Products: Product Design and Analysis](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/A.00-Projects-Product-Design-and-Analysis.ipynb) >

\"Open" ] } ], "metadata": { "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 }