RCAIDE.Library.Methods.Mass_Properties.Weight_Buildups.Conventional.Transport.FLOPS.compute_wing_weight

compute_wing_weight#

compute_wing_weight(vehicle, wing, WPOD, complexity, settings, num_main_wings)[source]#

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

Parameters:
  • vehicle (Data) –

    Data dictionary with vehicle properties - reference_area : float

    Wing surface area [m²]

    • mass_properties.max_takeofffloat

      Maximum takeoff weight [kg]

    • flight_envelope.ultimate_loadfloat

      Ultimate load factor (default: 3.75)

    • systems.accessoriesstr

      Type of aircraft (short-range, commuter, medium-range, long-range, sst, cargo)

    • fuselageslist

      List of fuselage objects - width : float

      Width of the fuselage [m]

    • networkslist

      List of network objects containing propulsion properties - propulsors : list

      List of propulsor objects - wing_mounted : bool

      Flag indicating if propulsor is wing-mounted

  • wing (Data) –

    Data dictionary with wing properties - taper : float

    Taper ratio

    • sweeps.quarter_chordfloat

      Quarter chord sweep angle [deg]

    • thickness_to_chordfloat

      Thickness to chord ratio

    • spans.projectedfloat

      Wing span [m]

    • chords.rootfloat

      Root chord [m]

    • chords.tipfloat

      Tip chord [m]

    • twists.rootfloat

      Twist of wing at root [deg]

    • twists.tipfloat

      Twist of wing at tip [deg]

    • flap_ratiofloat

      Flap surface area over wing surface area

    • areas.referencefloat

      Reference wing area [m²]

    • segmentsdict

      Dictionary of wing segments

  • WPOD (float) – Weight of engine pod including the nacelle [kg]

  • complexity (str) – “simple” or “complex” depending on the wing weight method chosen

  • settings (Data) –

    Configuration settings - FLOPS.aeroelastic_tailoring_factor : float

    Factor for aeroelastic tailoring [0-1]

    • FLOPS.strut_braced_wing_factorfloat

      Factor for strut bracing [0-1]

    • advanced_compositesbool

      Flag for advanced composite construction

  • num_main_wings (int) – Number of main wings on the aircraft

Returns:

WWING – Wing weight [kg]

Return type:

float

Notes

This function implements the Flight Optimization System (FLOPS) weight estimation methodology for aircraft wings. The calculations are performed in imperial units and converted to metric for output.

Major Assumptions
  • Gloved wing area is 0

  • Load between multiple main wings is distributed equally

  • Wing sweep is fixed

Theory

The wing weight is calculated using empirical correlations based on wing geometry, loading, and construction techniques. For complex wings, the method integrates spanwise loading to determine bending moments.

\[W_{wing} = W_1 + W_2 + W_3\]
Where:
  • W₁ is the bending material weight

  • W₂ is the shear material and control surface weight

  • W₃ is the miscellaneous items weight

References

[1] McCullers, L. A. (1984). “Aircraft Configuration Optimization Including Optimized Flight Profiles”, NASA Symposium on Recent Experiences in Multidisciplinary Analysis and Optimization. [2] Ardema, M. D., Chambers, M. C., Patron, A. P., Hahn, A. S., Miura, H., & Moore, M. D. (1996). “Analytical Fuselage and Wing Weight Estimation of Transport Aircraft”, NASA Technical Memorandum 110392.

generate_wing_stations(fuselage_width, wing)[source]#
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

generate_int_stations(NSD, ETA)[source]#

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

calculate_load(ETA)[source]#

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

find_sweep(y, lst_y, swp)[source]#

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

get_spanwise_engine(networks, SEMISPAN)[source]#

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

wing_weight_constants_FLOPS()[source]#

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

determine_fuselage_chord(fuselage_width, wing)[source]#

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