/
wing_skin.py
37 lines (28 loc) · 1.34 KB
/
wing_skin.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
" wing skin "
from gpkit import Model, Variable
class WingSkin(Model):
"wing skin model"
def setup(self, surface):
rhocfrp = Variable("\\rho_{CFRP}", 1.6, "g/cm^3", "density of CFRP")
W = Variable("W", "lbf", "wing skin weight")
g = Variable("g", 9.81, "m/s^2", "gravitational acceleration")
t = Variable("t", "in", "wing skin thickness")
tmin = Variable("t_{min}", 0.012, "in", "wing skin min gauge")
Jtbar = Variable("\\bar{J/t}", 0.01114, "1/mm",
"torsional moment of inertia")
constraints = [W >= rhocfrp*surface["S"]*2*t*g,
t >= tmin]
self.loading = WingSkinL
return constraints
class WingSkinL(Model):
"wing skin loading model for torsional loads in skin"
def setup(self, static):
taucfrp = Variable("\\tau_{CFRP}", 570, "MPa", "torsional stress limit")
Cmw = Variable("C_{m_w}", 0.121, "-", "negative wing moment coefficent")
rhosl = Variable("\\rho_{sl}", 1.225, "kg/m^3",
"air density at sea level")
Vne = Variable("V_{NE}", 45, "m/s", "never exceed vehicle speed")
constraints = [
taucfrp >= (1/static["\\bar{J/t}"]/(static["c_{root}"])**2
/ static.skin["t"]*Cmw*static["S"]*rhosl*Vne**2)]
return constraints