This repository contains code vibration signal analysis on the Case Western Reserve University (CWRU) & Noise lab dataset for accurate fault detection using deep learning. Through this I aimed to develop and compare the performance of various deep learning & Machiner learning models like Artificial Neural Networks (ANN), 1D Convolutional Neural Networks (1D CNN), Long Short-Term Memory (LSTM), Gated Recurrent Unit (GRU), Support vector Machine (SVM) etc.
Induction motor is a electromechanical energy conversion device in all industrial processes. However, it is subjected to many undesirable stresses, which can cause faults leading to failure. These machines contains of numerous elements, such as stator, rotor, shaft, and bearings. Numerous studies regarding the possibility of induction motor failures, reveal that a bearing fault is the top common fault category that accounts for one-third of the entire defects, and the failure of these REBs is one of the most common causes ofmachine breakdown resulting in severe loss of safety and property and even the crash of the machine or loss of the lives in some cases. Thus there is a need to detect these faults as early as possible to take appropriate measures.
Vibration signal analysis is crucial in detecting faults in rotating machinery, and the CWRU dataset provides a rich source of real-world vibration data for this purpose. Deep learning techniques have shown promising results in fault detection tasks due to their ability to automatically learn intricate patterns from raw sensor data.
The Case Western Reserve University (CWRU) bearing dataset is widely used for research in machinery fault diagnosis. It consists of vibration signals collected from various faults occurring in bearings under different operating conditions. The dataset provides a valuable resource for training and evaluating fault detection models.
The NoiseLab data was fairly simple data with a size much larger to as compared to CWRU.
Hence, the challenge was not to just attain the desired fault prediction accuracy but also make the models work on both the datasets
For traversing the data we used a sliding window function with a 50% overlap.
Sliding window also offers a solution to make further processing computationally efficient. By segmenting data into windows, features capturing the characteristics of each segment can be extracted. Furthermore, using 50% window overlap captures information at boundaries, leading to a more comprehensive understanding of the sequence. Artificial Neural Networks (ANN): A basic neural network architecture is employed to learn patterns from vibration signals for fault detection.
1D Convolutional Neural Networks (1D CNN): Convolutional layers are utilized to automatically extract relevant features from the 1D vibration signal data.
1D CNN + Long Short-Term Memory (LSTM): This architecture combines the feature extraction capabilities of 1D CNN with the sequential learning ability of LSTM networks.
1D CNN + Gated Recurrent Unit (GRU): Similar to the LSTM combination, this architecture integrates 1D CNN with GRU cells for capturing temporal dependencies in the vibration signals.
Also added a code for manual feature extraction
Clone the repository:
git clone https://github.com/nameerakhter/Ann_cwruTo run this project, you'll need to install the required dependencies. Open your terminal and run the following command:
Requirements:
Create a virtual environment (optional but recommended):
python -m venv venvActivate the virtual environment:
For Windows:
.\venv\Scripts\activateNow, install the dependencies:
pip install -r requirements.txtThe following libraries are included in the requirements:
- scipy
- seaborn
- numpy
- pandas
- matplotlib
- scikit-learn
- tensorflow
- ipython
- python-doc


