Source code for RCAIDE.Library.Methods.Aerodynamics.Common.Drag.parasite_drag_pylon
# RCAIDE/Library/Methods/Aerodynamics/Common/Drag/pparasite_drag_pylon.py
# (c) Copyright 2023 Aerospace Research Community LLC
#
# Created: Jun 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imporst
from RCAIDE.Framework.Core import Data
# python imports
import numpy as np
# ----------------------------------------------------------------------------------------------------------------------
# Pylon Drag Fuselage
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def parasite_drag_pylon(state,settings,geometry):
"""Computes the parasite drag due to pylons as a proportion of the network
Assumptions:
None
Source:
Stanford AA241 A/B Course Notes
Args:
state.conditions.aerodynamics.coefficients.drag.parasite[network.tag].
form_factor (float): form_factor [Unitless]
compressibility_factor (float): compressibility_factor [Unitless]
skin_friction (numpy.ndarray): skin_friction [Unitless]
wetted_area (numpy.ndarray): wetted_area [m^2]
parasite_drag (numpy.ndarray): parasite_drag [Unitless]
reynolds_number (numpy.ndarray): reynolds_number [Unitless]
geometry (dict): aircraft geometry [-]
Returns:
None
"""
drag = state.conditions.aerodynamics.coefficients.drag
pylon_factor = 0.2
# Estimating pylon drag
for network in geometry.networks:
for propulsor in network.propulsors:
if 'nacelle' in propulsor:
nacelle = propulsor.nacelle
if nacelle.has_pylon:
ref_area = nacelle.diameter**2 / 4 * np.pi
pylon_parasite_drag = pylon_factor * drag.parasite[nacelle.tag].total* (ref_area/geometry.reference_area)
pylon_wetted_area = pylon_factor * drag.parasite[nacelle.tag].wetted_area
pylon_cf = drag.parasite[nacelle.tag].skin_friction
pylon_compr_fact = drag.parasite[nacelle.tag].compressibility_factor
pylon_rey_fact = drag.parasite[nacelle.tag].reynolds_factor
pylon_FF = drag.parasite[nacelle.tag].form_factor
pylon_result = Data(
wetted_area = pylon_wetted_area ,
reference_area = geometry.reference_area ,
total = pylon_parasite_drag ,
skin_friction = pylon_cf ,
compressibility_factor = pylon_compr_fact ,
reynolds_factor = pylon_rey_fact ,
form_factor = pylon_FF , )
drag.parasite[ nacelle.tag + '_pylon'] = pylon_result
else:
pylon_result = Data(
wetted_area = 0 ,
reference_area = geometry.reference_area ,
total = np.zeros_like(drag.parasite[nacelle.tag].skin_friction) ,
skin_friction = 0 ,
compressibility_factor = 0 ,
reynolds_factor = 0 ,
form_factor = 0 , )
drag.parasite[ nacelle.tag + '_pylon'] = pylon_result
return