7.7.7. Motor Bearing Fault
Motor bearing fault classification detects and identifies different bearing failure modes from vibration sensor data.
7.7.7.1. Overview
Task: Multi-class classification (6 fault types)
Application: Predictive maintenance for motors
Dataset: 3-axis vibration data from bearing experiments
Model: MotorFault_model_1_t or CLS_4k_NPU
7.7.7.2. Fault Classes
The dataset includes 6 bearing conditions:
Normal - Healthy bearing operation
Contaminated - Foreign particles in lubricant
Erosion - Surface wear
Flaking - Material flaking from bearing surface
No Lubrication - Dry bearing operation
Localized Fault - Point defect on bearing
7.7.7.3. Running the Example
cd tinyml-modelzoo
./run_tinyml_modelzoo.sh examples/motor_bearing_fault/config.yaml
cd tinyml-modelzoo
run_tinyml_modelzoo.bat examples\motor_bearing_fault\config.yaml
7.7.7.4. Configuration
common:
task_type: 'generic_timeseries_classification'
target_device: 'F28P55'
dataset:
dataset_name: 'motor_fault_classification_dsk'
input_data_path: 'https://software-dl.ti.com/C2000/esd/mcu_ai/01_03_00/datasets/motor_fault_classification_dsk.zip'
data_processing_feature_extraction:
feature_extraction_name: 'Input256_FFTBIN_16Feature_8Frame_3InputChannel_removeDC_2D1'
variables: 3
training:
model_name: 'MotorFault_model_1_t'
training_epochs: 20
7.7.7.5. Dataset Description
Sensor: 3-axis accelerometer mounted on motor bearing
Variables: X, Y, Z acceleration (
variables: 3)Sampling: Multiple sampling frequencies available
The vibration patterns differ between fault types due to:
Different impact frequencies
Varying severity levels
Distinct frequency signatures
7.7.7.6. Feature Extraction Presets
Several presets are available for this dataset:
Preset |
Features |
Accuracy |
|---|---|---|
|
384 |
~99.99% |
|
384 |
~100% |
|
384 |
~98% |
|
384 |
~92% |
FFT-based binning performs best due to the frequency-domain nature of bearing faults.
7.7.7.7. Available Models
Model |
Parameters |
Description |
|---|---|---|
|
~1,000 |
Baseline |
|
~2,000 |
Improved |
|
~4,000 |
Best accuracy |
|
~4,000 |
Generic NPU model |
7.7.7.8. Expected Results
With default settings:
Float32 Model:
Accuracy: 99-100%
F1-Score: ~1.0
Quantized Model:
Accuracy: 98-100%
7.7.7.9. Multi-Class Evaluation
For 6-class classification, examine:
Confusion Matrix
Shows which fault types are confused with each other. Common confusion pairs may indicate similar vibration signatures.
Per-Class ROC Curves
One-vs-Rest ROC shows how well each class separates from others.
One-vs-Rest Multi-class ROC curves for motor bearing fault detection showing excellent separation
Class Score Distributions
Histograms show classification confidence for each class.
Distribution of class score differences showing model confidence across different fault types
7.7.7.10. Dataset Quality Analysis
Use the Goodness of Fit (GoF) test to visualize class separability:
data_processing_feature_extraction:
gof_test: True
frame_size: 256
training:
enable: True
This generates 8 plots showing cluster separation using different transformation combinations.
7.7.7.11. Practical Considerations
Sensor Placement
Vibration patterns depend heavily on sensor location. Train with data from the same mounting position as deployment.
Operating Conditions
Include data from different:
Motor speeds
Load conditions
Temperature ranges
Fault Severity
Early-stage faults have subtler signatures. Include samples from different severity levels if available.
7.7.7.12. Anomaly Detection Alternative
If you only have normal data, use anomaly detection instead:
common:
task_type: 'generic_timeseries_anomalydetection'
training:
model_name: 'AD_4k_NPU'
This detects any deviation from normal without needing fault labels.
Reconstruction Error Analysis:
Reconstruction error distribution showing separation between normal and fault conditions
7.7.7.13. Next Steps
Try anomaly detection: Anomaly Detection
Understand feature extraction: Feature Extraction
Deploy to device: CCS Integration Guide