<!-- canonical: https://jmrplens.github.io/phonometry/es/devices/noise-control/vdi2081-air-systems/ -->
Source: https://jmrplens.github.io/phonometry/es/devices/noise-control/vdi2081-air-systems/

[Ruido transmitido por conductos](/phonometry/es/devices/noise-control/duct-path/)
responde a la misma pregunta que esta página, y la responde de otra manera.
Aquella es la vía angloamericana, construida sobre la Tabla 14.9 de Long y la
ley de escalado de ASHRAE. Esta es la **VDI 2081**, la directriz alemana, que
llega al nivel en la sala con otro conjunto de modelos y los ancla en un
ejemplo resuelto propio.

Dos métodos para una pregunta no es duplicar. Cada uno lleva sus propios
argumentos, sus propias tablas y su propia hoja resuelta, y donde discrepan
conviene saberlo. La biblioteca los mantiene separados con `model=`, así que un
cálculo no puede acabar medio en uno y medio en el otro.

## 1. La instalación, y de dónde sale cada número

La Parte 2 es una tabla de veinte elementos numerados. Se lee mejor como un
lugar.

*Cada caja es una fila de la Tabla 1. La franja bajo el dibujo es lo que una
tabla de resultados no puede enseñar: de qué ecuación, tabla o medida sale cada
número.*

La forma del cálculo es la de cualquier hoja de ruido de conductos: una fuente,
un recorrido que quita nivel y devuelve algo, y una sala que convierte potencia
sonora en presión sonora. Lo que cambia es cada modelo de dentro.

## 2. La fuente: un ventilador descrito por su montaje

ASHRAE describe un ventilador por su **tipo** y le lee una fila de constantes
por banda. La VDI 2081 lo describe por su **montaje**, y saca el espectro de
una fórmula. El apartado 4.3 da el nivel global como

$$
L_{W4} = L_\mathrm{WSM} + 10 \lg \dot{V} + 20 \lg \Delta p_\mathrm{t}
$$

la Ecuación (13), con el nivel específico de potencia sonora representativo
$L_\mathrm{WSM}$ del montaje: 34 dB para un ventilador radial con álabes
curvados hacia atrás, 36 dB para un rotor cilíndrico con álabes curvados hacia
delante y 42 dB para un axial con difusor aguas abajo. La forma sale luego de
la Ecuación (15), una parábola en el logaritmo del número de Strouhal que cada
montaje desplaza con su propio $c_3$.

*El mismo aire, el mismo aumento de presión, y doce decibelios globales más por
elegir una máquina axial en lugar de una radial.*

```python
from phonometry import noise_control

for assembly in ("rr", "t", "am"):
    fan = noise_control.fan_sound_power(
        16000 / 3600,
        model="vdi2081",
        fan_total_pressure_pa=600.0,
        assembly=assembly,
        fan_speed_rpm=1250.0,
    )
    print(assembly, [round(float(v), 1) for v in fan.values[:3]])
```

En esa llamada viven dos trampas.

**La presión es el aumento de presión total, no la presión estática.** La ley
de ASHRAE escala la estática; la VDI 2081, la total. Son magnitudes distintas,
y confundirlas cuesta veinte veces el logaritmo de su cociente. Por eso cada
modelo toma solo el argumento sobre el que está escrita su propia norma,
declarado con `typing.overload`, de modo que no se puedan intercambiar por
descuido.

**El número de Strouhal no lleva diámetro de rodete.** Se cancela entre la
velocidad de punta y la circunferencia del rodete, así que
$St = 60 f / (\pi n)$ depende solo de la velocidad de giro. Un nomograma que
pida el tamaño del rodete está respondiendo a otra pregunta.

## 3. Lo que el recorrido quita

Cuatro modelos, uno por clase de elemento, cada uno con su tabla de la propia
directriz detrás.

- **Conducto recto** (apartado 6.1, Tabla 5): decibelios por metro según el
  tamaño del conducto, con `unlined_rectangular_duct_attenuation` y
  `unlined_circular_duct_attenuation` y `model="vdi2081"`. Un conducto
  rectangular de chapa quita mucho más a 63 Hz que uno circular, porque lo que
  cede son sus paredes.
- **Codo** (apartado 6.2, Tabla 7): según el tamaño del propio codo, con
  `elbow_insertion_loss`. La tabla está impresa una sola vez, para un lado de
  1250 mm, y se desplaza por el eje de frecuencia para cualquier otro tamaño.
- **Cambio de sección** (apartado 6.3, Figura 26): la reflexión en un salto
  súbito, con `section_change_loss`. Es una sola expresión,
  $10 \lg (r+1)^2/(4r)$ en la razón de áreas $r = S_1/S_2$, y dos reglas sobre
  cuándo se aplica: un estrechamiento súbito refleja en todas las bandas y una
  ampliación súbita solo por debajo de la frecuencia límite del conducto por el
  que llega. La VDI 3733 recomienda no tomar de ahí más de 5 dB, porque el
  valor impreso solo se alcanza con el conducto terminado anecoicamente por los
  dos extremos, y un cambio gradual con un cono largo no refleja nada que
  merezca contarse.
