Skip to content

puzzleVerma/BTP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to my BTech Project!

Hi! I'm Prajjaval, senior undergrad at IIT Jodhpur! I have done this project "Detection of defects in ball bearings using Machine Learning" under the supervision of our professor, Dr B Ravindra.

Sections

  • Abstarct
  • Introduction
    • Objective
    • Ball Bearing
    • Ball Bearing Dataset
  • Work Done
    • Methodology
    • Implementation
  • Results
    • ANN Model
    • 1D CNN Model
    • 1D CNN Multi-kernel Model
    • 2D CNN Model
  • Conclusion
  • References

Abstract

Bearings are the most extensively utilised components in rotating machinery, and bearing failures may cause serious malfunctions and even fatalities. According to statistics, bearing failure accounts for over 40% of total induction motor failures and is the major cause of gearbox defects in wind turbines. As a result, diagnosing these bearings becomes critical.

Bearing defect diagnostics has been a challenge in the monitoring of rotating equipment activities, and it has lately received more attention. In order to appropriately categorise defects, fault diagnostic systems often extract information from the waveforms or spectrums of vibration signals. In this assignment, we will apply several deep-learning models to classify bearing defects.

With the rise of automation, Artificial Intelligence (AI) and Deep Learning (DL) are quickly becoming must-have skills for the workforce of the future. Deep Learning educates a computer in a collection of known quantities, and when applied to a set of unknown quantities, the machine (computer) will be able to arrive at a conclusion without any intervention from humans; this is the foundation of Artificial Intelligence.

In this research, we created four distinct models for detecting and classifying ball bearing faults. We created two datasets containing muted and noisy data points to ensure that the models are robust and can be used in industry. On these datasets, we also test the accuracy of our models.

The models work effectively in a variety of settings and deliver accurate results.

Introduction

Objective

Using various deep learning approaches, we hope to identify faults in ball bearings and categorise the type of defect. To see if the model is industry-ready, we must also see how it performs with noisy and inconsistent data.

Ball Bearing

A ball bearing consists of an inner ring (IR), an outer ring (OR), a complement of balls, and a separator. The outer diameter of the inner ring (IROD) and the inner diameter of the outer ring (ORID) have a groove in which the balls roll. The groove is commonly called the pathway.

Ball Bearing Dataset

The dataset which we are going to use is taken from the esteemed CASE Western Reserve University (Est. 1826). This famous dataset is used as a standard in various data-driven machine-learning algorithm papers. The dataset is the result of the project funded by Rockwell Science Center, Office of Naval Research etc.

Data was collected for regular bearings and single-point drive end defects. Data was collected at 48,000 samples/second for drive-end bearing experiments. Data files are in Matlab format. Each file contains fan and drive end vibration data as well as motor rotational speed.

Link for the dataset: CASE Dataset for ball bearing

Work Done

Preprocessing included:

  • Concatenation of all fault type files

    For future analysis, we will add data from every problem category to a single CSV file. We'll be utilising Python's path feature. This module implements a few practical pathname functions. Open() is used to read or write files, and the os module is used to access the filesystem.

  • Modified Dataset with muted data points

    Here every alternate data point is set to zero to mimic a faulty sensor.

  • Modified Dataset with noise addition

    Here some noise is added to every data point to test the robustness of our model. This is achieved using the random module of NumPy library. Signal to noise ratio is 0.009

  • Visualisation of data

Theoretical Work

The term "Artificial Neural Network" is derived from Biological neural networks that develop the structure of a human brain. Similar to the human brain which has neurons interconnected to one another, artificial neural networks also have neurons that are interconnected to one another in various layers of the networks. These neurons are known as nodes.

An Artificial Neural Network in the field of Artificial intelligence attempts to mimic the network of neurons that makes up a human brain so that computers will have the option to understand things and make decisions in a human-like manner. The artificial neural network is designed by programming computers to behave simply like interconnected brain cells.

Convolutional Neural Network is one of the main categories to do image classification and image recognition in neural networks. Scene labelling, objects detections, face recognition, etc., are some of the areas where convolutional neural networks are widely used.

In CNN, each input image will pass through a sequence of convolution layers along with pooling, fully connected layers, and filters (Also known as kernels). After that, we will apply the Soft-max function to classify an object with probabilistic values 0 and 1.

Implementation

Segmenting the Vibration signal into small portions using a window:

Stride is a parameter of the neural network's filter that modifies the amount of movement over the matrix. We have used a window size of 1000 for our model and a jumping stride of 200.

Now we have to convert each instance into a row vector/list and feed this to the neural network to train and the output would be various fault types.

So we will start with performing label encoding on the dataset. Label Encoding refers to converting the labels into a numeric form so as to convert them into a machine-readable form. Machine learning algorithms can then decide in a better way how those labels must be operated.

Then we will split the dataset into train and test sets using the SkLearn library in a 7:3 ratio.

Now we have used Autoencoder to see if raw data is directly separable using t_SNE from the sklearn library. Autoencoders are a specific type of feedforward neural network where the input is the same as the output. They compress the input into a lower-dimensional code and then reconstruct the output from this representation.

We observe that it is not separable directly from raw data, so we construct our ANN model.

Result

  1. ANN Model

The accuracy and loss for different epoch is given below:

The graph for accuracy and val_accuracy is given below:

The confusion matrix is given below:



  1. 1D CNN Model

The accuracy and loss for different epoch is given below:

The graph for accuracy and val_accuracy is given below:

The confusion matrix is given below:



3. 1D CNN Multi-kernel Model

The accuracy and loss for different epoch is given below:

The graph for accuracy and val_accuracy is given below:

The confusion matrix is given below:



4. 2D CNN Model

The accuracy and loss for different epoch is given below:

The graph for accuracy and val_accuracy is given below:

The confusion matrix is given below:

Conclusion

Model Original Dataset Modified Dataset Noisy Dataset
ANN 98.98 92.26 82.08
1D CNN 99.49 96.16 89.01
1D CNN With Multi Kernels 99.74 98.54 82.78
2D CNN 99.15 94.95 84.26

References

  • Kankar, P.K., Sharma, S.C. and Harsha, S.P., 2011. Fault diagnosis of ball bearings using machine learning methods. Expert Systems with applications, 38(3), pp.1876-1886.
  • Bediaga, I., Mendizabal, X., Arnaiz, A. and Munoa, J., 2013. Ball bearing damage detection using traditional signal processing algorithms. IEEE Instrumentation & Measurement Magazine, 16(2), pp.20-25.
  • CWRU Code

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published