levels_int

class description

class levels_int.LevelsInt(**kwargs)[source]

Bases: openmdao.core.explicitcomponent.ExplicitComponent

Compute noise levels according to ICAO Annex 16 Volume I: Noise.

  • Sound pressure level (spl)

  • Integrated overall sound pressure level (ioaspl)

  • Integrated pnlt (ipnlt)

  • Effective perceived noise level (epnl)

The LevelsInt component requires the following inputs:

  • inputs['oaspl']: overall sound pressure level [dB]

  • inputs['pnlt']: perceived noise level, tone corrected [dB]

  • inputs['C']: tone-corrections [dB]

  • inputs['t_o']: observer time [s]

The LevelsInt component computes the following outputs:

  • outputs['ioaspl']: time-integrated overall sound pressure level [-]

  • outputs['ipnlt']: time-integrated pnlt [-]

  • outputs['epnl']: effective perceived noise level [EPNdB]

The LevelsInt component has the following options:

  • settings: pyna settings

  • n_t: number of time steps in the noise time series

compute(inputs: openmdao.vectors.default_vector.DefaultVector, outputs: openmdao.vectors.default_vector.DefaultVector)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

Parameters
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict or None) – If not None, dict containing discrete input values.

  • discrete_outputs (dict or None) – If not None, dict containing discrete output values.

initialize()[source]

Perform any one-time initialization run at instantiation.

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

Warning

The Julia version of the Levels component, levels_int.jl, is not documented yet. However, it is very similar to the Python version, levels.py. More information and examples on how OpenMDAO.jl components work can be found here.

theory

The effective perceived noise level (EPNL) is calculated using the method described in ICAO Annex 16, Volume I cite{ICAO2017}. Firstly, the tone-corrected perceived noise level signal, \(PNLT\), and the tone corrections matrix, \(C\), at the observer are interpolated at time steps \(\Delta t = 0.5s\). The effective perceived noise level, \(EPNL\), is given by:

\[EPNL = \max (PNLT) + D\]

The duration correction, \(D\), is given by:

\[D = 10 \log_{10} \frac{1}{t_0} \sum_{i\in \mathcal{I}} 10^{\frac{PNLT}{10}} - \max (PNLT)\]

where \(t_0 = 10s\) and $mathcal{I}$ contains all points in the \(PNLT\) time series that satisfy \(PNLT > PNLTM - 10\). Finally, $PNLTM$ includes a correction term in the case of one-third octave band-sharing:

\[PNLTM = PNLT[i_{\max}] + \Delta_c\]

where \(i_{\max}\) is the index of the maximum value of the \(PNLT\) time series. The correction term, \(\Delta_c\), is given by:

\[\begin{split}\Delta_c = \begin{cases} C_{\textrm{avg}} = \frac{1}{5}\sum_{i=-2}^{2}C[i_{\max} + i] \quad & \textrm{if} \quad C_{\textrm{avg}} > C(i_{\max})\\ 0 \quad & \textrm{otherwise}\\ \end{cases}\end{split}\]