Ir al contenido

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.

Espectro de envolvente de un registro de vibración de rodamiento filtrado en banda, representado de 0 a unos 950 hercios, con un suelo de ruido denso y bajo y cuatro líneas altas aisladas. Unas líneas verticales discontinuas rojas marcan la frecuencia de paso de elementos rodantes por la pista exterior prevista en 207 hercios y sus armónicos segundo, tercero y cuarto, y cada una de las cuatro líneas medidas altas cae exactamente sobre una de ellas. Una línea punteada verde marca la frecuencia de paso por la pista interior prevista en 293 hercios y una línea punteada morada la frecuencia de rotación del elemento rodante BSF prevista en 92 hercios, y no aparece ninguna línea medida en ninguna de las dos, que es lo que identifica el fallo como un descascarillado de la pista exterior. Una línea de trazo y punto en 33,3 hercios marca la frecuencia de giro del eje, donde sí aparece una línea pequeña.Espectro de envolvente de un registro de vibración de rodamiento filtrado en banda, representado de 0 a unos 950 hercios, con un suelo de ruido denso y bajo y cuatro líneas altas aisladas. Unas líneas verticales discontinuas rojas marcan la frecuencia de paso de elementos rodantes por la pista exterior prevista en 207 hercios y sus armónicos segundo, tercero y cuarto, y cada una de las cuatro líneas medidas altas cae exactamente sobre una de ellas. Una línea punteada verde marca la frecuencia de paso por la pista interior prevista en 293 hercios y una línea punteada morada la frecuencia de rotación del elemento rodante BSF prevista en 92 hercios, y no aparece ninguna línea medida en ninguna de las dos, que es lo que identifica el fallo como un descascarillado de la pista exterior. Una línea de trazo y punto en 33,3 hercios marca la frecuencia de giro del eje, donde sí aparece una línea pequeña.

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 plt
import numpy as np
from 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.0
t = np.arange(int(fs * seconds)) / fs
impacts = 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)) / fs
ring = np.exp(-tau / 6.0e-4) * np.sin(2.0 * np.pi * 3000.0 * tau)
x = np.convolve(impacts, ring)[: t.size] * 0.6
x += 0.35 * np.sin(2.0 * np.pi * shaft * t) # desequilibrio residual
x += 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()

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ímboloSignificadoUnidadSección
velocidad del eje (el primer argumento posicional de la API)r/min1
frecuencia de giro del eje, Hztodas
número de elementos rodantes del rodamiento1
, diámetro del elemento rodante, diámetro primitivola misma para ambos1
ángulo de contacto, desde el plano radialgrados1
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—, Hz3
, número de palas del rotor, número de álabes del estátor4
número de eventos de bombeo por vuelta4
í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ón4

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.

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 :

NombreSignificadoExpresiónEc. de Norton
shaftfrecuencia de giro del eje(8.4)
FTFfrecuencia de la jaula (tren fundamental)(8.5)
FTF_reljaula relativa a la pista que gira(8.11)
BSFfrecuencia de rotación del elemento rodante(8.7)
BDFfrecuencia de giro del elemento rodante(8.10)
BPFOfrecuencia de paso por la pista exterior(8.8)
BPFIfrecuencia 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.

