turboprop = SUAVE.Components.Energy.Networks.Internal_Combustion_Propeller()
# For some methods, the 'turbofan' tag is still necessary. This will be changed in the
# future to allow arbitrary tags.
turboprop.tag = 'turboprop'
# High-level setup
turboprop.number_of_engines = 2
turboprop.engine_length = 2.71 * Units.meter
#turbofan.nacelle_diameter = 2.05 * Units.meter
#turbofan.origin = [[13.72, 4.86,-1.9],[13.72, -4.86,-1.9]]
ice = SUAVE.Components.Energy.Converters.Internal_Combustion_Engine()
ice.tag ='engine'
ice.sea_level_power = 2050 * Units['kW']
ice.flat_rate_altitude = 13000 * Units.ft
ice.speed = 1200 * Units['rpm']
ice.power_specific_fuel_consumption = 0.506 * Units['lb/hp/h']
turboprop.engine = ice
# Design the Propeller
prop = SUAVE.Components.Energy.Converters.Propeller()
prop.tag = 'propeller'
prop.number_blades = 6
prop.freestream_velocity = 300 * Units['kts'] # freestream
prop.angular_velocity = 1200. * Units['rpm']
prop.tip_radius = 1.96 * Units.meters
prop.hub_radius = 0.05 * Units.meters
prop.design_Cl = 0.7
prop.design_altitude = 0 * Units.ft
#prop.design_thrust = None
prop.design_power = 2050 * Units['kW']
prop = propeller_design(prop)
turboprop.propeller = prop
# Add turbofan network to the vehicle
vehicle.append_component(turboprop)
def mission_setup(analyses):
"""This function defines the baseline mission that will be flown by the aircraft in order
to compute performance."""
# ------------------------------------------------------------------
# Initialize the Mission
# ------------------------------------------------------------------
mission = SUAVE.Analyses.Mission.Sequential_Segments()
mission.tag = 'the_mission'
# Airport
# The airport parameters are used in calculating field length and noise. They are not
# directly used in mission performance estimation
airport = SUAVE.Attributes.Airports.Airport()
airport.altitude = 0.0 * Units.ft
airport.delta_isa = 0.0
airport.atmosphere = SUAVE.Attributes.Atmospheres.Earth.US_Standard_1976()
mission.airport = airport
# Unpack Segments module
Segments = SUAVE.Analyses.Mission.Segments
# Base segment
base_segment = Segments.Segment()
# ------------------------------------------------------------------
# Climb Segment: Constant Speed, Constant Rate
# ------------------------------------------------------------------
# A constant speed, constant rate climb segment is used first. This means that the aircraft
# will maintain a constant airspeed and constant climb rate until it hits the end altitude.
# For this type of segment, the throttle is allowed to vary as needed to match required
# performance.
segment = Segments.Climb.Constant_Speed_Constant_Rate(base_segment)
# It is important that all segment tags must be unique for proper evaluation. At the moment
# this is not automatically enforced.
segment.tag = "climb"
# The analysis settings for mission segment are chosen here. These analyses include information
# on the vehicle configuration.
segment.analyses.extend( analyses.takeoff )
segment.altitude_start = 0.0 * Units.ft
segment.altitude_end = 10000 * Units.ft
segment.air_speed = 280 * Units['kts']
segment.climb_rate = 2 * 1.6667 * Units['ft/s']
# Add to misison
mission.append_segment(segment)
# ------------------------------------------------------------------
# Cruise Segment: Constant Speed, Constant Altitude
# ------------------------------------------------------------------
segment = Segments.Cruise.Constant_Speed_Constant_Altitude(base_segment)
segment.tag = "cruise"
segment.analyses.extend( analyses.cruise )
segment.air_speed = 300 * Units['kts']
segment.distance = 500. * Units.nautical_miles
# Add to mission
mission.append_segment(segment)
# ------------------------------------------------------------------
# First Descent Segment: Constant Speed, Constant Rate
# ------------------------------------------------------------------
segment = Segments.Descent.Constant_Speed_Constant_Rate(base_segment)
segment.tag = "descent"
segment.analyses.extend( analyses.cruise )
segment.altitude_end = 0.0 * Units.ft
segment.air_speed = 250 * Units['kts']
segment.descent_rate = 2 * 1.6667 * Units['ft/s']
# Add to mission
mission.append_segment(segment)
# ------------------------------------------------------------------
# Mission definition complete
# ------------------------------------------------------------------
return mission