<!-- canonical: https://jmrplens.github.io/phonometry/es/devices/noise-control/valve-cavitation/ -->
Source: https://jmrplens.github.io/phonometry/es/devices/noise-control/valve-cavitation/

El agua se comprime lo justo para llevar el sonido a 1 400 m/s y es demasiado
rígida para bloquearse como lo hace un gas, así que una válvula de control en
una línea de agua no puede formar las celdas de choque a las que [la parte
aerodinámica](/phonometry/es/devices/noise-control/control-valve-noise/)
dedica cinco regímenes. Hace ruido de otras dos maneras, y toda la
IEC 60534-8-4 es la suma de ambas: **turbulencia** en el chorro que sale de la
vena contracta y **cavitación**, en cuanto la presión allí baja lo bastante
para que el líquido pase a vapor y las burbujas vuelvan a colapsar aguas
abajo.

La diferencia entre las dos no es de grado. El ruido turbulento sigue con
suavidad a la velocidad del chorro; la cavitación aparece en un umbral y a
partir de ahí sube como una quinta potencia. Todo lo de esta página depende de
dónde esté el punto de funcionamiento respecto de ese umbral.

*El caso líquido cambia la fuente y no la geometría: las burbujas colapsan donde
está el chorro, y el nivel se declara en el mismo metro.*

## 1. El umbral, y por qué la norma pide medirlo

El régimen lo deciden dos cocientes. El primero es el **cociente diferencial
de presiones**, la Ecuación (1), que dice a qué distancia de la evaporación
está este punto de funcionamiento:

$$
x_F = \frac{p_1 - p_2}{p_1 - p_v}
$$

El segundo es el **cociente característico de presiones** $x_{Fz}$: el valor
de $x_F$ al que la cavitación empieza a oírse en esta válvula. Es una
propiedad de la válvula, medida según la IEC 60534-8-2, y el apartado 4.2
ofrece la Ecuación (3a) solo como estimación para cuando no hay medida. La
Ecuación (3c) la lleva luego desde los 6 × 10⁵ Pa a los que está trazada la
estimación hasta la presión de entrada real.

```python
from phonometry import noise_control

x_f = noise_control.differential_pressure_ratio(
    inlet_pressure_pa=1.0e6, outlet_pressure_pa=6.5e5, vapour_pressure_pa=2.32e3
)
print(round(x_f, 4))                                    # 0.3508

x_fz = noise_control.incipient_cavitation_ratio(90.0, 0.42, 0.92)
print(round(x_fz, 4))                                   # 0.2543  a 6e5 Pa
print(round(noise_control.corrected_incipient_ratio(x_fz, 1.0e6), 4))
#                                                       # 0.2386  a 10 bar
```

Esta válvula está por encima de su umbral, así que cavita. Un interno
multiorificio de la misma capacidad no lo estaría: la Ecuación (3b) responde a
la geometría de los orificios y no a la capacidad, y ciento veinte agujeros de
tres milímetros suben el umbral la mitad. La comparación hay que hacerla
contra el valor **corregido**, que es la mitad que más fácil se salta uno.

```python
holes = noise_control.multihole_incipient_cavitation_ratio(120, 0.003, 0.92)
print(round(holes, 4))                                  # 0.3941  a 6e5 Pa
print(round(noise_control.corrected_incipient_ratio(holes, 1.0e6), 4))
#                                                       # 0.3698  sigue por encima de x_F
```

*El panel izquierdo es la propia Figura A.1 del anexo A: la misma válvula al
mismo caudal, con un cociente característico separado 0,1, y 14 dB entre los
dos marcadores en $x_F = 0{,}35$.*

Esos 14 dB son el motivo de que el 4.2 avise de que una predicción hecha sobre
la estimación «puede crear incertidumbres». La estimación no es una corrección
pequeña de la respuesta; en una válvula que cavita **es** la respuesta.

## 2. Dos eficiencias que se reparten una potencia

La parte del método que trata la fuente es corta. El diferencial de la Ecuación (2) está
limitado por el punto de bloqueo, la Ecuación (5) lo convierte en velocidad
del chorro y la (6) en la potencia de la vena que la válvula disipa:

