Rotating Shaft Vibration Data
    This post describes how to perform AI learning based on vibration data of a production facility shaft and detect abnormalities.
Table of Contents
- Data Introduction
 - Data Visualization with Machbase Neo
 - Table Creation and Data Upload in Machbase Neo
 - Experimental Methodology
 - Experiment Code
 - Experimental Results
 
1. Data Introduction
- DataHub Serial Number: 2024-8.
 - Data Name: Rotating Shaft Vibration Data.
 - Data Collection Methods: Vibration data was collected at a rate of 4096 samples per second through three sensors, inducing an imbalance on the shaft using weights of various widths.
 - Data Source: Link
 - Paper : Link
 - Raw data size and format: 11GB, CSV.
 - Number of tags: 60.
- Each tag has 6 instances.
 
 
| TAG | DESCRIPTION | 
|---|---|
| V_in | Input voltage values. | 
| Measured_RPM | Rotational speed of the rotating body. | 
| Vibration_1 | Data from the first vibration sensor. | 
| Vibration_2 | Data from the second vibration sensor. | 
| Vibration_3 | Data from the third vibration sensor. | 
| Unbalance_Factor | Unbalance values. | 
- Data Time Range: 2024-10-07 00:00:00 to 2024-10-07 01:46:42.999.
 - Number of data records collected: 988,692,480.
 - CSV data URL: https://data.yotahub.com/2024-8/datahub-2024-08-vibration_unbalance.csv.gz
 - Data Migration: Rotating Shaft Vibration Data Migration
 

2. Data Visualization with Machbase Neo
- Data visualization is possible through the Tag Analyzer in Machbase Neo.
 - Select desired tag names and visualize them in various types of graphs.
 

- Below, access the 2024-8 DataHub in real-time, select the desired tag names from the data of 60 tags, visualize them, and preview the data patterns.
 
DataHub Viewer
3. Table Creation and Data Upload in Machbase Neo
- In the DataHub directory, use setup.wrk located in the Rotating Shaft Vibration Dataset folder to create tables and load data, as illustrated in the image below.
 

1) Table Creation
- The table is created immediately upon pressing the "Run" button in the menu.
 - If the vibe_unbal table exists, execute the first line and then the second. If it does not exist, start from the second line.
 

2) Data Upload
- Loading tables in two different ways.
 
Method 1) Table loading method using TQL in Machbase Neo (since machbase-neo v8.0.29-rc1
- 
Pros
- Machbase Neo loads as soon as you hit the launch button.
 
 - 
Cons
- Slower table loading speed compared to other method.
 
 

Method 2) Loading tables using commands
- 
Pros
- Fast table loading speed.
 
 - 
Cons
- The table loading process is cumbersome.
 - Run cmd window - Change machbase-neo path - Enter command in cmd window.
 
 
- If run the below script from the command shell, the data will be entered at high speed into the vibe_unbal table.
 
curl http://data.yotahub.com/2024-8/datahub-2024-08-vibration_unbalance.csv.gz | machbase-neo shell import --input - --compress gzip --header --method append --timeformat ns vibe_unbal
- If specify a separate username and password, use the --user and --password options (if not sys/manager) and add the options as shown below.
 
curl http://data.yotahub.com/2024-8/datahub-2024-08-vibration_unbalance.csv.gz | machbase-neo shell import --input - --compress gzip --header --method append --timeformat ns vibe_unbal --user USERNAME --password PASSWORD
4. Experimental Methodology
- Model Objective: Rotating Shaft Anomlay Detection.
 - Tags Used: 0th group tags, 1th group tags.
 - Model Configuration: XGBoostClassifier Ensemble.
 
- Learning Method: Supervised Learning.
- Train: Model Training.
 - Test: Model Performance Evaluation.
 
 - Model Performance Metric: F1 Score.
 - Data Loading Method
- Loading the Entire Dataset.
 - Loading the Batch Dataset.
 
 - Data Preprocessing
- Preprocess three datasets, each corresponding to different vibration data.
 - Hanning Window.
 - Fast Fourier Transform.
 - MinMax Scaling.
 - Principal Component Analysis.
 
 
5. Experiment Code
- Below is the code for each of the two ways to get data from the database.
 - If all the data can be loaded and trained at once without causing memory errors, then method 1 is the fastest and simplest.
 - If the data is too large, causing memory errors, then the batch loading method proposed in method 2 is the most efficient.
 
Method 1) Loading the Entire Dataset
- The code below is implemented in a way that loads all the data needed for training from the database all at once.
 - It is exactly the same as loading all CSV files (The only difference is that the data is loaded from Machbase Neo).
 - Pros
- Can use the same code that was previously utilizing CSVs (Only the loading process is different).
 
 - Cons
- Unable to train if trainable data size exceeds memory size.
 
 
- The entire code can be run through 8.Vibe_Unbal_General.ipynb.
 
Method 2) Loading the Batch Dataset
- Method for loading data from the Machbase Neo for a single batch size.
 - The code below is for fetching a time range sequentially for a single batch size.
 - Pros
- It is possible to train the model regardless of the data size, no matter how large it is.
 
 - Cons
- It takes longer to train compared to method 1.
 
 
- The entire code can be run through 8.Vibe_Unbal_New_Batch.ipynb.
 
6. Experimental Results
Method 1) Loading the Entire Dataset Result

Method 2) Loading the Batch Dataset Result

- The F1 score for loading the entire dataset resulted in 1.0, loading the batch dataset resulted in 0.92.
 - Machine learning algorithms like XGBoost do not seem well-suited for batch learning.
 
※ Various datasets and tutorial codes can be found in the GitHub repository below.
datahub/dataset/2024 at main · machbase/datahub
All Industrial IoT DataHub with data visualization and AI source - machbase/datahub