Source code for RCAIDE.Library.Methods.Aerodynamics.Common.Drag.drag_divergence
# RCAIDE/Library/Methods/Aerodynamics/Common/Drag/drag_divergence.py
# (c) Copyright 2023 Aerospace Research Community LLC
#
# Created: Jun 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
from RCAIDE.Library.Components.Wings import Main_Wing
# package imports
import numpy as np
# ----------------------------------------------------------------------------------------------------------------------
# drag_divergence
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def drag_divergence(Mach,geometry, Cl):
"""Use drag divergence Mach number to determine drag for subsonic speeds
Assumptions:
Basic fit, subsonic
Source:
http://aerodesign.stanford.edu/aircraftdesign/aircraftdesign.html (Stanford AA241 A/B Course Notes)
Concorde data can be found in "Supersonic drag reduction technology in the scaled supersonic
experimental airplane project by JAXA" by Kenji Yoshida
Args:
wing.
thickness_to_chord [-]
sweeps.quarter_chord [radians]
high_mach [Boolean]
areas.reference [m^2]
Returns:
cd_c [-]
Machc [-]
MDiv [-]
"""
t_c_w = 0
sweep_w = 0
high_mach = False
for wing in geometry.wings:
if isinstance(wing, Main_Wing):
t_c_w = wing.thickness_to_chord
sweep_w = wing.sweeps.quarter_chord
high_mach = wing.high_mach
# Check if the wing is designed for high subsonic cruise
# If so use arbitrary divergence point as correlation will not work
if high_mach == True:
# Divergence Mach number, fit to Concorde data
Mcc = 0.95 * np.ones_like(Mach)
else:
# Get effective CLift_wings and sweep
tc = t_c_w / np.cos(sweep_w)
cl = Cl/ (np.cos(sweep_w) ** 2)
# Compressibility drag based on regressed fits from AA241
mcc_cos_ws = 0.922321524499352 \
- 1.153885166170620*tc \
- 0.304541067183461*cl \
+ 0.332881324404729*tc*tc \
+ 0.467317361111105*tc*cl \
+ 0.087490431201549*cl*cl
# Crest-critical Mach number, corrected for wing sweep
Mcc = mcc_cos_ws/ np.cos(sweep_w)
# Divergence ratio
mo_Mach = Mach/Mcc
# Compressibility correlation, Shevell
dcdc_cos3g = 0.0019*mo_Mach**14.641
# Compressibility drag
# Sweep correlation cannot be used if the wing has a high Mach design
if high_mach is True:
cd_c = dcdc_cos3g
else:
cd_c = dcdc_cos3g * (np.cos(sweep_w)**3)
return cd_c