Ir al contenido

A partir de la resistividad al flujo de un material poroso (la magnitud que mide el banco de flujo) los modelos clásicos de fluido equivalente predicen su impedancia característica y su número de onda complejos, y una pila de capas por matrices de transferencia (mantas porosas, cámaras de aire, paneles perforados y microperforados, membranas) predice el coeficiente de absorción de toda la construcción antes de construir nada. Esta página cubre los tres modelos porosos (Delany–Bazley, Miki, Johnson–Champoux–Allard), el solucionador multicapa, las capas resonantes de Maa y la integral de incidencia aleatoria (Paris). Las contrapartes de medida están en Materiales acústicos; la valoración del espectro predicho vive en la sección ISO 11654 de esa misma página.

1. Modelos de fluido equivalente de un material poroso

Sección titulada «1. Modelos de fluido equivalente de un material poroso»

Un material poroso de esqueleto rígido se comporta como un fluido equivalente con una impedancia característica compleja y un número de onda (convención temporal , de modo que un medio pasivo tiene ).

Delany–Bazley (Mechel 2e secc. G.11; Bies 5e apéndice D, tabla D.1; Hopkins ecs. 1.171–1.174) es la ley de potencias de un parámetro en la variable del absorbente :

con los coeficientes clásicos de lana de roca/fibra de vidrio y un rango de ajuste declarado (porosidad cercana a uno). La biblioteca incluye también los juegos de la tabla D.1 ajustados a poliéster ("garai_pompoli") y a espumas ("dunn_davern", "wu"). Fuera del rango de ajuste se emite un PorousAbsorberWarning y los valores extrapolados se devuelven igualmente; el fallo clásico es una parte real negativa de la impedancia de entrada de la capa a baja frecuencia (Mechel secc. G.12).

Miki (1990) reajustó los mismos datos de Delany–Bazley bajo una restricción de pasividad (positivo-real), de modo que el modelo se mantiene físicamente bien comportado por debajo del rango de ajuste; es la elección habitual cuando un modelo de un parámetro debe evaluarse en banda ancha.

Johnson–Champoux–Allard (JCA) es el modelo semifenomenológico de cinco parámetros (Cox & D’Antonio 3e ecs. 6.19–6.25): la resistividad al flujo , la porosidad , la tortuosidad y las longitudes características viscosa/térmica , dan la densidad efectiva y el módulo de compresibilidad con los límites exactos en continua, a alta frecuencia, y la transición isoterma-adiabática en .

import numpy as np
from phonometry import materials
f = np.geomspace(200.0, 4000.0, 200)
db = materials.delany_bazley(f, 20000.0) # sigma en Pa s/m2
mk = materials.miki(f, 20000.0)
jca = materials.johnson_champoux_allard(
f, 20000.0, porosity=0.98, tortuosity=1.0,
viscous_length=8.7e-5, thermal_length=8.7e-5,
)
print(np.round(db.normalized_impedance[0], 3)) # (2.598-2.209j)
print(np.round(mk.normalized_impedance[0], 3)) # (2.286-1.965j)
print(np.round(jca.normalized_impedance[0], 3)) # (2.321-2.075j)
db.plot() # componentes normalizadas de Zc y k frente a la frecuencia
Impedancia característica y número de onda normalizados de un material poroso con resistividad al flujo de 20 kPa s/m2 predichos por el modelo de Miki en una rejilla log-log: las componentes reales e imaginarias caen hacia la unidad y hacia cero al subir la frecuenciaImpedancia característica y número de onda normalizados de un material poroso con resistividad al flujo de 20 kPa s/m2 predichos por el modelo de Miki en una rejilla log-log: las componentes reales e imaginarias caen hacia la unidad y hacia cero al subir la frecuencia

