Skip to content

Commit 86226ec

Browse files
committed
updated vehicle definitions
1 parent 8ea5210 commit 86226ec

9 files changed

Lines changed: 421 additions & 199 deletions

File tree

BWB_CFD/BWB.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def base_analysis(vehicle):
9898

9999
# ------------------------------------------------------------------
100100
# Weights
101-
weights = SUAVE.Analyses.Weights.Weights()
101+
weights = SUAVE.Analyses.Weights.Weights_BWB()
102102
weights.vehicle = vehicle
103103
analyses.append(weights)
104104

@@ -291,15 +291,15 @@ def vehicle_setup():
291291
segment.thickness_to_chord = 0.10
292292
wing.Segments.append(segment)
293293

294-
segment = SUAVE.Components.Wings.Segment()
295-
segment.tag = 'section_7'
296-
segment.percent_span_location = 0.97
297-
segment.twist = 0. * Units.deg
298-
segment.root_chord_percent = 0.086
299-
segment.dihedral_outboard = 73. * Units.degrees
300-
segment.sweeps.quarter_chord = 55. * Units.degrees
301-
segment.thickness_to_chord = 0.10
302-
wing.Segments.append(segment)
294+
#segment = SUAVE.Components.Wings.Segment()
295+
#segment.tag = 'section_7'
296+
#segment.percent_span_location = 0.97
297+
#segment.twist = 0. * Units.deg
298+
#segment.root_chord_percent = 0.086
299+
#segment.dihedral_outboard = 73. * Units.degrees
300+
#segment.sweeps.quarter_chord = 55. * Units.degrees
301+
#segment.thickness_to_chord = 0.10
302+
#wing.Segments.append(segment)
303303

304304
# add to vehicle
305305
vehicle.append_component(wing)

Regional_Jet_Optimization/Analyses.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def base(vehicle):
5151

5252
# ------------------------------------------------------------------
5353
# Weights
54-
weights = SUAVE.Analyses.Weights.Weights()
54+
weights = SUAVE.Analyses.Weights.Weights_Tube_Wing()
5555
weights.vehicle = vehicle
5656
analyses.append(weights)
5757

Regional_Jet_Optimization/Optimize_Surrogate.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
from SUAVE.Optimization import Nexus, carpet_plot
1919
import SUAVE.Optimization.Package_Setups.scipy_setup as scipy_setup
2020
from SUAVE.Optimization.Surrogate_Optimization import Surrogate_Optimization
21-
import VyPy
2221
import pyOpt
2322
# ----------------------------------------------------------------------
2423
# Run the whole thing

Solar_UAV_Optimization/Analyses.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ def base(vehicle):
4444
# ------------------------------------------------------------------
4545
# Weights
4646
# ------------------------------------------------------------------
47-
weights = SUAVE.Analyses.Weights.Weights()
48-
weights.settings.empty_weight_method = SUAVE.Methods.Weights.Correlations.UAV.Empty
47+
weights = SUAVE.Analyses.Weights.Weights_UAV()
48+
weights.settings.empty_weight_method = SUAVE.Methods.Weights.Correlations.UAV.empty
4949
weights.vehicle = vehicle
5050
analyses.append(weights)
5151

tut_concorde.py

Lines changed: 161 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def base_analysis(vehicle):
107107

108108
# ------------------------------------------------------------------
109109
# Weights
110-
weights = SUAVE.Analyses.Weights.Weights()
110+
weights = SUAVE.Analyses.Weights.Weights_Tube_Wing()
111111
weights.vehicle = vehicle
112112
analyses.append(weights)
113113

@@ -184,10 +184,10 @@ def vehicle_setup(source_ratio=1.):
184184
wing.tag = 'main_wing'
185185

186186
wing.aspect_ratio = 1.83
187-
wing.sweeps.quarter_chord = 59.5 * Units.deg
187+
wing.sweeps.quarter_chord = 59.5 * Units.deg
188188
wing.thickness_to_chord = 0.03
189189
wing.taper = 0.
190-
wing.span_efficiency = 0.74
190+
wing.span_efficiency = .8
191191