```python
choked = noise_control.cavitation_differential(
    inlet_pressure_pa=1.0e6,
    outlet_pressure_pa=6.5e5,
    vapour_pressure_pa=2.32e3,
    pressure_recovery=0.92,
)
speed = noise_control.vena_contracta_velocity(choked, 997.0, 0.92)
power = noise_control.mechanical_stream_power(40.0, speed, 0.92)
print(round(speed, 3), round(power, 1))                 # 28.801 14042.1
```

Después, dos eficiencias dicen qué fracción de esos catorce kilovatios sale
como sonido. La Ecuación (8) hace la turbulenta lineal en el número de Mach
del chorro, y solo llega a $10^{-4}$ cuando el chorro alcanza la velocidad del
sonido en el líquido, que para el agua son 1 400 m/s y en una válvula de
control no pasa nunca:

$$
\eta_{turb} = 10^{-4}\left(\frac{U_{vc}}{c_L}\right)
$$

La Ecuación (9) es la otra, y merece leerse factor a factor:

$$
\eta_{cav} = 0{,}32\, \eta_{turb}
  \sqrt{\frac{p_1 - p_2}{\Delta p_c}\cdot\frac{1}{x_{Fzp1}}}\;
  e^{5 x_{Fzp1}}
  \left(\frac{1 - x_{Fzp1}}{1 - x_F}\right)^{0,5}
  \left(\frac{x_F}{x_{Fzp1}}\right)^{5}
  \left(x_F - x_{Fzp1}\right)^{1,5}
$$

Tres de esos factores hacen todo el trabajo. $(x_F - x_{Fzp1})^{1,5}$ arranca
el término en **exactamente cero** en el umbral, así que los dos regímenes se
encuentran sin escalón. $(x_F/x_{Fzp1})^5$ lo hace subir luego casi en
vertical. Y $(1 - x_F)^{-0,5}$ lo manda a infinito cuando la válvula se acerca
a la evaporación, que es donde el método se detiene.

```python
turbulent = noise_control.turbulent_efficiency(speed, 1400.0)
cavitating = noise_control.cavitation_efficiency(
    turbulent=turbulent,
    differential=3.5e5,
    choked_differential=choked,
    pressure_ratio=0.3508,
    corrected_ratio=0.2386,
)
print(f"{turbulent:.3e} {cavitating:.3e}")              # 2.057e-06 1.242e-06
```

Justo por encima del umbral el término de cavitación ya es comparable con el
turbulento, y la Ecuación (7b) los suma antes de que el cociente de potencia
acústica $r_W$ de la Tabla 2 se quede con la parte que se radia hacia la
tubería en vez de perderse en el cuerpo: un cuarto para toda válvula de globo
y rotativa, la mitad para las de mariposa, uno para un expansor.

## 3. Toda la cadena en una llamada

```python
res = noise_control.valve_hydrodynamic_noise(
    noise_control.LiquidStream(
        mass_flow=40.0,                # kg/s
        inlet_pressure_pa=1.0e6,          # Pa, absoluta
        outlet_pressure_pa=6.5e5,
        vapour_pressure_pa=2.32e3,
        density=997.0,                 # kg/m3
        speed_of_sound=1400.0,            # m/s
    ),
    noise_control.LiquidTrim(
        flow_coefficient=90.0,         # C_v
        style_modifier=0.42,           # F_d, de la IEC 60534-8-3
        pressure_recovery=0.92,        # F_L
        incipient_ratio=x_fz,          # x_Fz, a 6e5 Pa
        power_ratio=0.25,              # r_W, Tabla 2
        valve_diameter_m=0.1,            # m
        seat_diameter_m=0.1,             # m
    ),
    noise_control.LiquidPipe(
        internal_diameter_m=0.1071,      # m
        wall_thickness=0.0036,         # m
        density=7800.0,                # kg/m3, acero
    ),
)
print(res.regime)                                       # cavitating
print(round(res.sound_power, 5), "W")                   # 0.01158 W
print(round(res.internal_level, 3), "dB")               # 156.543 dB
print(round(res.turbulent_peak, 2), round(res.cavitation_peak, 2))
#                                                       # 654.35 1088.94
print(round(res.external_level, 1), "dB a 1 m")         # 81.0 dB a 1 m
```

