Promediado síncrono en el tiempo
Referencias: McFadden 1987
Una máquina rotativa repite su firma una vez por revolución. Enterrada en el
ruido de banda ancha y en los tonos del resto de los ejes, esa forma de onda
repetitiva es difícil de leer directamente. El promediado síncrono en el
tiempo (TSA) la recupera: dado el periodo de una revolución, trocea el
registro en bloques sucesivos de longitud y los promedia. Toda componente
síncrona con se refuerza; todo lo asíncrono, el ruido y los armónicos de
ejes no relacionados, se promedia hasta desaparecer. time_synchronous_average
implementa el modelo de P. D. McFadden, A revised model for the extraction of
periodic waveforms by time domain averaging (1987).
Dos cosas que conviene leer por separado. A la izquierda, la ley de haciendo su trabajo: el ruido de un solo periodo tiene un valor eficaz de 0,83 y, tras 40 promedios, la forma de onda promediada se aparta de la verdadera 0,138 en valor eficaz, un factor 6,0 frente al que predice la ley. A la derecha, la elección que no cuesta nada: en el orden 32,05 el peine de vale 6×10⁻¹⁴, mientras que la potencia de dos habitual, , todavía deja pasar 0,19 del tono interferente. Aquí veinte promedios le ganan a treinta y dos, y solo por dónde cae el nodo.
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import ( comb_filter_response, noise_signal, time_synchronous_average,)
fs = 8192.0period = 1.0 / 32.0 # una revolución: 256 muestras a esta frecuenciam, n_avg = 256, 40phase = np.arange((n_avg + 1) * m) / mperiodic = ( np.cos(2.0 * np.pi * phase) + 0.5 * np.cos(2.0 * np.pi * 3.0 * phase + 0.4) - 0.3 * np.cos(2.0 * np.pi * 6.0 * phase))recording = periodic + noise_signal(fs, phase.size / fs, rms=0.9, seed=11)res = time_synchronous_average(recording, fs, period, n_averages=n_avg)
fig, (ax0, ax1) = plt.subplots(1, 2, figsize=(11, 4.6))t_ms = 1e3 * res.timesax0.plot(t_ms, recording[:m], color="#cccccc", label="Un periodo ruidoso")ax0.plot(t_ms, res.period_waveform, color="#1f77b4", lw=1.8, label=f"Promedio de N = {n_avg} periodos")ax0.plot(t_ms, periodic[:m], "--", color="#d62728", label="Forma verdadera")ax0.set_xlabel("Tiempo [ms]"); ax0.set_ylabel("Amplitud"); ax0.legend()
orders = np.linspace(31.0, 33.0, 4000)freqs = orders / periodax1.plot(orders, comb_filter_response(freqs, period, 32), color="#2ca02c", label="N = 32 (potencia de dos)")ax1.plot(orders, comb_filter_response(freqs, period, 20), color="#1f77b4", label="N = 20 (nodo en 32,05)")ax1.axvline(32.05, color="#d62728", ls=":", label="Tono interferente")ax1.set_xlabel("Frecuencia [órdenes]"); ax1.set_ylabel("Magnitud del filtro peine")ax1.set_ylim(0, 1.05); ax1.legend()plt.show()El método .plot() dibuja la forma de onda promediada y el filtro peine en una
sola llamada:
res.plot() # etiquetas en inglés; res.plot(language="es") en españolAntes del álgebra, el procedimiento en sí: un disparo marca cada revolución, el registro se trocea en cada disparo, y los bloques alineados se promedian: lo que se repite con el periodo sobrevive intacto mientras el contenido asíncrono se atenúa.
1. El promedio es un filtro peine
Sección titulada «1. El promedio es un filtro peine»Promediar periodos sucesivos (McFadden Ec. 5),
es, en el dominio de la frecuencia, la multiplicación del espectro de la señal por un filtro peine (Ec. 8). Su magnitud (Ec. 9) es el núcleo de Dirichlet
El peine tiene un diente de altura unidad en cada armónico (los
órdenes ), independiente de : las componentes
síncronas con el periodo pasan intactas. Entre los dientes tiene nodos en
para todo que no sea múltiplo de , donde la respuesta es
exactamente cero. comb_filter_response evalúa esta forma cerrada
directamente:
import numpy as npfrom phonometry import comb_filter_response
period = 1.0 / 32.0comb_filter_response(np.array([16.0 / period]), period, 8) # 1.0 en un dientecomb_filter_response(np.array([0.25 / period]), period, 2) # 1/sqrt(2)comb_filter_response(np.array([0.5 / period]), period, 2) # 0.0 en un nodoSynchronousAverageResult lleva la respuesta sobre los primeros armónicos en
comb_frequencies y comb_response, de modo que la forma del filtro que el
promedio aplicó está disponible junto a la forma de onda recuperada.
2. El ruido cae como la raíz cuadrada del número de promedios
Sección titulada «2. El ruido cae como la raíz cuadrada del número de promedios»El ruido asíncrono de varianza promediado sobre periodos tiene
varianza residual : la desviación típica residual cae como
, y la relación señal-ruido en amplitud mejora en . Eso
es una reducción de potencia de dB, declarada como
noise_reduction_db, con la ganancia en amplitud como
amplitude_snr_gain:
res = time_synchronous_average(recording, fs, period, n_averages=100)res.noise_reduction_db # 20.0 dB = 10*log10(100)res.amplitude_snr_gain # 10.0 = sqrt(100)res.plot(language="es") # forma de onda promediada + el peine aplicadoLa ley medida de principio a fin: el error RMS de la forma de onda promediada de una firma de engranaje de tres armónicos en ruido de varianza unidad cae a lo largo de la línea ideal a medida que el número de periodos promediados crece de 1 a 128.
Mostrar el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import time_synchronous_average
fs = 8192.0samples = 256period = samples / fsm = np.arange(samples) / fstrue = (np.cos(2 * np.pi * m / period) + 0.5 * np.cos(2 * np.pi * 3 * m / period + 0.7) + 0.25 * np.cos(2 * np.pi * 5 * m / period + 1.1))rng = np.random.default_rng(5)recording = np.tile(true, 128) + rng.standard_normal(128 * samples)
counts = [1, 2, 4, 8, 16, 32, 64, 128]errors = []for n in counts: res = time_synchronous_average(recording[:n * samples], fs, period, n_averages=n) errors.append(np.sqrt(np.mean((res.period_waveform - true) ** 2)))
# Una línea: la forma de onda promediada y el peine que aplicó:res.plot(language="es")plt.show()
# La ley sqrt(N) a mano: error medido contra la línea ideal:fig, ax = plt.subplots()ax.loglog(counts, errors, "o-", label="error RMS medido")ax.loglog(counts, 1 / np.sqrt(np.array(counts)), "r--", label="sigma/sqrt(N) ideal")ax.set(xlabel="Número de promedios N", ylabel="Error RMS")ax.legend()plt.show()Esta ley es la ideal: se cumple cuando el ruido no está correlacionado de un periodo
al siguiente, de modo que el ruido de color o síncrono correlacionado entre periodos
no tiene por qué seguirla. El residual (entrada menos la reconstrucción
periódica sobre el tramo analizado) y su residual_rms indican, por tanto, el
ruido realmente restante una vez eliminada la componente síncrona.
3. Elegir N para rechazar un orden interferente
Sección titulada «3. Elegir N para rechazar un orden interferente»Como hay un diente sobre todos los órdenes enteros, el TSA deja pasar los armónicos del eje objetivo pero también cualquier tono que caiga en un orden entero. Un tono en un orden no armónico solo es atenuado por el peine, no eliminado, y cuánto depende de dónde caiga el nodo más cercano. El resultado del modelo revisado de McFadden es que tal interferente se rechaza mejor eligiendo de modo que un nodo caiga exactamente sobre él, es decir, el menor con entero, en vez de con el número de promedios potencia de dos habitual. Un nodo exacto solo existe cuando el orden es racional, de modo que algún finito hace entero; para un orden irracional o solo estimado, elige el cuyo nodo caiga más cerca del orden interferente.
Su propio ejemplo es un tono en 32,05 órdenes. Con el producto es entero, así que un nodo del peine cae sobre el tono y lo rechaza en más de 100 dB. La elección común da , que se sitúa en un lóbulo lateral: el tono apenas se toca. La figura de arriba muestra ambos peines en torno al orden 32; el promedio de extremo a extremo lo confirma:
# 8.º orden verdadero más un interferente fuerte en 32,05 órdenesphase = np.arange(41 * 256) / 256recording = np.cos(2 * np.pi * 8.0 * phase) + 0.7 * np.cos(2 * np.pi * 32.05 * phase)
leak_20 = time_synchronous_average(recording, fs, period, n_averages=20)leak_32 = time_synchronous_average(recording, fs, period, n_averages=32)# leak_20.period_waveform coincide con el 8.º orden limpio; leak_32 noAsí que un número de promedios potencia de dos, por conveniente que sea, no es en general la elección óptima: los órdenes interferentes presentes en la máquina deberían fijar .
De dónde sale el periodo, y cuán estable tiene que ser
Sección titulada «De dónde sale el periodo, y cuán estable tiene que ser»Todo lo anterior da por sabido. En una medición real hay que medir , y
la suposición escondida detrás de un period escalar es que el eje mantiene ese
periodo durante todo el registro, que es el modo de fallo dominante de la
técnica y falla en silencio.
Conseguir el periodo. Instrumenta el eje con un pulso por revolución: un sensor óptico apuntando a una única tira de cinta reflectante, una sonda inductiva sobre un chavetero, o la salida de índice de un encóder. Registra ese canal a la vez que la vibración y toma como el intervalo medio entre pulsos a lo largo del tramo analizado. No lo tomes de la velocidad de placa: una placa de características es un valor nominal, no una medida, y una máquina en carga no está en su placa.
Cuán estable tiene que ser. El álgebra del peine del §1 lo responde con exactitud. Un error relativo de periodo mueve el -ésimo armónico del diente del peine en el orden al orden , donde el mismo núcleo de Dirichlet lo atenúa en
de modo que la pérdida crece con el número de armónico y con el número de promedios, justo las dos cosas que uno quiere grandes. Mantener esa pérdida por debajo de 1 dB pide aproximadamente . Promediar 40 revoluciones y esperar el 10.º armónico intacto exige por tanto que el periodo sea correcto con un error menor que , es decir, una estabilidad de velocidad del 0,06 %; el orden 20 con exige el 0,03 %. Una máquina que mantiene la velocidad al 1 % pierde todo lo que hay por encima del primer orden o el segundo, de forma progresiva, y la forma de onda resultante parece suave, que es lo que se lee como un engranaje sano.
Los remedios, por orden. Toma el periodo del tacómetro y no de la placa; trocea sobre los intervalos de pulso medidos (un promedio por meseta de velocidad si la velocidad va a saltos); remuestrea angularmente el registro contra el tacómetro (seguimiento de órdenes) antes de promediar cuando la velocidad deriva de forma continua; y si fallan los tres, promedia menos revoluciones y asume la penalización de , porque un promedio corto al periodo correcto vale más que uno largo al periodo equivocado.
La comprobación de aceptación. residual_rms debería caer como
. Si deja de caer, o la velocidad ha derivado, o lo que queda es
síncrono y ningún número de promedios lo va a eliminar.
Cómo se monta la medición
Sección titulada «Cómo se monta la medición»- Transductor y montaje. Un acelerómetro atornillado o pegado sobre el soporte del rodamiento más cercano al engranaje que interesa, con su eje en la dirección de la carga. Una base magnética hunde la banda útil a un par de kilohercios y esconde los armónicos de engrane que el promedio existe para enseñar.
- La frecuencia de muestreo sale del contenido que quieres conservar. Un piñón de 37 dientes a 1800 r/min engrana a Hz, así que conservar cinco armónicos de engrane pide kHz: 16 kHz en la práctica, 25,6 kHz en un analizador que lo ofrezca.
- Longitud de registro de revoluciones, con elegido por la regla de los órdenes interferentes del §3 y no por costumbre.
- Los dos canales en un mismo frontal de muestreo simultáneo, con la ganancia fija durante toda la tirada: un desfase entre canales desplaza cada frontera de bloque y gira la forma de onda promediada.
- Anota el punto de funcionamiento (velocidad, carga, temperatura del aceite), porque una forma de onda TSA solo es comparable con otra tomada en el mismo punto.
4. Muestras por periodo no enteras
Sección titulada «4. Muestras por periodo no enteras»Cuando es entero, las fronteras de periodo caen sobre muestras, los
bloques se trocean directamente y una señal periódica sin ruido se recupera
con precisión de máquina (interpolated es False). Cuando no es
entero las fronteras caen entre muestras; cada bloque se alinea entonces a una
malla entera común mediante el retardo fraccionario de banda limitada de
fractional_delay, y la forma de onda
se recupera dentro de ese error de interpolación (interpolated es True):
fs = 8192.0period = 1.0 / 31.7 # fs * period no es enterot = np.arange(int(40 * period * fs)) / fsrecording = np.cos(2.0 * np.pi * t / period) # un ciclo por revoluciónres = time_synchronous_average(recording, fs, period)res.interpolated # True: alineación por retardo fraccionariores.samples_per_period # muestras enteras de un periodoPor defecto el promedio usa tantos periodos completos como contenga el
registro; pasa n_averages para fijar el número (para la elección de nodo del
§3), y n_harmonics para fijar cuántos armónicos de abarca la respuesta
del peine devuelta.
La alineación de banda limitada comparte su núcleo con la alineación submuestral de respuestas al impulso de la página de señales de prueba, y la forma de onda recuperada, al ser exactamente un periodo, puede repetirse para reconstruir la parte síncrona de la señal, para restarla o para análisis de órdenes.
Qué herramienta de diagnóstico, y cuándo
Sección titulada «Qué herramienta de diagnóstico, y cuándo»El promediado síncrono, el cepstrum y el espectro de la envolvente responden preguntas distintas sobre una máquina rotativa, y se componen en lugar de competir:
- El promediado síncrono necesita el periodo (un pulso de tacómetro o una velocidad de eje fiable) y devuelve la forma de onda misma, una revolución completa: la herramienta cuando quieres ver qué hace un eje o un engranaje concreto por vuelta, diente a diente.
- El cepstrum no necesita referencia y detecta cualquier familia periódica del espectro (armónicos, bandas laterales): la herramienta cuando el periodo es desconocido o varias familias se solapan y hay que separarlas.
- El espectro de la envolvente encuentra periodicidades de la amplitud: la herramienta para los fallos de rodamiento, cuya tasa de repetición modula una resonancia de alta frecuencia en lugar de aparecer como un tono grave.
La composición es práctica habitual: promedia síncronamente primero y
resta después; el campo residual es el registro con la parte síncrona
eliminada, exactamente sobre lo que conviene ejecutar el espectro de la
envolvente cuando las componentes fuertes del engranaje ya no enmascaran la
modulación.
Lo que sale de esa cadena es un conjunto de rayas, y el diagnóstico lo lleva su frecuencia, no su amplitud. Las familias cinemáticas de la máquina (las frecuencias de paso de bola por la pista exterior y por la interior, el giro de la bola, la jaula, la frecuencia de engrane y sus bandas laterales a la frecuencia de eje, el paso de pala, el deslizamiento del motor y el paso de polos) se calculan a partir de la geometría y la velocidad de eje, y se dibujan sobre el espectro de la envolvente medido en frecuencias de fallo de máquinas. Como esas familias se expresan en órdenes del eje, la misma señal de tacómetro que fija el periodo de promediado fija también las frecuencias de las familias: un error de velocidad corrompe a la vez el promediado y la identificación.
Qué cubre esta guía
Sección titulada «Qué cubre esta guía»Cubierto
El modelo revisado de McFadden para el promediado en el dominio del tiempo (Mechanical Systems and Signal Processing, 1987): la descripción por filtro peine del promedio (Ec. 8, magnitud Ec. 9) implementada por
comb_filter_response, la ley de reducción de ruido en raíz cuadrada expuesta comonoise_reduction_dbyamplitude_snr_gain, y la elección de que sitúa un nodo del peine sobre un orden interferente, siguiendo el propio ejemplo del artículo con el orden 32,05.time_synchronous_averagetambién implementa la alineación de banda limitada por retardo fraccionario usada cuando no es entero.No cubierto
El TSA necesita un periodo conocido; encontrar ese periodo, o detectar familias periódicas sin conocerlo, es tarea del cepstrum, no de esta página. Localizar periodicidades de modulación de amplitud, como los fallos de rodamiento, es el espectro de la envolvente, también fuera de esta página. El artículo de McFadden no es una norma de certificación, así que no hay ningún apartado de cumplimiento contra el que comprobar la implementación.
Véase también
Sección titulada «Véase también»- Cepstrum y ecos: detección sin referencia de familias de armónicos y bandas laterales, y el espectro de la envolvente.
- Correlación y retardo: la envolvente de Hilbert que sustenta el análisis de envolvente.
- Señales de prueba: el núcleo de retardo fraccionario que usa la alineación de periodo no entero.
- Frecuencias de fallo de máquinas: las familias de rodamientos y engranajes contra las que se lee el espectro de la envolvente del residuo.
- Referencia de la API:
signals.synchronous_average.
Referencias
Sección titulada «Referencias»- McFadden, P. D. (1987). A revised model for the extraction of periodic waveforms by time domain averaging. Mechanical Systems and Signal Processing, 1(1), 83-95. https://doi.org/10.1016/0888-3270(87)90085-9El modelo de filtro peine del promediado síncrono (Ec. 8, magnitud Ec. 9), el modelo revisado de registro finito que produce un resultado exactamente periódico, y la observación de que un orden interferente no armónico se rechaza mejor eligiendo el número de promedios de modo que un nodo del peine caiga sobre él, no con la potencia de dos habitual.