vibration.transfer_stiffness
Esta página aún no está disponible en tu idioma.
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):
k2,1 = F2,b / u1 [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 k2,1 characterises the isolator’s transmission. Results are
reported as a level re the reference stiffness k0 = 1 N/m (ISO 10846-2
and -3, 3.17):
L_k = 10 lg(|k2,1|**2 / k0**2) = 20 lg(|k2,1| / k0) [dB]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 k2,1
(ISO 10846-1, 3.8): eta = Im(k2,1) / Re(k2,1).
Two laboratory methods determine k2,1:
- Direct method (ISO 10846-2): measure the blocked output force
F2,band the input displacementu1directly:k2,1 = F2,b / u1. - Indirect method (ISO 10846-3): load the output with a compact blocking
mass
m2and measure the vibration transmissibilityT = u2/u1; the blocking force is the mass’s inertia force (ISO 10846-3, Equation 1):
k2,1 = -(2 pi f)**2 (m2 + mf) T for T << 1where mf is the mass of the output flange of the test element. The
approximation is valid only where |T| <= 0.1 (Inequality (2):
DeltaL1,2 >= 20 dB) and while the blocking mass still behaves rigidly,
10 lg(m2,eff**2/m2**2) <= 1 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): k = j omega Z = -omega**2 m_eff,
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
Section titled “base_transmissibility”base_transmissibility( frequency: ArrayLike, mass: float, stiffness: float, damping: float = 0.0,) -> np.ndarrayTransmissibility 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
T = u2/u1 = (k + j omega c) / (k - omega**2 m + j omega c).
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 k + j omega c
in the high-frequency limit T << 1.
Parameters
| Name | Description |
|---|---|
frequency | Frequency f, in hertz (scalar or array). |
mass | Output mass m, in kg. |
stiffness | Element stiffness k, in N/m. |
damping | Viscous damping c, in N.s/m (Default: 0.0). |
Returns: The complex transmissibility T.
blocking_force_ratio
Section titled “blocking_force_ratio”blocking_force_ratio( driving_point_stiffness: ArrayLike, termination_stiffness: ArrayLike,) -> np.ndarrayRatio 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 F2 = k2,1 u1 / (1 + k2,2/kt)
(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
F2 / F2,b = 1 / (1 + k2,2/kt)
the factor by which the delivered force deviates from the blocking force
F2,b = k2,1 u1 of Equation (7). For |k2,2| < 0.1 |kt| the ratio is
within 10 % of unity (1/1.1 = 0.909 at the limit), which is the
stiffness mismatch that justifies characterising an isolator by its
blocked transfer stiffness alone.
Parameters
| Name | Description |
|---|---|
driving_point_stiffness | Output driving-point stiffness k2,2 of the isolator (complex, scalar or array), in N/m. |
termination_stiffness | Driving-point stiffness kt of the receiving structure (complex, scalar or array, non-zero), in N/m. |
Returns: The complex ratio F2/F2,b.
Raises
| Exception | When |
|---|---|
| ValueError | for a zero termination stiffness. |
indirect_transfer_stiffness_result
Section titled “indirect_transfer_stiffness_result”indirect_transfer_stiffness_result( frequency: ArrayLike, transmissibility: ArrayLike, blocking_mass: float, *, flange_mass: float = 0.0,) -> TransferStiffnessResultIndirect-method transfer stiffness bundled as a TransferStiffnessResult.
See transfer_stiffness_indirect for the ISO 10846-3 validity
conditions (Inequalities (2) and (3)); bands with |T| > 0.1 trigger a
PhonometryWarning.
Parameters
| Name | Description |
|---|---|
frequency | Frequencies f, in hertz (array). |
transmissibility | Vibration transmissibility T = u2/u1 (complex). |
blocking_mass | Blocking mass m2, in kg (> 0). |
flange_mass | Output-flange mass mf, in kg (Default: 0.0). |
Returns: The TransferStiffnessResult (indirect method).
Warns
| Warning | When |
|---|---|
| PhonometryWarning | where any |T| > 0.1 (Inequality (2) violated). |
loss_factor
Section titled “loss_factor”loss_factor(stiffness: ArrayLike) -> np.ndarrayLoss factor eta = Im(k2,1) / Re(k2,1) (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
| Name | Description |
|---|---|
stiffness | Dynamic transfer stiffness k2,1 (complex, scalar or array, with a non-zero real part), in N/m. |
Returns: The loss factor eta (dimensionless).
Raises
| Exception | When |
|---|---|
| ValueError | for a purely imaginary stiffness (Re(k2,1) = 0), for which the loss factor is undefined. |
REFERENCE_STIFFNESS
Section titled “REFERENCE_STIFFNESS”Constant (float).
REFERENCE_STIFFNESS = 1.0transfer_stiffness_direct
Section titled “transfer_stiffness_direct”transfer_stiffness_direct( blocking_force: ArrayLike, input_displacement: ArrayLike,) -> np.ndarrayDynamic transfer stiffness by the direct method (ISO 10846-2).
k2,1 = F2,b / u1, the blocked output force phasor over the input
displacement phasor.
Parameters
| Name | Description |
|---|---|
blocking_force | Blocked output force phasor F2,b (complex), in N. |
input_displacement | Input displacement phasor u1 (complex, non-zero), in m. |
Returns: The dynamic transfer stiffness k2,1, in N/m.
Raises
| Exception | When |
|---|---|
| ValueError | for a zero input displacement (dead input channel). |
transfer_stiffness_indirect
Section titled “transfer_stiffness_indirect”transfer_stiffness_indirect( frequency: ArrayLike, transmissibility: ArrayLike, blocking_mass: float, *, flange_mass: float = 0.0,) -> np.ndarrayDynamic transfer stiffness by the indirect method (ISO 10846-3, Eq. 1).
k2,1 = -(2 pi f)**2 (m2 + mf) T: 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 T = u2/u1.
Valid for T << 1 (i.e. well above the mass/spring resonance).
Validity (ISO 10846-3, clause 6). The T << 1 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: DeltaL1,2 = La1 - La2 >= 20 dB, i.e. |T| <= 0.1
(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 m2,eff = 2 F2 / (a'1 + a''1) (two accelerometers
spaced D = sqrt(S) across the contact area), stays within 1 dB of the
rigid mass, 10 lg(m2,eff**2 / m2**2) <= 1 dB (Inequality (3), 6.2.3).
Parameters
| Name | Description |
|---|---|
frequency | Frequency f, in hertz (scalar or array). |
transmissibility | Vibration transmissibility T = u2/u1 (complex, scalar or array; velocity and acceleration ratios have the same value). |
blocking_mass | Blocking mass m2, in kg (> 0). |
flange_mass | Output-flange mass mf, in kg (Default: 0.0). |
Returns: The dynamic transfer stiffness k2,1, in N/m.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive frequency or blocking mass. |
Warns
| Warning | When |
|---|---|
| PhonometryWarning | where any |T| > 0.1 (Inequality (2) violated). |
transfer_stiffness_level
Section titled “transfer_stiffness_level”transfer_stiffness_level( stiffness: ArrayLike, *, reference: float = 1.0,) -> np.ndarrayLevel of the dynamic transfer stiffness (ISO 10846-2/-3, 3.17).
L_k = 20 lg(|k2,1| / k0) dB, with k0 the reference stiffness.
Parameters
| Name | Description |
|---|---|
stiffness | Dynamic transfer stiffness k2,1 (complex or real, scalar or array, non-zero), in N/m. |
reference | Reference stiffness k0 (Default: 1 N/m), in N/m. |
Returns: The level L_k, in dB re k0.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive reference or a zero stiffness magnitude (a dead channel has no level). |
TransferStiffnessResult
Section titled “TransferStiffnessResult”TransferStiffnessResult( frequencies: np.ndarray, transfer_stiffness: np.ndarray, blocking_mass: float | None = None,)A dynamic transfer stiffness over frequency (ISO 10846).
Attributes
| Name | Description |
|---|---|
frequencies | Frequencies, in hertz. |
transfer_stiffness | Complex k2,1 per frequency, in N/m. |
blocking_mass | Blocking mass m2 used (indirect method), in kg, or None for the direct method. |
TransferStiffnessResult.level
Section titled “TransferStiffnessResult.level”property
Transfer-stiffness level L_k re 1 N/m, in dB (3.17).
TransferStiffnessResult.loss_factor
Section titled “TransferStiffnessResult.loss_factor”property
Loss factor eta = Im/Re per frequency (3.8).
TransferStiffnessResult.magnitude
Section titled “TransferStiffnessResult.magnitude”property
Transfer-stiffness magnitude |k2,1|, in N/m.
TransferStiffnessResult.plot()
Section titled “TransferStiffnessResult.plot()”TransferStiffnessResult.plot( ax: Axes | None = None, *, language: str = 'en', **kwargs: Any,) -> AxesPlot the transfer-stiffness level L_k(f).
Requires matplotlib (pip install phonometry[plot]); returns the
Axes.
TransferStiffnessResult.report()
Section titled “TransferStiffnessResult.report()”TransferStiffnessResult.report( path: str, *, metadata: ReportMetadata | None = None, engine: str = 'reportlab', verbose: bool = False, language: str = 'en',) -> strRender 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
|k2,1|, 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
| Name | Description |
|---|---|
path | Destination path of the PDF file. |
metadata | Optional ReportMetadata supplying the header identity (specimen is the tested resilient element) and the footer identity; the requirement field is ignored. |
engine | Rendering back end; only "reportlab" is supported. |
verbose | Accepted for a uniform .report() signature; the transfer-stiffness fiche has a single body layout, so it has no effect. |
language | Fiche language: "en" (default, English) or "es" (Spanish, with a comma decimal separator). |
Returns: The written path as a str.
Raises
| Exception | When |
|---|---|
| ValueError | If engine is not "reportlab" or language is unknown. |
| ImportError | If 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()
Section titled “TransferStiffnessResult.to()”TransferStiffnessResult.to(target: str) -> np.ndarrayConvert k2,1 to a related FRF (ISO 10846-1 Annex A / Table A.2).
target is "impedance" (Z = k/(j omega)) or
"apparent_mass" (m_eff = -k/omega**2); see
phonometry.convert_frf.
TRANSMISSIBILITY_LIMIT
Section titled “TRANSMISSIBILITY_LIMIT”Constant (float).
TRANSMISSIBILITY_LIMIT = 0.1