fan

class description

class fan.Fan[source]

Bases: object

static calculate_cutoff(M_tip_tan: numpy.float64, B_fan: numpy.int64, V_fan: numpy.int64) → numpy.float64[source]

Compute if the fan is in cut-off condition (0/1).

Parameters
  • M_tip_tan (np.float64) – tangential (i.e., radius*omega) tip Mach number [-]

  • B_fan (np.int64) – fan blade number [-]

  • V_fan (np.int64) – fan vane number [-]

Returns

i_cut

Return type

np.int64

static calculate_harmonics(settings: Dict[str, Any], freq: numpy.float64, theta: numpy.float64, tonlv_I: numpy.float64, tonlv_X: numpy.float64, i_cut: numpy.int64, M_tip: numpy.float64, bpf: numpy.float64, comp: str) → Tuple[numpy.ndarray, numpy.ndarray][source]

Compute fan tone harmonics for inlet (dp) and discharge (dpx).

Parameters
  • settings (Dict[str, Any]) – pyna settings

  • freq (np.float64) – 1/3rd octave frequency bands [Hz]

  • theta (np.float64) – polar directivity angle [deg]

  • tonlv_I (np.float64) – inlet tone level [-]

  • tonlv_X (np.float64) – discharge tone level [-]

  • i_cut (np.int64) – cut-off parameter (0/1)

  • M_tip (np.float64) – relative (i.e., helical) tip Mach number [-]

  • bpf – blade pass frequency

  • comp (str) – fan component (fan_inlet / fan_discharge)

Returns

dp, dpx

Return type

np.ndarray [settings.N_f], np.ndarray [settings.N_f]

static combination_tones(settings: Dict[str, Any], freq: numpy.float64, theta: numpy.float64, M_tip: numpy.float64, bpf: numpy.float64, tsqem: numpy.float64) → numpy.ndarray[source]

Compute the combination tone component of the fan mean-square acoustic pressure (msap).

Parameters
  • settings (Dict[str, Any]) – pyna settings

  • freq (np.float64) – 1/3rd octave frequency bands [Hz]

  • theta (np.float64) – polar directivity angle [deg]

  • M_tip (np.float64) – relative (i.e., helical) tip Mach number [-]

  • bpf (np.float64) – blade pass frequency

  • tsqem (np.float64) – tone temperature-flow power base term [-]

Returns

dcp

Return type

np.float64

static discharge_broadband(settings: Dict[str, Any], theta: numpy.float64, M_tip: numpy.float64, tsqem: numpy.float64, M_d_fan: numpy.float64, RSS_fan: numpy.float64) → numpy.float64[source]

Compute the broadband component of the fan discharge mean-square acoustic pressure (msap).

Parameters
  • settings (Dict[str, Any]) – pyna settings

  • theta (np.float64) – polar directivity angle [deg]

  • M_tip (np.float64) – relative (i.e., helical) tip Mach number [-]

  • tsqem (np.float64) – broadband temperature-flow power base term [-]

  • M_d_fan (np.float64) – fan rotor relative tip Mach number at design [-]

  • RSS_fan (np.float64) – fan rotor-stator spacing [%]

Returns

bblv_D

Return type

np.float64

static discharge_tones(settings: Dict[str, Any], theta: numpy.float64, M_tip: numpy.float64, tsqem: numpy.float64, M_d_fan: numpy.float64, RSS_fan: numpy.float64) → numpy.float64[source]

Compute the tone component of the fan discharge mean-square acoustic pressure (msap)

Parameters
  • settings (Dict[str, Any]) – pyna settings

  • theta (np.float64) – polar directivity angle [deg]

  • M_tip (np.float64) – relative (i.e., helical) tip Mach number [-]

  • tsqem (np.float64) – broadband temperature-flow power base term [-]

  • M_d_fan (np.float64) – fan rotor relative tip Mach number at design [-]

  • RSS_fan – fan rotor-stator spacing [%]

Returns

tonlv_X

Return type

np.float64

static fan(source, theta, shield, inputs: openmdao.vectors.default_vector.DefaultVector, comp: str) → numpy.ndarray[source]

