Ir al contenido

vibration.structural.transfer_stiffness

La referencia de la API se publica en inglés en los dos idiomas: se genera a partir de los docstrings del código, que son su texto original.

Dynamic transfer stiffness of resilient elements (ISO 10846-1/-2/-3).

The vibro-acoustic transfer property of a resilient element (a vibration isolator, mount, bellows or hose) is its dynamic transfer stiffness: the frequency-dependent ratio of the blocking force phasor F2,b on the output (receiver) side to the displacement phasor u1 on the input (source) side, with the output blocked (ISO 10846-1, 3.7), in N/m:

For an isolator between two structures of large driving-point stiffness, the force delivered to the receiver approximates this blocking force (ISO 10846-1, Equation 7), so characterises the isolator’s transmission. Results are reported as a level, in dB, re the reference stiffness N/m (ISO 10846-2 and -3, 3.17):

and, in the low-frequency range where inertial forces in the element are negligible, the loss factor is the tangent of the phase angle of (ISO 10846-1, 3.8): .

Two laboratory methods determine :

  • Direct method (ISO 10846-2): measure the blocked output force F2,b and the input displacement u1 directly: .
  • Indirect method (ISO 10846-3): load the output with a compact blocking mass m2 and measure the vibration transmissibility ; the blocking force is the mass’s inertia force (ISO 10846-3, Equation 1): for , where mf is the mass of the output flange of the test element. The approximation is valid only where (Inequality (2): dB) and while the blocking mass still behaves rigidly, dB (Inequality (3)); see transfer_stiffness_indirect.

The dynamic transfer stiffness is a member of the frequency-response-function family (ISO 10846-1, Annex A / Table A.2): , so it converts to mechanical impedance and effective mass through phonometry.convert_frf ("dynamic_stiffness" <-> "impedance" <-> "apparent_mass"). This module feeds the structure-borne source and building prediction standards (ISO 9611, EN 15657, EN 12354-5).

Auto-generated from the source docstrings by scripts/generate_api_docs.py (make api-docs). Do not edit by hand.

base_transmissibility(
frequency: ArrayLike,
mass: float,
stiffness: float,
damping: float = 0.0,
) -> np.ndarray

Transmissibility of a mass on an ideal resilient element (model).

The output mass m on a massless Kelvin-Voigt element (spring k in parallel with a viscous damper c) driven at the input has the base-excitation transmissibility

This ideal-element model is the counterpart of the indirect-method test arrangement (ISO 10846-3): feeding T into transfer_stiffness_indirect with the same mass recovers the element’s transfer stiffness in the high-frequency limit .

Parameters

NameDescription
frequencyFrequency f, in hertz (scalar or array).
massOutput mass m, in kg.
stiffnessElement stiffness k, in N/m.
dampingViscous damping c, in N.s/m (Default: 0.0).

Returns: The complex transmissibility T.

blocking_force_ratio(
driving_point_stiffness: ArrayLike,
termination_stiffness: ArrayLike,
) -> np.ndarray

Ratio of the delivered force to the blocking force (ISO 10846-1, Eq. 6).

For an isolator driving a receiving structure, the output force for a given source displacement u1 is (Equation (6)), where k2,2 is the isolator’s output driving-point stiffness (output blocked at the input) and kt the dynamic driving-point stiffness of the termination. This function returns

the factor by which the delivered force deviates from the blocking force of Equation (7). For the ratio is within 10 % of unity ( at the limit), which is the stiffness mismatch that justifies characterising an isolator by its blocked transfer stiffness alone.

Parameters

NameDescription
driving_point_stiffnessOutput driving-point stiffness k2,2 of the isolator (complex, scalar or array), in N/m.
termination_stiffnessDriving-point stiffness kt of the receiving structure (complex, scalar or array, non-zero), in N/m.

Returns: The complex ratio F2/F2,b.

Raises

ExceptionWhen
ValueErrorfor a zero termination stiffness.
indirect_transfer_stiffness_result(
frequency: ArrayLike,
transmissibility: ArrayLike,
blocking_mass: float,
*,
flange_mass: float = 0.0,
) -> TransferStiffnessResult

Indirect-method transfer stiffness bundled as a TransferStiffnessResult.

See transfer_stiffness_indirect for the ISO 10846-3 validity conditions (Inequalities (2) and (3)); bands with trigger a PhonometryWarning.

Parameters

NameDescription
frequencyFrequencies f, in hertz (array).
transmissibilityVibration transmissibility (complex).
blocking_massBlocking mass m2, in kg (> 0).
flange_massOutput-flange mass mf, in kg (Default: 0.0).

Returns: The TransferStiffnessResult (indirect method).

Warns

WarningWhen
PhonometryWarningwhere any (Inequality (2) violated).
loss_factor(stiffness: ArrayLike) -> np.ndarray

Loss factor (ISO 10846-1, 3.8).

Valid in the low-frequency range where inertial forces in the element are negligible; it is the tangent of the phase angle of the transfer stiffness.

Parameters

NameDescription
stiffnessDynamic transfer stiffness (complex, scalar or array, with a non-zero real part), in N/m.

Returns: The loss factor eta (dimensionless).

Raises

ExceptionWhen
ValueErrorfor a purely imaginary stiffness (), for which the loss factor is undefined.

Constant (float).

REFERENCE_STIFFNESS = 1.0
transfer_stiffness_direct(
blocking_force: ArrayLike,
input_displacement: ArrayLike,
) -> np.ndarray

