Ir al contenido

Potencia acústica por barrido de intensidad

Normas aplicables: ISO 9614Referencias: Fahy 1995

Las vías de presión hasta el nivel de potencia acústica fallan exactamente donde viven las máquinas: en una nave donde las líneas vecinas no se pueden apagar. La intensidad acústica es el flujo neto de energía, así que distingue la energía que sale de la fuente de la energía estacionaria que solo atraviesa la superficie de medición, y los métodos de barrido construidos sobre ella toleran un ruido extraño que derrotaría a cualquier método de presión. Esta guía cubre los dos: la determinación de ingeniería/inspección de ISO 9614-2 con sus indicadores de campo y su grado alcanzado por banda, el barrido de precisión (grado 1) de ISO 9614-3 con sus criterios más estrictos, y la ficha de ensayo de estilo acreditado. La propia sonda, su sesgo por diferencias finitas y el método de puntos discretos de ISO 9614-1 viven en Intensidad acústica (p-p); qué vía encaja con qué trabajo se sopesa en Potencia acústica.

Una sonda p-p (véase la guía de Intensidad acústica) se barre de forma continua sobre cada uno de los segmentos de una superficie que encierra la fuente, informando de la intensidad normal con signo promediada por segmento — una fila por segmento, una columna por banda.

Una sonda de intensidad acústica p-p de dos micrófonos: dos micrófonos de presión separados por un espaciador, a partir de los cuales se estima el gradiente de presión y, por tanto, la intensidad normalUna sonda de intensidad acústica p-p de dos micrófonos: dos micrófonos de presión separados por un espaciador, a partir de los cuales se estima el gradiente de presión y, por tanto, la intensidad normal

Las potencias parciales suman el total:

Una sonda p-p recorre el barrido en serpentina sobre la cara superior de la caja de medición mientras aparecen detrás las flechas de intensidad normal, y las potencias parciales de las cinco caras se acumulan en el nivel de potencia acústica L_W.

Descargar la animación (WebM)

Una sonda p-p recorre el barrido en serpentina sobre la cara superior de la caja de medición mientras aparecen detrás las flechas de intensidad normal, y las potencias parciales de las cinco caras se acumulan en el nivel de potencia acústica L_W.

Descargar la animación (WebM)

Todo lo anterior llega en forma de array; aquí es de donde sale. La superficie de medición se divide en al menos cuatro segmentos (apartado 8.2), elegidos en lo posible de modo que una zona de flujo neto entrante no se promedie junto a una de flujo saliente, y de modo que cada segmento mire a un componente de la máquina. Su distancia media a la superficie de la fuente es de al menos 200 mm para una superficie vibrante extensa, reducible a 100 mm para una fuente pequeña y compacta — momento en el cual la acción a) de la Tabla B.1, «alejar la superficie», deja de estar a tu alcance.

El barrido en sí es un recorrido, no un conjunto de puntos. Su elemento básico es una línea recta; el recorrido debe cubrir el segmento de manera uniforme y a velocidad uniforme, con las líneas contiguas igualmente separadas, y sobre la superficie de medición inicial la separación media entre líneas no debe superar la distancia media del segmento a la fuente (apartado 8.1). La velocidad de barrido es de 0,1 m/s a 0,5 m/s a mano y de 0 m/s a 1 m/s de forma mecánica; cada segmento lleva al menos 20 s, arrancando y parando la promediación temporal en los límites del segmento para que el declarado pertenezca a ese segmento y a nada más. El eje de la sonda se mantiene normal a la superficie durante todo el recorrido, y quien mide se coloca al lado del segmento que está barriendo, no delante.

Para el grado de ingeniería cada segmento se barre dos veces, y los dos recorridos deben ser ortogonales — el segundo barrido girado 90° siempre que sea posible (apartado 8.3.1). Eso es normal_intensity_2: no una repetición del mismo barrido, sino el girado. El criterio 3 existe precisamente para cazar un campo que no se repite, y repetir un recorrido idéntico lo supera en una determinación que un recorrido girado suspendería. La nota 10 de ese mismo apartado añade la consecuencia práctica: por encima de , es probable que las velocidades de barrido superiores a 0,25 m/s incumplan el criterio 3 sea cual sea la estabilidad del campo.

Una banda cuya potencia neta no es positiva (: entra por la superficie más energía de la que sale, procedente de una fuente más fuerte de fuera) es no determinable y se informa como NaN (apartado 9.2). Dos indicadores de campo normativos cualifican las bandas que sí lo son. El indicador superficial presión-intensidad mide cuán reactivo o cuán contaminado está el campo, y el indicador de potencia parcial negativa mide cuánta energía circula hacia dentro y hacia fuera a través de la superficie:

donde es el nivel de presión de superficie ponderado por áreas sobre los segmentos. Estos son los nombres de ISO 9614-2 para los dos indicadores del Anexo A de ISO 9614-1 que la guía de intensidad llama y : y con segmentos de áreas iguales, así que los indicadores de campo de allí y los criterios de cualificación de aquí son los mismos dos números con las notaciones de dos normas.

