Elimina los componentes armónicos de las señales de tiempo (eliminación de armónicos). Para ello, los datos se convierten del dominio del tiempo al dominio de rotación, donde la media y la resta de ciclos proporcionan la eliminación de armónicos deseada.
Sintaxis
HarmonicRemovalFilter(Signal, SpeedOrFundamentalFrequency, [ OrderForHarmonicRemoval = 1 ], [ NumberOfCyclesForAveraging = 15 ], [ SamplesPerRevolution = 512 ] [ , OutputOptions = HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_TIME_DOMAIN ])
La sintaxis de la función HarmonicRemovalFilter consta de los siguientes elementos:
Parte |
Descripción |
||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Signal |
La señal muestreada en el tiempo de la que deben eliminarse los componentes armónicos (armónicos). 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. |
||||||||||
SpeedOrFundamentalFrequency |
El componente rotativo utilizado como base para la eliminación de armónicos, representado como una señal de velocidad muestreada en el tiempo (a partir de la cual se deriva el dominio de rotación para el filtrado de armónicos). Alternativamente, la frecuencia fundamental fija subyacente. 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 individual, se supone que la señal que hay que filtrar se registró a esta velocidad de rotación constante o que hay que extraer componentes armónicos en relación con múltiplos de esta frecuencia fundamental fija. 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. |
||||||||||
OrderForHarmonicRemoval |
Define el orden (es decir, múltiplos de la velocidad de rotación o múltiplos de la frecuencia fundamental) que debe eliminarse de la señal temporal junto con todos los componentes armónicos. La elección de 4 significa, por ejemplo, que se eliminan los órdenes 4, 8, 12, 16, 20, etc. Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos numéricos. 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 1 si no se especifica el argumento. |
||||||||||
NumberOfCyclesForAveraging |
Para la eliminación de armónicos, la señal que se va a filtrar se transforma primero en el dominio de rotación, donde se realiza una media de ciclos móvil y una sustracción. Este valor determina el número de ciclos a promediar en el dominio de rotación para calcular el respectivo orden armónico promediado. Cuanto mayor sea el valor, mayor será la selectividad del filtro. 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 15 si no se especifica el argumento. |
||||||||||
SamplesPerRevolution |
Para eliminar los armónicos, la señal que hay que filtrar se transforma primero en el dominio de rotación. Este valor determina el muestreo de la señal transformada en el 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. Por lo tanto, debe fijarse un valor tal que todos las demás ordenes por encima de la mitad del valor sean insignificantes. De lo contrario, se producen efectos Aliasing (según el teorema de muestreo). En cambio, los valores más pequeños reducen el tiempo de cálculo del algoritmo. El valor también debe establecerse de modo que SamplesPerRevolution / OrderForHarmonicRemoval sea un número entero. Si no se cumple esta última condición, se calculan automáticamente valores aproximados para el número de puntos de datos por revolución y el orden a filtrar, que cumplen esta condición. El valor aproximado calculado por el algoritmo para la orden a filtrar coincide entonces con OrderForHarmonicRemoval con una precisión de al menos 2 decimales. En este caso, el valor aproximado calculado por el algoritmo para el número de puntos de datos por revolución tiene un límite inferior igual al valor de SamplesPerRevolution. Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos enteros. El valor debe ser mayor o igual que 1. 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 512 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 filtrada en el dominio de rotación (sin armónicos) y la señal del tiempo filtrada transformada de nuevo en el dominio de tiempo, el argumento debe tener el valor HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_REVOLUTION_DOMAIN + HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_TIME_DOMAIN. El argumento OutputOptions puede tener los siguientes valores:
Se establece el valor predeterminado HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_TIME_DOMAIN si no se especifica el argumento. |
Notas
El algoritmo del proceso de transformación puede describirse esquemáticamente como sigue (véanse, por ejemplo, [1], [2] o [3]):
1) Transformación en el dominio de rotación.: En primer lugar Signal transformado del dominio del tiempo al dominio de rotación. (de forma análoga al método de la función RevolutionSyncSampling en el que aquí se elige una transformación lineal). El dominio de rotación. se calcula en particular a partir del argumento SpeedOrFundamentalFrequency. Además, para la transformación se requieren los argumentos necesarios para la función RevolutionSyncSampling en cuanto al número de puntos de datos por revolución.
2) Promediado cíclico: En el dominio de rotación., se calcula una media (móvil) sobre un número de ciclos definido por el usuario. Todo lo que gira sincrónicamente con el eje es un armónico que se incluye en este ciclo de promediado. Los componentes que no giran sincrónicamente con el eje de primer orden se promedian. Por lo tanto, el ciclo de promediado consiste en datos que están sincronizados y armonizados con el tacómetro subyacente (es decir, con SpeedOrFundamentalFrequency). En un motor de cuatro tiempos, por ejemplo, se produce una combustión cada dos revoluciones del cigüeñal. Por tanto, un ciclo consta de 2 revoluciones. Por lo tanto, si desea eliminar el evento de combustión incluyendo los componentes armónicos, debe establecer OrderForHarmonicRemoval al valor 0,5.
3) Sustracción cíclica: A continuación, el ciclo medio (móvil) se resta de cada ciclo individual para realizar la eliminación de armónicos deseada. A continuación, se obtiene la señal filtrada en el dominio de rotación. (sin armónicos del orden filtrado).
4) Transformación inversa en el dominio de tiempo: Por último, la señal filtrada en el dominio de rotación. se transforma de nuevo en el dominio de tiempo.
A modo de ejemplo, consideremos el espectro de orden de una señal de tiempo calculada mediante una rampa de arranque:

Con ayuda de la función HarmonicRemovalFilter se puede utilizar, por ejemplo, para eliminar el orden 8,5 junto con todos los componentes armónicos:

Si el resultado es una lista, se puede acceder a los resultados con los siguientes nombres de elementos de lista:
Constante |
Significado |
|---|---|
.["Signal_over_Time"] |
La señal filtrada se transforma de nuevo en el dominio del tiempo original (sin armónicos). |
.["Signal_over_Revolutions"] |
La señal filtrada transformada en el dominio de rotación (sin armónicos). |
.["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.
Nota Según el teorema del muestreo, teóricamente todos los órdenes hasta orderMax = 0.5* SamplingRate(Signal) / Maximum(Speed) pueden detectarse y analizarse. SamplesPerRevolution por lo que debe fijarse un valor superior al doble de orderMax.
Disponibilidad
Opción Análisis de órdenes
Ejemplos
HarmonicRemovalFilter(Signal, Speed, 8.5)
Elimina el orden 8,5º (en relación con la señal de velocidad de rotación) junto con todos los componentes armónicos. El resultado es la señal filtrada en el dominio del tiempo (sin los armónicos correspondientes).
HarmonicRemovalFilter(Signal, 12 Hz, 1)
Elimina la frecuencia fundamental de 12 Hz y sus componentes armónicos de una señal. El resultado es la señal filtrada en el dominio del tiempo.
Dim SyncSampling = RevolutionSyncSampling(Signal, Speed, 512,,,,REVSYNCSAMPLING_OUTPUT_ALL) // Step 1: transform to rev. domain
Dim n = 512/4
Dim cycles = Reshape(SyncSampling.["Signal_over_Revolutions"], {NumberOfRows(SyncSampling.["Signal_over_Revolutions"])/n, n})
Dim avgeragedCycles = Mean(cycles, MEAN_ARITHMETIC + PROCESS_ROWS + CALC_MOVING, 25) // Step 2: cycle averaging
Dim harmonicRemoval = Signal(Reshape(cycles - avgeragedCycles), SyncSampling.["Time_over_Revolutions"]) // Step 3: cycle substraction
RemoveVoidValues(Sample(harmonicRemoval, Signal.X)) // step 4: transform back to time domain
Código FPScript equivalente para HarmonicRemovalFilter(Signal, Speed, 4, 25, 512).
Véase también
Función RevolutionSyncSampling
Objeto de análisis Filtro de armónicos
Objeto de análisis Análisis de órdenes síncronas de revolución
Objeto de análisis Muestreo sincronizado por revolución
Bibliografía
[1] B. Peeters, B. Cornelis, K. Janssens, H. Van der Auweraer: Removing disturbing harmonics in Operational Modal Analysis. En: Proceedings of the International Operational Modal Analysis Conference IOMAC, Copenhagen, Denmark. 2007.
[2] R.B. Randall: State of the art in monitoring rotating machinery. En: Proceedings of the International Seminar on Modal Analysis ISMA, Leuven, Belgium. 2002.
[3] E. Bechhoefer, M. Kingsley: A Review of Time Synchronous Average Algorithms. En: Proceedings of the Annual Conference of the Prognostics and Health Management Society, San Diego, USA. 2009.