Ir al contenido

Control de ruido: silenciadores, HVAC, cerramientos

Referencias: Bies et al. 2017Munjal 2014Vér y Beranek 2006

Tres medidas pasivas dominan el control de ruido aplicado: los silenciadores en un conducto, las atenuaciones pasivas y el ruido autogenerado de una instalación HVAC, y el cerramiento de máquina. phonometry.noise_control cubre las tres con la teoría de ingeniería de Bies, Hansen y Howard. Los silenciadores se construyen sobre el método unidimensional de cuatro polos (matrices de transferencia), que encadena elementos acústicos reutilizables; los métodos HVAC son las tablas ASHRAE y las formas cerradas de codos, reflexión de extremo, plenums y ruido de flujo; y el modelo de cerramiento combina una pérdida de transmisión del panel aportada por el usuario con la acumulación reverberante en el interior. El pistón radiante del dominio de electroacústica es el modelo de radiador complementario.

1. Silenciadores reactivos (método de cuatro polos)

Sección titulada «1. Silenciadores reactivos (método de cuatro polos)»

Un silenciador reactivo atenúa reflejando el sonido con discontinuidades de impedancia. Cada elemento acústico es una matriz de transferencia 2x2 que relaciona la presión p y la velocidad de volumen Su en sus dos extremos, y un silenciador compuesto es el producto ordenado de las matrices de sus elementos (Bies §8.9). Un conducto recto de longitud L y área S es

y una rama lateral de impedancia es la derivación . La pérdida de transmisión se obtiene de la matriz compuesta con las impedancias de los puertos y (Munjal Ec. (3.27); Bies Ec. (8.141) imprime invertidos los pesos de impedancia de y de esta fórmula y no cumple el límite de expansión brusca, véase el registro de erratas)

que para áreas de entrada y salida iguales se reduce a (Bies Ec. (8.148))

y la pérdida de inserción para una impedancia de fuente y una de radiación es la atenuación adicional frente a una conexión directa.

El silenciador más simple, una cámara de área y longitud entre tubos de área , tiene la pérdida de transmisión en forma cerrada (Bies Ec. (8.111)) con la relación de áreas

con máximos en cuando y caídas a en , donde la cámara mide media longitud de onda y es transparente. El producto de cuatro polos lo reproduce exactamente.

import numpy as np
from phonometry import expansion_chamber
freqs = np.linspace(20.0, 2000.0, 2000)
res = expansion_chamber(freqs, length=0.3, chamber_area=0.04, pipe_area=0.01)
print(round(res.transmission_loss.max(), 2)) # máximo 6.55 dB (m = 4)
# Las caídas en f = n c / 2L son exactamente 0 dB (sin disipación).
print(round(float(res.transmission_loss[np.argmin(res.transmission_loss)]), 6))

La línea única res.plot() dibuja la pérdida de transmisión de la cámara (y su pérdida de inserción cuando se dan las impedancias de fuente y radiación). La figura de abajo barre en cambio la relación de áreas: un desajuste mayor eleva todos los máximos, pero las caídas permanecen en 0 dB y los máximos permanecen en las mismas frecuencias, fijadas solo por la longitud de la cámara.

Pérdida de transmisión de la cámara de expansión frente a la frecuencia para relaciones de áreas m = 2, 4, 8 y 16, con máximos periódicos que crecen con m en los múltiplos impares de la frecuencia de cuarto de onda y caídas que vuelven a 0 dB en cada media longitud de onda de la cámaraPérdida de transmisión de la cámara de expansión frente a la frecuencia para relaciones de áreas m = 2, 4, 8 y 16, con máximos periódicos que crecen con m en los múltiplos impares de la frecuencia de cuarto de onda y caídas que vuelven a 0 dB en cada media longitud de onda de la cámara
Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import expansion_chamber
freqs = np.linspace(20.0, 2000.0, 2000)
# Una línea para una cámara: TL vs frecuencia (con la pérdida de inserción si
# se dan las impedancias de fuente y radiación).
expansion_chamber(freqs, 0.3, 0.04, 0.01,
source_impedance=4e4, radiation_impedance=5e3).plot(language="es")
plt.show()
# A mano: la familia de relaciones de áreas de la figura de concepto.
fig, ax = plt.subplots()
for m in (2.0, 4.0, 8.0, 16.0):
res = expansion_chamber(freqs, 0.3, m * 0.01, 0.01)
ax.plot(freqs, res.transmission_loss, label=f"m = {int(m)}")
ax.set_xlabel("Frecuencia [Hz]"); ax.set_ylabel("Pérdida de transmisión [dB]")
ax.legend()
plt.show()