La presentación clásica de un modelo de fluido equivalente (Cox y D’Antonio 3.ª ed., figs. 6.19–6.20): a baja frecuencia dominan las fuerzas viscosas y el material se ve rígido y con pérdidas (las cuatro componentes grandes); al subir la frecuencia las componentes caen hacia los límites de aire libre y , de modo que una capa delgada solo trabaja donde su espesor es una fracción apreciable de la longitud de onda dentro del material.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
f = np.geomspace(100.0, 5000.0, 260)
mk = materials.miki(f, 20000.0) # sigma = 20 kPa s/m^2
# Una línea: componentes normalizadas de Zc y k en una rejilla log-log.
mk.plot(language="es")
plt.show()
# A mano, desde los campos del resultado:
fig, ax = plt.subplots()
ax.loglog(f, mk.normalized_impedance.real, label="Re(Zc)/rho c")
ax.loglog(f, -mk.normalized_impedance.imag, "--", label="-Im(Zc)/rho c")
ax.loglog(f, mk.normalized_wavenumber.real, label="Re(k)/k0")
ax.loglog(f, -mk.normalized_wavenumber.imag, "--", label="-Im(k)/k0")
ax.set(xlabel="Frecuencia [Hz]", ylabel="Valor característico normalizado")
ax.legend()
plt.show()

Los tres modelos coinciden estrechamente dentro del rango de ajuste de Delany–Bazley (Cox & D’Antonio, figs. 6.19–6.21, hacen la misma comparación); JCA extiende la predicción con base física fuera de él. Un PorousMediumResult construido con datos medidos (por ejemplo los , recuperados por la reducción de matriz de transferencia ASTM E2611) se conecta al solucionador de capas exactamente igual que uno modelado.

2. Predicción multicapa por matrices de transferencia

Sección titulada «2. Predicción multicapa por matrices de transferencia»

Cada capa fluida de espesor aporta la matriz de cadena (Cox & D’Antonio ec. 2.29; equivalente a la recursión de impedancias de Bies ec. D.95 y al esquema de Mechel secc. D.4)

con el número de onda en profundidad por la ley de Snell y . Las láminas resonantes delgadas entran como impedancias en serie . Cerrar la cadena con una pared rígida (o aire libre, o cualquier impedancia) da la impedancia de superficie, el factor de reflexión y . Una única capa porosa sobre pared rígida se reduce a la forma cerrada de libro (Mechel secc. D.3, ec. 1).

import numpy as np
from phonometry import materials
f = np.geomspace(200.0, 4000.0, 300)
med = materials.miki(f, 20000.0)
res = materials.layered_absorber(f, [materials.PorousLayer(0.05, med)])
i = np.argmin(np.abs(f - 1000.0))
print(round(res.absorption[i], 3)) # 0.937 a 1 kHz
res.plot() # alpha(f) con |R| superpuesto

El solucionador evalúa las magnitudes físicas mediante una recursión de admitancias numéricamente robusta (inmune al desbordamiento de las entradas matriciales crudas en capas extremadamente atenuantes) y aun así expone la matriz de cadena completa (recíproca por construcción, ) en transfer_matrix, lista para la maquinaria ASTM E2611 (TransferMatrix).

Absorción predicha en incidencia normal de cuatro construcciones de 50 mm: una capa porosa absorbe en banda ancha desde frecuencias medias, un panel microperforado sobre cámara presenta su pico cerca de 700 Hz, un panel perforado sobre poroso cerca de 500 Hz y una membrana sobre cámara con poroso cerca de 175 Hz; las líneas verticales punteadas marcan las resonancias de forma cerrada de Helmholtz y de membranaAbsorción predicha en incidencia normal de cuatro construcciones de 50 mm: una capa porosa absorbe en banda ancha desde frecuencias medias, un panel microperforado sobre cámara presenta su pico cerca de 700 Hz, un panel perforado sobre poroso cerca de 500 Hz y una membrana sobre cámara con poroso cerca de 175 Hz; las líneas verticales punteadas marcan las resonancias de forma cerrada de Helmholtz y de membrana

Cuatro construcciones, un mismo presupuesto de 50 mm: la capa porosa funciona en banda ancha pero decae a baja frecuencia; los diseños microperforado, perforado y de membrana cambian ancho de banda por un pico resonante situado cada vez más abajo. Las líneas punteadas son las formas cerradas de cavidad poco profunda; el modelo completo queda por debajo porque la masa viscosa del tapón de aire y la profundidad finita de la cámara no son despreciables.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials as m
f = np.geomspace(50.0, 5000.0, 500)
med = m.miki(f, 20000.0)
med_light = m.miki(f, 10000.0)
designs = {
"Poroso 50 mm": [m.PorousLayer(0.05, med)],
"MPP + cámara": [m.MicroperforatedPlateLayer(0.5e-3, 0.15e-3, 0.008),
m.AirLayer(0.048)],
"Perforado + poroso": [m.PerforatedPlateLayer(0.006, 0.0025, 0.05),
m.PorousLayer(0.025, med), m.AirLayer(0.019)],
"Membrana + poroso": [m.MembraneLayer(2.0), m.AirLayer(0.01),
m.PorousLayer(0.038, med_light)],
}
fig, ax = plt.subplots()
for label, layers in designs.items():
ax.semilogx(f, m.layered_absorber(f, layers).absorption, label=label)
ax.set(xlabel="Frecuencia [Hz]", ylabel="Coeficiente de absorción")
ax.legend()
plt.show()

Detrás de cada una de esas curvas hay una simple lista de capas, leída de delante hacia atrás en el orden en que la onda incidente la encuentra. plot_absorber_stack dibuja esa lista a escala antes de ejecutar ninguna física, y un resultado resuelto retiene sus capas, así que materials.layered_absorber(f, layers).plot_geometry() dibuja la misma sección desde el propio resultado.

Sección a escala de un absorbente de tres capas: una placa microperforada de 1 mm al frente, una cámara de aire de 30 mm y una capa porosa de 50 mm contra el respaldo rígido a la derecha, con cada espesor acotado y el sonido incidente llegando desde la izquierdaSección a escala de un absorbente de tres capas: una placa microperforada de 1 mm al frente, una cámara de aire de 30 mm y una capa porosa de 50 mm contra el respaldo rígido a la derecha, con cada espesor acotado y el sonido incidente llegando desde la izquierda

La lista de capas tal y como la encuentra la onda: placa microperforada, cámara de aire, capa porosa, respaldo rígido. Dibujar el apilado a escala antes de calcular nada permite cazar de un vistazo el clásico despiste de metros frente a milímetros en un espesor.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
f = np.linspace(200.0, 4000.0, 100)
layers = [
materials.MicroperforatedPlateLayer(0.001, 0.0002, 0.01),
materials.AirLayer(0.03),
materials.PorousLayer(0.05, materials.miki(f, 20000.0)),
]
# La función libre dibuja cualquier lista de capas; un resultado resuelto
# retiene sus capas, así que esto dibuja la misma sección:
# materials.layered_absorber(f, layers).plot_geometry()
materials.plot_absorber_stack(layers, language="es")
plt.show()

3. Láminas resonantes: perforado, microperforado, membrana

Sección titulada «3. Láminas resonantes: perforado, microperforado, membrana»

Panel perforado. Los tapones de aire de los orificios son la masa de un resonador de Helmholtz: con el área abierta , el factor de corrección de extremo por extremo de orificio y la resistencia viscotérmica (Cox & D’Antonio ecs. 7.6/7.12). La corrección de extremo por defecto es el ajuste de interacción de la función de Fok (tabla 7.1), válido para cualquier área abierta. Para una cámara poco profunda la resonancia es (ec. 7.4).

Panel microperforado (MPP). Con orificios submilimétricos la capa límite viscosa llena el orificio y el panel absorbe sin ningún material poroso. La biblioteca implementa la impedancia exacta de tubo corto de Maa (Maa 1998, ec. 2),

más las correcciones de extremo de la ec. 5 (resistencia superficial y reactancia de pistón en total), dividida por el área abierta. La constante de perforado (proporcional al radio del orificio sobre el espesor de la capa límite viscosa) lo gobierna todo: en la resonancia la absorción máxima es y el ancho de banda de media absorción es (Maa, ecs. 9–21, tabla I).

