You are on page 1of 12

USO DE INTÉRPRETES EN EL PROCESAMIENTO DE VARIABLES

DE CONDICIÓN DE OPERACIÓN MEDIANTE FIGURAS DE


MÉRITO

Olgierd Eysymontt C.
Gerente de Desarrollo
Tea Ltda.
Almirante Riveros 0170, Providencia, Santiago, Chile
Teléfono: 56-2-6342392
Fax: 56-2-6657452
Email´: olgierd.eysymontt@tea-tec.cl
WEB: www.tea-tec.cl

RESUMEN

En este artículo se presenta una metodología para procesar en forma automática variables complejas
y de interés para el monitoreo de condición de operación de maquinaria. Tal es el caso de espectros
de vibración y señales de corriente eléctrica, entre otros. La metodología permite incorporar
criterios similares a los que un analista humano aplicaría, en forma flexible y simple, sin quedar
limitado a un conjunto de funciones de análisis reducido.

Para esto utilizamos el concepto de Figura de Mérito, implementada a través de intérpretes de


lenguaje Python, que mediante scripts o pequeños trozos de código realizan el procesamiento de los
datos y generan índices representativos.

Se presenta una discusión respecto de la utilidad y necesidad de una plataforma de análisis basada
en figuras de mérito. Se analiza el desarrollo de algunas de ellas y los resultados obtenidos mediante
la plataforma Sismo.
INTRODUCCIÓN

La llegada de sistemas continuos de monitoreo de variables de condición, aplicados a


mantenimiento predictivo, ha generado la necesidad de herramientas capaces analizar de forma
flexible grandes volúmenes de información.

Si bien los sistemas de monitoreo continuo (SMC) existen desde hace un tiempo en el mercado,
habitualmente carecen de la flexibilidad y criterio que un analista especializado puede entregar,
dificultando las tareas de análisis y detección oportuna de fallas.

En el mercado se han desarrollado sistemas expertos que correlacionan variables y toman


decisiones en función de los datos obtenidos. Sin embargo, su aplicación práctica ha generado
problemas en los usuarios debido a la complejidad en la configuración y la cantidad de información
requerida, mucha de la cual debe ser ingresada en forma manual.

A continuación, describiremos cómo se realiza el proceso de análisis de variables complejas, como


el caso de las señales de vibraciones, y luego discutiremos sobre un nuevo esquema de análisis por
medio de las denominadas Figuras de Mérito. Este esquema de análisis se ha implementado en la
plataforma Sismo, por lo cual primero explicaremos algunas de las características principales de la
plataforma, para luego analizar la implementación de Figuras de Mérito y las ventajas en el análisis
de variables.

EL PROCESO DE ANÁLISIS DE VIBRACIONES

El análisis de vibraciones es un proceso particularmente complejo debido a la naturaleza


bidimensional de esta variable, la cual tiene una característica temporal y otra en frecuencia. Por
esta razón, las herramientas estadísticas que permiten realizar análisis sencillos inmediatos por
medio de tendencias, quedan limitadas en su aplicación en este tipo de variables. Por ejemplo:
podemos analizar fácilmente la evolución de una variable de temperatura en el tiempo, pero la
evolución de un espectro de vibraciones en el tiempo es ya un diagrama tridimensional, también
conocido como gráfico de cascada, por lo que su análisis ya no es trivial de realizar en forma
automatizada.

Si analizamos la manera en la que un especialista procesa los datos, dependiendo del tipo de
máquina a analizar y de la experiencia del especialista, podremos identificar dos procesos básicos
para determinar el estado de las máquinas:

• Identificación de parámetros: La identificación de parámetros extraíbles a partir de los


datos recolectados, como por ejemplo: presencia de ruido o frecuencias de falla de
rodamientos, el espaciamiento armónico o no armónico de los peaks de vibración, su
amplitud relativa y absoluta, etc.

• Aplicación de criterios: La aplicación de procesos lógicos de decisión sobre los


