materials.dynamic_stiffness
Esta página aún no está disponible en tu idioma.
Dynamic stiffness of resilient materials under floating floors (EN 29052-1:1992).
A floating floor is a heavy floating slab resting on a resilient layer; the
combination is a mass-spring system whose natural frequency governs the impact
and airborne improvement of the floor. EN 29052-1 (identical to ISO 9052-1:1989)
measures the dynamic stiffness per unit area s' of the resilient layer
from the resonance of a standard load plate on a 200 mm x 200 mm specimen.
The dynamic stiffness per unit area is the ratio of a dynamic force per area to the resulting change in thickness (Formula 1):
s' = (F / S) / dd [N/m3]The resiliently supported floor is a mass-spring resonator; its natural frequency (Formula 2) and, in the laboratory arrangement, the measured resonant frequency (Formula 3) are:
f0 = (1 / 2pi) * sqrt(s' / m' ) (installed floor)fr = (1 / 2pi) * sqrt(s't / m't) (test arrangement)so the apparent dynamic stiffness follows from the resonance (Formula 4):
s't = 4 * pi**2 * m't * fr**2With an air-permeable resilient material the enclosed gas adds a parallel stiffness (Formula 7), from the isothermal compression of the pore air:
s'a = p0 / (d * epsilon)(s'a = 111 / d MN/m3 for p0 = 0,1 MPa, epsilon = 0,9 and d in mm,
the standard’s worked NOTE). The dynamic stiffness of the installed material is
then obtained by airflow resistivity r (clause 8.2):
r >= 100 kPa.s/m2 s' = s't (Formula 5)10 <= r < 100 kPa.s/m2 s' = s't + s'a (Formula 6)r < 10 kPa.s/m2 s'a from Formula 7; the method only applies when s't >> s'a, otherwise s' cannot be resolved.This module is the resilient-layer characterisation feeding the floating-floor
term of the EN 12354-2 impact model
(phonometry.building.building_prediction). It does not feed
ISO 16251-1 (phonometry.building.floor_covering_improvement), whose
scope is limited to soft, locally-reacting floor coverings; floating floors
are explicitly excluded there.
Auto-generated from the source docstrings by
scripts/generate_api_docs.py(make api-docs). Do not edit by hand.
apparent_dynamic_stiffness
Section titled “apparent_dynamic_stiffness”apparent_dynamic_stiffness( resonant_frequency: ArrayLike, total_mass_per_area: float,) -> np.ndarray | floatApparent dynamic stiffness per unit area s't (Formula 4).
Inverts the test resonance fr = (1/2pi) sqrt(s't/m't) to
s't = 4 pi**2 m't fr**2.
Parameters
| Name | Description |
|---|---|
resonant_frequency | Extrapolated resonant frequency fr, in hertz (scalar or array). |
total_mass_per_area | Total mass per unit area used during the test m't, in kg/m2 (the load plate plus fittings over the 0,04 m2 specimen; the standard’s plate gives m't = 8 kg / 0,04 m2 = 200 kg/m2). |
Returns: The apparent dynamic stiffness per unit area s't, in N/m3 (numerically MN/m3 when divided by 1e6).
DynamicStiffnessResult
Section titled “DynamicStiffnessResult”DynamicStiffnessResult( apparent_stiffness: float, gas_stiffness: float, dynamic_stiffness: float, resonant_frequency: float, floor_mass_per_area: float, natural_frequency: float,)Dynamic stiffness of a resilient layer and the floating-floor resonance.
Attributes
| Name | Description |
|---|---|
apparent_stiffness | Apparent dynamic stiffness s't, in N/m3. |
gas_stiffness | Enclosed-gas dynamic stiffness s'a, in N/m3. |
dynamic_stiffness | Installed dynamic stiffness s', in N/m3. |
resonant_frequency | Measured test resonant frequency fr, in hertz. |
floor_mass_per_area | Supported-floor mass per unit area m', kg/m2. |
natural_frequency | Installed-floor natural frequency f0, in hertz. |
DynamicStiffnessResult.plot()
Section titled “DynamicStiffnessResult.plot()”DynamicStiffnessResult.plot( ax: Axes | None = None, *, language: str = 'en', **kwargs: Any,) -> AxesPlot f0(s') with this design point marked.
Requires matplotlib (pip install phonometry[plot]); returns the
Axes.
DynamicStiffnessResult.report()
Section titled “DynamicStiffnessResult.report()”DynamicStiffnessResult.report( path: str, *, metadata: ReportMetadata | None = None, engine: str = 'reportlab', verbose: bool = False, language: str = 'en',) -> strRender an EN 29052-1 dynamic-stiffness test-report fiche to a PDF.
Writes a one-page accredited dynamic-stiffness report (EN 29052-1:1992,
identical to ISO 9052-1:1989): the standard-basis line, an optional
metadata header block (client, specimen, the total mass per unit area
m't used during the test, the loaded specimen thickness d, test
facility, date, climate …), a two-panel body with a compact metrics
table (the resonant frequency fr, the apparent dynamic stiffness
s't of Formula 4, the enclosed-gas term s'a of Formula 7 when it
applies, the installed dynamic stiffness s' of Clause 8.2 and the
supported-floor natural frequency f0 of Formula 2) beside the
f0(s') design curve, a boxed apparent dynamic stiffness s't with
the installed s' and the resonance fr alongside, and a footer
with the fixed disclaimer. EN 29052-1 is a characterisation, so there is
no pass/fail verdict.
Clause 9 requires every dynamic stiffness per unit area to be stated in meganewtons per cubic metre to the nearest meganewton per cubic metre, so the stiffness values are rounded to the nearest MN/m3; the frequencies are shown to 0,1 Hz.
Parameters
| Name | Description |
|---|---|
path | Destination path of the PDF file. |
metadata | Optional ReportMetadata; None produces a body-and-disclaimer fiche. The applicable descriptive fields are client, manufacturer, specimen, mass_per_area (the total mass per unit area m't), thickness (the loaded specimen thickness d, in metres, shown in millimetres), test_room, test_date, temperature, relative_humidity, measurement_standard, laboratory, operator, report_id and notes. The requirement field is ignored (EN 29052-1 has no verdict). |
engine | Rendering back end; only "reportlab" is supported. |
verbose | Accepted for a uniform .report() signature; the dynamic-stiffness fiche has a single body layout, so it has no effect. |
language | Fiche language: "en" (default, English, decimal point) or "es" (Spanish, decimal comma). |
Returns: The written path as a str.
Raises
| Exception | When |
|---|---|
| ValueError | If engine is not "reportlab". |
| ImportError | If reportlab or matplotlib is not installed. The fiche always embeds the f0(s') design curve, so both are required (pip install "phonometry[report,plot]"). |
DynamicStiffnessWarning
Section titled “DynamicStiffnessWarning”Advisory when the enclosed-gas term makes s' unresolvable (clause 8.2).
enclosed_gas_stiffness
Section titled “enclosed_gas_stiffness”enclosed_gas_stiffness( thickness: ArrayLike, porosity: float, *, atmospheric_pressure: float = 100000.0,) -> np.ndarray | floatEnclosed-gas dynamic stiffness per unit area s'a (Formula 7).
The isothermal compression of the pore air adds a stiffness in parallel with
the material’s structure: s'a = p0 / (d * epsilon).
Parameters
| Name | Description |
|---|---|
thickness | Thickness d of the specimen under the static load, in metres (scalar or array). |
porosity | Porosity epsilon of the specimen (0-1). |
atmospheric_pressure | Atmospheric pressure p0, in pascals (default STANDARD_ATMOSPHERIC_PRESSURE, the standard’s 0,1 MPa). |
Returns: The enclosed-gas dynamic stiffness per unit area s'a, in N/m3.
floating_floor_resonance
Section titled “floating_floor_resonance”floating_floor_resonance( resonant_frequency: float, total_mass_per_area: float, floor_mass_per_area: float, *, airflow_resistivity: float = inf, thickness: float | None = None, porosity: float | None = None, atmospheric_pressure: float = 100000.0,) -> DynamicStiffnessResultFull EN 29052-1 chain: measured resonance -> installed s' and f0.
Chains the apparent dynamic stiffness (Formula 4), the enclosed-gas term
(Formula 7, when thickness and porosity are given), the airflow
resistivity combination (clause 8.2) and the installed-floor natural
frequency (Formula 2).
Parameters
| Name | Description |
|---|---|
resonant_frequency | Measured resonant frequency fr, in hertz. |
total_mass_per_area | Test total mass per unit area m't, kg/m2. |
floor_mass_per_area | Supported-floor mass per unit area m', kg/m2. |
airflow_resistivity | Lateral airflow resistivity r, in kPa.s/m2 (default inf -> the high-resistivity case s' = s't). |
thickness | Specimen thickness d under load, in metres (required for the enclosed-gas term when r < 100 kPa.s/m2). |
porosity | Specimen porosity epsilon (required with thickness). |
atmospheric_pressure | Atmospheric pressure p0, in pascals. |
Returns: The DynamicStiffnessResult.
installed_dynamic_stiffness
Section titled “installed_dynamic_stiffness”installed_dynamic_stiffness( apparent_stiffness: float, airflow_resistivity: float, *, gas_stiffness: float = 0.0,) -> floatDynamic stiffness per unit area s' of the installed material (clause 8.2).
Combines the apparent stiffness with the enclosed-gas term according to the
lateral airflow resistivity r:
r >= 100 kPa.s/m2->s' = s't(Formula 5);10 <= r < 100 kPa.s/m2->s' = s't + s'a(Formula 6);r < 10 kPa.s/m2-> the standard only requires the qualitative criterions't >> s'a(clause 8.2). This implementation applies its own engineering threshold:s'abelow 10 % ofs'tis treated as negligible ands' = s't(aDynamicStiffnessWarningis emitted; clause 8.2 requires the error caused by disregardings'ato be stated in the test report); above it the result isnan, as the method cannot resolves'.
Parameters
| Name | Description |
|---|---|
apparent_stiffness | Apparent dynamic stiffness s't, in N/m3. |
airflow_resistivity | Lateral airflow resistivity r, in kPa.s/m2 (ISO 9053). |
gas_stiffness | Enclosed-gas dynamic stiffness s'a, in N/m3 (see enclosed_gas_stiffness); needed for r < 100 kPa.s/m2. |
Returns: The installed dynamic stiffness per unit area s', in N/m3 (nan when the method cannot resolve it).
natural_frequency
Section titled “natural_frequency”natural_frequency( dynamic_stiffness: ArrayLike, mass_per_area: float,) -> np.ndarray | floatNatural frequency f0 of the resiliently supported floor (Formula 2).
f0 = (1 / 2pi) sqrt(s' / m').
Parameters
| Name | Description |
|---|---|
dynamic_stiffness | Dynamic stiffness per unit area s', in N/m3 (scalar or array). |
mass_per_area | Mass per unit area of the supported floor m', in kg/m2. |
Returns: The natural frequency f0, in hertz.