import numpy as np
from phonometry import materials
# Maa (1998), fig. 5: d = t = 0,2 mm, orificios cada 2,5 mm, cámara de 6 cm.
eps = (np.pi / 4.0) * (0.2 / 2.5) ** 2
f = np.linspace(100.0, 4000.0, 2000)
res = materials.layered_absorber(
f, [materials.MicroperforatedPlateLayer(0.2e-3, 0.1e-3, eps),
materials.AirLayer(0.06)],
)
i = np.argmax(res.absorption)
print(f"alpha máximo = {res.absorption[i]:.2f} a {f[i]:.0f} Hz")
# alpha máximo = 0.96 a 677 Hz
res.plot() # alpha(f) con |R| superpuesto: el pico resonante del MPP
Absorción predicha del panel microperforado de Maa sobre una cámara de 6 cm: un pico resonante ancho que alcanza alpha 0,96 cerca de 677 Hz, con el módulo del factor de reflexión como su imagen especular, y un rasgo secundario estrecho cerca de la resonancia de media onda de la cámara a 2,9 kHzAbsorción predicha del panel microperforado de Maa sobre una cámara de 6 cm: un pico resonante ancho que alcanza alpha 0,96 cerca de 677 Hz, con el módulo del factor de reflexión como su imagen especular, y un rasgo secundario estrecho cerca de la resonancia de media onda de la cámara a 2,9 kHz

El propio diseño de la fig. 5 de Maa, sin material poroso alguno: las pérdidas viscosas de los orificios submilimétricos amortiguan la resonancia panel-cámara en un pico de absorción ancho. El rasgo estrecho cerca de 2,9 kHz es la resonancia de media onda de la cámara, donde la cámara presenta un nodo de presión al panel y la absorción se hunde antes de que la siguiente resonancia la recupere.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
# Maa (1998), fig. 5: d = t = 0,2 mm, orificios cada 2,5 mm, cámara de 6 cm.
eps = (np.pi / 4.0) * (0.2 / 2.5) ** 2
f = np.linspace(100.0, 4000.0, 1200)
res = materials.layered_absorber(
f, [materials.MicroperforatedPlateLayer(0.2e-3, 0.1e-3, eps),
materials.AirLayer(0.06)],
)
# Una línea: alpha(f) con |R| superpuesto.
res.plot(language="es")
plt.show()
# A mano, desde los campos del resultado:
fig, ax = plt.subplots()
ax.semilogx(f, res.absorption, label="Absorción alpha")
ax.semilogx(f, np.abs(res.reflection), "--", label="Factor de reflexión |R|")
ax.set(xlabel="Frecuencia [Hz]", ylabel="Coeficiente")
ax.legend()
plt.show()

Membrana. Una lámina impermeable flexible es la masa superficial (Cox ec. 7.14; Bies ec. D.96); sobre una cámara resuena en el clásico (adiabático; cuando la cámara está rellena de poroso y es isoterma, Cox ecs. 7.9/7.10). Las formas cerradas se exponen como helmholtz_resonance_frequency y membrane_resonance_frequency; la respuesta completa en frecuencia sale de la misma pila de capas.

layered_absorber(..., angle=theta) evalúa la pila completa de reacción volumétrica a cualquier ángulo polar; las láminas son de reacción local (independientes del ángulo) y las capas fluidas refractan según la ley de Snell; para un MPP sobre cámara esto reproduce exactamente la forma cerrada oblicua de Maa (ec. 23). El coeficiente de incidencia aleatoria es la integral de Paris (Mechel secc. D.5, ec. 9)

evaluada por cuadratura de Gauss–Legendre en diffuse_field_absorption (angle_limit por defecto 90°; se usan truncamientos a 75–87°). Para una superficie de reacción local con impedancia normalizada conocida la integral tiene la forma cerrada de Mechel ec. 10, expuesta como statistical_absorption; su máximo sobre todas las impedancias pasivas es el 0,951 publicado (en ).

