SUAVE  2.5.2
An Aerospace Vehicle Environment for Designing Future Aircraft
Methods-Weights-Correlations-FLOPS

Provides structural weight correlations for aircraft components based on the FLOPS method. More...

Functions

def SUAVE.Methods.Weights.Correlations.FLOPS.fuselage.fuselage_weight_FLOPS (vehicle)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.landing_gear.landing_gear_FLOPS (vehicle)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.operating_items.operating_items_FLOPS (vehicle)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.payload.payload_FLOPS (vehicle, weight_per_passenger=165. *Units.lb)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.total_prop_flops (vehicle, prop)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.nacelle_FLOPS (prop, nacelle)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.thrust_reverser_FLOPS (prop)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.misc_engine_FLOPS (vehicle, prop, nacelle)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.fuel_system_FLOPS (vehicle, NENG)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.engine_FLOPS (vehicle, prop)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.systems.systems_FLOPS (vehicle)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.tail.tail_vertical_FLOPS (vehicle, wing)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.wing.wing_weight_FLOPS (vehicle, wing, WPOD, complexity, settings, num_main_wings)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.wing.generate_wing_stations (fuselage_width, wing)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.wing.generate_int_stations (NSD, ETA)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.wing.calculate_load (ETA)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.wing.find_sweep (y, lst_y, swp)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.wing.get_spanwise_engine (networks, SEMISPAN)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.wing.wing_weight_constants_FLOPS (ac_type)
 
def SUAVE.Methods.Weights.Correlations.FLOPS.wing.determine_fuselage_chord (fuselage_width, wing)
 

Detailed Description

Provides structural weight correlations for aircraft components based on the FLOPS method.

Function Documentation

◆ calculate_load()

def SUAVE.Methods.Weights.Correlations.FLOPS.wing.calculate_load (   ETA)
Returns load factor assuming elliptical load distribution

    Assumptions:

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        ETA: list of spanwise locations of all sections of the wing

   Outputs:
       PS: load factor at every location in ETA assuming elliptical load distribution

    Properties Used:
        N/A

◆ determine_fuselage_chord()

def SUAVE.Methods.Weights.Correlations.FLOPS.wing.determine_fuselage_chord (   fuselage_width,
  wing 
)
Determine chord at wing and fuselage intersection

    Assumptions:
        Fuselage side of body is between first and second wing segments.

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        fuselage_width: width of fuselage                                   [m]
        wing: data dictionary with wing properties
                -.taper: taper ratio
                -.sweeps.quarter_chord: quarter chord sweep angle           [deg]
                -.thickness_to_chord: thickness to chord
                -.spans.projected: wing span                                [m]
                -.chords.root: root chord                                   [m]
            -.fuselages.fuselage.width: fuselage width                      [m]
   Outputs:
       chord: chord length of wing where wing intersects the fuselage wall [ft]

    Properties Used:
        N/A

◆ engine_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.engine_FLOPS (   vehicle,
  prop 
)
Calculates the dry engine weight based on the FLOPS method
    Assumptions:
        Rated thrust per scaled engine and rated thurst for baseline are the same
        Engine weight scaling parameter is 1.15
        Enginge inlet weight scaling exponent is 1
        Baseline inlet weight is 0 lbs as in example files FLOPS
        Baseline nozzle weight is 0 lbs as in example files FLOPS

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        vehicle - data dictionary with vehicle properties                   [dimensionless]
            -.systems.accessories: type of aircraft (short-range, commuter
                                                    medium-range, long-range,
                                                    sst, cargo)
        prop    - data dictionary for the specific network that is being estimated [dimensionless]
            -.sealevel_static_thrust: sealevel static thrust of engine  [N]

    Outputs:
        WENG: dry engine weight                                         [kg]

    Properties Used:
        N/A

◆ find_sweep()

def SUAVE.Methods.Weights.Correlations.FLOPS.wing.find_sweep (   y,
  lst_y,
  swp 
)
Finds sweep angle for a certain y-location along the wing

    Assumptions:

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        y: spanwise location
        lst_y: list of spanwise stations where sweep is known (eg sections)
        swp: list of quarter chord sweep angles at the locations listed in lst_y

   Outputs:
       swps: sweep angle at y

    Properties Used:
        N/A

