Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

rpmtrack

Seguimiento y extracción del perfil RPM de la señal de vibración

Descripción

ejemplo

rpm = rpmtrack(x,fs,order,p) devuelve una estimación dependiente del tiempo de la velocidad de rotación, a partir de una señal de vibración muestreada a una velocidad.rpmxfs

La matriz de dos columnas contiene un conjunto de puntos que se encuentran en una cresta de frecuencia de tiempo correspondiente a un determinado .porder Cada fila de especifica un par de coordenadas.p Si llama sin especificar ambos y , la función abre un trazado interactivo que muestra el mapa de frecuencia de tiempo y le permite seleccionar los puntos.rpmtrackorderp

Si tiene una señal de pulso de tacómetro, úsela para extraer directamente.tachorpmrpm

ejemplo

rpm = rpmtrack(xt,order,p) devuelve una estimación dependiente del tiempo de la velocidad de rotación de una señal almacenada en el calendario.MATLAB®xt

rpm = rpmtrack(___,Name,Value) especifica opciones adicionales para cualquiera de las sintaxis anteriores mediante argumentos de par nombre-valor. Las opciones incluyen el método utilizado para estimar el mapa de frecuencia de tiempo y la hora de inicio para el perfil RPM.

ejemplo

[rpm,tout] = rpmtrack(___) también devuelve el vector de tiempo en el que se calcula el perfil RPM.

ejemplo

rpmtrack(___) sin argumentos de salida traza el mapa de frecuencia de tiempo de potencia y el perfil de RPM estimado en una figura interactiva.

Ejemplos

contraer todo

Genere una señal de vibración con tres componentes armónicos. La señal se muestrea a 1 kHz durante 16 segundos. La frecuencia instantánea de la señal se asemeja al agotamiento y la reducción de un motor. Calcular la fase instantánea mediante la integración de la frecuencia utilizando la regla trapezoidal.

fs = 1000; t = 0:1/fs:16;  ifq = 20 + t.^6.*exp(-t); phi = 2*pi*cumtrapz(t,ifq); 

Los componentes armónicos de la señal corresponden a las órdenes 1, 2 y 3. El sinusoides de orden 2 tiene el doble de amplitud que los demás.