Calculates fan noise mean-square acoustic pressure (msap) using Berton’s implementation of the fan noise method.

Parameters
  • source – pyNA component computing noise sources :type source: Source

  • inputs (openmdao.vectors.default_vector.DefaultVector) – unscaled, dimensional input variables read via inputs[key]

  • comp (str) – fan component (fan_inlet / fan_discharge)

Returns

msap_fan

Return type

np.ndarray [n_t, settings.N_f]

static inlet_broadband(settings: Dict[str, Any], theta: numpy.float64, M_tip: numpy.float64, tsqem: numpy.float64, M_d_fan: numpy.float64, RSS_fan: numpy.float64) → numpy.float64[source]

Compute the broadband component of the fan inlet mean-square acoustic pressure (msap).

Parameters
  • settings (Dict[str, Any]) – pyna settings.

  • theta (np.float64) – polar directivity angle [deg]

  • M_tip (np.float64) – relative (i.e., helical) tip Mach number [-]

  • tsqem (np.float64) – broadband temperature-flow power base term [-]

  • M_d_fan (np.float64) – fan rotor relative tip Mach number at design [-]

  • RSS_fan (np.float64) – fan rotor-stator spacing [%]

Returns

bblv_I

Return type

np.float64

static inlet_tones(settings: Dict[str, Any], theta: numpy.float64, M_tip: numpy.float64, tsqem: numpy.float64, M_d_fan: numpy.float64, RSS_fan: numpy.float64) → numpy.float64[source]

Compute the tone component of the fan inlet mean-square acoustic pressure (msap)

Parameters
  • settings (Dict[str, Any]) – pyna settings

  • theta (np.float64) – polar directivity angle [deg]

  • M_tip (np.float64) – relative (i.e., helical) tip Mach number [-]

  • tsqem (np.float64) – tone temperature-flow power base term [-]

  • M_d_fan (np.float64) – fan rotor relative tip Mach number at design [-]

  • RSS_fan – fan rotor-stator spacing [%]

Returns

tonlv_I

Return type

np.float64

theory

The Heidmann method with GEAE revision is used to assess the single-stage fan broadband noise. Single-stage fan rotor-stator interaction tones are assessed using the Heidmann method with the Allied Signal revision. The aforementioned methods distinguish between forward radiated noise (i.e. inlet noise) and rearward radiated noise (i.e. discharge noise), resulting in 4 noise components to be estimated: inlet broadband, inlet tones, discharge broadband and discharge tones. The broadband level, bblv, and tone level, tonlv, of these components is computed using:

\[\begin{split}\begin{aligned} bblv_{comp} =& \ T + F_1 + F_2 + F_3 + C + F_{\textrm{freq}}\\ tonlv_{comp} =& \ T + F_1 + F_2 + F_3 + C \\ \end{aligned}\end{split}\]

where the term, \(T\), accounting for the effects of fan temperature rise, fan mass flow as well as the Doppler effect (\((1-M_0 cos\theta)\)), is given by:

\[T = 10\log_{10} \left[ \frac{1}{\rho_{sl}^2 c_{sl}^4} \frac{(1.8 \Delta T_{fan}^* T_0)^2}{(r_s^*)^2} \frac{(2.20462\ \dot{m}^* \rho_0 c_0 A_e)}{(1 - M_0 \cos \theta )^4 } \right]\]

The tip Mach number correction term, \(F_{1}\), the rotor-stator spacing correction term, \(F_{2}\), the polar directivity correction term, \(F_{3}:math:\), the inlet guide vane correction term, \(C\), and the broadband frequency dependent term, \(F_{\textrm{freq}}\), are defined for the different noise components in the following sections. The tip Mach number \(M_{tip} = \sqrt{ M_{flow}^2 + M_{tip,tan}^2}\) where \(M_{flow} = \frac{\dot{m}^*}{A^*}\) and \(M_{tip,tan} = \pi N^*\). Note that the coefficients in the equation above are used for changes of units of the temperature and mass flow terms (1.8 to transform from K to R and 2.20462 from kg/s to lbm/s).