◆ fuel_system_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.fuel_system_FLOPS (   vehicle,
  NENG 
)
Calculates the weight of the fuel system based on the FLOPS method
    Assumptions:

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        vehicle - data dictionary with vehicle properties                   [dimensionless]
            -.design_mach_number: design mach number
            -.mass_properties.max_zero_fuel: maximum zero fuel weight   [kg]

    Outputs:
        WFSYS: Fuel system weight                                       [kg]

    Properties Used:
        N/A

◆ fuselage_weight_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.fuselage.fuselage_weight_FLOPS (   vehicle)
Calculate the weight of the fuselage of a transport aircraft

    Assumptions:
        NFUSE = 1, only one fuselage (it's possible to modify this in future work)
        delta_isa = 0, for pressure calculations
        Fuselage is tagged as 'fuselage'

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        vehicle - data dictionary with vehicle properties                    [dimensionless]
            -.networks: data dictionary containing all propulsion properties
            -.fuselages['fuselage'].lengths.total: fuselage total length      [meters]
            -.fuselages['fuselage'].width: fuselage width                    [meters]
            -.fuselages['fuselage'].heights.maximum: fuselage maximum height [meters]
            -.envelope.ultimate_load: ultimate load factor (default: 3.75)
            -.systems.accessories: type of aircraft (short-range, commuter
                                                    medium-range, long-range,
                                                    sst, cargo)
            -.mass_properties.max_takeoff: MTOW                              [kilograms]
            -.design_mach_number: design mach number for cruise flight

    Outputs:
        WFUSE - weight of the fuselage                                      [kilograms]

    Properties Used:
        N/A

◆ generate_int_stations()

def SUAVE.Methods.Weights.Correlations.FLOPS.wing.generate_int_stations (   NSD,
  ETA 
)
Divides half of the wing in integration stations

    Assumptions:

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        NSD: number of integration stations requested
        ETA: list of spanwise locations of all sections of the wing

   Outputs:
       NS: actual number of integration stations
       Y: spanwise locations of the integrations stations normalized by half span

    Properties Used:
        N/A

◆ generate_wing_stations()

def SUAVE.Methods.Weights.Correlations.FLOPS.wing.generate_wing_stations (   fuselage_width,
  wing 
)
Divides half the wing in sections, using the defined sections
    and adding a section at the intersection of wing and fuselage

    Assumptions:

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        fuselage_width: fuselage width                                      [m]
        wing: data dictionary with wing properties
                -.taper: taper ration wing
                -.sweeps.quarter_chord: quarter chord sweep angle           [deg]
                -.thickness_to_chord: thickness to chord
                -.spans.projected: wing span                                [m]
                -.chords.root: root chord                                   [m]
                -.tip.root: tip chord                                       [m]
                -.twists.root: twist of wing at root                        [deg]
                -.twists.tip: twist of wing at tip                          [deg]
                -.Segments: trapezoidal segments of the wing

   Outputs:
       ETA: spanwise location of the sections normalized by half span
       C: chord lengths at every spanwise location in ETA normalized by half span
       T: thickness to chord ratio at every span wise location in ETA
       SWP: quarter chord sweep angle at every span wise location in ETA

    Properties Used:
        N/A

◆ get_spanwise_engine()

def SUAVE.Methods.Weights.Correlations.FLOPS.wing.get_spanwise_engine (   networks,
  SEMISPAN 
)
Returns EETA for the engine locations along the wing

    Assumptions:

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        networks: data dictionary with all the engine properties
            -.wing_mounted: list of boolean if engine is mounted to wing
            -.number_of_engines: number of engines
            -.origin: origin of the engine
        SEMISPAN: half span                                 [m]
   Outputs:
       EETA: span wise locations of the engines mounted to the wing normalized by the half span

    Properties Used:
        N/A

◆ landing_gear_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.landing_gear.landing_gear_FLOPS (   vehicle)
Calculate the weight of the main and nose landing gear of a transport aircraft

    Assumptions:
        No fighter jet, change DFTE to 1 for a fighter jet
        Aircraft is not meant for carrier operations, change CARBAS to 1 for carrier-based aircraft

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        vehicle - data dictionary with vehicle properties                   [dimensionless]
            -.networks: data dictionary containing all propulsion properties
            -.design_range: design range of aircraft                        [nmi]
            -.systems.accessories: type of aircraft (short-range, commuter
                                                    medium-range, long-range,
                                                    sst, cargo)
            -.mass_properties.max_takeoff: MTOW                              [kilograms]
            -.nacelles['nacelle']                                            [meters]
            -.wings['main_wing'].dihedral                                    [radians]
            -.fuselages['fuselage'].width: fuselage width                    [meters]
            -.fuselages['fuselage'].lengths.total: fuselage total length     [meters]


    Outputs:
        output - data dictionary with main and nose landing gear weights    [kilograms]
                output.main, output.nose

    Properties Used:
        N/A

◆ misc_engine_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.misc_engine_FLOPS (   vehicle,
  prop,
  nacelle 
)
Calculates the miscellaneous engine weight based on the FLOPS method, electrical control system weight
    and starter engine weight
    
    Assumptions:
        1) All nacelles are identical
        2) The number of nacelles is the same as the number of engines 

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        vehicle - data dictionary with vehicle properties                            [dimensionless]
             -.design_mach_number: design mach number
        prop    - data dictionary for the specific network that is being estimated [dimensionless]
            -.number_of_engines: number of engines
            -.sealevel_static_thrust: sealevel static thrust of engine               [N]
        nacelle              
            -.diameter: diameter of nacelle                                          [m]
          
    Outputs:              
        WEC: electrical engine control system weight                                 [kg]
        WSTART: starter engine weight                                                [kg]

    Properties Used:
        N/A

