building.structure_borne_power
Structure-borne sound power of building equipment (EN 15657:2018; ISO 9611).
Building service equipment (pumps, fans, boilers, sanitary appliances) injects
structure-borne sound power into the building structure it is fixed to.
EN 15657 measures it with the reception-plate method: the source is
mounted on a plate of known mass per unit area m and area S whose
structural loss factor eta is known, and the spatial-average vibratory
velocity level of the plate is measured.
The power a resonant plate dissipates equals
P = omega * eta * (m S) * <v**2>, so the power injected into that
reception plate is, in one-third-octave bands (Formula 14):
L_Ws = 10 lg(2 pi f eta m S / (f0 m0 S0)) + L_v - 60 [dB re 1 pW]with the references f0 = 1 Hz, m0 = 1 kg, S0 = 1 m2; the fixed
-60 dB term is 10 lg(v0**2 / P0) for the EN 15657 velocity reference
v0 = 1e-9 m/s and P0 = 1 pW. The spatial mean velocity level is the
energetic average over the N plate positions (Formula 12):
L_v = 10 lg( (1/N) sum 10^(L_v,i/10) )and the plate loss factor follows from its structural reverberation time Ts
(Formula 13, identical to the ISO 10848 total loss factor):
eta = 2.2 / (f Ts)Formula (14) is plate-specific, not a source descriptor. The same source
injects a different power into a different receiver; feeding L_Ws directly
into EN 12354-5 as a characteristic level mis-states the receiving-room level
by up to ~20 dB. EN 15657 derives the plate-independent source quantities from
two test plates: a low-mobility plate (its point mobility and loss factor
are unchanged by the source) and a high-mobility plate (loaded by the
source):
- the equivalent blocked force level (Formula 15, dB re
F0 = 1e-6 N):
L_Fb,eq = L_Ws,low - 10 lg( Re{Y_R,low,eq} / Y0 )
with the measured low-mobility-plate mobility and ``Y0 = 1 m/(N.s)``;- the characteristic reception-plate power level used by EN 12354-5
(Formula 17), referred to the standard 10 cm concrete plate of
characteristic mobility
Y_R,inf,low = 5e-6 m/(N.s)(clause 7.2.4):
L_Wsn = L_Fb,eq + 10 lg( Y_R,inf,low / Y0 )- the equivalent free velocity level (Formula 18, dB re
1e-9 m/s) from the high-mobility plate, and the source mobility from both (Formula 19).L_Wsnplus the mobility corrections of EN 12354-5 Annex I (seephonometry.building.installed_structure_borne) close the EN 15657 -> EN 12354-5 chain.
The source-side free velocity of ISO 9611:1996 is the direct-measurement
counterpart: velocity levels re v0 = 5e-8 m/s (clause 7), averaged over
positions with the energy mean of its equation (9), implemented by
mean_free_velocity_level.
Auto-generated from the source docstrings by
scripts/generate_api_docs.py(make api-docs). Do not edit by hand.
characteristic_reception_plate_power
Section titled “characteristic_reception_plate_power”characteristic_reception_plate_power( blocked_force_level: ArrayLike, *, characteristic_mobility: float = 5e-06,) -> np.ndarrayCharacteristic reception-plate power level (EN 15657:2018, Formula 17).
L_Wsn = L_Fb,eq + 10 lg(|Y_R,inf,low|/Y0) with the characteristic
mobility of the standard 10 cm concrete reception plate
Y_R,inf,low = 5e-6 m/(N.s) (clause 7.2.4) and Y0 = 1 m/(N.s).
This is the plate-independent source power level L_Ws,n that
EN 12354-5 consumes (its Annex I mobility correction
phonometry.installed_power_from_reception_plate then refers it to
the actual receiver).
Parameters
| Name | Description |
|---|---|
blocked_force_level | Equivalent blocked force level L_Fb,eq (per band), in dB re 1e-6 N (see equivalent_blocked_force_level). |
characteristic_mobility | Y_R,inf,low, in m/(N.s) (Default: 5e-6, clause 7.2.4). |
Returns: The characteristic power level L_Wsn, in dB re 1 pW.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive characteristic mobility. |
equivalent_blocked_force_level
Section titled “equivalent_blocked_force_level”equivalent_blocked_force_level( power_level: ArrayLike, plate_mobility: ArrayLike,) -> np.ndarrayEquivalent blocked force level, squared (EN 15657:2018, Formula 15).
L_Fb,eq = L_Ws,low - 10 lg(Re{Y_R,low,eq}/Y0) in dB re F0 = 1e-6 N,
from the power injected into the low-mobility reception plate
(Formula 14) and the equivalent point mobility of that plate (the
arithmetic mean of Re{Y} over the contact points, Formula 16).
Parameters
| Name | Description |
|---|---|
power_level | Injected power level L_Ws,low (per band), in dB re 1 pW (see structure_borne_power_level). |
plate_mobility | Equivalent plate mobility Y_R,low,eq (per band), in m/(N.s); complex values use their real part (Formula 16). |
Returns: The equivalent blocked force level L_Fb,eq, in dB re 1e-6 N.
Raises
| Exception | When |
|---|---|
| ValueError | if Re{plate_mobility} is not positive and finite. |
equivalent_free_velocity_level
Section titled “equivalent_free_velocity_level”equivalent_free_velocity_level( power_level: ArrayLike, plate_mobility: ArrayLike,) -> np.ndarrayEquivalent free velocity level of the source (EN 15657:2018, Formula 18).
`L_vf,eq = L_Ws,high + 10 lg(|Y_R,high,eq|**2 / (Re{Y_R,high,eq} Y0))
- 60 dB
in dB re 1e-9 m/s, from the power injected into the *high-mobility* reception plate and its equivalent (complex) point mobility. The plus sign follows the printed formula and the physics (v_f**2 = P |Y|**2 / Re{Y}); it is what makes Formulae (15) and (18) combine through Formula (19) into|Y_S,eq| = v_f / F_b`.
Parameters
| Name | Description |
|---|---|
power_level | Injected power level L_Ws,high (per band), in dB re 1 pW. |
plate_mobility | Equivalent plate mobility Y_R,high,eq (per band, complex), in m/(N.s). |
Returns: The equivalent free velocity level L_vf,eq, in dB re 1e-9 m/s.
Raises
| Exception | When |
|---|---|
| ValueError | if Re{plate_mobility} is not positive and finite. |
mean_free_velocity_level
Section titled “mean_free_velocity_level”mean_free_velocity_level(levels: ArrayLike) -> floatMean free velocity level over positions (ISO 9611:1996, equation (9)).
L̄vx = 10 lg[(1/N) sum 10^(Lvxi/10)], the energy mean of the
free-velocity levels measured at the N contact/attachment points of
one direction x, each in dB re the ISO 9611 free-velocity reference
v0 = 5e-8 m/s (clause 7). The arithmetic is the energetic average
(identical to EN 15657 Formula 12, spatial_mean_velocity_level);
only the reference differs.
Parameters
| Name | Description |
|---|---|
levels | Free velocity levels Lvxi at the N positions, in dB re 5e-8 m/s. |
Returns: The mean free velocity level, in dB re 5e-8 m/s.
plate_loss_factor
Section titled “plate_loss_factor”plate_loss_factor( frequency: ArrayLike, reverberation_time: ArrayLike,) -> np.ndarrayPlate loss factor eta = 2.2 / (f Ts) (EN 15657, Formula 13).
Estimated from the plate’s structural reverberation time; identical to the ISO 10848 total loss factor.
Parameters
| Name | Description |
|---|---|
frequency | Band centre frequency f, in hertz (per band). |
reverberation_time | Structural reverberation time Ts, in s. |
Returns: The loss factor eta (dimensionless) per band.
reception_plate_power
Section titled “reception_plate_power”reception_plate_power( velocity_level: ArrayLike, frequency: ArrayLike, mass_per_area: float, area: float, *, loss_factor: ArrayLike | None = None, reverberation_time: ArrayLike | None = None,) -> StructureBornePowerResultReception-plate injected structure-borne sound power (EN 15657, clause 7).
Provide the plate loss factor directly, or its structural reverberation
time Ts (from which eta = 2.2/(f Ts) is computed, Formula 13).
The result is the power injected into this plate (Formula 14); see the
module docstring for the conversion chain to the EN 12354-5 source
quantities.
Parameters
| Name | Description |
|---|---|
velocity_level | Spatial mean plate velocity level L_v (per band), in dB re 1e-9 m/s (see spatial_mean_velocity_level). |
frequency | Band centre frequencies f, in hertz. |
mass_per_area | Plate mass per unit area m, in kg/m^2 (> 0). |
area | Plate area S, in m^2 (> 0). |
loss_factor | Plate loss factor eta (per band), or None to derive it from reverberation_time. |
reverberation_time | Structural reverberation time Ts, in s, used when loss_factor is None. |
Returns: The StructureBornePowerResult.
Raises
| Exception | When |
|---|---|
| ValueError | if neither loss_factor nor reverberation_time is given. |
source_mobility_from_levels
Section titled “source_mobility_from_levels”source_mobility_from_levels( free_velocity_level: ArrayLike, blocked_force_level: ArrayLike,) -> np.ndarrayEquivalent source mobility magnitude (EN 15657:2018, Formula 19).
|Y_S,eq|**2 / Y0**2 = 10^((L_vf,eq - L_Fb,eq)/10) * 1e-6, the ratio
of the free-velocity (re 1e-9 m/s) and blocked-force (re 1e-6 N)
references makes the constant (1e-9/1e-6)**2 = 1e-6.
Parameters
| Name | Description |
|---|---|
free_velocity_level | Equivalent free velocity level L_vf,eq (per band), in dB re 1e-9 m/s (Formula 10 or 18). |
blocked_force_level | Equivalent blocked force level L_Fb,eq (per band), in dB re 1e-6 N (Formula 15). |
Returns: The source mobility magnitude |Y_S,eq|, in m/(N.s).
spatial_mean_velocity_level
Section titled “spatial_mean_velocity_level”spatial_mean_velocity_level(levels: ArrayLike) -> floatSpatial-average velocity level over the plate (EN 15657, Formula 12).
L_v = 10 lg( (1/N) sum 10^(L_v,i/10) ) — the energetic average of the
per-position velocity levels.
Parameters
| Name | Description |
|---|---|
levels | Velocity levels L_v,i at the N positions, in dB. |
Returns: The spatial mean velocity level, in dB.
structure_borne_power_level
Section titled “structure_borne_power_level”structure_borne_power_level( velocity_level: ArrayLike, frequency: ArrayLike, mass_per_area: float, area: float, loss_factor: ArrayLike, *, reference_velocity: float = 1e-09,) -> np.ndarrayStructure-borne power injected into the reception plate (EN 15657, Formula 14).
L_Ws = 10 lg(2 pi f eta m S / (f0 m0 S0)) + L_v + 10 lg(v0**2 / P0) —
the power a resonant reception plate dissipates, expressed as a level re
1 pW. With the EN 15657 reference v0 = 1e-9 m/s the last term is -60 dB.
Parameters
| Name | Description |
|---|---|
velocity_level | Spatial mean plate velocity level L_v (scalar or per band), in dB re v0. |
frequency | Band centre frequency f, in hertz. |
mass_per_area | Plate mass per unit area m, in kg/m^2 (> 0). |
area | Plate area S, in m^2 (> 0). |
loss_factor | Plate loss factor eta (scalar or per band, > 0). |
reference_velocity | Velocity reference v0 (Default: 1e-9 m/s). |
Returns: The structure-borne sound power level L_Ws, in dB re 1 pW.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive mass, area, reference, frequency or loss factor. |
StructureBornePowerResult
Section titled “StructureBornePowerResult”StructureBornePowerResult( power_level: np.ndarray, velocity_level: np.ndarray, loss_factor: np.ndarray, mass_per_area: float, area: float, frequencies: np.ndarray | None = None,)Structure-borne sound power injected into a reception plate (EN 15657).
The power level is specific to the measured plate; derive the
plate-independent source quantities with
equivalent_blocked_force_level and
characteristic_reception_plate_power before using EN 12354-5.
Attributes
| Name | Description |
|---|---|
frequencies | Band centre frequencies, in hertz, or None. |
power_level | Reception-plate injected power level L_Ws per band, in dB re 1 pW (Formula 14). |
velocity_level | Spatial mean plate velocity level L_v per band, dB. |
loss_factor | Plate loss factor eta per band. |
mass_per_area | Plate mass per unit area m, in kg/m^2. |
area | Plate area S, in m^2. |
StructureBornePowerResult.plot()
Section titled “StructureBornePowerResult.plot()”StructureBornePowerResult.plot( ax: Axes | None = None, *, language: str = 'en', **kwargs: Any,) -> AxesPlot the characteristic structure-borne power level per band.
Requires matplotlib (pip install phonometry[plot]); returns the
Axes.
StructureBornePowerResult.report()
Section titled “StructureBornePowerResult.report()”StructureBornePowerResult.report( path: str, *, metadata: ReportMetadata | None = None, engine: str = 'reportlab', verbose: bool = False, language: str = 'en',) -> strRender an EN 15657 structure-borne sound power fiche to path.
Writes a one-page reception-plate characterization sheet: the
standard-basis line naming the EN 15657:2018 reception-plate method
(Formula 14), an optional metadata header (client, source equipment,
test environment, instrumentation, climate, date), a per-band table
(nominal octave/one-third-octave frequency, the spatial mean plate
velocity level Lv and the injected structure-borne sound power
level L_Ws), the L_Ws(f) spectrum with a nominal band axis, the
boxed band-summed total L_Ws (dB re 1 pW) with the plate mass per
area m and area S, an optional verdict row against a declared
limit, and a basis strip stating Formula 14 and the conversion to the
plate-independent source quantities (Formulae 15/17) required before
EN 12354-5.
Parameters
| Name | Description |
|---|---|
path | Destination path of the PDF file. |
metadata | Optional ReportMetadata supplying the header (client, specimen the source equipment, test_room the test environment, instrumentation, temperature, relative_humidity, pressure, test_date), the footer identity (laboratory, operator, report_id, notes) and, via requirement, a declared upper limit on the total L_Ws (lower is better). The plate mass and area come from the result itself. |
engine | Rendering back end; only "reportlab" is supported. |
verbose | When True the per-band table adds the plate loss factor eta column. |
language | Fiche language: "en" (default) or "es". |
Returns: The written path as a str.
Raises
| Exception | When |
|---|---|
| ValueError | If engine is not "reportlab" or language is unknown. |
| ImportError | If reportlab (or, for the figure, matplotlib) is not installed (pip install phonometry[report]). |
StructureBornePowerResult.total_level
Section titled “StructureBornePowerResult.total_level”property
Band-summed power level 10 lg(sum 10^(0.1 L_Ws)), in dB.