import numpy as np
from phonometry import materials
f = np.array([250.0, 500.0, 1000.0, 2000.0])
med = materials.miki(f, 20000.0)
layers = [materials.PorousLayer(0.05, med)]
normal = materials.layered_absorber(f, layers)
diffuse = materials.diffuse_field_absorption(f, layers)
print(np.round(normal.absorption, 2)) # [0.26 0.62 0.94 0.95]
print(np.round(diffuse.absorption, 2)) # [0.37 0.68 0.9 0.95]
diffuse.plot() # alpha_dif(f); superpón normal.absorption para comparar
print(round(float(materials.statistical_absorption(1.567 + 0j)), 3)) # 0.951
Absorción de incidencia aleatoria de una capa porosa de 50 mm por la integral de Paris comparada con su coeficiente a incidencia normal: la curva de campo difuso queda claramente por encima de la de incidencia normal por debajo de 700 Hz y ambas convergen hacia 0,95 a alta frecuenciaAbsorción de incidencia aleatoria de una capa porosa de 50 mm por la integral de Paris comparada con su coeficiente a incidencia normal: la curva de campo difuso queda claramente por encima de la de incidencia normal por debajo de 700 Hz y ambas convergen hacia 0,95 a alta frecuencia

Por qué la cámara reverberante lee más alto que el tubo: la integral de Paris pondera los ángulos oblicuos, cuyas ondas recorren un camino más largo dentro de la capa, así que supera al de incidencia normal justo donde la capa es delgada frente a la longitud de onda. Es la contraparte de modelo de la discusión tubo frente a cámara reverberante de Materiales acústicos.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
f = np.geomspace(125.0, 4000.0, 200)
layers = [materials.PorousLayer(0.05, materials.miki(f, 20000.0))]
normal = materials.layered_absorber(f, layers)
diffuse = materials.diffuse_field_absorption(f, layers)
# Una línea, y después la superposición de incidencia normal en los mismos ejes:
ax = diffuse.plot(language="es")
ax.plot(f, normal.absorption, "--", label="Incidencia normal alpha(0)")
ax.legend()
plt.show()

5. Paneles ranurados de sonido lento con resonadores de Helmholtz

Sección titulada «5. Paneles ranurados de sonido lento con resonadores de Helmholtz»

Un panel rígido perforado por una red periódica de ranuras finas cerradas, cada ranura cargada en su pared superior por una red de resonadores de Helmholtz, es un absorbente de reacción local y muy sublongitud de onda (Jiménez et al. 2017). Los resonadores frenan el sonido dentro de la ranura y bajan su resonancia muy por debajo de la frecuencia de cuarto de onda, de modo que un panel de pocos centímetros resuena en las centenas bajas de hercios. Las pérdidas visco-térmicas en la ranura submilimétrica y en los cuellos de los resonadores son las que hacen posible la absorción perfecta: cuando la pérdida intrínseca compensa exactamente la fuga de la estructura, el cero del coeficiente de reflexión cae sobre el eje de frecuencia real y (acoplamiento crítico).

La matriz de transferencia del panel es la cadena de medios pasos de ranura (con impedancia característica de la ranura ), resonadores como dispersores puntuales en derivación y una corrección de radiación de la ranura. El coeficiente de reflexión con fondo rígido es con y . La ranura usa los parámetros visco-térmicos de canal estrecho y los cuellos y cavidades cuadrados la serie de conducto rectangular de Stinson (1991).

critical_coupling_design invierte el modelo: dada una frecuencia y un ángulo objetivo, ajusta la longitud de la cavidad (que fija la resonancia) y la altura de la ranura (que fija la pérdida) para que se cumplan las dos condiciones de adaptación e , colocando el cero de reflexión sobre el eje real. La geometría devuelta da entonces a la frecuencia de diseño.

import numpy as np
from phonometry import (
HelmholtzResonator, critical_coupling_design, slit_helmholtz_absorber,
)
base = HelmholtzResonator(
neck_length=1.0e-3, neck_side=3.0e-3,
cavity_length=30.0e-3, cavity_side=27.0e-3,
)
design = critical_coupling_design(
300.0, base, lattice_step=3.0e-2, period=5.0e-2,
)
print(round(design.absorption, 4)) # ~1.0 (absorción perfecta)
print(round(design.slit_height * 1e3, 3)) # altura de ranura resuelta, mm
f = np.linspace(150.0, 500.0, 700)
res = slit_helmholtz_absorber(
f, design.resonator, slit_height=design.slit_height,
lattice_step=3.0e-2, period=5.0e-2,
)
res.plot() # alpha(f) con |R| superpuesto; pico = 1 a 300 Hz

