/motor-fault-diagnosis

Multi-sensor data collection gathered to expand research on anomaly detection, fault diagnosis, and predictive maintenance, mainly using non-invasive methods such as thermal observation or vibration measurement.

Primary LanguagePythonMIT LicenseMIT

Fault Diagnosis in a Squirrel-Cage Induction Motor

This is the official repository of the paper: Unraveling Induction Motor State through Thermal Imaging and Edge Processing: A Step towards Explainable Fault Diagnosis.

Creative Commons License
The Squirrel Cage Induction Motor Fault Diagnosis Dataset is a multi-sensor data collection gathered to expand research on anomaly detection, fault diagnosis, and predictive maintenance, mainly using non-invasive methods such as thermal observation or vibration measurement. The measurements were gathered using advanced laboratory at Wrocław University of Science and Technology, designed to simulate and study motor defects. The collected dataset is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License whereas accompanying scripts and source code are licensed under a MIT License.

Citation

@Article{Piechocki2023,
  journal="Eksploatacja i Niezawodność – Maintenance and Reliability",
  issn="1507-2711",
  volume="25",
  number="3",
  year="2023",
  title="Unraveling Induction Motor State through Thermal Imaging and Edge Processing: A Step towards Explainable Fault Diagnosis",
  abstract="Equipment condition monitoring is essential to maintain the reliability of the electromechanical systems. Recently topics related to fault diagnosis have attracted significant interest, rapidly evolving this research area. This study presents a non-invasive method for online state classification of a squirrel-cage induction motor. The solution utilizes thermal imaging for non-contact analysis of thermal changes in machinery. Moreover, used convolutional neural networks (CNNs) streamline extracting relevant features from data and malfunction distinction without defining strict rules. A wide range of neural networks was evaluated to explore the possibilities of the proposed approach and their outputs were verified using model interpretability methods. Besides, the top-performing architectures were optimized and deployed on resource-constrained hardware to examine the system's performance in operating conditions. Overall, the completed tests have confirmed that the proposed approach is feasible, provides accurate results, and successfully operates even when deployed on edge devices.",
  author="Piechocki, Mateusz and Pajchrowski, Tomasz and Kraft, Marek and Wolkiewicz, Marcin and Ewert, Paweł",
  doi="10.17531/ein/170114",
  url="https://doi.org/10.17531/ein/170114"
}

Sensors

  1. Workswell InfraRed Camera (WIC) 640 with 640x512 px resolution.
  2. Flir Lepton 3.5 (160x120 px resolution IR sensor) with PureThermal 2 Smart I/O Module
  3. Triaxial DeltaTron Accelerometer Type 4506
  4. Arduino Nano 33 BLE Sense with LSM9DS1 IMU and MP34DT05 Omnidirectional Digital Microphone.

Dataset

DOI

The collected data is publicly available under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License at zenodo and chmura.put.poznan.pl.

Data and structure

The Squirrel-Cage Induction Motor Fault Diagnosis dataset consists of several, simultaneously collected signals, such as:

640x512 px thermal images in workswell_wic_640 directory (Workswell WIC 640)

160x120 px thermal images in flir_lepton_3_5 folder (Flir Lepton 3.5)

Current and voltage signals with XXX Hz sampling rate in sig_*_R_U_W.tdms files
Vibration data with 1000 Hz sampling rate in vib_*_R_U_W.tdms files (Triaxial DeltaTron)

IMU data with 100 Hz sampling rate in imu_*.cbor files (LSM9DS1)

Microphone sound with 16 kHz sampling rate in micro_*.json files (MP34DT05)

The dataset separates the use of different clutches and within them, experiments are split into 3 classes, according to the below description:

  • misalignment-X-* - where X means a series of experiments with the same shift
  • rotor-X-* - where X means the number of broken cages in the squirrel-cage rotor
  • the other contains samples gathered during proper motor operation

All examinations were conducted with and without current load - in the range 0 - 6 A (*-current-load-X).

Extract data in Python

Thermal images
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image


def normalize(data):
    return (data - data.min()) / (data.max() - data.min())


img_raw = np.asarray(Image.open(filepath), dtype=np.uint16)
img = normalize(img_raw)
plt.imshow(img, cmap='gray')
LabVIEW tdms data
import matplotlib.pyplot as plt
import pandas as pd
from nptdms import TdmsFile


tdms_file = TdmsFile.read(filepath)
df = tdms_file.as_dataframe()

df.plot()
IMU cbor files
import cbor2
import matplotlib.pyplot as plt
import numpy as np


with open(filepath, 'rb') as f:
    data = cbor2.decoder.load(f)

data = np.array(data['payload']['values'])
print(data.shape)

plt.plot(data)
Microphone JSON files
import json

import matplotlib.pyplot as plt
import numpy as np


with open(filepath, 'r') as f:
    data = json.load(f)

plt.plot(data['payload']['values'])