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.

ordertrack

Seguimiento y extracción de magnitudes de orden de la señal de vibración

Descripción

ejemplo

mag = ordertrack(x,fs,rpm,orderlist) devuelve una matriz, , que contiene estimaciones de amplitud de la raíz-media cuadrada (RMS) dependientes del tiempo de un conjunto especificado de órdenes, , presenteen en la señal de entrada. se mide a un conjunto de velocidades de rotación expresadas en revoluciones por minuto. es la frecuencia de muestreo de medición en Hz.magorderlistxxrpmfs

[mag,rpm,time] = ordertrack(x,fs,rpm,orderlist) también devuelve vectores de RPM y valores de tiempo correspondientes a las columnas de .mag

[___] = ordertrack(x,fs,rpm,orderlist,rpmrefidx) extrae las magnitudes de orden mediante el filtro Vold-Kalman de primer orden y devuelve cualquiera de los argumentos de salida de sintaxis anteriores.

ejemplo

[___] = ordertrack(map,order,rpm,time,orderlist) calcula una matriz de estimaciones de magnitud a partir de un mapa de orden-RPM, , un vector de órdenes, y un vector de instantes de tiempo, .mapordertime Se utiliza para calcular , , y .rpmordermapmapordertime Las amplitudes y la escala devueltas son las mismas que en .map

ejemplo

[___] = ordertrack(___,Name,Value) especifica otras opciones utilizando pares.Name,Value Algunas de las opciones solo se aplican al procedimiento de seguimiento de Vold-Kalman.

ordertrack(___) sin argumentos de salida traza en la figura actual las órdenes dependientes del tiempo y los valores rpm.

Ejemplos

contraer todo

Cree una señal simulada muestreada a 600 Hz durante 5 segundos. El sistema que se está probando aumenta su velocidad de rotación de 10 a 40 revoluciones por segundo (o, equivalentemente, de 600 a 2400 revoluciones por minuto) durante el período de observación.

Genere las lecturas del tacómetro.

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

La señal consta de cuatro chirridos relacionados armónicamente con las órdenes 1, 0.5, 4 y 6. Las amplitudes de los chirridos son 1, 1/2, 2 y 2, respectivamente. Para generar los chirridos, utilice la regla trapezoidal para expresar la fase como la integral de la velocidad de rotación.

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

Extraiga y visualice las magnitudes de las órdenes.

ordertrack(x,fs,rpm,[o1 o2 o3 o4])

Cree una señal de vibración simulada que consista en dos órdenes de cruce correspondientes a dos motores diferentes. La señal se muestrea a 300 Hz durante 3 segundos. El primer motor aumenta su velocidad de rotación de 10 a 100 revoluciones por segundo (o, equivalentemente, de 600 a 6000 revoluciones por minuto) durante la medición. El segundo motor aumenta su velocidad de rotación de 50 a 70 revoluciones por segundo (o 3000 a 4200 revoluciones por minuto) durante el mismo período.

fs = 300; nsamp = 3*fs;  rpm1 = linspace(10,100,nsamp)'*60; rpm2 = linspace(50,70,nsamp)'*60;

La señal medida es de la orden 1.2 y la amplitud 2-2 con respecto al primer motor. Con respecto al segundo motor, la señal es de orden 0.8 y amplitud 4 -2.

x = [2 4]*sqrt(2).*cos(2*pi*cumtrapz([1.2*rpm1 0.8*rpm2]/60)/fs);

Haga que el primer motor excita una resonancia en el centro del rango de frecuencia.

rs = [1+1./(1+linspace(-10,10,nsamp).^4)'/2 ones(nsamp,1)];  x = sum(rs.*x,2);

Visualice los pedidos utilizando .rpmfreqmap

rpmfreqmap(x,fs,rpm1)

Calcular las magnitudes de orden para ambos motores en función de RPM. Utilice el algoritmo Vold-Kalman para desacoplar las órdenes de cruce.

ordertrack(x,fs,[rpm1 rpm2],[1.2 0.8],[1 2],'Decouple',true)

Analizar datos simulados de un acelerómetro colocado en la cabina de un helicóptero.

Cargue los datos del helicóptero. Las mediciones vibratorias, , se muestrean a una velocidad de 500 Hz durante 10 segundos.vib La inspección de los datos revela que tiene una tendencia lineal. Elimine la tendencia para evitar que degrade la calidad de la estimación de la orden.

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

Calcular el mapa order-RPM. Especifique una resolución de pedido de 0.005.

[map,order,rpm,time,res] = rpmordermap(vib,fs,rpm,0.005);

Calcular y trazar el espectro de orden promedio de la señal. Encuentre los tres picos más altos del espectro.

[spectrum,specorder] = orderspectrum(map,order);  [~,pkords] = findpeaks(spectrum,specorder,'SortStr','descend','Npeaks',3);  findpeaks(spectrum,specorder,'SortStr','descend','Npeaks',3)

Realice un seguimiento de las amplitudes de los tres picos más altos.

ordertrack(map,order,rpm,time,pkords)

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector de fila o columna.

Ejemplo: especifica un sinusoides incrustado en el ruido gaussiano blanco.cos(pi/4*(0:159))+randn(1,160)

Tipos de datos: double | single

Frecuencia de muestreo, especificada como un escalar positivo expresado en Hz.

Tipos de datos: double | single

Velocidades de rotación, especificadas como vector o matriz de valores positivos expresados en revoluciones por minuto. Si es un vector, debe tener la misma longitud que .rpmx Si es una matriz y se especifica, debe tener al menos dos columnas y cada columna debe tener tantos elementos como .rpmrpmrefidxrpmx

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

  • Si no tiene una señal de pulso de tacómetro, úselo para extraer de una señal de vibración.rpmtrackrpm

Ejemplo: especifica que un sistema gira inicialmente a 100 revoluciones por minuto y ejecuta hasta 3000 revoluciones por minuto en incrementos de 10.100:10:3000

Tipos de datos: double | single

Lista de órdenes, especificadas como vectores. no debe tener valores mayores que /(2 á max( /60)).orderlistfsrpm

Tipos de datos: double | single

Los índices de columna RPM, especificados como vectores del mismo tamaño que .orderlist La presencia de este argumento especifica que se va a utilizar el algoritmo Vold-Kalman.

Tipos de datos: double | single

Mapa Order-RPM, especificado como una matriz. Se utiliza para calcular mapas de RPM de orden.rpmordermap

Tipos de datos: double | single

Pedidos en la sintaxis de mapa order-RPM, especificada como vector. La longitud de debe ser igual al número de filas en .ordermap

Tipos de datos: double | single

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: extrae las órdenes especificadas simultáneamente y devuelve la amplitud máxima de cada orden.'Decouple',true,'Amplitude','peak'

Tipo de amplitud, especificado como el par separado por comas que consta de y uno de , , o .'Amplitude''rms''peak''power'

  • — Devuelve la amplitud de la raíz-media-cuadrada para cada orden estimada.'rms'

  • — Devuelve la amplitud máxima para cada orden estimada.'peak'

  • : devuelve el nivel de potencia para cada orden estimada.'power'

Escala de magnitud, especificada como el par separado por comas que consta de y uno o .'Scale''linear''dB'

  • — Devuelve valores de magnitud escalados en unidades lineales.'linear'

  • — Devuelve valores de magnitud escalados de forma rítmica y expresados en decibelios.'dB'

Ancho de banda aproximado de media potencia, especificado como el par separado por comas que consta de un escalar real o un vector real con el mismo número de elementos que .'Bandwidth'orderlist Los valores más pequeños de producir una salida suave y de banda estrecha.'Bandwidth' Sin embargo, esta salida podría no reflejar con precisión los cambios rápidos en la amplitud del orden. Este argumento solo se aplica al algoritmo Vold-Kalman.

Tipos de datos: double | single

Opción de desacoplamiento de modo, especificada como el par separado por comas que consta de y un valor lógico.'Decouple' Si esta opción se establece en , extrae simultáneamente las magnitudes de la orden, lo que le permite separar las órdenes estrechamente espaciadas o que se cruzan.trueordertrack Este argumento solo se aplica al algoritmo Vold-Kalman.

Tipos de datos: logical

Longitud de los segmentos superpuestos, especificada como el par separado por comas que consta de y un entero.'SegmentLength' Si especifica una longitud de segmento, divide la señal de entrada en segmentos.ordertrack A continuación, calcula las magnitudes de orden para cada segmento y combina los resultados para producir la salida. Si los segmentos son demasiado cortos, es posible que la función no capture correctamente eventos localizados, como cruce de órdenes. Este argumento solo se aplica al algoritmo Vold-Kalman.

Tipos de datos: double | single

Argumentos de salida

contraer todo

Matriz de magnitud de orden, devuelta como matriz.

Velocidades de rotación, devueltas como vector es un vector de valores positivos expresados en revoluciones por minuto.

Instantáneas de tiempo, devueltas como vector.

Referencias

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

[2] Feldbauer, Christian, and Robert Höldrich. “Realization of a Vold-Kalman Tracking Filter — A Least Squares Problem.” Proceedings of the COST G-6 Conference on Digital Audio Effects (DAFX-00). Verona, Italy, December 7–9, 2000.

[3] Vold, Håvard, and Jan Leuridan. “High Resolution Order Tracking at Extreme Slew Rates Using Kalman Tracking Filters.” Shock and Vibration. Vol. 2, 1995, pp. 507–515.

Introducido en R2016b