Build a Motor Defect Detector

Real-time monitoring of manufacturing equipment to prevent faults and anomalies is vital for any industrial process and a precursor to predictive maintenance. Use machine learning models to help detect and predict these faults in a motor ball bearing data set.

Target Operating System Ubuntu* 16.04 LTS
Time to Complete 30 minutes

GitHub* (Python*) GitHub (C++)

What You Will Learn

Several mathematical techniques in machine learning, starting with basic fast Fourier transform (FFT) to the more complex Gaussian mixture model, do not require training a neural network for anomaly detection. These techniques can be reused with minor modifications on different data streams and don't require a lot of known previously classified data (unlike neural networks). In fact, some of these methods can classify data in order to train deep neural networks.

Gain insight into the following solutions:

  • Logistic regression
  • K-Means clustering
  • Industrial market IoT

Use the skills learned in this reference implementation to develop similar IoT solutions.

Learn to build and run an application with these capabilities:

Detect irregularities in machine vibration.
Process locally using the scikit-learn library.
Send data to the cloud for aggregation and viewing.

How It Works

This application takes the input from a dataset and performs data preprocessing using FFT.

  1. The OPC* Unified Architecture (UA) server reads preprocessed data and sends it to an OPC UA client, which stores the data in InfluxDB*.
  2. Data is fetched from the database and is used to build three machine learning models: logistic regression, K-means clustering, and Gaussian mixture model.
  3. Failure predictions from each of these models are stored in the local InfluxDB and are visualized on Grafana*.