parámetros extraídos de los datos. Es decir, el analista toma una decisión sobre el estado de
la máquina, en función de la información recopilada y pre-procesada (de la que se han
extraído parámetros de interés). Esto implica muchas veces el análisis de variables de
distinta naturaleza que se correlacionan para determinar la condición de operación de la
máquina (como vibraciones, temperaturas, estado de aceites, etc.).
Los sistemas expertos habitualmente realizan un procesamiento mecánico de la información en base
a un conjunto preprogramado de reglas. Estos son capaces de generar un conjunto finito de índices
o parámetros de interés, ya que el algoritmo de generación de estos índices esta codificado al
interior del mismo software, dejando poco espacio a la adecuación para situaciones no previstas en
la etapa de diseño.

Una solución al problema, sería poder definir el análisis adecuado a cada máquina o tipo de
máquina en forma flexible. Esta definición se realiza al momento de la puesta en marcha de los
sistemas, instancia en la que se definirían los índices necesarios para esa máquina en particular,
transfiriendo parte del criterio del analista a un proceso automatizado, que reporte alarmas cuando
se requiera de la atención de éste.

Este problema, si bien relativamente nuevo a los sistemas de monitoreo de condición de operación,
es ya bien conocido en el mundo del desarrollo de software de negocios. En este tipo de software, la
necesidad de traspasar la lógica del negocio al software, ha generado distintas soluciones. De éstas,
las que han tenido mayor éxito, han sido las que permiten ingresar en forma flexible las reglas que
definen la operación del negocio y los flujos de información, entre el software de administración y
los usuarios.

Siguiendo esta misma idea, se hace necesario entonces una aproximación distinta al problema, en
que el análisis de los datos y la toma de decisiones se simplifiquen y se vuelvan triviales. Esto
permite a un analista especializado, aportar su criterio a un conjunto de datos preprocesados de
manera flexible, dependiente de la naturaleza de cada máquina y su operación.

LA PLATAFORMA SISMO

En este artículo utilizaremos la plataforma Sismo debido a su capacidad de tomar muestras de datos,
aplicando conjuntos de análisis flexibles definidos por el usuario.

Sismo se compone de unidades remotas de adquisición (URA) de datos, situadas habitualmente


cercanas a las máquinas a monitorear. Estas unidades poseen la capacidad de medir diversos tipos
de sensores en forma continua o puntual como: temperatura, velocidad, vibraciones, e incluso
variables eléctricas y de proceso. La captura de señales de vibraciones puede ser realizada a tasa fija
o sincrónica [6], con largos de muestras de hasta 262.144 muestras por vez, permitiendo recoger
espectros de gran resolución.

Las URA’s se conectan a una red distribuida de equipos de comunicaciones y finalmente almacenan
toda su información en una base de datos central, que puede ser accesada en forma local o remota
mediante un software cliente que permite la configuración y operación del sistema.

Sismo se define como una plataforma debido a que permite la medición y el análisis de la
información en forma definida por el usuario, siendo éste es el que define qué medir y qué índices
obtener a partir de las muestras adquiridas. El procesamiento de la información en la plataforma
Sismo se realiza mediante lo que se conoce como Figuras de Merito.

Figuras de Mérito
Una figura de mérito representa un índice, definido por el analista, que idealmente representa una
falla característica de una máquina en particular o algún parámetro de interés para el análisis
posterior. Una figura de mérito puede ser vista también como un operador matemático que entrega
un resultado en función de una muestra de datos. También puede pensarse en una figura de mérito
como un filtro programable de información.

La potencia de la figuras de mérito recae en su implementación que, más que ofrecer un conjunto
reducido de operadores, ofrece un lenguaje de programación al usuario para que este defina con
absoluta flexibilidad las operaciones a realizar. En el caso de la plataforma Sismo, esta ofrece un
conjunto de funciones predefinidas y asistentes que facilitan la introducción a la programación de
figuras de mérito para personas sin experiencia anterior en programación de computadores

El lenguaje utilizado para definir las figuras de mérito en el caso de Sismo es Python [2]. Este es un
lenguaje moderno y simple de programar, del que existen abundantes recursos en Internet, tales
como: librerías nativas de acceso a bases de datos, librerías de análisis numérico y científico [3],
comunicaciones industriales [4] comunicaciones seriales [5], envío de emails y mucho más.

La programación de figuras de mérito no posee requisitos, por lo que una figura de mérito también
puede ser utilizada como un pequeño programa para ejecutar cualquier función. Ejemplos de esto
son enviar un mensaje a un usuario, generar un índice o ambas. La flexibilidad es total.

Implementación de figuras de mérito

