{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Important Equations:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Variables\n", "$g = gravity\\ \\frac{in}{s^2} $\n", "\n", "$c* = characteristic\\ velocity $\n", "\n", "$\\gamma= specific\\ heat\\ ratio$ (obtained from CEA)\n", "\n", "$C_f = thrust\\ coefficient$\n", "\n", "$P_e = exit\\ pressure\\ (PSI) $\n", "\n", "$P_a = ambient\\ pressure\\ (PSI) $\n", "\n", "$P_{c_{ns}} = nozzle\\ stagnation\\ pressure\\ (PSI) $\n", "\n", "$P_{c_{inj}} = chamber\\ total\\ pressure\\ at\\ injector\\ end$ (This is generally treated as equivalent to the total pressure)\n", "\n", "$P_i = inlet\\ pressure\\ (PSI)$\n", "\n", "$A_e = Exit\\ Area\\ (in^2)$\n", "\n", "$A_t = Throat\\ Area\\ (in^2)$\n", "\n", "$F = thrust\\ (lb)$\n", "\n", "$ISP = specific\\ impulse\\ (s)$ \n", "\n", "$r = mixture\\ ratio$ (Taken from https://www.braeunig.us/space/comb-OE )\n", "\n", "$T_C= chamber\\ temperature\\ (deg\\ R)$\n", "\n", "$M_i= nozzle\\ inlet\\ flow\\ mach\\ number$\n", "\n", "$M= molecular\\ weight$\n", "\n", "$R_{gas}= gas\\ constant$\n", "\n", "#### Material Properties: \n", "(source https://www.applichem.com/en/shop/product-detail/as/ethanol-70-reinst-dab/ )\n", "\n", "$\\rho_{lox} = 71.38$ $\\frac{lb}{ft^3}$ \n", "\n", "$\\rho_{lox} = 0.0413$ $\\frac{lb}{in^3}$ \n", "\n", "$\\nu_{lox} = 0.0003389$ $\\frac{in^2}{s}$ \n", "\n", "$\\nu_{ethanol} = 0.00210187$ $\\frac{in^2}{s}$ \n", "\n", "$\\rho_{ethanol} = 55.249$ $\\frac{lb}{ft^3}$ \n", "\n", "$\\rho_{ethanol} = 0.03197$ $\\frac{lb}{in^3}$ \n", "\n", "$\\mu_{lox} = 0.000013999$ $\\frac{lb}{in*s}$\n", "\n", "$\\mu_{ethanol} = 0.000067197$ $\\frac{lb}{in*s}$\n", "\n", "$M= 22 \\frac{g}{mol} = 22 \\frac{lbf}{lb*mol}$ (Taken from CEA)\n", "\n", "#### Assumptions:\n", "\n", "$M_i = 0.3$ \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Laminar or Turbulent Flow\n", "\n", "The flow is: \n", "\n", "Laminar when $Re<2300$\n", "\n", "Transient when $2300 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Pintle Equations\n", "\n", "We are choosing our pintle radius, $R_p$\n", "(We are basing this off of Penn State AIAA-98-3816, Woodward et. al)\n", "\n", "$$R_p = outer\\ radius\\ = 0.14\\ in$$\n", "$$r_p = inner\\ radius\\ = .05\\ in$$ \n", "\n", "\n", "$N = number\\ of\\ primary\\ holes$\n", "\n", "$n = number\\ of\\ secondary\\ holes$\n", "\n", "$W = big\\ hole\\ diameter$\n", "\n", "$w = small\\ hole\\ diameter$\n", "\n", "$TMR = total\\ momentum\\ ratio$\n", "\n", "$BF = blockage\\ factor$\n", "\n", "$D_p = outer\\ post\\ diameter$\n", "\n", "$EMR = effective\\ momentum\\ ratio$\n", "\n", "\n", "$$TMR = \\frac{\\dot{m}U_{inner}}{\\dot{m}U_{outer}}$$\n", "\n", "\n", "$$BF = \\frac{(n*w)(N*W)}{D_p*pi}$$\n", "\n", "\n", "$$EMR = \\frac{TMR}{BF}$$\n", "\n", "*Note:\n", "\n", "BF should be less than 1, preferably between 0.3 and 0.7.\n", "\n", "If $BF > 1$ , there will be risk of interfacial shear \n", "\n", "Performance is best when $TMR = 1$\n", "\n", "As TMR increases, the fan angle increases. If ratio is too low, fan angle is extremely small and the spray will be very close to tip. If ratio is too high, fan angle is high and the flow will impinge directly on chamber walls (Stanford 2014). \n", "\n", "$$U= \\frac{Q}{A} $$\n", "\n", "$U=velocity$\n", "\n", "\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fuel Centered Pintle Design\n", "\n", "## Annular Orifice\n", "The design is currently fuel centered, with the lox flowing through the annulus\n", "\n", " \n", "\n", "The flow rate is computed using the Hagen-Poiseuille equation:\n", "\n", "\n", "$$\\dot m = \\frac{\\pi*R(R-r)^3}{6\\nu\\rho*L}*(1+\\frac{3}{2}E^2)*\\Delta P$$\n", "\n", "\n", "$E = \\frac{e}{R-r}$\n", "\n", "where,\n", "\n", "$E= eccentricity\\ ratio$\n", "\n", "$e= eccentricity$\n", "\n", "Since, the pintle annulus will be concentric, $E = 0$\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Change in Pressure, PSI = 70.0\n" ] } ], "source": [ "from ipywidgets import widgets\n", "#Outer (Rp) and Inner (rp) radii of Pintle\n", "Rp_ = widgets.Text(\".14\", description=\"Outer radius of pintle, R_p\", width=60 )\n", "rp_ = widgets.Text(\".06\", description=\"Inner radius of pintle, r_p\", width=60 )\n", "\n", "#Annulus Radius input\n", "Ra_= widgets.Text(\".152\", description=\"Annulus radius, Ra (in)\", width=60)\n", "\n", "display(Ra_)\n", "display(Rp_)\n", "display(rp_)\n", "\n", "#Pressure drop ranges from 10-20% of chamber pressure\n", "dp=.2*Pc\n", "\n", "\n", "#Densities and viscosities of ethanol and lox\n", "rhoethanol= widgets.Text(\"0.03197\", description=\"Density of Ethanol, lb/s^3\", width=65)\n", "rholox= widgets.Text(\"0.0413\", description=\"Density of Lox, lb/s^3\", width=65)\n", "nulox= widgets.Text(\"0.0003389\", description=\"Viscosity of Lox, in^2/s\", width=65)\n", "nuethanol=widgets.Text(\"0.00210187\", description=\"Viscosity of Ethanol, in^2/s\", width=65)\n", "\n", "print(\"Change in Pressure, PSI = \", dp)\n", "display(rholox)\n", "display(rhoethanol)\n", "display(nuethanol)\n", "display(nulox)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0.297278950634915]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#floating annulus radius for usage in formulas\n", "Ra=float(Ra_.value)\n", "Rp=float(Rp_.value)\n", "rp=float(rp_.value)\n", "\n", "\n", "#floating densities and viscocities for ethanol and lox\n", "nu_lox = float(nulox.value)\n", "nu_ethanol = float(nuethanol.value)\n", "rho_ethanol = float(rhoethanol.value)\n", "rho_lox = float(rholox.value)\n", "\n", "\n", "\n", "\n", "#Fuel Center or Lox Center\n", "FCenter = False\n", "\n", "#assign inner fluid\n", "if (FCenter):\n", " m_inner = m_ethanol\n", " m_outer = m_lox\n", " rhoi = rho_ethanol\n", " rhoo = rho_lox\n", " nuo = nu_lox\n", " nui = nu_ethanol\n", "else:\n", " m_inner = m_lox\n", " m_outer = m_ethanol\n", " rhoi = rho_lox\n", " rhoo = rho_ethanol\n", " nuo = nu_ethanol\n", " nui = nu_lox\n", "\n", "\n", "\n", "\n", "\n", "from sympy.solvers import solve\n", "from sympy import Symbol\n", "L= Symbol('L')\n", "solve((((math.pi * Ra*(Ra-Rp)**3)/(6*nuo*rhoo*L))*dp)-m_outer,L)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Using round holes\n", "W_ = widgets.Text(\".02\",description=\"Primary slot width in pintle, W (in)\", width=60 )\n", "#w_ = widgets.Text(\".005\",description=\"Secondary round hole diameter in pintle, w(in)\", width=60 )\n", "\n", "\n", "#Using square holes\n", "h_ = widgets.Text(\".035\",description=\"Primary slot height in pintle, h (in)\", width=60 )\n", "#w2_ = widgets.Text(\".005\", description=\"Secondary square hole width in pintle, w\", width=60 )\n", "\n", "\n", "#number of holes input (3 variations to compare)\n", "N1_ = widgets.Text(\"16\",description=\"number of primary holes, N1\", width=60)\n", "N2_ = widgets.Text(\"12\",description=\"number of primary holes, N2\", width=60)\n", "N3_ = widgets.Text(\"6\",description=\"number of primary holes, N3\", width=60)\n", "\n", "#n_ = widgets.Text(\"24\",description=\"number of secondary holes, n\", width=60)\n", "\n", "\n", "display(N1_)\n", "display(N2_)\n", "display(N3_)\n", "#display(n_)\n", "display(W_)\n", "display(h_)\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Uinner = '" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "1250.214446653452" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'Uouter = '" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "1369.350847223162" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "W=float(W_.value)\n", "h=float(h_.value)\n", "N1=float(N1_.value)\n", "N2=float(N2_.value)\n", "N3=float(N3_.value)\n", "\n", "#Area of slots\n", "area_slot = W*h\n", "\n", "#Area of total slots using first input of amount of holes, N1\n", "areatotal_slot = N1*area_slot\n", "\n", "\n", "#Cross sectional areas of Annulus and Pintle\n", "Area_rp = math.pi*rp**2\n", "Area_Ra = math.pi*Ra**2\n", "Area_Rp = math.pi*Rp**2\n", "\n", "\n", "\n", "#Inner and Outer Pintle Velocities \n", "Ui= m_inner/(rhoi*areatotal_slot)\n", "Uo =m_outer/(rhoo*(Area_Ra-Area_Rp))\n", "\n", "\n", "display(\"Uinner = \" , Ui)\n", "display(\"Uouter = \" , Uo)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "BF with 16 slots= 0.3637827270671893\n", "BF with 12 slots= 0.272837045300392\n", "BF with 6 slots= 0.136418522650196\n", "TMR = 1.0955974789269227\n", "EMR with 16 slots= 3.0116808672022795\n", "EMR with 12 slots= 4.015574489603039\n", "EMR with 6 slots= 8.031148979206078\n" ] } ], "source": [ "\n", "\n", "\n", "di=2*Rp\n", "\n", "\n", "\n", "#blockage factor\n", "BF1 = ((N1*W))/(di*math.pi)\n", "\n", "BF2 = ((N2*W))/(di*math.pi)\n", "\n", "BF3 = ((N3*W))/(di*math.pi)\n", "\n", "\n", "\n", "#TMR=massflowrate*velocity(inner)/ massflowrate*velocity(outer)\n", "\n", "\n", "\n", "mil = m_inner*Ui\n", "mfl = m_outer*Uo\n", "TMR = mil/mfl\n", "EMR1 = TMR/BF1\n", "EMR2 = TMR/BF2\n", "EMR3 = TMR/BF3\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "print(\"BF with 16 slots= \", BF1)\n", "print(\"BF with 12 slots= \", BF2)\n", "print(\"BF with 6 slots= \", BF3)\n", "\n", "print(\"TMR = \", TMR)\n", "print(\"EMR with 16 slots= \", EMR1)\n", "print(\"EMR with 12 slots= \", EMR2)\n", "print(\"EMR with 6 slots= \", EMR3)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###### " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }