Skip to content

Commit efd5f29

Browse files
committed
updating nacelles
1 parent 0b43a35 commit efd5f29

File tree

7 files changed

+162
-69
lines changed

7 files changed

+162
-69
lines changed

B737_AVL_Tutorial/tut_mission_B737_AVL.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import numpy as np
2626
import pylab as plt
2727

28+
from copy import deepcopy
2829

2930
# ----------------------------------------------------------------------
3031
# Main
@@ -308,6 +309,30 @@ def vehicle_setup():
308309

309310
# add to vehicle
310311
vehicle.append_component(fuselage)
312+
313+
314+
# ------------------------------------------------------------------
315+
# Nacelles
316+
# ------------------------------------------------------------------
317+
nacelle = SUAVE.Components.Nacelles.Nacelle()
318+
nacelle.tag = 'nacelle_1'
319+
nacelle.length = 2.71
320+
nacelle.inlet_diameter = 1.90
321+
nacelle.diameter = 2.05
322+
nacelle.areas.wetted = 1.1*np.pi*nacelle.diameter*nacelle.length
323+
nacelle.origin = [[13.72, -4.86,-1.9]]
324+
nacelle.flow_through = True
325+
nacelle_airfoil = SUAVE.Components.Airfoils.Airfoil()
326+
nacelle_airfoil.naca_4_series_airfoil = '2410'
327+
nacelle.append_airfoil(nacelle_airfoil)
328+
329+
nacelle_2 = deepcopy(nacelle)
330+
nacelle_2.tag = 'nacelle_2'
331+
nacelle_2.origin = [[13.72, 4.86,-1.9]]
332+
333+
vehicle.append_component(nacelle)
334+
vehicle.append_component(nacelle_2)
335+
311336

312337
# ------------------------------------------------------------------
313338
# Turbofan Network
@@ -320,8 +345,6 @@ def vehicle_setup():
320345
# setup
321346
turbofan.number_of_engines = 2
322347
turbofan.bypass_ratio = 5.4
323-
turbofan.engine_length = 2.71 * Units.meter
324-
turbofan.nacelle_diameter = 2.05 * Units.meter
325348
turbofan.origin = [[13.72, 4.86,-1.9],[13.72, -4.86,-1.9]]
326349

327350
#compute engine areas

BWB_CFD/BWB.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424

2525
from SUAVE.Plots.Performance.Mission_Plots import *
2626

27-
if not SUAVE.__version__=='2.5.0':
28-
assert('These tutorials only work with the SUAVE 2.5.0 release')
27+
from copy import deepcopy
2928

3029

3130
# ----------------------------------------------------------------------
@@ -334,6 +333,29 @@ def vehicle_setup():
334333

335334
# add to vehicle
336335
vehicle.append_component(wing)
336+
337+
# ------------------------------------------------------------------
338+
# Nacelle
339+
# ------------------------------------------------------------------
340+
nacelle = SUAVE.Components.Nacelles.Nacelle()
341+
nacelle.diameter = 3.96 * Units.meters
342+
nacelle.length = 289. * Units.inches
343+
nacelle.tag = 'nacelle'
344+
nacelle.origin = [[133.0 *Units.feet, 25.0*Units.feet, 6.5*Units.feet]]
345+
nacelle.areas.wetted = nacelle.length *(2*np.pi*nacelle.diameter/2.)
346+
347+
nacelle_2 = deepcopy(nacelle)
348+
nacelle_2.tag = 'nacelle_2'
349+
nacelle_2.origin = [[145.0 *Units.feet, 0.0*Units.feet, 6.5*Units.feet]]
350+
351+
nacelle_3 = deepcopy(nacelle)
352+
nacelle_3.tag = 'nacelle_3'
353+
nacelle_3.origin = [[133.0 *Units.feet, -25.0*Units.feet, 6.5*Units.feet]]
354+
355+
vehicle.append_component(nacelle)
356+
vehicle.append_component(nacelle_2)
357+
vehicle.append_component(nacelle_3)
358+
337359

338360
# ------------------------------------------------------------------
339361
# Turbofan Network
@@ -345,9 +367,6 @@ def vehicle_setup():
345367
# setup
346368
turbofan.number_of_engines = 3.0
347369
turbofan.bypass_ratio = 8.1
348-
turbofan.engine_length = 289. * Units.inches
349-
turbofan.nacelle_diameter = 3.96 * Units.meters
350-
#turbofan.cooling_ratio = 1.0
351370
turbofan.origin = [[133.0 *Units.feet, 25.0*Units.feet, 6.5*Units.feet],[145.0 *Units.feet, 0.0*Units.feet, 6.5*Units.feet],[133.0 *Units.feet, -25.0*Units.feet, 6.5*Units.feet]]
352371

353372
# working fluid

Regional_Jet_Optimization/Vehicles.py

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
from SUAVE.Methods.Propulsion.turbofan_sizing import turbofan_sizing
1515
from SUAVE.Methods.Geometry.Two_Dimensional.Planform import wing_planform
1616

17+
from copy import deepcopy
18+
1719
# ----------------------------------------------------------------------
1820
# Define the Vehicle
1921
# ----------------------------------------------------------------------
@@ -196,33 +198,45 @@ def base_setup():
196198

197199
# add to vehicle
198200
vehicle.append_component(fuselage)
201+
202+
203+
204+
# -----------------------------------------------------------------
205+
# Design the Nacelle
206+
# -----------------------------------------------------------------
207+
nacelle = SUAVE.Components.Nacelles.Nacelle()
208+
nacelle.diameter = 2.05
209+
nacelle.length = 2.71
210+
nacelle.tag = 'nacelle_1'
211+
nacelle.inlet_diameter = 2.0
212+
nacelle.origin = [[12.0,4.38,-2.1]]
213+
Awet = 1.1*np.pi*nacelle.diameter*nacelle.length # 1.1 is simple coefficient
214+
nacelle.areas.wetted = Awet
215+
nacelle_airfoil = SUAVE.Components.Airfoils.Airfoil()
216+
nacelle_airfoil.naca_4_series_airfoil = '2410'
217+
nacelle.append_airfoil(nacelle_airfoil)
218+
219+
nacelle_2 = deepcopy(nacelle)
220+
nacelle_2.tag = 'nacelle_2'
221+
nacelle_2.origin = [[12.0,-4.38,-2.1]]
222+
223+
vehicle.append_component(nacelle)
224+
vehicle.append_component(nacelle_2)
225+
199226

200227
# ------------------------------------------------------------------
201228
# Turbofan Network
202229
# ------------------------------------------------------------------
203230

204-
205231
#initialize the gas turbine network
206232
gt_engine = SUAVE.Components.Energy.Networks.Turbofan()
207233
gt_engine.tag = 'turbofan'
208234
gt_engine.origin = [[12.0,4.38,-2.1],[12.0,-4.38,-2.1]]
209235
gt_engine.number_of_engines = 2.0
210236
gt_engine.bypass_ratio = 5.4
211-
gt_engine.engine_length = 2.71
212-
gt_engine.nacelle_diameter = 2.05
213-
gt_engine.inlet_diameter = 2.0
214-
215-
#compute engine areas)
216-
Awet = 1.1*np.pi*gt_engine.nacelle_diameter*gt_engine.engine_length # 1.1 is simple coefficient
217-
218-
#Assign engine area
219-
gt_engine.areas.wetted = Awet
220-
221-
#set the working fluid for the network
222-
working_fluid = SUAVE.Attributes.Gases.Air()
223237

224238
#add working fluid to the network
225-
gt_engine.working_fluid = working_fluid
239+
gt_engine.working_fluid = SUAVE.Attributes.Gases.Air()
226240

227241