La geometría resuelta merece un vistazo antes que la curva de absorción. El resonador se dibuja con .plot() y el resultado del panel con .plot_geometry(), ambos acotados y a escala.

Sección a escala del resonador de Helmholtz de sección cuadrada del que parte el diseño con acoplamiento crítico a 300 Hz: un cuello de 3 mm de ancho y 1 mm de largo que se abre a una cavidad de paredes rígidas de 27 mm de ancho y 30 mm de profundidad, con las cuatro dimensiones que lo definen acotadasSección a escala del resonador de Helmholtz de sección cuadrada del que parte el diseño con acoplamiento crítico a 300 Hz: un cuello de 3 mm de ancho y 1 mm de largo que se abre a una cavidad de paredes rígidas de 27 mm de ancho y 30 mm de profundidad, con las cuatro dimensiones que lo definen acotadas

Los cuatro números que definen el resonador: el lado y la longitud del cuello fijan la masa móvil y la mayor parte de la pérdida, y el lado y la longitud de la cavidad fijan la rigidez. critical_coupling_design conserva esta sección y reajusta la longitud de la cavidad para colocar la resonancia.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
from phonometry import HelmholtzResonator
resonator = HelmholtzResonator(
neck_length=1.0e-3, neck_side=3.0e-3,
cavity_length=30.0e-3, cavity_side=27.0e-3,
)
resonator.plot(language="es") # sección acotada, a escala
plt.show()
Sección a escala de un periodo del panel ranurado con acoplamiento crítico: una ranura de aproximadamente 1 mm de altura que recorre los 30 mm de profundidad del panel, cargada por la cavidad del resonador de Helmholtz ajustado que llena el resto del periodo de 50 mm, con el respaldo rígido detrás y el sonido incidente llegando desde la izquierdaSección a escala de un periodo del panel ranurado con acoplamiento crítico: una ranura de aproximadamente 1 mm de altura que recorre los 30 mm de profundidad del panel, cargada por la cavidad del resonador de Helmholtz ajustado que llena el resto del periodo de 50 mm, con el respaldo rígido detrás y el sonido incidente llegando desde la izquierda

Un periodo del diseño resuelto, a escala: el panel entero tiene 30 mm de profundidad, a 300 Hz, y la ranura submilimétrica que hace toda la absorción apenas se ve. Esa es justamente la gracia del mecanismo de sonido lento.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
from phonometry import HelmholtzResonator, critical_coupling_design, materials
base = HelmholtzResonator(
neck_length=1.0e-3, neck_side=3.0e-3,
cavity_length=30.0e-3, cavity_side=27.0e-3,
)
design = critical_coupling_design(
300.0, base, lattice_step=3.0e-2, period=5.0e-2,
)
# La función libre dibuja cualquier lista de resonadores; un resultado de
# slit_helmholtz_absorber retiene su geometría, así que res.plot_geometry()
# dibuja el mismo periodo.
materials.plot_slit_absorber_geometry(
[design.resonator], slit_height=design.slit_height,
lattice_step=3.0e-2, period=5.0e-2,
language="es")
plt.show()
Absorción de un panel ranurado con un resonador de Helmholtz: el diseño con acoplamiento crítico alcanza alpha = 1 a 300 Hz, mientras que estrechar la ranura (más pérdida) o ensancharla (menos pérdida) rompe el equilibrio y baja el pico; la profundidad del panel es lambda/38Absorción de un panel ranurado con un resonador de Helmholtz: el diseño con acoplamiento crítico alcanza alpha = 1 a 300 Hz, mientras que estrechar la ranura (más pérdida) o ensancharla (menos pérdida) rompe el equilibrio y baja el pico; la profundidad del panel es lambda/38

Un resonador, una ranura, un equilibrio entre pérdida y fuga. El diseño con acoplamiento crítico alcanza a 300 Hz en un panel de solo de profundidad; estrechar la ranura sobreamortigua la resonancia y ensancharla la subamortigua, y ambos bajan el pico por debajo de uno.

Ver el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import (
HelmholtzResonator, critical_coupling_design, slit_helmholtz_absorber,
)
a, d, f0 = 3.0e-2, 5.0e-2, 300.0
base = HelmholtzResonator(1.0e-3, 3.0e-3, 30.0e-3, 27.0e-3)
design = critical_coupling_design(f0, base, lattice_step=a, period=d)
h0 = design.slit_height
f = np.linspace(150.0, 500.0, 700)
fig, ax = plt.subplots()
for factor, label in [(1.0, "acoplamiento crítico"),
(0.6, "ranura estrecha"), (1.7, "ranura ancha")]:
res = slit_helmholtz_absorber(
f, design.resonator, slit_height=factor * h0,
lattice_step=a, period=d,
)
ax.plot(f, res.absorption, label=label)
ax.set(xlabel="Frecuencia [Hz]", ylabel="Coeficiente de absorción")
ax.legend()
plt.show()

Rangos de ajuste. Delany–Bazley avisa (y extrapola) fuera de y Miki fuera de ; los valores por debajo del rango deben tratarse como cualitativos. JCA necesita cuatro parámetros más pero se comporta físicamente en todo el rango; con y sigue a Delany–Bazley dentro del rango de ajuste.

Reacción local frente a volumétrica. El solucionador de capas es de reacción volumétrica (el sonido refracta y viaja dentro de las capas). statistical_absorption supone reacción local, una buena aproximación para resistividades altas, cámaras compartimentadas o revestimientos resonantes delgados; para capas porosas gruesas y ligeras integre el modelo volumétrico con diffuse_field_absorption (Mechel secc. D.6).

Dónde se comprobaron los números. Ningún estándar rige estos modelos de predicción; son métodos de libro y de revista implementados en sala limpia desde las fuentes de las referencias de más abajo. Los modelos están fijados dígito a dígito a las tablas de coeficientes impresas (Bies tabla D.1, Miki ecs. 30–34), el solucionador a las formas cerradas anteriores y a la recuperación por TransferMatrix de la página del tubo de impedancia, el MPP a la propia aproximación de Maa (acuerdo declarado de ~6 % con la ec. 2 exacta), a su ejemplo de diseño y a su tabla I, y la integral de Paris a su forma cerrada de reacción local. El modelo de sonido lento (ranura + resonador de Helmholtz) está fijado a sus anclas analíticas exactas: el diseño con acoplamiento crítico alcanza a la frecuencia de diseño, las densidades efectivas de la ranura y del conducto cuadrado se reducen a las resistividades de Poiseuille y cuando , y los parámetros efectivos tienden a , al desvanecerse las capas límite. Cinco erratas encontradas en las fuentes durante este trabajo están registradas en el registro de erratas.

Cubierto. Ningún estándar rige estos modelos de predicción: son métodos de libro y de revista implementados en sala limpia desde Mechel, Bies, Cox y D’Antonio, Miki (1990), Maa (1998), Johnson, Koplik y Dashen (1987) y Jiménez et al. (2016/2017), las fuentes listadas arriba. Esto cubre los modelos de fluido equivalente porosos (delany_bazley, miki, johnson_champoux_allard), el solucionador multicapa por matrices de transferencia (layered_absorber con PorousLayer, PerforatedPlateLayer, MicroperforatedPlateLayer y MembraneLayer), los coeficientes de incidencia aleatoria por la integral de Paris (diffuse_field_absorption, statistical_absorption) y el absorbente de ranura con resonador de Helmholtz de acoplamiento crítico (slit_helmholtz_absorber, critical_coupling_design).