La naturaleza flexible de la medición en la plataforma Sismo permite que las muestras de vibración
sean adquiridas a frecuencias de muestreo y número de muestras arbitrarias y definidas por el
usuario. Cada una de estas mediciones, representa una orden que debe ejecutar una URA en
particular. A esta orden llamaremos Comando y el resultado de su ejecución podrá ser un valor
numérico simple como la temperatura o velocidad de la máquina, o bien, un arreglo de datos que
representen una muestra en el tiempo de vibraciones, velocidad u otra señal.

Las figuras de mérito generadas se asocian a un comando en particular y se diseñan para analizar esa
muestra de datos en particular. En cada Comando es posible implementar tener todas las figuras de
mérito que se desee.

Ejecución de figuras de mérito

Las Figuras de mérito se ejecutan luego de la ejecución del Comando respectivo. Para su ejecución,
se genera un ambiente de ejecución que se carga con las variables y objetos necesarios para
simplificar la tarea al asistente. De este modo, el usuario sólo debe ingresar el algoritmo de análisis.
Este ambiente de ejecución es un Intérprete de Python, cargado con los datos del comando en
particular que ejecuta las sentencias especificadas en el código de cada una de sus figuras de mérito.

En el caso de la plataforma Sismo y para el caso de comandos de medición de aceleración,


velocidad y temperatura, los datos insertados al ambiente de ejecución son
• Comandos de vibración :
- La muestra tomada del sensor de vibración (acelerómetro)
- El módulo de la FFT de esta muestra
• Comando de muestras de velocidad vuelta a vuelta
- La muestra tomada del tacómetro (Proxímetro inductivo)
• Comandos de valores de velocidad y temperatura
- El valor leído del sensor de temperatura (RTD)
- Funciones de acceso que permite obtener datos históricos para hacer análisis
estadístico de los valores.

Adicionalmente, cada ambiente es cargado con elementos de conexión a la base de datos, de manera
de: inyectar órdenes de ejecución de comandos, ingresar datos al registro de eventos del sistema o
realizar consultas de información.

Las figuras de mérito pueden ser generadas con posterioridad a las mediciones y pueden ser
ejecutadas sobre muestras de datos ya adquiridas o antiguas, convirtiéndose en filtros de post-
proceso.

Determinación de límites para figuras de mérito

Las figuras de mérito no realizan necesariamente operaciones normadas sobre los datos, por lo que
en la mayoría de los casos no existen normas al respecto, por tanto, los límites dependerán
primariamente de la experiencia del analista y el análisis en el tiempo de las condiciones de
operación de la máquina que permitan identificar las condiciones de falla en las figuras de mérito.

Análisis multi-variable y el motor de reglas

Todo lo que hemos revisado hasta ahora corresponde al análisis de muestras o valores
correspondientes a un solo Comando particular, con el objetivo de generar los parámetros
necesarios para poder tomar decisiones.

Las decisiones automatizadas en la plataforma Sismo se realizan a través del motor de reglas.

El motor de reglas es el componente de Sismo que ejecuta en orden las reglas definidas por el
usuario. Las reglas no son más que scripts o pequeños programas similares a las figuras de mérito,
cuyo ambiente de ejecución o intérprete ha sido cargado con todas las figuras de mérito del sistema.
De esta manera, es posible realizar análisis multi-variable.

En la plataforma Sismo [1], los comandos son ejecutados en bloques o ciclos según una agenda
definida por el usuario. Las reglas se ejecutan una vez que todos los comandos del ciclo de
medición han sido ejecutados, así como cada una de sus correspondientes figuras de mérito.

METODOLOGÍA

Para mostrar el funcionamiento de las figuras de mérito hemos generado algunos ejemplos que se
presentan junto con los resultados de su ejecución. Para este artículo, hemos trabajado con un
comando de medición sincrónica de baja resolución que permite detectar condiciones anormales.
Este comando a su vez, permite desencadenar la ejecución otro comando de alta resolución ante una
detección de condición anormal, de manera que existan datos detallados de la condición encontrada
dentro de la misma figura de mérito.
Las figuras de mérito programadas fueron ejecutadas durante un mes y los resultados se muestran en
cada caso. Las figuras de mérito programadas han sido hechas deliberadamente simples para
facilitar su entendimiento. No se presenta el código de reglas ya que estas no generan resultados
gráficos sino acciones operativas, como por ejemplo, enviar un email; por lo que es muy difícil
mostrar su funcionamiento en este artículo.

