Engee documentation

rpmtrack

Tracking and extracting the rotation speed profile from the vibration signal.

Library

EngeeDSP

Syntax

Function call

  • rpm = rpmtrack(x,fs,order,p) — returns a time-dependent estimate of the rotation speed rpm based on the vibration signal x, sampled with frequency fs.

    Two-column matrix p contains a set of points lying on the time-frequency ridge corresponding to the one specified in the argument order in order. Each row of the matrix p defines one pair of coordinates. If you call the function rpmtrack without specifying arguments order and p, an interactive graph opens that displays a time-frequency map and allows you to select points.

    If there is a pulse signal of the tachometer, use the function tachorpm to extract the argument directly rpm.

  • rpm = rpmtrack(___,Name,Value) — sets additional parameters using arguments like «name-value» for any of the previous syntax options. The named arguments include the method used to estimate the time-frequency map and the initial time for the rotation rate profile.

  • rpm,tout = rpmtrack(___) — also returns a vector of time values for which the rotation speed profile is calculated.

  • rpmtrack(___,out=:plot) — builds an interactive diagram displaying a time-frequency power map and a calculated rotation speed profile.

Arguments

Input arguments

# x — input signal

+ vector

Details

The input signal is set as a vector.

Типы данных

Float32, Float64

# fs — sampling rate
scalar

Details

The sampling frequency, set as a positive real scalar.

Типы данных

Float32, Float64

# order — the order of the crest

+ scalar

Details

The order of the ridge, given as a positive real scalar.

Типы данных

Float32, Float64

# p — ridge points

+ the matrix

Details

The ridge points are defined as a two-column matrix containing one time-frequency coordinate in each row. The coordinates describe the points on the time-frequency map belonging to the ridge order of interest.

Типы данных

Float32, Float64

Input arguments «name-value»

Specify optional argument pairs as Name,Value, where Name — the name of the argument, and Value — the appropriate value. Type arguments «name-value» they should be placed after the other arguments, but the order of the pairs does not matter. You can specify multiple pairs «name-value».

Use commas to separate the name and value, and Name put it in quotation marks.

# Method — type of time-frequency map

+ "stft" (by default) | "fsst"

Details

The type of time-frequency map used in the evaluation process, set by one of the following values:

  • "stft" — using the short-term Fourier transform to calculate the time-frequency map of the power spectrogram. For more information about the short-term Fourier transform, see the function description. pspectrum;

  • "fsst" — using the synchronized Fourier transform to calculate the time-frequency map.

# FrequencyResolution — Frequency resolution bandwidth

+ scalar

Details

The frequency resolution bandwidth used to calculate the time-frequency map, given as a scalar expressed in Hz.

Типы данных

Float32, Float64

# PowerPenalty — maximum power difference between adjacent ridge points

+ Inf (by default) | scalar

Details

The maximum power difference between adjacent ridge points, given as a scalar, expressed in dB.

Use this argument to make an algorithm for extracting the ridges of a function rpmtrack I found the right comb for the appropriate order. Argument PowerPenalty It is useful when the ridge of order of interest crosses other ridges or has a very close frequency to other ridges, but differs in power level.

Типы данных

Float32, Float64

# FrequencyPenalty — penalty for rough extraction of ridges

+ 0 (by default) | scalar

Details

The penalty for rough extraction of ridges, set as a non-negative scalar.

Use this argument to make the algorithm extract the ridges of the function rpmtrack I avoided large jumps that could lead to a shift of the ridge estimate to the wrong point in the time and frequency domain. Argument FrequencyPenalty It is useful when it is necessary to distinguish ordinal ridges that intersect or are located close to each other in frequency.

Типы данных

Float32, Float64

# startTime — the start time of the rotation speed profile assessment

+ scalar

Details

The start time for estimating the rotation speed profile, set as a scalar in seconds.

Типы данных

Float32, Float64

# EndTime — the end time for the evaluation of the rotation speed profile

+ scalar

Details

The end time for the evaluation of the rotation speed profile, set as a scalar in seconds.

Типы данных

Float32, Float64

# out — type of output data

+ :data (by default) | :plot

Details

Type of output data:

  • :data — the function returns data;

  • :plot — the function returns a graph.

For this argument, the name and value are separated by an equal sign (=).

Output arguments

# rpm — estimation of rotation speed

+ vector

Details

The rotation speed estimate returned as a vector expressed in rpm.

# tout — time values

+ vector

Details

The time values at which the rotation speed profile is estimated, returned as a vector.

Algorithms

Function rpmtrack uses a two-stage (roughly accurate) assessment method:

  1. Calculates the time-frequency map x and allocates a time-frequency ridge based on a given set of points on the ridge. p, order of order, corresponding to this ridge, as well as optional arguments PowerPenalty and FrequencyPenalty. The extracted ridge provides a rough estimate of the rotation speed profile.

  2. Calculates the waveform of the order corresponding to the extracted crest using a Wold—Kalman filter, and based on this calculates a new time-frequency map. The isolated order ridge from the new time-frequency map provides an accurate estimate of the rotation frequency profile.

Literature

  1. Urbanek, Jacek, Tomasz Barszcz, and Jerome Antoni. «A Two-Step Procedure for Estimation of Instantaneous Rotational Speed with Large Fluctuations.» Mechanical Systems and Signal Processing. Vol. 38, 2013, pp. 96–102.