192192
wing.spans.projected = 25.6
193193

@@ -197,6 +197,9 @@ def vehicle_setup(source_ratio=1.):
197197
wing.chords.mean_aerodynamic = 18.4
198198

199199
wing.areas.reference = 358.25
200+
wing.areas.wetted = 653. - 12.*2.4*2 # 2.4 is engine area on one side
201+
wing.areas.exposed = 326.5
202+
wing.areas.affected = .6*wing.areas.reference
200203

201204
wing.twists.root = 0.0 * Units.degrees
202205
wing.twists.tip = 0.0 * Units.degrees
@@ -212,6 +215,61 @@ def vehicle_setup(source_ratio=1.):
212215

213216
wing.dynamic_pressure_ratio = 1.0
214217

218+
wing_airfoil = SUAVE.Components.Wings.Airfoils.Airfoil()
219+
wing_airfoil.coordinate_file = 'NACA65-203.dat'
220+
221+
wing.append_airfoil(wing_airfoil)
222+
223+
# set root sweep with inner section
224+
segment = SUAVE.Components.Wings.Segment()
225+
segment.tag = 'section_1'
226+
segment.percent_span_location = 0.
227+
segment.twist = 0. * Units.deg
228+
segment.root_chord_percent = 33.8/33.8
229+
segment.dihedral_outboard = 0.
230+
segment.sweeps.quarter_chord = 67. * Units.deg
231+
segment.vsp_mesh = Data()
232+
segment.vsp_mesh.inner_radius = 1./source_ratio
233+
segment.vsp_mesh.outer_radius = 1./source_ratio
234+
segment.vsp_mesh.inner_length = .044/source_ratio
235+
segment.vsp_mesh.outer_length = .044/source_ratio
236+
segment.vsp_mesh.matching_TE = False
237+
segment.append_airfoil(wing_airfoil)
238+
wing.Segments.append(segment)
239+
240+
# set mid section start point
241+
segment = SUAVE.Components.Wings.Segment()
242+
segment.tag = 'section_2'
243+
segment.percent_span_location = 6.15/(25.6/2) + wing.Segments['section_1'].percent_span_location
244+
segment.twist = 0. * Units.deg
245+
segment.root_chord_percent = 13.8/33.8
246+
segment.dihedral_outboard = 0.
247+
segment.sweeps.quarter_chord = 48. * Units.deg
248+
segment.vsp_mesh = Data()
249+
segment.vsp_mesh.inner_radius = 1./source_ratio
250+
segment.vsp_mesh.outer_radius = .88/source_ratio
251+
segment.vsp_mesh.inner_length = .044/source_ratio
252+
segment.vsp_mesh.outer_length = .044/source_ratio
253+
segment.vsp_mesh.matching_TE = False
254+
segment.append_airfoil(wing_airfoil)
255+
wing.Segments.append(segment)
256+
257+
# set tip section start point
258+
segment = SUAVE.Components.Wings.Segment()
259+
segment.tag = 'section_3'
260+
segment.percent_span_location = 5.95/(25.6/2) + wing.Segments['section_2'].percent_span_location
261+
segment.twist = 0. * Units.deg
262+
segment.root_chord_percent = 4.4/33.8
263+
segment.dihedral_outboard = 0.
264+
segment.sweeps.quarter_chord = 71. * Units.deg
265+
segment.vsp_mesh = Data()
266+
segment.vsp_mesh.inner_radius = .88/source_ratio
267+
segment.vsp_mesh.outer_radius = .22/source_ratio
268+
segment.vsp_mesh.inner_length = .044/source_ratio
269+
segment.vsp_mesh.outer_length = .011/source_ratio
270+
segment.append_airfoil(wing_airfoil)
271+
wing.Segments.append(segment)
272+
215273
# add to vehicle
216274
vehicle.append_component(wing)
217275

