Saltar navegación

Documentación de FlexPro 2025

RevolutionSyncSampling

Transforma una señal muestreada en el tiempo al dominio de rotación, es decir, la señal de tiempo se transforma al dominio de velocidad de rotación muestreada equidistantemente mediante remuestreo. Procedimiento eficaz para realizar un análisis de órdenes, ya que el espectro de frecuencias de la señal convertida al dominio de rotación proporciona directamente el espectro de órdenes. Del mismo modo, los recorridos de órdenes (temporales) pueden calcularse directamente utilizando el filtro paso banda convencional en el dominio de rotación.

Sintaxis

RevolutionSyncSampling(Signal, Speed, [ SamplesPerRevolution = 0 ], [ SamplesPerRevolutionLimit = 256 ], [ ResampleMethod = REVSYNCSAMPLING_RESAMPLE_LINEAR ], [ ResampleFactor = 2 ] [ , OutputOptions = REVSYNCSAMPLING_OUTPUT_SIGNAL ])

 

La sintaxis de la función RevolutionSyncSampling consta de los siguientes elementos:

Parte

Descripción

Signal

La señal muestreada en el tiempo, que debe transformarse al dominio de rotación equidistante. La unidad del componente X debe ser ser compatible con la unidad segundo (si está activado el monitoreo de unidades). Si no se especifica ninguna unidad del componente X o el monitoreo de unidades está desactivado, la unidad se interpreta siempre en segundos.

Las estructuras de datos permitidas son Señal. Se permiten todos los tipos de datos reales excepto Valor booleano, Tiempo de calendario y Intervalo de tiempo.

No se permiten valores inválidos en este argumento.

Se aplican restricciones adicionales al componente X. Los valores deben ser monótonos crecientes. No se permiten valores inválidos en este argumento.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Speed

La señal de velocidad de rotación muestreada en el tiempo de la que se deriva el rango de la revolución. La unidad del componente Y debe ser compatible con la unidad 1/min (o RPM = revoluciones por minuto) (si está activado el monitoreo de unidades). Si no se especifica ninguna unidad para el componente Y o se desactiva el monitoreo de unidades, la unidad se interpreta siempre como 1/min. La unidad del componente X debe ser ser compatible con la unidad segundo (si está activado el monitoreo de unidades). Si no se especifica ninguna unidad del componente X o el monitoreo de unidades está desactivado, la unidad se interpreta siempre en segundos. La frecuencia de muestreo no tiene que coincidir con la frecuencia de muestreo de Signal. Si es un valor escalar, se asume que la señal que se va a transformar se registró a velocidad de rotación constante.

Las estructuras de datos permitidas son Valor escalar y Señal. Se permiten todos los tipos de datos reales excepto Valor booleano, Tiempo de calendario y Intervalo de tiempo. El argumento se transforma en la unidad min^-1.

No se permiten valores inválidos en este argumento.

Se aplican restricciones adicionales al componente X. Los valores deben ser monótonos crecientes. No se permiten valores inválidos en este argumento.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

SamplesPerRevolution

Determina el muestreo de la señal transformada al dominio de rotación (número de puntos de datos por revolución). La mitad del valor determina el orden máximo que puede calcularse en general según el teorema de muestreo mediante el análisis de Fourier. Debe fijarse un valor tal que todas las demás órdenes por encima de la mitad del valor sean insignificantes. De lo contrario, se producen efectos Aliasing (según el teorema de muestreo). El valor predeterminado 0 selecciona un valor automático para que el orden teóricamente más alto que se produce en la señal pueda seguir calculándose mediante el análisis de Fourier en el espectro de órdenes. Para limitar el tamaño del conjunto de datos resultante, el valor calculado automáticamente se limita mediante SamplesPerRevolutionLimit.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos enteros.

El valor debe ser mayor o igual que 0.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Se establece el valor predeterminado 0 si no se especifica el argumento.

SamplesPerRevolutionLimit