La capacidad dinámica de la sonda (índice de intensidad residual de presión menos el factor de sesgo , 10 dB para el grado 2 y 7 dB para el grado 3) debe superar (criterio 1); es el criterio 2 (obligatorio para el grado 2); y los dos barridos girados deben coincidir dentro del límite de la Tabla 2 por segmento (criterio 3). Una banda es de grado ingeniería cuando se cumplen los criterios 1, 2 y 3, de inspección cuando se cumplen 1 y 3, y en caso contrario none.

Ninguno de los dos indicadores es un booleano, y los dos llevan escala. se queda cerca de cero cuando todo lo que encierra la superficie radia hacia fuera y no le llega nada más; unos pocos decibelios es lo normal en trabajo in situ; y el apartado 8.3.2 pide que se haga todo lo posible por mantenerlo por debajo de 10 dB mediante la elección de la superficie. Un grande tiene dos causas con arreglos opuestos: un campo próximo reactivo, que se resuelve alejando la superficie, y una fuente externa fuerte, que se resuelve acercando la superficie a la máquina o apantallándola. se lee de otra manera: cero cuando todos los segmentos radian hacia fuera, y 3 dB cuando las potencias parciales entrante y saliente ya son comparables a la neta, así que por encima de 3 dB la superficie está a caballo entre dos fuentes y el arreglo es volver a recortarla — promediar más tiempo no ayuda, porque el problema es dónde está la superficie, no lo ruidosa que sea la estimación.

Cuando falla el criterio 1, los remedios son baratos antes que caros: agrandar la superficie alejándola del campo próximo, apantallar o retirar la fuente extraña, montar un espaciador mayor para subir (véase Elegir la sonda), y solo después plantearse mejor equipo. Rebajar la pretensión de grado de ingeniería a inspección da por sí sola 3 dB de , porque pasa de 10 dB a 7 dB — a costa del grado.

import numpy as np
from phonometry import emission
# 6 segmentos de superficie x 6 bandas de octava: intensidad normal con signo (W/m^2)
# de dos barridos repetidos, las áreas de los segmentos y el SPL superficial por segmento (dB).
freqs = np.array([125, 250, 500, 1000, 2000, 4000], dtype=float)
areas = np.full(6, 0.5) # 0.5 m^2 por segmento
rng = np.random.default_rng(0)
scan1 = np.abs(rng.normal(1e-4, 2e-5, size=(6, 6))) # (segmentos, bandas)
scan2 = scan1 * (1.0 + rng.normal(0.0, 0.02, size=(6, 6)))
pressure = np.full((6, 6), 80.0)
res = emission.sound_power_intensity(
scan1, areas, normal_intensity_2=scan2, pressure_levels=pressure,
pressure_residual_index=12.0, frequencies=freqs,
band_type="octave", grade="engineering",
)
print(np.round(res.sound_power_level, 1)) # LW por banda
print(round(res.sound_power_level_a, 1)) # LWA sobre las bandas determinables
print(round(float(res.dynamic_capability_index[0]), 1)) # Ld = 12 - 10 = 2.0 dB
print(round(float(res.surface_pressure_intensity_index[0]), 2)) # FpI
print(list(res.achieved_grade)) # grado por banda
res.plot() # espectro LW; bandas no positivas (indeterminables) con trama (requiere matplotlib)
El espectro de nivel de potencia acústica por barrido de intensidad del ejemplo de ISO 9614-2, una barra por banda de octava de 125 Hz a 4 kHz todas cerca de 85 dB, con el total ponderado A de 90,9 dB(A) en el títuloEl espectro de nivel de potencia acústica por barrido de intensidad del ejemplo de ISO 9614-2, una barra por banda de octava de 125 Hz a 4 kHz todas cerca de 85 dB, con el total ponderado A de 90,9 dB(A) en el título

Las potencias parciales de los seis segmentos suman el de cada banda; aquí todas las bandas tienen potencia neta positiva y superan los criterios de indicadores de campo en grado de ingeniería, así que las seis barras se sostienen, y el total ponderado A de 90,9 dB(A) encabeza el título.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import emission
# 6 segmentos de superficie x 6 bandas de octava: intensidad normal con signo (W/m^2)
# de dos barridos repetidos, las áreas de los segmentos y el SPL superficial por segmento (dB).
freqs = np.array([125, 250, 500, 1000, 2000, 4000], dtype=float)
areas = np.full(6, 0.5) # 0.5 m^2 por segmento
rng = np.random.default_rng(0)
scan1 = np.abs(rng.normal(1e-4, 2e-5, size=(6, 6))) # (segmentos, bandas)
scan2 = scan1 * (1.0 + rng.normal(0.0, 0.02, size=(6, 6)))
pressure = np.full((6, 6), 80.0)
res = emission.sound_power_intensity(
scan1, areas, normal_intensity_2=scan2, pressure_levels=pressure,
pressure_residual_index=12.0, frequencies=freqs,
band_type="octave", grade="engineering",
)
# res es el SoundPowerIntensityResult calculado arriba. Una línea:
res.plot(language="es")
plt.show()
# A mano: un espectro de barras de LW con el total ponderado A en el título.
freqs = res.frequencies
positions = np.arange(freqs.size)
fig, ax = plt.subplots()
ax.bar(positions, res.sound_power_level, width=0.7, color="#1f77b4")
ax.set_xticks(positions)
ax.set_xticklabels([f"{f:g}" for f in freqs], rotation=45, ha="right")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel de potencia acústica LW [dB]")
ax.set_title(
f"Potencia acústica por barrido de intensidad (ISO 9614-2) "
f"LWA = {res.sound_power_level_a:.1f} dB(A)")
plt.show()

Suministrar normal_intensity_2 (el segundo barrido, el girado) promedia ambos para las potencias parciales y evalúa el criterio 3; pressure_levels habilita ; pressure_residual_index () más un segundo barrido habilita el grado alcanzado por banda. La intensidad por diferencias finitas de la sonda tiene un sesgo dependiente de la frecuencia que se trata en la guía de intensidad.

sound_power_level_a no es una suma sobre todas las bandas, y la diferencia importa para cualquier cosa que vaya a compararse con un límite. Dos cosas dejan una banda fuera, por razones distintas:

  • una banda cuya potencia neta no es positiva no es determinable en absoluto (apartado 9.2) y vuelve como NaN; negative_band la señala;
  • una banda que es determinable pero incumple el criterio 1, o el criterio 2 en grado de ingeniería, es un número perfectamente bueno que el apartado 10.6 b) prohíbe incluir en una determinación ponderada A salvo que su contribución sea despreciable según el apartado 4.3; a_weighting_omitted_bands registra exactamente cuáles.

El apartado 10.6 b) hace además que declarar esa omisión forme parte de la determinación: un informado sin decir qué bandas se descartaron no es conforme. La consecuencia va en un solo sentido — el total es una subestimación, y quien lee puede acotarlo sumando las bandas omitidas a su nivel calculado y devolviéndolas. Ojo también al modo de fallo del propio cribado: sin pressure_levels ni pressure_residual_index los criterios no se pueden evaluar, así que se suman todas las bandas determinables y un SoundPowerWarning lo advierte. Un total silencioso no es lo mismo que un total cribado.

El criterio 3 no es del todo una barrera dura

Sección titulada «El criterio 3 no es del todo una barrera dura»

El criterio 3 se evalúa por segmento y por banda, que es la razón de que repeatability vuelva por segmento en lugar de como un veredicto único. Un segmento que falla no anula automáticamente su banda: el apartado 8.3.1 permite que la determinación se sostenga cuando las potencias parciales sumadas de los segmentos que fallan quedan más de 10 dB por debajo de la potencia de fuente obtenida de los que pasan, siendo entonces despreciable su contribución. Lo que no permite es el silencio: las bandas en las que no se cumplió el criterio 3 deben llevar en el informe una declaración de que su incertidumbre supera el valor de la Tabla 2 para el grado pretendido.

El valor por defecto de repeatability_limit merece el mismo cuidado. La Tabla 2 tabula por banda solo para el grado de ingeniería; para el grado de inspección da un único valor ponderado A de 4 dB, y esta implementación reutiliza esos 4 dB como límite por banda de inspección. Es una extrapolación deliberada, no un valor normativo, y es más laxa que cualquier límite de grado 2 de la tabla — así que superar el criterio 3 en grado de inspección no es prueba de repetibilidad de grado 2. La Tabla 2 está además acotada: _table2_s lanza un error fuera de las bandas de octava de 63 Hz a 4 kHz y de las de tercio de octava de 50 Hz a 6,3 kHz, de modo que una octava de 8 kHz es una excepción, no un límite ancho.

El "Sonda de intensidad p-p clase 1 (IEC 61043)" de la ficha es una afirmación con apartados detrás. El instrumento incluida su sonda debe cumplir la IEC 61043, verificado en laboratorio al menos una vez al año — o al menos cada dos años si se aplica un calibrador de intensidad antes de cada determinación de potencia (apartado 6.2). Antes de cada serie, un calibrador IEC 60942 de clase 0 o de clase 1 pasa por cada micrófono de la sonda (apartado 6.2.1), y el ensayo de inversión de la sonda del apartado 6.2.2 confirma in situ que la cadena está de acuerdo sobre cuál es el sentido saliente; los dos procedimientos, y lo que significan sus fallos, están en Intensidad acústica. El apartado 10.5 hace que declarar ambos forme parte del entregable.

El entorno también tiene límites. La velocidad media del aire sobre la superficie de medición debe quedar por debajo de 4 m/s, o hay que usar un paravientos (apartado 6.1); la presión estática y la temperatura se miden porque fijan la densidad y la velocidad del sonido con las que se calcula la intensidad.

Cuando falla un criterio, la Tabla B.1 del Anexo B enumera qué cambiar en lugar de dejarlo en un False: aumentar la promediación o el tiempo de barrido, mover la superficie de medición, duplicar la densidad de líneas de barrido, subdividir la superficie en más segmentos, o apantallar la fuente extraña. Los códigos de acción están ligados a qué criterio falló, que es la razón de que el resultado informe de los criterios por separado en lugar de con un único booleano.

ParámetroTipoUnidadesRango / valor por defectoNotas
normal_intensityarray 2DW/m²(N_seg, N_bands)Intensidad normal con signo promediada por segmento (primer barrido)
areasarray 1D> 0, (N_seg,)Áreas de los segmentos
normal_intensity_2array 2DW/m²misma formaSegundo barrido → criterio 3 y promediado
pressure_levelsarray 2DdBmisma formaSPL por segmento
pressure_residual_indexfloat o array 1DdB / criterio 1
frequenciesarray 1DHzoctava 63 Hz-4 kHz, tercio 50 Hz-6,3 kHz y límites de la Tabla 2; fuera de ese rango la Tabla 2 no tiene y la llamada lanza un error
band_typestr'third' (por defecto) / 'octave'Consulta de la Tabla 2
gradestr'engineering' (por defecto) / 'survey'Selecciona
repeatability_limitfloat o array 1DdBpor defecto Tabla 2 (inspección: los 4 dB ponderados A reutilizados por banda)Sobrescribe del criterio 3

Devuelve un SoundPowerIntensityResult: partial_power/partial_power_level por segmento y banda, sound_power/sound_power_level (total de banda, NaN donde negative_band), negative_band (las bandas no determinables), surface_pressure_intensity_index (), negative_partial_power_index (), repeatability, dynamic_capability_index (), achieved_grade, a_weighting_omitted_bands (las bandas que el apartado 10.6 b) dejó fuera de ), surface_area, sound_power_level_a y grade.

partial_power_level es el campo que paga todo el método. Una determinación por presión devuelve un número por banda; un barrido de intensidad devuelve uno por segmento y banda, con signo, de modo que el resultado dice por dónde sale la potencia de la máquina y por dónde vuelve a entrar:

Las cinco caras de una caja de medición desplegadas en plano como un desarrollo, cada una teselada en cuatro segmentos y sombreada según su nivel de potencia parcial en decibelios re 1 pW. La cara frontal es la más sonora, con 73 a 74 dB, los laterales cerca de 68 dB, y un segmento de la cara trasera aparece rayado y con signo negativo porque su potencia neta fluye hacia dentro. Debajo, un gráfico de barras con los totales de las cinco caras frente al nivel de potencia acústica de bandaLas cinco caras de una caja de medición desplegadas en plano como un desarrollo, cada una teselada en cuatro segmentos y sombreada según su nivel de potencia parcial en decibelios re 1 pW. La cara frontal es la más sonora, con 73 a 74 dB, los laterales cerca de 68 dB, y un segmento de la cara trasera aparece rayado y con signo negativo porque su potencia neta fluye hacia dentro. Debajo, un gráfico de barras con los totales de las cinco caras frente al nivel de potencia acústica de banda

La caja de medición desplegada, una tesela por segmento. La cara frontal se lleva la mayor parte de la emisión; el segmento rayado de la cara a la sombra da un neto entrante, que es lo normal junto a un vecino más ruidoso y es exactamente lo que cuenta . Un espectro de sumado en bandas no puede enseñar nada de esto, y es el mapa, no el espectro, el que te dice qué panel hay que tratar.

Mostrar el código de esta figura
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import numpy as np
# Una máquina de 1,2 x 0,8 x 1,0 m encajonada a d = 0,25 m: cinco caras, cuatro
# segmentos cada una, y uno de ellos recibiendo flujo neto de un vecino más
# ruidoso.
area_cara = np.array([1.7 * 1.5, 1.3 * 1.5, 1.7 * 1.5, 1.3 * 1.5, 1.7 * 1.3])
area_seg = np.repeat(area_cara / 4.0, 4)
reparto = np.array([2.6, 2.2, 2.0, 1.8, 0.9, 0.8, 0.7, 0.7,
0.5, 0.4, -0.35, 0.3, 0.8, 0.7, 0.6, 0.6,
1.1, 1.0, 0.9, 0.8])
res = emission.sound_power_intensity(
(reparto * 1.0e-5 / area_seg)[:, None], area_seg,
frequencies=np.array([500.0]))
nivel, con_signo = res.partial_power_level[:, 0], res.partial_power[:, 0]
# El desarrollo: las cuatro caras laterales en fila y la superior sobre la frontal.
origen = ((0, 0), (1.7, 0), (3.0, 0), (4.7, 0), (0, 1.5))
tamano = ((1.7, 1.5), (1.3, 1.5), (1.7, 1.5), (1.3, 1.5), (1.7, 1.3))
fig, ax = plt.subplots(figsize=(11, 5))
for f, ((ox, oy), (w, h)) in enumerate(zip(origen, tamano, strict=True)):
for k in range(4):
valor = nivel[4 * f + k]
ax.add_patch(mpatches.Rectangle(
(ox + (k % 2) * w / 2, oy + (1 - k // 2) * h / 2), w / 2, h / 2,
facecolor=plt.get_cmap("viridis")(
(valor - nivel.min()) / (nivel.max() - nivel.min())),
edgecolor="black",
hatch="//" if con_signo[4 * f + k] < 0 else None))
ax.set(xlim=(-0.2, 6.2), ylim=(-0.4, 3.0), aspect="equal")
plt.show()

2. Barrido de intensidad de precisión (ISO 9614-3)

Sección titulada «2. Barrido de intensidad de precisión (ISO 9614-3)»

ISO 9614-3 es el método de barrido de grado 1: como ISO 9614-2, integra la intensidad normal sobre una superficie que encierra la fuente, pero con un barrido continuo, criterios de indicadores de campo más estrictos y un presupuesto de incertidumbre explícito.

Barrido de intensidad acústica de precisión de ISO 9614-3: una fuente encerrada por una superficie de medición dividida en segmentos, una sonda de intensidad de dos micrófonos barrida a lo largo de un recorrido en serpentina sobre cada segmento, y la potencia acústica formada sumando la intensidad normal por el área del segmento, sujeta a los criterios de aceptación de los indicadores de campoBarrido de intensidad acústica de precisión de ISO 9614-3: una fuente encerrada por una superficie de medición dividida en segmentos, una sonda de intensidad de dos micrófonos barrida a lo largo de un recorrido en serpentina sobre cada segmento, y la potencia acústica formada sumando la intensidad normal por el área del segmento, sujeta a los criterios de aceptación de los indicadores de campo

Potencia y nivel (apartado 7). La potencia parcial de cada segmento es ; el total da , . Una banda cuya potencia neta no es positiva () se marca no aplicable en lugar de registrarse. Los indicadores de campo (variabilidad temporal , los indicadores presión-intensidad con y sin signo, y la no uniformidad ) gobiernan los cinco criterios de aceptación.

import numpy as np
from phonometry import emission
# Una superficie totalmente envolvente con una intensidad normal uniforme In = W/S
# recupera exactamente la potencia de la fuente: LW = 10*lg(W/P0). Aquí W = 100 uW -> 80 dB.
areas = np.array([0.5, 1.0, 0.25, 2.0])
w = 1.0e-4
i_n = np.full(areas.shape, w / float(areas.sum()))
res = emission.sound_power_intensity_precision(i_n, areas)
print(round(float(res.sound_power[0]), 6)) # 0.0001
print(round(float(res.sound_power_level[0]), 2)) # 80.0

A lo largo de varias bandas el resultado lleva el por banda (NaN donde la potencia neta es no positiva), marca esas bandas como not_applicable y las dibuja con la línea única result.plot() de la figura de abajo:

import numpy as np
from phonometry import emission
# Cuatro superficies parciales barridas sobre cinco bandas de tercio de octava. Cada
# celda de partial_intensity es la intensidad normal con signo In_i (W/m^2); areas son
# las áreas de las superficies parciales Si. La banda de 250 Hz tiene potencia neta
# negativa (un campo localmente reactivo), así que ISO 9614-3 la marca no aplicable (apartado 9.2) -> NaN.
freqs = np.array([250, 500, 1000, 2000, 4000], float)
areas = np.array([0.5, 1.0, 0.75, 0.5])
base_intensity = np.array([2.0e-6, 8.0e-6, 2.0e-5, 1.0e-5, 3.0e-6])
partial_intensity = base_intensity[None, :] * np.array([1.0, 1.1, 0.9, 1.05])[:, None]
partial_intensity[:, 0] = [2.0e-6, -3.0e-6, -4.0e-6, -1.0e-6] # banda de potencia neta negativa
result = emission.sound_power_intensity_precision(partial_intensity, areas, frequencies=freqs)
print(result.not_applicable_band.tolist()) # [True, False, False, False, False]
print(round(result.sound_power_level_a, 1)) # 80.6
result.plot() # espectro LW; la banda no aplicable con trama (requiere matplotlib)
El espectro de nivel de potencia acústica del barrido de intensidad de precisión sobre cinco bandas de tercio de octava, cuatro barras determinadas y una banda de 250 Hz con trama y en gris marcada como no aplicable porque su intensidad neta es negativa, con el total ponderado A de 80,6 dB(A) en el títuloEl espectro de nivel de potencia acústica del barrido de intensidad de precisión sobre cinco bandas de tercio de octava, cuatro barras determinadas y una banda de 250 Hz con trama y en gris marcada como no aplicable porque su intensidad neta es negativa, con el total ponderado A de 80,6 dB(A) en el título

La banda de 250 Hz da un neto negativo (más energía entrando que saliendo), así que ISO 9614-3 la declara no aplicable; la figura la trama y la agrisa mientras las cuatro bandas determinadas y el total ponderado A se mantienen.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import emission
# Cuatro superficies parciales barridas sobre cinco bandas de tercio de octava. Cada
# celda de partial_intensity es la intensidad normal con signo In_i (W/m^2); areas son
# las áreas de las superficies parciales Si. La banda de 250 Hz tiene potencia neta
# negativa (un campo localmente reactivo), así que ISO 9614-3 la marca no aplicable (apartado 9.2) -> NaN.
freqs = np.array([250, 500, 1000, 2000, 4000], float)
areas = np.array([0.5, 1.0, 0.75, 0.5])
base_intensity = np.array([2.0e-6, 8.0e-6, 2.0e-5, 1.0e-5, 3.0e-6])
partial_intensity = base_intensity[None, :] * np.array([1.0, 1.1, 0.9, 1.05])[:, None]
partial_intensity[:, 0] = [2.0e-6, -3.0e-6, -4.0e-6, -1.0e-6] # banda de potencia neta negativa
result = emission.sound_power_intensity_precision(partial_intensity, areas, frequencies=freqs)
# result es el PrecisionIntensityResult calculado arriba. Una línea:
result.plot(language="es")
plt.show()
# A mano: bandas determinadas como barras de LW; una banda no aplicable (su LW es NaN)
# se señala con una franja gris y con trama a plena altura en lugar de una barra de altura cero.
freqs = result.frequencies
positions = np.arange(freqs.size)
neg = result.not_applicable_band
lw = np.nan_to_num(result.sound_power_level)
fig, ax = plt.subplots()
ax.bar(positions[~neg], lw[~neg], width=0.7, color="#1f77b4")
for pos in positions[neg]:
ax.axvspan(pos - 0.35, pos + 0.35, facecolor="#888888", alpha=0.28,
hatch="//", edgecolor="#888888")
ax.set_xticks(positions)
ax.set_xticklabels([f"{f:g}" for f in freqs], rotation=45, ha="right")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel de potencia acústica LW [dB]")
ax.set_title(
f"Barrido de intensidad de precisión (ISO 9614-3) "
f"LWA = {result.sound_power_level_a:.1f} dB(A)")
plt.show()

sound_power_intensity_precision devuelve una potencia, no un grado: nada en ese resultado dice si la determinación es de grado 1. La barrera de aceptación es un par de llamadas aparte, y sin ella la mitad de precisión de esta página es un cálculo con los criterios quitados.

precision_field_indicators calcula los indicadores del Anexo B a partir de los mismos arrays por segmento — los indicadores presión-intensidad con y sin signo , la no uniformidad del campo y la variabilidad temporal cuando se aporta una intensidad por ventana temporal. precision_qualification evalúa después los cinco criterios del Anexo C por banda:

  1. repetibilidad del barrido, con de la Tabla 1 (Ec. C.1) — la mitad de la tolerancia que admite la ISO 9614-2, que es casi todo lo que cuesta la «precisión»;
  2. suficiencia de la capacidad dinámica, con y dB (Ec. C.2);
  3. dB (Ec. C.3), la contrapartida de precisión del límite de de la ISO 9614-2;
  4. no uniformidad del campo, (Ec. C.4);
  5. convergencia con la densidad de barrido, entre la densidad inicial y una doblada (Ec. C.5).

La conjunción es qualified, y lleva un matiz que conviene conocer antes de volver a barrer una máquina: el apartado C.1.6.2 acepta como resultado final una banda que cumple el criterio 5 aunque no cumpla el criterio 4. Un campo no uniforme que deja de cambiar cuando se dobla la densidad de barrido está muestreado adecuadamente; lo que invalida es el cambio con la densidad, no la no uniformidad en sí.

# Los mismos cuatro segmentos y cinco bandas, ahora con sus niveles de presión
# de superficie y un segundo barrido (girado 90°, de densidad doblada):
# suficiente para el Anexo C.
segment_pressure = np.full((4, 5), 74.0)
ind = emission.precision_field_indicators(partial_intensity, segment_pressure)
print(np.round(ind.f_pi_signed, 1)) # [12.2 4.9 0.9 3.9 9.2]
scan1 = 10.0 * np.log10(np.abs(partial_intensity.mean(axis=0)) / 1e-12)
scan2 = scan1 + np.array([0.9, 0.2, 0.1, 0.3, 0.4])
crit = emission.precision_qualification(
ind, scan_intensity_level_1=scan1, scan_intensity_level_2=scan2,
pressure_residual_index=15.0, # Ld = 15 - 10 = 5 dB
field_nonuniformity_1=ind.fs, field_nonuniformity_2=0.95 * ind.fs,
frequencies=freqs,
)
print(crit.criterion_2.tolist()) # [False, True, True, True, False]
print(crit.qualified.tolist()) # [False, True, True, True, False]

Aquí fallan dos bandas, y fallan por la razón que dicen los números: a 250 Hz y a 4 kHz el indicador con signo (12,2 dB y 9,2 dB) supera la dB de la sonda, así que el instrumento no puede resolver el flujo neto frente a su propio índice residual. Eso es el criterio 2, y la respuesta es una sonda mejor, un espaciador mayor o una superficie alejada del campo próximo reactivo, no un barrido más largo.

El resultado de barrido por intensidad (SoundPowerIntensityResult, ISO 9614-2) escribe mediante su propio .report() una ficha PDF de una página con el formato de una hoja de ensayo de potencia acústica, compartiendo el diseño y el contenedor ReportMetadata de la ficha de los métodos de presión. La línea de base normativa nombra la ISO 9614-2:1996 y el grado de medición, la tabla por bandas lista el nivel de potencia acústica de banda derivado de la intensidad, y el recuadro del recoge el total, la superficie de medición y el grado de determinación (el resultado por intensidad no tiene incertidumbre expandida ). verbose=True añade los indicadores de campo (superficial de presión-intensidad) y (potencia parcial negativa) y el grado alcanzado por banda; la franja de base indica el modelo de potencia parcial (las potencias parciales de segmento que suman ) y los criterios de cualificación del Anexo B. Una banda cuya potencia neta no es positiva no es determinable (apartado 9.2) y se imprime una raya.

import numpy as np
from phonometry import ReportMetadata, emission
freqs = np.array([125, 250, 500, 1000, 2000, 4000], float)
# Seis segmentos iguales de 0,5 m^2 (S = 3,0 m^2); un espectro de intensidad
# normal uniforme barrido dos veces, con el SPL de superficie y el índice
# residual del instrumento que cualifican cada banda en grado de ingeniería.
intensity = np.array([0.6e-4, 1.0e-4, 1.5e-4, 1.4e-4, 0.9e-4, 0.5e-4])
scan = np.tile(intensity, (6, 1))
res = emission.sound_power_intensity(
scan, np.full(6, 0.5), normal_intensity_2=scan.copy(),
pressure_levels=np.full((6, 6), 80.0), pressure_residual_index=15.0,
frequencies=freqs, band_type="octave", grade="engineering",
)
res.report(
"sound_power_intensity.pdf",
metadata=ReportMetadata(
client="Planta de fabricación de ejemplo",
specimen="Grupo hidráulico (de suelo)",
test_room="Nave con ruido de fondo estacionario",
instrumentation="Sonda de intensidad p-p clase 1 (IEC 61043), n/s 0042",
laboratory="Laboratorio de referencia Phonometry",
report_id="EXAMPLE-9614",
requirement=93.0,
),
language="es",
) # LWA = 90,9 dB(A) re 1 pW -> límite declarado 93 dB(A): CUMPLE

La ficha de ejemplo se regenera con make reports y se mantiene renderizada en el repositorio; pulsa la vista previa para abrir el PDF.

Informe de ejemplo de potencia acústica por intensidad ISO 9614-2 (PDF)

Ficha de una página de determinación de potencia acústica por intensidad ISO 9614-2: un encabezado con el cliente, la fuente de ruido, el entorno de ensayo en nave y la sonda de intensidad y el clima, la tabla en bandas de octava (125 Hz a 4 kHz) de niveles de potencia acústica de banda LW derivados de la intensidad, el espectro de potencia acústica LW(f) con eje de bandas nominal, el recuadro con el nivel de potencia acústica ponderado A LWA = 90,9 dB(A) re 1 pW con el LW total = 92,5 dB, la superficie de medición S = 3,00 m2 y el grado de ingeniería, y un veredicto CUMPLE frente al límite declarado de 93 dB(A), cerrada por una franja de base que indica el modelo de potencia parcial, los indicadores de campo FpI y F+/- y los criterios de cualificación del Anexo B.

Descargar el informe (PDF)

Ficha de potencia acústica por intensidad (SoundPowerIntensityResult.report), un barrido ISO 9614-2 de grado de ingeniería con los indicadores de campo y el LWA en recuadro.

PrecisionIntensityResult escribe su propia ficha, y no es la hoja de la parte 2 con otro título: la parte 3 pide que el informe indique cosas distintas (apartado 10). La tabla por bandas lleva el nivel normalizado que declara la norma (Ec. 10) junto al , y la incertidumbre expandida del apartado 4.3, dos veces la desviación típica de reproducibilidad de la Tabla 1 para esa banda; el pie de tabla nombra el rango de frecuencias que abarca la determinación, porque el apartado 4.3 lo exige cuando ese rango es más estrecho que de 50 Hz a 6,3 kHz. Un conjunto de tercios de octava se imprime en dos grupos de columnas contiguos, como una hoja acreditada encaja tantas bandas en una página. verbose=True tabula por banda los cuatro indicadores del Anexo B , , y , la tabulación que pide el punto f) 1) del capítulo 10, sobre la superficie de medición tal como los define el Anexo B, y la celda de cualificación que deciden los criterios.

