Clock Synchronization Error Measurement Techniques for RBIS

Aguirre Selgas, Blanca (2015). Clock Synchronization Error Measurement Techniques for RBIS. Thesis (Master thesis), E.T.S.I. Industriales (UPM).

Description

Title: Clock Synchronization Error Measurement Techniques for RBIS
Author/s:
  • Aguirre Selgas, Blanca
Contributor/s:
Item Type: Thesis (Master thesis)
Masters title: Ingeniería Industrial
Date: April 2015
Subjects:
Faculty: E.T.S.I. Industriales (UPM)
Department: Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[thumbnail of TFM_BLANCA_AGUIRRE_SELGAS.pdf]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview

Abstract

Este Trabajo Fin de Master (TFM) se centra en la sincronización de relojes, un tema que ha ido ganando importancia en algunos campos del sector industrial como la automatización, la robótica y las redes de sensores. Este área es especialmente importante en los sistemas de control automatizados, en los cuales el conocimiento de la hora exacta de un evento es crucial para el correcto funcionamiento del proceso de control. La idea general es que, mediante Protocolos de Sincronizacion (CSP), se obtiene una visión común del tiempo, lo cual hace posible llevar a cabo acciones de forma sincronizada y correlacionar las muestras obtenidas en sensores remotos. Estos protocolos que lo hacen posible utilizan las fechas (timestamps) obtenidas en los eventos comunes (por ejemplo, un mensaje específico de la red) para corregir el reloj de los diferentes nodos. En los últimos años, varios protocolos han aparecido en la literatura científica. El funcionamiento de un protocolo de sincronización se define por dos bloques principales: el propio protocolo y el algoritmo de control (CDA), que en la mayoría de los casos son independientes. El CDA es el algoritmo matemático que calcula la diferencia u offset entre los relojes de las máquinas a sincronizar. Esta tesis se centrará en el desarrollo y el análisis de varios CDAs.
Desafortunadamente, los algoritmos de control que emplean los protocolos son normalmente evaluados sólo en simuladores y con algunas suposiciones poco realistas. En este proyecto, sin embargo, se analiza el comportamiento del protocolo en una instalación real. En particular, el protocolo empleado en esta tesis es RBIS (Reference-Broadcast Infrastructure Synchronization), el cual se emplea en redes WiFi 802.11. Este protocolo ha sido diseñado para ser usado en redes industriales, en particular en aquellas que tienen conexión con cable y conexión WiFi al mismo tiempo, y cada vez está tomando mayor importancia en este campo.
Además, RBIS ha sido desarrollado para WLANs dotados de un Accesss Point (AP). De hecho, RBIS es capaz de sincronizar redes híbridas porque combina características de RBS y PTP. Por un lado, registra los timestamps sólo cuando recibe una sen˜al (como en RBS), lo cual supone la obtención de mejores resultados que otras modalidades, incluso teniendo en cuenta que no compensa los errores de propagación. Merece la pena subrayar que estos retrasos no suponen un aumento relevante del error, puesto que las distancias entre los AP y los nodos a sincronizar no son especialmente significativas. Este error de propagación significa, como máximo, un retraso de algunos cientos de nanosegundos. Por otro lado, la topología típica de una red está formada por varios nodos esclavos que se sincronizan todos con el mismo reloj master, estructura que se da también en el protocolo IEEE 1588 PTP.
Empleando el protocolo RBIS, algunos algoritmos de control propuestos y simulados en específicamente aquellos basados en regresión y en redes neuronales serán evaluados en una instalación real. Esta instalación es un escenario de aplicación que permite asegurar que los resultados son válidos para la mayoría de protocolos de sincronización. El banco de pruebas empleado para el de sarrollo de este proyecto fue cedido por el Consiglio Nazionale delle Ricerche (CNR), en el Politécnico de Turín, para que el alumno realizara los diferentes experimentos que le han permitido llegar a una conclusión sólida con mejoras tangibles en cuanto a los algoritmos de control a emplear en este protocolo. Físicamente, está compuesto por dos CPUs y un sistema de adquisición de datos (un tercer CPU). Uno de los dos procesadores de datos nombrado actúa como nodo master y el otro como nodo esclavo. Ambos ordenadores están equipados con un procesador Inter Core2Duo E7500, trabajando a 2.93GHz. Además, un equipo WiFi IEEE 802.11n sirve de enlace entre las dos máquinas a la hora de realizar los experimentos. Por último, un punto de acceso es el encargado de generar los mensajes de sincronización.
Con esta configuración, se lleva a cabo el proceso: una vez el punto de acceso ha enviado el mensaje de sincronización y este ha sido recibido por las CPUs, cada uno de ellos registra un timestamp, con un identificador único. A continuación, estos timestamps y sus identificadores son colocados en un buff local. Comienzan entonces los subprocesos de envío y recepción de mensajes de seguimiento. Estos mensajes, enviados cada segundo por el nodo master, contienen los más recientes nt timestamps registrados en el mismo. Cuando el esclavo recibe este mensaje, incluye la información en su buff y elimina los posibles duplicados (el protocolo incluye un sistema de control para evitar la pérdida de información que hace que cada dato se envée más de una vez). Siempre desde el procesador esclavo, el próximo paso es el de hacer corresponder los registros del master con los del esclavo mediante los identificadores. Con estas parejas de datos, el nodo esclavo actualiza su reloj virtual en base al algoritmo de control empleado en ese momento.
En este punto, cabe destacar que el objetivo de este trabajo es, de hecho, el de estudiar y comparar algunos CDAs desde el punto de vista del error de sincronización. Así, la parte principal del trabajo consiste en el estudio de las diferentes técnicas, que son después desarrolladas, implementadas e integradas en el protocolo RBIS:
1.Regresión lineal: a grandes rasgos, es un procedimiento matemático para encontrar la curva que mejor se adapta a una colección de puntos, minimizando la suma de los cuadrados de las distancias del punto a la curva.
Este es el método que estaba ya integrado en el protocolo. La mejora que se llevó a cabo fue la traducción de esa parte del código a Python, con los cambios correspondientes en el software de base y la sustitución de variables y procesos para conectar ambos lenguajes. Esta integración se llevó a cabo llamando al intérprete de Python desde el código escrito en C.
La decisión de emplear Python como lenguaje fue impulsada por el hecho de que Python es un lenguaje de programación muy potente, intuitivo y sencillo de aprender. Además, permite desarrollar y testar algoritmos de control con más facilidad que otros lenguajes.
2.Regresión de segundo y tercer orden: en estadística, la regresión polinomial es una variante de la regresión lineal, en la cual la relación entre la variable independiente x y la variable dependiente y se modela como un polinomio de enésimo grado.
Este algoritmo no había sido empleado en el campo de la sincronización de relojes hasta el momento. En cualquier caso, la implementación con Python fue muy sencilla, pues se emplea la misma función que se necesita para calcular la regresión lineal.
3.Filtro de Kalman: es un algoritmo de estimación cuadrática que usa una serie de medidas recogidas en el tiempo, que contienen ruido y otras imprecisiones, y produce estimaciones de variables desconocidas que suelen ser más precisas que las que se basan en una sola medida. Este método, implementado en Python, fue integrado en RBIS y evaluado en la instalación real.
4.Redes Neuronales: las redes neuronales se componen de unidades básicas, en algún modo parecidas a las neuronas reales, que se unen mediante conexiones cuyo peso es modificado como un resultado de un proceso de aprendizaje. Por lo tanto, este método requiere un paso previo de training, durante el cual los datos obtenidos de la instalación se emplean para calcular el peso mejorado de las conexiones y guardarlo en un archivo. Después de eso, la parte del test del algoritmo consiste en el cálculo del tiempo del nodo slave basado en el tiempo del nodo master. Todos estos programas han sido escritos en Python.
El último paso de este trabajo fue la implementación del código de los nuevos algoritmos de control y el estudio de su funcionamiento una vez integrados en el software. Es interesante resaltar que es la primera vez que las redes neuronales son experimentadas en un contexto real (hasta ahora sólo se habían hecho simulaciones). Para analizar estos métodos, el banco de experimentos cuenta con el sistema de adquisición de datos. Al mismo tiempo que la CPU esclavo va ajustando su reloj virtual, ambas máquinas están programadas para generar pulsos periódicamente en sus puertos paralelos (cada 500ms). Estos pulsos son registrados y procesados por el sistema de adquisición de datos, que evalúa el error de sincronización. Este error está producido por diferentes causas, tanto físicas de la propia instalación como del protocolo y, en particular, del algoritmo de control con el cual se lleva a cabo el cálculo de la diferencia entre los timestamps. También está muy influenciado por el número de timestamps para los cuales se realiza este cálculo en cada proceso (k). Por ello, se analizan los métodos de control en función del parámetro k, siguiendo los siguientes pasos:
1.La integración del software en la instalación real (en lenguaje C) y la traducción al lenguaje de programación Python utilizado para implementar los algoritmos de control. Se obtuvo así una nueva versión del software RBIS.
2.La implementación en Python de los algoritmos de control basados en la regresión tanto lineal como polinomial, y su evaluación en términos de precisión en la sincronización. Para ello, se obtuvieron diferentes gráficos que ayudan a comparar el funcionamiento de los distintos CDAs.
3.La construcción de bases de datos obtenidos de los resultados de los experimentos de las fases anteriores, para lo cual se llevaron a cabo ciertas modificaciones en el software de la instalación. Estas bases de datos se emplearán para la fase de entrenamiento o training de las redes neuronales.
4.La escritura del software que realiza el training y el test del algoritmo de redes neuronales. Este software se ha escrito enteramente en Python.
5.Tras la evaluación del correcto funcionamiento de este software con algunas simulaciones, se llevó a cabo la implementación del mismo en el software de RBIS y se probó su funcionamiento en la instalación real.
Una vez realizadas estas actividades, los resultados fueron comparados por medio algunos gráficos. En ellos, se compara el error de sincronización para los diferentes valores del parámetro k para cada CDA. Las conclusiones obtenidas en algunos trabajos de referencia, demuestran que, entre las regresiones de primer, segundo y tercer orden, la regresión lineal es la mejor elección cuando se consideran la cualidad de sincronización y la complejidad computacional al mismo tiempo.
De ese modo, se podría afirmar que los resultados obtenidos son satisfactorios, pues el algoritmo de control basado en redes neuronales, desarrollado íntegramente en la tesis, conlleva mejores resultados que la regresión de primer orden. Además, este algoritmo alcanza mínimos en el error de sincronización para valores de k menores que 750, que suponen una mejora respecto a los otros CDAs estudiados.
Por estos resultados, este trabajo puede tener un impacto en los estudios que se están desarrollando en este campo. Los resultados suponen una mejora en la precisión de la sincronización, y permiten comparar varios CDAs para obtener una solución óptima. De hecho, el software desarrollado por el alumno ha sido utilizado para continuar con el desarrollo de RBIS.
A partir de los objetivos alcanzados, las posibles líneas futuras son:
•Llevar a cabo más experimentos para comprobar el correcto funcionamiento de las redes neuronales sobre la instalación, analizando el comportamiento respecto a las distintas condiciones y variando los parámetros.
•Sería interesante estudiar la posibilidad de optimizar el tiempo de ejecución del código de las redes neuronales incluyendo algunas funciones de la librería numpy, para sustituir los bucles utilizados en los pasos de run-forward y back- propagation.
•En cuanto al algoritmo de control basado en el fi de Kalman, podría desarrollarse un método que tuviese en cuenta la pérdida de paquetes. De ese modo, sería un algoritmo más robusto y podría funcionar integrado en el software de RBIS.
•Por último, se podría llevar a cabo cierta investigación sobre redes neuronales, y extender el código escrito para emplear una red mayor a la que se utiliza en el trabajo, que cuenta solo con tres capas: la capa de entrada, una capa interna y la capa de salida. Por descontado, otros métodos podrían desarrollarse, además de los ya estudiados.

More information

Item ID: 44236
DC Identifier: https://oa.upm.es/44236/
OAI Identifier: oai:oa.upm.es:44236
Deposited by: Biblioteca ETSI Industriales
Deposited on: 22 Dec 2016 07:47
Last Modified: 22 Dec 2016 07:47
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM