Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bearing Fault Detection

On 12 kHz vibration data from the Case Western Reserve University Bearing Data Center, DFA α separates a normal bearing from one with an inner-race fault:

ConditionDFA α
Normal0.689
Inner-race fault0.183

Reproduce with struktura demo (the data is embedded). CI re-checks these two numbers (docs/claims.tsv, row bearing-alpha). Other fault types (outer race, ball) are not part of the checked set.

How to use it

#![allow(unused)]
fn main() {
use struktura::{analyze, health_check};

let normal = analyze(&normal_vibration);
let baseline = normal.dfa.alpha; // establish during healthy operation

// Later, during monitoring:
let current = analyze(&current_vibration);
let verdict = health_check(&current, baseline);
}

health_check compares α against the baseline with fixed thresholds (0.03 / 0.08 / 0.15). They are defaults, not significance tests; decide what shift matters for your machine.

What DFA measures

DFA measures how the fluctuations of a signal scale with the window size, which reflects its correlation structure. A fault can change that structure without adding a new frequency peak, so DFA complements spectral (FFT) and amplitude checks. On the NASA IMS run-to-failure bearing, a plain RMS threshold alarmed earlier than struktura, so do not treat DFA as an early-warning method.