228242
#Component 1 : ram, to convert freestream static to stagnation quantities
@@ -332,6 +346,7 @@ def base_setup():
332346
fuel.mass_properties.mass = vehicle.mass_properties.max_takeoff-vehicle.mass_properties.max_fuel
333347
fuel.origin = vehicle.wings.main_wing.mass_properties.center_of_gravity
334348
fuel.mass_properties.center_of_gravity= vehicle.wings.main_wing.aerodynamic_center
349+
335350
# ------------------------------------------------------------------
336351
# Vehicle Definition Complete
337352
# ------------------------------------------------------------------

tut_concorde.py

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import numpy as np
2323
import pylab as plt
2424

25-
25+
from copy import deepcopy
2626

2727
# ----------------------------------------------------------------------
2828
# Main
@@ -125,7 +125,7 @@ def base_analysis(vehicle):
125125
# ------------------------------------------------------------------
126126
# Energy
127127
energy= SUAVE.Analyses.Energy.Energy()
128-
energy.network = vehicle.propulsors #what is called throughout the mission (at every time step))
128+
energy.network = vehicle.networks #what is called throughout the mission (at every time step))
129129
analyses.append(energy)
130130

131131
# ------------------------------------------------------------------
@@ -265,6 +265,35 @@ def vehicle_setup():
265265

266266
# add to vehicle
267267
vehicle.append_component(fuselage)
268+
269+
# ------------------------------------------------------------------
270+
# the nacelle
271+
# ------------------------------------------------------------------
272+
273+
nacelle = SUAVE.Components.Nacelles.Nacelle()
274+
nacelle.diameter = 1.3
275+
nacelle.tag = 'nacelle_L1'
276+
nacelle.origin = [[36.56, 22, -1.9]]
277+
nacelle.length = 12.0
278+
nacelle.inlet_diameter = 1.1
279+
nacelle.areas.wetted = 30.
280+
vehicle.append_component(nacelle)
281+
282+
nacelle_2 = deepcopy(nacelle)
283+
nacelle_2.tag = 'nacelle_2'
284+
nacelle_2.origin = [[37.,5.3,-1.3]]
285+
vehicle.append_component(nacelle_2)
286+
287+
nacelle_3 = deepcopy(nacelle)
288+
nacelle_3.tag = 'nacelle_3'
289+
nacelle_3.origin = [[37.,-5.3,-1.3]]
290+
vehicle.append_component(nacelle_3)
291+
292+
nacelle_4 = deepcopy(nacelle)
293+
nacelle_4.tag = 'nacelle_4'
294+
nacelle_4.origin = [[37.,-6.,-1.3]]
295+
vehicle.append_component(nacelle_4)
296+
268297

269298
# ------------------------------------------------------------------
270299
# Turbojet Network
@@ -277,10 +306,6 @@ def vehicle_setup():
277306
# setup
278307
turbojet.number_of_engines = 4.0
279308
turbojet.engine_length = 12.0
280-
turbojet.nacelle_diameter = 1.3 * Units.meter
281-
turbojet.inlet_diameter = 1.1 * Units.meter
282-
turbojet.areas = Data()
283-
turbojet.areas.wetted = 12.5*4.7*2. * Units['meter**2'] # 4.7 is outer perimeter on one side
284309
turbojet.origin = [[37.,6.,-1.3],[37.,5.3,-1.3],[37.,-5.3,-1.3],[37.,-6.,-1.3]] # meters
285310

286311
# working fluid

tut_mission_B737.py

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
# Rather than conventional sizing, this script builds the turbofan energy network. This process is
3838
# covered in more detail in a separate tutorial. It does not size the turbofan geometry.
3939

40+
from copy import deepcopy
4041

4142
# ----------------------------------------------------------------------
4243
# Main
@@ -396,6 +397,30 @@ def vehicle_setup():
396397

