Source code for RCAIDE.Library.Methods.Aeroacoustics.Semi_Empirical.Airframe.trailing_edge_flap_noise
# RCAIDE/Methods/Aeroacoustics/Semi_Empirical/Airframe/trailing_edge_flap_noise.py
#
#
# Created: Jul 2023, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
import numpy as np
from RCAIDE.Framework.Core import Units
# ----------------------------------------------------------------------------------------------------------------------
# Compute the trailing edge flap noise
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def trailing_edge_flap_noise(Sf, cf, deltaf, slots, velocity, M, phi, theta, distance, frequency):
"""
This calculates the noise from the flap trailing edge as a 1/3 octave band sound pressure level.
Parameters
----------
Sf : float
Flap area [sq.ft].
cf : float
Flap chord [ft].
deltaf : float
Flap deflection [rad].
slots : int
Number of slots (Flap type).
velocity : float
Aircraft speed [kts].
M : float
Mach number [Unitless].
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
One Third Octave Band Sound Pressure Level [dB].
Notes
-----
The function uses correlation-based methods to compute the noise levels from the trailing edge flap.
**Definitions**
'SPL'
Sound Pressure Level, a measure of the sound intensity.
References
----------
None
"""
# Process
G = np.zeros(24)
test = frequency*cf/(velocity/Units.ft*(1-M*np.cos(theta)))
if (slots==1 or slots==2):
for i in range (0,24):
if (test[i]<2):
G[i] = 99+10*np.log10(test[i])
elif (test[i]<20):
G[i] = 103.82-6*np.log10(test[i])
else:
G[i] = 135.04-30*np.log10(test[i])
elif slots==3:
for i in range(0,24):
if(test[i]<2):
G[i] = 99+10*np.log10(test[i])
elif (test[i]<75):
G[i] = 102.61-2*np.log10(test[i])
else:
G[i] = 158.11-30*np.log10(test[i])
G = np.transpose(G)
if theta+deltaf>=np.pi:
directivity = 0.0
else:
directivity = 20.0*np.log10(np.sin(theta)* (np.cos(phi))**2 * np.sin(theta+deltaf))
SPL = G+10*np.log10(Sf*(np.sin(deltaf))**2/(distance**2))+ 60*np.log10((velocity/Units.kts)/100.0)+directivity
return SPL