Inlet broadband (IB) noise component

The tip Mach number dependent term for the inlet broadband noise component is defined by:

\[\begin{split}F_{1,IB} = \begin{cases} 58.5 & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} \leq 0.9$} \\ 58.5 - 50 \log_{10} \left(\frac{M_{tip}}{0.9}\right) & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} > 0.9$}\\ 58.5 + 20 \log_{10} \left(\frac{M_{tip,des}}{0.9}\right) & \textrm{if $M_{tip,des} > 1$ and $M_{tip} \leq 0.9$}\\ 58.5 + 20 \log_{10} \left(\frac{M_{tip,des}}{0.9}\right) - 50\log_{10}\left(\frac{M_{tip}}{0.9}\right) & \textrm{if $M_{tip,des} > 1$ and $M_{tip} > 0.9$}\\ \end{cases}\end{split}\]

The rotor-stator spacing correction term for inlet broadband noise \(F_{3,IB} = 0\). The \(\theta\)-correction term, \(F_{3,IB}\), is tabulated online. The inlet guide vane correction term C = 0dB. The spectral distribution function for fan inlet noise is given by:

\[F_{\textrm{freq, inlet}} = 10 \log_{10} \left[ \exp \left[ -0.5 \left(\frac{\log \frac{f}{2.5f_b}}{\log 2.2} \right)^2 \right] \right] = -3.49299 \left(\log \frac{f}{2.5 f_b} \right)^2\]

Discharge broadband (DB) noise component

The tip Mach number dependent term for the inlet broadband noise component is defined by:

\[\begin{split}F_{1,DB} = \begin{cases} 63.0 & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} \leq 1$} \\ 63.0 - 30 \log_{10} \left(M_{tip}\right) & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} > 1$}\\ 63.0 + 20 \log_{10} \left(M_{tip,des}\right) & \textrm{if $M_{tip,des} > 1$ and $M_{tip} \leq 1$}\\ 63.0 + 20 \log_{10} \left(M_{tip,des}\right) - 30\log_{10}\left(M_{tip}\right) & \textrm{if $M_{tip,des} > 1$ and $M_{tip} > 1$}\\ \end{cases}\end{split}\]

The rotor-stator spacing correction term is given by \(F_{2,IB} = -5 \log_{10}\left( \frac{RSS}{300} \right)\). The \(\theta\)-correction term (\(F_{3,DB})\) is tabulated online. If the fan stage has inlet guide vanes, the correction term C = 3dB. The spectral distribution function for fan discharge noise is given by the same equation as for inlet broadband noise.

Inlet tones (IT) noise component

The tip Mach number dependent term for the inlet tones noise component is defined by:

\[\begin{split}F_{1,IT} = \begin{cases} 54.5 & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} \leq 0.72$} \\ \min\left[54.5 + 50 \log_{10} \left(\frac{M_{tip}}{0.72}\right) , 53.5 + 80 \log_{10} \left(\frac{1}{M_{tip}}\right) \right] & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} > 0.72$}\\ 54.5 + 20 \log_{10} \left(M_{tip,des}\right) & \textrm{if $M_{tip,des} > 1$ and $M_{tip} \leq 0.72$}\\ \min\Bigl[54.5 + 20 \log_{10} \left(M_{tip}\right) + 50\log_{10}\left(\frac{M_{tip}}{0.72}\right) , & \\ 53.5 + 80 \log_{10} \left(\frac{M_{tip,des}}{M_{tip}}\right) \Bigr] & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} > 0.72$}\\ \end{cases}\end{split}\]

The rotor-stator spacing correction term is given by \(F_{2,TI} = -10 \log_{10}\left( \frac{RSS}{300} \right)\). The \(\theta\) correction term (\(F_{3,IT}\)) is tabulated online. The inlet guide vane correction term C = 0dB.

Discharge tones (DT) noise component

The tip Mach number dependent term for the inlet tones noise component is defined by:

