Frecuencias de fallo de máquinas
Referencias: Norton y Karczub 2003
El mantenimiento predictivo empieza por la aritmética, no por el tratamiento de señal. Todo rodamiento de contacto rodante, todo engranaje, todo motor de inducción y todo rotor con palas excita una familia de frecuencias discretas fijadas por su geometría y por su velocidad de giro, y saber dónde caen esas líneas es lo que convierte un espectro sin rasgos en un diagnóstico: un pico solo es una prueba cuando se asienta sobre una línea con nombre. Esta página cubre la cinemática de M. P. Norton y D. G. Karczub, Fundamentals of Noise and Vibration Analysis for Engineers (2.ª ed., Cambridge University Press, 2003), sección 8.4, y cómo se combina con la cadena de señal que la biblioteca ya ofrece: el espectro de envolvente y el cepstrum y el promediado síncrono en el tiempo.
La vista de trabajo es la unión de ambas cosas: el espectro de envolvente de un registro de vibración filtrado en banda con las líneas previstas dibujadas encima y con su nombre.
Las cuatro líneas altas caen sobre la BPFO y sus armónicos; no aparece nada en la BPFI, ni en la BSF, la frecuencia de rotación del elemento rodante, ni en la BDF de 183 Hz, donde golpearía un elemento rodante dañado. Ese es el diagnóstico: un descascarillado en la pista exterior.
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import bearing_fault_frequencies, envelope_spectrum, noise_signal
# El rodamiento: 15 rodillos sobre un diámetro primitivo de 34 mm, rodillos# de 6 mm, ángulo de contacto de 12,96 grados, eje a 2000 r/min.faults = bearing_fault_frequencies(2000.0, 15, 6.0, 34.0, contact_angle_deg=12.96)bpfo, shaft = faults["BPFO"], faults.shaft_rate # 207,0 Hz, 33,33 Hz
# Una pista exterior descascarillada: un impacto por periodo de BPFO, cada uno# excitando una resonancia del soporte a 3 kHz, modulado una vez por vuelta por# la carga y enterrado en ruido.fs, seconds = 20000.0, 2.0t = np.arange(int(fs * seconds)) / fsimpacts = np.zeros_like(t)for k in range(int(seconds * bpfo)): impacts[round(k / bpfo * fs)] = 1.0 + 0.35 * np.cos( 2.0 * np.pi * shaft * k / bpfo)tau = np.arange(int(0.004 * fs)) / fsring = np.exp(-tau / 6.0e-4) * np.sin(2.0 * np.pi * 3000.0 * tau)x = np.convolve(impacts, ring)[: t.size] * 0.6x += 0.35 * np.sin(2.0 * np.pi * shaft * t) # desequilibrio residualx += noise_signal(fs, seconds, color="white", rms=0.25, seed=17)
# Se filtra en banda la resonancia que excitan los impactos, se detecta su# envolvente, se transforma, y el resultado dibuja sus propias líneas encima.spectrum = envelope_spectrum(x, fs, band=(2000.0, 4000.0))faults.within(1.0, 5.0 * bpfo).plot(spectrum=spectrum, language="es")plt.show()Símbolos de esta página
Sección titulada «Símbolos de esta página»Norton conserva la notación de sus fuentes, y una misma letra carga con cuatro significados distintos a lo largo de las cuatro secciones. La tabla de abajo es la clave; la que hay que vigilar es , que es una velocidad en la sección 1 y un recuento en las secciones 2 y 4.
| Símbolo | Significado | Unidad | Sección |
|---|---|---|---|
| velocidad del eje (el primer argumento posicional de la API) | r/min | 1 | |
| frecuencia de giro del eje, | Hz | todas | |
| número de elementos rodantes del rodamiento | — | 1 | |
| , | diámetro del elemento rodante, diámetro primitivo | la misma para ambos | 1 |
| ángulo de contacto, desde el plano radial | grados | 1 | |
| el factor común | — | 1 | |
| número de dientes de la rueda (Ec. 8.3 de Norton) | — | 2 | |
| , | barras de rotor, polos magnéticos (no pares de polos) | — | 3 |
| , | deslizamiento (una fracción, no un porcentaje), frecuencia de alimentación | —, Hz | 3 |
| , | número de palas del rotor, número de álabes del estátor | — | 4 |
| número de eventos de bombeo por vuelta | — | 4 | |
| índice de armónico (de ranura de rotor en la sección 3, de pala en la 4) | — | 3, 4 | |
| número de lóbulos de un patrón rotativo de interacción | — | 4 |
Nada en la biblioteca reutiliza el nombre: bearing_fault_frequencies,
gear_mesh_frequencies y blade_pass_frequencies toman todas la velocidad del
eje en r/min primero y el recuento después, así que la colisión vive solo en las
fórmulas impresas. Aun así merece la pena comprobarlo, porque un recuento puesto
donde va una velocidad es un error de factor 60 que no levanta ninguna
excepción.
1. Rodamientos de contacto rodante
Sección titulada «1. Rodamientos de contacto rodante»Norton reproduce las once ecuaciones recopiladas por Shahan y
Kamperman (Ecs. 8.4 a 8.14). Se reducen a siete frecuencias distintas,
porque cuatro de las once son las contrapartes con pista interior giratoria de
filas que ya están en la tabla: o idénticas a ellas dos a dos, o alcanzables
mediante el argumento rotating_race. Con la velocidad del eje en r/min,
elementos rodantes de diámetro sobre un diámetro primitivo , un
ángulo de contacto , y escribiendo y
:
| Nombre | Significado | Expresión | Ec. de Norton |
|---|---|---|---|
shaft | frecuencia de giro del eje | (8.4) | |
FTF | frecuencia de la jaula (tren fundamental) | (8.5) | |
FTF_rel | jaula relativa a la pista que gira | (8.11) | |
BSF | frecuencia de rotación del elemento rodante | (8.7) | |
BDF | frecuencia de giro del elemento rodante | (8.10) | |
BPFO | frecuencia de paso por la pista exterior | (8.8) | |
BPFI | frecuencia de paso por la pista interior | (8.9) |
Esas tres magnitudes geométricas cargan con toda la familia, y dos de ellas se confunden a menudo. El diámetro primitivo se mide entre los centros de los elementos rodantes, ni en el agujero ni en el diámetro exterior. El ángulo de contacto se mide desde el plano radial, así que no aparece en una vista frontal: vale cero en un rodamiento rígido de bolas y no vale cero en los de contacto angular y los de rodillos cónicos, que es la única razón de que lleve un coseno.
Las dos identidades exactas en las que se apoya la sección son afirmaciones geométricas que esta figura hace evidentes: todo elemento rodante pasa o por el defecto de la pista exterior o por el de la interior, así que ; y con la pista exterior quieta la jaula lleva los elementos por delante del defecto una vez por vuelta de jaula, así que .
Tres de ellas llevan el diagnóstico: BPFO para un defecto en la pista
exterior, BPFI para un defecto en la pista interior y BDF para un elemento
rodante o una jaula dañados. Las dos filas del elemento rodante se diferencian
en un factor dos porque responden a preguntas distintas: BSF es a qué
velocidad gira un elemento rodante, y BDF con qué frecuencia un defecto suyo
golpea una pista — dos veces por vuelta del elemento, una contra cada pista. La
evidencia de un elemento rodante dañado se espera, por tanto, en la BDF
(183,3 Hz para el rodamiento de arriba), normalmente modulada a la frecuencia
de la jaula FTF, mientras que la línea que la figura dibuja en 91,7 Hz es la
frecuencia de rotación del elemento rodante, la BSF. Conviene recordar dos
identidades, porque son
exactas y detectan al instante los errores de introducción de datos:
siempre, y
siempre que la pista exterior esté
quieta.
La presencia y la ausencia son la forma débil del diagnóstico, y aquí funciona solo porque la BPFO (207 Hz) y la BPFI (293 Hz) de este rodamiento quedan muy separadas y el registro está limpio. La forma fuerte es la modulación, y se deduce de la misma geometría:
- un defecto en la pista exterior ocupa una posición angular fija dentro de la zona de carga, así que todos los elementos rodantes lo golpean con la misma carga. El tren de impactos no está modulado, y la BPFO aparece como una serie armónica limpia, con poca o ninguna estructura de bandas laterales;
- un defecto en la pista interior gira con el eje, así que entra y sale de la zona de carga una vez por vuelta. El tren de impactos está modulado en amplitud a la frecuencia del eje, y la BPFI lleva bandas laterales a alrededor de la línea y de cada armónico, a menudo más visibles que la propia portadora;
- un defecto en un elemento rodante golpea las dos pistas alternativamente
mientras viaja con la jaula, así que está modulado a la frecuencia de la
jaula: la BDF lleva bandas laterales a . Para eso están en la
tabla
FTFyFTF_rel.
El espaciado de las bandas laterales es por tanto el criterio de desempate siempre que dos familias previstas caigan cerca, y es el mismo argumento que hace el párrafo de bandas laterales de engrane de la sección 2 para otro componente. Resolver una banda lateral a cuesta longitud de registro, que es la razón de que la adquisición de la sección 5 importe aquí, y no solo en principio.
from phonometry import bearing_fault_frequencies
res = bearing_fault_frequencies(2000.0, 15, 6.0, 34.0, contact_angle_deg=12.96)print(round(res["BPFO"], 1), round(res["BPFI"], 1)) # 207.0 293.0print(round(res["BPFO"] + res["BPFI"], 1)) # 500.0 = 15 x 33,33print(res.as_dict())Solo interviene la relación , así que los dos diámetros pueden darse en
milímetros, en pulgadas o en metros mientras ambos usen la misma unidad.
rotating_race="outer" desplaza la jaula a la Ec. (8.6); BPFO y BPFI no se
mueven, porque las Ecs. (8.8) y (8.14), y (8.9) y (8.13) de Norton son
idénticas dos a dos.
Esta es la cinemática de un contacto de rodadura pura. Un rodamiento real bajo carga desliza un poco, así que las líneas medidas se desvían de la previsión en un uno o un dos por ciento; eso es normal y es la razón por la que la superposición se lee como «el pico está sobre la línea» y no como «el pico está en la línea».
La velocidad es toda la previsión
Sección titulada «La velocidad es toda la previsión»Todas las frecuencias de esta página son estrictamente proporcionales a
: las siete líneas del rodamiento, el engrane y sus bandas
laterales, el 1x, el 2x y la familia de ranura de rotor del motor, las
líneas de paso de pala. Un error de velocidad se propaga por tanto uno a uno a
todas las líneas previstas, y la velocidad del eje es el único dato de entrada
que la aritmética no puede comprobar.
- De dónde sale. De la placa de características no: esa es la velocidad
síncrona o a plena carga, y una máquina de inducción cargada gira por debajo.
Lo que hace falta aquí es la velocidad de giro en el momento del registro:
de un tacómetro, de un encóder de eje, de un captador óptico o magnético de
una marca por vuelta, o del propio pico
1xmedido en el espectro. Lo último es lo habitual en campo y es circular si no se hace a propósito: primero se localiza el pico1xy desde él se sitúa todo lo demás. - Qué hace la deriva. Si la velocidad se mueve durante el registro, todas las líneas previstas se emborronan en proporción a su orden. Una variación del 1 % emborrona , 828 Hz en el rodamiento anterior, en unos 8 Hz, que basta para fundir un armónico con sus vecinos y destruir la evidencia que busca la superposición. La figura que abre esta página depende de que cuatro armónicos de BPFO se sostengan separados, así que depende de una velocidad estable.
- Qué hacer al respecto. El seguimiento de órdenes, o un promediado síncrono en el tiempo remuestreado con el tacómetro, remuestrea el registro sobre el ángulo del eje y devuelve los órdenes emborronados a líneas únicas.
El error de tacómetro y el deslizamiento del rodamiento son fallos distintos y se comportan de forma distinta. Una velocidad equivocada desplaza todas las líneas de forma coherente y en la misma fracción; el deslizamiento desplaza solo las líneas del rodamiento, un uno o un dos por ciento, y no de forma determinista, que es además la razón de que la evidencia de rodamiento sobreviva al promediado síncrono y la de engranaje no.
2. Engranajes
Sección titulada «2. Engranajes»La frecuencia de engrane (paso de dientes) de una rueda de dientes es (Ec. 8.3), con armónicos enteros. Lo que distingue los tipos de fallo es la familia de bandas laterales en torno a cada armónico: un solo diente astillado o una rueda excéntrica modula el engrane una vez por vuelta y produce bandas laterales bajas y planas espaciadas la frecuencia de giro del eje, mientras que un desgaste distribuido levanta grupos altos de bandas laterales y eleva los armónicos superiores del engrane.
from phonometry import gear_mesh_frequencies
# Un piñón de 28 dientes en un eje a 1500 r/min, con dos órdenes de bandas.res = gear_mesh_frequencies(1500.0, 28, harmonics=3, sidebands=2)print(round(res["GMF"], 1)) # 700.0print(round(res["GMF+1x"], 1)) # 725.0 (GMF + un orden de eje)print(res.harmonics("GMF", 3)) # [ 700. 1400. 2100.]Con sideband_rate se modula a la velocidad de giro de la rueda conjugada,
que es lo que produce un fallo en la otra rueda del par. Los dos primeros
paneles de la figura del final de la sección 4 dibujan las dos firmas una al
lado de la otra, así que lo anterior es algo que se comprueba mirando en vez de
creerlo sin más.
3. Motores de inducción
Sección titulada «3. Motores de inducción»En la señal de vibración de un motor medida en el soporte del rodamiento siempre
hay tres líneas: 1x (desequilibrio mecánico), 2x (desalineación con la carga
accionada) y 2fe (entrehierro no uniforme, pulsos de par y los fallos
eléctricos de devanado y de barras del rotor). Son propiedades de la máquina, no
del rodamiento. Los defectos de rotor que producen excentricidad
estática o dinámica del entrehierro se leen sobre los armónicos de ranura del
rotor de la Ec. (8.20),
con barras de rotor, polos magnéticos (no pares de polos), deslizamiento (una fracción adimensional, cercana a cero en una máquina poco cargada) y . La excentricidad dinámica viste el armónico de ranura dominante con bandas laterales a la frecuencia de giro del eje y a la frecuencia de deslizamiento.
from phonometry import induction_motor_frequencies
# Sesenta barras de rotor, seis polos magnéticos, 3600 r/min, sin deslizamiento:# una máquina de seis polos a esa velocidad va con un variador a 180 Hz, no con# la red.res = induction_motor_frequencies(3600.0, 6, 60, slip=0.0)print(round(res["fe"])) # 180 la alimentación que implicaprint(round(res["1x"]), round(res["2x"]), round(res["2fe"]), round(res["fsh"])) # 60 120 360 3600Lee la frecuencia de alimentación antes que las líneas de fallo. 2fe sigue a
la alimentación, no a la red, así que con un variador de frecuencia se mueve
con el ajuste del variador: los 360 Hz de arriba son el doble de 180 Hz, y una
máquina de seis polos con red de 50 Hz giraría cerca de 1000 r/min con 2fe en
100 Hz. El fsh = 3600 Hz impreso es la comprobación por la que aboga el
párrafo siguiente: con deslizamiento nulo, la Ec. (8.20) debe reducirse a la
frecuencia física de paso de barras Hz.
El deslizamiento se da directamente, o se da la frecuencia de red
supply_frequency y el deslizamiento se deduce de ella y de la velocidad medida
del eje. La frecuencia de alimentación se toma como
; la Ec. (8.19) de Norton escribe
, que es la misma expresión con deslizamiento nulo pero no
reduce la Ec. (8.20) a la frecuencia física de paso de barras
cuando la máquina está cargada. Con carga, el resultado incluye además la
frecuencia de deslizamiento y la línea de paso de polos
, el espaciado de bandas laterales que
una barra de rotor rota coloca alrededor de 1x. El tercer panel de la figura
del final de la sección 4 dibuja esta familia en un eje de amplitud logarítmico,
que es la única forma de ver el 1x y el armónico de ranura de rotor en la
misma imagen: están a tres décadas de distancia.
4. Ventiladores, soplantes y bombas
Sección titulada «4. Ventiladores, soplantes y bombas»La frecuencia de paso de pala de un rodete de palas es (Ec. 8.15). Las pulsaciones hidráulicas de una bomba siguen la misma forma, con el recuento de palas sustituido por el número de eventos de bombeo por vuelta (Ec. 8.18). Y una soplante volumétrica rotativa repite cuatro veces por vuelta, lo que se trata pasando con una sola «pala»:
from phonometry import blade_pass_frequencies
# Una soplante volumétrica rotativa a 1200 r/min: cuatro pulsaciones por# vuelta, así que la frecuencia de pulsación se pide como 4 x r/min con N = 1.res = blade_pass_frequencies(4 * 1200.0, 1, harmonics=3)print(round(res["BPF"], 1)) # 80.0 Hz, la frecuencia de pulsaciónprint(round(res.shaft_rate, 1)) # 80.0 Hz - NO la del eje, que es 20El truco cuesta la línea del eje: shaft_rate vuelve valiendo , así que
lee la frecuencia del eje de una llamada aparte a la velocidad verdadera (o de
bearing_fault_frequencies) antes de combinar familias con
combine_fault_lines, o se dibujará un cuarto armónico del eje como si fuera
evidencia de rodamiento.
En un ventilador axial entubado las palas interaccionan además con los
álabes del estátor y establecen patrones de presión rotativos con
lóbulos para álabes (Ec. 8.16), que giran a
(Ec. 8.17). Un patrón que gira más rápido que las propias palas
radia con mucha más fuerza, y por eso importa la elección de y , y por
eso esas velocidades son las que hay que contrastar con las frecuencias de corte
del conducto. Cada línea se llama lobe n=<n> m=<mL>: el armónico de pala forma
parte del nombre porque la Ec. (8.17) lleva , de modo que el mismo número de
lóbulos alcanzado desde otro armónico es otro patrón, que gira a otra velocidad.
# Seis palas, cuatro álabes, 3500 r/min (blade_pass_frequencies importado arriba).res = blade_pass_frequencies(3500.0, 6, harmonics=1, n_vanes=4)print(round(res.shaft_rate, 1)) # 58.3 Hz, el eje mismoprint(round(res["BPF"])) # 350print(round(res["lobe n=1 m=2"]), round(res["lobe n=1 m=10"])) # 175 35Esos dos números son el principio, resuelto. Los dos patrones salen del mismo armónico de pala del mismo ventilador; la única diferencia es el signo de en , que es la razón de que el recuento de lóbulos tenga que formar parte del nombre de la línea. El patrón de gira a Hz, tres veces la velocidad del eje, así que es el que radia con fuerza y la línea que hay que contrastar con la frecuencia de corte del conducto. El patrón de gira a 35 Hz, por debajo de la velocidad del eje, así que radia poco. Seis palas contra cuatro álabes es una decisión de diseño, y esto es lo que decide.
Una familia de fallos se reconoce por su patrón, no por un solo número. Los dos
paneles de engranaje son el mismo piñón de 28 dientes a 1500 r/min con dos
fallos distintos: un diente astillado da bandas laterales bajas y planas a
y armónicos que caen; un desgaste distribuido da grupos altos de
bandas laterales y levanta los armónicos superiores. El panel del motor abarca
tres décadas de amplitud, que es la razón de que el armónico de ranura de rotor
y sus bandas laterales a necesiten un eje logarítmico para verse
siquiera al lado del 1x. El panel del ventilador pone los dos patrones
lobulados junto a la frecuencia de pala de la que salen.
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as np
# La biblioteca prevé las líneas; los espectros de debajo se sintetizan# exactamente a esas frecuencias, así que la figura y los valores impresos# concuerdan.gear = gear_mesh_frequencies(1500.0, 28, harmonics=3, sidebands=2)freq = np.linspace(0.0, 2400.0, 4800)amp = np.full_like(freq, 0.004)for order, height in enumerate((1.0, 0.40, 0.16), start=1): for centre, level in ( (order * gear["GMF"], height), (order * gear["GMF"] - gear.shaft_rate, 0.13 * height), (order * gear["GMF"] + gear.shaft_rate, 0.13 * height), ): amp += level * np.exp(-0.5 * ((freq - centre) / 2.2) ** 2)
spectrum = type("S", (), {"frequencies": freq, "amplitude": amp})()gear.within(1.0, 2400.0).plot(spectrum=spectrum, language="es")plt.show()5. Del registro bruto a una línea con nombre
Sección titulada «5. Del registro bruto a una línea con nombre»La cinemática responde a dónde mirar; la cadena de señal responde a qué hay. Antes que ninguna de las dos, algo tiene que registrar la máquina, y el análisis de envolvente es inusualmente sensible a cómo se haga eso.
Paso 0. Conseguir el registro
Sección titulada «Paso 0. Conseguir el registro»Dónde se pone el transductor. En el soporte del rodamiento, en la zona de carga, tan cerca de la pista exterior como permita la geometría y con el camino estructural más corto posible hasta ella. Una medida tomada al otro lado de una unión atornillada, sobre un resguardo o sobre chapa pierde la energía de impacto de alta frecuencia sobre la que se sostiene todo el método. Las posiciones radial y axial responden a preguntas distintas: la radial (horizontal, o vertical donde lo pida la dirección de la carga) para las familias de rodamiento y de desequilibrio, la axial para la desalineación y para los engranes helicoidales o cónicos.
Cómo se fija. La resonancia de la fijación fija la frecuencia superior utilizable, y este método necesita kilohercios. Una fijación por espárrago sobre una cara preparada llega a decenas de kilohercios; una unión con adhesivo o con una capa fina de cianoacrilato, algo menos; una base magnética, típicamente unos pocos kilohercios; una sonda de mano, apenas uno. La banda que se usa más abajo es de 2 a 4 kHz, que para una base magnética está en el límite y para una sonda de mano queda fuera de alcance: esta es, con diferencia, la razón más frecuente de que un análisis de envolvente no encuentre nada en un rodamiento que sí está descascarillado.
Qué se adquiere. La frecuencia de muestreo debe dejar margen por encima de la resonancia que suena: 20 kHz para una resonancia de soporte de 3 kHz deja sitio para que trabajen el filtro de banda y el detector. El registro debe contener vueltas suficientes para que el espectro de envolvente resuelva la frecuencia del eje, porque la resolución que se obtiene es y el espaciado de bandas laterales que hay que resolver es el propio . Dos segundos a 2000 r/min son 67 vueltas y 0,5 Hz de resolución frente a una frecuencia de eje de 33 Hz, que es la razón de que la línea del eje y las bandas laterales a de la sección 1 sean separables siquiera. Registra más tiempo si la velocidad es baja o si las bandas laterales son el diagnóstico; registra menos solo si la velocidad no se va a mantener quieta (véase La velocidad es toda la previsión más arriba).
Qué transductor. Un acelerómetro piezoeléctrico corriente cubre las bandas de kilohercios que se usan aquí. Un sensor de emisión acústica o uno específico de alta frecuencia sube la banda útil un orden de magnitud, lo que cambia la banda que debe aislar el paso 1; si la máquina está instrumentada así, localiza la resonancia antes de elegirla.
Los tres pasos de tratamiento de señal
Sección titulada «Los tres pasos de tratamiento de señal»Para un rodamiento, la ruta clásica tiene tres pasos, y la biblioteca tiene una función para cada uno:
- Aislar la resonancia que excitan los impactos. Un descascarillado excita
una resonancia estructural de alta frecuencia del soporte, muy por encima de
los armónicos del eje y del engrane. Se pasa su banda como
band=(low, high)aenvelope_spectrum, que filtra el registro con un filtro de fase nula antes del detector, de modo que la fase de la modulación queda intacta. Elegir esa banda es el único juicio de toda la cadena: mira en el espectro bruto la joroba de banda ancha que excitan los impactos, golpea el soporte y observa qué resuena, o barre el centro y el ancho de banda buscando aquella cuya envolvente es más impulsiva (el kurtograma). La banda debe quedar por encima de los armónicos del eje, del engrane y sus bandas laterales y de cualquier línea eléctrica, o esos tonos sobreviven al filtro y aparecen como líneas propias en el espectro de envolvente, donde un pico de engrane se confunde fácilmente con un armónico de rodamiento. Debe ser lo bastante ancha para dejar pasar el repique del impacto sin truncarlo y lo bastante estrecha para que el suelo de ruido no lo entierre. Los 2 a 4 kHz que se usan en esta página se eligen porque estos impactos hacen sonar una resonancia de soporte de 3 kHz. - Detectar y transformar la envolvente. La cadencia de repetición de los impactos es una modulación de amplitud de esa resonancia, así que se convierte en una línea del espectro de envolvente, a la frecuencia de fallo y a sus armónicos. Véase la guía del cepstrum y el espectro de envolvente.
- Nombrar las líneas. Se superpone la previsión cinemática.
.plot(spectrum=…)acepta cualquier resultado deenvelope_spectrum(o cualquier objeto que expongafrequenciesyamplitude) y dibuja encima las líneas previstas, coloreadas por familia para que los armónicos del eje nunca se lean como prueba de un fallo de rodamiento.
Los tres pasos hechos visibles sobre un mismo registro. Los impactos son invisibles en la señal bruta, evidentes en cuanto se aísla la banda de 2 a 4 kHz, rectificados en un tren de pulsos por el detector de envolvente y, por fin, leídos como una línea en 207 Hz y sus armónicos: el periodo del panel 2 convertido en la frecuencia del panel 4.
Ver el código de esta figura
import matplotlib.pyplot as pltfrom scipy import signal as sp_signal
# El registro x, su frecuencia de muestreo fs, su base de tiempos t y la BPFO# prevista son los que se construyeron para la figura que abre la página.band = (2000.0, 4000.0)spec = envelope_spectrum(x, fs, band=band) # lleva .envelope y .times
# El mismo filtro paso banda Butterworth de cuarto orden y fase nula que aplica la# llamada internamente, ejecutado aquí para poder dibujar el registro intermedio.sos = sp_signal.butter(4, band, btype="bandpass", fs=fs, output="sos")narrow = sp_signal.sosfiltfilt(sos, x)
fig, axes = plt.subplots(4, 1, figsize=(10, 10))window = slice(0, int(0.05 * fs)) # los primeros 50 msaxes[0].plot(t[window], x[window]); axes[0].set_ylabel("a bruta")axes[1].plot(t[window], narrow[window]); axes[1].set_ylabel("2-4 kHz")axes[2].plot(spec.times[window], spec.envelope[window])axes[2].set_ylabel("envolvente"); axes[2].set_xlabel("Tiempo [s]")keep = spec.frequencies <= 4.6 * bpfoaxes[3].plot(spec.frequencies[keep], spec.amplitude[keep])for order in range(1, 5): axes[3].axvline(order * bpfo, ls="--", color="C1")axes[3].set_xlabel("Frecuencia [Hz]"); axes[3].set_ylabel("espectro de envolvente")plt.show()Hay otras dos herramientas que ayudan cuando el registro está cargado. El promediado síncrono en el tiempo elimina todo lo que no esté enganchado a un eje, lo que separa los dos ejes de una caja de engranajes antes de leer las bandas laterales; y el cepstrum colapsa toda una familia de armónicos o de bandas laterales en una única espiga de quefrencia, que es la forma más rápida de saber qué periodicidad domina cuando hay varias superpuestas.
Junta las dos sobre una misma máquina. El registro de abajo es del que salen las figuras de esta página: dos segundos a 20 kHz de un acelerómetro fijado con espárrago en el soporte del rodamiento, radial y en la zona de carga, con la velocidad del eje tomada del captador de una marca por vuelta en ese mismo momento. El rodamiento soporta un piñón de 28 dientes, así que el soporte lleva tres familias a la vez.
from phonometry import ( bearing_fault_frequencies, combine_fault_lines, envelope_spectrum, gear_mesh_frequencies,)
record, fs = x, 20000.0 # el registro del soporte y su muestreoshaft_rpm = 2000.0 # del tacómetro, no de la placa de características
# Las líneas propias del rodamiento, la familia de engrane del piñón que soporta# y los armónicos del eje. Todos en unos ejes.bearing = bearing_fault_frequencies(shaft_rpm, 15, 6.0, 34.0, contact_angle_deg=12.96)gear = gear_mesh_frequencies(shaft_rpm, 28, harmonics=2, sidebands=1)lines = combine_fault_lines(bearing, gear)
spectrum = envelope_spectrum(record, fs, band=(2000.0, 4000.0))lines.within(1.0, 1600.0).plot(spectrum=spectrum, language="es")within(low, high) recorta la familia al tramo que el análisis cubre
realmente, lo que importa porque aquí el armónico de engrane más alto
(2xGMF+1x, 1900 Hz) queda por encima de la parte útil de este espectro de
envolvente.
Qué cubre y qué no
Sección titulada «Qué cubre y qué no»Cubierto
Las familias cinemáticas de la sección 8.4 de Norton: rodamientos de contacto rodante (Ecs. 8.4 a 8.14), engrane y bandas laterales (Ec. 8.3), líneas de alimentación, deslizamiento, paso de polos y ranura de rotor de los motores de inducción (Ecs. 8.19 y 8.20), y frecuencias de paso de pala con los patrones lobulados de interacción de un ventilador axial entubado (Ecs. 8.15 a 8.18), mediante
bearing_fault_frequencies,gear_mesh_frequencies,induction_motor_frequencies,blade_pass_frequencies,combine_fault_linesyshaft_rate.No cubierto
Estas son previsiones, no detecciones: aquí nada decide si una línea está presente, solo dónde estaría. Los criterios de amplitud que convierten una línea presente en una valoración de severidad (tendencias de factor de cresta y de curtosis, bandas de severidad en velocidad de las ISO 10816 / ISO 20816) quedan fuera de este módulo; la propia orientación de Norton es cualitativa (factores de cresta de 2,5 a 3,5 en un rodamiento sano, hasta unos 11 con defectos impulsivos; curtosis en torno a 3 en un rodamiento sano y por encima de 4 en uno dañado). La frecuencia de paso de polos es práctica habitual del mantenimiento predictivo, no de Norton: él da la propia frecuencia de deslizamiento como espaciado de las bandas laterales de una barra rota y no la multiplica por el número de polos.
Véase también
Sección titulada «Véase también»- Cepstrum, ecos y espectro de la envolvente: el espectro de envolvente sobre el que se dibujan estas líneas y el colapso cepstral de una familia de armónicos.
- Promediado síncrono en el tiempo: separar la firma de un eje de todo lo asíncrono con él.
- Movilidad mecánica y la familia de FRF (ISO 7626-1): encontrar las resonancias estructurales que excita el impacto de un defecto.
- Transmisión de onda de flexión en uniones de placas: qué le ocurre a la vibración una vez sale de la máquina.
- Referencia de la API:
vibration.machinery.diagnostics.
Referencias
Sección titulada «Referencias»- Norton, M. P. y Karczub, D. G. (2003). Fundamentals of noise and vibration analysis for engineers (2.ª ed.). Cambridge University Press. https://doi.org/10.1017/CBO9781139163927La sección 8.4 reúne las frecuencias discretas de fallo de la maquinaria rotativa implementadas en esta página: las once frecuencias del rodamiento de contacto rodante según Shahan y Kamperman (Ecs. 8.4-8.14), la frecuencia de engrane (Ec. 8.3), la frecuencia de paso de pala y los patrones lobulados de interacción de un ventilador axial entubado (Ecs. 8.15-8.17), la frecuencia de pulsación hidráulica de las bombas (Ec. 8.18) y las frecuencias de alimentación y de armónicos de ranura del motor de inducción (Ecs. 8.19-8.20). ISBN 978-0-521-49913-2.