Skip to content

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_Wsn plus the mobility corrections of EN 12354-5 Annex I (see phonometry.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(
blocked_force_level: ArrayLike,
*,
characteristic_mobility: float = 5e-06,
) -> np.ndarray

Characteristic 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

NameDescription
blocked_force_levelEquivalent blocked force level L_Fb,eq (per band), in dB re 1e-6 N (see equivalent_blocked_force_level).
characteristic_mobilityY_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

ExceptionWhen
ValueErrorfor a non-positive characteristic mobility.
equivalent_blocked_force_level(
power_level: ArrayLike,
plate_mobility: ArrayLike,
) -> np.ndarray

Equivalent 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

NameDescription
power_levelInjected power level L_Ws,low (per band), in dB re 1 pW (see structure_borne_power_level).
plate_mobilityEquivalent 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

ExceptionWhen
ValueErrorif Re{plate_mobility} is not positive and finite.
equivalent_free_velocity_level(
power_level: ArrayLike,
plate_mobility: ArrayLike,
) -> np.ndarray

Equivalent 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

NameDescription
power_levelInjected power level L_Ws,high (per band), in dB re 1 pW.
plate_mobilityEquivalent 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

ExceptionWhen
ValueErrorif Re{plate_mobility} is not positive and finite.
mean_free_velocity_level(levels: ArrayLike) -> float

Mean 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

NameDescription
levelsFree 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(
frequency: ArrayLike,
reverberation_time: ArrayLike,
) -> np.ndarray

Plate 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

NameDescription
frequencyBand centre frequency f, in hertz (per band).
reverberation_timeStructural reverberation time Ts, in s.

Returns: The loss factor eta (dimensionless) per band.

reception_plate_power(
velocity_level: ArrayLike,
frequency: ArrayLike,
mass_per_area: float,
area: float,
*,
loss_factor: ArrayLike | None = None,
reverberation_time: ArrayLike | None = None,
) -> StructureBornePowerResult

Reception-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

NameDescription
velocity_levelSpatial mean plate velocity level L_v (per band), in dB re 1e-9 m/s (see spatial_mean_velocity_level).
frequencyBand centre frequencies f, in hertz.
mass_per_areaPlate mass per unit area m, in kg/m^2 (> 0).
areaPlate area S, in m^2 (> 0).
loss_factorPlate loss factor eta (per band), or None to derive it from reverberation_time.
reverberation_timeStructural reverberation time Ts, in s, used when loss_factor is None.

Returns: The StructureBornePowerResult.

Raises

ExceptionWhen
ValueErrorif neither loss_factor nor reverberation_time is given.
source_mobility_from_levels(
free_velocity_level: ArrayLike,
blocked_force_level: ArrayLike,
) -> np.ndarray

Equivalent 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

NameDescription
free_velocity_levelEquivalent free velocity level L_vf,eq (per band), in dB re 1e-9 m/s (Formula 10 or 18).
blocked_force_levelEquivalent 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(levels: ArrayLike) -> float

Spatial-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

NameDescription
levelsVelocity levels L_v,i at the N positions, in dB.

Returns: The spatial mean velocity level, in dB.

structure_borne_power_level(
velocity_level: ArrayLike,
frequency: ArrayLike,
mass_per_area: float,
area: float,
loss_factor: ArrayLike,
*,
reference_velocity: float = 1e-09,
) -> np.ndarray

Structure-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

NameDescription
velocity_levelSpatial mean plate velocity level L_v (scalar or per band), in dB re v0.
frequencyBand centre frequency f, in hertz.
mass_per_areaPlate mass per unit area m, in kg/m^2 (> 0).
areaPlate area S, in m^2 (> 0).
loss_factorPlate loss factor eta (scalar or per band, > 0).
reference_velocityVelocity reference v0 (Default: 1e-9 m/s).

Returns: The structure-borne sound power level L_Ws, in dB re 1 pW.

Raises

ExceptionWhen
ValueErrorfor a non-positive mass, area, reference, frequency or loss factor.
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

NameDescription
frequenciesBand centre frequencies, in hertz, or None.
power_levelReception-plate injected power level L_Ws per band, in dB re 1 pW (Formula 14).
velocity_levelSpatial mean plate velocity level L_v per band, dB.
loss_factorPlate loss factor eta per band.
mass_per_areaPlate mass per unit area m, in kg/m^2.
areaPlate area S, in m^2.
StructureBornePowerResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot the characteristic structure-borne power level per band.

Requires matplotlib (pip install phonometry[plot]); returns the Axes.

StructureBornePowerResult.report(
path: str,
*,
metadata: ReportMetadata | None = None,
engine: str = 'reportlab',
verbose: bool = False,
language: str = 'en',
) -> str

Render 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

NameDescription
pathDestination path of the PDF file.
metadataOptional 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.
engineRendering back end; only "reportlab" is supported.
verboseWhen True the per-band table adds the plate loss factor eta column.
languageFiche language: "en" (default) or "es".

Returns: The written path as a str.

Raises

ExceptionWhen
ValueErrorIf engine is not "reportlab" or language is unknown.
ImportErrorIf reportlab (or, for the figure, matplotlib) is not installed (pip install phonometry[report]).

property

Band-summed power level 10 lg(sum 10^(0.1 L_Ws)), in dB.

Created and maintained by· GitHub· PyPI· All projects