Límite superior para el cálculo automático de SamplesPerRevolution. Debe fijarse un valor tal que todas las demás órdenes por encima de la mitad del valor sean insignificantes. De lo contrario, se producen efectos Aliasing (según el teorema de muestreo). El argumento no se tiene en cuenta si SamplesPerRevolution no se calcula automáticamente, es decir, si para SamplesPerRevolution se ha seleccionado un valor superior a 0.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos enteros.

El valor debe ser mayor que 0.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Se establece el valor predeterminado 256 si no se especifica el argumento.

ResampleMethod

Especifica el procedimiento de remuestreo con el que se analizará la señal de tiempo en los puntos de tiempo (no equidistantes) de los puntos de soporte de revolución equidistantes antes de transferirla al dominio de rotación.

El argumento ResampleMethod puede tener los siguientes valores:

Constante

Significado

REVSYNCSAMPLING_RESAMPLE_LINEAR

La señal de tiempo se analiza mediante interpolación lineal en los puntos de tiempo (no equidistantes) de los puntos de soporte de revolución equidistantes antes de transferirla al dominio de rotación. La transformación es, por tanto, rápida, pero puede causar efectos Aliasing en el cáculo posterior del espectro de órdenes.

REVSYNCSAMPLING_RESAMPLE_SPLINE

La señal de tiempo se analiza mediante interpolación de spline en los puntos de tiempo (no equidistantes) correspondientes a los puntos de soporte de revolución equidistantes antes de transferirla al dominio de rotación. En comparación con el remuestreo lineal, la interpolación de spline es ligeramente más lenta, pero se reducen los efectos Aliasing.

REVSYNCSAMPLING_RESAMPLE_FFT

La señal de tiempo se analiza mediante remuestreo FFT en los puntos de tiempo (no equidistantes) correspondientes a los puntos de soporte de revolución equidistantes antes de transferirla al dominio de rotación. La señal de tiempo se transforma primero al dominio de la frecuencia, donde se añaden ceros, y luego se transforma de nuevo al dominio del tiempo. El remuestreo mediante la transformada de Fourier conduce a un resultado casi ideal, ya que no se añaden componentes de señal de alta frecuencia. Esto elimina prácticamente los efectos Aliasing al calcular el espectro de órdenes, pero el tiempo de cálculo aumenta considerablemente.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Se establece el valor predeterminado REVSYNCSAMPLING_RESAMPLE_LINEAR si no se especifica el argumento.

ResampleFactor

Especifica el factor por el cual se incrementa la frecuencia de muestreo de la señal de tiempo para los procedimientos de remuestreo REVSYNCSAMPLING_RESAMPLE_SPLINE y REVSYNCSAMPLING_RESAMPLE_FFT. El argumento se ignora si se selecciona el procedimiento de remuestreo REVSYNCSAMPLING_RESAMPLE_LINEAR.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos enteros.

El valor debe ser mayor o igual que 2.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Se establece el valor predeterminado 2 si no se especifica el argumento.

OutputOptions

Especifica qué resultados deben devolverse. Si hay varios resultados, se emiten en forma de lista. Si, por ejemplo, se desea emitir la señal transformada al dominio de rotación así como los puntos de tiempo calculados para los puntos de soporte de revolución, el argumento debe tener el valor REVSYNCSAMPLING_OUTPUT_SIGNAL + REVSYNCSAMPLING_OUTPUT_TIME.

El argumento OutputOptions puede tener los siguientes valores:

Constante

Significado

+ REVSYNCSAMPLING_OUTPUT_ALL

Todas las salidas disponibles.

+ REVSYNCSAMPLING_OUTPUT_SIGNAL

La señal transformada al dominio de rotación. El resultado es una señal.

+ REVSYNCSAMPLING_OUTPUT_SPEED

La señal de velocidad de rotación transformada al dominio de rotación. El resultado es una señal.

+ REVSYNCSAMPLING_OUTPUT_TIME

Los puntos (no equidistantes) en el tiempo asociados a los puntos de apoyo de la revolución. El resultado es una señal.

Se establece el valor predeterminado REVSYNCSAMPLING_OUTPUT_SIGNAL si no se especifica el argumento.

Notas

El algoritmo del proceso de transformación puede describirse esquemáticamente de la siguiente manera:

En la bibliografía, el procedimiento también se denomina Synchronous Angular Sampling, Computed Order Tracking, Synchronous Sampling o Adaptive Resampling; véase [1], [2], [3], [4], [5] y [6]. Se trata de un procedimiento eficaz para realizar un análisis de órdenes, ya que el espectro de frecuencia (temporal) habitual de la señal transformada al dominio de rotación proporciona ahora directamente el espectro de órdenes:

Del mismo modo, el recorrido de las órdenes individuales puede determinarse directamente mediante un filtro paso banda habitual (por ejemplo, con la ayuda de un filtro paso banda IIR adecuado) en el dominio de rotación (aquí se muestra el recorrido RMS en el sentido de las agujas del reloj de los órdenes filtrados):

Nota: El análisis de órdenes mediante el remuestreo sincronizado con la velocidad de rotación (revolution synchronous resampling) es muy flexible y también puede realizarse para conjuntos de datos de velocidad de rotación ruidosos y no monótonos.

Se puede acceder a los resultados con los siguientes nombres de los elementos de lista:

Constante

Significado

.["Signal_over_Revolutions"]

La señal transformada al dominio de rotación.

.["Speed_over_Revolutions"]

La señal de velocidad de rotación transformada al dominio de rotación.

.["Time_over_Revolutions"]

Los puntos (no equidistantes) en el tiempo asociados a los puntos de apoyo de la revolución.

También puede utilizar siempre la sintaxis Formula.ListElementName.

Según el teorema del muestreo, teóricamente todos los órdenes hasta orderMax = 0.5*SamplingRate(Signal)/Maximum(Speed) pueden detectarse y analizarse. Por lo tanto, si SamplesPerRevolution se calcula automáticamente, este valor se establece en un valor superior al doble de orderMax. Esto garantiza que todos los órdenes hasta orderMax pueden calcularse en el espectro de órdenes mediante el análisis de Fourier, evitando así en la medida de lo posible los efectos de Aliasing.

Disponibilidad

Opción Análisis de órdenes

Ejemplos

RevolutionSyncSampling(Signal, Speed)

Transforma una señal basada en el tiempo en el dominio de rotación.

Dim samplesPerRevolution = 64
Dim sigOverRev = RevolutionSyncSampling(Signal, Speed, samplesPerRevolution)
STFTSpectrum(sigOverRev, SPECTRUM_RMSAMPLITUDE,,, 8*samplesPerRevolution,,, 0)
 

Calcula el espectro de órdenes de la señal muestreada sincronizada con la velocidad de rotación utilizando el espectro de tiempo-frecuencia (STFTSpectrum-). El espectro de órdenes se calcula hasta el orden 32 (= samplesPerRevolution/2) y tiene una resolución del orden de 1/8. Nota: Si la señal original contenía órdenes relevantes superiores a 32, estos distorsionarán el espectro de órdenes. El resultado son efectos de Aliasing.

Dim sigOverRev = RevolutionSyncSampling(Signal, Speed, 0, 256)
STFTSpectrum(sigOverRev, SPECTRUM_RMSAMPLITUDE,,, 16*SamplingRate(sigOverRev),,, 0)
 

Calcula el espectro de órdenes de la señal muestreada sincronizada con la velocidad de rotación con una resolución del orden de 1/16. El número de puntos de datos por revolución se calcula automáticamente (pero está limitado a 256). Por lo tanto, en el análisis de Fourier posterior se puede seguir calculando el orden teóricamente mayor de la señal.

Dim samplesPerRevolution = 64
Dim sigOverRev = RevolutionSyncSampling(Signal, Speed, samplesPerRevolution)
Dim coeff = IIRPeakFilter(3, 0.5, samplesPerRevolution) // order = 3, bandwidth = 0.5
Dim filteredOrder = Filter(sigOverRev, coeff, TRUE)
Sample(filteredOrder, Signal.X)
 

Calcula la evolución temporal del tercer orden (por ejemplo, para análisis acústicos). El tercer orden filtrado se calcula utilizando un filtro paso banda IIR habitual en el dominio de rotación con una frecuencia central de banda de 3 y un ancho de banda de orden (simétrico) de 0,5. Por último, los datos se transforman de nuevo a la base de tiempo original.