Un resonador de Helmholtz (área de cuello , longitud efectiva , volumen de cavidad ) y un tubo de cuarto de onda cerrado (longitud ) cortocircuitan el conducto en su frecuencia de sintonía, dando un pico agudo de pérdida de transmisión: (Bies Ec. (8.46)) y (Ec. (8.44)). Una cámara de tubo extendido aloja ramas de cuarto de onda dentro de una cámara de expansión para rellenar sus caídas.

import numpy as np
from phonometry import (
helmholtz_resonator, quarter_wave_resonator, extended_tube_chamber,
)
f = np.linspace(20.0, 600.0, 4000)
hr = helmholtz_resonator(f, duct_area=0.01, neck_area=1e-4,
neck_length=0.02, cavity_volume=1e-3)
print(round(float(hr.resonances[0]), 1)) # frecuencia de sintonía, Hz
hr.plot() # pico de TL en la frecuencia de sintonía (necesita matplotlib)
qw = quarter_wave_resonator(f, duct_area=0.01, length=1.516, branch_area=2e-3,
speed_of_sound=343.24)
print(round(float(qw.resonances[0]), 1)) # 56.6 Hz (Bies Ejemplo 8.1)
# Una extensión de entrada de L/4 rellena la primera caída de la cámara.
et = extended_tube_chamber(f, length=0.4, chamber_area=0.04, pipe_area=0.01,
inlet_extension=0.1)
Pérdida de transmisión de un resonador de Helmholtz y de un tubo de cuarto de onda cerrado sobre el mismo conducto de 10 cm2: cada rama lateral produce un pico agudo en su propia frecuencia de sintonía, cerca de 120 Hz para el volumen de Helmholtz y cerca de 285 Hz para el tubo de 0,3 m, y es transparente en el restoPérdida de transmisión de un resonador de Helmholtz y de un tubo de cuarto de onda cerrado sobre el mismo conducto de 10 cm2: cada rama lateral produce un pico agudo en su propia frecuencia de sintonía, cerca de 120 Hz para el volumen de Helmholtz y cerca de 285 Hz para el tubo de 0,3 m, y es transparente en el resto

Cada rama lateral cortocircuita el conducto en su propia frecuencia de sintonía y es casi transparente en el resto: el pico estrecho es la razón de que los resonadores se sintonicen a una frecuencia de encendido o al tono de paso de álabes de un ventilador en lugar de usarse en banda ancha.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import helmholtz_resonator, quarter_wave_resonator
f = np.linspace(20.0, 600.0, 4000)
hr = helmholtz_resonator(f, duct_area=0.01, neck_area=1e-4,
neck_length=0.02, cavity_volume=1e-3)
qw = quarter_wave_resonator(f, duct_area=0.01, length=0.3, branch_area=2e-3)
# Una línea para un dispositivo: TL vs frecuencia con la resonancia marcada.
hr.plot(language="es")
plt.show()
# A mano: las dos ramas laterales en los mismos ejes.
fig, ax = plt.subplots()
ax.plot(f, hr.transmission_loss, label="Resonador de Helmholtz")
ax.plot(f, qw.transmission_loss, "--", label="Tubo de cuarto de onda")
for fr in (hr.resonances[0], qw.resonances[0]):
ax.axvline(float(fr), ls=":", color="#2ca02c")
ax.set_xlabel("Frecuencia [Hz]"); ax.set_ylabel("Pérdida de transmisión [dB]")
ax.set_ylim(0.0, 50.0)
ax.legend()
plt.show()

Cada uno devuelve un ReactiveSilencerResult con transmission_loss, insertion_loss (cuando se dan las impedancias), la matriz compuesta transfer_matrix y .plot(). Las configuraciones avanzadas encadenan elementos directamente con duct_matrix, shunt_matrix, cascade, transmission_loss e insertion_loss.

2. Atenuación y ruido de flujo en conductos HVAC

Sección titulada «2. Atenuación y ruido de flujo en conductos HVAC»

Una instalación de ventilación atenúa el ruido del ventilador en los codos, en el extremo abierto del conducto y en los plenums, y regenera ruido allí donde el flujo se perturba. phonometry.noise_control.hvac reúne los métodos del Capítulo 8 de Bies.