Cuatro paneles. Un rodamiento de contacto rodante en sección frontal, dibujado con la geometría del ejemplo, con quince elementos sobre una circunferencia primitiva de 34 mm acotada entre centros de elementos, un elemento de 6 mm acotado, un descascarillado dibujado en la pista exterior fija y la pista interior marcada girando a 33,33 hercios con la frecuencia de la jaula al lado. Una semisección axial del mismo rodamiento con el anillo exterior, un elemento y el anillo interior, con el plano radial dibujado como vertical discontinua y la línea de contacto bola-pista inclinada respecto de ella el ángulo de contacto de 12,96 grados. Un par de engranajes en alzado, un piñón de 28 dientes engranando con una rueda mayor, con un diente marcado como astillado. Un ventilador axial entubado visto según el eje del conducto, con seis palas de rotor en trazo lleno, cuatro álabes de estátor discontinuos detrás y una flecha de giro, anotado con los recuentos de lóbulos que producen los números de palas y de álabes.Cuatro paneles. Un rodamiento de contacto rodante en sección frontal, dibujado con la geometría del ejemplo, con quince elementos sobre una circunferencia primitiva de 34 mm acotada entre centros de elementos, un elemento de 6 mm acotado, un descascarillado dibujado en la pista exterior fija y la pista interior marcada girando a 33,33 hercios con la frecuencia de la jaula al lado. Una semisección axial del mismo rodamiento con el anillo exterior, un elemento y el anillo interior, con el plano radial dibujado como vertical discontinua y la línea de contacto bola-pista inclinada respecto de ella el ángulo de contacto de 12,96 grados. Un par de engranajes en alzado, un piñón de 28 dientes engranando con una rueda mayor, con un diente marcado como astillado. Un ventilador axial entubado visto según el eje del conducto, con seis palas de rotor en trazo lleno, cuatro álabes de estátor discontinuos detrás y una flecha de giro, anotado con los recuentos de lóbulos que producen los números de palas y de álabes.

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 FTF y FTF_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.0
print(round(res["BPFO"] + res["BPFI"], 1)) # 500.0 = 15 x 33,33
print(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».

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 1x medido en el espectro. Lo último es lo habitual en campo y es circular si no se hace a propósito: primero se localiza el pico 1x y 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.

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.0
print(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.

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 implica
print(round(res["1x"]), round(res["2x"]),
round(res["2fe"]), round(res["fsh"])) # 60 120 360 3600

Lee 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.

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ón
print(round(res.shaft_rate, 1)) # 80.0 Hz - NO la del eje, que es 20

El 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 mismo
print(round(res["BPF"])) # 350
print(round(res["lobe n=1 m=2"]), round(res["lobe n=1 m=10"])) # 175 35

Esos 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.

Cuatro espectros con las líneas previstas por la biblioteca dibujadas sobre cada uno. Arriba a la izquierda, un espectro de engrane con un diente astillado: líneas altas en 700, 1400 y 2100 hercios con bandas laterales bajas y planas espaciadas 25 hercios a uno y otro lado, y armónicos de engrane que caen deprisa. Arriba a la derecha, el mismo par de engranajes con desgaste distribuido: las bandas laterales se convierten en grupos altos y el segundo y el tercer armónico de engrane se mantienen altos. Abajo a la izquierda, un espectro de motor de inducción en eje de amplitud logarítmico con el 1x en 60 hercios, el 2x en 120 y el doble de la frecuencia de alimentación en 360, con el armónico de ranura de rotor tres décadas por debajo en 3600 hercios flanqueado por bandas laterales a una frecuencia de eje. Abajo a la derecha, un espectro de ventilador entubado con la línea del eje en 58 hercios, la línea de paso de pala en 350, el patrón de interacción de dos lóbulos en 175 hercios dibujado alto y el de diez lóbulos en 35 hercios dibujado pequeño.Cuatro espectros con las líneas previstas por la biblioteca dibujadas sobre cada uno. Arriba a la izquierda, un espectro de engrane con un diente astillado: líneas altas en 700, 1400 y 2100 hercios con bandas laterales bajas y planas espaciadas 25 hercios a uno y otro lado, y armónicos de engrane que caen deprisa. Arriba a la derecha, el mismo par de engranajes con desgaste distribuido: las bandas laterales se convierten en grupos altos y el segundo y el tercer armónico de engrane se mantienen altos. Abajo a la izquierda, un espectro de motor de inducción en eje de amplitud logarítmico con el 1x en 60 hercios, el 2x en 120 y el doble de la frecuencia de alimentación en 360, con el armónico de ranura de rotor tres décadas por debajo en 3600 hercios flanqueado por bandas laterales a una frecuencia de eje. Abajo a la derecha, un espectro de ventilador entubado con la línea del eje en 58 hercios, la línea de paso de pala en 350, el patrón de interacción de dos lóbulos en 175 hercios dibujado alto y el de diez lóbulos en 35 hercios dibujado pequeño.

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 plt
import 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.

Medición de mantenimiento predictivo sobre un tren motor-acoplamiento-reductora: acelerómetros en los dos soportes de rodamiento, uno radial en la zona de carga y otro axial, un captador óptico de una marca por vuelta en el eje que alimenta al analizador junto al canal de vibración, un panel de métodos de fijación con la frecuencia superior utilizable de las fijaciones por espárrago, adhesivo, imán y sonda de mano, y los ajustes de adquisición con la longitud de registro y la frecuencia de muestreo que se deducen de ellosMedición de mantenimiento predictivo sobre un tren motor-acoplamiento-reductora: acelerómetros en los dos soportes de rodamiento, uno radial en la zona de carga y otro axial, un captador óptico de una marca por vuelta en el eje que alimenta al analizador junto al canal de vibración, un panel de métodos de fijación con la frecuencia superior utilizable de las fijaciones por espárrago, adhesivo, imán y sonda de mano, y los ajustes de adquisición con la longitud de registro y la frecuencia de muestreo que se deducen de ellos

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.

Para un rodamiento, la ruta clásica tiene tres pasos, y la biblioteca tiene una función para cada uno:

  1. 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) a envelope_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.
  2. 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.
  3. Nombrar las líneas. Se superpone la previsión cinemática. .plot(spectrum=…) acepta cualquier resultado de envelope_spectrum (o cualquier objeto que exponga frequencies y amplitude) 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.
Cuatro paneles apilados sobre el mismo registro de rodamiento. El panel superior es la aceleración bruta, dominada por ruido de banda ancha y una ondulación lenta a la frecuencia del eje, sin impactos visibles. El segundo es el mismo registro filtrado en banda de 2 a 4 kilohercios, donde destaca un tren regular de impactos que se amortiguan, con el intervalo entre dos de ellos acotado como uno partido por la frecuencia de paso de elementos rodantes por la pista exterior, 4,8 milisegundos. El tercero es la envolvente de Hilbert de esa señal filtrada, un tren de pulsos positivos con el mismo espaciado. El cuarto es el espectro de esa envolvente, donde el espaciado se ha convertido en un peine de líneas en la frecuencia de paso por la pista exterior y sus armónicos, con las frecuencias de la pista interior y del elemento rodante marcadas y vacías.Cuatro paneles apilados sobre el mismo registro de rodamiento. El panel superior es la aceleración bruta, dominada por ruido de banda ancha y una ondulación lenta a la frecuencia del eje, sin impactos visibles. El segundo es el mismo registro filtrado en banda de 2 a 4 kilohercios, donde destaca un tren regular de impactos que se amortiguan, con el intervalo entre dos de ellos acotado como uno partido por la frecuencia de paso de elementos rodantes por la pista exterior, 4,8 milisegundos. El tercero es la envolvente de Hilbert de esa señal filtrada, un tren de pulsos positivos con el mismo espaciado. El cuarto es el espectro de esa envolvente, donde el espaciado se ha convertido en un peine de líneas en la frecuencia de paso por la pista exterior y sus armónicos, con las frecuencias de la pista interior y del elemento rodante marcadas y vacías.

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 plt
from 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 ms
axes[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 * bpfo
axes[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 muestreo
shaft_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.

  • 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_lines y shaft_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.

  • 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.