Dynamic transfer stiffness by the direct method (ISO 10846-2).

, the blocked output force phasor over the input displacement phasor.

Parameters

NameDescription
blocking_forceBlocked output force phasor F2,b (complex), in N.
input_displacementInput displacement phasor u1 (complex, non-zero), in m.

Returns: The dynamic transfer stiffness , in N/m.

Raises

ExceptionWhen
ValueErrorfor a zero input displacement (dead input channel).
transfer_stiffness_indirect(
frequency: ArrayLike,
transmissibility: ArrayLike,
blocking_mass: float,
*,
flange_mass: float = 0.0,
) -> np.ndarray

Dynamic transfer stiffness by the indirect method (ISO 10846-3, Eq. 1).

: the blocking force is the inertia force of a compact blocking mass m2 (plus the output flange mass mf), derived from the measured vibration transmissibility . Valid for (i.e. well above the mass/spring resonance).

Validity (ISO 10846-3, clause 6). The approximation of Formula (1) is required accurate within 1 dB, i.e. within 12 % of the calculated stiffness magnitude. This holds only where Inequality (2) is met: dB, i.e. (TRANSMISSIBILITY_LIMIT). Bands with |T| above that limit (routine near or below the mass/spring resonance) trigger a PhonometryWarning; treat those bands as outside the valid frequency range of the test arrangement. The upper frequency limit f3 additionally requires the blocking mass to vibrate as a rigid body: results are valid only while its effective mass m2,eff, measured per Formula (4) as (two accelerometers spaced across the contact area), stays within 1 dB of the rigid mass, dB (Inequality (3), 6.2.3).

Parameters

NameDescription
frequencyFrequency f, in hertz (scalar or array).
transmissibilityVibration transmissibility (complex, scalar or array; velocity and acceleration ratios have the same value).
blocking_massBlocking mass m2, in kg (> 0).
flange_massOutput-flange mass mf, in kg (Default: 0.0).

Returns: The dynamic transfer stiffness , in N/m.

Raises

ExceptionWhen
ValueErrorfor a non-positive frequency or blocking mass.

Warns

WarningWhen
PhonometryWarningwhere any (Inequality (2) violated).
transfer_stiffness_level(
stiffness: ArrayLike,
*,
reference: float = 1.0,
) -> np.ndarray

Level of the dynamic transfer stiffness (ISO 10846-2/-3, 3.17).

dB, with k0 the reference stiffness.

Parameters

NameDescription
stiffnessDynamic transfer stiffness (complex or real, scalar or array, non-zero), in N/m.
referenceReference stiffness k0 (Default: 1 N/m), in N/m.

Returns: The level L_k, in dB re k0.

Raises

ExceptionWhen
ValueErrorfor a non-positive reference or a zero stiffness magnitude (a dead channel has no level).
TransferStiffnessResult(
frequencies: np.ndarray,
transfer_stiffness: np.ndarray,
blocking_mass: float | None = None,
)

A dynamic transfer stiffness over frequency (ISO 10846).

Attributes

NameDescription
frequenciesFrequencies, in hertz.
transfer_stiffnessComplex per frequency, in N/m.
blocking_massBlocking mass m2 used (indirect method), in kg, or None for the direct method.

property

Transfer-stiffness level L_k re 1 N/m, in dB (3.17).

property

Loss factor per frequency (3.8).

property

Transfer-stiffness magnitude , in N/m.

TransferStiffnessResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot the transfer-stiffness level L_k(f).

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

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

Render a dynamic-transfer-stiffness fiche to a PDF (ISO 10846).

Writes a one-page transfer-stiffness characterisation report for a resilient element: the standard-basis line naming the determination method (direct, ISO 10846-2:2008, or indirect blocking-mass, ISO 10846-3:2002; definition per ISO 10846-1:2008), an optional metadata header, a two-panel body with a compact table of the FRF’s characteristic points (the method, the blocking mass for the indirect method, the frequency range, and the low-frequency stiffness plateau , its level L_k and the loss factor eta there) beside the transfer-stiffness level spectrum L_k(f), a boxed low-frequency L_k with the stiffness magnitude and method alongside, and a footer identity/disclaimer block.

Dynamic transfer stiffness is a continuous frequency-response function, so the fiche presents it as a spectrum plus a table of characteristic points; a transfer-stiffness determination is a characterisation, so there is no pass/fail verdict.

Parameters

NameDescription
pathDestination path of the PDF file.
metadataOptional ReportMetadata supplying the header identity (specimen is the tested resilient element) and the footer identity; the requirement field is ignored.
engineRendering back end; only "reportlab" is supported.
verboseAccepted for a uniform .report() signature; the transfer-stiffness fiche has a single body layout, so it has no effect.
languageFiche language: "en" (default, English) or "es" (Spanish, with a comma decimal separator).

Returns: The written path as a str.

Raises

ExceptionWhen
ValueErrorIf engine is not "reportlab" or language is unknown.
ImportErrorIf reportlab or matplotlib is not installed. The fiche always embeds the L_k(f) spectrum, so both are required (pip install "phonometry[report,plot]").
TransferStiffnessResult.to(target: str) -> np.ndarray

Convert to an FRF (ISO 10846-1 Annex A / Table A.2).

target is "impedance" () or "apparent_mass" (); see phonometry.convert_frf.

Constant (float).

TRANSMISSIBILITY_LIMIT = 0.1