Dim samplesPerRevolution = 64
Dim sigOverRev = RevolutionSyncSampling(Signal, Speed, samplesPerRevolution)
Dim coeff = IIRPeakFilter(3, 0.5, samplesPerRevolution) // order = 3, bandwidth = 0.5
Dim filteredOrder = Filter(sigOverRev, coeff, TRUE)
XOffsetScale(Mean(filteredOrder, MEAN_SQUARE + CALC_BLOCK, 128 * samplesPerRevolution)[0,-2], 128/2.)
 

Calcula el recorrido RMS en sentido horario del tercer orden de la señal muestreada sincronizada con la velocidad de rotación (tamaño del bloque = 128 revoluciones). El tercer orden filtrado se calcula utilizando un filtro paso banda IIR habitual en el dominio de rotación con una frecuencia central de banda de 3 y un ancho de banda de orden (simétrico) de 0,5.

RevolutionSyncSampling(Signal, Speed,,,,, REVSYNCSAMPLING_OUTPUT_SIGNAL + REVSYNCSAMPLING_OUTPUT_TIME)

Se devuelve la señal transformada al dominio de rotación y los puntos de tiempo asociados a las revoluciones.

Dim rev = ChangeUnit(Integral(Speed), "1") // Step 1
Dim rev_equid = (rev[-1]*128, 0, 1/128) // Step 2
Dim t_nonequid = Sample(rev.X, rev.Y, rev_equid, true)
Dim sig = Sample(Signal, t_nonequid, true) // Step 3
Signal(sig, rev_equid)
 

Código FPScript equivalente a RevolutionSyncResampling(Signal, Speed, 128,, REVSYNCSAMPLING_RESAMPLE_LINEAR).

Dim rev = ChangeUnit(Integral(Speed), "1") // Step 1
Dim rev_equid = (rev[-1]*128, 0, 1/128) // Step 2
Dim t_nonequid = Sample(rev.X, rev.Y, rev_equid, true)
Dim sig = Sample(Resample(Signal, 4, RESAMPLE_FFT), t_nonequid, true) // Step 3
Signal(sig, rev_equid)
 

Código FPScript equivalente a RevolutionSyncResampling(Signal, Speed, 128,, REVSYNCSAMPLING_RESAMPLE_FFT, 4).

Véase también

Función HarmonicRemovalFilter

Función Sample

Función Spline

Función Resample

Función STFTSpectrum

Función OrderCuts

Función IIRFilter

Función IIRPeakFilter

Función Integral

Opción Análisis de órdenes

Objeto de análisis Muestreo sincronizado por revolución

Objeto de análisis Análisis de órdenes síncronas de revolución

Objeto de análisis Filtro de órdenes

Objeto de análisis Análisis espectral de tiempo-frecuencia

Bibliografía

[1] K. R. Fyfe, E. D. S. Munck: Analysis of computed order tracking. En: Mechanical Systems and Signal Processing, Vol. 11, Issue 2, Pages 187-205. 1997.

[2] Jürgen Helmut Funck: Synchronous data acquisition with wireless sensor networks. En: Chichester, UK: John Wiley and Sons. 2011.

[3] Bonnardot, F. et al.: Use of the acceleration signal of a gearbox in order to perform angular resampling (with limited speed fluctuation). En: Mechanical Systems and Signal Processing, Vol. 19, Isuue 4, Pages 766–785. 2005.

[4] J. Blough: Adaptive Resampling - Transforming from the time to the Angle domain. En: 24th Conference and Exposition on Structural Dynamics, IMAC-XXIV. 2006.

[5] J. Blough: A survey of DSP methods for rotating machinery analysis, what is needed, what is available. En: Journal of Sound and Vibration, Vol. 262, Issue 3, Pages 707-720. 2003.

[6] A. Brandt: Noise and Vibration Analysis: Signal Analysis and Experimental Procedures. En: John Wiley and Sons, Ltd., Chichester. 2011.