Si le pasas una cualificación del Anexo C, la hoja hace lo que el apartado 10 f) 2) declara obligatorio: las bandas cuyos criterios del Anexo C no se cumplen quedan fuera de la determinación ponderada A y se nombran en la hoja, junto a las bandas a las que el método no es aplicable en absoluto (apartado 9.2). Por eso el del recuadro puede diferir de result.sound_power_level_a, que se calcula antes de evaluar ningún criterio y por tanto suma todas las bandas aplicables. A su lado el recuadro indica el normalizado, porque el punto f) 2) del capítulo 10 declara la magnitud normalizada mientras que el número principal es el nivel frente al que se escribe un límite declarado. Sin criteria, la ficha recuadra el valor del propio resultado e indica que no se aportó cualificación. residual_index pone en la hoja el índice presión-intensidad residual de la sonda (apartado 10 d) 5)) con la capacidad dinámica que se deduce de él; los elementos del apartado 10 que son descripción libre y no números, la geometría y la velocidad del barrido, el tiempo de barrido y las comprobaciones con la sonda invertida, van en el campo notes de los metadatos.

import numpy as np
from phonometry import ReportMetadata, emission
# Una superficie de medida en caja: cinco superficies parciales, cada una
# barrida en cuatro segmentos, sobre las bandas de tercio de octava de 200 Hz
# a 800 Hz. La parte 3 trabaja en tercios de octava, que es el conjunto de
# bandas para el que la Tabla 1 tabula su incertidumbre y la tolerancia del
# criterio 1.
third_octave = np.array([200, 250, 315, 400, 500, 630, 800], float)
faces = np.array([1.65, 1.575, 1.575, 1.155, 1.155])
scanned = 1.2e-5 * np.array([1.3, 1.1, 0.8, 0.9, 0.9])[:, None] * np.ones(7)
segment_intensity = np.repeat(scanned, 4, axis=0)
# El margen presión-intensidad por banda: 8 dB a 200 Hz, donde la nave es
# reverberante, y 2 dB por encima.
margin = np.array([8.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0])
segment_levels = 10 * np.log10(segment_intensity / 1e-12) + margin
precise = emission.sound_power_intensity_precision(
scanned, faces, frequencies=third_octave,
temperature=28.0, barometric_pressure=94_000.0,
)
annex_b = emission.precision_field_indicators(segment_intensity, segment_levels)
scan_intensity = np.average(scanned, axis=0, weights=faces) # unequal faces
scan_level = 10 * np.log10(scan_intensity / 1e-12)
annex_c = emission.precision_qualification(
annex_b, scan_intensity_level_1=scan_level,
scan_intensity_level_2=scan_level + 0.1,
pressure_residual_index=15.0, # Ld = 15 - 10 = 5 dB
frequencies=third_octave,
)
print(annex_c.qualified.tolist()) # [False, True, True, True, True, True, True]
precise.report(
"sound_power_intensity_precision.pdf",
metadata=ReportMetadata(
client="Planta de fabricación de ejemplo",
specimen="Grupo hidráulico (de suelo)",
test_room="Nave con ruido de fondo estacionario",
instrumentation="Sonda de intensidad p-p clase 1 (IEC 61043), separador de 12 mm",
temperature=28.0, relative_humidity=40.0, pressure=94.0,
laboratory="Laboratorio de referencia Phonometry",
report_id="EXAMPLE-9614-3",
requirement=98.0,
notes="Superficie en caja a 0,25 m; cinco superficies parciales barridas dos veces.",
),
indicators=annex_b, criteria=annex_c, residual_index=15.0,
language="es",
) # la banda de 200 Hz incumple el criterio 2 y se nombra como omitida del LWA

