🛠️ This repository provides the official implementation of the paper.
"[IEEE TII] Balancing Discrepancy and Consistency: Adversarial Single Domain Generalization in Fault Diagnosis".Paper Link
The datasets used in this project can be accessed from the links below.
| No. | Dataset | Source | Link |
|---|---|---|---|
| 1 | PU (Paderborn University) | University Website | Data Link |
| 2 | HUST (Huazhong University of Science and Technology) | GitHub | GitHub Link |
| 3 | BJUT (Beijing University of Technology) | GitHub | GitHub Link |
| 4 | SDUST (Shandong University of Science and Technology) | GitHub | GitHub Link |
| 5 | RFB (Real Factory Bearing) | Google Drive | Drive Link |
| # 🛠️ Data preprocessing | |||
| The raw input data consists of vibration acceleration signals. We do not apply any additional preprocessing steps such as denoising or normalization. |
load_data.py.This ensures that the entire pipeline is simple, reproducible, and focused on frequency-domain representations only.
👉 Download the segmented data and corresponding labels here: 📥 Click to download time-domain dataset
This project is developed and tested under Python 3.9 with PyTorch 1.12.
We recommend using conda to manage the environment for consistent dependencies.
BDC
├── PU_0900_1000_07.mat # Quick-run example data provided
├── PU_1500_0400_07.mat # Quick-run example data provided
├── PU_1500_1000_01.mat # Quick-run example data provided
├── load_data.py # Data loading and FFT
├── construct_loader.py # Dataloader builder
├── module.py # Loss functions and modules
├── main.py # Training and evaluation
└── README.md
A sample dataset and a ready-to-run script are provided to facilitate quick and easy implementation for users.
Option 1: To help users get started quickly, we provide three pre-segmented sample sets of vibration signals from the PU dataset, corresponding to three different operating conditions:
PU_0900_1000_07.mat
PU_1500_0400_07.matPU_1500_1000_01.matThese .mat files are already uploaded to this repository root and can be used directly without any preprocessing. They are representative of different operating conditions and fault types.
- Option 2: Download the data manually from: 📥 External download link
main.py) to match the actual location where you store the .mat files on your machine.main.py file to start training and evaluation.We compare our method with the following state-of-the-art single-domain generalization and fault diagnosis methods:
If you have any questions, feel free to open an issue or contact the author.