Cada uno de esos números es una celda impresa de la Tabla A.1 del anexo A. La
misma llamada sobre la primera columna, 30 kg/s hacia 8 bar, se queda en
turbulenta y responde 62,7 dB; la tercera columna es otra vez la segunda con
$x_{Fz}$ desplazado 0,1, y responde 66,9 dB.

Las dos frecuencias de pico son las Ecuaciones (11) y (13), y la (13) es la
sorprendente: en el umbral el pico de cavitación es **seis veces** el
turbulento, y a partir de ahí baja según la válvula se mete más en
cavitación, porque las burbujas crecen más y tardan más en colapsar. Recién
pasado el umbral la cavitación es un siseo; muy dentro, un retumbe.

## 4. La tubería, y un signo impreso que no puede ser

Dentro de la tubería esta válvula va a 156 dB. Lo que hace habitable el
exterior es la pared, y la norma ancla su pérdida por transmisión en la
**frecuencia de anillo**, la Ecuación (14), donde una longitud de onda en el
material de la pared da exactamente una vuelta a la circunferencia:

```python
print(round(res.pipe_ring_frequency, 1), "Hz")          # 14860.4 Hz
print(round(res.reference_transmission_loss, 2), "dB")  # -44.71 dB
print(round(res.transmission_loss, 2), "dB")            # -62.86 dB
```

Los dos términos de la Ecuación (15) van impresos con signo menos, así que la
pérdida por transmisión de este método es un **número negativo que se suma**
hasta el final. Lejos de la frecuencia de anillo, las Ecuaciones (16b) y (22b)
solo la empeoran, y las frecuencias de pico de una válvula de control están
más de una década por debajo de la frecuencia de anillo de su tubería, que es
de donde salen los otros 18 dB de pérdida de esta válvula: la Ecuación (16b)
cuesta 27 dB en el pico turbulento y la (17) devuelve 9 porque la válvula
cavita.

Banda a banda, el 5.4 reparte el nivel interior con las Ecuaciones (20a) y
(20b) y le da a la pared una pérdida dependiente de la frecuencia con la
Ecuación (22a):

```python

band = int(np.argmin(np.abs(res.frequencies - 8000.0)))
print(round(float(res.band_internal_level[band]), 1))     # 141.9
print(round(float(res.band_transmission_loss[band]), 2))  # -51.76
print(round(float(res.band_external_level[band]), 1))     # 77.4
```

Esos tres van impresos en la Tabla A.1 como 141,9 dB, **51,76 dB** y 77,4 dB.
El del medio está impreso sin su signo menos, y no puede ser: sus dos propias
entradas, $-44{,}71$ y $-7{,}053$ dB, suman $-51{,}763$, y la fila de abajo
solo reproduce sus 77,4 dB impresos con el valor negativo.
[El registro de erratas](/phonometry/es/reference/errata/) lo recoge, junto
con tres intermedios de esa misma tabla que sus propias ecuaciones no
reproducen.

## 5. Una ecuación impresa de dos maneras

La Ecuación (12), el número de Strouhal que coloca el pico turbulento, aparece
dos veces en el documento y no igual. El apartado 5.1 imprime un 0,02 delante
y ningún modificador de estilo de válvula; la Tabla A.1 imprime 0,036 y un
factor $F_d^{0,75}$. Las dos están en la página, y no son la misma función de
la válvula.

```python
form = dict(
    flow_coefficient=90.0,
    style_modifier=0.42,
    pressure_recovery=0.92,
    corrected_ratio=0.2386,
    valve_diameter_m=0.1,
    seat_diameter_m=0.1,
    inlet_pressure_pa=1.0e6,
    vapour_pressure_pa=2.32e3,
)
print(round(noise_control.jet_strouhal_number(**form, form="annex"), 3))   # 0.399
print(round(noise_control.jet_strouhal_number(**form, form="clause"), 3))  # 0.425
```

