Frequency-RPM map for order analysis (2024)

Frequency-RPM map for order analysis

collapse all in page

Syntax

map = rpmfreqmap(x,fs,rpm)

map = rpmfreqmap(x,fs,rpm,res)

map = rpmfreqmap(___,Name,Value)

[map,freq,rpm,time,res]= rpmfreqmap(___)

rpmfreqmap(___)

Description

example

map = rpmfreqmap(x,fs,rpm) returnsthe frequency-RPM map matrix, map, that resultsfrom performing frequency analysis on the input vector, x. x ismeasured at a set rpm of rotational speeds expressedin revolutions per minute. fs is the sample ratein Hz. Each column of map contains root-mean-square(RMS) amplitude estimates of the spectral content present at eachvalue of rpm. rpmfreqmap usesthe short-time Fourier transform to analyze the spectral content of x.

example

map = rpmfreqmap(x,fs,rpm,res) specifiesthe resolution bandwidth of the map in Hz.

example

map = rpmfreqmap(___,Name,Value) specifiesoptions using Name,Value pairs in addition tothe input arguments in previous syntaxes.

[map,freq,rpm,time,res]= rpmfreqmap(___) returns vectors with thefrequencies, rotational speeds, and time instants at which the frequencymap is computed. It also returns the resolution bandwidth used.

example

rpmfreqmap(___) with no outputarguments plots the frequency map as a function of rotational speedand time on an interactive figure. The plot is also known as a Campbelldiagram.

Examples

collapse all

Frequency-RPM Map of Chirp with 4 Orders

Open Live Script

Create a simulated signal sampled at 600 Hz for 5 seconds. The system that is being tested increases its rotational speed from 10 to 40 revolutions per second during the observation period.

Generate the tachometer readings.

fs = 600;t1 = 5;t = 0:1/fs:t1;f0 = 10;f1 = 40;rpm = 60*linspace(f0,f1,length(t));

The signal consists of four harmonically related chirps with orders 1, 0.5, 4, and 6. The order-4 chirp has twice the amplitude of the others. To generate the chirps, use the trapezoidal rule to express the phase as the integral of the rotational speed.