◆ nacelle_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.nacelle_FLOPS (   prop,
  nacelle 
)
Calculates the nacelle weight based on the FLOPS method

    Assumptions:
        1) All nacelles are identical
        2) The number of nacelles is the same as the number of engines 

    Source:
        Aircraft Design: A Conceptual Approach

    Inputs:
        prop    - data dictionary for the specific network that is being estimated [dimensionless]
            -.number_of_engines: number of engines
            -.engine_lenght: total length of engine                                  [m]
            -.sealevel_static_thrust: sealevel static thrust of engine               [N]
        nacelle.             
            -.diameter: diameter of nacelle                                          [m]
        WENG    - dry engine weight                                                  [kg]
         
         
    Outputs:             
        WNAC: nacelle weight                                                         [kg]

    Properties Used:
        N/A

◆ operating_items_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.operating_items.operating_items_FLOPS (   vehicle)
Calculate the weight of operating items, including:
    - crew
    - baggage
    - unusable fuel
    - engine oil
    - passenger service
    - ammunition and non-fixed weapons
    - cargo containers

    Assumptions:
        If no tanks are specified, 5 fuel tanks are assumed (includes main and auxiliary tanks)
        If the number of coach seats is not defined, then it assumed that 5% of
            of the seats are first class and an additional 10 % are business class.
        If the number of coach seats is defined, then the additional seats are 1/4 first class
            and 3/4 business class

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        vehicle - data dictionary with vehicle properties                   [dimensionless]
            -.networks: data dictionary containing all propulsion properties
                -.number_of_engines: number of engines
                -.sealevel_static_thrust: thrust at sea level               [N]
            -.reference_area: wing surface area                             [m^2]
            -.mass_properties.max_takeoff: MTOW                             [kilograms]
            -.passengers: number of passengers in aircraft
            -.design_mach_number: design mach number for cruise flight
            -.design_range: design range of aircraft                        [nmi]
            -.mass_properties.cargo: weight of cargo carried                [kilograms]

    Outputs:
        output - data dictionary with weights                               [kilograms]
                - output.oper_items: unusable fuel, engine oil, passenger service weight and cargo containers
                - output.flight_crew: flight crew weight
                - output.flight_attendants: flight attendants weight
                - output.total: total operating items weight

    Properties Used:
        N/A