from phonometry.noise_control import hvac
bands = [63.0, 125.0, 250.0, 500.0, 1000.0, 2000.0]
# Reflexión de baja frecuencia en el extremo abierto (ASHRAE Tabla 8.14).
er = hvac.end_reflection_loss(bands, diameter=0.30, termination="flush")
# Pérdida de inserción de un codo cuadrado a 90 grados con revestimiento (Tabla 8.11).
el = hvac.elbow_insertion_loss(bands, width=0.3, bend_type="square", lined=True)
er.plot() # la atenuación por banda (o la Lw regenerada) en una línea (necesita matplotlib)
# TL de plenum por el método de Wells (forma cerrada).
tl = hvac.plenum_attenuation(exit_area=0.1, line_of_sight=1.0,
wall_area=20.0, mean_absorption=0.2)
print(round(tl, 1)) # dB
# Ruido autogenerado (de flujo) de un conducto recto (VDI 2081).
fn = hvac.flow_noise_straight_duct(bands, flow_velocity=10.0, area=0.04)
Pérdida por reflexión del extremo del conducto por banda de octava para terminaciones enrasadas de 150, 300 y 600 mm de diámetro: la reflexión de vuelta al conducto crece con fuerza hacia baja frecuencia y disminuye con el tamaño del conducto, superando 17 dB en 63 Hz para el conducto de 150 mm y desapareciendo por encima de 1 kHzPérdida por reflexión del extremo del conducto por banda de octava para terminaciones enrasadas de 150, 300 y 600 mm de diámetro: la reflexión de vuelta al conducto crece con fuerza hacia baja frecuencia y disminuye con el tamaño del conducto, superando 17 dB en 63 Hz para el conducto de 150 mm y desapareciendo por encima de 1 kHz

El extremo abierto de un conducto refleja energía de baja frecuencia de vuelta a la instalación — gratis, antes de cualquier silenciador: cuanto más pequeño es el conducto frente a la longitud de onda, mayor es la pérdida, lo que explica que los cuellos de difusor pequeños domen el retumbe de baja frecuencia del ventilador, y por qué la corrección no debe contarse dos veces cuando los datos del fabricante del difusor ya la incluyen.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry.noise_control import hvac
bands = [63.0, 125.0, 250.0, 500.0, 1000.0, 2000.0]
# Una línea para un conducto: el HvacSpectrumResult del extremo enrasado de 300 mm.
er = hvac.end_reflection_loss(bands, diameter=0.30, termination="flush")
er.plot(language="es")
plt.show()
# A mano: la familia sobre diámetros de conducto de la figura de concepto.
fig, ax = plt.subplots()
for diameter in (0.15, 0.30, 0.60):
er = hvac.end_reflection_loss(bands, diameter=diameter, termination="flush")
ax.semilogx(er.frequencies, er.values, "o-",
label=f"D = {int(diameter * 1000)} mm")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Pérdida por reflexión del extremo [dB]")
ax.legend(title="Diámetro del conducto")
plt.show()

Los métodos de reflexión de extremo y de codos interpolan las tablas ASHRAE (pasan exactamente por los nodos tabulados); los métodos de plenum (Wells) y de ruido de flujo (VDI 2081) son formas cerradas. end_reflection_loss, elbow_insertion_loss, flow_noise_straight_duct y flow_noise_bend devuelven un HvacSpectrumResult (atenuación o nivel de potencia acústica regenerada) con .plot(); plenum_attenuation devuelve la pérdida de transmisión directamente. Los conductos rectangulares usan el diámetro equivalente .

Un cerramiento sellado reduce el ruido radiado en la pérdida de transmisión del panel , menos una penalización por la acumulación reverberante en la cavidad pequeña y dura (Bies Ecs. (7.103), (7.111)):

con el área externa y la constante de sala interior (la misma room_constant del campo estacionario de sala). Un interior duro desperdicia gran parte de ; revestirlo lleva hacia su límite inferior dB.

La pérdida de transmisión del panel la aportas tú como un array por banda (medido, o predicho por un modelo de panel), o como una función de la frecuencia. Este módulo nunca predice ; combina un dado con la absorción interior.

import numpy as np
from phonometry import enclosure_insertion_loss
bands = np.array([125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0])
panel_R = np.array([18.0, 24.0, 30.0, 36.0, 42.0, 46.0]) # medido, dB
enc = enclosure_insertion_loss(
panel_R, external_area=6.0, internal_area=5.0,
internal_absorption=0.3, frequencies=bands,
)
print(np.round(enc.insertion_loss, 1)) # IL neta = R - C por banda
enc.plot() # panel R, corrección C e IL
Pérdida por inserción de un encapsulado de máquina por banda de octava: el índice de reducción acústica R medido del panel como línea discontinua, la corrección interior C casi plana cerca de 5 dB para un interior revestido, y la pérdida por inserción neta IL igual a R menos C siguiendo la curva del panel unos 5 dB por debajoPérdida por inserción de un encapsulado de máquina por banda de octava: el índice de reducción acústica R medido del panel como línea discontinua, la corrección interior C casi plana cerca de 5 dB para un interior revestido, y la pérdida por inserción neta IL igual a R menos C siguiendo la curva del panel unos 5 dB por debajo

