{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Aluminum Pressure Vessel\n", " \n", "The Aluminum pressure vessel stress can most likely be simplified to Hoop Stress for Thin-Walled pressure vessels. If that is the case, the condition which the objective function (gross lift off weight) would be subject to would be; $$ \\frac{P_{i}r}{t}\\left (FS \\right )\\leq S_{y} $$ where $$P_{i}$$ is the internal pressure of the vessel,$$r$$ is the radius, $$t$$ is the thickness, $$FC$$ is the factor of safety and $$S_{y}$$ is the yield strength. \n", "\n", "More specifically, the condition will become; $$ \\frac{P_{i}r}{t}\\left (FS \\right )\\leq 255 MPa $$\n", "\n", "The weight of the vessel will be;\n", "$$\n", "\\rho _{Al} g\\left ( \\pi l\\left ( r_{o}^{2}-r_{i}^{2} \\right )+2\\pi r_{i}^{2} \\right )=W_{Al} $$\n", "\n", "where $$\\rho _{Al}$$ is the density, $$g$$ is the acceleration due to gravity, $$r_{o}$$ is the outer radius,and $$r_{i}$$ is the inner radius.\n", "\n", "And, $$\\rho _{Al}=2700\\frac{kg}{m^{2}}$$\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "ename": "TypeError", "evalue": "bad operand type for abs(): 'list'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[0mLongitudinal_Stress\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mPi\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mri\u001b[0m\u001b[1;33m**\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mro\u001b[0m\u001b[1;33m**\u001b[0m\u001b[1;36m2\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mri\u001b[0m\u001b[1;33m**\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 30\u001b[1;33m \u001b[0mSigma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mabs\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mHoop_Stress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mRadial_Stress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mLongitudinal_Stress\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 31\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mHoop_Stress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mRadial_Stress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mLongitudinal_Stress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mSigma_Name\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msolveset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mHoop_Stress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mRadial_Stress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mLongitudinal_Stress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mSigma_Name\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[0mMax_Stress\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmax\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mSigma\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mTypeError\u001b[0m: bad operand type for abs(): 'list'" ] } ], "source": [ "import math as m\n", "from sympy import solveset\n", "\n", "# Aluminum Pressure Vessel Dimensions\n", "Pi = 10 # Internal pressure (Pa)\n", "Po = 1 # External pressure (Pa)\n", "ri = 1 # Inner radius (m)\n", "ro = 1.1 # Outer radius (m)\n", "r = (ro-ri)/2 # Average radius (m)\n", "t = 0.1 # Wall thickness (m)\n", "l = 5 # Length (m)\n", "\n", "# Aluminum Properties (1060)\n", "rho_Al = 2700 # Material density (kg/m^3)\n", "S_Al = 255*10**6 # Yield stress - Al. (Pa)\n", "\n", "# Misc. Parameters\n", "FS = 1.1 # Factor of safety\n", "g = 9.81 # Gravity (m/s^2)\n", "\n", "\n", "# note** in python statements are always delimited by an ':'\n", "if (r/t) <= 10: # Thin-Wall Condition \n", " Hoop_Stress = (Pi*r)/t\n", " Radial_Stress = -Pi/2\n", " Longitudinal_Stress = (Pi*r)/(2*t)\n", "else:\n", " Hoop_Stress = (Pi*ri**2 - Po*ro**2 - ri**2*ro**2*(po-pi)/r**2)/(ro**2 - ri**2)\n", " Radial_Stress = (Pi*ri**2 - Po*ro**2 + ri**2*ro**2*(po-pi)/r**2)/(ro**2 - ri**2) \n", " Longitudinal_Stress = (Pi*ri**2)/(ro**2 - ri**2)\n", "\n", "# where is sigma_name, what does it do?\n", "Sigma = abs([Hoop_Stress, Radial_Stress, Longitudinal_Stress])\n", "\n", "#solveset from the sympy package is like syms in matlab, but what are you solving for? hoop, radial and longitudnal stress already have values?!\n", "[Hoop_Stress, Radial_Stress, Longitudinal_Stress, Sigma_Name] = solveset(Hoop_Stress, Radial_Stress, Longitudinal_Stress, Sigma_Name)\n", "Max_Stress = max(Sigma)\n", "Sigma_Max = find(Sigma==Max_Stress) # Maximum stress\n", "Max_Stress_Type = Sigma_Name(1, Sigma_Max)\n", "\n", "if Sigma_Max<(S_Al*FS): # Stress Analysis\n", " print('Stress_Analysis:\\n\\n Pass\\n')\n", "else:\n", " print('Stress_Analysis:\\n\\n Fail\\n')\n", "\n", "Volume_Al = pi*l*(ro**2-ri**2)+2*pi*ri**2 # Total Volume (m^3)\n", "Mass_Al = rho_Al*Volume_Al; # Total Mass (kg)\n", "Weight_Al = Mass_Al*g # Total Weight (N)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Carbon Fiber & Nomex Pressure Vessel\n", " \n", " The Carbon Fiber & Nomex pressure vessel conditions will be set up in a similar way. \n", " \n", " The weight of the vessel is constructed as follows;\n", " Weight of Carbon Fiber;\n", " $$\n", " \\rho _{CF}g\\pi\\lt_{CF}\\left ( r_{CF,i}^{2} +r_{CF,i}^{2}\\right )=W_{CF}\n", " $$\n", " \n", " Weight of Nomex;\n", " $$\n", " \\rho _{Nom}g\\pi l t_{Nom} r_{Nom}^{2}=W_{Nom}\n", " $$\n", " \n", " Weight of End Caps;\n", " $$\n", " 2\\rho _{Al}\\pi l\\pi r_{i}^{2}=W_{Al}\n", " $$\n", " \n", " And the total;\n", " $$\n", " W_{CF}+W_{Nom}+W_{Al}=W_{total}\n", " $$\n", " \n", " The stress will be a similar inequality as above. However, the actual values are difficult to estimate. I may need to perform FEA, find some better research, or estimate by superposition. **Need to discuss.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import math as m\n", "# Carbon Fiber & Nomex Pressure Vessel\n", "Pi = 10 # Internal Pressure (Pa)\n", "Po = 1 # External Pressure (Pa)\n", "t_CF = 0.01 # Carbon Fiber Thickness (m)\n", "t_Nom = .01 # Nomex Thickness (m)\n", "r_CF_i = 1 # Inner Radius (m)\n", "r_CF_o = 1.1 # Outer Radius (m)\n", "r_Nom = 2 # Average Radius (m)\n", "l = 5 # Length (m)\n", "\n", "rho_CF = 2700 # Material Density (kg/m^3)\n", "S_CF = 300*10**6 # Yield Stress - Aluminum (Pa)\n", "rho_Nom = 2700 # Material Density (kg/m^3)\n", "S_Nom = 150*10**6 # Yield Stress - Aluminum (Pa)\n", "\n", "FS = 1.1 # Factor of Safety\n", "g = 9.81 # Gravity (m/s^2)\n", "\n", "S_CF = 30 # Yield Strength (N)\n", "S_Nom = 13 # Initial Tear Strength (N)\n", "'''\n", "S_Total # Total Yield Stress (To be Determined)\n", "Sigma_Total # Total Max Stress (To be Determined)\n", "'''\n", "Volume_CF = pi*l*t_CF*(r_CF_i**2+r_CF_o**2)# Volume of Carbon Fiber (m^3)\n", "Volume_Nom = pi*l*t_Nom*r_Nom**2 # Volume of Nomex (m^3)\n", "Mass_CF = rho_CF*Volume_CF # Mass of Carbon Fiber (kg)\n", "Mass_Nom = rho_Nom*Volume_Nom # Mass of Nomex (kg)\n", "Weight_Total =(Mass_CF+Mass_Nom)*g # Total Weight of Vessel (N)" ] } ], "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.4.2" } }, "nbformat": 4, "nbformat_minor": 0 }