o1 = 1;o2 = 0.5;o3 = 4;o4 = 6;ph = 2*pi*cumtrapz(rpm/60)/fs;x = [1 1 2 1]*cos([o1 o2 o3 o4]'*ph);

Visualize the frequency-RPM map of the signal.

rpmfreqmap(x,fs,rpm)

Frequency-RPM map for order analysis (1)

Frequency-RPM Map of Helicopter Vibration Data

Analyze simulated data from an accelerometer placed in the co*ckpit of a helicopter.

Load the helicopter data. The vibrational measurements, vib, are sampled at a rate of 500 Hz for 10 seconds. Inspection of the data reveals that it has a linear trend. Remove the trend to prevent it from degrading the quality of the frequency estimation.

load('helidata.mat')vib = detrend(vib);

Plot the nonlinear RPM profile. The rotor runs up until it reaches a maximum rotational speed of about 27,600 revolutions per minute and then coasts down.

plot(t,rpm)xlabel('Time (s)')ylabel('RPM')

Frequency-RPM map for order analysis (2)

Compute the frequency-RPM map. Specify a resolution bandwidth of 2.5 Hz.

[map,freq,rpmOut,time] = rpmfreqmap(vib,fs,rpm,2.5);

Visualize the map.

imagesc(time,freq,map)ax = gca;ax.YDir = 'normal';xlabel('Time (s)')ylabel('Frequency (Hz)')

Frequency-RPM map for order analysis (3)

Repeat the computation using a finer resolution bandwidth. Plot the map using the built-in functionality of rpmfreqmap. The gain in frequency resolution comes at the expense of time resolution.

rpmfreqmap(vib,fs,rpm,1.5);

Frequency-RPM map for order analysis (4)

Waterfall Plot of Frequency-RPM Map

Open Live Script

Generate a signal that consists of two linear chirps and a quadratic chirp, all sampled at 600 Hz for 15 seconds. The system that produces the signal increases its rotational speed from 10 to 40 revolutions per second during the testing period.

Generate the tachometer readings.

fs = 600;t1 = 15;t = 0:1/fs:t1;f0 = 10;f1 = 40;rpm = 60*linspace(f0,f1,length(t));

The linear chirps have orders 1 and 2.5. The component with order 1 has half the amplitude of the other. The quadratic chirp starts at order 6 and returns to this order at the end of the measurement. Its amplitude is 0.8. Create the signal using this information.

o1 = 1;o2 = 2.5;o6 = 6;x = 0.5*chirp(t,o1*f0,t1,o1*f1)+chirp(t,o2*f0,t1,o2*f1) + ... 0.8*chirp(t,o6*f0,t1,o6*f1,'quadratic');

Compute the frequency-RPM map of the signal. Use the peak amplitude at each measurement cell. Specify a resolution of 6 Hz. Window the data with a flat top window.

[map,fr,rp] = rpmfreqmap(x,fs,rpm,6, ... 'Amplitude','peak','Window','flattopwin');

Draw the frequency-RPM map as a waterfall plot.

[FR,RP] = meshgrid(fr,rp);waterfall(FR,RP,map')view(-6,60)xlabel('Frequency (Hz)')ylabel('RPM')zlabel('Amplitude')

Frequency-RPM map for order analysis (5)

Interactive Frequency-RPM Map

Plot an interactive frequency-RPM map by calling rpmfreqmap withoutoutput arguments.

Load a file containing simulated vibrational data from an accelerometer placed in the co*ckpit of a helicopter. The data is sampled at a rate of 500 Hz for 10 seconds. Remove the linear trend in the data. Call rpmfreqmap to generate an interactive plot of the frequency-RPM map. Specify a frequency resolution of 2 Hz.

load helidata.matrpmfreqmap(detrend(vib),fs,rpm,2)

Frequency-RPM map for order analysis (6)

Move the crosshair cursors in the figure to determinethe RPM and the RMS amplitude at a frequency of 25Hzafter 5seconds.

Frequency-RPM map for order analysis (7)

Click the Zoom X button Frequency-RPM map for order analysis (8) in the toolbar to zoom into the time region between 2 and 4seconds. A panner appears in the bottom plot.

Frequency-RPM map for order analysis (9)

Click the Waterfall Plot button Frequency-RPM map for order analysis (10) in the toolbar to display the frequency-RPM map as a waterfall plot. For improved visibility, rotate the plot clockwise using the Rotate Left button Frequency-RPM map for order analysis (11) three times. Move the panner to the interval between 4 and 6seconds.

Frequency-RPM map for order analysis (12)

Input Arguments

collapse all

resResolution bandwidth
fs/128 (default) | positive scalar

Resolution bandwidth of the frequency-RPM map, specified asa positive scalar. If res is not specified, then rpmfreqmap setsit to the sample rate divided by128. If the signalis not long enough, then the function uses the entire signal lengthto compute a single frequency estimate.

Data Types: single | double

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'Scale','dB','Window','hann' specifiesthat the frequency map estimates are to be scaled in decibels anddetermined using a Hann window.

AmplitudeFrequency-RPM map amplitudes
'rms' (default) | 'peak' | 'power'

Frequency-RPM map amplitudes, specified as the comma-separatedpair consisting of 'Amplitude' and one of 'rms', 'peak',or 'power'.

  • 'rms' — Returns the root-mean-squareamplitude for each estimated frequency.

  • 'peak' — Returns the peakamplitude for each estimated frequency.

  • 'power' — Returns the powerlevel for each estimated frequency.

OverlapPercentOverlap percentage between adjoining segments
50 (default) | scalar from 0 to 100

Overlap percentage between adjoining segments, specified asthe comma-separated pair consisting of 'OverlapPercent' anda scalar from 0 to 100. A value of 0 means that adjoining segmentsdo not overlap. A value of 100 means that adjoining segments are shiftedby one sample. A larger overlap percentage produces a smoother mapbut increases the computation time. See rpmordermap formore information.

Data Types: double | single

ScaleFrequency-RPM map scaling
'linear' (default) | 'dB'

Frequency-RPM map scaling, specified as the comma-separatedpair consisting of 'Scale' and either 'linear' or 'dB'.

  • 'linear' — Returns a linearlyscaled map.

  • 'dB' — Returns a logarithmicmap with values expressed in decibels.

WindowAnalysis window
'hann' (default) | 'chebwin' | 'flattopwin' | 'hamming' | 'kaiser' | 'rectwin'

Analysis window, specified as the comma-separated pair consistingof 'Window' and one of these values:

  • 'hann' specifies a Hann window. See hann for more details.

  • 'chebwin' specifies a Chebyshevwindow. Use a cell array to specify a sidelobe attenuation in decibels.The sidelobe attenuation must be greater than 45dB.If not specified, it defaults to 100dB. See chebwin for more details.

  • 'flattopwin' specifies a flat topwindow. See flattopwin formore details.

  • 'hamming' specifies a Hamming window. See hamming for more details.

  • 'kaiser' specifies a Kaiser window.Use a cell array to specify a shape parameter, β.The shape parameter must be a positive scalar. If not specified, itdefaults to 0.5. See kaiser formore details.

  • 'rectwin' specifies a rectangularwindow. See rectwin for moredetails.

Example: 'Window','chebwin' specifies a Chebyshevwindow with a sidelobe attenuation of 100dB.

Example: 'Window',{'chebwin',60} specifiesa Chebyshev window with a sidelobe attenuation of 60dB.

Example: 'Window','kaiser' specifies a Kaiserwindow with a shape parameter of 0.5.

Example: 'Window',{'kaiser',1} specifiesa Kaiser window with a shape parameter of 1.

Data Types: char | string | cell

Output Arguments

collapse all

map — Frequency-RPM map
matrix

Frequency-RPM map, returned as a matrix.

freq — Frequencies
vector

Frequencies, returned as a vector.

rpm — Rotational speeds
vector

Rotational speeds, returned as a vector.

time — Time instants
vector

Time instants, returned as a vector.

res — Resolution bandwidth
scalar

Resolution bandwidth, returned as a scalar.

References

[1] Brandt, Anders. Noise and Vibration Analysis:Signal Analysis and Experimental Procedures. Chichester,UK: John Wiley & Sons, 2011.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Version History

Introduced in R2015b

expand all

The rpmfreqmap function supports gpuArray objects. You must have Parallel Computing Toolbox™ to use this functionality.

See Also

orderspectrum | ordertrack | orderwaveform | rpmordermap | rpmtrack | spectrogram | tachorpm

MATLAB Command

You clicked a link that corresponds to this MATLAB command:

 

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Frequency-RPM map for order analysis (13)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

Contact your local office

Frequency-RPM map for order analysis (2024)

References

Top Articles
Latest Posts
Article information

Author: Frankie Dare

Last Updated:

Views: 6098

Rating: 4.2 / 5 (53 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Frankie Dare

Birthday: 2000-01-27

Address: Suite 313 45115 Caridad Freeway, Port Barabaraville, MS 66713

Phone: +3769542039359

Job: Sales Manager

Hobby: Baton twirling, Stand-up comedy, Leather crafting, Rugby, tabletop games, Jigsaw puzzles, Air sports

Introduction: My name is Frankie Dare, I am a funny, beautiful, proud, fair, pleasant, cheerful, enthusiastic person who loves writing and wants to share my knowledge and understanding with you.