No cubierto. El libro de Cox y D’Antonio trata tanto difusores como absorbentes, pero esta guía solo implementa la mitad de absorbentes. La predicción del difusor de gradiente de fase de Schroeder vive en un módulo aparte (materials.diffuser_design), documentada en Dispersión superficial, difusión y absorción in situ.

  • Materiales acústicos: las normas de medida con las que conectan estos modelos de predicción, a saber, ISO 9053-1/-2 (resistividad al flujo), ISO 10534-1/-2 y ASTM E2611 (tubo de impedancia) e ISO 354 / ISO 11654 (absorción de incidencia aleatoria y su valoración).
  • Attenborough, K. y Van Renterghem, T. (2021). Predicting outdoor sound (2.ª ed.). CRC Press. https://doi.org/10.1201/9780429470806Capítulo 5: modelos de impedancia de suelos, incluida la familia JCA.
  • Bies, D. A., Hansen, C. H. y Howard, C. Q. (2017). Engineering noise control (5.ª ed.). CRC Press. https://doi.org/10.1201/9781351228152Apéndice D: propiedades de materiales porosos, juegos de coeficientes de la tabla D.1 y las recursiones de construcciones en capas D.91-D.99.
  • Cox, T. J. y D'Antonio, P. (2017). Acoustic absorbers and diffusers: Theory, design and application (3.ª ed.). CRC Press. https://doi.org/10.1201/9781315369211Modelado por matrices de transferencia (secc. 2.6), modelos porosos (secc. 6.5) y ecuaciones de diseño de absorbentes resonantes (seccs. 7.3/7.5).
  • Delany, M. E. y Bazley, E. N. (1970). Acoustical properties of fibrous absorbent materials. Applied Acoustics, 3(2), 105-116. https://doi.org/10.1016/0003-682X(70)90031-9Las relaciones empíricas originales y su validez declarada.
  • Hopkins, C. (2007). Sound insulation. Butterworth-Heinemann. https://doi.org/10.4324/9780080550473Sección 1.3.2.2: el modelo de gas equivalente y la forma SI de Delany-Bazley.
  • Jimenez, N., Groby, J.-P., Pagneux, V. y Romero-Garcia, V. (2017). Iridescent perfect absorption in critically-coupled acoustic metamaterials using the transfer matrix method. Applied Sciences, 7(6), 618. https://doi.org/10.3390/app7060618El modelo por matrices de transferencia de la ranura con resonadores de Helmholtz y la condición de acoplamiento crítico (absorción perfecta) de slit_helmholtz_absorber.
  • Jimenez, N., Huang, W., Romero-Garcia, V., Pagneux, V. y Groby, J.-P. (2016). Ultra-thin metamaterial for perfect and quasi-omnidirectional sound absorption. Applied Physics Letters, 109(12), 121902. https://doi.org/10.1063/1.4962328La impedancia del resonador (ec. A23), sus correcciones de radiacion (ecs. A24-A27) y los ejemplos de sonido lento.
  • Johnson, D. L., Koplik, J. y Dashen, R. (1987). Theory of dynamic permeability and tortuosity in fluid-saturated porous media. Journal of Fluid Mechanics, 176, 379-402. https://doi.org/10.1017/S0022112087000727El modelo de tortuosidad dinámica tras la densidad efectiva JCA.
  • Maa, D.-Y. (1998). Potential of microperforated panel absorber. The Journal of the Acoustical Society of America, 104(5), 2861-2866. https://doi.org/10.1121/1.423870La impedancia exacta del MPP (ec. 2), las correcciones de extremo, las fórmulas de diseño y el ejemplo de la fig. 5 fijado en los tests.
  • Mechel, F. P. (Ed.). (2008). Formulas of acoustics (2.ª ed.). Springer. https://doi.org/10.1007/978-3-540-76833-3Secciones D.3-D.6 (reflexión en capas, esquema multicapa, integrales de campo difuso) y G.11 (relaciones empíricas de porosos).
  • Miki, Y. (1990). Acoustical properties of porous materials — Modifications of Delany-Bazley models. Journal of the Acoustical Society of Japan (E), 11(1), 19-24. https://doi.org/10.1250/ast.11.19La regresión positivo-real implementada en miki.
  • Stinson, M. R. (1991). The propagation of plane sound waves in narrow and wide circular tubes, and generalization to uniform tubes of arbitrary cross-sectional shape. The Journal of the Acoustical Society of America, 89(2), 550-558. https://doi.org/10.1121/1.400379La densidad efectiva y el modulo de compresibilidad visco-termicos de la ranura y de los cuellos y cavidades cuadrados.