def vehicle_setup(): # ------------------------------------------------------------------ # Initialize the Vehicle # ------------------------------------------------------------------ vehicle = SUAVE.Vehicle() vehicle.tag = 'Boeing_BWB_450' # ------------------------------------------------------------------ # Vehicle-level Properties # ------------------------------------------------------------------ # mass properties vehicle.mass_properties.max_takeoff = 823000. * Units.lb vehicle.mass_properties.takeoff = 823000. * Units.lb vehicle.mass_properties.max_zero_fuel = 0.9 * vehicle.mass_properties.max_takeoff vehicle.mass_properties.cargo = 00. * Units.kilogram # envelope properties vehicle.envelope.ultimate_load = 2.5 vehicle.envelope.limit_load = 1.5 # basic parameters vehicle.reference_area = 7840. * 2 * Units.feet**2 vehicle.passengers = 450. vehicle.systems.control = "fully powered" vehicle.systems.accessories = "medium range" # ------------------------------------------------------------------ # Main Wing # ------------------------------------------------------------------ wing = SUAVE.Components.Wings.Main_Wing() wing.tag = 'main_wing' wing.aspect_ratio = 289.**2 / (7840. * 2) wing.thickness_to_chord = 0.15 wing.taper = 0.0138 wing.spans.projected = 289.0 * Units.feet wing.chords.root = 145.0 * Units.feet wing.chords.tip = 3.5 * Units.feet wing.chords.mean_aerodynamic = 80. * Units.feet wing.areas.reference = 7840. * 2 * Units.feet**2 wing.sweeps.quarter_chord = 33. * Units.degrees wing.twists.root = 0.0 * Units.degrees wing.twists.tip = 0.0 * Units.degrees wing.dihedral = 2.5 * Units.degrees wing.origin = [[0.,0.,0]] wing.aerodynamic_center = [0,0,0] wing.vertical = False wing.symmetric = True wing.high_lift = True wing.dynamic_pressure_ratio = 1.0 segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_1' segment.percent_span_location = 0.0 segment.twist = 0. * Units.deg segment.root_chord_percent = 1. segment.dihedral_outboard = 0. * Units.degrees segment.sweeps.quarter_chord = 40.0 * Units.degrees segment.thickness_to_chord = 0.165 segment.vsp_mesh = Data() segment.vsp_mesh.inner_radius = 4. segment.vsp_mesh.outer_radius = 4. segment.vsp_mesh.inner_length = .14 segment.vsp_mesh.outer_length = .14 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_2' segment.percent_span_location = 0.052 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.921 segment.dihedral_outboard = 0. * Units.degrees segment.sweeps.quarter_chord = 52.5 * Units.degrees segment.thickness_to_chord = 0.167 segment.vsp_mesh = Data() segment.vsp_mesh.inner_radius = 4. segment.vsp_mesh.outer_radius = 4. segment.vsp_mesh.inner_length = .14 segment.vsp_mesh.outer_length = .14 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_3' segment.percent_span_location = 0.138 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.76 segment.dihedral_outboard = 1.85 * Units.degrees segment.sweeps.quarter_chord = 36.9 * Units.degrees segment.thickness_to_chord = 0.171 segment.vsp_mesh = Data() segment.vsp_mesh.inner_radius = 4. segment.vsp_mesh.outer_radius = 4. segment.vsp_mesh.inner_length = .14 segment.vsp_mesh.outer_length = .14 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_4' segment.percent_span_location = 0.221 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.624 segment.dihedral_outboard = 1.85 * Units.degrees segment.sweeps.quarter_chord = 30.4 * Units.degrees segment.thickness_to_chord = 0.175 segment.vsp_mesh = Data() segment.vsp_mesh.inner_radius = 4. segment.vsp_mesh.outer_radius = 2.8 segment.vsp_mesh.inner_length = .14 segment.vsp_mesh.outer_length = .14 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_5' segment.percent_span_location = 0.457 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.313 segment.dihedral_outboard = 1.85 * Units.degrees segment.sweeps.quarter_chord = 30.85 * Units.degrees segment.thickness_to_chord = 0.118 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_6' segment.percent_span_location = 0.568 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.197 segment.dihedral_outboard = 1.85 * Units.degrees segment.sweeps.quarter_chord = 34.3 * Units.degrees segment.thickness_to_chord = 0.10 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_7' segment.percent_span_location = 0.97 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.086 segment.dihedral_outboard = 73. * Units.degrees segment.sweeps.quarter_chord = 55. * Units.degrees segment.thickness_to_chord = 0.10 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'tip' segment.percent_span_location = 1 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.0241 segment.dihedral_outboard = 0. * Units.degrees segment.sweeps.quarter_chord = 0. * Units.degrees segment.thickness_to_chord = 0.10 wing.Segments.append(segment) # add to vehicle vehicle.append_component(wing) # ------------------------------------------------------------------ # Turbofan Network # ------------------------------------------------------------------ #instantiate the gas turbine network turbofan = SUAVE.Components.Energy.Networks.Turbofan() turbofan.tag = 'turbofan1' # setup turbofan.number_of_engines = 3.0 turbofan.bypass_ratio = 8.1 turbofan.engine_length = 289. * Units.inches turbofan.nacelle_diameter = 3.96 * Units.meters #turbofan.cooling_ratio = 1.0 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]] # working fluid turbofan.working_fluid = SUAVE.Attributes.Gases.Air() # ------------------------------------------------------------------ # Component 1 - Ram # to convert freestream static to stagnation quantities # instantiate ram = SUAVE.Components.Energy.Converters.Ram() ram.tag = 'ram' # add to the network turbofan.append(ram) # ------------------------------------------------------------------ # Component 2 - Inlet Nozzle # instantiate inlet_nozzle = SUAVE.Components.Energy.Converters.Compression_Nozzle() inlet_nozzle.tag = 'inlet_nozzle' # setup inlet_nozzle.polytropic_efficiency = 1.0 inlet_nozzle.pressure_ratio = 1.0 # add to network turbofan.append(inlet_nozzle) # ------------------------------------------------------------------ # Component 3 - Low Pressure Compressor # instantiate compressor = SUAVE.Components.Energy.Converters.Compressor() compressor.tag = 'low_pressure_compressor' # setup compressor.polytropic_efficiency = 0.91 compressor.pressure_ratio = 1.1 # add to network turbofan.append(compressor) # ------------------------------------------------------------------ # Component 4 - High Pressure Compressor # instantiate compressor = SUAVE.Components.Energy.Converters.Compressor() compressor.tag = 'high_pressure_compressor' # setup compressor.polytropic_efficiency = 0.91 compressor.pressure_ratio = 23.0 #compressor.hub_to_tip_ratio = 0.325 # add to network turbofan.append(compressor) # ------------------------------------------------------------------ # Component 5 - Low Pressure Turbine # instantiate turbine = SUAVE.Components.Energy.Converters.Turbine() turbine.tag='low_pressure_turbine' # setup turbine.mechanical_efficiency = 0.99 turbine.polytropic_efficiency = 0.93 # add to network turbofan.append(turbine) # ------------------------------------------------------------------ # Component 6 - High Pressure Turbine # instantiate turbine = SUAVE.Components.Energy.Converters.Turbine() turbine.tag='high_pressure_turbine' # setup turbine.mechanical_efficiency = 0.99 turbine.polytropic_efficiency = 0.93 # add to network turbofan.append(turbine) # ------------------------------------------------------------------ # Component 7 - Combustor # instantiate combustor = SUAVE.Components.Energy.Converters.Combustor() combustor.tag = 'combustor' # setup combustor.efficiency = 1.0 combustor.alphac = 1.0 combustor.turbine_inlet_temperature = 1592. * Units.kelvin combustor.pressure_ratio = 0.95 combustor.fuel_data = SUAVE.Attributes.Propellants.Jet_A() # add to network turbofan.append(combustor) # ------------------------------------------------------------------ # Component 8 - Core Nozzle # instantiate nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() nozzle.tag = 'core_nozzle' # setup nozzle.polytropic_efficiency = 0.95 nozzle.pressure_ratio = 0.99 # add to network turbofan.append(nozzle) # ------------------------------------------------------------------ # Component 9 - Fan Nozzle # instantiate nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() nozzle.tag = 'fan_nozzle' # setup nozzle.polytropic_efficiency = 0.95 nozzle.pressure_ratio = 0.99 # add to network turbofan.append(nozzle) # ------------------------------------------------------------------ # Component 10 - Fan # instantiate fan = SUAVE.Components.Energy.Converters.Fan() fan.tag = 'fan' # setup fan.polytropic_efficiency = 0.93 fan.pressure_ratio = 1.58 # add to network turbofan.append(fan) # ------------------------------------------------------------------ #Component 10 : thrust (to compute the thrust) thrust = SUAVE.Components.Energy.Processes.Thrust() thrust.tag ='compute_thrust' #total design thrust (includes all the engines) thrust.total_design = 2.0*512000 * Units.N thrust.bypass_ratio = 8.4 #design sizing conditions altitude = 0. * Units.km mach_number = 0.01 isa_deviation = 0. # add to network turbofan.thrust = thrust #size the turbofan turbofan_sizing(turbofan,mach_number,altitude) #turbofan.size(mach_number,altitude) #computing the engine length and diameter compute_turbofan_geometry(turbofan,None) vehicle.append_component(turbofan) # ------------------------------------------------------------------ # Vehicle Definition Complete # ------------------------------------------------------------------ return vehicle
def engine_caluclations(altitude, bypass, mach_number, num_engine, thrust_total): # initialize the gas turbine network gt_engine = Turbofan() gt_engine.tag = 'turbofan' gt_engine.number_of_engines = num_engine gt_engine.bypass_ratio = bypass # gt_engine.engine_length = 5.2 gt_engine.nacelle_diameter = 3.5 # set the working fluid for the network working_fluid = SUAVE.Attributes.Gases.Air # add working fluid to the network gt_engine.working_fluid = working_fluid # Component 1 : ram, to convert freestream static to stagnation quantities ram = SUAVE.Components.Energy.Converters.Ram() ram.tag = 'ram' # add ram to the network gt_engine.ram = ram # Component 2 : inlet nozzle inlet_nozzle = SUAVE.Components.Energy.Converters.Compression_Nozzle() inlet_nozzle.tag = 'inlet nozzle' inlet_nozzle.polytropic_efficiency = 0.98 inlet_nozzle.pressure_ratio = 0.98 # turbofan.fan_nozzle_pressure_ratio = 0.98 #0.98 # add inlet nozzle to the network gt_engine.inlet_nozzle = inlet_nozzle # Component 3 :low pressure compressor low_pressure_compressor = SUAVE.Components.Energy.Converters.Compressor() low_pressure_compressor.tag = 'lpc' low_pressure_compressor.polytropic_efficiency = 0.90 low_pressure_compressor.pressure_ratio = 1.5 # add low pressure compressor to the network gt_engine.low_pressure_compressor = low_pressure_compressor # Component 4 :high pressure compressor high_pressure_compressor = SUAVE.Components.Energy.Converters.Compressor() high_pressure_compressor.tag = 'hpc' high_pressure_compressor.polytropic_efficiency = 0.90 # FIXME high_pressure_compressor.pressure_ratio = 14 # add the high pressure compressor to the network gt_engine.high_pressure_compressor = high_pressure_compressor # Component 5 :low pressure turbine low_pressure_turbine = Turbine_saga.Turbine() low_pressure_turbine.tag = 'lpt' low_pressure_turbine.mechanical_efficiency = 0.99 low_pressure_turbine.polytropic_efficiency = 0.89 # add low pressure turbine to the network gt_engine.low_pressure_turbine = low_pressure_turbine # Component 5 :high pressure turbine high_pressure_turbine = Turbine_saga.Turbine() high_pressure_turbine.tag = 'hpt' high_pressure_turbine.mechanical_efficiency = 0.99 high_pressure_turbine.polytropic_efficiency = 0.89 # add the high pressure turbine to the network gt_engine.high_pressure_turbine = high_pressure_turbine # Component 6 :combustor combustor = SUAVE.Components.Energy.Converters.Combustor() combustor.tag = 'Comb' combustor.efficiency = 0.995 combustor.alphac = 1.0 combustor.turbine_inlet_temperature = 1450 combustor.pressure_ratio = 0.96 combustor.fuel_data = SUAVE.Attributes.Propellants.Jet_A() # combustor.fuel_data = SUAVE.Attributes.Propellants.Jet_A() # add the combustor to the network gt_engine.combustor = combustor # Component 7 :core nozzle core_nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() core_nozzle.tag = 'core nozzle' core_nozzle.polytropic_efficiency = 0.95 core_nozzle.pressure_ratio = 0.99 # add the core nozzle to the network gt_engine.core_nozzle = core_nozzle # Component 8 :fan nozzle fan_nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() fan_nozzle.tag = 'fan nozzle' fan_nozzle.polytropic_efficiency = 0.95 fan_nozzle.pressure_ratio = 0.99 # add the fan nozzle to the network gt_engine.fan_nozzle = fan_nozzle # Component 9 : fan fan = SUAVE.Components.Energy.Converters.Fan() fan.tag = 'fan' fan.polytropic_efficiency = 0.89 fan.pressure_ratio = 1.5 # add the fan to the network gt_engine.fan = fan # Component 10 : Payload power draw generator = Generator() generator.tag = 'generator' generator.power_draw = 1 / gt_engine.number_of_engines gt_engine.generator = generator # Engine setup for noise module gt_engine.core_nozzle_diameter = 0.92 gt_engine.fan_nozzle_diameter = 1.659 gt_engine.engine_height = 1.35 # Engine centerline heigh above the ground plane gt_engine.exa = 1 # distance from fan face to fan exit/ fan diameter) gt_engine.plug_diameter = 0.1 # dimater of the engine plug gt_engine.geometry_xe = 1. # Geometry information for the installation effects function gt_engine.geometry_ye = 1. # Geometry information for the installation effects function gt_engine.geometry_Ce = 2. # Geometry information for the installation effects function # Define OPR OPR = fan.pressure_ratio * high_pressure_compressor.pressure_ratio * low_pressure_compressor.pressure_ratio # Component 10 : thrust (to compute the thrust) thrust = SUAVE.Components.Energy.Processes.Thrust() thrust.tag = 'compute_thrust' # total design thrust (includes all the engines) thrust.total_design = thrust_total # should be just a pointer not a number # add thrust to the network gt_engine.thrust = thrust gt_engine.OPR = OPR # print thrust # size the turbofan turbofan_sizing(gt_engine, mach_number, altitude) compute_turbofan_geometry(gt_engine, None) return gt_engine
def engine_caluclations(altitude, bypass, mach_number, num_engine, thrust_total): # initialize the gas turbine network gt_engine = Turbofan() gt_engine.tag = 'turbofan' gt_engine.number_of_engines = num_engine gt_engine.bypass_ratio = bypass # gt_engine.engine_length = 5.2 gt_engine.nacelle_diameter = 3.5 # set the working fluid for the network working_fluid = SUAVE.Attributes.Gases.Air # add working fluid to the network gt_engine.working_fluid = working_fluid # Component 1 : ram, to convert freestream static to stagnation quantities ram = SUAVE.Components.Energy.Converters.Ram() ram.tag = 'ram' # add ram to the network gt_engine.ram = ram # Component 2 : inlet nozzle inlet_nozzle = SUAVE.Components.Energy.Converters.Compression_Nozzle() inlet_nozzle.tag = 'inlet nozzle' inlet_nozzle.polytropic_efficiency = 0.98 inlet_nozzle.pressure_ratio = 0.98 # turbofan.fan_nozzle_pressure_ratio = 0.98 #0.98 # add inlet nozzle to the network gt_engine.inlet_nozzle = inlet_nozzle # Component 3 :low pressure compressor low_pressure_compressor = SUAVE.Components.Energy.Converters.Compressor() low_pressure_compressor.tag = 'lpc' low_pressure_compressor.polytropic_efficiency = 0.90 low_pressure_compressor.pressure_ratio = 1.5 # add low pressure compressor to the network gt_engine.low_pressure_compressor = low_pressure_compressor # Component 4 :high pressure compressor high_pressure_compressor = SUAVE.Components.Energy.Converters.Compressor() high_pressure_compressor.tag = 'hpc' high_pressure_compressor.polytropic_efficiency = 0.90 # FIXME high_pressure_compressor.pressure_ratio = 14 # add the high pressure compressor to the network gt_engine.high_pressure_compressor = high_pressure_compressor # Component 5 :low pressure turbine low_pressure_turbine = Turbine_saga.Turbine() low_pressure_turbine.tag = 'lpt' low_pressure_turbine.mechanical_efficiency = 0.99 low_pressure_turbine.polytropic_efficiency = 0.89 # add low pressure turbine to the network gt_engine.low_pressure_turbine = low_pressure_turbine # Component 5 :high pressure turbine high_pressure_turbine = Turbine_saga.Turbine() high_pressure_turbine.tag = 'hpt' high_pressure_turbine.mechanical_efficiency = 0.99 high_pressure_turbine.polytropic_efficiency = 0.89 # add the high pressure turbine to the network gt_engine.high_pressure_turbine = high_pressure_turbine # Component 6 :combustor combustor = SUAVE.Components.Energy.Converters.Combustor() combustor.tag = 'Comb' combustor.efficiency = 0.995 combustor.alphac = 1.0 combustor.turbine_inlet_temperature = 1450 combustor.pressure_ratio = 0.96 combustor.fuel_data = SUAVE.Attributes.Propellants.Jet_A() # combustor.fuel_data = SUAVE.Attributes.Propellants.Jet_A() # add the combustor to the network gt_engine.combustor = combustor # Component 7 :core nozzle core_nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() core_nozzle.tag = 'core nozzle' core_nozzle.polytropic_efficiency = 0.95 core_nozzle.pressure_ratio = 0.99 # add the core nozzle to the network gt_engine.core_nozzle = core_nozzle # Component 8 :fan nozzle fan_nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() fan_nozzle.tag = 'fan nozzle' fan_nozzle.polytropic_efficiency = 0.95 fan_nozzle.pressure_ratio = 0.99 # add the fan nozzle to the network gt_engine.fan_nozzle = fan_nozzle # Component 9 : fan fan = SUAVE.Components.Energy.Converters.Fan() fan.tag = 'fan' fan.polytropic_efficiency = 0.89 fan.pressure_ratio = 1.5 # add the fan to the network gt_engine.fan = fan # Component 10 : Payload power draw generator = Generator() generator.tag = 'generator' generator.power_draw = 1 / gt_engine.number_of_engines gt_engine.generator = generator # Engine setup for noise module gt_engine.core_nozzle_diameter = 0.92 gt_engine.fan_nozzle_diameter = 1.659 gt_engine.engine_height = 1.35 # Engine centerline heigh above the ground plane gt_engine.exa = 1 # distance from fan face to fan exit/ fan diameter) gt_engine.plug_diameter = 0.1 # dimater of the engine plug gt_engine.geometry_xe = 1. # Geometry information for the installation effects function gt_engine.geometry_ye = 1. # Geometry information for the installation effects function gt_engine.geometry_Ce = 2. # Geometry information for the installation effects function # Define OPR OPR = fan.pressure_ratio * high_pressure_compressor.pressure_ratio * low_pressure_compressor.pressure_ratio # Component 10 : thrust (to compute the thrust) thrust = SUAVE.Components.Energy.Processes.Thrust() thrust.tag = 'compute_thrust' # total design thrust (includes all the engines) thrust.total_design = thrust_total # should be just a pointer not a number # add thrust to the network gt_engine.thrust = thrust gt_engine.OPR = OPR # print thrust # size the turbofan turbofan_sizing(gt_engine, mach_number, altitude) compute_turbofan_geometry(gt_engine, None) return gt_engine
def vehicle_setup(): # ------------------------------------------------------------------ # Initialize the Vehicle # ------------------------------------------------------------------ vehicle = SUAVE.Vehicle() vehicle.tag = 'Boeing_BWB_450' # ------------------------------------------------------------------ # Vehicle-level Properties # ------------------------------------------------------------------ # mass properties vehicle.mass_properties.max_takeoff = 823000. * Units.lb vehicle.mass_properties.takeoff = 823000. * Units.lb vehicle.mass_properties.max_zero_fuel = 0.9 * vehicle.mass_properties.max_takeoff vehicle.mass_properties.cargo = 0. * Units.kilogram # envelope properties vehicle.envelope.ultimate_load = 2.5 vehicle.envelope.limit_load = 1.5 # basic parameters vehicle.reference_area = 15680. * Units.feet**2 vehicle.passengers = 450. vehicle.systems.control = "fully powered" vehicle.systems.accessories = "medium range" # ------------------------------------------------------------------ # Main Wing # ------------------------------------------------------------------ wing = SUAVE.Components.Wings.Main_Wing() wing.tag = 'main_wing' wing.aspect_ratio = 289.**2 / (7840. * 2) wing.thickness_to_chord = 0.15 wing.taper = 0.0138 wing.span_efficiency = 0.95 wing.spans.projected = 289.0 * Units.feet wing.chords.root = 145.0 * Units.feet wing.chords.tip = 3.5 * Units.feet wing.chords.mean_aerodynamic = 86. * Units.feet wing.areas.reference = 15680. * Units.feet**2 wing.sweeps.quarter_chord = 33. * Units.degrees wing.twists.root = 0.0 * Units.degrees wing.twists.tip = 0.0 * Units.degrees wing.dihedral = 2.5 * Units.degrees wing.origin = [0.,0.,0] wing.aerodynamic_center = [0,0,0] wing.vertical = False wing.symmetric = True wing.high_lift = True wing.dynamic_pressure_ratio = 1.0 segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_1' segment.percent_span_location = 0.0 segment.twist = 0. * Units.deg segment.root_chord_percent = 1. segment.dihedral_outboard = 0. * Units.degrees segment.sweeps.quarter_chord = 30.0 * Units.degrees segment.thickness_to_chord = 0.165 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_2' segment.percent_span_location = 0.052 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.921 segment.dihedral_outboard = 0. * Units.degrees segment.sweeps.quarter_chord = 52.5 * Units.degrees segment.thickness_to_chord = 0.167 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_3' segment.percent_span_location = 0.138 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.76 segment.dihedral_outboard = 1.85 * Units.degrees segment.sweeps.quarter_chord = 36.9 * Units.degrees segment.thickness_to_chord = 0.171 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_4' segment.percent_span_location = 0.221 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.624 segment.dihedral_outboard = 1.85 * Units.degrees segment.sweeps.quarter_chord = 30.4 * Units.degrees segment.thickness_to_chord = 0.175 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_5' segment.percent_span_location = 0.457 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.313 segment.dihedral_outboard = 1.85 * Units.degrees segment.sweeps.quarter_chord = 30.85 * Units.degrees segment.thickness_to_chord = 0.118 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_6' segment.percent_span_location = 0.568 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.197 segment.dihedral_outboard = 1.85 * Units.degrees segment.sweeps.quarter_chord = 34.3 * Units.degrees segment.thickness_to_chord = 0.10 wing.Segments.append(segment) segment = SUAVE.Components.Wings.Segment() segment.tag = 'section_7' segment.percent_span_location = 0.97 segment.twist = 0. * Units.deg segment.root_chord_percent = 0.086 segment.dihedral_outboard = 73. * Units.degrees segment.sweeps.quarter_chord = 55. * Units.degrees segment.thickness_to_chord = 0.10 wing.Segments.append(segment) # add to vehicle vehicle.append_component(wing) # ------------------------------------------------------------------ # Turbofan Network # ------------------------------------------------------------------ #instantiate the gas turbine network turbofan = SUAVE.Components.Energy.Networks.Turbofan() turbofan.tag = 'turbofan1' # setup turbofan.number_of_engines = 3.0 turbofan.bypass_ratio = 8.1 turbofan.engine_length = 289. * Units.inches turbofan.nacelle_diameter = 3.96 * Units.meters 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]] # working fluid turbofan.working_fluid = SUAVE.Attributes.Gases.Air() # ------------------------------------------------------------------ # Component 1 - Ram # to convert freestream static to stagnation quantities # instantiate ram = SUAVE.Components.Energy.Converters.Ram() ram.tag = 'ram' # add to the network turbofan.append(ram) # ------------------------------------------------------------------ # Component 2 - Inlet Nozzle # instantiate inlet_nozzle = SUAVE.Components.Energy.Converters.Compression_Nozzle() inlet_nozzle.tag = 'inlet_nozzle' # setup inlet_nozzle.polytropic_efficiency = 1.0 inlet_nozzle.pressure_ratio = 1.0 # add to network turbofan.append(inlet_nozzle) # ------------------------------------------------------------------ # Component 3 - Low Pressure Compressor # instantiate compressor = SUAVE.Components.Energy.Converters.Compressor() compressor.tag = 'low_pressure_compressor' # setup compressor.polytropic_efficiency = 0.91 compressor.pressure_ratio = 1.1 # add to network turbofan.append(compressor) # ------------------------------------------------------------------ # Component 4 - High Pressure Compressor # instantiate compressor = SUAVE.Components.Energy.Converters.Compressor() compressor.tag = 'high_pressure_compressor' # setup compressor.polytropic_efficiency = 0.91 compressor.pressure_ratio = 23.0 #compressor.hub_to_tip_ratio = 0.325 # add to network turbofan.append(compressor) # ------------------------------------------------------------------ # Component 5 - Low Pressure Turbine # instantiate turbine = SUAVE.Components.Energy.Converters.Turbine() turbine.tag='low_pressure_turbine' # setup turbine.mechanical_efficiency = 0.99 turbine.polytropic_efficiency = 0.93 # add to network turbofan.append(turbine) # ------------------------------------------------------------------ # Component 6 - High Pressure Turbine # instantiate turbine = SUAVE.Components.Energy.Converters.Turbine() turbine.tag='high_pressure_turbine' # setup turbine.mechanical_efficiency = 0.99 turbine.polytropic_efficiency = 0.93 # add to network turbofan.append(turbine) # ------------------------------------------------------------------ # Component 7 - Combustor # instantiate combustor = SUAVE.Components.Energy.Converters.Combustor() combustor.tag = 'combustor' # setup combustor.efficiency = 1.0 combustor.alphac = 1.0 combustor.turbine_inlet_temperature = 1592. * Units.kelvin combustor.pressure_ratio = 0.95 combustor.fuel_data = SUAVE.Attributes.Propellants.Jet_A() # add to network turbofan.append(combustor) # ------------------------------------------------------------------ # Component 8 - Core Nozzle # instantiate nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() nozzle.tag = 'core_nozzle' # setup nozzle.polytropic_efficiency = 0.95 nozzle.pressure_ratio = 0.99 # add to network turbofan.append(nozzle) # ------------------------------------------------------------------ # Component 9 - Fan Nozzle # instantiate nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() nozzle.tag = 'fan_nozzle' # setup nozzle.polytropic_efficiency = 0.95 nozzle.pressure_ratio = 0.99 # add to network turbofan.append(nozzle) # ------------------------------------------------------------------ # Component 10 - Fan # instantiate fan = SUAVE.Components.Energy.Converters.Fan() fan.tag = 'fan' # setup fan.polytropic_efficiency = 0.93 fan.pressure_ratio = 1.58 #fan.hub_to_tip_ratio = 0.325 # add to network turbofan.append(fan) # ------------------------------------------------------------------ #Component 10 : thrust (to compute the thrust) thrust = SUAVE.Components.Energy.Processes.Thrust() thrust.tag ='compute_thrust' #total design thrust (includes all the engines) thrust.total_design = 3.0*512000 * Units.N thrust.bypass_ratio = 8.4 #design sizing conditions altitude = 0. * Units.km mach_number = 0.01 isa_deviation = 0. # add to network turbofan.thrust = thrust #size the turbofan turbofan_sizing(turbofan,mach_number,altitude) #computing the engine length and diameter compute_turbofan_geometry(turbofan,None) vehicle.append_component(turbofan) # ------------------------------------------------------------------ # Vehicle Definition Complete # ------------------------------------------------------------------ return vehicle
def vehicle_setup(): # ------------------------------------------------------------------ # Initialize the Vehicle # ------------------------------------------------------------------ vehicle = SUAVE.Vehicle() vehicle.tag = 'Boeing_737_800' # ------------------------------------------------------------------ # Vehicle-level Properties # ------------------------------------------------------------------ # mass properties vehicle.mass_properties.max_takeoff = 79015.8 # kg vehicle.mass_properties.takeoff = 79015.8 # kg vehicle.mass_properties.max_zero_fuel = 0.9 * vehicle.mass_properties.max_takeoff vehicle.mass_properties.cargo = 10000. * Units.kilogram # envelope properties vehicle.envelope.ultimate_load = 2.5 vehicle.envelope.limit_load = 1.5 # basic parameters vehicle.reference_area = 124.862 vehicle.passengers = 170 vehicle.systems.control = "fully powered" vehicle.systems.accessories = "medium range" # ------------------------------------------------------------------ # Main Wing # ------------------------------------------------------------------ wing = SUAVE.Components.Wings.Main_Wing() wing.tag = 'main_wing' wing.aspect_ratio = 10.18 # Not set wing.thickness_to_chord = 0.1 # Not set wing.taper = 0.1 wing.span_efficiency = 0.9 wing.spans.projected = 34.32 wing.chords.root = 7.760 * Units.meter wing.chords.tip = 0.782 * Units.meter wing.chords.mean_aerodynamic = 4.235 * Units.meter wing.areas.reference = 124.862 # Not set wing.sweeps.quarter_chord = 25. * Units.degrees wing.twists.root = 4.0 * Units.degrees wing.twists.tip = 0.0 * Units.degrees wing.dihedral = 2.5 * Units.degrees wing.origin = [13.61, 0, -1.27] wing.aerodynamic_center = [0, 0, 0] wing.vertical = False wing.symmetric = True wing.high_lift = True wing.dynamic_pressure_ratio = 1.0 # add to vehicle vehicle.append_component(wing) # ------------------------------------------------------------------ # Horizontal Stabilizer # ------------------------------------------------------------------ wing = SUAVE.Components.Wings.Wing() wing.tag = 'horizontal_stabilizer' wing.aspect_ratio = 6.16 # Not set wing.thickness_to_chord = 0.08 # Not set wing.taper = 0.2 wing.span_efficiency = 0.9 wing.spans.projected = 14.2 wing.chords.root = 4.70 wing.chords.tip = 0.955 wing.chords.mean_aerodynamic = 2.5 wing.areas.reference = 42.65 wing.twists.root = 0.0 * Units.degrees # Not set wing.twists.tip = 0.0 * Units.degrees # Not set wing.sweeps.quarter_chord = 40.0 * Units.degrees wing.origin = [32.83, 0, 1.14] wing.aerodynamic_center = [0, 0, 0] wing.dihedral = 8.63 * Units.degrees wing.vertical = False wing.symmetric = True wing.dynamic_pressure_ratio = 0.9 # add to vehicle vehicle.append_component(wing) # ------------------------------------------------------------------ # Vertical Stabilizer # ------------------------------------------------------------------ wing = SUAVE.Components.Wings.Wing() wing.tag = 'vertical_stabilizer' wing.aspect_ratio = 1.91 wing.sweeps.quarter_chord = 25. * Units.deg wing.thickness_to_chord = 0.08 wing.taper = 0.25 wing.span_efficiency = 0.9 wing.spans.projected = 7.77 wing.chords.root = 8.19 wing.chords.tip = 0.95 wing.chords.mean_aerodynamic = 4.0 wing.areas.reference = 27.316 wing.twists.root = 0.0 * Units.degrees wing.twists.tip = 0.0 * Units.degrees wing.origin = [28.79, 0, 1.54] wing.aerodynamic_center = [0, 0, 0] wing.vertical = True wing.symmetric = False wing.t_tail = False wing.dynamic_pressure_ratio = 1.0 # add to vehicle vehicle.append_component(wing) # ------------------------------------------------------------------ # Fuselage # ------------------------------------------------------------------ fuselage = SUAVE.Components.Fuselages.Fuselage() fuselage.tag = 'fuselage' fuselage.seats_abreast = 6 fuselage.seat_pitch = 1 fuselage.fineness.nose = 1.57 fuselage.fineness.tail = 3.2 fuselage.lengths.nose = 8.0 fuselage.lengths.tail = 12. fuselage.lengths.cabin = 28.85 fuselage.lengths.total = 38.02 fuselage.lengths.fore_space = 6. fuselage.lengths.aft_space = 5. fuselage.width = 3.76 fuselage.heights.maximum = 3.76 fuselage.heights.at_quarter_length = 3.76 fuselage.heights.at_three_quarters_length = 3.65 fuselage.heights.at_wing_root_quarter_chord = 3.76 fuselage.areas.side_projected = 142.1948 fuselage.areas.wetted = 446.718 fuselage.areas.front_projected = 12.57 fuselage.effective_diameter = 3.76 fuselage.differential_pressure = 5.0e4 * Units.pascal # Maximum differential pressure # add to vehicle vehicle.append_component(fuselage) # ------------------------------------------------------------------ # Turbofan Network # ------------------------------------------------------------------ #instantiate the gas turbine network turbofan = SUAVE.Components.Energy.Networks.Turbofan() turbofan.tag = 'turbofan' # setup turbofan.number_of_engines = 2.0 turbofan.bypass_ratio = 5.4 turbofan.engine_length = 4.1 turbofan.nacelle_diameter = 0.85 turbofan.origin = [[13.72, 4.86, -1.9], [13.72, -4.86, -1.9]] # working fluid turbofan.working_fluid = SUAVE.Attributes.Gases.Air() # ------------------------------------------------------------------ # Component 1 - Ram # to convert freestream static to stagnation quantities # instantiate ram = SUAVE.Components.Energy.Converters.Ram() ram.tag = 'ram' # add to the network turbofan.append(ram) # ------------------------------------------------------------------ # Component 2 - Inlet Nozzle # instantiate inlet_nozzle = SUAVE.Components.Energy.Converters.Compression_Nozzle() inlet_nozzle.tag = 'inlet_nozzle' # setup inlet_nozzle.polytropic_efficiency = 0.98 inlet_nozzle.pressure_ratio = 0.98 # add to network turbofan.append(inlet_nozzle) # ------------------------------------------------------------------ # Component 3 - Low Pressure Compressor # instantiate compressor = SUAVE.Components.Energy.Converters.Compressor() compressor.tag = 'low_pressure_compressor' # setup compressor.polytropic_efficiency = 0.91 compressor.pressure_ratio = 1.14 # add to network turbofan.append(compressor) # ------------------------------------------------------------------ # Component 4 - High Pressure Compressor # instantiate compressor = SUAVE.Components.Energy.Converters.Compressor() compressor.tag = 'high_pressure_compressor' # setup compressor.polytropic_efficiency = 0.91 compressor.pressure_ratio = 13.415 # add to network turbofan.append(compressor) # ------------------------------------------------------------------ # Component 5 - Low Pressure Turbine # instantiate turbine = SUAVE.Components.Energy.Converters.Turbine() turbine.tag = 'low_pressure_turbine' # setup turbine.mechanical_efficiency = 0.99 turbine.polytropic_efficiency = 0.93 # add to network turbofan.append(turbine) # ------------------------------------------------------------------ # Component 6 - High Pressure Turbine # instantiate turbine = SUAVE.Components.Energy.Converters.Turbine() turbine.tag = 'high_pressure_turbine' # setup turbine.mechanical_efficiency = 0.99 turbine.polytropic_efficiency = 0.93 # add to network turbofan.append(turbine) # ------------------------------------------------------------------ # Component 7 - Combustor # instantiate combustor = SUAVE.Components.Energy.Converters.Combustor() combustor.tag = 'combustor' # setup combustor.efficiency = 0.99 combustor.alphac = 1.0 combustor.turbine_inlet_temperature = 1450 combustor.pressure_ratio = 0.95 combustor.fuel_data = SUAVE.Attributes.Propellants.Jet_A() # add to network turbofan.append(combustor) # ------------------------------------------------------------------ # Component 8 - Core Nozzle # instantiate nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() nozzle.tag = 'core_nozzle' # setup nozzle.polytropic_efficiency = 0.95 nozzle.pressure_ratio = 0.99 # add to network turbofan.append(nozzle) # ------------------------------------------------------------------ # Component 9 - Fan Nozzle # instantiate nozzle = SUAVE.Components.Energy.Converters.Expansion_Nozzle() nozzle.tag = 'fan_nozzle' # setup nozzle.polytropic_efficiency = 0.95 nozzle.pressure_ratio = 0.99 # add to network turbofan.append(nozzle) # ------------------------------------------------------------------ # Component 10 - Fan # instantiate fan = SUAVE.Components.Energy.Converters.Fan() fan.tag = 'fan' # setup fan.polytropic_efficiency = 0.93 fan.pressure_ratio = 1.7 # add to network turbofan.append(fan) # ------------------------------------------------------------------ #Component 10 : thrust (to compute the thrust) thrust = SUAVE.Components.Energy.Processes.Thrust() thrust.tag = 'compute_thrust' #total design thrust (includes all the engines) thrust.total_design = 2 * 24000. * Units.N #Newtons #design sizing conditions altitude = 35000.0 * Units.ft mach_number = 0.78 isa_deviation = 0. # add to network turbofan.thrust = thrust #size the turbofan turbofan_sizing(turbofan, mach_number, altitude) #computing the engine length and diameter compute_turbofan_geometry(turbofan, None) print "sls thrust : ", turbofan.sealevel_static_thrust print "engine length : ", turbofan.engine_length # add gas turbine network gt_engine to the vehicle vehicle.append_component(turbofan) # ------------------------------------------------------------------ # Vehicle Definition Complete # ------------------------------------------------------------------ return vehicle