◆ payload_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.payload.payload_FLOPS (   vehicle,
  weight_per_passenger = 165. * Units.lb 
)
Calculate the payload weight, including:
    - passenger and carry-on weight
    - baggage weight
    - cargo weight

    Assumptions:
        None

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        vehicle - data dictionary with vehicle properties                   [dimensionless]
            -.passengers: number of passengers in aircraft
            -.design_range: design range of aircraft                        [nmi]
            -.mass_properties.cargo: weight of cargo carried                [kilograms]

    Outputs:
        output - data dictionary with weights                               [kilograms]
                - output.passengers: passenger weight
                - output.baggage: baggage weight
                - output.cargo: cargo weight
                - output.total: total payload weight

    Properties Used:
        N/A

◆ systems_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.systems.systems_FLOPS (   vehicle)
Calculate the system weight of the aircraft including:
    -  flight control system
    - apu weight
    - hydraulics and pneumatics weight
    - intstrumentation weight
    - avionics weight
    - electrical system weight
    - air-condtioning weight
    - furnishing weight
    - anti-ice weight

Assumptions:
    1) No variable sweep, change VARSWP to 1 is variable sweep in aicraft
    2) Hydraulic pressure is 3000 psf (HYDR)
    3) 1 fuselage named fuselage. Function could be modified to allow multiple fuselages by
       relaxing this assumption.

Source:
    The Flight Optimization System Weight Estimation Method

   Inputs:
    vehicle - data dictionary with vehicle properties                   [dimensionless]
        -.networks: data dictionary containing all propulsion properties
            -.number_of_engines: number of engines
            -.sealevel_static_thrust: thrust at sea level               [N]
        -.fuselages['fuselage'].lengths.total: fuselage total length    [meters]
        -.fuselages['fuselage'].width: fuselage width                   [meters]
        -.fuselages['fuselage'].heights.maximum: fuselage maximum height[meters]
        -.mass_properties.max_takeoff: MTOW                             [kilograms]
        -.design_mach_number: design mach number for cruise flight
        -.design_range: design range of aircraft                        [nmi]
        -.passengers: number of passengers in aircraft
        -.wings['main_wing']: data dictionary with main wing properties
            -.sweeps.quarter_chord: quarter chord sweep                 [deg]
            -.areas.reference: wing surface area                        [m^2]
            -.spans.projected: projected span of wing                   [m]
            -.flap_ratio: flap surface area over wing surface area

   Outputs:
   output - a data dictionary with fields:
       wt_flt_ctrl - weight of the flight control system                                [kilograms]
       wt_apu - weight of the apu                                                       [kilograms]
       wt_hyd_pnu - weight of the hydraulics and pneumatics                             [kilograms]
       wt_instruments - weight of the instruments and navigational equipment            [kilograms]
       wt_avionics - weight of the avionics                                             [kilograms]
       wt_elec - weight of the electrical items                                         [kilograms]
       wt_ac - weight of the air conditioning and anti-ice system                       [kilograms]
       wt_furnish - weight of the furnishings in the fuselage                           [kilograms]
       wt_anti_ice - weight of anti-ice system                                          [kilograms]

Properties Used:
    N/A

◆ tail_vertical_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.tail.tail_vertical_FLOPS (   vehicle,
  wing 
)
Calculate the vertical tail weight

    Assumptions:
       Conventional tail configuration

    Source:
        The Flight Optimization System Weight Estimation Method

   Inputs:
        vehicle - data dictionary with vehicle properties                   [dimensionless]
            -.mass_properties.max_takeoff: MTOW                             [kilograms]
        wing - data dictionary with vertical tail properties                [dimensionless]
            -.taper: taper of wing
            -.areas.reference: surface area of wing                         [m^2]

   Outputs:
        WVT - vertical tail weight                                          [kilograms]

    Properties Used:
        N/A

◆ thrust_reverser_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.thrust_reverser_FLOPS (   prop)
Calculates the weight of the thrust reversers of the aircraft

    Assumptions:

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        prop    - data dictionary for the specific network that is being estimated [dimensionless]
            -.number_of_engines: number of engines
            -.sealevel_static_thrust: sealevel static thrust of engine  [N]

    Outputs:
        WTHR: Thrust reversers weight                                   [kg]

    Properties Used:
        N/A

◆ total_prop_flops()