397398
# add to vehicle
398399
vehicle.append_component(fuselage)
400+
401+
402+
# ------------------------------------------------------------------
403+
# Nacelles
404+
# ------------------------------------------------------------------
405+
nacelle = SUAVE.Components.Nacelles.Nacelle()
406+
nacelle.tag = 'nacelle_1'
407+
nacelle.length = 2.71
408+
nacelle.inlet_diameter = 1.90
409+
nacelle.diameter = 2.05
410+
nacelle.areas.wetted = 1.1*np.pi*nacelle.diameter*nacelle.length
411+
nacelle.origin = [[13.72, -4.86,-1.9]]
412+
nacelle.flow_through = True
413+
nacelle_airfoil = SUAVE.Components.Airfoils.Airfoil()
414+
nacelle_airfoil.naca_4_series_airfoil = '2410'
415+
nacelle.append_airfoil(nacelle_airfoil)
416+
417+
nacelle_2 = deepcopy(nacelle)
418+
nacelle_2.tag = 'nacelle_2'
419+
nacelle_2.origin = [[13.72, 4.86,-1.9]]
420+
421+
vehicle.append_component(nacelle)
422+
vehicle.append_component(nacelle_2)
423+
399424

400425
# ------------------------------------------------------------------
401426
# Turbofan Network
@@ -409,17 +434,11 @@ def vehicle_setup():
409434
# High-level setup
410435
turbofan.number_of_engines = 2
411436
turbofan.bypass_ratio = 5.4
412-
turbofan.engine_length = 2.71 * Units.meter
413-
turbofan.nacelle_diameter = 2.05 * Units.meter
414437
turbofan.origin = [[13.72, 4.86,-1.9],[13.72, -4.86,-1.9]] * Units.meter
415-
416-
# Approximate the wetted area
417-
turbofan.areas.wetted = 1.1*np.pi*turbofan.nacelle_diameter*turbofan.engine_length
418-
438+
419439
# Establish the correct working fluid
420440
turbofan.working_fluid = SUAVE.Attributes.Gases.Air()
421441

422-
423442
# Components use estimated efficiencies. Estimates by technology level can be
424443
# found in textbooks such as those by J.D. Mattingly
425444

tut_payload_range.py

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
# ----------------------------------------------------------------------
1010

1111
import SUAVE
12-
if not SUAVE.__version__=='2.5.0':
13-
assert('These tutorials only work with the SUAVE 2.5.0 release')
12+
#if not SUAVE.__version__=='2.5.0':
13+
#assert('These tutorials only work with the SUAVE 2.5.0 release')
1414
from SUAVE.Core import Units, Data
1515
from SUAVE.Methods.Propulsion.turbofan_sizing import turbofan_sizing
1616
from SUAVE.Methods.Performance import payload_range
@@ -129,7 +129,7 @@ def base_analysis(vehicle):
129129
# ------------------------------------------------------------------
130130
# Propulsion Analysis
131131
energy= SUAVE.Analyses.Energy.Energy()
132-
energy.network = vehicle.propulsors
132+
energy.network = vehicle.networks
133133
analyses.append(energy)
134134

135135
# ------------------------------------------------------------------
@@ -335,21 +335,9 @@ def vehicle_setup():
335335
gt_engine.origin = [[12.0,4.38,-2.1],[12.0,-4.38,-2.1]]
336336
gt_engine.number_of_engines = 2.0
337337
gt_engine.bypass_ratio = 5.4
338-
gt_engine.engine_length = 2.71
339-
gt_engine.nacelle_diameter = 2.05
340-
gt_engine.inlet_diameter = 2.0
341-
342-
#compute engine areas)
343-
Amax = (np.pi/4.)*gt_engine.nacelle_diameter**2.
344-
Awet = 1.1*np.pi*gt_engine.nacelle_diameter*gt_engine.engine_length # 1.1 is simple coefficient
345-
#Assign engine area
346-
gt_engine.areas.wetted = Awet
347-
#set the working fluid for the network
348-
working_fluid = SUAVE.Attributes.Gases.Air()
349338

350339
#add working fluid to the network
351-
gt_engine.working_fluid = working_fluid
352-
340+
gt_engine.working_fluid = SUAVE.Attributes.Gases.Air()
353341

354342
#Component 1 : ram, to convert freestream static to stagnation quantities
355343
ram = SUAVE.Components.Energy.Converters.Ram()

0 commit comments

Comments
 (0)