La ficha de ejemplo del repositorio es una determinación más completa de la misma máquina: dieciséis bandas de tercio de octava de 100 Hz a 3150 Hz sobre una superficie en caja de cinco caras, con la banda de 100 Hz incumpliendo el criterio 2 y nombrada como omitida.

Informe de ejemplo de potencia acústica por intensidad de precisión ISO 9614-3 (PDF)

Ficha de una página de determinación de potencia acústica por intensidad de precisión ISO 9614-3: un encabezado con el cliente, la fuente de ruido, el entorno de ensayo en nave, la sonda de intensidad y la atmósfera de ensayo de 28 grados Celsius y 94 kPa, la tabla en tercios de octava de 100 Hz a 3150 Hz en dos grupos de columnas con el nivel de potencia acústica de banda LW, el nivel normalizado LW0 y la incertidumbre expandida U, el espectro de potencia acústica LW(f) con eje de bandas nominal, el recuadro con el nivel de potencia acústica ponderado A LWA = 96,7 dB(A) re 1 pW con el LW total = 97,9 dB, el LW0 total normalizado = 98,5 dB, el nivel ponderado A normalizado LWA0 = 97,3 dB(A), la superficie de medición S = 7,11 m2 y la incertidumbre expandida U = 2,0 dB, y un veredicto CUMPLE frente al límite declarado de 98 dB(A), cerrada por una franja de base que indica el modelo de potencia parcial, la normalización meteorológica, los indicadores de campo del Anexo B y los cinco criterios del Anexo C, y que nombra la banda de 100 Hz como omitida del LWA por el criterio 2.

