CONTROL_VALVE_NOISE_L_2015
Overview
The CONTROL_VALVE_NOISE_L_2015 function calculates the sound made by a liquid flowing through a control valve according to the standard IEC 60534-8-4 (2015). This function uses the fluids.control_valve.control_valve_noise_l_2015 implementation to determine the A-weighted sound pressure level generated by turbulent flow and cavitation in control valves. The calculation considers various parameters including fluid properties, valve characteristics, and pipe properties to predict noise levels accurately.
The function estimates noise based on the pressure drop across the valve, the physical properties of the liquid, and the geometric characteristics of the valve and pipe. The standard model accounts for both mechanical and hydraulic noise generation mechanisms in control valves.
For more details, see the fluids.control_valve.control_valve_noise_l_2015 documentation .
This function simplifies the interface by only supporting scalar inputs and does not expose complex array-based options. This example function is provided as-is without any representation of accuracy.
Usage
To use the function in Excel:
=CONTROL_VALVE_NOISE_L_2015(m, p_in, p_out, psat, rho, c, kv, d, di, fl, fd, t_pipe, [rho_pipe], [c_pipe], [rho_air], [c_air], [xFz], [An])m(scalar, required): Mass flow rate of liquid through the control valve [kg/s].p_in(scalar, required): Inlet pressure of the fluid before valves and reducers [Pa].p_out(scalar, required): Outlet pressure of the fluid after valves and reducers [Pa].psat(scalar, required): Saturation pressure of the fluid at inlet temperature [Pa].rho(scalar, required): Density of the liquid at the inlet [kg/mÂł].c(scalar, required): Speed of sound of the liquid at the inlet conditions [m/s].kv(scalar, required): Metric Kv valve flow coefficient [mÂł/hr].d(scalar, required): Diameter of the valve [m].di(scalar, required): Internal diameter of the pipe before and after the valve [m].fl(scalar, required): Liquid pressure recovery factor [-].fd(scalar, required): Valve style modifier [-].t_pipe(scalar, required): Wall thickness of the pipe after the valve [m].rho_pipe(scalar, optional, default=7800.0): Density of the pipe wall material at flowing conditions [kg/mÂł].c_pipe(scalar, optional, default=5000.0): Speed of sound of the pipe wall material at flowing conditions [m/s].rho_air(scalar, optional, default=1.293): Density of the air surrounding the valve and pipe wall [kg/mÂł].c_air(scalar, optional, default=343.0): Speed of sound of the air surrounding the valve and pipe wall [m/s].xFz(scalar, optional, default=None): If specified, this value xFz is used instead of estimated [-].An(scalar, optional, default=-4.6): Valve correction factor for acoustic efficiency [-].
The function returns a scalar value representing the A-weighted sound pressure level [dB], or an error message (str) if the input is invalid.
Examples
Example 1: Basic Example Inputs:
| m | p_in | p_out | psat | rho | c | kv | d | di | fl | fd | t_pipe | rho_pipe | c_pipe | rho_air | c_air | An |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 40 | 1000000.0 | 650000.0 | 2320.0 | 997 | 1400 | 77.848 | 0.1 | 0.1071 | 0.92 | 0.42 | 0.0036 | 7800.0 | 5000.0 | 1.293 | 343.0 | -4.6 |
Excel formula:
=CONTROL_VALVE_NOISE_L_2015(40, 1000000, 650000, 2320, 997, 1400, 77.848, 0.1, 0.1071, 0.92, 0.42, 0.0036, 7800, 5000, 1.293, 343, -4.6)Expected output:
| Result |
|---|
| 81.600 |
Example 2: With xFz Parameter Inputs:
| m | p_in | p_out | psat | rho | c | kv | d | di | fl | fd | t_pipe | xFz |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 50 | 1500000.0 | 850000.0 | 3200.0 | 995 | 1350 | 90.0 | 0.12 | 0.127 | 0.88 | 0.38 | 0.004 | 0.05 |
Excel formula:
=CONTROL_VALVE_NOISE_L_2015(50, 1500000, 850000, 3200, 995, 1350, 90, 0.12, 0.127, 0.88, 0.38, 0.004, , , , , 0.05)Expected output:
| Result |
|---|
| 117.000 |
Example 3: Different An Parameter Inputs:
| m | p_in | p_out | psat | rho | c | kv | d | di | fl | fd | t_pipe | An |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 | 1200000.0 | 720000.0 | 2500.0 | 1000 | 1450 | 65.0 | 0.08 | 0.0889 | 0.9 | 0.4 | 0.003 | -4.0 |
Excel formula:
=CONTROL_VALVE_NOISE_L_2015(30, 1200000, 720000, 2500, 1000, 1450, 65, 0.08, 0.0889, 0.9, 0.4, 0.003, , , , , , -4.0)Expected output:
| Result |
|---|
| 92.100 |
Example 4: Minimal Arguments Inputs:
| m | p_in | p_out | psat | rho | c | kv | d | di | fl | fd | t_pipe |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 25 | 1000000.0 | 700000.0 | 2000.0 | 998 | 1420 | 55.0 | 0.09 | 0.095 | 0.85 | 0.45 | 0.0035 |
Excel formula:
=CONTROL_VALVE_NOISE_L_2015(25, 1000000, 700000, 2000, 998, 1420, 55, 0.09, 0.095, 0.85, 0.45, 0.0035)Expected output:
| Result |
|---|
| 72.700 |
Python Code
from typing import Union
import math
from fluids.control_valve import control_valve_noise_l_2015 as fluids_control_valve_noise_l_2015
def control_valve_noise_l_2015(
m: float,
p_in: float,
p_out: float,
psat: float,
rho: float,
c: float,
kv: float,
d: float,
di: float,
fl: float,
fd: float,
t_pipe: float,
rho_pipe: float = 7800.0,
c_pipe: float = 5000.0,
rho_air: float = 1.293,
c_air: float = 343.0,
xFz: float = None,
An: float = -4.6
) -> Union[float, str]:
"""
Calculates the sound made by a liquid flowing through a control valve according to the standard IEC 60534-8-4 (2015) using fluids.control_valve.control_valve_noise_l_2015. See https://fluids.readthedocs.io/fluids.control_valve.html#fluids.control_valve.control_valve_noise_l_2015 for details.
Args:
m: Mass flow rate of liquid through the control valve [kg/s]
p_in: Inlet pressure of the fluid before valves and reducers [Pa]
p_out: Outlet pressure of the fluid after valves and reducers [Pa]
psat: Saturation pressure of the fluid at inlet temperature [Pa]
rho: Density of the liquid at the inlet [kg/m^3]
c: Speed of sound of the liquid at the inlet conditions [m/s]
kv: Metric Kv valve flow coefficient [m^3/hr]
d: Diameter of the valve [m]
di: Internal diameter of the pipe before and after the valve [m]
fl: Liquid pressure recovery factor [-]
fd: Valve style modifier [-]
t_pipe: Wall thickness of the pipe after the valve [m]
rho_pipe: Density of the pipe wall material at flowing conditions [kg/m^3]
c_pipe: Speed of sound of the pipe wall material at flowing conditions [m/s]
rho_air: Density of the air surrounding the valve and pipe wall [kg/m^3]
c_air: Speed of sound of the air surrounding the valve and pipe wall [m/s]
xFz: If specified, this value xFz is used instead of estimated [-]
An: Valve correction factor for acoustic efficiency [-]
Returns:
float: LpAe1m - A weighted sound pressure level [dB], or an error message (str) if input is invalid.
This example function is provided as-is without any representation of accuracy.
"""
def _error(message: str) -> str:
return message
# Validate input parameters
try:
m = float(m)
p_in = float(p_in)
p_out = float(p_out)
psat = float(psat)
rho = float(rho)
c = float(c)
kv = float(kv)
d = float(d)
di = float(di)
fl = float(fl)
fd = float(fd)
t_pipe = float(t_pipe)
rho_pipe = float(rho_pipe)
c_pipe = float(c_pipe)
rho_air = float(rho_air)
c_air = float(c_air)
if xFz is not None:
xFz = float(xFz)
An = float(An)
except (TypeError, ValueError):
return _error("All parameters must be numeric values.")
# Check for non-finite values
values_to_check = [m, p_in, p_out, psat, rho, c, kv, d, di, fl, fd, t_pipe, rho_pipe, c_pipe, rho_air, c_air, An]
if xFz is not None:
values_to_check.append(xFz)
if any(not math.isfinite(val) for val in values_to_check):
return _error("All parameters must be finite numbers.")
# Call the actual implementation from the fluids package
try:
result = fluids_control_valve_noise_l_2015(
m=m,
P1=p_in,
P2=p_out,
Psat=psat,
rho=rho,
c=c,
Kv=kv,
d=d,
Di=di,
FL=fl,
Fd=fd,
t_pipe=t_pipe,
rho_pipe=rho_pipe,
c_pipe=c_pipe,
rho_air=rho_air,
c_air=c_air,
xFz=xFz,
An=An
)
return result
except Exception as exc:
return _error(f"fluids.control_valve.control_valve_noise_l_2015 error: {exc}")