bearing op• Datenarten: keine → table (ein Operator, der allein durch seine Argumente bestimmt ist — er nimmt kein Bild und keine Daten entgegen)
• Aufruf: import acoustics; acoustics.bearing_defect_frequencies(rpm=1800.0, n_elements=9, element_diameter=8.0, pitch_diameter=40.0, contact_angle_deg=0.0) (oder opsacoustics.get("bearing_defect_frequencies"))
Die vier charakteristischen Frequenzen eines Wälzlagers aus der Geometrie.
> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.
Derived, not tabulated. Under pure rolling the cage advances at half the sum
of the race surface speeds, which with `r = d/D cos(alpha)` gives, per
shaft revolution rate `f_r = rpm/60`:
• `FTF (cage / fundamental train) = f_r (1 - r) / 2`
• `BPFO (ball pass, outer race) = N f_r (1 - r) / 2 = N * FTF`
• `BPFI (ball pass, inner race) = N f_r (1 + r) / 2`
• `BSF (ball spin) = f_r (1 - r^2) D / (2 d)`
Two exact identities fall out and are asserted in the tests, because they
catch a transposed `d and D immediately: BPFO + BPFI = N f_r`
exactly, and `BPFO = N * FTF` exactly. Measured for the defaults
(1800 rpm, 9 elements, d = 8, D = 40, alpha = 0): `ratio = 0.200000`,
`f_r = 30.000000, FTF = 12.000000, BPFO = 108.000000`,
`BPFI = 162.000000, BSF = 72.000000` Hz, with
`BPFO + BPFI - 9 f_r = 0.000e+00 and BPFO - 9 FTF = 0.000e+00` —
exactly zero in float64, not merely small.
Returns a dict with `shaft_hz, ftf_hz, bpfo_hz, bpfi_hz`,
`bsf_hz, ratio (d/D cos alpha`), and the inputs echoed back.
Also `bsf_hz_2x`: a rolling element normally strikes *both* races per
spin, so a spall on the element itself is usually seen at `2 * BSF`, and
reporting only `BSF` is the classic way to miss it.
These are the no-slip kinematic rates. Real bearings slip by roughly a
percent, so an observed line within about 1 % of one of these is a match and
an exact match is a coincidence; that tolerance is the caller's to apply.
Raises `ValueError: non-real / string / bool scalars, rpm <= 0`,
`n_elements` not an int >= 2, non-positive diameters, an
`element_diameter >= pitch_diameter` (geometrically impossible — the
rolling elements would not fit inside the pitch circle, and the usual cause
is the two arguments being swapped, which otherwise returns a negative FTF
and a plausible-looking BPFI), and `|contact_angle_deg| >= 90`.
• Leitfaden zur Familie acoustic_condition_monitoring
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• acoustic_condition_monitoring — py -3.11 examples/acoustic_condition_monitoring.py
table als Eingabe)bearing)envelope_spectrum · spectral_kurtosis · cepstrum
*Provenance: acoustics.py — ACOUSTICS Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.