Skip to content

Commit

Permalink
create material data models
Browse files Browse the repository at this point in the history
  • Loading branch information
mjburton committed Nov 30, 2017
1 parent da0ec49 commit 1293218
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 9 deletions.
5 changes: 4 additions & 1 deletion gpkitmodels/GP/aircraft/tail/horizontal_tail.py
Expand Up @@ -3,7 +3,9 @@
from gpkit import parse_variables
from .tail_aero import TailAero
from gpkitmodels.GP.aircraft.wing.wing import Wing
from gpkitmodels.GP.aircraft.wing.wing_skin import WingSkin
from gpkitmodels.GP.aircraft.wing.wing_core import WingCore
from gpkitmodels.GP.materials.kevlar import Kevlar

#pylint: disable=attribute-defined-outside-init, no-member
#pylint: disable=exec-used, undefined-variable
Expand Down Expand Up @@ -41,11 +43,12 @@ class HorizontalTail(Wing):
def setup(self, N=3):
exec parse_variables(HorizontalTail.__doc__)

WingSkin.material = Kevlar()
self.ascs = Wing.setup(self, N)
self.planform.substitutions.update(
{self.planform.AR: 4, self.planform.tau: 0.08,
self.planform.lam: 0.8})
self.skin.substitutions.update({self.skin.rhocfrp: 0.049})
# self.skin.substitutions.update({self.skin.rhocfrp: 0.049})
self.foam.substitutions.update({self.foam.Abar: 0.0548,
self.foam.rhocore: 0.024})

Expand Down
4 changes: 3 additions & 1 deletion gpkitmodels/GP/aircraft/tail/vertical_tail.py
Expand Up @@ -3,6 +3,8 @@
from .tail_aero import TailAero
from gpkitmodels.GP.aircraft.wing.wing import Wing
from gpkitmodels.GP.aircraft.wing.wing_core import WingCore
from gpkitmodels.GP.aircraft.wing.wing_skin import WingSkin
from gpkitmodels.GP.materials.kevlar import Kevlar

#pylint: disable=attribute-defined-outside-init, no-member, exec-used

Expand Down Expand Up @@ -34,10 +36,10 @@ class VerticalTail(Wing):
def setup(self, N=3):
exec parse_variables(VerticalTail.__doc__)

WingSkin.material = Kevlar()
self.ascs = Wing.setup(self, N)
self.planform.substitutions.update(
{self.planform.tau: 0.08, self.planform.lam: 0.8})
self.skin.substitutions.update({self.skin.rhocfrp: 0.049})
self.foam.substitutions.update({self.foam.Abar: 0.0548,
self.foam.rhocore: 0.024})

Expand Down
15 changes: 8 additions & 7 deletions gpkitmodels/GP/aircraft/wing/wing_skin.py
@@ -1,18 +1,16 @@
" wing skin "
from gpkit import Model, Variable, parse_variables
from gpkitmodels.GP.materials.cfrp import CFRP

class WingSkin(Model):
""" Wing Skin model
Variables
---------
rhocfrp 1.6 [g/cm^3] density of CFRP
W [lbf] wing skin weight
g 9.81 [m/s^2] gravitational acceleration
t [in] wing skin thickness
tmin 0.012 [in] wing skin min gauge
Jtbar 0.01114 [1/mm] torsional moment of inertia
taucfrp 570 [MPa] torsional stress limit
Cmw 0.121 [-] negative wing moment coeff
rhosl 1.225 [kg/m^3] sea level air density
Vne 45 [m/s] never exceed vehicle speed
Expand All @@ -29,24 +27,27 @@ class WingSkin(Model):
-------------
W W_{\\mathrm{skin}}
t t_{\\mathrm{skin}}
tmin t_{\\mathrm{min}}
Jtbar \\bar{J/t}
taucfrp \\tau_{\\mathrm{CFRP}}
Cmw C_{m_w}
rhosl \\rho_{\\mathrm{SL}}
Vne V_{\\mathrm{NE}}
"""
material = CFRP()

def setup(self, surface):
exec parse_variables(WingSkin.__doc__)

croot = self.croot = surface.croot
S = self.S = surface.S
self.loading = WingSkinL
rho = self.material.rho
tau = self.material.tau
tmin = self.material.tmin

return [W >= rhocfrp*surface.S*2*t*g,
return [W >= rho*surface.S*2*t*g,
t >= tmin,
taucfrp >= 1/Jtbar/croot**2/t*Cmw*S*rhosl*Vne**2
tau >= 1/Jtbar/croot**2/t*Cmw*S*rhosl*Vne**2
]

class WingSkinL(Model):
Expand Down
21 changes: 21 additions & 0 deletions gpkitmodels/GP/materials/cfrp.py
@@ -0,0 +1,21 @@
from gpkit import Model, parse_variables

class CFRP(Model):
""" Carbon Fiber Reinforced Plastic Material Properties
Variables
---------
rho 1.6 [g/m^3] density of CFRP
tmin 0.012 [in] minimum gauge thickness
tau 570 [MPa] torsional stress limit
LaTex Strings
-------------
rho \\rho_{\\mathrm{CFRP}}
tmin t_{\\mathrm{min-CFRP}}
tau \\tau_{\\mathrm{CFRP}}
"""
def setup(self):
exec parse_variables(CFRP.__doc__)

21 changes: 21 additions & 0 deletions gpkitmodels/GP/materials/kevlar.py
@@ -0,0 +1,21 @@
from gpkit import Model, parse_variables

class Kevlar(Model):
""" Kevlar Material Properties
Variables
---------
rho 0.049 [g/m^3] density of Kevlar
tmin 0.012 [in] minimum gauge thickness
tau 200 [MPa] torsional stress limit
LaTex Strings
-------------
rho \\rho_{\\mathrm{Kevlar}}
tmin t_{\\mathrm{min-Kevlar}}
tau \\tau_{\\mathrm{Kevlar}}
"""
def setup(self):
exec parse_variables(Kevlar.__doc__)

0 comments on commit 1293218

Please sign in to comment.