Lo que entrega el cerramiento es R − C, no el R del panel: incluso este interior revestido (absorción media 0,3) cuesta unos 5 dB del índice del panel en cada banda, y un interior duro sin revestir costaría mucho más. Presupuesta el revestimiento junto con los paneles, no como un añadido posterior.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import enclosure_insertion_loss
bands = np.array([125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0])
panel_R = np.array([18.0, 24.0, 30.0, 36.0, 42.0, 46.0]) # medido, dB
enc = enclosure_insertion_loss(
panel_R, external_area=6.0, internal_area=5.0,
internal_absorption=0.3, frequencies=bands,
)
# Una línea — R del panel, corrección interior C y la IL neta = R - C:
enc.plot(language="es")
plt.show()
# A mano, con los campos por banda que lleva el resultado:
fig, ax = plt.subplots()
ax.plot(bands, enc.panel_transmission_loss, "s--", label="R del panel")
ax.plot(bands, enc.correction, "^:", label="Corrección interior C")
ax.plot(bands, enc.insertion_loss, "o-", label="Pérdida por inserción (R - C)")
ax.set_xlabel("Frecuencia [Hz]"); ax.set_ylabel("Nivel [dB]")
ax.set_xscale("log")
ax.legend()
plt.show()

enclosure_insertion_loss devuelve un EnclosureResult con la panel_transmission_loss del panel, la correction interior, la insertion_loss neta, la room_constant interior y .plot().

La cámara de expansión de cuatro polos se contrasta con el solucionador de ondas FDTD 2D independiente: un conducto de onda plana que se ensancha en una cámara y vuelve a estrecharse transmite mucho menos en el máximo de TL de cuatro polos () que en la caída transparente (), y la razón de amplitudes medida reproduce la pérdida de transmisión máxima en forma cerrada con una fracción de decibelio.

Cubierto. Los silenciadores reactivos por el método de matriz de transferencia de cuatro polos (Bies §8.8-8.9, Munjal Ec. (3.27)): la forma cerrada expansion_chamber (Ec. (8.111)), helmholtz_resonator y quarter_wave_resonator (Ecs. (8.46), (8.44)), extended_tube_chamber, y los bloques duct_matrix/shunt_matrix/cascade, contrastados contra el solucionador FDTD independiente. Los métodos HVAC de Bies §8.11-8.17 / ASHRAE: hvac.end_reflection_loss y hvac.elbow_insertion_loss (tablas interpoladas), hvac.plenum_attenuation (forma cerrada de Wells) y hvac.flow_noise_straight_duct/flow_noise_bend (VDI 2081). La pérdida de inserción de cerramientos de máquina de Bies §7.4 (Ecs. (7.103), (7.111)), enclosure_insertion_loss, que combina una pérdida de transmisión de panel aportada con la corrección por la constante de sala interior.

No cubierto. Solo están implementados los elementos reactivos: los silenciadores disipativos (absorbentes, con revestimiento interior) no están modelados. enclosure_insertion_loss nunca predice la pérdida de transmisión de panel R; se aporta medida o de otro modelo, y el módulo solo la combina con la corrección interior.

  • Bies, D. A., Hansen, C. H. y Howard, C. Q. (2017). Engineering noise control (5th ed.). CRC Press. https://doi.org/10.1201/9781351228152El método de cuatro polos de silenciadores y la TL de cámara de expansión (§8.8-8.9), los métodos HVAC de conducto (§8.11-8.17) y la reducción de ruido del cerramiento de máquina (§7.4) de esta página.
  • Munjal, M. L. (2014). Acoustics of ducts and mufflers (2nd ed.). Wiley. https://doi.org/10.1002/9781118443767La formulación por matrices de transferencia, las matrices de los elementos y la pérdida de transmisión de la matriz compuesta (Ec. (3.27)) del §1.
  • Vér, I. L. y Beranek, L. L. (2006). Noise and vibration control engineering: Principles and applications (2nd ed.). Wiley. https://doi.org/10.1002/9780470172568El tratamiento complementario de silenciadores, conductos y cerramientos contrastado en esta página.