You are here : matlab → Signal Processing → rpmordermap
# rpmordermap() - Signal Processing

### Syntax

### Example

### Output / Return Value

### Limitations

### Alternatives / See Also

### Reference

examplemap = rpmordermap(x,fs,rpm) returns the order-RPM map matrix, map, that results from performing order analysis on the input vector, x. x is measured at a set rpm of rotational speeds expressed in revolutions per minute. fs is the measurement sample rate in Hz. Each column of map contains root-mean-square (RMS) amplitude estimates of the orders present at each rpm value. rpmordermap resamples x to a constant samples-per-cycle rate and uses the short-time Fourier transform to analyze the spectral content of the resampled signal. examplemap = rpmordermap(x,fs,rpm,res) specifies the order resolution of the map in units of orders. examplemap = rpmordermap(___,Name,Value) specifies options using Name,Value pairs in addition to the input arguments in previous syntaxes. [map,order,rpm,time,res] = rpmordermap(___) returns vectors with the orders, rotational speeds, and time instants at which the order map is computed. It also returns the order resolution used. examplerpmordermap(___) with no output arguments plots the order map as a function of rotational speed and time on an interactive figure.

map = rpmordermap(x,fs,rpm) examplemap = rpmordermap(x,fs,rpm,res) examplemap = rpmordermap(___,Name,Value) example[map,order,rpm,time,res] = rpmordermap(___)rpmordermap(___) example

Order-RPM Map of Chirp with 4 OrdersOpen This Example 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 order-RPM map of the signal.rpmordermap(x,fs,rpm) Order-RPM Map of Helicopter Vibration DataOpen This Example Analyze simulated data from an accelerometer placed in the cockpit 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 order 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') Compute the order-RPM map. Specify an order resolution of 0.015.[map,order,rpmOut,time] = rpmordermap(vib,fs,rpm,0.015); Visualize the map.imagesc(time,order,map) ax = gca; ax.YDir = 'normal'; xlabel('Time (s)') ylabel('Order') Repeat the computation using a finer order resolution. Plot the map using the built-in functionality of rpmordermap. The lower orders are resolved more clearly.rpmordermap(vib,fs,rpm,0.005); Waterfall Plot of Order-RPM MapOpen This Example Generate a signal that consists of two linear chirps and a quadratic chirp, all sampled at 600 Hz for 5 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 = 5; 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 twice 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 = 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'); Compute the order-RPM map of the signal. Use the peak amplitude at each measurement cell. Specify a resolution of 0.25 orders. Window the data with a Chebyshev window whose sidelobe attenuation is 80 dB.[map,or,rp] = rpmordermap(x,fs,rpm,0.25, ... 'Amplitude','peak','Window',{'chebwin',80}); Draw the order-RPM map as a waterfall plot.[OR,RP] = meshgrid(or,rp); waterfall(OR,RP,map') view(-15,45) xlabel('Order') ylabel('RPM') zlabel('Amplitude') Interactive Order-RPM Map Plot an interactive order-RPM map by calling rpmordermap without output arguments. Load the file 'helidata.mat', which contains simulated vibrational data from an accelerometer placed in the cockpit of a helicopter. The data are sampled at a rate of 500 Hz for 10 seconds. Remove the linear trend in the data. Call rpmordermap to generate an interactive plot of the order-RPM map. Specify an order resolution of 0.005 orders.load('helidata.mat') rpmordermap(detrend(vib),fs,rpm,0.005) See Algorithms for a more detailed description of the RPM-vs.-time plot at the bottom of the figure.Move the crosshair cursors in the figure to determine the RPM and the RMS amplitude at order 0.053 after 6 seconds. Click the Zoom X button in the toolbar to zoom into the time region between 2 and 4 seconds. The gray rectangle in the RPM-vs.-time plot shows the region of interest. You can slide this region to pan through time. Click the Waterfall Plot button to display the order-RPM map as a waterfall plot. For improved visibility, rotate the plot clockwise using the Rotate Left button three times. Move the panner to the interval between 5 and 7 seconds.