Solo la forma del anexo reproduce el $N_{Str} = 0{,}399$ que el propio anexo
imprime, así que es la que va por defecto aquí y la de la cláusula queda a una
palabra clave de distancia. Para esta válvula las dos difieren un 6 %; para
una válvula de un solo orificio con $F_d = 1$ la del anexo está un 80 % por
encima de la de la cláusula, que son cinco sextos de octava en la
frecuencia de pico y unos cuantos decibelios a través de la pérdida por transmisión.

## 6. Etapa a etapa

El apartado 6 es el mismo método con entradas por etapa. Cada etapa se lleva
una parte del diferencial en proporción inversa al cuadrado de su propio
coeficiente de caudal, que es la ley de resistencias en serie
$1/C^2 = \sum_i 1/C_i^2$:

```python
stages = noise_control.stage_conditions(
    inlet_pressure_pa=1.0e6,
    outlet_pressure_pa=4.0e5,
    vapour_pressure_pa=2.32e3,
    stage_coefficients=[130.0, 160.0, 199.1],
    flow_coefficient=90.0,
)
for stage in stages:
    print(round(stage.inlet_pressure_pa), round(stage.pressure_ratio, 3))
# 1000000 0.288
# 712426 0.267
# 522582 0.236

print(round(noise_control.combine_stage_levels(78.0, 74.0, 71.0), 1))   # 80.0
```

Esos tres coeficientes crecen a lo largo del flujo, que es el dispositivo de
la Figura 2: la mayor parte de la presión se toma en las primeras etapas y la
última queda trabajando con un diferencial lo bastante pequeño como para no
cavitar. El 6.3.2 calcula entonces **solo** esa última etapa, porque el sonido
que hacen las anteriores se absorbe dentro del interno antes de llegar a la
tubería, y limita el diferencial con el umbral de cavitación de la última
etapa en vez de con el punto de bloqueo:

```python
print(noise_control.last_stage_differential(
    inlet_pressure_pa=6.0e5,
    outlet_pressure_pa=4.0e5,
    vapour_pressure_pa=2.32e3,
    corrected_ratio=0.30,
))                                                      # 179304.0

print(noise_control.uniform_passage_style_modifier(16))            # 0.25
print(round(noise_control.last_stage_seat_diameter_mm(45.0), 1))   # 37.7
```

La última de esas lleva la unidad en el nombre por algo. La fórmula que
implementa es la única fórmula destacada de la norma sin número de ecuación,
$d_o = 5{,}2\sqrt{N_{34} C_n}$, y el apartado 3 declara $d_o$ en metros, cosa
que para cualquier última etapa real no puede ser: 37,7 de algo son
milímetros. Divide entre mil antes de dárselo a la Ecuación (12).

## Qué cubre esta guía

IEC 60534-8-4:2005, apartados 4, 5 y 6, contra los tres ejemplos resueltos del
anexo A. Los cálculos preliminares del apartado 4: el cociente diferencial de
presiones de la Ecuación (1), el diferencial limitado de la (2), el cociente
característico de presiones de las (3a) y (3b) con la corrección de entrada de
la (3c), el diámetro de chorro de la (4), la velocidad en la vena contracta de
la (5) y la potencia de la vena de la (6). La predicción de ruido del apartado
5: las dos eficiencias acústicas de las Ecuaciones (8) y (9) y la potencia
sonora de las (7a) y (7b), el nivel interior en la pared de la tubería de la
(10), el número de Strouhal y las dos frecuencias de pico de las (11) a (13),
la frecuencia de anillo y la pérdida por transmisión de las (14) a (17) con el
suelo de la NOTA, el nivel exterior de las (18a) y (18b), y toda la ruta en
frecuencia del 5.4 por bandas. Y el apartado 6 para un interno multietapa: las
presiones y cocientes por etapa de las Ecuaciones (23a) a (26), la suma
energética de la (27), y el diferencial, el modificador de estilo y el
diámetro de asiento de la última etapa del 6.3.2.

La medida del propio $x_{Fz}$, que es el procedimiento de laboratorio de la
IEC 60534-8-2 y no un cálculo, y las curvas típicas de las Figuras 4 a 9 que
hacen sus veces: esta página toma el valor como argumento. La evaporación, el
régimen más allá de $x_F = 1$ donde el líquido sale de la válvula como vapor,
que el método excluye y la biblioteca rechaza en vez de extrapolar.