- **Ramificación** (apartado 6.4, Ecuación (35)): la parte de la sección que se
  lleva la rama, `10 lg (S1 / suma Si)`, con `split_loss`. Está escrita sobre
  área y no sobre caudal, y esa misma página dice que la reducción no depende
  de la frecuencia.

```python
from phonometry import noise_control

bands = np.array([63.0, 125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0, 8000.0])
run = noise_control.unlined_rectangular_duct_attenuation(
    bands, 0.500, 0.400, 4.000, model="vdi2081"
)
print([round(float(v), 2) for v in run.values])
```

*La expresión es simétrica: un conducto que se ensancha en un factor refleja lo
mismo que ese conducto estrechándose en él. Lo que cambia es cuándo.*

```python
from phonometry import noise_control

bands = np.array([63.0, 125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0, 8000.0])
step = noise_control.section_change_loss(bands, 0.5, 0.2)
print(round(float(step.values[0]), 2))   # 0,88 dB, en todas las bandas
```

Un estrechamiento no necesita nada más. La columna de frecuencia de la Figura 26
pone «sin efecto» para él, así que en la respuesta no entra ninguna frecuencia
límite y tampoco la forma del conducto ni su tamaño. Un ensanchamiento sí los
necesita, y a un conducto rectangular hay que darle su lado mayor, que es lo
único que su área no dice.

Un silenciador de bafles no es uno de estos: su pérdida de inserción viene de
la medida del fabricante, según la ISO 7235, y la directriz lo dice.
`splitter_silencer_insertion_loss` es la estimación para cuando no la hay.

## 4. Lo que el recorrido devuelve

El aire que se mueve por un conducto hace ruido, y pasado el silenciador a
menudo no queda otra cosa que oír. La VDI 2081 lo da en forma cerrada.

- **Un tramo recto** (apartado 5.2.1, Ecuaciones (16) y (17) con la Figura 16),
  con `flow_noise_straight_duct_overall` para los dos niveles globales y
  `flow_noise_straight_duct` para el espectro por octavas, que es el primero de
  ellos con la forma relativa de la Figura 16 encima. Esa forma es un ajuste y
  no un reparto, así que las bandas no suman el nivel global.
- **Un codo o una ramificación** (apartado 5.2.2, Ecuación (18) con las
  Figuras 17 y 18), con `flow_noise_bend`. Está escrito sobre un número de
  Strouhal construido con el diámetro del propio elemento y la velocidad que lo
  atraviesa, y las dos figuras declaran que solo valen por encima de $St = 1$,
  así que la biblioteca no da nivel por debajo en lugar de extrapolar una curva
  que la directriz no dibuja.
- **El ruido propio de un silenciador de bafles** (Ecuación (49)), con
  `silencer_self_noise`, que depende de la velocidad en los huecos entre bafles
  y de la pérdida de carga. Es la razón de que un silenciador tenga un tamaño
  óptimo: si se estrechan los huecos sube la pérdida de inserción, pero también
  la velocidad, y pasado un punto el silenciador suena más que lo que quitaba.
- **La propia boca**, con `diffuser_sound_power`.

*Cincuenta veces el logaritmo de la velocidad, y setenta para el número ponderado
A: un conducto dimensionado para la mitad de velocidad suena quince decibelios
menos sin ponderar, y veintiuno tal como los pondera el oído.*

```python
from phonometry import noise_control

area = 0.5 * 0.4                      # un tramo de impulsión de 500 x 400 mm
velocity = (4200.0 / 3600.0) / area   # con 4200 m3/h
overall = noise_control.flow_noise_straight_duct_overall(velocity, area)
weighted = noise_control.flow_noise_straight_duct_overall(
    velocity, area, weighting="A"
)
print(round(overall), round(weighted))
# 38 22
```

## 5. El paso a la sala, y las dos áreas que no son el mismo número

La Ecuación (36) convierte la potencia sonora que llega a la boca en el nivel
que oye una persona:

$$
L_W - L_p = -10 \lg \left( \frac{Q}{4 \pi r^{2}} + \frac{4}{A} \right)
$$

Dos cosas de ella se confunden con facilidad.

**$A$ es el área de absorción equivalente, no la constante de sala.** La
constante de sala es $R = A/(1 - \bar\alpha)$, y las dos son áreas en metros
cuadrados y las dos son positivas, así que poner una donde va la otra es un
error silencioso: el número sale verosímil y mal. Por eso `room_effect` y
`room.steady_state_spl` toman `absorption_area=` y `room_constant=` como
argumentos distintos, y solo se puede dar exactamente uno.

**$Q$ cambia con la frecuencia.** Un difusor de techo es tanto más direccional
cuanto más corta es la longitud de onda, y la directriz lee $Q$ de una gráfica
frente a la frecuencia en lugar de suponer un semiespacio. Las dos funciones
admiten una directividad que varía entre bandas.

*Izquierda: los 5,7 dB únicos que la hoja imprime al lado de la fila no son
ninguno de los ocho valores por banda, porque son la misma sala con la
directividad de un semiespacio. Derecha: meter la constante de sala en el
argumento del área de absorción cuesta cerca de un decibelio en esta sala, y
más en una más viva.*

```python
from phonometry import noise_control

directivity = np.array([2.1, 2.4, 3.0, 4.0, 5.5, 6.7, 7.0, 7.2])
shaped = noise_control.room_effect(1.5, absorption_area=20.0, directivity=directivity)
print([round(float(v), 1) for v in np.asarray(shaped)])
print(round(float(noise_control.room_effect(1.5, absorption_area=20.0)), 1))
```

## 6. La hoja, de principio a fin

La Parte 2 existe para anclar a la Parte 1: una red de impulsión resuelta
elemento a elemento, con todas las magnitudes intermedias impresas. Eso la
convierte en un oráculo de una clase que el lado ASHRAE del módulo no tiene, y
para un modelo de verdad distinto, no para una reformulación del mismo.

*El silenciador hace casi todo el trabajo, y lo que deja es una meseta: pasado
1 kHz el nivel ya no sigue al ventilador, porque lo que se oye ahí es el ruido
que hace el propio aire al pasar.*

El nivel ponderado A en la sala 102 sale 40,0 dB(A) frente a los 40,0 que
imprime la hoja, y el total sin ponderar 51,4 frente a 51,4. Cuarenta y seis
filas de conformidad sujetan cada elemento de la cadena a la décima de
decibelio a la que está impresa la tabla, banda a banda y no por la suma: una
suma es ciega a la forma, y cualquier par de errores que se compensen la pasa.

Si la sala está lo bastante silenciosa lo decide entonces el apartado 1.1 de la
Parte 2, que convierte una exigencia ponderada A en un límite por octava:

```python
from phonometry import noise_control

limits = noise_control.octave_band_limits(35.0)
print([round(float(v)) for v in limits.values])
```

## 7. Lo que la propia directriz tiene mal

Hay cinco defectos registrados en [el registro de
erratas](/phonometry/es/reference/errata/), todos verificados contra la página
impresa.

- La lista de símbolos bajo la Ecuación (36) manda a buscar $A$ en la propia
  Ecuación (36), que es donde ya está el lector.
- La columna inglesa del apartado 6.7.3 llama esférica a una radiación
  hemisférica, y la columna alemana de al lado no.
- La columna inglesa del apartado 6.4 dice que la reducción de nivel de una
  ramificación depende de la frecuencia; la columna alemana de al lado dice que
  no depende, y la Figura 27 de esa misma página no tiene eje de frecuencia.
- La Tabla 1 de la Parte 2 imprime para el elemento 2 un diámetro hidráulico
  que no es el que usa para calcular.
- La Tabla 1 de la Parte 2 atribuye los coeficientes del silenciador de bafles
  del elemento 2 al apartado 7.3.2 de la Parte 1, que es el aislamiento a ruido
  aéreo de un elemento constructivo. Están impresos en el apartado 7.2.3.2.

Las ediciones implementadas aquí son la Parte 1:2001-07 y la Parte 2:2005-05.
Las dos están sustituidas por las de 2022, y ninguna sucesora está en la
biblioteca; el par que sí lo está es coherente, porque la Parte 2:2005 se
escribió contra la Parte 1:2001 y todas las referencias cruzadas de sus tablas
resuelven ahí.

El ventilador del apartado 4.3 mediante `fan_sound_power(model="vdi2081")`, la
atenuación de conducto, codo, cambio de sección y ramificación del apartado 6,
el ruido de flujo de las Ecuaciones (16), (17) y (18), el silenciador de bafles y su
ruido propio, la reflexión de boca del apartado 6.6, el paso a la sala de la
Ecuación (36) y la curva de valoración del apartado 1.1 de la Parte 2, todo
contra la hoja resuelta de la Tabla 1 de la Parte 2.

Los capítulos de unidades de tratamiento de aire y de propagación al exterior
que añadió la revisión de 2019, que están en las ediciones que no hay aquí; la
acústica de salas que la VDI 2081 deja a la VDI 2569; y el aislamiento de
vibraciones de la instalación, que el apartado 7.6 del Blatt 1 sí cubre y esta
biblioteca no.

## Véase también

- [Ruido transmitido por conductos: del ventilador a la sala](/phonometry/es/devices/noise-control/duct-path/):
  la misma pregunta por la vía angloamericana, y el límite de onda plana que
  acota a las dos.
- [Silenciadores](/phonometry/es/devices/noise-control/silencers/): qué está
  haciendo un silenciador de bafles y cómo se mide su pérdida de inserción.
- [Ruido entre salas](/phonometry/es/devices/noise-control/room-to-room/): el
  camino que no va por un conducto.