\[\begin{split}F_{1,DT} = \begin{cases} 59.0 & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} \leq 1$} \\ 59.0 - 20 \log_{10} \left(M_{tip}\right) & \textrm{if $M_{tip,des} \leq 1$ and $M_{tip} > 1$}\\ 59.0 + 20 \log_{10} \left(M_{tip,des}\right) & \textrm{if $M_{tip,des} > 1$ and $M_{tip} \leq 1$}\\ 59.0 + 20 \log_{10} \left(M_{tip,des}\right) - 20\log_{10}\left(M_{tip}\right) & \textrm{if $M_{tip,des} > 1$ and $M_{tip} > 1$}\\ \end{cases}\end{split}\]

The rotor-stator spacing correction term is given by \(F_{2,DT} = -10 \log_{10}\left( \frac{RSS}{300} \right)\). The \(\theta\) correction term (\(F_{3,DT}\)) is tabulated online. If the fan stage has inlet guide vanes, the correction term C = 6dB.

Harmonics

The fundamental fan tone occurs at the blade pass frequency (bfp), given by:

\[bpf = \frac{N_f^* c_0 B_f}{d_f(1 - M_0 \cos\theta)}\]

where \(B_f\) is the number of rotor blades, \(d_f\) is the fan diameter and \((1 - M_0 \cos\theta)\) is the Doppler correction factor. The level of the fundamental tone harmonics are determined by the harmonic fall-off rates. These fall-off rates are driven by the fan cut-off phenomenon. The fundamental cutoff factor, \(\delta\), at which the magnitude of the fan tones is attenuated is determined by the ratio between the number of stator vanes, \(V_f\), and rotor blades, \(B_f\):

\[\delta = \frac{M_{tip}}{|1 - \frac{V_f}{B_f}|}\]

The cut-off index, \(i_{cut}\), is computed by:

\[\begin{split}\begin{cases} i_{cut} = 1 \quad & \textrm{if}\ \quad \delta < 1.05 \ \textrm{and}\ M_{tip, tan} < 1 \\ i_{cut} = 0 \quad & \textrm{if}\ \quad \textrm{otherwise} \\ \end{cases}\end{split}\]

The fall-off rates for the k-th harmonic of the inlet and discharge tones are given by:

\[\begin{split}\begin{cases} L_{\textrm{fall}} = 8 & \textrm{if}\ i_{cut} = 1\ \textrm{and}\ k = 1 \\ L_{\textrm{fall}} = 0 & \textrm{if}\ i_{cut} = 0\ \textrm{and}\ k = 1 \\ L_{\textrm{fall}} = 9.2 & \textrm{if}\ k = 2 \\ L_{\textrm{fall}} = 3k + 1.8 & \textrm{if}\ k \geq 3 \\ \end{cases}\end{split}\]

The fall-off rate for each harmonic is subtracted from the tone level of each harmonic \(k \in [1, N_{harmonics}]\). Subsequently, the tone-level of each of the harmonics have to be added to correct one-third octave frequency band. A one-third octave frequency band extends between \([2^{-1/6}f_c, 2^{1/6}f_c]\) and \(T_{D}\).

Combining of the fan noise components

The fan inlet and discharge mean-square acoustic pressure is computed by combining the broadband spectrum and rotor-stator interaction tones:

\[\begin{split}\begin{aligned} <p^2>^*_{\textrm{inlet}} & = bblv_I + T_I \\ <p^2>^*_{\textrm{discharge}} & = bblv_D + T_D \\ \end{aligned}\end{split}\]

Fan liner noise suppression

The effect of fan liner treatment on the overall fan noise is assessed using the NASA CR-202309 method. The fan suppression tables for inlet and discharge noise are tabulated online as a function of frequency, \(f\), and polar directivity angle, \(\theta\).

\[\begin{split}\begin{aligned} <p^2>^*_{\textrm{inlet, supp.}} & = \quad f_{supp, inlet}(\theta, f) <p^2>^*_{\textrm{inlet}} \\ <p^2>^*_{\textrm{discharge, supp.}} & = \quad f_{supp, discharge}(\theta, f) <p^2>^*_{\textrm{discharge}} \\ \end{aligned}\end{split}\]