Figuras de mérito de comando de aceleración sincrónica

Este comando es de baja resolución (2,048 líneas) por lo que utiliza poco espacio de
almacenamiento. Sin embargo, permite detectar las condiciones anómalas y programar la ejecución
de un comando similar pero de mucha mayor resolución (131,072 líneas) que permita al analista
disponer de información de detalle de la condición anómala.

El módulo de la FFT de una muestra de este comando se presenta en la figura 1.

Figura 1: Comando de vibración sincrónica de baja resolución

La ventaja de este comando es que al ser muestreado en forma sincrónica, el análisis de la


información es muy sencillo pues los peaks de vibración no cambian de posición en el tiempo, ante
fluctuaciones de velocidad de la máquina.

La información capturada durante un mes por este comando, es procesada a través de las figuras de
mérito y su resultado se grafica posteriormente.

Las figuras de mérito generadas para este comando son:

1X – armónico fundamental

El código que genera esta figura de mérito es:


# TODO LO QUE COMIENZA CON “#” ES UN COMENTARIO
# Calculo de la energía entre armónicas de una FFT
# consideramos una banda de 0.2X alrededor del bin 1X

# limites de la banda en términos armónicos


armonica_ini = 0.9
armonica_final = 1.1
# llamamos al utilitario que suma la energía
energia = VibSync.energyHarm(fm,fft,armonica_ini,armonica_final)
# establecemos el valor de la figura de merito
fm.setCalc_val(energia)

# determinamos si hay que ejecutar el comando de alta resolución


numero 4355
limite_energia = 0.1
if energia > limite_energia:
fm.addComandoCola(4355,1)

Como vemos, el comando es bastante sencillo, solo utiliza la llamada a una función auxiliar que
suma la energía en la banda deseada y la función auxiliar que programa la ejecución del comando
de alta resolución. El resultado de esta figura de mérito sobre los datos de un mes, para este mismo
comando (tomados cada 20 minutos) se presentan en la figura 2.

2X – Segunda componente armónica

En forma análoga al caso anterior, se genera una figura de mérito para rastrear la componente 2X.
El resultado se presenta en la figura 3.

Porcentaje de la energía total de la suma de las bandas 1X y 2X

Esta figura de mérito calcula la relación entre la energía de las bandas 1X y 2X sumadas respecto a
toda la energía vibratoria generada por la máquina, cuyo código se presenta a continuación:

energia_1X2X = VibSync.SumaArm(fm,fft,0.95,1.05)+VibSync.SumaArm(fm,fft,1.95,2.05)
energia_total= VibSync.SumaArm(fm,fft,0.01,31.99)
# entregamos el resultado de la figura de merito
porc = 100*energia_1X2X/energia_total
fm.setCalc_val(porc)

Energía total

Para estimar la energía total (no potencia espectral), se ha utilizado simplemente la suma de las
componentes de la FFT, el código es:

# Calculo de la energía entre armónicas de una FFT


armonica_ini = 1
# este espectro cubre hasta la armónica 32
armonica_final = 31.9
# usamos una función auxiliar que realiza la suma
energia = VibSync.SumaArm(fm,fft,armonica_ini,armonica_final)
fm.setCalc_val(energia)

# determinamos si hay que ejecutar el comando de alta resolución


limite_energia = 10
if energia > limite_energia:
fm.addComandoCola(4355,1)
Numero de armónicos presentes
Esta figura de mérito cuenta los peaks armónicos sobre un determinado umbral.
# este script cuenta el numero de armónicos presentes sobre un umbral determinado
umbral=1E-3; # = 1 mg
contador=0;
for i in range(1,32):
ini = i-0.01;
fin = i+0.01;
energia = VibSync.energyHarm(fm,fft,ini,fin);
if energia >= umbral :
contador=contador+1
print 'Armonico ',i,' sobre el umbral'

# entregamos el resultado de la figura de merito


fm.setCalc_val(contador)

# determinamos si hay que ejecutar el comando de alta resolución


if contador > 2:
fm.addComandoCola(4355,1)

% armónico respecto del total

Para estimar la porción de la energía espectral que corresponde a componentes armónicos, hemos
generado la siguiente figura de mérito:
# Calculo de la energía total armónica
len_fft=len_sample/2;

