https://github.com/lfgodoi/rpm-deep-guesser
A deep learning-based RPM estimator based on spectral features extracted from vibration signals of rotating machines.
https://github.com/lfgodoi/rpm-deep-guesser
condition-monitoring deep-learning docker flask machine-learning neural-networks numpy python pytorch scipy signal-processing spectral-analysis
Last synced: 2 months ago
JSON representation
A deep learning-based RPM estimator based on spectral features extracted from vibration signals of rotating machines.
- Host: GitHub
- URL: https://github.com/lfgodoi/rpm-deep-guesser
- Owner: lfgodoi
- Created: 2025-02-24T19:58:18.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-03-01T13:51:12.000Z (2 months ago)
- Last Synced: 2025-03-01T14:34:56.792Z (2 months ago)
- Topics: condition-monitoring, deep-learning, docker, flask, machine-learning, neural-networks, numpy, python, pytorch, scipy, signal-processing, spectral-analysis
- Language: Python
- Homepage:
- Size: 145 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## RPM Deep Estimator (rpm-deep-estimator)
A deep learning-based RPM estimator based on spectral features extracted from vibration signals of rotating machines.
- Developer: _Leonardo Franco de Godói_
- GitHub profile: _https://github.com/lfgodoi_
- Contact: [email protected]_### Motivation
The shaft rotation speed is a crucial parameter for condition monitoring of rotating machines. Knowing this speed enables the identification of key spectral components, which are essential for diagnosing potential faults. However, since a rotation sensor is not always available, estimating it from the vibration signal can be highly beneficial.
### Explanation
Given a vibration signal collected from a machine at a specified sampling frequency, the shaft speed (RPM) is estimated using a deep neural network that processes features extracted from both the original and envelope spectra. The envelope is computed using the Hilbert Transform, whereas the spectrum is computed using the Fast Fourier Transform (FFT). The neural network employed in this algorithm contains several intermediate layers and a single output neuron enabling the prediction of a continuous value. It processes well-defined frequency bands with 0.25 Hz resolution, mapping the amplitudes that most closely match the expected frequencies, so that the number of input neurons is kept fixed regardless of the signal size.

### Inputs
- `signal (List[float])`: signal to have its RPM estimated.
- `sampling_frequency (float)`: sampling frequency used to acquire the signal.### Outputs
- `estimation_success (bool)`: estimation task status.
- `estimated_rpm (float)`: estimated RPM value.
- `confidence_margin (float)`: estimation confidence margin.### Conditions
- Minimum sampling frequency admitted: 4 kHz.
- Maximum shaft speed covered: 30,000 RPM.### Running the app directly from the Python script
It is usually common to need to run the app directly using Python for development and testing purposes, without the need to use Docker, which will only be required for its automatic deployment.
_Inside the project folder, create a virtual environment._
python3 -m venv .venv
_Activate the virtual environment._
source .venv/bin/activate
_Update the Pip._
pip install --upgrade pip
_Install the app dependencies._
pip install -r requirements.txt
_Run the app._
python app/main.py