Intro to Data-Modelling Course
This project was the final assignment of my data-modelling course. The course started with a review of Bayesian statistics, and then started with linear regression and ended with a brief talk on reinforcement learning. For the final project I really wanted to explore a subject in mechanical engineering and with real implications. The project was completed in Python, using libraries such as numpy, scipy, pytorch, and scikit-learn.
Prognostics-based maintenance, which is a typical pattern of predictive maintenance (PdM) has been developed rapidly in recent years. Prognosis, which is defined as a systematic approach that can continuously track health indicators to predict risks of unacceptable behavior over time, can serve the purpose of assessing the degradation of a facility’s quality based on acquired online condition monitoring data. The existing prognostics models can be divided into two main categories, mechanism-based models and data-driven models. Although the real-life system mechanism is often too stochastic and complex to model, a physics-based model might not be the most practical solution. Artificial intelligence-based algorithms are currently the most commonly found data-driven technique in prognostics research.
The data was generated by the NSF I/UCR Center for Intelligent Maintenance Systems with support from Rexnord Corp. in Milwaukee, WI.
Test Rig Setup
Four bearings were installed on a shaft. The rotation speed was kept constant at 2000 RPM by an AC motor coupled to the shaft via rub belts. A radial load of 6000 lbs is applied onto the shaft and bearing by a spring mechanism. All bearings are force lubricated. Rexnord ZA-2115 double row bearings were installed on the shaft as shown in Figure 1. PCB 353B33 High Sensitivity Quartz ICP accelerometers were installed on the bearing housing (two accelerometers for each bearing [x- and y-axes] for data set 1, one accelerometer for each bearing for data sets 2 and 3). Sensor placement is also shown in Figure 1. All failures occurred after exceeding designed life time of the bearing which is more than 100 million revolutions. Each data set describes a test-to-failure experiment. Each data set consists of individual files that are 1-second vibration signal snapshots recorded at specific intervals. Each file consists of 20,480 points with the sampling rate set at 20 kHz. The file name indicates when the data was collected. Each record (row) in the data file is a data point.
The first step was to load all the files in each data set. To do this, Python gets all the files names in each folder and loops through loading them and performing the processing algorithm provided. This data was then saved and loaded later using pickle. Loading and processing the 9000 plus waveforms took over 16 hours using Welch’s method and over 19 hours using the spectrogram method.
While attempts were made to utilize the continuous wavelet transform and consecutive Fourier transforms to create images for use with CNN, this was taking too much time to process. These also did not seem to be promising due to their temporal dependence and lack of visible differences.
The first step when evaluated the effectiveness of a model was to train the model with a portion of a dataset and test it with the remaining portion. When using Welch’s method, 3 out of the 6 datasets displayed a strong correlation with the respectively trained model. Of the 3 that did not display strong linear relationships, 2 had partially linear segments and 1 was almost completely horizontal. While these results were promising, they do not show the ability to predict independent data.
In order to test each a model’s ability to predict independent data, a model was trained with the entirety of at least 1 dataset. It was then tested against a dataset it had never seen. The actual configurations of these tests can be seen on the table below along with examples of the best and worst fits. These results brought about three possible conclusions. The first is that the models need more data in order to capture different types of wear behaviors. The second is that Welch’s method is not a strong enough processing technique to characterize long term changes due to wear. The last conclusion, on perhaps the most likely, is that there is not much difference between a new bearing and a used bearing with no faults.
Another signal processing technique was also used to train new models. This time, the spectral power density was calculated using a spectrogram, leading to more than 2x as many features to use in the neural network. This did not lead to an improvement in performance as can be seen below (these are only 2 of many experiments run).
The overall conclusion of this project is that the estimation of remaining useful life without advanced signal processing algorithms is difficult. Fault detection is more consistent and reliable. This might be the topic of a PhD project but not a month long course project.