Descargar el informe (PDF)

Ficha de potencia acústica por intensidad de precisión (PrecisionIntensityResult.report), un barrido ISO 9614-3 de grado 1 con los niveles normalizados, la incertidumbre por banda y la omisión del Anexo C declarada.
  • Cubierto

    La determinación por barrido de ISO 9614-2 (sound_power_intensity): las potencias parciales, los indicadores de campo (presión-intensidad superficial) y (potencia parcial negativa), la capacidad dinámica , el criterio de repetibilidad, el grado alcanzado por banda y el marcado de no aplicable del apartado 9.2 para bandas con flujo neto entrante, con el cribado del apartado 10.6 b) del total ponderado A (a_weighting_omitted_bands). La determinación de precisión de ISO 9614-3 (sound_power_intensity_precision) con su propio marcado de no aplicable, sus indicadores de campo del Anexo B (precision_field_indicators) y los cinco criterios de aceptación del Anexo C (precision_qualification). Ambos resultados presentan la ficha de potencia acústica de estilo acreditado mediante .report(), cada uno indicando lo que su propia parte pide que declare un informe: la hoja de precisión añade los niveles normalizados , la incertidumbre expandida por banda de la Tabla 1, la tabulación de los indicadores del Anexo B y la omisión del apartado 10 f) 2) de las bandas que rechazan los criterios del Anexo C.

  • No cubierto

    ISO 9614-1, el método de intensidad de puntos fijos discretos, no es una de las vías de aquí: solo se reutilizan sus indicadores de campo, y la determinación de potencia por puntos discretos no está implementada en absoluto; la guía de intensidad acústica cubre la sonda y los indicadores de campo del Anexo A que ambas partes comparten. El sesgo por diferencias finitas de la sonda y el índice de intensidad residual de presión son propiedades medidas del instrumento, cubiertas en la misma guía. La elección entre las seis vías, y la declaración ISO 4871 que un resultado alimenta, viven en Potencia acústica.