bearing_defect_frequencies — ACOUSTICS bearing op

• Data kinds: कोई नहीं → table (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.bearing_defect_frequencies(rpm=1800.0, n_elements=9, element_diameter=8.0, pitch_diameter=40.0, contact_angle_deg=0.0) (implementation को सीधे call करना हो तो 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), registry से लेना हो तो opsacoustics.get("bearing_defect_frequencies"))

उपयोग

rolling-element bearing की चार characteristic rates, geometry से।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

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.

उपयोग की विस्तृत guide

• acoustic_condition_monitoring family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• acoustic_condition_monitoring — py -3.11 examples/acoustic_condition_monitoring.py

• poc_bearing_diagnosis — py -3.11 examples/poc_bearing_diagnosis.py

• poc_machine_condition_fusion — py -3.11 examples/poc_machine_condition_fusion.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

istft

इसी category के (bearing)

envelope_spectrum · spectral_kurtosis · cepstrum


*Provenance: acoustics.py — ACOUSTICS operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.