rpmordermap
A map of the dependence of the order on the rotation speed for analyzing the orders.
| Library |
|
Syntax
Function call
-
map,order,rpm,time,res = rpmordermap(x,fs,rpm)— returns a map of the ratio of rotation orders and frequencymapobtained by analyzing the orders of the input vectorx, as well as vectors with ordersorder, rotation speedsrpmand moments of timetime, in which the order map is calculatedmap. The function also returns the resolution of the orders used.res.Input argument
xIt is measured at a set speed value.rpmexpressed in rpm . Argumentfs— sampling rate in Hz. Each column of the matrixmapcontains RMS estimates of the amplitude of the orders of magnitude for each valuerpm. Functionrpmordermapperforms resampling of the signalxwith a constant sampling rate and uses the short-term Fourier transform to analyze the spectral components of the oversampled signal.
-
rpmordermap(___,out=:plot)— builds a map of orders as a function of rotation speed and time on an interactive graph.
Arguments
Input arguments
#
fs —
sampling
rate
scalar
Details
The sampling rate, set as a positive scalar, expressed in Hz.
# rpm — rotation speed
+
vector
Details
The rotation speed, set as a vector of positive values expressed in rpm. Length of the argument rpm must match the length of the argument. x.
-
If there is a pulse signal of the tachometer, use the function
tachorpmfor direct extractionrpm. -
If there is no pulse signal of the tachometer, use the function
rpmtrackto extractrpmfrom the vibration signal.
# res — order resolution
+
(15 × fs)/(16 × max(rpm)) (by default) | scalar
Details
The resolution of the order of the map depends on the rotation speed, set as a positive scalar. If the argument is res if not specified, then the function rpmordermap sets its value equal to the sampling frequency of the signal with a constant number of samples per cycle divided by 256. If the signal duration is insufficient, the function uses the entire length of the oversampled signal to calculate a single order estimate.
The actual resolution of the order may differ slightly from the specified value. For more information, see Algorithms.
| Типы данных |
|
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.
Example: rpmordermap(x, fs, rpm, "Scale", "dB", "Window", "hann") sets the frequency map rating scale in dB and uses the Hanna window.
# Amplitude — type of amplitude
+
"rms" (default) | "peak" | "power"
Details
The type of amplitude of the rotation frequency dependence map, set by one of the following values:
-
"rms"— returns the RMS amplitude for each estimated order; -
"peak"— returns the peak amplitude for each estimated order; -
"power"— returns the power level for each estimated order.
# OverlapPercent — percentage of overlap between adjacent segments
+
50 (default) | scalar
Details
The percentage of overlap between adjacent segments, given as a scalar of 0 before 100. Meaning 0 means that adjacent segments do not overlap. Meaning 100 means that adjacent segments are offset by one count. A higher percentage of overlap provides a smoother map, but increases calculation time. For more information, see Algorithms.
| Типы данных |
|
#
Scale —
scale of the map depending on the order of rotation
speed
"linear" (by default) | "dB"
Details
The scale of the map depending on the rotation speed, set by one of the following values:
-
"linear"— returns a map with a linear scale; -
"dB"— returns a map with a logarithmic scale, the values of which are expressed in dB.
# Window — The analysis window
+
"flattopwin" (by default) | "chebwin" | "hamming" | "hann" | "kaiser" | "rectwin"
Details
The analysis window, set to one of the following values:
-
"flattopwin"— sets a window with a flat top. For more information, see Function descriptionflattopwin. -
"chebwin"— sets the Chebyshev window. Use the tuple to indicate the attenuation of the side lobes in dB. The weakening of the side lobes should be greater45dB. If the attenuation value is not set, the default value is100dB. For more information, see Function descriptionchebwin.Example:
rpmordermap(x, fs, rpm, 0.25, "Amplitude", "peak", "Window", ("chebwin", 80))sets the peak amplitude and resolution0.25It also uses a Chebyshev window with a weakening of the side lobes.80dB. -
"hamming"— sets the Hamming window. For more information, see Function descriptionhamming. -
"hann"— Hannah sets the window. For more information, see Function descriptionhann. -
"kaiser"— sets the Kaiser window. Use a tuple to specify the form factor. . The form factor must be a positive scalar. If the value of the form parameter is not set, it is used by default.0.5. For more information, see Function descriptionkaiser. -
"rectwin"— sets a rectangular window. For more information, see Function descriptionrectwin.
| Типы данных |
|
# 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
#
map —
a map of the order depending on the rotation
speed
the matrix
Details
A map of the rotation order and frequency ratio returned as a matrix.
Examples
Surface diagram of the map of the dependence of the order on the rotation speed
Details
We will generate a signal consisting of two linear and one quadratic chirps, all with a sampling frequency. 600 Hz during 5 seconds. The system generating the signal increases its rotation speed from 10 before 40 rpm during the testing period.
Let’s generate the tachometer readings.
fs = 600
t1 = 5
t = 0:1/fs:t1
f0 = 10
f1 = 40
rpm = collect(60 * range(f0, f1, length=length(t)))
Linear chirps have orders of magnitude 1 and 2.5. The component with the order 1 It has an amplitude twice as large as the amplitude of the other component. A quadratic chirp starts with the order 6 and returns to this order at the end of the measurement. Its amplitude is 0.8. Let’s create a signal using this information.
o1 = 1
o2 = 2.5
o6 = 6
import EngeeDSP.Functions: chirp
x = 2 * chirp(t, o1 * f0, t1, o1 * f1) + chirp(t, o2 * f0, t1, o2 * f1) +
0.8 * chirp(t, o6 * f0, t1, o6 * f1, "quadratic")
Let’s calculate a map of the dependence of the signal order on the rotation speed. We use the peak amplitude in each measuring cell. Specify the resolution 0.25 orders of magnitude. Let’s process the data using the Chebyshev window with the weakening of the side lobes. 80 dB.
import EngeeDSP.Functions: rpmordermap
map, or, rp = rpmordermap(x, fs, rpm, 0.25, "Amplitude", "peak", "Window", ("chebwin", 80))
We will construct a map of the dependence of the order on the rotation frequency in the form of a surface diagram.
OR = repeat(or', length(rp), 1)
RP = repeat(rp, 1, length(or))
surface(OR, RP, map';
camera = (-15, 45),
xlabel = "Order",
ylabel = "RPM",
zlabel = "Amplitude")
Algorithms
Order analysis is the study of vibrations in rotating systems resulting from rotation itself. The frequencies of these oscillations are often proportional to the rotational speed. The coefficients of proportionality are order.
The rotation speed is usually measured independently and varies over time under most experimental conditions. For the correct analysis of vibrations caused by rotation, oversampling and interpolation of the measured signal is required in order to achieve a constant number of samples per cycle. As a result of this process, the signal components, whose frequencies are integer multiples of the rotation speed, are converted into constant tones. This transformation reduces the blurring of spectral components that occurs when the frequency changes rapidly over time.
Function rpmordermap performs the following steps:
-
Evaluates the phase angle as an integral of the rotational velocity over time:
-
Uses the function
resampleto increase the sampling rate and low-frequency filtering of the signal. This step allows the function to interpolate the signal at undiscretized time points without overlapping high-frequency components. Functionrpmordermapincreases the sampling rate of the signal in15once. -
Uses the function
interp1for linear interpolation of an increased signal onto a uniform grid in the phase domain. The highest available measurement order is determined by the sampling frequency and the maximum rotational speed achieved by the system.:To accurately determine this highest order, it is necessary to sample the signal at least twice as often as . To achieve better results, the function
rpmordermapincreases the sampling rate in4times. The resulting sampling rate in the phase domain is equal toThe default function is
rpmordermapit is configured to calculate maps of the ratio of order and speed of rotation with a target resolution of the order:but you can set a different value using the input argument.
res. -
Uses the function
spectrogramto calculate the short-term Fourier transform of an interpolated signal. By default, the function divides the signal into segments from samples and processes each of them using a flat-top window. Areoverlap counts between adjacent segments, where — the value of the type argument «name-value»
OverlapPercentand by default it is50%. The length of the DFT is set to . The resolution is related to the sampling rate and segment length by the expressionwhere — the equivalent noise band of the window is calculated using the function
enbw. Adjust the resolution to distinguish between closely spaced orders. Lower values they require a longer segment length. Myself depends on , therefore it must be calculated recursively for the given and . The received value it is usually not an integer, so the functionrpmordermaprounds it up using the functionceil. Thus, the actual resolution of the orders may differ slightly from the set target value. If you need to achieve a preset resolution, make sure that your signal contains a sufficient number of samples.