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: eng.leonardogodoi@gmail.com
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.
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.
signal (List[float]): signal to have its RPM estimated.sampling_frequency (float): sampling frequency used to acquire the signal.
estimation_success (bool): estimation task status.estimated_rpm (float): estimated RPM value.confidence_margin (float): estimation confidence margin.
- Minimum sampling frequency admitted: 4 kHz.
- Maximum shaft speed covered: 30,000 RPM.
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