@@ -237,6 +295,9 @@ def vehicle_setup(source_ratio=1.):
237295
wing.chords.mean_aerodynamic = 8.66
238296

239297
wing.areas.reference = 33.91 #
298+
wing.areas.wetted = 76.
299+
wing.areas.exposed = 38.
300+
wing.areas.affected = 33.91
240301

241302
wing.twists.root = 0.0 * Units.degrees
242303
wing.twists.tip = 0.0 * Units.degrees
@@ -251,6 +312,43 @@ def vehicle_setup(source_ratio=1.):
251312

252313
wing.dynamic_pressure_ratio = 1.0
253314

315+
tail_airfoil = SUAVE.Components.Wings.Airfoils.Airfoil()
316+
tail_airfoil.coordinate_file = 'supertail_refined.dat'
317+
318+
wing.append_airfoil(tail_airfoil)
319+
320+
# set root sweep with inner section
321+
segment = SUAVE.Components.Wings.Segment()
322+
segment.tag = 'section_1'
323+
segment.percent_span_location = 0.0
324+
segment.twist = 0. * Units.deg
325+
segment.root_chord_percent = 14.5/14.5
326+
segment.dihedral_outboard = 0.
327+
segment.sweeps.quarter_chord = 63. * Units.deg
328+
segment.vsp_mesh = Data()
329+
segment.vsp_mesh.inner_radius = 2.9/source_ratio
330+
segment.vsp_mesh.outer_radius = 1.5/source_ratio
331+
segment.vsp_mesh.inner_length = .044/source_ratio
332+
segment.vsp_mesh.outer_length = .044/source_ratio
333+
segment.append_airfoil(tail_airfoil)
334+
wing.Segments.append(segment)
335+
336+
# set mid section start point
337+
segment = SUAVE.Components.Wings.Segment()
338+
segment.tag = 'section_2'
339+
segment.percent_span_location = 2.4/(6.0) + wing.Segments['section_1'].percent_span_location
340+
segment.twist = 0. * Units.deg
341+
segment.root_chord_percent = 7.5/14.5
342+
segment.dihedral_outboard = 0.
343+
segment.sweeps.quarter_chord = 40. * Units.deg
344+
segment.vsp_mesh = Data()
345+
segment.vsp_mesh.inner_radius = 1.5/source_ratio
346+
segment.vsp_mesh.outer_radius = .54/source_ratio
347+
segment.vsp_mesh.inner_length = .044/source_ratio
348+
segment.vsp_mesh.outer_length = .027/source_ratio
349+
segment.append_airfoil(tail_airfoil)
350+
wing.Segments.append(segment)
351+
254352
# add to vehicle
255353
vehicle.append_component(wing)
256354

@@ -279,13 +377,13 @@ def vehicle_setup(source_ratio=1.):
279377
fuselage.heights.at_wing_root_quarter_chord = 3.32 #
280378
fuselage.heights.at_three_quarters_length = 3.32 #
281379

282-
fuselage.areas.wetted = 523.
283-
fuselage.areas.front_projected = 7.55
380+
fuselage.areas.wetted = 447.
381+
fuselage.areas.front_projected = 11.9
284382

285383

286384
fuselage.effective_diameter = 3.1
287385

288-
fuselage.differential_pressure = 7.4e4 * Units.pascal # Maximum differential pressure
386+
fuselage.differential_pressure = 7.4e4 * Units.pascal # Maximum differential pressure
289387

290388
# add to vehicle
291389
vehicle.append_component(fuselage)
@@ -301,10 +399,12 @@ def vehicle_setup(source_ratio=1.):
301399

302400
# setup
303401
turbojet.number_of_engines = 4.0
304-
turbojet.engine_length = 12.5
305-
turbojet.nacelle_diameter = 1.60
402+
turbojet.engine_length = 12.0
403+
turbojet.nacelle_diameter = 1.3
404+
turbojet.inlet_diameter = 1.1
306405
turbojet.areas = Data()
307-
turbojet.areas.wetted = 12.5*1.6*8. # essentially rectangles attached to the wings
406+
turbojet.areas.wetted = 12.5*4.7*2. # 4.7 is outer perimeter on one side
407+
turbojet.origin = [[37.,6.,-1.3],[37.,5.3,-1.3],[37.,-5.3,-1.3],[37.,-6.,-1.3]]
308408

309409
# working fluid
310410
turbojet.working_fluid = SUAVE.Attributes.Gases.Air()
@@ -430,17 +530,22 @@ def vehicle_setup(source_ratio=1.):
430530
# add to network
431531
turbojet.append(nozzle)
432532

533+
# ------------------------------------------------------------------
534+
# Component 9 - Divergening Nozzle
535+
536+
537+
433538

434539
# ------------------------------------------------------------------
435-
#Component 9 : thrust (to compute the thrust)
540+
#Component 10 : thrust (to compute the thrust)
436541
thrust = SUAVE.Components.Energy.Processes.Thrust()
437542
thrust.tag ='compute_thrust'
438543

439-
# total design thrust (includes all the engines)
544+
#total design thrust (includes all the engines)
440545
thrust.total_design = 4*140000. * Units.N #Newtons
441546

442547
# Note: Sizing builds the propulsor. It does not actually set the size of the turbojet
443-
# Design sizing conditions
548+
#design sizing conditions
444549
altitude = 0.0*Units.ft
445550
mach_number = 0.01
446551
isa_deviation = 0.
@@ -467,18 +572,58 @@ def vehicle_setup(source_ratio=1.):
467572
# ---------------------------------------------------------------------
468573

469574
def configs_setup(vehicle):
470-
575+
471576
# ------------------------------------------------------------------
472577
# Initialize Configurations
473578
# ------------------------------------------------------------------
474-
579+
475580
configs = SUAVE.Components.Configs.Config.Container()
476-
581+
477582
base_config = SUAVE.Components.Configs.Config(vehicle)
478583
base_config.tag = 'base'
479-
configs.append(base_config)
584+
configs.append(base_config)
585+
586+
# ------------------------------------------------------------------
587+
# Cruise Configuration
588+
# ------------------------------------------------------------------
589+
590+
config = SUAVE.Components.Configs.Config(base_config)
591+
config.tag = 'cruise'
592+
593+
configs.append(config)
594+
595+
596+
# ------------------------------------------------------------------
597+
# Takeoff Configuration
598+
# ------------------------------------------------------------------
599+
600+
config = SUAVE.Components.Configs.Config(base_config)
601+
config.tag = 'takeoff'
602+
603+
config.wings['main_wing'].flaps.angle = 0. * Units.deg
604+
config.wings['main_wing'].slats.angle = 0. * Units.deg
605+
606+
config.V2_VS_ratio = 1.21
607+
config.maximum_lift_coefficient = 2.
608+
609+
configs.append(config)
610+
611+
612+
# ------------------------------------------------------------------
613+
# Landing Configuration
614+
# ------------------------------------------------------------------
480615

616+
config = SUAVE.Components.Configs.Config(base_config)
617+
config.tag = 'landing'
618+
619+
config.wings['main_wing'].flaps_angle = 0. * Units.deg
620+
config.wings['main_wing'].slats_angle = 0. * Units.deg
481621

622+
config.Vref_VS_ratio = 1.23
623+
config.maximum_lift_coefficient = 2.
624+
625+
configs.append(config)
626+
482627
# done!
483628
return configs
484629

tut_lithium_air_jet_sizing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def base_analysis(vehicle):
179179

180180
# ------------------------------------------------------------------
181181
# Weights
182-
weights = SUAVE.Analyses.Weights.Weights()
182+
weights = SUAVE.Analyses.Weights.Weights_Tube_Wing()
183183
weights.settings.empty_weight_method= \
184184
SUAVE.Methods.Weights.Correlations.Tube_Wing.empty
185185
weights.vehicle = vehicle

0 commit comments

Comments
 (0)