def SUAVE.Methods.Weights.Correlations.FLOPS.prop_system.total_prop_flops (   vehicle,
  prop 
)
Calculate the weight of propulsion system, including:
    - dry engine weight
    - fuel system weight
    - thurst reversers weight
    - electrical system weight
    - starter engine weight
    - nacelle weight
    - cargo containers

    Assumptions:
        1) Rated thrust per scaled engine and rated thurst for baseline are the same
        2) Engine weight scaling parameter is 1.15
        3) Enginge inlet weight scaling exponent is 1
        4) Baseline inlet weight is 0 lbs as in example files FLOPS
        5) Baseline nozzle weight is 0 lbs as in example files FLOPS

    Source:
        The Flight Optimization System Weight Estimation Method

    Inputs:
        vehicle - data dictionary with vehicle properties                   [dimensionless]
            -.design_mach_number: design mach number for cruise flight
            -.mass_properties.max_zero_fuel: zero fuel weight               [kg]
            -.systems.accessories: type of aircraft (short-range, commuter
                                                    medium-range, long-range,
                                                    sst, cargo)
        nacelle - data dictionary with propulsion system properties 
            -.diameter: diameter of nacelle                                 [meters]
            -.length: length of complete engine assembly                    [meters]
        prop.
            -.sealevel_static_thrust: thrust at sea level                   [N]


    Outputs:
        output - data dictionary with weights                               [kilograms]
                - output.wt_prop: total propulsive system weight
                - output.wt_thrust_reverser: thurst reverser weight
                - output.starter: starter engine weight
                - output.wt_engine_controls: engine controls weight
                - output.fuel_system: fuel system weight
                - output.nacelle: nacelle weight
                - output.wt_eng: dry engine weight

    Properties Used:
        N/A

◆ wing_weight_constants_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.wing.wing_weight_constants_FLOPS (   ac_type)
Defines wing weight constants as defined by FLOPS
    Inputs: ac_type - determines type of instruments, electronics, and operating items based on types:
            "short-range", "medium-range", "long-range", "business", "cargo", "commuter", "sst"
    Outputs: list of coefficients used in weight estimations

◆ wing_weight_FLOPS()

def SUAVE.Methods.Weights.Correlations.FLOPS.wing.wing_weight_FLOPS (   vehicle,
  wing,
  WPOD,
  complexity,
  settings,
  num_main_wings 
)
Calculate the wing weight based on the flops method. The wing weight consists of:
    - Total Wing Shear Material and Control Surface Weight
    - Total Wing Miscellaneous Items Weight
    - Total Wing Bending Material Weight

    Assumptions:
        Wing is elliptically loaded
        Gloved wing area is 0
        Load between multiple main wings is distributed equally
        Wing sweep is fixed

    Source:
        The Flight Optimization System Weight Estimation Method

   Inputs:
        vehicle - data dictionary with vehicle properties                   [dimensionless]
            -.reference_area: wing surface area                             [m^2]
            -.mass_properties.max_takeoff: MTOW                             [kilograms]
            -.envelope.ultimate_load: ultimate load factor (default: 3.75)
            -.systems.accessories: type of aircraft (short-range, commuter
                                                    medium-range, long-range,
                                                    sst, cargo)
            -.fuselages.fuselage.width: width of the fuselage               [m]
         -wing: data dictionary with wing properties
                -.taper: taper ratio
                -.sweeps.quarter_chord: quarter chord sweep angle           [deg]
                -.thickness_to_chord: thickness to chord
                -.spans.projected: wing span                                [m]
                -.chords.root: root chord                                   [m]
                -.tip.root: tip chord                                       [m]
                -.twists.root: twist of wing at root                        [deg]
                -.twists.tip: twist of wing at tip                          [deg]
                -.flap_ratio: flap surface area over wing surface area
             -.networks: data dictionary containing all propulsion properties
                -.number_of_engines: number of engines
                -.sealevel_static_thrust: thrust at sea level               [N]
        WPOD - weight of engine pod including the nacelle                   [kilograms]
        complexity - "simple" or "complex" depending on the wing weight method chosen

   Outputs:
        WWING - wing weight                                          [kilograms]

    Properties Used:
        N/A