# las figuras de merito pueden generar mensajes de texto para revisar su ejecución
print 'Len sample =' , len_sample;
print 'Len fft =' , len_fft;

# Calculamos la energía total


energia=VibSync.Suma(fft,0,len_fft-1);
print 'energia = ',energia;
energia_mg=energia*1000;
print 'energia en mg = ',energia_mg;

# energía de las armónicas


energia_arm=0;
# iteramos para sumar las 31 armónicas del espectro
for i in range(1,31):
energia_banda=VibSync.SumaArm(fm,fft,i-0.1,i+0.1);
energia_arm=energia_arm+energia_banda;
#print 'Arm ',i,' desde ',ini,' hasta ',fin,', energia=',energia_banda,' energia
acumulada=',energia_arm;

# convertimos la energía a unidad mg


energia_arm_mg=energia_arm*1000;
porc_arm = 100*energia_arm_mg/energia_mg;

# desplegamos un mensaje
print 'energia arm total = ',energia_arm_mg,' (mg), % del total=',porc_arm,'%';

# establecemos el valor de la figura de merito


fm.setCalc_val(porc_arm);
RESULTADOS Y DISCUSIÓN

A continuación se presentan gráficos con los índices generados mediante las figuras de mérito antes
descritas.

1X – Armónica Fundamental

Figura 2: 1X

2X – Segunda Armónica

Análogo al anterior, se genero una figura de mérito para rastrear la componente 2X, el resultado se
presenta en la figura 3.

Figura 3: 2X
Porcentaje de la suma de las bandas 1X y 2X respecto de la energía total

Figura 4: % de la energía de las bandas 1X y 2X respecto del total

Energía total

Figura 5: Energía total


Numero de armónicos presentes

Figura 6: Número de armónicos presentes


Porcentaje armónico respecto del total

Figura 7: % armónico respecto del total

Como se puede apreciar de los gráficos anteriores, las figuras de mérito son una potente
herramienta, permitiendo extraer información de detalle sobre muestras muy complejas de datos,
como es el caso de los espectros de vibración.

CONCLUSIONES

• Las figuras de mérito implementadas mediante intérpretes de lenguaje Python


efectivamente resuelven el problema de extraer índices a partir de muestras complejas.

• Las figuras de mérito permiten al analista traspasar parte de su criterio a sistemas


automatizados de medición y análisis como la plataforma Sismo.

• La flexibilidad en la programación de las figuras de mérito permite adecuar el análisis a


cualquier tipo de variable por compleja que esta sea.

• Las figuras de mérito constituyen la base de un sistema experto basado en el criterio y


experiencia que puede ir adaptándose en el tiempo a los cambios en las máquinas, los
procesos u otras condiciones.

• Las figuras de mérito permiten el desarrollo de índices muy complejos, junto con la
incorporación y desarrollo de nuevas técnicas de análisis complementarias. Tal es el caso
wavelets, filtros digitales FIR y IIR, procesos de demodulación de señales, etc. Esto es
posible de implementar en forma sencilla, ya que estas corresponden a algoritmos que
pueden utilizarse externamente, o bien, es posible desarrollarlas en el mismo intérprete en
Python, U claro ejemplo de esto es la librería SciPy [3] y otras que incorporan una gran
cantidad de algoritmos matemáticos pre-programados, los cuales pueden incorporarse para
su uso en figuras de mérito.
• La capacidad de ejecutar figuras de mérito sobre muestras ya adquiridas en el tiempo,
permite extender el uso de las figuras de mérito de Sismo para realizar análisis estadístico y
determinación de patrones de falla, tala como un verdadero laboratorio digital de análisis de
señales.

REFERENCIAS

[1] Tecnologías Electrónicas Aplicadas (Tea) Ltda., http://www.tea-tec.cl

[2] El lenguaje Python http://www.python.org

[3] SciPy http://www.scipy.org/

[4] PPLT http://pplt.berlios.de/

[5] PySerial http://pyserial.sourceforge.net/

[6] Olgierd Eysysmontt - Aplicación del muestreo sincrónico al mantenimiento predictivo -


MAPLA 2006

©Derechos reservados por Olgierd Eysymontt, TEA Ltda., prohibida su reproducción parcial o total
sin el consentimiento del autor.

You might also like