ol = [1 2 3]; amp = [5 10 5];  vib = amp*cos(ol'.*phi); 

Extraiga y visualice el perfil RPM de la señal utilizando un punto en la cresta order-2.

time = 3; order = 2; p = [time order*ifq(t==time)];  rpmtrack(vib,fs,order,p) 

Generar una señal que se asemeja a las vibraciones causadas por la aceleración de un motor de coche. La señal se muestrea a 1 kHz durante 30 segundos y contiene tres componentes armónicos de las órdenes 1, 2.4 y 3, con amplitudes 5, 4 y 0,5, respectivamente. Incruste la señal en el ruido gaussiano blanco de la varianza unitaria y guárdela en un horario MATLAB®. Multiplique la frecuencia instantánea por 60 para obtener un perfil de RPM. Trazar el perfil rpm.

fs = 1000; t = (0:1/fs:30)';  fit = @(a,x) (t-x).^6.*exp(-(t-x)).*((t-x)>=0)*a';  fis = fit([0.4 1 0.6 1],[0 6 13 17]); phi = 2*pi*cumtrapz(t,fis);  ol = [1 2.4 3]; amp = [5 4 0.5]'; vib = cos(phi.*ol)*amp + randn(size(t));  xt = timetable(seconds(t),vib);  plot(t,fis*60)

Utilice la función para derivar el perfil de RPM de la señal de vibración.rpmtrack Utilice cuatro puntos a intervalos de 5 segundos para especificar la cresta correspondiente a la orden 2.4. Mostrar un resumen del horario de salida.

ndx = (5:5:20)*fs; order = ol(2);  p = [t(ndx) order*fis(ndx)];  rpmest = rpmtrack(xt,order,p);  summary(rpmest)
RowTimes:      tout: 30001x1 duration         Values:             Min           0 sec                  Median        15 sec                 Max           30 sec                 TimeStep      0.001 sec   Variables:      rpm: 30001x1 double          Values:              Min       2.2204e-16             Median        4327.2             Max           8879.8 

Trazar el perfil de RPM reconstruido y los puntos utilizados en la reconstrucción.

hold on plot(seconds(rpmest.tout),rpmest.rpm,'.-') plot(t(ndx),fis(ndx)*60,'ok') hold off legend('Original','Reconstructed','Ridge points','Location','northwest')

Utilice el perfil RPM extraído para generar el mapa order-RPM de la señal.

rpmordermap(vib,fs,rpmest.rpm)

Reconstruya y trace las formas de onda de dominio de tiempo que componen la señal. Acérquese a un intervalo de tiempo que se produce después de que los transitorios se hayan deteriorado.

xrc = orderwaveform(vib,fs,rpmest.rpm,ol);  figure plot(t,xrc) legend([repmat('Order = ',[3 1]) num2str(ol')]) xlim([5 20])

Calcule el perfil de RPM de una hoja del ventilador a medida que se ralentiza después del apagado.

Se apaga un ventilador de techo industrial que gira a 20.000 rpm. La resistencia al aire (con una contribución insignificante por la fricción del rodamiento) hace que el rotor del ventilador se detenga en aproximadamente 6 segundos. Una cámara de alta velocidad mide la coordenada de una de las aspas del ventilador a una velocidad de 1 kHz.x

fs = 1000; t = 0:1/fs:6-1/fs;  rpm0 = 20000;

Idealice la hoja del ventilador como una masa puntual que rodea el centro del rotor en un radio de 50 cm. La hoja experimenta una fuerza de arrastre proporcional a la velocidad, lo que da como resultado la siguiente expresión para el ángulo de fase:

<math display="block">
<mrow>
<mi>ϕ</mi>
<mo>=</mo>
<mn>2</mn>
<mi>π</mi>
<msub>
<mrow>
<mi>f</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mi>T</mi>
<mo stretchy="false">(</mo>
<mn>1</mn>
<mo>-</mo>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mo>-</mo>
<mi>t</mi>
<mo>/</mo>
<mi>T</mi>
</mrow>
</msup>
<mo stretchy="false">)</mo>
<mo>,</mo>
</mrow>
</math>

Dónde

<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">f</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
</mrow>
</math>
es la frecuencia inicial y
<math display="inline">
<mrow>
<mi mathvariant="italic">T</mi>
<mo>=</mo>
<mn>0</mn>
<mo>.</mo>
<mn>75</mn>
</mrow>
</math>
segundo es el tiempo de descomposición.

a = 0.5; f0 = rpm0/60; T = 0.75;  phi = 2*pi*f0*T*(1-exp(-t/T));

Calcular y trazar las coordenadas - y -de la hoja.xy Añadir ruido gaussiano blanco de varianza

<math display="inline">
<mrow>
<mn>0</mn>
<mo>.</mo>
<msup>
<mrow>
<mn>1</mn>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</math>
.

x = a*cos(phi) + randn(size(phi))/10; y = a*sin(phi) + randn(size(phi))/10;  plot(t,x,t,y)

Utilice la función para determinar el perfil RPM.rpmtrack Tipo

rpmtrack(x,fs)

en la línea de comandos para abrir la figura interactiva.

Utilice el control deslizante para ajustar la resolución de frecuencia del mapa de frecuencia de tiempo a aproximadamente 11 Hz. Asuma que el componente de la señal corresponde a la orden 1 y fije la hora de finalización para la extracción de la cresta a 3.0 segundos. Utilice el cursor en cruz en el mapa de frecuencia de tiempo y el botón para agregar tres puntos en la cresta.Añadir (Alternativamente, haga doble clic en el cursor para agregar los puntos en las ubicaciones que elija.) Haga clic para realizar un seguimiento y extraer el perfil de RPM.Estimación

Verifique que el perfil RPM se descomponga exponencialmente. En la pestaña, haga clic y seleccione .exportarexportarGenerate MATLAB Script El script aparece en el Editor.

% MATLAB Code from rpmtrack GUI  % Generated by MATLAB 9.4 and Signal Processing Toolbox 8.0  % Generated on 18-Dec-2017 19:00:35  % Set sample rate fs = 1000.0000; % Set order of ridge of interest order = 1.0000; % Set ridge points on ridge of interest ridgePoints = [...     0.4501 179.8246;...     0.9944 88.5965;...     2.4161 11.4035]; % Estimate RPM [rpmOut,tOut] = rpmtrack(x,fs,order,ridgePoints,...     'Method','stft',...     'FrequencyResolution',11.1612,...     'PowerPenalty',Inf,...     'FrequencyPenalty',0.0000,...     'StartTime',0.0000,...     'EndTime',3.0000);

Ejecute el script. Visualice el perfil rpm en una gráfica semilogarítmica.

semilogy(tOut,rpmOut) ylim([500 20000])

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector.

Ejemplo: especifica un sinusoides ruidoso muestreado a 2o Hz.cos(pi/4*(0:159))+randn(1,160)

Tipos de datos: single | double

Frecuencia de muestreo, especificada como un escalar real positivo.

Tipos de datos: single | double

Orden de ridge, especificado como un escalar real positivo.

Tipos de datos: single | double

Puntos de cresta, especificados como una matriz de dos columnas que contiene una coordenada de frecuencia de tiempo en cada fila. Las coordenadas describen puntos en el mapa de frecuencia de tiempo que pertenecen a la cresta de la orden de interés.

Tipos de datos: single | double

Horario de entrada. debe contener tiempos de fila crecientes, finitos e igualmente espaciados de tipo .xtduration El calendario debe contener solo un vector de datos numéricos con valores de señal.

Si falta un horario o se duplican los puntos de tiempo, puede corregirlo con las sugerencias de .Clean Timetable with Missing, Duplicate, or Nonuniform Times (MATLAB)

Ejemplo: especifica una variable aleatoria muestreada a 1 Hz durante 4 segundos.timetable(seconds(0:4)',randn(5,1))

Tipos de datos: single | double

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: especifica que el mapa de frecuencia de tiempo se estima utilizando la transformación sincroprimida de Fourier, lo que permite hasta 10 decibelios de diferencia de potencia entre puntos adyacentes en una cresta.'Method','fsst','PowerPenalty',10

Tipo de mapa de frecuencia de tiempo utilizado en el proceso de estimación, especificado como el par separado por comas que consta de y uno o .'Method''stft''fsst'

  • — Utilice la transformación de Fourier de corta distancia para calcular un mapa de frecuencia de tiempo de espectrograma de potencia.'stft' Consulte para obtener más detalles sobre la transformación de Fourier de corta distancia.pspectrum

  • : utilice la transformación sincroprimida de Fourier para calcular un mapa de frecuencia de tiempo.'fsst' Consulte para obtener más detalles sobre la transformación sincronizada de Fourier.fsst

Ancho de banda de resolución de frecuencia utilizado para calcular el mapa de frecuencia de tiempo, especificado como el par separado por comas que consta de y un escalar numérico expresado en Hz.'FrequencyResolution'

Tipos de datos: single | double

Diferencia máxima de potencia entre los puntos de cresta adyacentes, especificada como el par separado por comas que consta de y un escalar numérico expresado en dB.'PowerPenalty'

Utilice este parámetro para asegurarse de que el algoritmo de extracción de cresta de encuentra la cresta correcta para el orden correspondiente. es útil cuando la cresta de orden de interés cruza otras crestas o está muy cerca en frecuencia a otras crestas, pero tiene un nivel de potencia diferente.rpmtrack'PowerPenalty'

Tipos de datos: single | double

Penalización en la extracción de cresta gruesa, especificada como el par separado por comas que consta de un escalar no negativo.'FrequencyPenalty'

Utilice este parámetro para asegurarse de que el algoritmo de extracción de crestas de evita grandes saltos que podrían hacer que la estimación de la cresta se mueva a una ubicación de frecuencia de tiempo incorrecta. es útil cuando desea diferenciar las crestas de orden que se cruzan o están estrechamente espaciadas en frecuencia.rpmtrack'FrequencyPenalty'

Tipos de datos: single | double

Tiempo de inicio para la estimación del perfil rpm, especificado como el par separado por comas que consta de y un numérico o escalar.'StartTime'duration

Tipos de datos: single | double | duration

Tiempo de finalización para la estimación del perfil rpm, especificado como el par separado por comas que consta de y un numérico o escalar.'EndTime'duration

Tipos de datos: single | double | duration

Argumentos de salida

contraer todo

Estimación de velocidad rotacional, devuelta como vector expresado en revoluciones por minuto.

Si la entrada es un horario, entonces también es un horario con una sola variable etiquetada .rpmtrackrpmrpm Los tiempos de fila del horario se etiquetan y son de tipo .toutduration

Valores de tiempo en los que se estima el perfil RPM, devueltos como vector.

Algoritmos

utiliza un método de estimación de dos pasos (grueso-fino):rpmtrack

  1. Calcular un mapa de frecuencia de tiempo y extraer una cresta de frecuencia de tiempo basado en un conjunto especificado de puntos en la cresta, , el correspondiente a esa cresta, y los parámetros de penalización opcionales y .xporder'PowerPenalty''FrequencyPenalty' La cresta extraída proporciona una estimación gruesa del perfil de RPM.

  2. Calcular la forma de onda de orden correspondiente a la cresta extraída utilizando un filtro Vold-Kalman y calcular un nuevo mapa de frecuencia de tiempo a partir de esta forma de onda. La cresta de pedido aislada del nuevo mapa de frecuencia de tiempo proporciona una estimación fina del perfil rpm.

Referencias

[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.

Consulte también

Funciones

Introducido en R2018a