Source code for RCAIDE.Library.Methods.Aeroacoustics.Semi_Empirical.Airframe.clean_wing_noise

# RCAIDE/Methods/Aeroacoustics/Semi_Empirical/Airframe/clean_wing_noise.py
# 
# 
# Created:  Jul 2023, M. Clarke  

# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ----------------------------------------------------------------------------------------------------------------------  

import numpy as np
from RCAIDE.Framework.Core import Units

# ----------------------------------------------------------------------------------------------------------------------
# Clean Wing Noise
# ----------------------------------------------------------------------------------------------------------------------
[docs] def clean_wing_noise(S, b, ND, IsHorz, velocity, viscosity, M, phi, theta, distance, frequency): """ This computes the 1/3 octave band sound pressure level and the overall sound pressure level from the clean wing. Parameters ---------- S : float Wing area [sq.ft]. b : float Wing span [ft]. ND : int Constant from the method, set to 0 for clean wings and 1 for others. IsHorz : int Constant from the method, set to 1 for horizontal components. velocity : float Aircraft speed [kts]. viscosity : float Dynamic viscosity. M : float Mach number. phi : float Azimuthal angle [rad]. theta : float Polar angle [rad]. distance : float Distance from airplane to observer, evaluated at retarded time [ft]. frequency : array_like Frequency array [Hz]. Returns ------- SPL : array_like Sound Pressure Level of the clean wing [dB]. Notes ----- The function uses correlation-based methods to compute the noise levels from the clean wing. **Definitions** 'SPL' Sound Pressure Level, a measure of the sound intensity. References ---------- Fink, Martin R. "Noise component method for airframe noise." Journal of aircraft 16.10 (1979): 659-665. """ distance_ft = distance /Units.ft delta = 0.37*(S/b)*(velocity*S/(b*viscosity))**(-0.2) if IsHorz==1: DIR = np.cos(phi) elif IsHorz==0: DIR = np.sin(phi) if DIR==0: SPL = np.zeros(24) else: fmax = 0.1*velocity / delta # eqn 7 OASPL = 50*np.log10((velocity*Units.ft/Units.kts)/100.0) + 10*np.log10(delta*Units.ft*b*Units.ft/((distance*Units.ft)**2.0)) * (DIR ** 2) * (np.cos(theta/2)) ** 2 + 101.3 SPL = OASPL + 10.0*np.log10( 0.613* (frequency/fmax)**4 * ((frequency/fmax)**1.5 + 0.5)**(-4)) # eqn 5 Delta_SPL = -0.03* (distance_ft/500 ) * np.abs(((frequency/fmax)-1))**1.5 # eqn 6 SPL += Delta_SPL return SPL