Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RPM Deep Estimator (rpm-deep-estimator)

A deep learning-based RPM estimator based on spectral features extracted from vibration signals of rotating machines.

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.

Alt text

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

About

A deep learning–based RPM estimator based on spectral features extracted from rotating machine vibration signals, implemented as a PyTorch custom model and deployed as a Flask API.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages