154
Centro Nacional de Investigación y Desarrollo Tecnológico Departamento de Electrónica TESIS DE MAESTRÍA EN CIENCIA Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales presentada por Fernando Martínez Ramírez Ing. en Cibernética por la Universidad del Sol como requisito para la obtención del grado de: Maestría en Ciencias en Ingeniería Electrónica Director de tesis: Dr. Carlos Daniel García Beltrán Co-Director de tesis: Dr. Gerardo Vicente Guerrero Ramírez Cuernavaca, Morelos, México 23 de Febrero 2012

263MC_fmr

Embed Size (px)

Citation preview

Page 1: 263MC_fmr

Centro Nacional de Investigación y Desarrollo Tecno lógico

Departamento de Electrónica

TESIS DE MAESTRÍA EN CIENCIA

Control Embebido de un Vehículo Guiado Automáticame nte Mediante Redes Neuronales Artificiales

presentada por

Fernando Martínez Ramírez Ing. en Cibernética por la Universidad del Sol

como requisito para la obtención del grado de: Maestría en Ciencias en Ingeniería Electrónica

Director de tesis: Dr. Carlos Daniel García Beltrán

Co-Director de tesis:

Dr. Gerardo Vicente Guerrero Ramírez

Cuernavaca, Morelos, México 23 de Febrero 2012

Page 2: 263MC_fmr
Page 3: 263MC_fmr

Centro Nacional de Investigación y Desarrollo Tecno lógico

Departamento de Electrónica

TESIS DE MAESTRÍA EN CIENCIA

Control Embebido de un Vehículo Guiado Automáticame nte Mediante Redes Neuronales Artificiales

presentada por

Fernando Martínez Ramírez Ing. en Cibernética por la Universidad del Sol

como requisito para la obtención del grado de: Maestría en Ciencias en Ingeniería Electrónica

Director de tesis: Dr. Carlos Daniel García Beltrán

Co-Director de tesis: Dr. Gerardo Vicente Guerrero Ramírez

Jurado

Dr. Alejandro Rodríguez Palacios - Presidente Dr. Carlos Daniel García Beltrán - Secretario

M. C. José Martín Gómez López - Vocal Dr. Gerardo Vicente Guerrero Ramírez - Vocal Suple nte

Cuernavaca, Morelos, México. 23 de Febrero 2012

Page 4: 263MC_fmr
Page 5: 263MC_fmr

M10

Page 6: 263MC_fmr
Page 7: 263MC_fmr

M11

Page 8: 263MC_fmr
Page 9: 263MC_fmr

Dedico este trabajo y todo el esfuerzo puesto

en él a mis padres J. Isabel y Ma. Luisa y a mi amada

esposa Adriana Lorena.

Page 10: 263MC_fmr
Page 11: 263MC_fmr

Agradecimientos

Primeramente le agradezco a Dios Señor Nuestro por haberme dado licencia de vida, paciencia y salud, también por haberme puesto en este camino para poderme superarme, así también como la protección a todos mis seres queridos.

A mi querida Madre por apoyarme siempre y estar ahí paso a paso durante toda mi carrera profesional y durante toda mi vida desde que nací hasta hoy en día y le agradezco porque siempre me ha dado ánimos de seguir adelante.

A mi Padre por ser un ejemplo para mí, por ayudarme y apoyarme cuando lo he necesitado, por sus consejos acertados en todo momento.

A Lorena por ser la parte más importante de mi vida, por ser mi mejor e incondicional amiga, por ser una esposa comprensiva y por llenar mi vida de felicidad con todo su amor.

A mis hermanos Julio e Isabel, por su apoyo.

Le agradezco al Centro Nacional de Investigación y Desarrollo Tecnológico por su apoyo institucional, así como haberme dado todas las herramientas necesarias para poder desarrollar y llevar acabo mi trabajo de tesis.

Al Conacyt por haberme apoyado económicamente en este largo camino, ya que sin ese apoyo pudiera haber sido muy difícil haber salido adelante.

Al ECEST por su apoyo con la beca de movilidad, que me apoyo económicamente para finalizar este trabajo de tesis.

A mis compañeros del Cenidet por u amistad y apoyo, especialmente a Gloria, Eunice, Lino, Iván, Manuel, Alfredo y Elfrich.

A mi director de tesis Dr. Carlos Daniel García Beltrán por guiarme y apoyarme, paso a paso durante todo el desarrollo del trabajo y por haberme dado su amistad.

A mi co-director de tesis Dr. Gerardo Vicente Guerrero Ramírez por su apoyo y compresión.

A mis revisores, Dr. Alejandro Rodríguez Palacios y M. C. José Martin Gómez López por sus acertados comentarios que me ayudaron a superarme y mejorar este trabajo.

Page 12: 263MC_fmr
Page 13: 263MC_fmr

Resumen

Este trabajo de tesis está orientado al control de robots móviles del tipo Two Wheel Mobile Robot, conocido como Vehículo Guiado Automáticamente (VGA). Se ocupó un modelo matemático de éste para las pruebas en simulación y para las pruebas de implementación se utilizó el prototipo diseñado en [Camarena'09].

Se presenta un estudio de las redes neuronales recurrentes de alto orden; estas redes neuronales, junto con los Filtros de Kalman Extendido (para entrenar a éstas últimas), son utilizados como una técnica de identificación de sistemas no lineales. Posteriormente se presenta el estudio de la técnica Block Control, como técnica de control para realizar el seguimiento de trayectoria de sistemas no lineales. También se presenta la unión de estas técnicas, con el fin de tener mayores ventajas, una de las cuales es obtener un modelo matemático que represente la dinámica y los parámetros del sistema para aplicar una ley de control. Como parte de la metodología se desarrollan ejemplos tanto del identificador como de la técnica de control y de la unión mencionada.

Se presentan resultados de simulación del control del VGA, en donde se utiliza el identificador neuronal y se diseña una ley de control basado en este. Se aplicó el algoritmo de de la ley de control propuesto al vehículo guiado automáticamente y se probó con diversas trayectorias. Para validar su desempeño se comparan los índices de desempeño de la técnica que se presenta en [Camarena'09] y con el control diseñado en este trabajo. Teniendo como resultado que los índices de desempeño obtenidos en este trabajo son mejores.

Se implementaron los algoritmos en un sistema embebido, en este caso se trabajó con una tarjeta de evaluación dsPic que se encuentra montada en el prototipo y se logró independizar el vehículo guiado automáticamente, el cual se encontraba conectado a una computadora. Finalmente, se presenta el diseño electrónico de los elementos utilizados.

Page 14: 263MC_fmr
Page 15: 263MC_fmr

Abstract

This thesis work is oriented to the control of mobile robots of the type Two Wheel Mobile Robot, known as an Automatic Guided Vehicle (AGV). A mathematical model of this was used for the simulation tests and the implementation tests were made with the prototype designed in [Camarena'09].

A study of the Recurrent High Order Neural Networks is presented; these neural networks, together with the Extended Kalman Filter (in order to train these last ones) are utilized as an identification technique of non-linear systems. Subsequently the study of Block Control Technique is presented as a control technique in order to carry out the following of trajectory tracking of n on-linear systems. The union of these techniques is presented, with the purpose of having greater advantages; one of those is obtaining a mathematic model that represents the dynamic and the parameters of the system in order to apply a law of control. As part of the methodology examples are developed on the identifier, as well as in the control technique and of the mentioned union.

The simulation results of control of VGA are presented, in where the neural identifier is used and a control law based on the neural identifier is designed. The control proposal algorithm was applied (which was based on a neural identifier) to the automatic guided vehicle and it was proved with diverse trajectories. In order to validate its performance the indexes of performance of the technique that is presented in [Camarena'09] are comparing with the control designed in this job. Having as a result that the indexes of performance obtained in this job are better.

The algorithms were implemented in an embedded system, in this case it was worked with an evaluation card of dsPic that is found mounted on the prototype and the independent operation of the automatic guided vehicle was achieved. Finally, the electronic design of the elements utilized was presented.

Page 16: 263MC_fmr
Page 17: 263MC_fmr

i

Contenido

Contenido ........................................................................................................................................ i

Lista de Figuras ............................................................................................................................. v

Lista de Tablas .............................................................................................................................. ix

Capítulo 1 ....................................................................................................................................... 1

Sistemas de Control y Vehículos Guiados Automáticamente ................................................... 1

1.1 Introducción ................................................................................................................. 1 1.1.1 La Robótica ................................................................................................................. 2

1.2 Control del Vehículo Guiado Automáticamente .............................................................. 4

1.3 Caso de estudio: VGA-Cenidet .......................................................................................... 6

1.4 Problemática ........................................................................................................................ 7

1.5 Propuesta de solución ......................................................................................................... 9

1.6 Hipótesis ............................................................................................................................. 11

1.7 Objetivos ............................................................................................................................ 11

1.8 Estructura de la tesis......................................................................................................... 11

Capítulo 2 ..................................................................................................................................... 14

Redes Neuronales Recurrentes de Alto Orden ......................................................................... 14

2.1 Redes Neuronales Biológicas ............................................................................................ 14

2.2 El modelo matemático de una neurona ........................................................................... 15

2.3 Redes Neuronales Artificiales .......................................................................................... 16 2.3.1 Tipos de funciones de activación .............................................................................. 17 2.3.2 Arquitectura ............................................................................................................... 19

2.4 Identificación con Redes Neuronales Recurrentes de Alto Orden ................................ 20

2.5.1 Filtro de Kalman Extendido ..................................................................................... 21

2.6 Ejemplos ............................................................................................................................ 22

2.6.1 Identificación neuronal de un satélite en orbita ...................................................... 23 2.6.2 Identificación de un Oscilador de Van der Pol........................................................ 26 2.6.3 Identificación neuronal de un motor de corriente continua con excitación separada............................................................................................................................... 28

2.7 Conclusiones ...................................................................................................................... 31

Capítulo 3 ..................................................................................................................................... 34

Page 18: 263MC_fmr

ii

Block Control ............................................................................................................................... 34

3.1 Introducción al Block Control ......................................................................................... 34

3.2 Diseño del Block Control .................................................................................................. 36 3.2.1 Ejemplo: Sistema numérico ...................................................................................... 39

3.3 Block Control utilizando RNA tipo RHONN .................................................................. 44 3.3.1 Diseño de control neuronal ....................................................................................... 44 3.3.2 Ejemplo: Control neuronal de un satélite en órbita ............................................... 45

3.4 Conclusión del capítulo ..................................................................................................... 47

Capítulo 4 ..................................................................................................................................... 49

Diseño de Control Basado en Identificación Neuronal para el VGA ...................................... 49

4.1 Modelo matemático del VGA usado en simulación ........................................................ 49

4.2 Trayectorias empleadas en el trabajo .............................................................................. 56

4.3 Control del VGA mediante Block Control ...................................................................... 58

4.4 Identificación neuronal del VGA ..................................................................................... 60

4.5 Identificación neuronal del VGA – Cenidet en lazo cerrado ........................................ 63

4.6 Control del VGA mediante BC con uso de RNA tipo RHONN ..................................... 64

4.7 Resultados .......................................................................................................................... 67

4.7.1 Block Control ............................................................................................................. 67 4.7.2 Block Control con identificador neuronal tipo RHONN ........................................ 72

4.7.3 Control propuesto en [Camarena’09] ...................................................................... 76

4.8 Resultados finales .............................................................................................................. 80

Capítulo 5 ..................................................................................................................................... 84

Implementación en el VGA – Cenidet ....................................................................................... 84

5.1 Estructuras electrónicas del VGA – Cenidet .................................................................. 84 5.1.1 Configuración del VGA – Cenidet de acuerdo a [Camarena'09] .......................... 84

5.1.2 Configuración del VGA – Cenidet con el sistema embebido .................................. 85

5.2 Implementación del hardware ......................................................................................... 86 5.2.1 Conexiones entre el dSpace y el VGA – Cenidet ..................................................... 86 5.2.2 Encoder de los motores del VGA – Cenidet............................................................. 88 5.2.3 Tarjeta de Evaluación dsPic PRO 4 ......................................................................... 89 5.2.4 Configuración de los encoders de los motores del VGA – Cenidet para el sistema embebido.............................................................................................................................. 91

5.3 Programación de los algoritmos de control e identificación neuronal diseñados. ....... 94 5.3.1 Programación de los algoritmos en el dSpace ......................................................... 94 5.3.2 Programación de los algoritmos en la tarjeta dsPIC Pro 4 .................................... 95

5.4 Pruebas............................................................................................................................... 97

5.4.1 Pruebas en el dSpace ................................................................................................. 97 5.4.2 Pruebas en sistema embebido. ................................................................................ 100

Page 19: 263MC_fmr

iii

5.5 Conclusiones del capítulo ............................................................................................... 102

Capítulo 6 ................................................................................................................................... 104

Conclusiones .............................................................................................................................. 104

6.1 Conclusiones .................................................................................................................... 104

6.2 Aportaciones .................................................................................................................... 105

6.3 Trabajos Futuros ............................................................................................................ 106

Anexo A ...................................................................................................................................... 108

Programas del sistema embebido ............................................................................................. 108

A.1 Programa lector de encoders. ........................................................................................ 108

A.2 Programa de algoritmos en dsPic Pro 4 ....................................................................... 109

Anexo B ...................................................................................................................................... 124

Configuración de conexión del VGA – Cenidet ...................................................................... 124

B.1 Modulo de conexiones .................................................................................................... 124

Bibliografía ................................................................................................................................ 126

Page 20: 263MC_fmr

iv

Page 21: 263MC_fmr

v

Lista de Figuras

Figura 1. Ejemplos de VGA utilizados en la industria. .............................................. 4

Figura 2. VGA tipo TWMR en el plano “xy”. ............................................................ 6

Figura 3. VGA - Cenidet de izquierda a derecha: vista de la parte superior donde se observan los circuitos de potencia, vista frontal y vista trasera donde se observa el cable de conexión hacia la computadora. ................................................................... 7 Figura 4. Péndulo en el plano xy. ................................................................................ 8 Figura 5. Aro en un plano de 3 dimensiones............................................................... 8

Figura 6. Diagrama a bloques del control con identificación mediante RNA tipo RHONN. .................................................................................................................... 10 Figura 7. Neurona Biológica. .................................................................................... 15 Figura 8. Modelo de una red neuronal. .................................................................... 16 Figura 9. Identificación del modelo matemático de un satélite en órbita ................ 24 Figura 10. Errores de identificación del satélite en órbita. ...................................... 25

Figura 11. Evolución de los pesos sinápticos de un satélite en órbita. ..................... 25

Figura 12. Identificación del oscilador Van der Pol ................................................. 27

Figura 13. Errores de identificación del oscilador Van der Pol. .............................. 27

Figura 14. Evolución de los pesos sinápticos de la identificación del oscilador Van der Pol........................................................................................................................ 28 Figura 15. Identificación del estado de un motor de CD de excitación separada. ... 30

Figura 16. Errores de identificación de motor de CD de excitación separada. ....... 30

Figura 17. Pesos sinápticos de un motor de CD de excitación separada. ................. 31

Figura 18. Representación gráfica de la forma controlable a bloques. .................... 36

Figura 19. Comportamiento del ejemplo numérico. ................................................ 41

Figura 20. Señal deseada para el seguimiento de x1. ................................................ 41

Figura 21. Seguimiento de trayectoria de un ejemplo numérico por medio de Block Control. ...................................................................................................................... 42 Figura 22. Estado del sistema numérico con perturbaciones y aplicando Block Control. ...................................................................................................................... 43 Figura 23. Seguimiento de trayectoria tomando en cuenta perturbaciones. ........... 43 Figura 24. Superficie deslizante del ejemplo numérico. ........................................... 44

Figura 25. Seguimiento de trayectoria de un satélite en órbita. ............................... 46

Figura 26. Errores de seguimiento de un satélite en órbita. ..................................... 47

Figura 27. VGA tipo TMRW en el plano “xy” para el modelo matemático generalizado............................................................................................................... 49 Figura 28. Trayectoria Hélice en el plano “xy”. ....................................................... 57

Figura 29. Trayectoria Circulo en el plano “xy”. ..................................................... 57

Figura 30. Trayectoria Cuadrado en el plano “xy”. ................................................. 58

Figura 31. Identificación del VGA en lazo abierto. .................................................. 61

Figura 32. Errores de identificación del VGA con RNA tipo RHONN. .................. 62 Figura 33. Pesos sinápticos del identificador neuronal del VGA. ............................ 62

Page 22: 263MC_fmr

vi

Figura 34. Identificación del VGA – Cenidet con una RNA tipo RHONN. ............. 64 Figura 35. Errores de identificación del VGA – Cenidet en lazo cerrado. ............... 64

Figura 36. Seguimiento del VGA a la trayectoria Hélice por BC. ............................ 68

Figura 37. Seguimiento del VGA a la trayectoria Hélice por BC en el plano “xy”. . 69 Figura 38. Seguimiento del VGA a la trayectoria Círculo por BC. .......................... 69

Figura 39. Seguimiento del VGA a la trayectoria Círculo por BC en el plano “xy”. .................................................................................................................................... 70

Figura 40. Seguimiento del VGA a una trayectoria Cuadrado con BC. .................. 71

Figura 41. Seguimiento del VGA a una trayectoria Cuadrado con BC en el plano “xy”. ........................................................................................................................... 71 Figura 42. Seguimiento del VGA a una trayectoria Hélice con BC con identificador neuronal tipo RHONN. .............................................................................................. 72 Figura 43.Seguimiento del VGA a una trayectoria Hélice con BC con identificador neuronal tipo RHONN en el plano “xy”. ................................................................... 73 Figura 44. Seguimiento del VGA a una trayectoria Círculo con BC con identificador neuronal tipo RHONN. ........................................................................ 74 Figura 45. Seguimiento del VGA a una trayectoria Círculo con BC con identificador neuronal tipo RHONN en el plano “xy”. ............................................. 74

Figura 46. Seguimiento del VGA a una trayectoria Cuadrado con BC con identificador neuronal tipo RHONN. ........................................................................ 75 Figura 47.Seguimiento del VGA a una trayectoria Cuadrado con BC con identificador neuronal tipo RHONN en el plano “xy”. ............................................. 75

Figura 48. Seguimiento del VGA a una trayectoria Hélice con control propuesto en el trabajo de [Camarena’09]. ..................................................................................... 76 Figura 49. Seguimiento del VGA a una trayectoria Hélice con control propuesto en el trabajo de [Camarena’09] en el plano “xy”........................................................... 77

Figura 50. Seguimiento del VGA a una trayectoria Círculo con control propuesto en el trabajo de [Camarena’09]. ................................................................................ 77 Figura 51. Seguimiento del VGA a una trayectoria Círculo con control propuesto en el trabajo de [Camarena’09] en el plano “xy”. ..................................................... 78

Figura 52. Seguimiento del VGA a una trayectoria Cuadrado con control propuesto en el trabajo de [Camarena’09]. ................................................................................ 79 Figura 53. Seguimiento del VGA a una trayectoria Cuadrado con control propuesto en el trabajo de [Camarena’09] en el plano “xy”. ..................................................... 79

Figura 54. IAE de los controles aplicados al VGA. ................................................... 80

Figura 55. Diagrama a bloques de la estructura del VGA – Cenidet e interacción de esté con el dSpace de acuerdo a [Camarena'09]........................................................ 85

Figura 56. Esquema de implementación. .................................................................. 86

Figura 57. Señales que usa el dSpace para el control del VGA - Cenidet. ............... 87 Figura 58. Señales de entrada en el VGA – Cenidet [Camarena'09]. ....................... 87

Figura 59. Encoder HEDS-5600. ............................................................................... 88 Figura 60. Diagrama de conexiones del encoder HEDS-5600. ................................. 89

Figura 61. Pulsos del encoder de acuerdo a la dirección de giro. ............................. 89

Figura 62. Bus en la arquitectura Harvard. .............................................................. 90

Page 23: 263MC_fmr

vii

Figura 63. Tarjeta de evaluación dsPic Pro 4. .......................................................... 91

Figura 64. Diagrama de flujo del lector de encoder. ................................................ 93

Figura 65. Tarjeta lectora de encoders. .................................................................... 93 Figura 66. VGA - Cenidet con el dsPic Pro 4 y tarjetas de encoder. ....................... 94

Figura 67. Diagrama de secuencia en el tiempo del programa en el dSpace. .......... 95

Figura 68. Diagrama de flujo del programa de la tarjeta dsPic Pro 4. .................... 96

Figura 69. Diagrama de secuencia en el tiempo del dsPic. ....................................... 97

Figura 70. Identificación del VGA - Cenidet con RNA tipo RHONN...................... 98 Figura 71. Seguimiento de trayectoria de la posición x y posición y. ....................... 99 Figura 72.Seguimiento de trayectoria en el plano "xy". .......................................... 99

Figura 73. Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 1 ms. ..................................................................................................... 100 Figura 74.Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 5 ms. ..................................................................................................... 101 Figura 75. Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 10 ms. ................................................................................................... 101 Figura 76. Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 25 ms. ................................................................................................... 102 Figura 77. Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 50 ms. ................................................................................................... 102

Page 24: 263MC_fmr

viii

Page 25: 263MC_fmr

ix

Lista de Tablas

Tabla 1. Clasificación de los robots según T. M. Knasel. ........................................... 3

Tabla 2. Tipos de control utilizados en el VGA tipo TWMR. .................................... 5

Tabla 3. Tipos de modelos matemáticos que usan los autores. .................................. 5

Tabla 4. Funciones de activación de las redes neuronales........................................ 18

Tabla 5. Arquitecturas de redes neuronales ............................................................. 19

Tabla 6. Valores de los parámetros del VGA usados en la simulación. ................... 55 Tabla 7. Índices de desempeño para el VGA con BC siguiendo una trayectoria Hélice. ........................................................................................................................ 67 Tabla 8. Índices de desempeño del VGA con BC siguiendo una trayectoria Círculo. ................................................................................................................................... 70

Tabla 9. Índices de desempeño del VGA con BC siguiendo una trayectoria Cuadrado. .................................................................................................................. 71 Tabla 10. Índices de desempeño del VGA con BC con identificador neuronal tipo RHONN siguiendo una trayectoria Hélice. .............................................................. 73

Tabla 11.Índices de desempeño del VGA con BC con identificador neuronal tipo RHONN siguiendo una trayectoria Círculo. ............................................................ 73

Tabla 12. Índices de desempeño del VGA con BC con identificador neuronal tipo RHONN siguiendo una trayectoria Cuadrado. ........................................................ 76

Tabla 13. Índices de desempeño del VGA con el control propuesto en [Camarena’09] siguiendo una trayectoria Hélice. .................................................... 76

Tabla 14. Índices de desempeño del VGA con el control propuesto en [Camarena’09] siguiendo una trayectoria Circulo. .................................................. 78

Tabla 15. . Índices de desempeño del VGA con el control propuesto en [Camarena’09] siguiendo una trayectoria Cuadrado. ............................................. 78

Tabla 16. Índices de desempeño de los controles utilizados sobre el VGA con diversas trayectorias. ................................................................................................ 80 Tabla 17. Acciones que tomo el motor de acuerdo a los bits de dirección. .............. 87

Page 26: 263MC_fmr

x

Page 27: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

1

Capítulo 1

Sistemas de Control y Vehículos Guiados Automáticamente

1.1 Introducción

El control automático ha desempeñado una función vital en el avance de la ingeniería y la ciencia, el cual es el medio en el que los sistemas mecánicos, eléctricos, químicos o biológicos, mantienen su equilibrio. El control automático ha sido de gran importancia para el ser humano debido a la necesidad de realizar actividades en el menor tiempo posible, de manera fácil y segura. Además el control automático se volvió una parte importante e integral de los procesos modernos industriales y de manufactura [Ogata'03].

En unos inicios el control automático se creó para satisfacer algunas necesidades del ser humano, como por ejemplo el flotador mecánico, que se relata en los años 200 a.de C., el cuál es un mecanismo automático que deja pasar cierto flujo de agua hasta un límite deseado. Tiempo después con la revolución industrial en Europa, se introdujo las primeras máquinas de vapor que se empleaban en molinos de grano, hornos, entre otros; los cuales ayudaban a las personas a facilitarles los trabajos diarios. Conforme los años transcurrieron la tecnología empezó hacerse más compleja, de un simple sistema mecánico a sistemas donde diversas disciplinas de ingeniería intervienen como los son los sistemas mecatrónicos, y por lo tanto el control tuvo que seguir sus pasos.

Los sistemas de control asumieron un papel cada vez más importante en el desarrollo y avance de la civilización moderna y la tecnología, estos se encuentran

Page 28: 263MC_fmr

2 Sistemas de Control y Vehículos Guiados Automáticamente

en gran cantidad en todos los sectores de la industria, tales como control de calidad en líneas de procesos, línea de ensamble automático, tecnología espacial, sistemas de armas, sistemas de transporte, sistemas de potencia, entre otros [Kuo'96].

La mecatrónica surge de la combinación sinérgica de distintas ramas de la ingeniería entre las que destacan: la mecánica, la electrónica, la informática y los sistemas de control, no son simplemente la unión de estos sistemas y es más que un simple sistema de control: es una integración completa de todo lo anterior [Bolton'01].

1.1.1 La Robótica

Un claro ejemplo de sistemas mecatrónicos son los robots que están constituidos por soportes, actuadores y sensores mecánicos y electrónicos, son controlados a través de sistemas computacionales o sistemas electrónicos embebidos.

El término robot aparece por primera vez en 1921, en la obra teatral R. U. R. (Rossum’s Universal Robots) del novelista y autor dramático checo Karel Capek, dentro de su obra aparece la palabra “robota” que su traducción al español es servidumbre. Con el tiempo se han intentado dar diversas definiciones al término robot como por ejemplo: en el diccionario Webster define a un robot como “un dispositivo automático que efectúa funciones ordinariamente asignadas a los seres vivos” y Robot Institute of America da una descripción más precisa de los robos industriales: “un robot es un manipulador reprogramable multifuncional diseñado para mover materiales, piezas o dispositivos especializados, con el fin de realizar diversas tareas”.

Los robots son creados con el fin de imitar los movimientos del ser humano para hacer sus trabajos más sencillos, sin embargo en el año de 1915 Leonardo Torres Quevedo menciono que la reproducción de los gestos más visibles del ser humano no era de gran utilidad ya que las maquinas tienen ventajas sobre los humanos, como lo son la fuerza, precisión , entre otras; y lo que él buscaba era mejorar los resultados sin realizar una imitación como tal, sino mejorar en tiempo, la calidad los productos, las actividades que se generaban por el ser humano y principalmente la reducción de costos de mano de obra [Ollero'01].

Existen diversas clasificaciones de robots de acuerdo a sus características de construcción o sus actividades que realizan, T. M. Knasel propone una clasificación de acuerdo a la utilidad y tiempo de invención en la industria de los robots como se muestra en la tabla 1.

Los robots móviles pueden implementar capacidades de aprendizaje y de tipo evolutivo, lo que le puede llevar a reconocer y aprender ante las situaciones que se les presenten en su interacción con el mundo que les rodea [Ollero'01], estos utilizan diversos tipos de locomoción que le dan características y propiedades diferentes

Page 29: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

3

respecto a la eficiencia de energética, dimensiones, cargar útiles y maniobrabilidad [Azcón'03].

Tabla 1. Clasificación de los robots según T. M. Knasel.

Generación Nombre Tipo de control Grado de movilidad

Usos más frecuentes

1 (1982) Pick & place Fines de carrera, aprendizaje

Ninguno Manipulación, servicio de maquinas

2 (1984) Servo Servo-control, trayectoria continua, programación condicional

Desplazamiento por vía

Soladura, pintura

3 (1989) Ensamblado Servos de precisión, visión, tacto

Guiado por vía Ensamblado, desbardado

4 (2000) Móvil Sensores inteligentes Patas, ruedas, orugas

Construcción, traslado

5 (2010) Especiales Control con técnicas de IA

Andante, saltarín

Militar, espacial

Dentro de la clasificación de los robots móviles, se encuentran divididos según los elementos usados para el desplazamiento de estos como los son: las ruedas, las cadenas y las patas, por mencionar los más comunes.

Los robots con ruedas son más sencillos y más fáciles de construir, la carga que pueden transportar es mayor, relativamente. Tanto los robots basados en cadenas como en patas se pueden considerar más complicados y pesados, generalmente, que los robots de ruedas para una misma carga útil.

La principal desventaja de las ruedas es su empleo en terreno irregular, en el que se comportan bastante mal. Normalmente un vehículo de ruedas podrá sobrepasar un obstáculo que tenga una altura no superior al radio de sus ruedas, entonces una solución es utilizar ruedas mayores que los posibles obstáculos a superar; sin embargo, esta solución, puede no ser práctica.

Para robots que vayan a funcionar en un entorno natural las cadenas son una opción muy buena porque las cadenas permiten al robot superar obstáculos relativamente mayores y son menos susceptibles que las ruedas de sufrir daños por el entorno, como piedras o arena. El principal inconveniente de las cadenas es su ineficacia, puesto que se produce deslizamiento sobre el terreno al avanzar y al girar.

Page 30: 263MC_fmr

4 Sistemas de Control y Vehículos Guiados Automáticamente

Potencialmente los robots con patas pueden superar con mayor facilidad que los otros los problemas de los terrenos irregulares. A pesar de que hay un gran interés en diseñar este tipo de robots, su construcción plantea numerosos retos. Estos retos se originan principalmente en el gran número de grados de libertad que requieren los sistemas con patas. Cada pata necesita como mínimo un par de motores lo que produce un mayor coste, así como una mayor complejidad y menor fiabilidad. Es más los algoritmos de control se vuelven mucho más complicados por el gran número de movimientos a coordinar.

Se entiende como autonomía de un robot móvil, al dominio que tiene este para terminar su curso de acción, mediante su propio proceso de razonamiento basado en sensores que le permiten percibir el espacio de trabajo.

En este trabajo se hablara particularmente del Vehículo Guiado Automáticamente (VGA por sus siglas en español), este tipo de robots son utilizados en la industria para cargar cosas pesas o peligrosas para el ser humano y trasladarlas de un punto a otro, comúnmente la trayectoria que siguen siempre es la misma y se encuentra prediseñada. Existen empresas dedicadas a la construcción de este tipo de robots como los son E&K Automation y DTA S. A. Algunos modelos que producen dichas compañías se muestran en la figura 1.

Figura 1. Ejemplos de VGA utilizados en la industria.

1.2 Control del Vehículo Guiado Automáticamente

Existes dos objetivos comunes de control, la regulación que se trata de llevar la salida de un sistema a un punto de operación deseado y el seguimiento de trayectoria que es manipular el sistema con el fin de tener el mínimo error posible entre una salida del sistema y la trayectoria deseada.

En el caso particular de robots el seguimiento de trayectoria se puede definir como la sucesión de la posición de un robot que permite llevarlo de una posición actual a una siguiente de acuerdo a lo deseado, entendiéndose como posición a la descripción de la ubicación del robot referenciado a un marco absoluto generalmente expresado por la combinación de la coordenadas cartesianas del centro del robot o un punto especifico de este y la posición angular del eje principal [García'05]. La

Page 31: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

5

configuración que adquiere la trayectoria deseada se define por la geometría del robot, así como sus restricciones de movimiento que existan en él.

Se propusieron diversos esquemas de control para resolver el problema de seguimiento de trayectoria para un VGA tipo Two Wheel Mobile Robot (TWMR por sus siglas en inglés) como se muestra en la tabla 2, estos autores presentan resultados solo en simulación.

Tabla 2. Tipos de control utilizados en el VGA tipo TWMR.

Autor Control [Sarkar'94] Linealización

retroalimentación de estado [Tsuchiya'99]y [Li'09] Análisis de Lyapunov [Fukao'00] Control adaptativo [Yazdanpanah'03] Control robusto H∞ [Hsiao'09] Técnicas de control difuso

En robótica existen dos modelos matemáticos que se pueden usar para el diseño del controlador, los cuales son el modelo cinemático y el modelo dinámico.

El modelo matemático cinemático o geométrico del robot es la relación entre los valores de las variables asociadas a las articulaciones del robot y la situación de un sistema de referencia. Se entiende por cinemática el estudio del movimiento sin considerar las fuerzas que lo producen.

La dinámica se ocupa de la relación entre las fuerzas que actúan sobre un cuerpo y el movimiento que en él se origina. Por lo tanto, el modelo matemático dinámico de un robot tiene por objeto conocer la relación entre el movimiento del robot y las fuerzas implicadas en el mismo.

Como se ha mencionado antes, el problema de seguimiento de trayectoria de un VGA tipo TWMR se ha resuelto por diversas técnicas de control, algunos autores utilizan el modelo cinemático, otros el dinámico o ambos como se muestra en la tabla 3.

Tabla 3. Tipos de modelos matemáticos que usan los autores.

Modelo Matemático Autores Cinemático [Tsuchiya'99] Dinámico [Sarkar'94], [Fukao'00], [Chen'08] Ambos [Yazdanpanah'03], [Szemes'04]

Page 32: 263MC_fmr

6 Sistemas de Control y Vehículos Guiados Automáticamente

1.3 Caso de estudio: VGA-Cenidet

El VGA es un sistema no-holonómico, para el caso particular del tipo TWMR el número total de grados de libertad son 3 (posición x, y, más su orientación φ) sín embargo únicamente se puede controlar el desplazamiento hacia adelante y hacia atrás así como su orientación, quedando como incontrolable el desplazamiento transversal, como se muestra en la figura 2.

Figura 2. VGA tipo TWMR en el plano “xy”.

El control del movimiento de este tipo de móvil, se puede clasificar en cuatro tareas fundamentales; localización, planificación de trayectoria, seguimiento de la misma y evasión de obstáculos. Cabe mencionar que este tipo de robot móvil es altamente no lineal lo que hace más complicado su análisis matemático.

El seguimiento de la trayectoria lo realiza comúnmente el punto central del eje que une las ruedas al cual se llamada Pm, sin embargo no necesariamente es este punto el único, puede ser cualquier otro siempre y siempre y cuando se aclare en el análisis matemático, desglosando este punto en tres trayectorias a seguir, posición en el eje “x” , posición en el eje “y” y orientación del robot “φ ”.

El robot el cual se llama VGA – Cenidet fue construido en el trabajo de [Camarena'09] con el fin de tener una maqueta de un VGA real y realizar pruebas de control. Éste es tomado como el prototipo de pruebas para este trabajo, el cual se muestra en la figura 3.Se considera que el VGA – Cenidet tiene sus dos ruedas traseras, izquierda y derecha, idénticas que son paralelas entre sí, unidas por un eje rígido, pero con giro independiente. Se considera también que las ruedas motrices del vehículo son lo suficientemente rígidas, no deformables y que giran sin deslizarse sobre la superficie en el cual se mueven.

Page 33: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

7

El VGA – Cenidet se encontraba controlado a través del software de control en tiempo real ControlDesk de la empresa alemana dSPACE. Lo que significa que el robot estaba conectado a una computadora todo el tiempo [Camarena'09]. El algoritmo de control se encuentra programado en el ambiente a bloques de Simulink de Matlab.

El control planteado en [Camarena'09] se divide en dos esquemas de control. El primero consiste en la linealización de entrada-salida por retroalimentación estática del vector de estados. Debido a que el desacoplamiento entrada-salida no puede llevarse a cabo por la retroalimentación estática, se plantea el segundo esquema que consiste en la linealización entrada-salida por retroalimentación dinámica del vector de estados. Esto genera que al presentarse la singularidad en el desacoplamiento de las variables “x” y “y” , del punto guía Pm, se emplea el algoritmo de extensión dinámica para linealizar y desacoplar la respuesta entrada-salida del sistema y evadir de esta manera la singularidad del grado relativo de este sistema no-holonómico. Con el fin de lograr la convergencia de las variables de estado del robot, se diseño un control de estructura variable, el cual cambia entre el primer y segundo esquema para evadir singularidades.

1.4 Problemática

El control de los robots con ruedas es de gran interés para la comunidad de control, este tipo de sistemas se enmarca dentro de la teoría de control en el área que se conoce como control de sistemas no-holónomos. Este tipo de sistemas se caracterizan por estar sujetos a restricciones no integrales en las velocidades, es decir su plano de velocidades está restringido[Murray'93]. Esto se refiere a que no es posible expresar las velocidades en términos de la posición y orientación del robot exclusivamente [Freire'09]. Por lo que se dice que estos sistemas tienen un número menor de grados de libertad controlables respecto al número de grados de libertad totales.

El término no-holónomo fue introducido por primera vez en mecánica por Heinrich Hertz en su obra “Principios de Mecánica” (1894). Los sistemas no-holónomos surgen en la mecánica clásica modelando la rodadura sin deslazamiento de los cuerpos rígidos. Existen una gran cantidad de ejemplos clásicos de sistemas no-holónomos que son ampliamente estudiados, la esfera de Routh, el disco rodante que cae, el patín en un plano inclinado, el rattleback (piedra celta) [Freire'09], entre otros.

Figura 3. VGA - Cenidet de izquierda a derecha: vista de la parte superior donde se observan los circuitos de potencia, vista frontal y vista trasera donde se observa el cable

de conexión hacia la computadora.

Page 34: 263MC_fmr

8 Sistemas de Control y Vehículos Guiados Automáticamente

Las restricciones holonómicas son aquellas expresadas de forma de igualdades algebraicas. El número de coordenadas independientes cuando existen k restricciones holonómicas es s=3N-k (donde N es un eje en el plano). La cantidad s determina los grados de libertad del sistema, o el número mínimo de coordenadas necesarias para describir el movimiento del sistema. Los grados de libertad definen

un conjunto de coordenadas generalizadas, denotadas por { }sqqqq ,,, 21 L= , el

cual tiene asociados un conjunto de velocidades generalizadas { }sqqqq &L&&& ,,, 21= .

Un ejemplo de sistemas holónomos es el péndulo en el plano, como se muestra en la figura 4, consiste en una varilla rígida de longitud l que de un extremo tiene una masa m y del otro esta fija a un punto y gira en el plano vertical.

Figura 4. Péndulo en el plano xy.

Existen dos restricciones holonómicas 0=z y 0222 =++ lyx .

Por otra parte, las restricciones no-holonómicas son aquellas que se representan como diferencias o ecuaciones diferenciales, en otras palabras son aquellas restricciones que expresan las limitaciones del sistemas con respecto a una variable que cambia con respecto al tiempo, por ejemplo un aro rodando sin deslizamiento sobre un plano como se muestra en la figura 5.

Figura 5. Aro en un plano de 3 dimensiones.

Las restricciones están dadas por:

Page 35: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

9

sin 0

cos 0

d dx R

dt dtd d

y Rdt dtz cte

φ θ

φ θ

− =

− =

=

Las coordenadas generalizadas son ),( yx para ubicar P, más para ubicar ),( ϕθ

un punto cualquiera sobre el aro, entonces se tienen s = 4.

Para el caso particular del VGA, las restricciones vienen dadas por:

cos 0 0

( ) cos 0 0

cos sin 0d

i

x

sin d y

A q q sin b r

b r

φ φφ φ θφ φ θ

φ

− −

= − − − = − −

&

&

&&

&

&

donde:

φ es el ángulo de orientación de acuerdo al plano X,Y

r es el radio de las rueda x es el punto central del robot en el eje x y es el punto central del robot en el eje y

id θθ , son las posiciones angulares de las ruedas derecha e izquierda

respectivamente

Bajo las restricciones de movimiento, la problemática principal de control de sistemas no-holonómicos es poder realizar el seguimiento de trayectoria a pesar de las restricciones de movimiento anteriormente descritas. Para el VGA además de esta problemática se tienen las no linealidades que presenta el modelo del sistema que hace complejo el análisis matemático, así también como las incertidumbres que se agregan por las consideraciones del modelado.

1.5 Propuesta de solución

La propuesta para la problemática mencionada se integra de lo siguiente:

a) Un esquema de control que tiene el objetivo de seguir una trayectoria impuesta, la cual consta de las siguientes partes:

Page 36: 263MC_fmr

10 Sistemas de Control y Vehículos Guiados Automáticamente

La primera parte es un identificador basado en una red neuronal artificial (RNA por sus siglas en español) tipo Recurrent High Order Neural Network (RHONN por sus siglas en inglés), partiendo de la suposición de que el modelo matemático del sistema no se conoce y los parámetros de este son desconocidos. Este identificador funcionara como un modelo paralelo al sistema, lo que ayudara a proporcionar un modelo matemático alterno y poder aplicar una ley de control basada en el modelo. Las RNA tipo RHONN son redes que su principal característica es que las salidas de la red esta relacionas directamente con alguna capa intermedia o con la entrada de dicha red. Una RNA en general para lograr su objetivo se modifican los pesos sinápticos de esta, a lo cual se le llama entrenamiento de la red. El entrenamiento que será utilizado de es el Filtro de Kalman Extendido (FKE), el cual es una herramienta recursiva y tiene como objetivo obtener los pesos ideales en línea. La segunda parte del esquema es la técnica de control llamado Block Control, esta utiliza el modelo matemático del sistema para su diseño, la acción de control es con modos deslizantes, la ley de control se construye con la superficie de deslizamiento del error por lo que se realiza un análisis de la dinámica del error. Las restricciones para el uso de este control es que se requiere que la estructura del modelo matemático del sistema a controlar sea capaz de llevarlo a la forma controlable a bloques, así como conocer los parámetros del sistema.

Figura 6. Diagrama a bloques del control con identificación mediante RNA tipo RHONN.

b) Sistema Embebido: El VGA – Cenidet se diseño originalmente para estar

conectada a una PC al sistema de dSpace. Éste sistema es un conjunto de circuitos capaces de recibir datos digitales, analógicos, codificadores, entre

Page 37: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

11

otros; así como enviar datos digitales, analógicos, salidas de PWM y señales de comunicación en RS 232, entre otros. Una vez obtenido los algoritmos de identificación y control del sistema VGA se realiza el traslado a un sistema embebido, el cual consiste en una tarjeta de evaluación dsPIC Pro 4, está tarjeta contiene un procesador digital de señales (DSP en sus siglas en inglés) tipo dspic30f6014. Por tratarse de una tarjeta de desarrollo comercial, tienen disponibles todos los puertos de entrada-salida, analógicos y digitales, así como también todos los enlaces de comunicación y otros dispositivos que soporta el procesador. Se considera usar el lenguaje de programación tipo C para el traslado de los algoritmos hacia el sistema embebido. Debido a que este tipo de dispositivos contienen herramientas de software ya diseñadas para su uso.

1.6 Hipótesis

“Un esquema de control embebido basado en redes neuronales recurrentes de alto orden aplicado a un robot móvil no-holonómico, permite realizar el seguimiento de trayectorias preestablecidas”

1.7 Objetivos

Objetivo general:

Desarrollar un esquema de control basado en redes neuronales artificiales, aplicado al vehículo guiado automáticamente para el seguimiento de trayectorias predefinidas. Una parte importante es migrar los sistemas de control actuales a un esquema embebido, de tal manera que el robot sea realmente autónomo y no tenga necesidad de una computadora para su control.

Objetivos particulares:

• Realizar un estudio y asimilación de la RNA tipo RHONN. • Realizar estudio y asimilación del manejo de la tarjeta dsPIC Pro 4. • Integración de la estrategia de control en sistemas embebido (tarjetas). • Seguimiento de trayectorias de referencia en el plano XY.

1.8 Estructura de la tesis

En este capítulo se mostró un panorama general de la robótica y como el control automático contribuye en los sistemas, además se plantea el problema, la hipótesis y los objetivos de la tesis, así como la propuesta de solución. En los siguientes capítulos se presenta el desarrollo de la tesis y los resultados obtenidos.

Page 38: 263MC_fmr

12 Sistemas de Control y Vehículos Guiados Automáticamente

En el capítulo 2 se define las neuronas biológicas y se explica brevemente su funcionamiento, también se presenta la estructura de una red neuronal artificial tipo red neuronal recurrente de alto orden, así como sus características y propiedades, su funcionamiento y ventajas, se muestra el análisis del Filtro de Kalman Extendido para entrenamiento de la red neuronal. También se muestra el diseño de un identificador neuronal basado en redes neuronales recurrentes de alto orden.

En el capítulo 3 se muestra el análisis y diseño de un controlador llamado Block Control, así también como el desarrollo de algunos ejemplos y la reproducción de otros. Se muestran resultados en simulación de un ejemplo. Se desarrolla la unión de las técnicas de identificación neuronal basada en redes neuronales recurrentes de alto orden y la técnica Block Control, así como el desarrollo de un ejemplo.

En el capítulo 4 se muestra el diseño de un identificador para un modelo matemático del VGA, así el diseño del controlador, se presentan los resultados en simulación y una comparación con el control presentado en [Camarena'09].

En el capítulo 5 se muestra lo realizado en implementación sobre el VGA – Cenidet. Así como el desarrollo de tarjetas y programas utilizados. Se presentan resultados de las pruebas realizas.

En el capítulo 6 se muestra los resultados y conclusiones de la tesis, así como los objetivos cumplidos y las aportaciones.

Page 39: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

13

Así como el hierro se oxida por falta de uso, así también la inactividad destruye el intelecto

-Leonardo da Vinci

Page 40: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

14

Capítulo 2

Redes Neuronales Recurrentes de Alto Orden

El conocimiento sobre redes neuronales se incrementó de manera significativa en los últimos años, siendo una metodología bien establecida para modelado y control, ésta permite resolver algunos de los problemas de control más difíciles, como identificación y control de sistemas no lineales. En particular el uso de redes neuronales recurrentes, para el modelado y la reproducción de transformación entrada-salida, se incrementó en años recientes.

2.1 Redes Neuronales Biológicas

Los conocimientos actuales sobre la estructura y composición de las neuronas se deben en parte al científico aragonés y Premio Noble de la Medicina D. Santiago Ramón y Cajal quien en 1888 demostró que el sistema nervioso estaba compuesto por una red de células individuales, o neuronas, que se conectaban entre sí formando sistemas.

Las neuronas son el elemento fundamental de los sistemas neurales biológicos, son las células que forman el sistema nervioso central incluyendo el cerebro; tienen tres componentes principales: las dendritas, el cuerpo de la célula o soma y el axón.

Las dendritas son el elemento receptor; son como fibras nerviosas que cargan de señales eléctricas al cuerpo de la célula. El cuerpo de la célula realiza la suma de esas señales de entrada. El axón es una fibra larga que lleva la señal desde el cuerpo de la célula hacia otras neuronas. El punto de contacto entre el axón de una célula y la dendrita de otra célula es llamado sinapsis [Haykin'01]. La conexión entre el axón de una neurona y las dendritas de otra reciben el nombre sinapsis y determina la fuerza y tipo de relación entre ellas [López'08].

Page 41: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

15

En la figura 7 se muestra la estructura de una neurona biológica. La forma final de la neurona depende de la función que cumple de la posición que ocupa en el conjunto del sistema y de los estímulos que recibe [López'08].

Figura 7. Neurona Biológica.

En algunas neuronas los impulsos se inician en la unión entre el axón y el soma; y luego se transmiten a lo largo del axón a otras células nerviosas. Cuando el axón está cerca de sus células destino, se divide en muchas ramificaciones que forman sinapsis como el soma o axones de otras células. Las sinapsis pueden ser excitatorias o inhibitorias según el neurotransmisor que se libere. Cada neurona recibe de 10,000 a 100,000 sinapsis y su axón realiza una cantidad similar de sinapsis [Haykin'01].

2.2 El modelo matemático de una neurona

La neurona es la unidad de proceso de información fundamental en una red neuronal. En la figura 8 se muestra el modelo de una neurona; éste forma la base para el diseño de una red neuronal artificial. Aquí se pueden identificar tres elementos básicos del modelo neuronal.

• Un conjunto de sinapsis, cada una de las cuales está caracterizada por un peso o ganancia sináptica.

• Un sumador o punto de suma para sumar las señales de entrada pesadas por su respectivo peso sináptico: las operaciones hasta aquí descritas constituyen combinaciones lineales.

• Una función de activación para limitar la amplitud de la salida de la neurona. La función de activación típicamente está normalizada dentro de un intervalo cerrado [0,1] o alternativamente [-1,-1].

En una forma matemática es posible describir a la neurona como:

1

m

k kj jj

u w x=

=∑ (1)

Page 42: 263MC_fmr

16 Redes Neuronales Recurrentes de Alto Orden

( )k k ky u bϕ= + (2)

Donde 1 2, , , mx x xL son las señales de entradas; 1 2, , ,k k kmw w wL son los pesos

sinápticos de la neurona k; ku es la combinación lineal de las entradas ponderadas;

kb es la polinización; ( )ϕ • es la función de activación y ky es la señal de salida

de la neurona. Los tres elementos básicos son: la sinapsis , un sumador y la función de activación [Haykin'01].

Figura 8. Modelo de una red neuronal.

2.3 Redes Neuronales Artificiales

Las redes neuronales o redes neuronales artificiales (RNA) son una herramienta del control inteligente, según [Freemam'93], es un sistema de procesadores paralelos conectados entre sí en forma de grafo dirigido. Esquemáticamente cada elemento de procesamiento (neuronas) de la red se representa como un nodo. Estas conexiones establecen una estructura jerárquica que tratando de emular la fisiología del cerebro busca nuevos modelos de procesamiento para solucionar problemas concretos del mundo real. Por otra parte [Haykin'01] define a las RNA como modelos simplificados de las redes biológicas, estas no alcanzan la complejidad del cerebro, sin embargo existen similitudes entre las biológicas y las artificiales. Los bloques de construcción son elementos computacionales sencillos altamente interconectados y estas conexiones determinan la función de la red.

Las redes neuronales artificiales son un proceso paralelo distribuido, la cual puede almacenar conocimiento experimental y mantenerlo disponible para su uso en cualquier momento, sus modelos matemáticos son simplificaciones de las redes neuronales biológicas, tratan de simular las capacidades del cerebro humano para resolver problemas complejos como lo es el aprendizaje [Fausett'94], [Alanis'04] y [Ugalde'08].

Las principales ventajas que presentan las RNA, según [Haykin'01], son: tiene la capacidad de adaptabilidad, pueden ser lineales o no lineales, son tolerantes a fallas, uniformidad de análisis de diseño.

Page 43: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

17

Desde la década de los 40’s autores como McCulloch y Pitts realizaron representaciones de redes neuronales como una máquina de conexión binaria, en los 50’s Frank Rosenblatt comenzó el desarrollo del Perceptrón, el cual es la red más antigua, después surgieron diversos trabajos y estudias donde se comprobaba que una RNA era capaz de resolver problemas complejos, así también surgieron métodos de aprendizaje lo que hace más sencilla el desarrollo de las RNA, en 1974, Paul Werbos desarrolló la idea básica del algoritmo de aprendizaje de propagación hacia atrás (backpropagation).

Pero hasta la década de los 90’s en el trabajo de [Narendra'90] demuestra que las RNA son eficientes para la identificación y control de sistemas dinámicos no lineales, también hace uso de redes multicapas y redes recurrentes. En el trabajo [Kasmatopoulos'95] se realiza un estudio de estabilidad, análisis y diseño de las redes neuronales recurrentes de alto orden (RHONN por sus siglas en inglés) para la identificación de sistemas dinámicos.

Las RNA presentan beneficios, en cuestión de control, identificación de sistemas y otras aplicaciones, como: procesamiento distribuido en paralelo, tolerancia a fallas, capacidad adaptativa, robustez a incertidumbres [Rovisthakis'00] y [Sanchez'08].

La recurrencia en una RNA tiene un gran impacto en su capacidad de aprendizaje [Haykin'01]. En una red neuronal de segundo orden, la entrada total a una neurona no es sólo la combinación lineal de los componentes de la red, sino también se incluyen sus productos; más aún, siguiendo esta idea es posible obtener interacciones de alto orden. Esta clase de red forma una red neuronal recurrente de alto orden [Kasmatopoulos'97].

Para tareas de control se usan diversas extensiones del modelo de primer orden de Hopfield llamado RHONN propuestas en [Narendra'90] y [Rovisthakis'00]. Estas redes presentan una mayor interacción entre las neuronas.

2.3.1 Tipos de funciones de activación

Las funciones de activación, denotadas por ( )ϕ • , define la salida de la neurona en

términos de un campo local inducido por v, las gráficas y funciones se presentan en la tabla 3.

1. La función lineal o identidad, que devuelve directamente el valor de activación de la neurona.

2. Función escalón o umbral, que presenta salidas binarias. En este caso, si la activación de la neurona es inferior a un determinado umbral, la salida se asocia con una determinada salida, y si es igual o superior al umbral se asocia con la otra salida.

Page 44: 263MC_fmr

18 Redes Neuronales Recurrentes de Alto Orden

3. Función lineal a tramos, una variante progresiva de la función escalón. Si la activación de la unidad es menor que un límite inferior preestablecido, la salida se asocia con un determinado valor; si la activación es igual o superior que un límite superior, la salida se asocia con otro valor. Si el nivel de activación se encuentra entre ambos límites se aplica una función lineal o identidad.

4. Función sigmoidea, defina en un determinado intervalo monotónico con límites superiores e inferiores. Estas funciones se caracterizan por presentar una derivada siempre positiva e igual a cero en sus límites asintóticos, lo que se conoce como una función suave.

5. La función gaussiana, que adapta la forma de una campana de Gauss cuyo centro, radio y apuntamiento son susceptibles de adaptación.

Tabla 4. Funciones de activación de las redes neuronales.

Nombre Función Gráfica

Lineal ( )v vϕ =

Escalón ( ) 1 0

0 0

si vv

si vϕ

≥= <

Lineal a tramos ( )

11

21 1

2 21

02

v

v v v

v

ϕ

≥ += + > > − ≤ −

Sigmoidea ( ) 1

1 avv

eϕ −=

+

Page 45: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

19

Gaussiana ( ) Bvv Aeϕ −=

2.3.2 Arquitectura

A la arquitectura se refiera a la forma en cómo la información pasa a través de las neuronas y la conectividad que existe entre ellas. Existes diversos tipos de arquitecturas se mencionan algunas de ellas y se muestran en la tabla 5.

• Redes Neuronales Unicapa: Es el caso más simple, en la cual la capa de entrada esta directamente conectada a la capa de salida por medio de las sinapsis.

• Redes Neuronales Multicapas: Esta es la segunda clasificación en la cual se encuentran capas entre la capa de salida y de entrada las cuales se les denomina como capas ocultas, de acuerdo a la cantidad de capas ocultas el número de conexiones internas de la red entre neuronas crece.

• Redes Neuronales Recurrentes: En esta clasificación las redes contienen por lo menos un lazo de retroalimentación, lo cual significa que la capa de salida está conectada de alguna manera con la capa de entrada. La presencia de una estructura recurrente tiene un profundo impacto en la capacidad de aprendizaje de la red neuronal [Haykin'01].

Tabla 5. Arquitecturas de redes neuronales

Nombre Figura

Unicapa

Multicapa

Page 46: 263MC_fmr

20 Redes Neuronales Recurrentes de Alto Orden

Recurrente

2.4 Identificación con Redes Neuronales Recurrentes de Alto Orden

Se considera el problema de identificar el sistema no lineal

( 1) ( ( ), ( )),x k F x k u k+ = (3)

Donde ,nx∈ℜ mu∈ℜ y n m nF ∈ℜ ×ℜ → ℜ son funciones no lineales, para

identificar el sistema anterior se considerando el siguiente modelo RHONN en tiempo discreto:

ˆ ˆ( 1) ( ( ), ( )), 1,..., (4)Ti i ix k x k k i nω ψ σ+ = =

Donde ix es el estado de la i-esima neurona, n es la dimensión del estado, iω -es el

respectivo peso que se sintoniza en línea y ˆ( ( ), ( ))i x k kψ σ está definido como:

1 1

2 2ˆ( ( ), ( )) (5)

L L

diji j I ij

diji j I ij

i

diji j I ij

x k k

ψ ξψ ξ

ψ σ

ψ ξ

Π Π = = Π

M M

Donde L es el número de conexiones de alto 1 2{ , ,..., }LI I I es una colección de

subconjuntos no ordenados {1,2,..., }n m+ , m es el número de entradas, ijd es un

número positivo y iξ está definido como:

Page 47: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

21

1

1

1

1

( )

( )

( )

( )

n

n

n m

i

i ni

i

mi

S x

S x

S

S

ξ

ξξ

σξ

σξ

+

+

= =

M M

MM

(6)

La función de activación para esta red en particular se define como:

1( ) , 0

1 exp( )S ς β

βς= >

+ − (7)

La forma en cómo una RNA funciona se basa en la modificación de pesos sinápticos, llamado a estos métodos “entrenamiento de la RNA”, ejemplos de estos métodos son el Filtro de Kalman [Narendra'92], [Takenga'04], el Filtro de Kalman Extendido (FKE) [Alanis'04], [Sanchez'08], [Castañeda'09], [Benitez'10], [Alanis'10], el Gradiente [Takenga'04], entre otros.

2.5.1 Filtro de Kalman Extendido

El FKE proporciona una solución recursiva para la estimación de estados en sistemas dinámicos, se aplica en sistemas en estado estacionario y no estacionario. Según [Haykin'01] el filtro de Kalman es computacionalmente más eficiente que el cálculo de la estimación directa de todos los datos pasados observados en cada paso del proceso de filtrado.

En el caso de las RNA, el objetivo del entrenamiento por FKE es encontrar el valor óptimo de los pesos sinápticos, el cual minimiza el error de convergencia. El algoritmo de entrenamiento para RHONN basado en el FKE que se describe en [Gover'92], [Alanis'04] y [Sanchez'08] es el siguiente:

[ ]

1( ) ( ) ( ) ( ) ( ) ( ) ( )

ˆ( 1) ( ) ( ) ( ) ( ) (8)

( 1) ( ) ( ) ( ) ( ) ( )

Ti i i i i i i

i i i i

Ti i i i i i

K k P k H k R k H k P k H k

k k K k y k y k

P k P k K k H k P k Q k

ω ω η

− = +

+ = + −

+ = − +

Donde ( ) i iL LiP k ×∈R es el error de predicción asociado a la matriz de covarianza,

( ) iLi kω ∈R es el vector de pesos, iL es el número total de pesos en la red neuronal,

( ) my k ∈R es el vector de salidas medibles, ˆ( ) my k ∈R es el vector de las salidas de

la red neuronal, iη es un parámetro de diseño, ( ) iL miK k ×∈R es la matriz de

Page 48: 263MC_fmr

22 Redes Neuronales Recurrentes de Alto Orden

ganancias de Kalman, i iL LiQ ×∈R es el ruido de los estados relacionado con la

matriz de covarianza, m miR ×∈R es el ruido de medición relacionado con la matriz

de covarianza y ( ) iL miH k ×∈R está definida como:

ˆ( )( ) (9)

( )iij

y kH k

kω ∂= ∂

Considerando el problema de identificación de un sistema no lineal de la forma (3). El modelo general a una RHONN en tiempo discreto en su representación serie-paralelo de acuerdo a [Rovisthakis'00] para la identificación un sistema no lineal:

ˆ ( 1) ( ( ), ( )) ( ) (10)Ti i i i ix k x k k g e kω ψ σ+ = +

Donde ix es la estimación del estado, ig es una ganancia, ( ( ), ( ))i x k kψ σ está

definida anteriormente, Tiω son los pesos sinápticos y el error se define como

ˆ( ) ( )i i ie x k x k= − , con la suposición de que se conoce todo el estado del sistema a

identificar [Sanchez'08].

Cabe mencionar que los pesos sinápticos son calculados en línea, cada iteración son nuevos valores y para ellos se hace uso del FKE.

El FKE que se utiliza para el entrenamiento de la red es de la forma:

1( ) ( ) ( ) ( ) ( ) ( ) ( )

ˆ( 1) ( ) ( ) ( ) ( ) (11)

( 1) ( ) ( ) ( ) ( ) ( )

Ti i i i i i i

ii i i i i i

ijTi i i i i i

K k P k H k R k H k P k H kx

k k K k e k H k

P k P k K k H k P k Q k

ω ω ηω

− = +

∂+ = + =∂

+ = − +

Comúnmente (0), (0), (0)i i iQ R P son inicializadas en diagonal y ,i iQ R contienen

valores fijos durante todo el proceso de identificación, es importante mencionar que los valores que se seleccionan como valores iníciales de estos se calculan de forma

heurística así como las ganancias ig y los parámetros iη , (0)iω se inicializan con

valores aleatorios.

Cabe mencionar que es posible tener un FKE para los pesos de cada estado a estimar así como tener uno solo para todo el estado [Alanis'04].

2.6 Ejemplos

Como parte de la metodología del trabajo, se tomaron varios ejemplos y sistemas de corte académico para tener conocimiento y entender el método de identificación basado en RNA tipo RHONN, la mayoría de estos en tiempo continúo por lo que se realizo una discretización tipo Euler.

Page 49: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

23

2.6.1 Identificación neuronal de un satélite en orbita

El siguiente sistema es de un satélite en órbita, en este ejemplo se realiza la identificación en lazo cerrado con el control Block Control más adelante se mostrará el diseño del control, la idea de este sistema es mantener regulado x1 el cual es la distancia entre la tierra y el satélite se mantenga en una posición lo más constante posible y x3 que es el ángulo del satélite con respecto a un radio de la tierra, siga una trayectoria. El modelo matemático de este sistema se muestra en (12).

1 1 2

2 0 12 2 1 4 2

1

3 3 4

2 4 24 4 2

1 1

( 1) ( ) ( )

( )( 1) ( ) ( ) ( )

( )

( 1) ( ) ( )

2 ( ) ( ) ( )( 1) ( )

( ) ( )

s

s

s

s

x k x k T x k

k u kx k x k T x k x k

x k M

x k x k T x k

x k x k u kx k x k T

x k Mx k

+ = +

+ = + − +

+ = +

+ = + − +

(12)

Donde

1x es la distancia entre el satélite y la tierra

2x es la velocidad del satélite

3x es el ángulo de la posición satélite con referencia a un radio de la tierra

4x es la velocidad angular del satélite con respecto a la tierra

0k y M son parámetros del sistema

sT es el tiempo de muestreo

Se propone la red tipo RHONN, donde se toma en cuenta el modelo matemático del sistema.

1 11 1 12 2 13 4 2

2 21 1 22 2 23 3 24 4 1 1

3 31 1 32 2 33 3 34 4 4

4 41

( 1) ( ) ( ) ( ) ( ) ( ) ( ) ( )

( 1) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

( 1) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

( 1) ( ) (

x k k S x k S x k S x Tsx k

x k k S x k S x k S x k S x w u k

x k k S x k S x k S x k S x Tsx k

x k k S x

ω ω ωω ω ω ωω ω ω ωω

+ = + + ++ = + + + ++ = + + + ++ =

% %

%

% %

% 1 42 2 43 3 44 4 2 2) ( ) ( ) ( ) ( ) ( ) ( ) ( )k S x k S x k S x w u kω ω ω+ + + +

(13)

Se aplica la identificación del sistema (12) utilizando como identificador el modelo en (13).

Page 50: 263MC_fmr

24 Redes Neuronales Recurrentes de Alto Orden

En la figura 9 se muestra el seguimiento de la RHONN al modelo matemático del satélite en órbita. En la figura 10 se muestran los errores de esta identificación los cuales no son mayores del 15% de las señales que del sistema identificado. En la figura 11 se muestra la evolución de los pesos sinápticos.

Figura 9. Identificación del modelo matemático de un satélite en órbita

0 5 10 15 20 2590

100

110Estimación de la distancia entre el satélite y la tierra

Dis

tanc

ia (

Km

)

0 5 10 15 20 25

-5

0

5

Estimación de la velocidad del satélite

Vel

ocid

ad (

Km

/s)

0 5 10 15 20 25-0.2

0

0.2

Vel

ocid

ad (

m)

Estimación del angulo del satélite

real

Identificación

0 5 10 15 20 25-0.02

0

0.02Estimación de la velocidad angular del satélite

tiempo (s)

Dis

tanc

ia (

m/s

)

Page 51: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

25

Figura 10. Errores de identificación del satélite en órbita.

Figura 11. Evolución de los pesos sinápticos de un satélite en órbita.

0 5 10 15 20 25-0.2

0

0.2error de la distancia entre el satélite y la tierra

Dis

tanc

ia

(Km

)

0 5 10 15 20 25-1

0

1error de la velocidad del satélite

Vel

ocid

ad (

Km

/s)

0 5 10 15 20 25-2

0

2x 10

-4 error del angulo del satélite

Dis

tanc

ia

(m)

0 5 10 15 20 25-5

0

5x 10

-3 error de la velocidad angular del satélite

tiempo (s)

Vel

ocid

ad (

m/s

)

0 5 10 15 20 250

10

20

30

40

50

60

70Pesos relacionados a la distancia entre el satélite y la tierra

w(1,1)w(1,2)w(1,3)

0 5 10 15 20 25-150

-100

-50

0 Pesos relacionados a la velocidad del satélite

w(2,1)w(2,2)w(2,3)w(2,4)

0 5 10 15 20 25-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Pesos relacionados al ángulo del satélite

w(3,1)w(3,2)w(3,3)w(3,4)

0 5 10 15 20 25-1

-0.5

0

0.5

1Pesos relacionados a la velocidad angular del satélite

w(4,1)w(4,2)w(4,3)w(4,4)

Page 52: 263MC_fmr

26 Redes Neuronales Recurrentes de Alto Orden

2.6.2 Identificación de un Oscilador de Van der Pol

En [Sanchez'08] se presenta la identificación del Oscilador de Van der Pol, con el modelo no lineal:

1 1 2 1

22 2 1 2 1 2

( 1) ( ) ( ) ( )

( 1) ( ) ( ( ( ) 1) ( )) ( ( ) ( )) ( )

x k x k Tx k d k

x k x k T x k x k T x k u k d kξ+ = + +

+ = + − − + − + + (14)

Con 1( ) 0.01sin( )d k k= y 2( ) 0.01cos( )d k k= .

Y una señal de entrada:

2( ) cos

25

ku k

π =

Donde ξ es un parámetro de la planta que su valor nominal es 2, T es el tiempo de

muestreo el cual es 0.1, 1 2,d d son perturbaciones que se le inyectan a la planta.

El modelo de la RHONN que se propone es:

( ) ( ) ( ) ( )( )

( ) ( ) ( ) ( )( ) ( )

2 21 11 1 12 1 2 13 2

414 2 1 1

2 32 21 1 22 2 23 1 2

2 324 2 25 2 2

ˆ ˆ ˆ ˆ ˆ( 1) ( ) ( ) ( ) ( )

ˆ ( ) ( )

ˆ ˆ ˆ ˆ ˆ( 1) ( ) ( ) ( ) ( )

ˆ ( ) ( ) ( )

x k S x k S x k S x k S x k

S x k g e k

x k S x k S x k S x k S x k

S x k S u k g e k

ω ω ω

ω

ω ω ω

ω ω

+ = + +

+ +

+ = + +

+ + +

(15)

Se aplica la identificación neuronal del sistema (14) con la red neuronal (15). En la figura 12 se muestra el seguimiento de la red neuronal a 1x y 2x , las señales se

encuentran montadas la real como la estimada. En la figura 13 los errores de esta identificación no son mayores del 10% de las señales identificadas y en la figura 14 se muestra la evolución de los pesos sináptico.

Page 53: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

27

Figura 12. Identificación del oscilador Van der Pol

Figura 13. Errores de identificación del oscilador Van der Pol.

0 50 100 150 200 250 300 350 400 450 500

-2

-1

0

1

2

x1 vs x1 estimado

0 50 100 150 200 250 300 350 400 450 500

-5

0

5

x2 vs x2 estimado

No. de datos

Real

Estimada

0 50 100 150 200 250 300 350 400 450 500-0.5

0

0.5error x1

0 50 100 150 200 250 300 350 400 450 500-0.1

-0.05

0

0.05

0.1error x2

No. de datos

Page 54: 263MC_fmr

28 Redes Neuronales Recurrentes de Alto Orden

Figura 14. Evolución de los pesos sinápticos de la identificación del oscilador Van der Pol.

En este caso se construyen dos algoritmos independientes del FKE, uno que entrena los pesos del primer estado y otro para el segundo estado. Los valores iníciales del FKE son:

1 2

1 2

1 2

(0) (0) 15000

(0) (0) 10000

(0) 6000, (0) 5550

P P

R R

Q Q

= == == =

Los parámetros para la identificación son: 1 27, 8.5η η= =

Las ganancias 1 21.6, 1.8g g= = .

2.6.3 Identificación neuronal de un motor de corriente continua con excitación separada

En el artículo técnico [Castañeda'09] presenta la identificación mediante una RNA tipo RHONN de un motor de CD de excitación separada en lazo cerrado, sin embargo se toma el modelo en lazo abierto para probar la identificación neuronal, su modelo es:

0 100 200 300 400 500 600-4

-2

0

2

4Pesos sinápticos en x1

w(1,1)

w(1,2)w(1,3)

w(1,4)

0 100 200 300 400 500 600-6

-4

-2

0

2

4

6

No. de datos

Pesos sináptico en x2

w(2,1)

w(2,2)

w(2,3)w(2,4)

w(2,5)

Page 55: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

29

( 1) ( ) ( ) ( ) ( ) ( )

( 1) ( ) ( ) ( ) ( ) ( )

( 1) ( ) ( ) ( )

s afs e sm m m a f L

e e e

s afs a sa a a m f a

a a a

s f sf f f f

f f

T LT b Tk k k i k i k T k

J J J

T LT R Ti k i k i k k i k u k

L L L

T R Ti k i k i k u k

L L

ω ω ω

ω

+ = − + −

+ = − − +

+ = − +

(16)

Donde mω es la velocidad angular del rotor de motor, ai es la corriente de

armadura y fi es la corriente de campo, , , , , ,s e e af a aT b J L R L son los parámetros del

sistema, ,a fu u son los voltajes de entrada al motor y LT es la carga mecánica del

motor que comúnmente se tomó como una perturbación para cuestiones de control.

Y el modelo RHONN que propone en el artículo es de la forma:

( )( ) ( ) ( ) ( )( )

211 1

21 22 23 2

31 3

ˆ ( 1) ( ) ( )

ˆ ( 1) ( ) ( ) ( ) ( ) ( )

ˆ ( 1) ( ) ( )

m m a

a m f a f a

f f f

k S k g i k

i k S k S i k S i k S i k g u k

i k S i k g u k

ω ω ω

ω ω ω ω

ω

+ = +

+ = + + +

+ = +

(17)

Los parámetros para la identificación no están presentados en el artículo de [Castañeda'09] por lo que se proponen estos valores, los cuales son los pesos iníciales así como los valores iníciales de R, P, Q también los valores de las ganancias del FKE y del modelo neuronal. Se realizó la identificación del sistema (16) con la red neuronal (17).

Page 56: 263MC_fmr

30 Redes Neuronales Recurrentes de Alto Orden

Figura 15. Identificación del estado de un motor de CD de excitación separada.

Figura 16. Errores de identificación de motor de CD de excitación separada.

0 0.5 1 1.5 2 2.5 3 3.5 40

50

100

150Velocidad angular

0 0.5 1 1.5 2 2.5 3 3.5 40

50

100

150

200

250

Corriente Ia

0 0.5 1 1.5 2 2.5 3 3.5 4

0

0.2

0.4

0.6

0.8

1Corriente If

Tiempo (s)

0 0.5 1 1.5 2 2.5 3 3.5 4-3

-2

-1

0

1

2

3Error en Velocidad wm

0 0.5 1 1.5 2 2.5 3 3.5 4-3

-2

-1

0

1

2

3Error en Corriente Ia

0 0.5 1 1.5 2 2.5 3 3.5 4

-0.02

0

0.02

Error en Corriente If

Tiempo (s)

Page 57: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

31

Figura 17. Pesos sinápticos de un motor de CD de excitación separada.

En la figura 15 se muestra la identificación del estado donde las señales se encuentran montadas, por lo que se dice que el modelo neuronal sigue al modelo matemático del sistema, por otra parte en la figura 16 se muestra los errores donde se puede observar que al inicio se tiene un pico pero cómo pasa el tiempo el error tiende a cero, esto es debido al tiempo que se tardan el algoritmo en realizar la identificación. En la figura 17 se muestran los pesos sinápticos de este ejemplo.

2.7 Conclusiones

El ejemplo del motor de CD de excitación separada se trata de identificación en lazo abierto es decir que el sistema no tiene ningún tipo de retroalimentación ni de control y el ejemplo del satélite es en lazo cerrado, este se encuentra controlado a través de la técnica de Block Control. Esto quiere decir que se puede identificar a pesar de que el sistema se encuentre en lazo abierto o en lazo cerrado. Los errores de la identificación del oscilador Van der Pol son mayores en porcentaje que lo de los otros ejemplos, esto es debido a que por la naturaleza del sistema es siempre estar en cambio y estos son rápidos, lo que produce que los pesos sinápticos producidos por el FKE no sean los óptimos.

0 0.5 1 1.5 2 2.5 3 3.5 4-50

0

50

100

150

200

250

300Pesos sinápticos

Tiempo (s)

w(1,1)

w(2,1)

w(2,2)w(2,3)

w(3,1)

Page 58: 263MC_fmr

32 Redes Neuronales Recurrentes de Alto Orden

Page 59: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

33

Todas las pasiones son buenas cuando uno es dueño de ellas, y todas son

malas cuando nos esclavizan -Rousseau

Page 60: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

34

Capítulo 3

Block Control

La técnica del Block Control (BC por sus siglas), es un método que parte el modelo matemático en diversos bloques, de tal forma que el problema de control es dividido en sub-problemas independientes de menor dimensione. La idea de base es utilizar los estados de cada bloque como un control ficticio del bloque siguiente [Rao'05]. En [Loukianov'01], [Rios'03] y [Sanchez'08] se aplica la técnica de BC en unión con otras técnicas de control para resolver el seguimiento de trayectorias en un motor de inducción. En [Huerta'08] se presenta el uso de la técnica de BC para el control de sistemas de potencia. En [Castañeda'09] presenta el control de un motor de CD de excitación separada, lo cual indica que es posible utilizar este tipo de control en diferentes clases de sistemas no lineales, tan complejo como este parezca con la única condición que el modelo se pueda llevar a un la forma controlable por bloques.

3.1 Introducción al Block Control

Considerase un caso especial de un sistema no lineal discreto como:

( 1) ( ( )) ( ( )) ( ) ( )x k f x k B x k u k d k+ = + + (18)

Donde nx∈ℜ son los estados del sistema, ( ( ), ( ( ))f x k B x k son funciones no

lineales que dependen de los estados, ( ) mu k ∈ℜ es la entrada del sistema y ( )d k

son perturbaciones del sistema. La forma NBC (No-lineal Block Control ,por sus siglas en inglés) presentada en [Loukianov'98] consiste en r bloques:

Page 61: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

35

1

1

( 1) ( ( )) ( ( )) ( ) ( )

( 1) ( ( )) ( ( )) ( ) ( )

1, , 1

i i i i i i i

r r r r

x k f x k B x k x k d k

x k f x k B x k u k d k

y x

i r

++ = + ++ = + +

== −K

(19)

Donde 1[ ] T nrx x x= ∈ ℜL es el vector de estado, in

ix ∈ ℜ , 1[ ] Ti ix x x= L ; mu∈ ℜ

es el vector de control. Por otra parte, ( )f • y ( )B • son campos vectoriales suaves,

id son perturbaciones desconocidas o variaciones de parámetros y

[ ]1( ) ,i i irank B x x n x= ∀L

Los enteros 1, , rn nK definen la dimensión i esímo− bloque y satisfacen que

1 2 1,

r

r iin n n m n n

=≤ ≤ ≤ = =∑L

El objetivo de control del diseño del sistema en (19) es que su salida y siga a una señal ( )refx k con derivadas limitadas, a pesar de perturbaciones. Para introducir el

modo deslizante en el bloque r del sistema (19), se utiliza una función sigmoidea ( / )sigm v ξ continuamente diferenciable que se define como:

/ /

/ /( / ) tanh( / ), tanh( / )

v v

v v

e esigm v v v

e e

ξ ξ

ξ ξξ ξ ξ−

−= =+

Donde 1/ξ es la pendiente de la función sigmoidea en 0v = , por lo que se tiene:

0lim ( / ) ( )sigm v sign vξ

ξ→

=

Por otra parte la forma controlable a bloques se puede visualizar como un conjunto de sistemas en cascada de derecha a izquierda donde la salida de un bloque es un control ficticio para el siguiente como se muestra en la figura 18. Tomando en cuenta que cada bloque contiene un dependencia de los bloques anteriores.

Las restricciones principales son:

1.- El primer bloque contenga los estados que se requiera realizar el seguimiento de la trayectoria.

2.- El último bloque debe contener la señal de control del sistema

Page 62: 263MC_fmr

36 Block Control

3.- En cada bloque se pueda tener la señal del bloque siguiente como un control, como se muestra en (13) en el segundo término de cada bloque.

Figura 18. Representación gráfica de la forma controlable a bloques.

3.2 Diseño del Block Control De acuerdo a la técnica ocupada en [Loukianov’98], el estado 1, 1, , 1ix i r+ = −K es

considerado como un control ficticio del i – esímo bloque del sistema (19). El procedimiento de diseño se explica a continuación.

La técnica del BC se basa en un cambio de la dinámica del sistema a la dinámica del

error. De acuerdo a esto, el primer bloque 1( )z k , estará dado por el error de

seguimiento:

1 1( ) ( ) ( ) (20)refz k x k x k= −

Aplicando el operador de adelanto se tiene:

1 1 1 1 1 2 1( 1) ( ( )) ( ( )) ( ) ( ) (21)z k f x k B x k x k d k+ = + + con 1 1( ) ( ) ( 1)refd k d k x k= − +

El control ficticio 2( )x k en (21) se define de tal forma que elimine la dinámica

pasada e introduzca la acción de control y el siguiente bloque, queda de la forma:

12 2 1 1 1 2( ) ( ( ) ( )) (22)cx k x B k z k z k−= + − +

Con 1 0k > y 1 11 1 1 1( )T TB B B B− −=

Page 63: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

37

donde 2cx se obtiene cuando la dinámica 1( )z k es igual a cero:

12 1 1 1( )cx B f d−= − +

se sustituye en el control ficticio y se tiene que:

12 1 1 1 1 1 2( ) ( ( ) ( ) ( ))x k B f d k k z k z k−= − − − +

despejando 2z :

2 1 1 2 1 1 1( ) ( ) ( ) ( )z k f B x k d k k z k= + + −

Se aplica el operador de adelanto a 2z y se tiene: 2 2 2 3 2( 1) ( )z k f B x k d+ = + +

Donde

2 1 2 1 2 1 1 1 1 2 1 2

2 1 2

2 1 1 1

( 1) ( ) ( )

( 1) ( )

f B k x B f k f k B x k B d k

B B B

d d k k d k

= + + + + +=

= + +

Aplicando este método de manera sucesiva hasta el último bloque. El nuevo sistema se puede reescribir como:

1 1 1 1 1 2 1

2 2 2 3 2

( 1) ( ( )) ( ( )) ( ) ( )

( 1) ( ) ( )

( 1) ( ) ( )r r r r

z k f x k B x k x k d k

z k f B x k d k

z k f B u k d k

+ = + +

+ = + +

+ = + +M M M M

(23)

El segundo punto del diseño del Block Control es la selección de la ley de control

por modos deslizantes, tomando ( ) 0nz k =

como el objetivo del control. La

condición para que se cumpla esto con éxito es equivalente a garantizar estabilidad

en la superficie nz , descrita en el último bloque del sistema (23), por lo que se

propone una función candidata de Lyapunov:

1

( ) ( ) ( )2

Tr rV k z k z k= (24)

( ) ( 1) ( )V k V k V k∆ = + − (25)

Page 64: 263MC_fmr

38 Block Control

Para garantizar la estabilidad a través de este método es necesario que ( )V k∆ sea

negativa definida o negativa semi-definida. Por lo que se obtiene:

( )1( 1) ( 1) ( ) ( ) ( 1)

2T Tr r r rV k z k z k z k z k+ = + + +

con ( 1) ( ) ( ) ( 1)T T

r r r rz k z k z k z k+ = +

Desarrollando la ecuación se tiene:

( )

( )

1( 1) ( ) ( 1) ( ) ( 1)

21

( 1) 2( ( ) ( 1))2

T Tr r r r

Tr r

V k z k z k z k z k

V k z k z k

+ = + + +

+ = +

( 1) ( ) ( 1)Tr rV k z k z k+ = + (26)

Sustituyendo (21) en (26) y desarrollando se tiene:

( 1) ( ) ( ) ( )Tr r r rV k z k f B u k d k + = + +

( 1) ( ) ( ) ( ) ( )T T

r r r r rV k z k f d k z k B u k + = + + (27)

Sustituyendo (24) y (27) en (25) se tiene:

1( ) ( ) ( ) ( ) ( ) ( ) ( )

2T T Tr r r r r r rV k z k f d k z k B u k z k z k ∆ = + + − (28)

El control es seleccionado de la siguiente manera:

0 ( )nu U si gn z= − (29)

con 10, ,T T To r r r r r rU z B z z z B−> = =

donde 1

( )Tr r rz z sign z= 1 2r rz z≥

( )102 2

1( )

2T

r r r r r rV k z U B f d z z− ∆ ≤ − + −

Page 65: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

39

Es negativa definida cuando:

( )10

2r r rB f d U− + <

3.2.1 Ejemplo: Sistema numérico

El siguiente ejemplo es numérico, su estructura se encuentra ya en una forma controlable a bloques, esto se realizó a propósito para fines prácticos, el fin de control es seguir una señal deseada a pesar de perturbación introducidos al sistema, el control se diseña sin tomar en cuenta las perturbaciones y una vez probado el control se introducen. El modelo es:

1 1 2 1 1

2 1 2 3 2 1 2

23 3 2 1 2 3

( 1) 2sin( ( )) 1.5 ( ) ( ( ))

( 1) 0.8 ( ) ( ) ( ) ( ( ), ( ))

( 1) ( ) 2 ( ( ), ( ), ( ))

x k x k x k x k

x k x k x k x k x k x k

x k x k u x k x k x k

ωω

ω

+ = + ++ = + +

+ = − + +

(30)

Donde 1 2 3, ,x x x son el estado del sistema,1 2 3, ,ω ω ω son perturbaciones y están

definidas como:

1 1 1

2 1 2 1 2

2 1 2 3 1 2 3

( ) 0.2sin( ) 0.1 0.12

( , ) 0.3sin(2 ) 0.2 0.2 0.4

( , , ) 0.2sin(2 ) 0.2 0.3 0.2 0.3

x T x

x x T x x

x x x T x x x

ωωω

= + += + + −

= + + + +

Se quiere que el primer estado siga la siguiente función:

( ) 2sin(0.15 ) 4 cos(0.1 ) 4dy k T T= + −

Se selecciona como primer bloque:

1 1( ) ( ) ( )dz k x k y k= − (31)

Se obtiene el adelanto de 1z y se tiene que:

1 1 1 1 2 1( 1) ( ( )) ( ) ( )z k f x k B x k d k+ = + + (32)

Con 1 1 1 1 1( ( )) 2sin( ( )), 1.5, ( 1)df x k x k B d y k= = = +

Page 66: 263MC_fmr

40 Block Control

Se selecciona el control ficticio y realizando el mismo procedimiento se tiene:

12 2 1 1 1 2( ) ( ( ) ( ))cx k x B k z k z k−= + − +

Con 1 0k > , donde 2cx se obtiene cuando la dinámica 1( )z k es igual a cero:

12 1 1 1( )cx B f d−= − +

se sustituye en el control ficticio y se tiene que:

12 1 1 1 1 1 2( ) ( ( ) ( ) ( ))x k B f d k k z k z k−= − − − +

despejando 2z :

2 1 1 2 1 1 1( ) ( ) ( ) ( )z k f B x k d k k z k= + + −

Se obtiene el adelanto de 2z y se tiene:

2 2 2 3 2( 1) ( ) ( )z k f B x k d k+ = + + (33)

Donde

( )2 1 1 1 2 1 1 1 2

2 1

2 1 1 1

( 1) 0.8 ( ) ( ) ( )

( ) ( 1) ( )

f f k B x k x k k f B x k

B B

d k d k k d k

= + + − +=

= + −

De igual manera se obtiene el control ficticio, se desarrolla por el mismo procedimiento y se tiene el tercer bloque trasformado:

3 3 3 3( 1) ( ) ( )z k f B u k d k+ = + + (34)

Donde

( )23 2 2 3 2 2 2 3

3 2

3 2 2 2

( 1) ( ) ( )

2

( ) ( 1) ( )

f f k B x k k f B x k

B B

d k d k k d k

= + − − +=

= + −

Reescribiendo el sistema transformado se tiene:

1 1 1 1 2 1

2 2 2 3 2

3 3 3 3

( 1) ( ( )) ( ) ( )

( 1) ( ) ( )

( 1) ( ) ( )

z k f x k B x k d k

z k f B x k d k

z k f B u k d k

+ = + ++ = + ++ = + +

(35)

Page 67: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

41

La señal de control está dada

0 3( )u U s i ng z= − (36)

3 2 3 2 2 3 2 2 2( )z B B f B x d k z= + + −

El estado de este ejemplo en lazo abierto se muestra en la figura 19, donde se observa que es un sistema con dos estados inestables y uno estable, esto significa que el sistema por sí solo no llega a un estado estable, cabe mencionar que se está alimentando el sistema con una señal u igual a 500.

Figura 19. Comportamiento del ejemplo numérico.

La señal dy la cual 1x tiene que seguir se muestra en la figura 20.

Figura 20. Señal deseada para el seguimiento de x1.

0 0.1 0.2 0.3 0.4 0.50

5

10

x1

Am

plitu

d

Tiempo(s)

0 0.1 0.2 0.3 0.4 0.50

10

20

30

x2

Am

plitu

d

Tiempo(s)

0 0.1 0.2 0.3 0.4 0.50

20

40

x3

Am

plitu

d

Tiempo(s)

0 50 100 150-10

-8

-6

-4

-2

0

2

yd

Am

plitu

d

Tiempo(s)

Page 68: 263MC_fmr

42 Block Control

Se aplica el control en (36) al sistema (30) sin tomar en cuenta las perturbaciones y el resultado se muestra en la figura 21, donde ven las señales de referencia y de 1x

sobre montadas, el error de seguimiento se encuentra por debajo del 1% de la señal y la tercera figura de arriba abajo es la señal de control introducida al sistema.

Figura 21. Seguimiento de trayectoria de un ejemplo numérico por medio de Block Control.

Todo el estado se muestra en la figura 22, como se puede ver los estados ya no son inestables y por otra parte 3x se encuentra con mucha oscilación, esto es debido a la

señal de control, ya que está diseñado en base a modos deslizantes.

Se agregaron las perturbaciones 1 2 3, ,ω ω ω del sistema y el resultado de aplicar la

misma señal de control en (36) se muestra en la figura 23 donde de igual manera que en la figura 21 se muestra que el seguimiento de la trayectoria es bueno, sin embargo el error aumenta por arriba del 1%. Esto porcentaje depende mucho de las limitantes del sistema ya que este solo es un ejemplo académico se puede decir que es insignificante.

La superficie de deslizamiento se muestra en la figura 24, donde se puede ver que siempre se encuentra alrededor de 0, esta es una parte importante en los sistemas de controlados por modos deslizantes ya que si no estuviese en este lugar no podría realizar la acción de control al conmutar entre el máximo y mínimo.

Las señales de control aplicadas al ejemplo contienen cambios bruscos del máximo y mínimo valor de entrada, lo cual en un sistema real podría ocasionar muchos

0 50 100 150-10

-5

0

5Segumiento del estado x1

tiempo(s)

Mag

nitu

d

0 50 100 150-0.01

-0.005

0

0.005

0.01Error de segumiento del estado x1

tiempo(s)

Mag

nitu

d

35 35.1 35.2 35.3 35.4 35.5 35.6 35.7 35.8 35.9

-500

0

500

Señal de control

tiempo(s)

Mag

nitu

d

Referencia

Estado x1

Page 69: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

43

problemas dependiendo de la resistencia del mismo o simplemente no podría ejecutar esta señal de control.

Figura 22. Estado del sistema numérico con perturbaciones y aplicando Block Control.

Figura 23. Seguimiento de trayectoria tomando en cuenta perturbaciones.

0 50 100 150-10

-5

0

5

x1

Am

plitu

d

Tiempo(s)

0 50 100 150-2

-1

0

1

2

x2

Am

plitu

d

Tiempo(s)

0 50 100 150-20

-10

0

10

20

x3

Am

plitu

d

Tiempo(s)

0 50 100 150-15

-10

-5

0

5Segumiento del estado x1

tiempo(s)

Mag

nitu

d

0 50 100 150-0.02

-0.01

0

0.01Error de segumiento del estado x1

tiempo(s)

Mag

nitu

d

35 35.1 35.2 35.3 35.4 35.5 35.6 35.7 35.8 35.9

-500

0

500

Señal de control

tiempo(s)

Mag

nitu

d

Referencia

Estado x1

Page 70: 263MC_fmr

44 Block Control

Figura 24. Superficie deslizante del ejemplo numérico.

3.3 Block Control utilizando RNA tipo RHONN

Al unir la técnica de identificación mediante RNA tipo RHONN explicada en el capítulo 2 y la técnica de control explicada en este capítulo, proporciona ventajas.

Por una parte la técnica del BC requiere el modelo matemático del sistema y sus parámetros, pero en muchos casos el modelo matemático solo representa una parte del sistema o en una cierta zona de operación, en cuestión de los parámetros en algunos casos es difícil obtenerlos o medirlos. Al realizar esta unión ya no se requiere más el modelo y los parámetros del sistema ya que la identificación los proporciona, y dado a que le modelo neuronal para realizar la identificación de un sistema es propuesto por el diseñador, puede darse el caso de proponer un modelo que ya se encuentren en forma controlable a bloques y poder aplicar el BC.

Por otra parte, el uso de FKE como entrenamiento de la RNA ayuda a obtener los parámetros del sistema, también ayuda con el ruido de medición o ruido en los estados así también en el ruido en la señal de control o entrada al sistema.

3.3.1 Diseño de control neuronal

La metodología para realizar un control neuronal con RHONN y BC es la siguiente:

Se diseña la red neuronal tipo RHONN la cual será un modelo de seguimiento del sistema a controlar, a esto se llamara identificación del sistema, el modelo neuronal se propone de tal manera que tenga la forma controlable a bloques.

Se realiza la prueba de identificación en lazo abierto o lazo cerrado si es que el sistema ya se encuentra controlado.

0 50 100 150

-0.5

0

0.5

Superficie deslizante

Am

plitu

d

Tiempo(s)

1 1.05 1.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5

-0.5

0

0.5

Superficie deslizante entre el segundo 1 y 1.5

Am

plitu

d

Tiempo(s)

Page 71: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

45

Se diseña el control por BC, ya que el modelo esta en forma controlable a bloques ya no se quiere realizar ninguna otra manipulación al sistema.

Dada una señal de referencia dy , un sistema dinámico con salida sy y una red

neuronal RHOON con salida nny se puede realizar la siguiente desigualdad.

r s nn s r nny y y y y y− ≤ − + − (37)

Donde r sy y− es el error del seguimiento del sistema, nn sy y− es el error entre el

sistema y la identificación y r nny y− es el error de la red tipo RHONN.

Basado en esto se puede dividir en dos objetivos de seguimiento de trayectoria al problema de control.

1. Minimización de nn sy y− , lo que puede ser logrado con la

identificación en línea. 2. Minimización de r nny y− , el identificador neuronal logra este

objetivo.

3.3.2 Ejemplo: Control neuronal de un satélite en órbita

Del ejemplo en 2.6.1 de identificación, el modelo neuronal en (13) que identifica al modelo matemático en (12) se puede reescribir de la siguiente manera:

1 1

2 2

3 3

4 4

1 2

2 1

3 4

4 2

( 1) ( )

( 1) ( )

( 1) ( )

( 1) ( )

x x

x x

x x

x x

x k f B x k

x k f B u k

x k f B x k

x k f B u k

+ = +

+ = +

+ = +

+ = +

% %

%

% %

%

(38)

Se acomoda de tal manera que se tengan los bloques:

1 1 1 2

2 2 2

( 1) ( 1)

( 1)

refx k f B x x k

x k f B u

+ = + − +

+ = + (39)

Con 1 1 21 2

3 3 4

( ) ( ) ( )( ) , ( )

( ) ( ) ( )d

d

x k x k x kx k x k

x k x k x k

− = = −

% %

% %

Page 72: 263MC_fmr

46 Block Control

Aplicando la transformación de acuerdo a la técnica de BC se tiene que

1 1

2 1 1 2 1 1

( ) ( )

( ) ( 1)ref

z k x k

z k f B x x k k z

== + − + +

(40)

Y el control es:

0 2( ( ))u U si g n z k= − (41)

Con ( )2 1 2 2( )T

z k B B z=

Se aplica la señal de control en (41) al sistema en (12), con la suposición que no se conocen los parámetros ni el modelo matemático del sistema solo se tiene medición de todo el estado. Esté se identifica con el modelo neuronal en (13) y se tiene los siguientes resultados: En la figuras 9 y 10 se muestra la identificación de este sistema ya en lazo cerrado y

en la figura 25 y 26 se muestra el seguimiento de la trayectoria de 1 3,x x y sus respectivos errores. Se puede observar que las señales tanto del sistema como la deseada se encuentran encimadas y que los errores de seguimiento se encuentran alrededor de 0 con una amplitud no mayor al 1% de las señales.

Figura 25. Seguimiento de trayectoria de un satélite en órbita.

0 10 20 30 40 5090

95

100

105

110Seguimiento de la distancia entre el planeta tierra y el satélite

tiempo (s)

Dis

tanc

ia e

n (K

m)

0 10 20 30 40 50-0.2

-0.1

0

0.1

0.2Seguimiento del ángulo del satélite

tiempo (s)

Dis

tanc

ia e

n (m

)

x1

xd1

x3

xd2

Page 73: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

47

Figura 26. Errores de seguimiento de un satélite en órbita.

3.4 Conclusión del capítulo

La técnica de Block Control contiene una metodología que preestablecida para diseñar un control a cualquier sistema que cumpla con sus requerimientos, pero estos requerimiento pueden ser un poco exigentes por lo que al realizar la identificación por medio de RHONN se cumplen muchos requerimientos, por lo que se dice que se puede aplicar a cualquier sistema identificado por RNA tipo RHONN.

El hombre es mortal por sus temores e inmortal por sus deseos

-Pitágoras

0 10 20 30 40 50-0.2

-0.1

0

0.1

0.2Error de seguimiento de la distancia entre el planeta y el satélite

tiempo (s)

Dis

tanc

ia e

n (K

m)

0 10 20 30 40 50

-6

-4

-2

0

2

4

6

x 10-4 Error de seguimiento del aágulo del satélite

tiempo (s)

Dis

tanc

ia e

n (m

)

Page 74: 263MC_fmr

48 Block Control

Page 75: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

49

Capítulo 4

Diseño de Control Basado en Identificación Neuronal para el VGA

El VGA como ya antes se menciono en el capítulo 1, es un sistema no lineal que contiene restricciones no holonómicas. El objetivo de control de este robot es seguir una trayectoria en el plano “xy” a pesar de sus restricciones, por una parte esta la identificación neuronal y por otro la técnica de control.

4.1 Modelo matemático del VGA usado en simulación

El modelo matemático utilizado para las pruebas en simulación en este trabajo de tesis es un modelo generalizado para un VGA tipo RHONN presentado en [Sarkar'94] y [Fukao'00] donde los autores toman en cuenta el centro de masa del vehículo como el punto donde se quiere hacer el seguimiento de la trayectoria, el cual es variable, es decir que es posible modificar con facilidad este punto dentro del modelo, en la figura 27 se muestra el VGA en el plano “xy” con algunas distancias lo que hace al modelo un poco más flexible.

Figura 27. VGA tipo TMRW en el plano “xy” para el modelo matemático generalizado.

Page 76: 263MC_fmr

50 Diseño de Control Basado en Identificación Neuronal para el VGA

Considerando el siguiente modelo de robot móvil no holonómico que está sujeto a m restricciones:

( ) ( , ) ( ) ( ) (42)TM q q C q q q B q A qτ λ+ = +&& & &

Donde nq∈ℜ son las coordenadas generalizadas, rτ ∈ℜ es el vector de entradas, mλ ∈ℜ es el vector de restricciones de fuerzas, ( ) nxnM q ∈ℜ

es la matriz de fuerzas

inerciales asimétrica y definida positiva, ( , ) nxnC q q ∈ℜ&

es la matriz de fuerzas

centrifugas y coriolis, ( ) nxrB q ∈ℜ

es la matriz de transformación de entrada y

( ) mxnA q ∈ℜ es la matriz relacionada las restricciones de fuerzas. Considerando el

caso de r n m= − .

Y las matrices son:

0 2 0 0

0 2 cos 0 0

( ) 2 2 cos 0 0

0 0 0 0

0 0 0 0

w

w

w w

w

w

m m dsin

m m d

M q m dsin m d I

I

I

φφ

φ φ

− = −

cos 0 0

( ) cos 0

cos sin 0

sin d

A q sin b r

b r

φ φφ φφ φ

− − = − − − − −

0 00 0 0 0 2 cos

0 00 0 0 0 2 sin

( , ) ( ) 0 00 0 0 0 0

1 00 0 0 0 0

0 10 0 0 0 0

w

w

m d

m d

C q q B q

φ φφ φ

= =

&

&

&

1

2

3

d

i

λτ

τ λ λτ

λ

= =

2 2

2

2 ( ) 2

c w

c w m

m m m

I I m d b I

= +

= + + +

Page 77: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

51

i

d

φθθ

Las coordenadas generalizadas son { }, , , ,d iq x yθ θ φ= donde:

x es la posición en el eje x del centro de masa del robot

y es la posición en el eje y del centro de masa del robot

es el ángulo de orientación de la parte frontal del robot

es la posición angular de la rueda izquierda

es la posición angular de la rueda derecha

y sus parámetros son: a: el largo de la plataforma del VGA b: es la distancia entre las ruedas y el eje central de la plataforma del VGA d: es la distancia entren el centro del eje de las ruedas y el punto que de

referencia para el seguimiento de trayectoria del VGA r: es el radio de las ruedas mc: masa del vehículo, plataforma y electrónica en general mw: es la masa de los motores y las ruedas del motor I c: es el momento de inercia de la plataforma del VGA I w: es el momento de inercia de los motores del VGA I m: es el momento de inercia de las ruedas del VGA

Las restricciones cinemáticas son expresadas como:

( ) 0A q q=& (43)

Con respecto a la dinámica del robot móvil en (42), las siguientes propiedades son conocidas.

Propiedad 1. ( )M q

es una matriz simétrica y definida positiva.

Propiedad 2. 00

lp ∈ℜ

es un vector de parámetros que satisface la siguiente

ecuación:

0 0( ) ( , ) ( , , , )M q v C q q v Y q q v v p+ =& & & & (44)

Donde nv∈ℜ y 0Y son una matriz 0n l× cuyos elementos son funciones conocidas.

Propiedad 3. La matriz 2M C−& es antisimétrica y que cumple:

( 2 ) 0,T nx M C x x− = ∀ ∈ℜ& (45)

Page 78: 263MC_fmr

52 Diseño de Control Basado en Identificación Neuronal para el VGA

El robot móvil no holonómico en (42) es transformado y dividido en las dos siguientes ecuaciones:

( ) ( )q T q v t=& (46)

( ) ( ) ( , ) ( ) ( )M q v t V q q v t B qτ+ =& & (47)

Donde:

( )

( )

11 12

21 22

2 222

11 22 2

2 2 2 2

12 21 2

2

4 4

2

4

T

c c mcw w

c c c m

M MM T MT

M M

r m d I Im rM M I m r

b

m r b r m d I IM M

b

= =

+ += = + + +

− + += =

( )

( ) ( )

22

2

2

2 2( )

2

2 2

w w cw

T

ww c

bd m r dr m mdm r

b bV T MT CT

dm r r bdr m m

b b

φ

φ

+ −−

= + = −− −

&

&&

1 0

0 1TB T B

= =

( ) d

i

vv t

v

=

dv

es la velocidad angular de la rueda derecha

iv

es la velocidad angular de la rueda izquierda

( )T q es el espacio nulo de ( )A q y un matriz de rango completo es formada por un

conjunto de campos vectoriales suaves e independientemente lineales.

El desarrollo de la transformación de coordenadas de (42) a (47) se explica a continuación.

El sistema (42) se multiplica por ( )TT q

{ }( ) ( , ) ( ) ( )

( ) ( ) ( , ) ( ) ( )

( ) ( ) ( ) ( , ) ( ) ( ) ( ) ( )

T

T T

T T T T T

M q q C q q q B q A q

T q M q q C q q q B q A q

T q M q q T q C q q q T q B q T q A q

τ λτ λ

τ λ

+ = +

+ = +

+ = +

&& & &

&& & &

&& & &

Page 79: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

53

Dado a que:

( ) ( ) 0T TT q A q =

El sistema queda como:

( ) ( ) ( ) ( , ) ( ) ( )T T TT q M q q T q C q q q T q B qτ+ =&& & & (48)

Se realiza un cambio de coordenadas generales a las velocidades de las ruedas del robot, sustituyendo (46) en (48):

( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( , ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( , ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( , ) (

T T T

T T T T

T T

q T q v t T q v t

T q M q T q v t T q v t T q C q q T q v t T q B q

T q M q T q v t T q M q T q v t T q C q q T q v t T q B q

T q M q T q v t T q M q T q C q q T q

τ

τ

= +

+ + =

+ + =

+ +

&&& &

& & &

&& &

&& & ) ( ) ( ) ( )Tv t T q B qτ =

Por fin el sistema en (42) queda de la forma (47)

El sistema en (46) representa la cinemática del robot móvil.

Las siguientes propiedades son derivadas de las propiedades mencionadas con anterioridad, Propiedades 1 – 3.

Propiedad 1’: ( )M q

es una matriz simétrica y definida positiva.

Propiedad 2’: 11

lp ∈ℜ

es un vector de parámetros que satisface la siguiente

ecuación:

1 1( ) ( , ) ( , , , )M q v V q q v Y q q v v p+ =& & & & (49)

Donde 1Y es una matriz ( ) 1n m l− × cuyos elementos son funciones conocidas.

Propiedad 3’: La matriz 2M V−& es antisimétrica.

En (49) se encuentra solo los parámetros del modelo dinámico. Los parámetros del

modelo cinemático son incluidos en 1Y . Suponiendo la estructura de los parámetros

del modelo cinemático.

Suposición 1: Algunos parámetros de la parte cinemática aparecen del robot móvil aparecen en la siguiente ecuación.

Page 80: 263MC_fmr

54 Diseño de Control Basado en Identificación Neuronal para el VGA

01 1 1

( , ) ( , ) ( ) ( )iln m n m

i i i i ij ij ii i j

q T q v t q v q q vθ θ σ θ σ− −

= = =

= = = +

∑ ∑ ∑& (50)

Donde [ ]1, , n mθ θ θ −= K , 1, ,ii i ilθ θ θ = K , 1 i n m≤ ≤ − son vectores paramétricos y

( )ij qσ , 1 i n m≤ ≤ − , 0 ij l≤ ≤ son vectores que sus elementos son funciones

conocidas.

Además, la siguiente Propiedad 2’’ se satisface.

Propiedad 2’’: El vector paramétrico lp∈ℜ contiene tanto la parte dinámica como

la cinemática del sistema y satisface:

( ) ( , ) ( , , , )M q v V q q v Y q q v v p+ =& & & & (51)

La matriz de transformación se define para este caso en particular como:

( ) ( )( ) ( )

cos sin cos sin

sin cos sin cos

( )

1 0

0 1

c b d c b d

c b d c b d

T q c c

φ φ φ φφ φ φ φ

− + + − = −

Con 2

rc

b=

Este es el modelo que de aquí en adelante será utilizado, cabe mencionar que los datos utilizados en simulación son diferentes a los del VGA-Cenidet debido a que no se tiene los elementos para obtenerlos.

Para poder aplicar las técnicas ya mencionadas en los capítulos 2 y 3, es necesario adecuar el modelo en (47), el cual está en una formulación Euler – Lagrange, de tal manera que se encuentre en ecuaciones diferenciales.

Se toma la ecuación en (46) y al modelo en (47) se despeja ( )v t& y se obtiene:

( )1

( ) ( )

( ) ( ) ( ) ( , ) ( )

q T q v t

v t M q B q V q q v tτ−

=

= −

&

& & (52)

Page 81: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

55

Reescribiendo (52) en ecuaciones diferenciales se tiene que:

1

2

1

2

( 1) ( ) ( ( )( ( cos( ( ( ) ( ))) sin( ( ( ) ( ))))

( )( ( cos( ( ( ) ( ))) sin( ( ( ) ( )))))

( 1) ( ) ( ( )( ( sin( ( ( ) ( ))) cos( ( ( ) ( ))))

( )( ( sin( (

i d i d

i d i d

i d i d

i

x k x k Ts v k c b c k k d c k k

v k c b c k k d c k k

y k y k Ts v k c b c k k d c k k

v k c b c

θ θ θ θθ θ θ θ

θ θ θ θθ

+ = + − − −+ − + −

+ = + − + −+

( )2 2 2 2 2 2

( ) ( ))) cos( ( ( ) ( )))))

( cos( ) sin( )) ( cos( ) sin( ))

( sin( ) cos( )) ( sin( ) cos( ))

( )

2 2

d i d

d i

d i

d i

d d

i i

d w d i w w w

d

k k d c k k

x c b d v c b d v

y c b d v c b d v

c v v

v

v

bc dm v bcdv cm cm m I Ic b c m c dv

θ θ θφ φ φ φφ φ φ φ

φθθ

τ φ

− − −= − + += + + −

= −

=

=

+ − − + + + + =

&

&

&

&

&

&

&( )

( )( )( )( )

( )( )( ) ( ) ( )

( )

2 2

2 2 2 2 2 2 2

2 2 2 2 2

2 2 2 2 2 2 2

2 2 2 2 2 2 2 2

2 2 2

4

2 2 2 8

2 ( ) 2 ( ) 4

2 2 2 8

2 2 4

2 2 2

w

w w w

i d w w i w

w w w

i d w w i w w

i

w w

m c d m

mb c I I Ic c d m c d m

c bc dv m m bcdm v c I b m d m d m

mb c I I Ic c d m c d m

bc dv m m bcdm v c I Ic b c m c d m c d mv

mb c I I Ic c

τ φ

τ φ

+ + + −

+ − − + − + −+

+ + + −

+ − − + + + + − =+ + +

&

&

& ( )( )( )

( )( )

2 2 2 2

2 2 2 2 2

2 2 2 2 2 2 2

8

2 2 ( ) 4

2 2 2 8

w

d w d i w w w

w w w

d m c d m

c bc dm v bcdv cm cm m I b m d m d m

mb c I I Ic c d m c d m

τ φ

+ − − + − + −+

+ + + −

&

(53)

En la siguiente tabla se muestran los valores de los parámetros que se toman para realizar las pruebas en simulación.

Tabla 6. Valores de los parámetros del VGA usados en la simulación.

Parámetro Valor

b 0.75 m

d 0.30 m

a 2.00 m

r 0.15 m

mc 30.00 kg

mw 1.00 kg

I c 15.625 kg m2

Page 82: 263MC_fmr

56 Diseño de Control Basado en Identificación Neuronal para el VGA

La variable es sustituida por una ecuación algebraica, por lo que no se toma como parte del estado.

( ) ( )d i d ic v v cφ φ θ θ= − ⇒ = −&

Se sustituyeron los valores de la tabla 6 en el modelo en (53) y una discretización por Euler, el modelo que se obtiene es:

( 1) ( ) ( ( )(0.1(0.75cos(0.1( ( ) ( ))) 0.3sin(0.1( ( ) ( ))))

( )(0.1(0.75cos(0.1( ( ) ( ))) 0.3sin(0.1( ( ) ( )))))

( 1) ( ) ( ( )(0.1(0.75sin(0.1( ( ) ( ))) 0.3cos(0.1

d i d i d

i i d i d

d i d

x k x k Ts v k k k k k

v k k k k k

y k y k Ts v k k k

θ θ θ θθ θ θ θ

θ θ

+ = + − − −+ − + −

+ = + − + ( ( ) ( ))))

( )(0.1(0.75sin(0.1( ( ) ( ))) 0.3cos(0.1( ( ) ( )))))

( 1) ( ) ( )

( 1) ( ) ( )

0.1( ( ) ( )) 0.1( ( 1) ( 1))( 1) ( ) 0.3565 ( ) 2.6386

i d

i i d i d

d d d

i i i

i d i dd d i

k k

v k k k k k

k k Tsv k

k k Tsv k

k k k kv k v k Ts v k

Ts

θ θθ θ θ θ

θ θθ θ

θ θ θ θ

−+ − − −

+ = ++ = +

− − − − − + = + − +

( )

0.1( ( ) ( )) 0.1( ( 1) ( 1))0.0136 ( ) 0.1011 ( )

0.1( ( ) ( )) 0.1( ( 1) ( 1))( 1) ( ) 0.0136 ( ) 0.1011 ( )

0.1( ( ) ( )) 0.1( (0.3565

d

i d i dd i

i d i di i i d

i d i

k

k k k kv k k

Ts

k k k kv k v k Ts v k k

Ts

k k k

τ

θ θ θ θ τ

θ θ θ θ τ

θ θ θ

− − − − − + +

− − − − − + = + − +

− −+ 1) ( 1))( ) 2.6386 ( )d

d i

kv k k

Ts

θ τ− − − +

(54)

Donde Ts es el tiempo de muestreo.

De aquí en adelante el modelo en (54) es el modelo utilizado para realizar las pruebas en simulación y también se considera para el diseño de identificador neuronal.

4.2 Trayectorias empleadas en el trabajo

El fin de control es que el VGA siga alguna trayectoria en un punto especifico de

este, en este caso particular será el punto mP .

Se proponen diversas formas de trayectorias con el fin de ver el comportamiento del VGA controlado.

I w 0.005 kg m2

I m 0.0025 kg m2

Page 83: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

57

Todas las trayectorias propuestas tienen un tiempo de duración de 60 segundos y son de circuito cerradas, es decir que siempre después 60 segundos se termina el circuito e inicia de nuevo.

Las trayectorias a usar son las siguientes:

1. Trayectoria “Hélice”

Figura 28. Trayectoria Hélice en el plano “xy”.

2. Trayectoria “Círculo”

Figura 29. Trayectoria Circulo en el plano “xy”.

3. Trayectoria “Cuadrado”

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Trayectoria Infinito

Eje X (metros)

Eje

Y(m

etro

s)

-1 -0.5 0 0.5 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Trayectoria Circulo

Eje X (metros)

Eje

Y(m

etro

s)

Page 84: 263MC_fmr

58 Diseño de Control Basado en Identificación Neuronal para el VGA

Figura 30. Trayectoria Cuadrado en el plano “xy”.

4.3 Control del VGA mediante Block Control El sistema en (54) se puede reescribir como

1 1

2 2

1

2

( 1) ( ( ))

( 1) ( ( ))

( 1) ( ( ))

( 1) ( ( ))

( 1) ( , ( ), ( ))

( 1) ( , ( ), ( ))

d d

i i

x x

y y

d d

i i

v d i v

v d i v

x k f x k B v

y k f y k B v

k f k B v

k f k B v

v k f v k k B

v k f v k k B

θ θ

θ θ

θ θθ θ

θ θ τθ θ τ

+ = ++ = +

+ = +

+ = +

+ = +

+ = +

(55)

Donde:

( )( )

( )

( )

( )

( )

( )

( ) 0.3565 0.1( ( ) ( )) 0.1( ( 1) ( 1)) ( )

0.0136 0.1( ( ) ( )) 0.1( ( 1) ( 1)) ( )

( ) 0.0136 0.1( ( ) ( )) 0.1( ( 1) ( 1)) ( )

0

d

i

d

i

x

y

d

i

v d i d i d i

i d i d d

v i i d i d i

f x k

f y k

f k

f k

f v k k k k k v k

k k k k v k

f v k k k k k v k

θ

θ

θθ

θ θ θ θ

θ θ θ θθ θ θ θ

==

=

=

= − − − − − − +

− − − − −

= + − − − − − − +

( ).3565 0.1( ( ) ( )) 0.1( ( 1) ( 1)) ( )i d i d dk k k k v kθ θ θ θ− − − − −

-0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9Trayectoria Cuadrado

Eje X (metros)

Eje

Y(m

etro

s)

Page 85: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

59

( )( )( )

0.1(0.75cos(0.1( ( ) ( ))) 0.3sin(0.1( ( ) ( )))

0.1(0.75cos(0.1( ( ) ( ))) 0.3sin(0.1( ( ) ( )))

0.1(0.75sin(0.1( ( ) ( ))) 0.3cos(0.1( ( ) ( )))

0.1(0.75sin(0.1(

i d i dTx

i d i d

i d i dTy

Ts k k k kB

Ts k k k k

Ts k k k kB

Ts

θ θ θ θθ θ θ θ

θ θ θ θ

− − − = − + −

− + −= ( )

[ ][ ][ ][ ]

( ) ( ))) 0.3cos(0.1( ( ) ( )))

0

0

2.6386 0.1011

0.1011 2.6386

d

i

d

i

i d i d

v

v

k k k k

B Ts

B Ts

B Ts Ts

B Ts Ts

θ

θ

θ θ θ θ − − −

=

=

=

=

La forma del modelo en (55) ya se puede colocar en una forma controlable a bloques sin necesidad de realizar ninguna operación extra. El sistema se puede dividir en dos bloques de la siguiente manera:

1 1 1 1 2

2 2 1 2 2

( 1) ( ( ))

( 1) ( ( ), ( ))

x k f x k B x

x k f x k x k B u

+ = ++ = +

(56)

Donde:

1 1

2 2

,

,

d d

i i

d d

i i

x x

y y

v v

v v

d

i

f B

f Bf B

f B

f B

f Bf B

f B

u

θ θ

θ θ

ττ

= =

= =

=

Se realiza la transformación del sistema de acuerdo al método de BC explicada en el capítulo 3 y se tiene que:

1 1

2 1 1 1 2 1 1 1

( ) ( ) ( )

( ) ( ( )) ( 1)

refz k x k x k

z k f x k B x d k k z

= −

= + − + − (57)

Donde:

Page 86: 263MC_fmr

60 Diseño de Control Basado en Identificación Neuronal para el VGA

1

( )

( )( )

0

0

( 1) ( 2)

d

dref

ref

x k

y kx k

d k x k

=

+ = +

La señal de control u(k), se obtiene con la siguiente ecuación :

0 2( ( ))u U si g n z k= − (58)

Con ( )2 1 2 2( )T

z k B B z=

El control se aplica para el seguimiento de las diversas trayectorias mencionadas en la sección 4.3 y los resultados se muestran en la sección 4.7.

4.4 Identificación neuronal del VGA

Para realizar la identificación neuronal de acuerdo a la metodología planteada en el capítulo 2 se plantea una red neuronal partiendo del conocimiento del modelo (54). La RNA tipo RHONN es el siguiente:

11 12 13 1 2

21 22 23 3 4

51 5

( 1) ( ) ( ( )) ( ) ( ( )) ( ) ( ( ))

( 1) ( ) ( ( )) ( ) ( ( )) ( ) ( ( ))

( 1) ( ) ( )

( 1) ( ) ( )

( 1) ( ) ( ( ))

d i d i

d i d i

d d i

i i d

d d

x k k S x k k S k k S k w v w v

y k k S y k k S k k S k w v w v

k k Tsv k

k k Tsv k

v k k S v k

ω ω θ ω θω ω θ ω θ

θ θθ θ

ω ω

+ = + + + ++ = + + + +

+ = +

+ = ++ = +

% % %

% % %

% % %

% % %

% 2 53

54 55 5 6

61 62 63

64 65

( ) ( ( )) ( ( )) ( ) ( ( )) ( ( ))

( ) ( ( )) ( ( )) ( ) ( ( )) ( ( ))

( 1) ( ) ( ( )) ( ) ( ( )) ( ( )) ( ) ( ( )) ( ( ))

( ) ( ( )) ( ( )) ( ) (

d i d d

i i i d d i

i i d i d d

i i

k S v k S k k S v k S k

k S v k S k k S v k S k w w

v k k S v k k S v k S k k S v k S k

k S v k S k k S

θ ω θω θ ω θ τ τ

ω ω θ ω θω θ ω

++ + + +

+ = + ++ +

%

7 8( )) ( ( ))i d d iv k S k w wθ τ τ+ +

(59)

Se realiza la identificación del modelo en (54) con la red neuronal en (59) en lazo abierto, con valores de τ constantes y los resultados fueron los siguientes:

Page 87: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

61

Figura 31. Identificación del VGA en lazo abierto.

0 5 10 15-20

0

20

40Posición en el eje x

tiempo(s)

met

ros

0 5 10 15-20

0

20Posición en el eje y

tiempo(s)

met

ros

0 5 10 15-500

0

500

1000Posición angular de la rueda derecha

tiempo(s)

rad

0 5 10 150

500

1000Posición angular de la rueda izquierda

tiempo(s)

rad

0 5 10 15-50

0

50

100Velocidad angular de la rueda derecha

tiempo(s)

rad/

s

0 5 10 150

50

100Velocidad angular de la rueda izquierda

tiempo(s)

rad/

s

Señales VGA

Identificador RHONN

Page 88: 263MC_fmr

62 Diseño de Control Basado en Identificación Neuronal para el VGA

Figura 32. Errores de identificación del VGA con RNA tipo RHONN.

Figura 33. Pesos sinápticos del identificador neuronal del VGA.

En la figura 31 se muestra el estado del VGA y su identificación y como se observa las señales se encuentran montadas, esto quiere decir que se realiza una buena identificación, por otra parte en la figura 32 se muestran los errores de éstas identificaciones. Los errores de la posición en x, la posición en y, la velocidad

0 5 10 15-0.2

0

0.2

0.4

0.6Error en posición en el eje x

tiempo(s)

met

ros

0 5 10 15-1

-0.5

0

0.5Error en posición en el eje y

tiempo(s)

met

ros

0 5 10 15-0.2

0

0.2

0.4

0.6Error en posición angular de la rueda derecha

tiempo(s)

rad

0 5 10 15-0.1

0

0.1

0.2

0.3Error en posición angular de la rueda izquierda

tiempo(s)

rad

0 5 10 15-0.6

-0.4

-0.2

0

0.2Error en velocidad angular de la rueda derecha

tiempo(s)

rad/

s

0 5 10 15-1

-0.5

0

0.5Error en velocidad angular de la rueda izquierda

tiempo(s)

rad/

s

0 5 10 15-20

-10

0

10

20

30

40

50

60

70Pesos sinápticos del identificador del VGA

tiempo (s)

ampl

itud

Page 89: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

63

angular de la rueda derecha y la velocidad angular de la rueda izquierda se encuentran alrededor de cero y son menores al 5% de las señales, los errores de las posiciones angulares de las ruedas aumentan de acuerdo a como su señal lo hace sin embargo cuando la señal se encuentra alrededor de 500 radianes tiene un error de aproximadamente 0.2 radianes lo que significa que el error es muy pequeño por debajo de 1%.

En la figura 33 se muestran los pesos sinápticos que son calculados por el FKE, se pueden ver que varios pesos tienen la misma forma de onda, por lo que cada conjunto de pesos con la misma forma son los pesos de una variable.

4.5 Identificación neuronal del VGA – Cenidet en lazo cerrado

Una vez obtenida la red neuronal funcionando en simulación se procedió a realizar una prueba con el VGA – Cenidet, se agrego la programación de la RHONN en el dSpace (en el capítulo 5 se explica su función) en conjunto del control que en [Camarena'09] presenta.

En la figura 34 se muestra la identificación realizada en línea con el VGA – Cenidet, la posición en x y la posición en y se encuentran montadas las señales del VGA – Cenidet con las señales de la identificación, por otra parte las velocidades angulares de la ruedas contienen muchos cambios rápido en las señales y la identificación no es capaz de seguirle al 100% sin embargo la forma de onda que lleva tanto las señales del VGA – Cenidet como las señales del identificador neuronal son iguales.

0 10 20 30 40 50 60 70-1

0

1Posición en el eje x

met

ros

0 10 20 30 40 50 60 70-1

0

1

2Posición en el eje y

met

ros

0 10 20 30 40 50 60 70-5

0

5Velocidad en la llanta derecha

rad/

s

0 10 20 30 40 50 60 70-2

0

2

4Velocidad en la llanta izquierda

rad/

s

tiempo (s)

VGA-Cenidet

RHONN

Page 90: 263MC_fmr

64 Diseño de Control Basado en Identificación Neuronal para el VGA

Figura 34. Identificación del VGA – Cenidet con una RNA tipo RHONN.

En la figura 35 se muestran los errores de identificación que se encuentra por debajo de 1% y mientras que las velocidades se encuentran por arriba del 10%, pero el error se encuentra alrededor de cero lo que indica lo antes mencionado, la forma de onda de las dos señales son iguales.

Figura 35. Errores de identificación del VGA – Cenidet en lazo cerrado.

La identificación neuronal del VGA – Cenidet fue buena, a pesar de que el modelo en (54) y el VGA – Cenidet contienen diferentes parámetros el red neuronal en (59) pudo realizar la identificación adecuada.

4.6 Control del VGA mediante BC con uso de RNA tipo RHONN

Se diseña el control para la red neuronal del VGA en (59), para esto se toma esta red y se acomoda de la siguiente manera:

0 10 20 30 40 50 60 70-0.01

0

0.01Error de identificación en posición en el eje x

met

ros

0 10 20 30 40 50 60 70-5

0

5x 10

-3 Error de identificación en posición en el eje y

met

ros

0 10 20 30 40 50 60 70-4

-2

0

2Error de identificación en velocidad en la llanta derecha

rad/

s

0 10 20 30 40 50 60 70-1

0

1Error de identificación en velocidad en la llanta izquierda

rad/

s

tiempo (s)

Page 91: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

65

( 1)

( 1)

( 1)

( 1)

( 1)

( 1)

d d

i i

d d

i i

x x

y y

d

i

d v v

i v v

x k f B v

y k f B v

k f B v

k f B v

v k f B

v k f B

θ θ

θ θ

θ

θ

ττ

+ = ++ = +

+ = +

+ = +

+ = +

+ = +

% %

% %

% %

% %

% %

% %

% %

% %

% %

% %

%

%

(60)

Donde:

[ ]

[ ]

[ ]

[ ]

11 12 13

1 2

21 22 23

3 4

51 52 53

( ) ( ( )) ( ) ( ( )) ( ) ( ( ))

( ) ( ( )) ( ) ( ( )) ( ) ( ( ))

( )

0

( )

0

( ) ( ( )) ( ) ( ( )) ( ( )) ( ) (

d

d

i

i

d

x d i

x

y d i

y

d

i

v d d i

f k S x k k S k k S k

B w w

f k S y k k S k k S k

B w w

f k

B Ts

f k

B Ts

f k S v k k S v k S k k S v

θ

θ

θ

θ

ω ω θ ω θ

ω ω θ ω θ

θ

θ

ω ω θ ω

= + +== + +

=

=

=

=

=

= + +

%

%

%

%

%

%

%

%

%

%

%

[ ]

[ ]

54 55

5 6

61 62 63

64 65

7 8

( )) ( ( ))

( ) ( ( )) ( ( )) ( ) ( ( )) ( ( ))

( ) ( ( )) ( ) ( ( )) ( ( )) ( ) ( ( )) ( ( ))

( ) ( ( )) ( ( )) ( ) ( ( )) ( ( ))

d

i

i

d d

i i i d

v

v i d i d d

i i i d

v

d

i

k S k

k S v k S k k S v k S k

B w w

f k S v k k S v k S k k S v k S k

k S v k S k k S v k S k

B w w

vv

v

θω θ ω θ

ω ω θ ω θω θ ω θ

+ +=

= + +

+ +=

=

%

%

%

%%

%

El sistema en (60) se puede dividir en dos bloques para realizar el diseño del control y el sistema que da como:

1 1 1 1 2

2 2 1 2 2

( 1) ( ( ))

( 1) ( ( ), ( ))

x k f x k B x

x k f x k x k B u

+ = ++ = + (61)

Donde:

Page 92: 263MC_fmr

66 Diseño de Control Basado en Identificación Neuronal para el VGA

1 1

2 2

,

, ,

d d

i i

d d

i i

x x

y y

v v d

iv v

f B

f Bf Bf B

f B

f Bf B u

f B

θ θ

θ θ

ττ

= =

= = =

% %

% %

% %

% %

% %

% %

Se selecciona el primer bloque de la transformación como:

1 1( ) ( ) ( )refz k x k x k= − (62)

Donde ( )refx k es la trayectoria a seguir. Se aplica un adelanto a (62) y se tiene que:

1 1( 1) ( 1) ( 1)refz k x k x k+ = + − + (63)

Sustituyendo 1( 1)x k + en (63) si tiene:

1 1 1 1 2( 1) ( ( )) ( 1)refz k f x k B x x k+ = + − + (64)

Se selecciona el control ficticio se tiene:

12 2 1 1 1 2( ) ( ( ) ( ))cx k x B k z k z k−= + − +

Con 1 0k > , donde 2cx se obtiene cuando la dinámica 1( )z k es igual a cero:

12 1 1 1( ( ( )) ( 1))c

refx B f x k x k−= − + +

se sustituye en el control ficticio y se tiene que:

12 1 1 1 1 1 2( ) ( ( ( )) ( 1) ( ) ( ))refx k B f x k x k k z k z k−= − − + − +

despejando 2z :

2 1 1 1 2 1 1( ) ( ( )) ( ) ( 1) ( )refz k f x k B x k x k k z k= + + + −

Donde 2z ya es la superficie de deslizamiento, se propone la señal de control de la

siguiente manera:

Page 93: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

67

0 2( ( ))u U si g n z k= − (65)

Con ( )2 1 2 2( )T

z k B B z=

El control (65) se aplica al modelo en (54) y los resultados se muestran en la sección 4.7.

4.7 Resultados

En esta sección se mostrará el seguimiento del VGA a las trayectorias en la posición x y posición y así como sus errores y la contabilización de estos, todo esto en simulación, por cada trayectoria y cada tipo de control diseñado, también se presenta el seguimiento del VGA con el control propuesto en [Camarena'09] para fines de comparación.

Para poder hacer dicha comparación se obtuvieron los índices de desempeño siguientes:

Integral del error absoluto IAE:

( )IAE e t dt= ∫ (66)

Integral del error al cuadrado ISE:

2( )ISE e t dt= ∫ (67)

Integral del error absoluto por el tiempo ITAE:

( )ITAE t e t dt= ∫ (68)

Integral del error al cuadrado por el tiempo ITSE:

2( )ISE te t dt= ∫ (69)

4.7.1 Block Control

Trayectoria Hélice

Tabla 7. Índices de desempeño para el VGA con BC siguiendo una trayectoria Hélice.

Índice de desempeño Valor

Page 94: 263MC_fmr

68 Diseño de Control Basado en Identificación Neuronal para el VGA

Figura 36. Seguimiento del VGA a la trayectoria Hélice por BC.

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5Seguimietno en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5Seguimiento en posición en el eje y

tiempo(s)

met

ros

VGA

Referencia

0 10 20 30 40 50 60-0.015

-0.01

-0.005

0

0.005

0.01

0.015Error de seguimiento en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-0.015

-0.01

-0.005

0

0.005

0.01

0.015

0.02Error de seguimiento en posición en el eje y

tiempo(s)

met

ros

IAE 0.030

ISE 8.2551e-006

ITAE 0.0234

ITSE 14.8595

Page 95: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

69

Figura 37. Seguimiento del VGA a la trayectoria Hélice por BC en el plano “xy”.

Trayectoria Círculo

Figura 38. Seguimiento del VGA a la trayectoria Círculo por BC.

-1.5 -1 -0.5 0 0.5 1 1.5-1.5

-1

-0.5

0

0.5

1

1.5Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5Seguimietno en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1Seguimiento en posición en el eje y

tiempo(s)

met

ros

VGA

Referencia

0 10 20 30 40 50 60-2.5

-2

-1.5

-1

-0.5

0

0.5

1x 10

-3 Error de seguimiento en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-2

-1

0

1

2

3

4

5x 10

-3 Error de seguimiento en posición en el eje y

tiempo(s)

met

ros

Page 96: 263MC_fmr

70 Diseño de Control Basado en Identificación Neuronal para el VGA

Figura 39. Seguimiento del VGA a la trayectoria Círculo por BC en el plano “xy”.

Tabla 8. Índices de desempeño del VGA con BC siguiendo una trayectoria Círculo.

Trayectoria Cuadrado

-1 -0.5 0 0.5 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

Índice de desempeño Valor

IAE 9.5749e-004

ISE 5.0967e-007

ITAE 0.0196

ITSE 0.9174

Page 97: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

71

Figura 40. Seguimiento del VGA a una trayectoria Cuadrado con BC.

Tabla 9. Índices de desempeño del VGA con BC siguiendo una trayectoria Cuadrado.

Figura 41. Seguimiento del VGA a una trayectoria Cuadrado con BC en el plano “xy”.

0 10 20 30 40 50 60-0.2

0

0.2

0.4

0.6

0.8

1Seguimietno en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-0.2

0

0.2

0.4

0.6

0.8

1Seguimiento en posición en el eje y

tiempo(s)

met

ros

VGA

Referencia

0 10 20 30 40 50 60-3

-2

-1

0

1

2x 10

-3 Error de seguimiento en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-3

-2

-1

0

1

2

3x 10

-3 Error de seguimiento en posición en el eje y

tiempo(s)m

etro

s

-0.1 0 0.1-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

eje

y

Índice de desempeño Valor

IAE 0.0013

ISE 8.1642e-007

ITAE 0.0361

ITSE 1.4696

Page 98: 263MC_fmr

72 Diseño de Control Basado en Identificación Neuronal para el VGA

4.7.2 Block Control con identificador neuronal tipo RHONN

Trayectoria Hélice

Figura 42. Seguimiento del VGA a una trayectoria Hélice con BC con identificador neuronal tipo RHONN.

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5Seguimietno en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5Seguimiento en posición en el eje y

tiempo(s)

met

ros

0 10 20 30 40 50 60-0.015

-0.01

-0.005

0

0.005

0.01

0.015Error de seguimiento en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-0.02

-0.01

0

0.01

0.02Error de seguimiento en posición en el eje y

tiempo(s)

met

ros

VGA

Referencia

Page 99: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

73

Figura 43.Seguimiento del VGA a una trayectoria Hélice con BC con identificador neuronal tipo RHONN en el plano “xy”.

Tabla 10. Índices de desempeño del VGA con BC con identificador neuronal tipo RHONN siguiendo una trayectoria Hélice.

Trayectoria Círculo

Tabla 11.Índices de desempeño del VGA con BC con identificador neuronal tipo RHONN siguiendo una trayectoria Círculo.

-1.5 -1 -0.5 0 0.5 1 1.5-1.5

-1

-0.5

0

0.5

1

1.5Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

Índice de desempeño Valor

IAE 0.0157

ISE 1.6488e-005

ITAE 0.3681

ITSE 29.6787

Índice de desempeño Valor

IAE 0.0090

ISE 2.2721e-006

ITAE 0.3026

ITSE 4.0899

Page 100: 263MC_fmr

74 Diseño de Control Basado en Identificación Neuronal para el VGA

Figura 44. Seguimiento del VGA a una trayectoria Círculo con BC con identificador neuronal tipo RHONN.

Figura 45. Seguimiento del VGA a una trayectoria Círculo con BC con identificador neuronal tipo RHONN en el plano “xy”.

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5Seguimietno en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5Seguimiento en posición en el eje y

tiempo(s)

met

ros

0 10 20 30 40 50 60-3

-2

-1

0

1

2x 10

-3 Error de seguimiento en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-3

-2

-1

0

1

2

3

4x 10

-3 Error de seguimiento en posición en el eje y

tiempo(s)

met

ros

VGA

Referencia

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

Page 101: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

75

Trayectoria Cuadrado

Figura 46. Seguimiento del VGA a una trayectoria Cuadrado con BC con identificador neuronal tipo RHONN.

Figura 47.Seguimiento del VGA a una trayectoria Cuadrado con BC con identificador neuronal tipo RHONN en el plano “xy”.

0 10 20 30 40 50 60-0.2

0

0.2

0.4

0.6

0.8

1Seguimiento en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-0.2

0

0.2

0.4

0.6

0.8

1Seguimiento en posición en el eje y

tiempo(s)

met

ros

0 10 20 30 40 50 60-3

-2

-1

0

1

2x 10

-3 Error de seguimiento en posición en el eje x

tiempo(s)

met

ros

0 10 20 30 40 50 60-2

-1

0

1

2

3x 10

-3 Error de seguimiento en posición en el eje y

tiempo(s)

met

ros

VGA

Referencia

-0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

Page 102: 263MC_fmr

76 Diseño de Control Basado en Identificación Neuronal para el VGA

Tabla 12. Índices de desempeño del VGA con BC con identificador neuronal tipo RHONN siguiendo una trayectoria Cuadrado.

4.7.3 Control propuesto en [Camarena’09]

Trayectoria Hélice

Figura 48. Seguimiento del VGA a una trayectoria Hélice con control propuesto en el trabajo de [Camarena’09].

Tabla 13. Índices de desempeño del VGA con el control propuesto en [Camarena’09] siguiendo una trayectoria Hélice.

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5

metros

Tie

mpo

(s)

Seguimiento en posición en el eje x

VGA

Referencia

0 10 20 30 40 50 60-1

-0.5

0

0.5

1Seguimiento en posición en el eje y

metros

Tie

mpo

(s)

0 10 20 30 40 50 60-0.1

0

0.1

0.2

0.3

0.4Error de seguimiento en posición en el eje x

metros

Tie

mpo

(s)

0 10 20 30 40 50 60-5

0

5

10

15x 10

-3Error de seguimiento en posición en el eje y

metros

Tie

mpo

(s)

Índice de desempeño Valor

IAE 0.0062

ISE 1.4442e-006

ITAE 0.2068

ITSE 2.5996

Índice de desempeño Valor

IAE 0.2941

ISE 0.0239

ITAE 3.3140

ITSE 4.2997e+004

Page 103: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

77

Figura 49. Seguimiento del VGA a una trayectoria Hélice con control propuesto en el trabajo de [Camarena’09] en el plano “xy”.

Trayectoria Círculo

Figura 50. Seguimiento del VGA a una trayectoria Círculo con control propuesto en el trabajo de [Camarena’09].

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Posición x

Pos

ició

n y

Seguimiento en el plano XY

VGA

Referencia

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5

metros

Tie

mpo

(s)

Seguimiento en posición en el eje x

VGA

Referencia

0 10 20 30 40 50 60-1.5

-1

-0.5

0

0.5

1

1.5Seguimiento en posición en el eje y

metros

Tie

mpo

(s)

0 10 20 30 40 50 60-0.1

0

0.1

0.2

0.3

0.4Error de seguimiento en posición en el eje x

metros

Tie

mpo

(s)

0 10 20 30 40 50 60-2

0

2

4

6x 10

-3Error de seguimiento en posición en el eje y

metros

Tie

mpo

(s)

Page 104: 263MC_fmr

78 Diseño de Control Basado en Identificación Neuronal para el VGA

Figura 51. Seguimiento del VGA a una trayectoria Círculo con control propuesto en el trabajo de [Camarena’09] en el plano “xy”.

Tabla 14. Índices de desempeño del VGA con el control propuesto en [Camarena’09] siguiendo una trayectoria Circulo.

Trayectoria Cuadrado

Tabla 15. . Índices de desempeño del VGA con el control propuesto en [Camarena’09] siguiendo una trayectoria Cuadrado.

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Posición x

Pos

ició

n y

Seguimiento en el plano XY

VGA

Referencia

Índice de desempeño Valor

IAE 0.1992

ISE 0.0231

ITAE 0.3938

ITSE 4.1506e+004

Índice de desempeño Valor

IAE 0.2104

ISE 0.0233

ITAE 1.5037

ITSE 4.1928e+004

Page 105: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

79

Figura 52. Seguimiento del VGA a una trayectoria Cuadrado con control propuesto en el trabajo de [Camarena’09].

Figura 53. Seguimiento del VGA a una trayectoria Cuadrado con control propuesto en el trabajo de [Camarena’09] en el plano “xy”.

0 10 20 30 40 50 60-0.2

0

0.2

0.4

0.6

0.8

1

metros

Tie

mpo

(s)

Seguimiento en posición en el eje x

0 10 20 30 40 50 60-0.2

0

0.2

0.4

0.6

0.8

1Seguimiento en posición en el eje y

metros

Tie

mpo

(s)

0 10 20 30 40 50 60-0.1

0

0.1

0.2

0.3

0.4Error de seguimiento en posición en el eje x

metros

Tie

mpo

(s)

0 10 20 30 40 50 60-3

-2

-1

0

1

2

3x 10

-3 Error de seguimiento en posición en el eje y

metros

Tie

mpo

(s)

VGA

Referencia

-0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Posición x

Pos

ició

n y

Seguimiento en el plano XY

VGA

Referencia

Page 106: 263MC_fmr

80 Diseño de Control Basado en Identificación Neuronal para el VGA

4.8 Resultados finales

Los resultados que se obtuvieron se muestran en la tabla 16, que son todos los índices de desempeño obtenidos. En la figura 54 se muestra en una grafica de barras el índice IAE de todos los controles así como de todas las trayectorias, se puede observar que las barras del BC y BC con identificador neuronal RHONN son muy pequeñas a diferencia del control propuesto en [Camarena'09].

Tabla 16. Índices de desempeño de los controles utilizados sobre el VGA con diversas trayectorias.

Índice de des.

Block Control BC con Identificador RHONN [Camarena’09]

∞ o □ ∞ o □ ∞ o □

IAE 0.030 9.5749e-004 0.0013 0.0157 0.0090 0.0062 0.2941 0.1992 0.2104

ISE 8.2551 e-006

5.0967 e-007

8.1642 e-007

1.6488 e-005

2.2721 e-006

1.4442 e-006 0.0239 0.0231 0.0233

ITAE 0.0234 0.0196 0.0361 0.3681 0.3026 0.2068 3.3140 0.3938 1.5037

ITSE 14.8595 0.9174 1.4696 29.6787 4.0899 2.5996 4.2997 e+004

4.1506 e+004

4.1928 e+004

Figura 54. IAE de los controles aplicados al VGA.

Los índices de desempeño indican que el mejor control es el BC pero el BC con identificador neuronal tipo RHONN es muy cercano al de BC, por otra parte el control propuesto en [Camarena'09] se encuentra 10 veces más abajo que los demás, sin embargo al poder ver las gráficas el seguimiento es bueno, todos los controles pudieron realizar el seguimiento de las tres trayectorias propuestas.

0

0,05

0,1

0,15

0,2

0,25

0,3

0,35

BC BC RHONN [Camarena'09]

IAE

Infinito

Círculo

Cuadrado

Page 107: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

81

Por otra parte el control en [Camarena'09] tiene un problema en cuestión del ángulo de inicio de la orientación del robot, esto es debido a las ecuaciones del sistema cinemático, lo que hace que el robot pierda la referencia en los primeros segundos de la trayectoria, a pesar de indicar el punto de partida.

Físicamente el robot acelera y pierde la trayectoria, sin embargo si se detiene durante unos segundos y después se suelta puede realizar el seguimiento sin problemas.

Page 108: 263MC_fmr

82 Diseño de Control Basado en Identificación Neuronal para el VGA

A veces, cuesta mucho más elimnar un solo defecto que adquirir cien virtudes.

-Jean de la Bruyére

Page 109: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

83

Page 110: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

84

Capítulo 5

Implementación en el VGA – Cenidet

El objetivo de este capítulo es mostrar el diseño electrónico del sistema embebido así como también la programación de los algoritmos propuestos en este trabajo de tesis. El sistema embebido se incluyó en el prototipo VGA – Cenidet como parte de su electrónica, el prototipo se diseñó inicialmente para trabajar en conjunto de una computadora para ejecutar los algoritmos de control.

Un sistema embebido se define como un conjunto de componentes electrónicos que trabajan para un mismo fin que se encuentra integrado en un equipo, sistema, aplicación o instrumento, comúnmente las tareas que realizan estos tipos de sistemas son muy especificas y frecuentemente son utilizados en aplicaciones en tiempo real. Además este sistema suele ser compacto, por lo cual es fácil introducirlo en un sistema robótico autónomo. Para este caso particular el sistema embebido se diseña basándose en una tarjeta de evaluación de la marca Microchip, llamada dsPic Pro 4, que contiene como microcontrolador central un dsPic 30f6014 de la misma marca, el cual pertenece a la familia de los DSP´s (Digital Signal Processor, por sus siglas en inglés).

La metodología utilizada en esta sección fue la siguiente: se diseñaron los elementos electrónicos como acondicionadores de señales para la conexión del sistema embebido al prototipo VGA – Cenidet. Teniendo esto funcionando se realizaron pruebas utilizando el dSpace, lo que indica que no se usó el sistema embebido en esta parte. Por último programar el sistema embebido y realizar las pruebas pertinentes.

5.1 Estructuras electrónicas del VGA – Cenidet

5.1.1 Configuración del VGA – Cenidet de acuerdo a [Camarena'09]

El VGA – Cenidet fue diseñado para que una computadora con una tarjeta dSpace procese todos los algoritmos de control [Camarena'09], en la figura 55 se muestra

Page 111: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

85

un diagrama a bloques de cómo fue diseñado, donde se muestran las conexiones de derecha a izquierda:

Se encuentra una computadora que manda y recibe señales de la tarjeta dSpace, esta tarjeta es un conjunto de DSP’s utilizada para el desarrollo de proyectos, cuenta con una gran gama de conexiones, como lo pueden ser entradas y saldas digitales y analógicas, salidas de PWM (Pulse Width Modulator, por sus siglas en inglés), puertos de comunicación RS-232, bus CAN, RS-485, entre otros, lector de encoder. Se programa en ambiente a bloques con la ayuda de Simulink de la empresa de Matlab.

El dSpace recibe y manda las señales del VGA – Cenidet e internamente el robot está conectado para que las señales que recibe del dSpace se dirijan a las ruedas y al movimiento de las ruedas los encoders conectados directamente a las ruedas manden las señales hacia el dSpace.

Figura 55. Diagrama a bloques de la estructura del VGA – Cenidet e interacción de esté con el dSpace de acuerdo a [Camarena'09].

Las conexiones entre el VGA – Cenidet y el dSpce se realizan a través de un cable con terminales DB25, en el Anexo B se muestra la configuración de conexión.

5.1.2 Configuración del VGA – Cenidet con el sistema embebido

El esquema que se uso para integrar el sistema embebido al prototipo VGA – Cenidet se presenta en la figura 56, donde se muestran las siguientes partes: En la parte derecha se encuentra el VGA – Cenidet diseñado en [Camarena'09], internamente se pueden ver los bloques de cada la rueda, los cuales se encuentra conectada mecánicamente con un motor y un encoder. Se puede ver también el modulo de conexiones, un bloque que representa toda la electrónica de potencia y

Page 112: 263MC_fmr

86 Implementación en el VGA – Cenidet

las interconexiones entre los bloques. En la parte central se muestran solo los elementos utilizados de la tarjeta de evaluación dsPic Pro 4 y sus conexiones con los otros elementos. Y por ultimo en la parte izquierda se muestra una computadora la cual solo se conecta y usa en el momento de realizar cambios del programa del dsPic 30f6014.

Figura 56. Esquema de implementación.

Comparando las figuras 55 y 56, la computadora es esencial para el control en el caso del dSapce pero a diferencia en el sistema embebido solo se requiere para realizar configuraciones de programación como por ejemplo, cambios de la trayectoria a seguir, cambio valores de los controladores.

5.2 Implementación del hardware

5.2.1 Conexiones entre el dSpace y el VGA – Cenidet

En la figura 57 se muestran las salidas y entradas que usa el dSpace para el control del VGA – Cenidet de acuerdo a la figura 55 es el bloque dSpace. Por una parte se encuentran las señales de control (PWM) y las direcciones de los motores, estas son generadas para saber si el motor tiene que moverse hacia adelante o hacia atrás, esto es debido a que solo con el PWM no se puede realizar cambios de dirección en un motor. Por otra parte están las entradas de los encoders de los motores.

Page 113: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

87

Figura 57. Señales que usa el dSpace para el control del VGA - Cenidet.

En la figura 58 se muestran las señales que se dirigen directamente a los motores y los circuitos que se encuentran en el VGA – Cenidet de acuerdo a la figura 55 es el bloque nombrado “Circuito Controlador”. El dSpace manda dos bits de dirección por rueda, dependiendo el sentido de giro de esta, la tabla 17 se muestran cada combinación de bits lo que significa, estos bits son dirigidos a un circuito de protección el cual es un circuito lógico AND que tiene la función de no dejar pasar alguna señal de control si existe un problema con los bits de direcciones, después de pasar por esta protección la señal de control se introduce en un circuito de conocido como “Puente H”, el cual se encarga de dar la potencia necesaria a la señal para que el motor pueda tener el mejor desempeño posible.

Figura 58. Señales de entrada en el VGA – Cenidet [Camarena'09].

Tabla 17. Acciones del motor de acuerdo a los bits de dirección.

Bits de Dirección Acción

Bit 1 Bit 2 0 0 Motor Detenido 0 1 Giro hacia adelante 1 0 Giro hacia atrás 1 1 Sin acción

Page 114: 263MC_fmr

88 Implementación en el VGA – Cenidet

5.2.2 Encoder de los motores del VGA – Cenidet

De acuerdo a la figura 55, el bloque de “Encoder incremental” es un dispositivo capaz de mandar pulsos a la velocidad de giro de un rotor con el modelo HEDS-5600 de la marca de Hewllett-Packard [Camarena'09], en la figura 59 se muestra una fotografía de este.

El encoder es un transductor rotativo, que mediante una señal eléctrica (normalmente un pulso o una señal senoidal) indica el ángulo de giro. Si este sensor rotatorio se conecta mecánicamente con una rueda se puede medir distancias lineales, velocidades angulares y posición angular de la rueda.

Las características básicas de un encoder óptico son:

• Tensión de alimentación: Indica a que tensión puede trabajar el encoder. • Resolución: es el número de pulsos que da por revolución. • Tipo de salida: las salidas de los canales pueden ser de varios tipos; TTL,

colector abierto, tótem-pole, etc. • Número de canales: suelen ser 1 o 2, más un canal adicional de index que da

un pulso por vuelta.

Figura 59. Encoder HEDS-5600.

En la figura 60 se el esquema interno del encoder HEDS-5600, este encoder funciona de la siguiente manera: un LED (Light Emisor Diode, por sus siglas en inglés) que esta siempre se está encendido, colocado enfrente de un sensor óptico, el cual mientras reciba luz manda una señal de eléctrica. Entre el LED y el sensor óptico se encuentra una rueda giratoria con ranuras, rueda esta directamente conectada al rotor del motor a utilizar, esta rueda solo deja pasar luz por sus orificios, los sensores óptico detectan cada cambio de luz y después de una procesamiento de estas señales manda pulsos a los canales de salida. La frecuencia de los pulsos es proporcional a la frecuencia de giro del motor.

Page 115: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

89

Figura 60. Diagrama de conexiones del encoder HEDS-5600.

Las salidas utilizadas de este encoder son el canal A, el canal B y el index, donde el canal de A es el giro normal, el canal B es un retardo del canal A y el index es un pulso que se presenta cada vuelta completa de la rueda del encoder. En la figura 61 se muestran los pulsos de los canales A y B de acuerdo a la dirección del giro.

Figura 61. Pulsos del encoder de acuerdo a la dirección de giro.

Como se pude ver en la figura anterior cuando el giro es hacia la derecha el canal B está adelantado del canal A un 50% y cuando el giro es hacia la izquierda está atrasado.

5.2.3 Tarjeta de Evaluación dsPic PRO 4

El dsPic 30f6014 es un sistema basado en un procesador o microprocesador que posee un conjunto de instrucciones, un hardware y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad, lo cual indica que es capaz de realizar dos operaciones en un ciclo de maquina por ejemplo: una suma y una multiplicación simultanea. Esta característica constituye la principal diferencia de un DSP y otros tipos de microprocesador.

La Familia dsPic30f60XX están diseñados en arquitectura Harvard, en la cual existen bloques de memoria físicamente separados para datos y programa. Cada

Page 116: 263MC_fmr

90 Implementación en el VGA – Cenidet

uno de estos bloques de memoria se direcciona mediante buses separados (tanto de direcciones como de datos como se muestra en la figura 62), e incluso es posible que la memoria de datos tenga distinta dimensión de palabra que la memoria de programa. Debido a esto el procesamiento es más rápido que en otro tipo de arquitecturas ya que se puede tener acceso al mismo tiempo a la memoria del programa y de datos, esto es gracias a que se tienen buses diferentes.

Figura 62. Bus en la arquitectura Harvard.

Los elementos básicos que componen un dsPIC son:

• Conversores en las entradas y salidas • Memoria de datos, memoria de programa. • MACs: multiplicadores y acumuladores. • ALU: Unidad aritmético-lógica. • Registros. • PLL: Bucles enganchados en fase. • PWM: Módulos de control de ancho de pulso.

Las especificaciones eléctricas del este dsPic son:

• Máxima corriente de entrada – salida 25 mA. • Voltaje de operación en tecnología CMOS 2.5 V a 5.5 V. • Temperatura de operación hasta 85 °C. • Alimentación -0.3 V a +5.5 V

En la figura 63 se muestra la tarjeta de evaluación dsPIC Pro 4, la cual contiene diversos elementos como lo son:

� 7 puertos de entrada/salida digital, los cuales están disponibles en pines, así como también con botones y LED’s.

� 12 puertos de entrada analógica, además contiene dos resistencias variables para poder introducir dos señales diferentes analógicas.

� Puertos de comunicación: 2 RS232, 1 RS485, CAN bus y Ethernet.

Page 117: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

91

� Un reloj a tiempo real. � Botón de reset. � Programador a través de USB. � LCD de 2X16.

Figura 63. Tarjeta de evaluación dsPic Pro 4.

Los elementos utilizados para el sistema embebido son los siguientes:

Se utilizaron las salidas digitales para indicar la dirección de los motores, así como las señales PWM que en este caso son las señales de control, por otra parte se utilizaron las entradas analógicas para introducir la velocidad de los motores, las cuales son proporcionadas por las tarjetas lectores de encoders.

5.2.4 Configuración de los encoders de los motores del VGA – Cenidet para el sistema embebido

Para integrar el sistema embebido al prototipo del VGA – Cenidet fue necesario identificar las características de las señales de entrada y salida, los nivel de voltaje que maneja la tarjeta dsPic Pro 4 son compatibles con el VGA – Cenidet, pero la familia dsPIC30F60XX no contiene entradas para leer los encoder (llamada comúnmente Quadrature Encoder) de motores por lo que se diseñó un lector de encoders, así se podrá introducir la señal de velocidad de las ruedas del VGA-Cenidet como un voltaje a un puerto del convertidos analógico-digital.

Para poder realizar el lector de encoder se utiliza un PIC 16f877, con ayuda de la interrupción externa que tiene este tipo de PIC’s, se puede realizar un conteo de interrupciones. La interrupción se realiza al momento en que el canal A cambia de un voltaje bajo a un voltaje alto, lo que se define como flanco de subida, sí fuese inverso se define como flanco de bajada. Para mejor entendimiento se describe un pseudo-algoritmo para la programación de la interrupción para el conteo de pulsos.

Page 118: 263MC_fmr

92 Implementación en el VGA – Cenidet

• Si existe flanco de subida en A o Si B=0 significa que el giro es hacia la derecha y se aumenta el contador o Si B=1 significa que el giro es hacia la izquierda y se tiene que restar el

contador.

Debido a que la tarjeta dsPic Pro 4 solo permite voltajes de entrada positivos, se quiere pensar en tener un bit de dirección para que siempre exista un conteo en aumento. Se realiza lo siguiente:

• Si el bit de dirección es hacia la derecha o Si existe flanco de subida en A

� Si B=0 significa que el giro es hacia la derecha y se aumenta el contador.

� Si B=1 significa que el giro es hacia la izquierda y no se hace ninguna acción.

o Si existe flanco de bajada en A

� No se activa la interrupción, no hay aumento o decremento.

• Si el bit de dirección es hacia la izquierda o Si existe flanco de subida en A

� Si B=0 significa que el giro es hacia la derecha y no se hace ninguna acción.

� Si B=1 significa que el giro es hacia la izquierda y aumenta el contador.

o Si existe flanco de bajada en A

� No se activa la interrupción, no hay aumento o decremento.

Pero con el simple conteo de pulsos no se tiene la velocidad del motor, se requiere dividir entre un lapso de tiempo para tener este información, por lo que se diseño una interrupción con un timer, se pone un tiempo especifico para realizar esta interrupción y una vez hecha se hace una división de el valor del conteo entre el tiempo definido, borrar el contador y poner el resultado de la división en un puerto. El programa utilizado en el Pic 16F877 se encuentra el anexo A.

Los bits de direcciones indicados en la tabla 17 se producen con la tarjeta dsPic Pro 4, por lo que se utiliza un circuito selector para indicar la dirección de giro del motor. Y por último se colocó un convertidor digital analógico para enviar la información a la tarjeta dsPic Pro 4. En la figura 64 se muestra un diagrama de flujo de como se realiza la lectura de los encoders con la tarjeta diseñada para este fin.

Page 119: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

93

Figura 64. Diagrama de flujo del lector de encoder.

En la figura 65 se muestra la tarjeta diseñada para leer los encoders, esta tarjeta forma parte del sistema embebido final como se mostro anteriormente en la figura 62.

Figura 65. Tarjeta lectora de encoders.

Page 120: 263MC_fmr

94 Implementación en el VGA – Cenidet

El VGA – Cenidet tiene nuevas herramientas y se ha logrado poder utilizar el robot sin necesidad de que un computadora este conectada todo el tiempo. Se ha colocado la tarjeta dsPIC Pro 4 sobre el robot en una basa en conjunto con los lectores de los encoders como se muestra en la figura 66, también cabe mencionar que se han colocado dos baterías para poder alimentar toda esta nueva electrónica, esto se ha realizado debido a que para poder utilizar el ultimo dispositivo de la tarjeta lectora de encoder requiere un voltaje negativo debido al convertidor digital analógico y por otra parte para tener una separación sobre las cargas de la batería que va directamente conectada directamente a los motores del robot.

Figura 66. VGA - Cenidet con el dsPic Pro 4 y tarjetas de encoder.

5.3 Programación de los algoritmos de control e identificación neuronal diseñados.

5.3.1 Programación de los algoritmos en el dSpace

Se realizó una prueba con el sistema del dSpace, se programaron los algoritmos del identificador neuronal en conjunto del BC en Simulink de Matlab.

Se manejó un tiempo mínimo de muestreo de 10 milisegundos para realizar la prueba, este tiempo de muestreo no se pudo reducir debido a que Matlab marca error de compilación, lo que significa que no puede realizar todas las operaciones en tan poco tiempo.

El tiempo de muestreo es el tiempo en que el sistema obtiene las señales, la procesa y manda una señal de control, dentro de este tiempo se encuentra el tiempo que tardan los convertidores analógico – digital, el procesamiento del identificador neuronal, el procesamiento de la ley de control y la creación de los PWM’s.

La tarjeta dSpace es que las señales de entrada y salida se proporcionen o se obtengan, según sea el caso de manera paralela, como se muestra en la figura 68, existen 4 etapas del algoritmo, la primer etapa es la obtención de las señales de las velocidades de las ruedas del VGA – Cenidet, la segunda etapa es el algoritmo de identificación esta parte es la más pesada computacionalmente de todo el algoritmo, la tercera etapa es el cálculo de la señal de control y la última etapa es dar las señales de control en forma de PWM.

Page 121: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

95

Figura 67. Diagrama de secuencia en el tiempo del programa en el dSpace.

5.3.2 Programación de los algoritmos en la tarjeta dsPIC Pro 4

El compilador usado para este trabajo es mikroC compiler de la empresa MikroChip, el cual está basado en el lenguaje C. Debido a que el diseño del control así como el algoritmo de identificador neuronal, se encuentran en tiempo discreto, resulto de gran ayuda al momento de realizar el traslado al sistema embebido, el mayor problema que proporciona este lenguaje es en el algoritmo del FKE, debido a que son operaciones entre matrices o matrices con vectores y este compilador no es capaz de realizar este tipo de operaciones en una instrucción. Por lo que se realizó el análisis del FKE por ciclo y se obtuvieron las siguientes sumatorias de forma escalar, lo que ayudó a la programación:

Tomando en cuenta las dimensiones siguientes del FKE mostrado en (11):

, , , , , ,m m m mK H P Q H R eω η×∈ ∈ ∈ ∈R R R R

El FKE en (11) queda como:

1 1

1

1

1

m m

k kl ll k

m

n k nkk

n n n n

m

ln ln l k kn lnk

M R H P H

K H P M

K e

P P K H P Q

ω ω η

= =

=

=

= +

=

= +

= − +

∑ ∑

Con esto se obtiene que el algoritmo del identificador neuronal puedes ser programado en ciclos de sumas y multiplicaciones.

Page 122: 263MC_fmr

96 Implementación en el VGA – Cenidet

El algoritmo que se utilizó para realizar las simulaciones del VGA, fue programado y probado en la tarjeta dsPIC Pro 4 como se muestra en la figura 68.

Figura 68. Diagrama de flujo del programa de la tarjeta dsPic Pro 4.

El programa inicia obteniendo las señales de los sensores del VGA, como las entradas analógicas están limitadas de 0 a 5 vols, se realiza dentro del programa una adecuación de estas señales para poder realizar las operaciones con las señales reales, después de tener las señales deseadas se realiza la identificación RHONN y una vez tenido los datos de identificación se procede a la técnica de control BC, por último se generan los PWM necesarios para cada motor del VGA de acuerdo a la señal de control, el programa se muestra en el Anexo A.

Los algoritmos implementados en la tarjeta del dsPic Pro 4 abarcan gran parte de las memorias del microprocesador. Al compilar el programa se noto que se utilizó más del 90% de la memoria de datos y solo el 35% de la memoria del programa.

El programa que se utilizó esta en lenguaje C, por lo que el programa se encuentra en forma secuencial, esto quiere decir que hace una sola instrucción en un ciclo de

Page 123: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

97

máquina, en la figura 69 se muestra un diagrama de tiempo donde se puede ver cómo se desarrolla en el tiempo. El tiempo de muestreo mínimo utilizado es de 50 milisegundos por lo que el control no pudo realizar el seguimiento de trayectorias.

Figura 69. Diagrama de secuencia en el tiempo del dsPic.

A diferencia del dSpace, comparando las figuras 67 y 69, el sistema embebido tarda más en obtener las señales de los sensores del robot, debido a que el dSpace tiene la capacidad de manejar los señales de entrada y salida en forma paralela y el sistema embebido no, agregado a esto el sistema embebido no puede obtener de manera directa la lectura de los encoder, por lo que se gasta tiempo en el procesarlas en las tarjetas lectoras de encoder. Por lo que se puede decir que el sistema embebido no es suficientemente capaz de realizar esta aplicación.

5.4 Pruebas

5.4.1 Pruebas en el dSpace

En la figura 70 se muestra la identificación del VGA – Cenidet a través del las RNA tipo RHONN y como se pueden observar las señales de la identificación se encuentra montada sobre las señales del VGA, a pesar de los cambios bruscos que contienen las señales, se pudo identificar correctamente el sistema.

Page 124: 263MC_fmr

98 Implementación en el VGA – Cenidet

Figura 70. Identificación del VGA - Cenidet con RNA tipo RHONN.

En la figura 71 se muestra el seguimiento del eje x y y. Se puede observar que intenta seguir la referencia pero con mucho error, en la figura 72 se puede observar más el error de seguimiento que tiene, sin embargo en todo momento intenta cerrar este error. Esto es debido mientras que el dSpace está obteniendo la señal de control para un tiempo t el VGA – Cenidet se encuentra en una posición en un tiempo t+1, es por lo que cuando el robot intenta seguir la referencia el algoritmo ha mandado tarde la señal de control que se necesita.

Page 125: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

99

Figura 71. Seguimiento de trayectoria de la posición x y posición y.

Figura 72.Seguimiento de trayectoria en el plano "xy".

Debido a que las señales de control cambian de manera brusca los motores se afectan y es por ello que no se realizaron más pruebas.

Cabe mencionar que las figuras 70, 71 y 72, son datos que el dSpace puede obtener fácilmente debido a que el procesamiento lo hace el mismo, por lo que poder analizar las señales de los sensores y actuadores no son ningún problema. Por otra parte en el sistema embebido es difícil obtener las señales ya que se requiere un

Page 126: 263MC_fmr

100 Implementación en el VGA – Cenidet

poco más de líneas de programación para poder obtener por algún puerto estas señales.

5.4.2 Pruebas en sistema embebido.

Para poder comprobar que lo antes dicho es correcto y no se tiene algún error con programación o algún problema en señales electrónicas, se realizan algunas simulaciones utilizando diversos tiempos de muestreo que van del mínimo tiempo utilizado en simulación hasta el tiempo utilizado en el sistema embebido.

En la figura 73 se muestra el seguimiento del VGA a la referencia tipo infinito con un tiempo de 1 ms, teniendo un buen seguimiento.

Figura 73. Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 1 ms.

En la figura 74 el tiempo es de 5 ms y la diferencia entre la figura 73 no es mucha por lo que se puede decir que aun hace un buen seguimiento. En la figura 75 con un tiempo de 10 ms aun sigue la referencia pero con mayor error, por otra parte al casi finalizar la trayectoria tiene un problema y pierde el camino por completo.

En la figura 76 con un tiempo de 25 ms se puede ver que la intenta seguir la trayectoria con un error mucho mayor que las anteriores y a la mitad de esta se pierde por completo.

Por último en la figura 77 con un tiempo de 50 ms se muestra que desde un inicio no sigue la trayectoria, también se coloco el identificador neurona en esta prueba para poder ver que el identificador sigue al VGA en todo momento, por lo que se concluye en que en ese tiempo que es el que el sistema embebido trabaja es imposible de seguir la trayectoria.

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

Page 127: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

101

Figura 74.Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 5 ms.

Figura 75. Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 10 ms.

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

Page 128: 263MC_fmr

102 Implementación en el VGA – Cenidet

Figura 76. Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 25 ms.

Figura 77. Seguimiento del VGA a una trayectoria infinito con un tiempo de muestreo de 50 ms.

5.5 Conclusiones del capítulo

Se logró la independencia del VGA – Cenidet a una computadora, con el sistema embebido diseñado. Este sistema embebido puede leer los encoders y proporciona las señales adecuadas para los actuadores del robot.

El algoritmo del esquema de control propuesto no es capaz de realizar el seguimiento de trayectoria, debido a que el identificador neuronal es muy pesado en cuestión de tiempo de procesamiento, agregado a esto el tiempo que se tarda en recibir las señales de los sensores y mandar las señales a los actuadores.

La prueba realizada en Simulink de Matlab, usando el dSpace como control, logró seguir la trayectoria pero con mucho error en todo el seguimiento, en este caso fue capaz el robot de hacer el seguimiento y es porque en el dSpace es menor el tiempo que requiere para el procesamiento.

-3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Seguimiento en plano XY

eje x

eje

y

VGA

Referencia

-1 -0.5 0 0.5 1 1.5 2-5

-4

-3

-2

-1

0

1

2Seguimiento en plano XY

eje x

eje

y

Real VGA

EstimadoReferencia

Page 129: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

103

Lo que hacemos es resultado directo no sólo de qué y cómo pensamos, sino

también de qué y cómo sentimos. -Warren Bennis

Page 130: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

104

Capítulo 6

Conclusiones

6.1 Conclusiones

En un inicio los objetivos planteados para este trabajo de tesis fueron: 1. Realizar un estudio y asimilación de la RNA tipo RHONN. 2. Realizar estudio y asimilación del manejo de la tarjeta dsPic Pro 4. 3. Integración de la estrategia de control en sistemas embebido. 4. Seguimiento de trayectorias de referencia en el plano XY.

De los cuales se cumplieron los siguientes:

1. Se estudió y asimiló las redes neuronales tipo RHONN, realizando la identificación neuronal de un satélite en órbita, del oscilador Van der Pol y de un motor de corriente directa de excitación separada, por otra parte identifico con un mismo modelo neuronal a un modelo generalizado del VGA en simulación y al VGA – Cenidet en implementación. 2. Se reviso detalladamente la tarjeta de evaluación dsPic Pro 4, con lo cual se encontraron deficiencias para la aplicación que se propone en este trabajo de tesis, como: no contar con un lector de encoder y el procesamiento de las señales son de manera secuencial sin poder hacer nada de manera paralelo. 3. Se tomo al Block Control como técnica de control para este trabajo de tesis, El cual fue capaz de controlar un sistema numérico con perturbaciones sin tomar estás en el diseño del control, también controlo al modelo del VGA en simulación y pudo seguir de manera adecuada las trayectorias que se propusieron. Se diseño un algoritmo de control (Block Control) basado en un identificador neuronal para el VGA – Cenidet capaz de seguir alguna trayectoria prediseñadas, teniendo resultados favorables en programación. 4. En un inicio se planteó realizar un sistema descentralizado, es decir tener el algoritmo de identificación en una tarjeta dsPic Pro 4 y el algoritmo de control en otra igual, teniendo estas comunicadas y trabajando simultáneamente. Sin embargo

Page 131: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

105

debido a todos los problemas que se provocaron con el tiempo de muestreo, no fue capaz de realizar esta separación ya que al integrar un algoritmo de comunicación consume tiempo de procesamiento de los datos y como se menciono anteriormente el sistema embebido no es capaz de proporcionar la señales de control en el tiempo necesario, por lo que este objetivo no se cumplió al 100%, sin embargo las pruebas en simulación se muestra que el esquema de control basado en identificador neuronal es capaz de realizar el seguimiento adecuado de diversas trayectorias.

Por lo anterior se concluye lo siguiente:

El algoritmo de la identificación neuronal basada en Redes Neuronales Recurrentes de Alto Orden es muy pesado debido al Filtro de Kalman Extendido. Es posible disminuir este tiempo si se ocupa otro algoritmo para entrenar los pesos sinápticos de la red neuronal.

El esquema de control con la técnica de Block Control en conjunto con la identificación neuronal logró hacer que el VGA siguiera alguna trayectoria preestablecida.

Agregado a lo anterior el VGA – Cenidet se encuentra ahora independiente de una computadora para la ejecución de sus algoritmos de control, por otra parte sigue conservando todo el diseño planteado en [Camarena'09].

Por otra parte se ha publicado un artículo con el título de “Control descentralizado de un vehículo guiado automáticamente mediante redes neuronales artificiales” en el congreso nacional del AMCA con los resultados obtenidos.

6.2 Aportaciones

La principal aportación de este trabajo es: la exploración de un algoritmo de control inteligente basado en redes neuronales, para el seguimiento de trayectoria de sistemas dinámicos. Este algoritmo es la unión de dos elementos, por una parte se encuentra la técnica del Block Control y por otro un identificador neuronal.

A pesar de que el identificador neuronal es computacionalmente muy pesado, debido a su método de entrenamiento, logramos controlar diversos sistemas dinámicos en simulación como por ejemplo un satélite en órbita y un VGA. Por otra parte trasladamos los algoritmos programados de forma secuencial a bloques en el programa Simulink y lo probamos con un sistema físico real (VGA –Cenidet) logrando seguir la trayectoria, una vez teniendo los resultados, presentados en el capítulo 5, se trasladar los algoritmos a un sistema embebido conectado directamente al VGA – Cenidet, sin poder logra el seguimiento de trayectoria.

Otra aportación de este trabajo es que la maqueta VGA – Cenidet se encuentra libre de cables, lo que quiere decir que tiene un espacio de trabajo más amplio, esto se logro con el diseño del sistema embebido y sus tarjetas acondicionadores de

Page 132: 263MC_fmr

106 Conclusiones

señales, teniendo como resultado una maqueta de pruebas para nuevas técnicas de control.

6.3 Trabajos Futuros

Los trabajos futuros que se proponen para el seguimiento de este tema de tesis son:

El estudio de un sistema de embebido lo suficientemente capaz de procesar el algoritmo del Filtro de Kalman Extendido para poder lograr el seguimiento de trayectoria del VGA – Cenidet.

Explorar una nueva técnica de entrenamiento para las Redes Neuronales Recurrentes de Alto Orden, con el fin de disminuir el gasto computación y lograr el seguimiento de trayectoria del VGA – Cenidet de una manera adecuada.

Probar nuevas técnicas de control en el sistema embebido, el cual se encuentra implementado en el VGA – Cenidet, con el fin de comparar el control propuesto en este trabajo con otros en el mismo sistema.

Page 133: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

107

Page 134: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

108

Anexo A

Programas del sistema embebido

A.1 Programa lector de encoders.

#include "C:\Users\Public\Documents\encoder_1.h" #Fuses NOWDT, XT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #Use Delay( Clock = 4000000 ) // Usamos un cristal de 4MHz, por ejemplo. #Byte PortA = 0x05 // Dirección del puerto A #Byte PortB = 0x06 // Dirección del puerto B // ------ Variable Global ------ Int8 x = 0; // Declaramos el valor de X como Byte, es decir, 8 bits. Esta variable // ha de ser global porque su valor lo usaremos en la interrupción y // en el programa principal. Por tanto declaramos esta variable // antes de la interrupción y de "Void Main". Int8 timer=0; // --------- Interrupción --------- #Int_Ext // Interrupción Externa por RB0: Decodificación de Encoder. Void IntRB0() { If (Bit_Test(PortB, 0)) // Si RB0 se ha puesto a 1 (flanco de subida), { Ext_Int_Edge(H_TO_L); // entonces activar la siguiente interrupción por flanco

// de bajada. If (Bit_Test(PortB, 1)) // Si RB1 está a 1, { x++; // entonces incrementar una unidad el valor de X. } } } Void Main() // Inicio y configuración. { Setup_adc_ports(NO_ANALOGS); Setup_adc(ADC_CLOCK_DIV_2); Setup_spi(SPI_SS_DISABLED); Setup_timer_0(RTCC_INTERNAL|RTCC_DIV_128);

Page 135: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

109

Setup_timer_1(T1_DISABLED); Setup_timer_2(T2_DISABLED,0,1); Ext_Int_Edge(L_TO_H); // Inicialmente detectar interrupción por flanco de

// subida. Enable_Interrupts(Int_Ext); // Activar Interrupción Externa por RB0/INT. Enable_Interrupts(GLOBAL ); // Interrupciones Generales Activadas. Set_Tris_B(0b11111111); // Puerto B. // ---------- Programa Principial ---------- While (True) { timer=get_timer0(); if(timer>=195) { PortD = x; // El valor de X sale por el Puerto C a los 8 LED de salida. bit_set(PortA,0); set_timer0(0); timer=0; x=0; } bit_clear(PortA,0); } }

A.2 Programa de algoritmos en dsPic Pro 4

// Programa del modelo del VGA generalizado /*****ADC y DAC Variables *****/ unsigned adcRes; // Dato del ADC double long final; // Valor en voltaje en binario unsigned int value; // Dato que saca el DAC const char CS_PIN = 1; const char LD_PIN = 2; double long dato1; double long dato2; double long i1; double long i2; double long i11; double long i22; int dir1; int dir2; /*****************Sistema Variables *************** ****************************/ double long phi; // Posición del robot double long x; // Posición en el eje x double long y; // Posición en el eje y double long phit; // Position del robot double long xt; // Posición en el eje x double long yt; // Posición en el eje y double long xd1; // Posición en el eje x

Page 136: 263MC_fmr

110 Programas del sistema embebido

double long yd1; // Posición en el eje y double long xd2; // Posición en el eje x k+1 double long yd2; // Posición en el eje y k+1 double long tetad; // Posición de la rueda derecha double long tetai; // Posición de la rueda izquierda double long vd; // Velocidad de la rueda derecha double long vi; // Velocidad de la rueda izquierda double long tetadt; // Posición de la rueda derecha double long tetait; // Posición de la rueda izquierda double long vdt; // Velocidad de la rueda derecha double long vit; // Velocidad de la rueda izquierda double long vd1; // Velocidad de la rueda derecha double long vi1; // Velocidad de la rueda izquierda double long tmp; // Valor para modificar salida double long taod; // Torque aplicado a la rueda derecha double long taoi; // Torque aplicado a la rueda izquierda double long phi1; double long t1; int k; int i; int j; const double long phi0=0.0; // const double long T=0.058; // Tiempo de muestreo para referencia const double long T2=0.0009666; // Tiempo de muestreo para referencia T/60 /*****Variables de RHONN*****/ double long w_1[16]={0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1}; double long H1[16]; double long HP[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; double long PH[16]; double long K2[16]; double long P1[16][16]; double long Q1[16][16]; double long M1[16][16]; double long RR; double long HPH; double long sx1; double long sx2; double long sx3; double long sx4; double long sx5; double long sx6; double long x_1; double long x_2; double long x_3; double long x_4; double long x_5; double long x_6; double long e1;

Page 137: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

111

double long e2; double long e5; double long e6; const double long d1=0.001; const double long d2=0.001; const double long d3=0.001; const double long d4=0.001; const double long d5=0.0001; const double long d6=0.0001; const double long d7=0.0001; const double long d8=0.0001; const double long R1=300.0; const double long miu1[16]={3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0}; const double long g1=1.0; const double long beta=0.000246819; // /*****Variables de CONTROL*****/ double long b111; double long b112; double long b121; double long b122; double long b131; double long b132; double long b141; double long b142; double long b211; double long b212; double long b221; double long b222; double long z1; double long z2; double long k1=-0.95; /********************Constantes de PID ************ *******/ const double long KP=5.0; const double long TI=0.0; const double long TD=0.0; const double long KP2=5.0; const double long TI2=0.0; const double long TD2=0.0; double long ref1; double long ref2; double long upid1; double long upid2; double long epid1; double long epid2; double long epid11; double long epid22;

Page 138: 263MC_fmr

112 Programas del sistema embebido

/**************** Funcion para la comunicacion del DAC ************************/ void DAC_Output(unsigned int valueDAC) { char temp; PORTC.CS_PIN = 0; PORTC.LD_PIN = 0; temp=(valueDAC >> 8) & 0x0F; temp |= 0x30; Spi2_Write(temp); temp=valueDAC; Spi2_Write(temp); PORTC.LD_PIN = 1; PORTC.CS_PIN = 1; } /**************** Programa principal ************** ****************************/ void main() { unsigned pwm_period1, pwm_period2; // Variables PWM TRISBbits.TRISB10 = 1; // Selecciona el la entrada analogica 10 TRISBbits.TRISB12 = 1; // Selecciona el la entrada analogica 12 TRISF = 0; // Seleccion del puero C como salidas TRISG = 0; Spi2_Init(); // Initializa SPI2 TRISC.CS_PIN = 0; // Set CS pin as output TRISC.LD_PIN = 0; // Set LD pin as output // condiciones iniciales phi=0.785398; x=0.0; y=0.0; tetad=0.0; tetai=0.0; vd=0.0; vi=0.0; phit=0.0; xt=0.0; yt=0.0; tetadt=0.0; tetait=0.0; vdt=0.0; vit=0.0; k=0; t1=0.0; x_1=0.0; x_2=0.0; x_3=0.0; x_4=0.0;

Page 139: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

113

x_5=0.0; x_6=0.0; taod=0.0; taoi=0.0; for(i=0;i<=15;i++) { for(j=0;j<=15;j++) { if(i==j) { Q1[i][j]=500.0; P1[i][j]=10000.0; } else { P1[i][j]=0.0; Q1[i][j]=0.0; } } } dir1=1; dir2=1; while(1){ k=k+1; t1=T2+t1; // trayectoria deseada xd1=cos(t1*2.0*3.1416); yd1=sin(t1*4.0*3.1416); xd2=cos(t1*2.0*3.1416+T); yd2=sin(t1*4.0*3.1416+T); //////////////////////ADC///////////////////////////////////////// adcRes = Adc_Read(10); // Lectura de la entrada analogica 10 Delay_ms(50); dato1=(double long)adcRes; // Conversion de dato a flotante dato1=dato1*4.1/4095.0; dato1=dato1-2.0; // Calculo de cambio a decimal dato1 = rueda izq dato1=dato1*20.0; adcRes = Adc_Read(12); // Lectura de la entrada analogica 10 Delay_ms(50); dato2=(double long)adcRes; // Conversion de dato a flotante dato2=dato2*4.1/4095.0; dato2=dato2-2.0;

Page 140: 263MC_fmr

114 Programas del sistema embebido

dato2=dato2*20.0; // Calculo de cambio a decimal //////////////////////////////////////////////////////////////////////////// if(dir1==1) {vdt=dato1;} else {vdt=-dato1;} if(dir2==1) {vit=dato2;} else {vit=-dato2;} xt=xt+T*(((vdt+vit)*0.078/2.0)*cos(phit)); yt=yt+T*(((vdt+vit)*0.078/2.0)*sin(phit)); phit=phit+T*(0.078*(vdt-vit)/(2*0.2085)); tetadt=tetadt+T*vdt; tetait=tetait+T*vit; // RHONN sx1=1.0/(1.0+exp(-beta*xt)); sx2=1.0/(1.0+exp(-beta*yt)); sx3=1.0/(1.0+exp(-beta*tetadt)); sx4=1.0/(1.0+exp(-beta*tetait)); sx5=1.0/(1.0+exp(-beta*vdt)); sx6=1.0/(1.0+exp(-beta*vit)); // modelo RHONN x_1=w_1[0]*sx1+w_1[1]*sx3+w_1[2]*sx4+d1*x_5+d2*x_6; x_2=w_1[3]*sx2+w_1[4]*sx3+w_1[5]*sx4+d3*x_5+d4*x_6; x_3=x_3+T*x_5; x_4=x_4+T*x_6; x_5=w_1[6]*sx5+w_1[7]*sx5*sx4+w_1[8]*sx5*sx3+w_1[9]*sx6*sx4+w_1[10]*sx6*sx3+d5*taod+d6*taoi; x_6=w_1[11]*sx6+w_1[12]*sx5*sx4+w_1[13]+sx5*sx3+w_1[14]*sx6*sx4+w_1[15]*sx6*sx3+d7*taod+d8*taoi; // errores e1=xt-x_1; e2=yt-x_2; e5=vdt-x_5; e6=vit-x_6; // Valor de H1 H1[0]=sx1;

Page 141: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

115

H1[1]=sx3; H1[2]=sx4; H1[3]=sx2; H1[4]=sx3; H1[5]=sx4; H1[6]=sx5; H1[7]=sx5*sx4; H1[8]=sx5*sx3; H1[9]=sx6*sx4; H1[10]=sx6*sx3; H1[11]=sx6; H1[12]=sx5*sx4; H1[13]=sx5*sx3; H1[14]=sx6*sx4; H1[15]=sx6*sx3; // Calculo de K1 K=P*H*inv(R+H'*P*H) for(i=0;i<16;i++) { HP[i]=H1[0]*P1[0][i]+H1[1]*P1[1][i]+H1[2]*P1[2][i]+ H1[3]*P1[3][i]+H1[4]*P1[4][i]+H1[5]*P1[5][i]+H1[6]*P1[6][i]+H1[7]*P1[7][i]+H1[8]*P1[8] [i]+H1[9]*P1[9][i]+H1[10]*P1[10][i]+H1[11]*P1[11][i]+H1[12]*P1[12][i]+H1[13]*P1[13][i]+ H1[14]*P1[14][i]+H1[15]*P1[15][i]; } HPH=HP[0]*H1[0]+HP[1]*H1[1]+HP[2]*H1[2]+HP[3]*H1[3] +HP[4]*H1[4]+HP[5]*H1[5]+HP[6]*H1[6]+HP[7]*H1[7]+HP[8]*H1[8]+HP[9]*H1[9]+HP[ 10]*H1[10]+HP[11]*H1[11]+HP[12]*H1[12]+HP[13]*H1[13]+HP[14]*H1[14]+HP[15]*H1[ 15]; RR=1.0/(R1+HPH); for(i=0;i<16;i++) { PH[i]=H1[0]*P1[i][0]+H1[1]*P1[i][1]+H1[2]*P1[i][2]+ H1[3]*P1[i][3]+H1[4]*P1[i][4]+H1[5]*P1[i][5]+H1[6]*P1[i][6]+H1[7]*P1[i][7]+H1[8]*P1[i] [8]+H1[9]*P1[i][9]+H1[10]*P1[i][10]+H1[11]*P1[i][11]+H1[12]*P1[i][12]+H1[13]*P1[i][13]+ H1[14]*P1[i][14]+H1[15]*P1[i][15]; } for(i=0;i<16;i++) { K2[i]=PH[i]*RR; } // Calculo de w_1 w_1[0]=w_1[0]+miu1[0]*K2[0]*e1; w_1[1]=w_1[1]+miu1[1]*K2[1]*e1; w_1[2]=w_1[2]+miu1[2]*K2[2]*e1; w_1[3]=w_1[3]+miu1[3]*K2[3]*e2; w_1[4]=w_1[4]+miu1[4]*K2[4]*e2;

Page 142: 263MC_fmr

116 Programas del sistema embebido

w_1[5]=w_1[5]+miu1[5]*K2[5]*e2; w_1[6]=w_1[6]+miu1[6]*K2[6]*e5; w_1[7]=w_1[7]+miu1[7]*K2[7]*e5; w_1[8]=w_1[8]+miu1[8]*K2[8]*e5; w_1[9]=w_1[9]+miu1[9]*K2[9]*e5; w_1[10]=w_1[10]+miu1[10]*K2[10]*e5; w_1[11]=w_1[11]+miu1[11]*K2[11]*e6; w_1[12]=w_1[12]+miu1[12]*K2[12]*e6; w_1[13]=w_1[13]+miu1[13]*K2[13]*e6; w_1[14]=w_1[14]+miu1[14]*K2[14]*e6; w_1[15]=w_1[15]+miu1[15]*K2[15]*e6; // Calculo de P1 for(i=0;i<16;i++) { M1[0][i]=K2[0]*H1[0]*P1[0][i]+K2[0]*H1[1]*P1[1][i]+ K2[0]*H1[2]*P1[2][i]+K2[0]*H1[3]*P1[3][i]+K2[0]*H1[4]*P1[4][i]+K2[0]*H1[5]*P1[5][i]+ K2[0]*H1[6]*P1[6][i]+K2[0]*H1[7]*P1[7][i]+K2[0]*H1[8]*P1[8][i]+K2[0]*H1[9]*P1[9][i]+K 2[0]*H1[10]*P1[10][i]+K2[0]*H1[11]*P1[11][i]+K2[0]*H1[12]*P1[12][i]+K2[0]*H1[13]*P1[1 3][i]+K2[0]*H1[14]*P1[14][i]+K2[0]*H1[15]*P1[15][i]; P1[0][i]=P1[0][i]-M1[0][i]+Q1[0][i]; } for(i=0;i<16;i++) { M1[1][i]=K2[1]*H1[0]*P1[0][i]+K2[1]*H1[1]*P1[1][i]+ K2[1]*H1[2]*P1[2][i]+K2[1]*H1[3]*P1[3][i]+K2[1]*H1[4]*P1[4][i]+K2[1]*H1[5]*P1[5][i]+ K2[1]*H1[6]*P1[6][i]+K2[1]*H1[7]*P1[7][i]+K2[1]*H1[8]*P1[8][i]+K2[1]*H1[9]*P1[9][i]+K 2[1]*H1[10]*P1[10][i]+K2[1]*H1[11]*P1[11][i]+K2[1]*H1[12]*P1[12][i]+K2[1]*H1[13]*P1[1 3][i]+K2[1]*H1[14]*P1[14][i]+K2[1]*H1[15]*P1[15][i]; P1[1][i]=P1[1][i]-M1[1][i]+Q1[1][i]; } for(i=0;i<16;i++) { M1[2][i]=K2[2]*H1[0]*P1[0][i]+K2[2]*H1[1]*P1[1][i]+ K2[2]*H1[2]*P1[2][i]+K2[2]*H1[3]*P1[3][i]+K2[2]*H1[4]*P1[4][i]+K2[2]*H1[5]*P1[5][i]+ K2[2]*H1[6]*P1[6][i]+K2[2]*H1[7]*P1[7][i]+K2[2]*H1[8]*P1[8][i]+K2[2]*H1[9]*P1[9][i]+K 2[2]*H1[10]*P1[10][i]+K2[2]*H1[11]*P1[11][i]+K2[2]*H1[12]*P1[12][i]+K2[2]*H1[13]*P1[1 3][i]+K2[2]*H1[14]*P1[14][i]+K2[2]*H1[15]*P1[15][i]; P1[2][i]=P1[2][i]-M1[2][i]+Q1[2][i]; } for(i=0;i<16;i++) { M1[3][i]=K2[3]*H1[0]*P1[0][i]+K2[3]*H1[1]*P1[1][i]+ K2[3]*H1[2]*P1[2][i]+K2[3]*H1[3]*P1[3][i]+K2[3]*H1[4]*P1[4][i]+K2[3]*H1[5]*P1[5][i]+ K2[3]*H1[6]*P1[6][i]+K2[3]*H1[7]*P1[7][i]+K2[3]*H1[8]*P1[8][i]+K2[3]*H1[9]*P1[9][i]+K 2[3]*H1[10]*P1[10][i]+K2[3]*H1[11]

Page 143: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

117

*P1[11][i]+K2[3]*H1[12]*P1[12][i]+K2[3]*H1[13]*P1[1 3][i]+K2[3]*H1[14]*P1[14][i]+K2[3]*H1[15]*P1[15][i]; P1[3][i]=P1[3][i]-M1[3][i]+Q1[3][i]; } for(i=0;i<16;i++) { M1[4][i]=K2[4]*H1[0]*P1[0][i]+K2[4]*H1[1]*P1[1][i]+ K2[4]*H1[2]*P1[2][i]+K2[4]*H1[3]*P1[3][i]+K2[4]*H1[4]*P1[4][i]+K2[4]*H1[5]*P1[5][i]+ K2[4]*H1[6]*P1[6][i]+K2[4]*H1[7]*P1[7][i]+K2[4]*H1[8]*P1[8][i]+K2[4]*H1[9]*P1[9][i]+K 2[4]*H1[10]*P1[10][i]+K2[4]*H1[11]*P1[11][i]+K2[4]*H1[12]*P1[12][i]+K2[4]*H1[13]*P1[1 3][i]+K2[4]*H1[14]*P1[14][i]+K2[4]*H1[15]*P1[15][i]; P1[4][i]=P1[4][i]-M1[4][i]+Q1[4][i]; } for(i=0;i<16;i++) { M1[5][i]=K2[5]*H1[0]*P1[0][i]+K2[5]*H1[1]*P1[1][i]+ K2[5]*H1[2]*P1[2][i]+K2[5]*H1[3]*P1[3][i]+K2[5]*H1[4]*P1[4][i]+K2[5]*H1[5]*P1[5][i]+ K2[5]*H1[6]*P1[6][i]+K2[5]*H1[7]*P1[7][i]+K2[5]*H1[8]*P1[8][i]+K2[5]*H1[9]*P1[9][i]+K 2[5]*H1[10]*P1[10][i]+K2[5]*H1[11]*P1[11][i]+K2[5]*H1[12]*P1[12][i]+K2[5]*H1[13]*P1[1 3][i]+K2[5]*H1[14]*P1[14][i]+K2[5]*H1[15]*P1[15][i]; P1[5][i]=P1[5][i]-M1[5][i]+Q1[5][i]; } for(i=0;i<16;i++) { M1[6][i]=K2[6]*H1[0]*P1[0][i]+K2[6]*H1[1]*P1[1][i]+ K2[6]*H1[2]*P1[2][i]+K2[6]*H1[3]*P1[3][i]+K2[6]*H1[4]*P1[4][i]+K2[6]*H1[5]*P1[5][i]+ K2[6]*H1[6]*P1[6][i]+K2[6]*H1[7]*P1[7][i]+K2[6]*H1[8]*P1[8][i]+K2[6]*H1[9]*P1[9][i]+K 2[6]*H1[10]*P1[10][i]+K2[6]*H1[11]*P1[11][i]+K2[6]*H1[12]*P1[12][i]+K2[6]*H1[13]*P1[1 3][i]+K2[6]*H1[14]*P1[14][i]+K2[6]*H1[15]*P1[15][i]; P1[6][i]=P1[6][i]-M1[6][i]+Q1[6][i]; } for(i=0;i<16;i++) { M1[7][i]=K2[7]*H1[0]*P1[0][i]+K2[7]*H1[1]*P1[1][i]+ K2[7]*H1[2]*P1[2][i]+K2[7]*H1[3]*P1[3][i]+K2[7]*H1[4]*P1[4][i]+K2[7]*H1[5]*P1[5][i]+ K2[7]*H1[6]*P1[6][i]+K2[7]*H1[7]*P1[7][i]+K2[7]*H1[8]*P1[8][i]+K2[7]*H1[9]*P1[9][i]+K 2[7]*H1[10]*P1[10][i]+K2[7]*H1[11]*P1[11][i]+K2[7]*H1[12]*P1[12][i]+K2[7]*H1[13]*P1[1 3][i]+K2[7]*H1[14]*P1[14][i]+K2[7]*H1[15]*P1[15][i]; P1[7][i]=P1[7][i]-M1[7][i]+Q1[7][i]; } for(i=0;i<16;i++) { M1[8][i]=K2[8]*H1[0]*P1[0][i]+K2[8]*H1[1]*P1[1][i]+ K2[8]*H1[2]*P1[2][i]+K2[8]*H1[3]*P1[3][i]+K2[8]*H1[4]*P1[4][i]+K2[8]*H1[5]*P1[5][i]+ K2[8]*H1[6]*P1[6][i]+K2[8]*H1[7]*P

Page 144: 263MC_fmr

118 Programas del sistema embebido

1[7][i]+K2[8]*H1[8]*P1[8][i]+K2[8]*H1[9]*P1[9][i]+K 2[8]*H1[10]*P1[10][i]+K2[8]*H1[11]*P1[11][i]+K2[8]*H1[12]*P1[12][i]+K2[8]*H1[13]*P1[1 3][i]+K2[8]*H1[14]*P1[14][i]+K2[8]*H1[15]*P1[15][i]; P1[8][i]=P1[8][i]-M1[8][i]+Q1[8][i]; } for(i=0;i<16;i++) { M1[9][i]=K2[9]*H1[0]*P1[0][i]+K2[9]*H1[1]*P1[1][i]+ K2[9]*H1[2]*P1[2][i]+K2[9]*H1[3]*P1[3][i]+K2[9]*H1[4]*P1[4][i]+K2[9]*H1[5]*P1[5][i]+ K2[9]*H1[6]*P1[6][i]+K2[9]*H1[7]*P1[7][i]+K2[9]*H1[8]*P1[8][i]+K2[9]*H1[9]*P1[9][i]+K 2[9]*H1[10]*P1[10][i]+K2[9]*H1[11]*P1[11][i]+K2[9]*H1[12]*P1[12][i]+K2[9]*H1[13]*P1[1 3][i]+K2[9]*H1[14]*P1[14][i]+K2[9]*H1[15]*P1[15][i]; P1[9][i]=P1[9][i]-M1[9][i]+Q1[9][i]; } for(i=0;i<16;i++) { M1[10][i]=K2[10]*H1[0]*P1[0][i]+K2[10]*H1[1]*P1[1][ i]+K2[10]*H1[2]*P1[2][i]+K2[10]*H1[3]*P1[3][i]+K2[10]*H1[4]*P1[4][i]+K2[10]*H1[5]*P 1[5][i]+K2[10]*H1[6]*P1[6][i]+K2[10]*H1[7]*P1[7][i]+K2[10]*H1[8]*P1[8][i]+K2[10]*H1[ 9]*P1[9][i]+K2[10]*H1[10]*P1[10][i]+K2[10]*H1[11]*P1[11][i]+K2[10]*H1[12]*P1[12][i]+K 2[10]*H1[13]*P1[13][i]+K2[10]*H1[14]*P1[14][i]+K2[10]*H1[15]*P1[15][i]; P1[10][i]=P1[10][i]-M1[10][i]+Q1[10][i]; } for(i=0;i<16;i++) { M1[11][i]=K2[11]*H1[0]*P1[0][i]+K2[11]*H1[1]*P1[1][ i]+K2[11]*H1[2]*P1[2][i]+K2[11]*H1[3]*P1[3][i]+K2[11]*H1[4]*P1[4][i]+K2[11]*H1[5]*P 1[5][i]+K2[11]*H1[6]*P1[6][i]+K2[11]*H1[7]*P1[7][i]+K2[11]*H1[8]*P1[8][i]+K2[11]*H1[ 9]*P1[9][i]+K2[11]*H1[10]*P1[10][i]+K2[11]*H1[11]*P1[11][i]+K2[11]*H1[12]*P1[12][i]+K 2[11]*H1[13]*P1[13][i]+K2[11]*H1[14]*P1[14][i]+K2[11]*H1[15]*P1[15][i]; P1[11][i]=P1[11][i]-M1[11][i]+Q1[11][i]; } for(i=0;i<16;i++) { M1[12][i]=K2[12]*H1[0]*P1[0][i]+K2[12]*H1[1]*P1[1][ i]+K2[12]*H1[2]*P1[2][i]+K2[12]*H1[3]*P1[3][i]+K2[12]*H1[4]*P1[4][i]+K2[12]*H1[5]*P 1[5][i]+K2[12]*H1[6]*P1[6][i]+K2[12]*H1[7]*P1[7][i]+K2[12]*H1[8]*P1[8][i]+K2[12]*H1[ 9]*P1[9][i]+K2[12]*H1[10]*P1[10][i]+K2[12]*H1[11]*P1[11][i]+K2[12]*H1[12]*P1[12][i]+K 2[12]*H1[13]*P1[13][i]+K2[12]*H1[14]*P1[14][i]+K2[12]*H1[15]*P1[15][i]; P1[12][i]=P1[12][i]-M1[12][i]+Q1[12][i]; } for(i=0;i<16;i++) {

Page 145: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

119

M1[13][i]=K2[13]*H1[0]*P1[0][i]+K2[13]*H1[1]*P1[1][ i]+K2[13]*H1[2]*P1[2][i]+K2[13]*H1[3]*P1[3][i]+K2[13]*H1[4]*P1[4][i]+K2[13]*H1[5]*P 1[5][i]+K2[13]*H1[6]*P1[6][i]+K2[13]*H1[7]*P1[7][i]+K2[13]*H1[8]*P1[8][i]+K2[13]*H1[ 9]*P1[9][i]+K2[13]*H1[10]*P1[10][i]+K2[13]*H1[11]*P1[11][i]+K2[13]*H1[12]*P1[12][i]+K 2[13]*H1[13]*P1[13][i]+K2[13]*H1[14]*P1[14][i]+K2[13]*H1[15]*P1[15][i]; P1[13][i]=P1[13][i]-M1[13][i]+Q1[13][i]; } for(i=0;i<16;i++) { M1[14][i]=K2[14]*H1[0]*P1[0][i]+K2[14]*H1[1]*P1[1][ i]+K2[14]*H1[2]*P1[2][i]+K2[14]*H1[3]*P1[3][i]+K2[14]*H1[4]*P1[4][i]+K2[14]*H1[5]*P 1[5][i]+K2[14]*H1[6]*P1[6][i]+K2[14]*H1[7]*P1[7][i]+K2[14]*H1[8]*P1[8][i]+K2[14]*H1[ 9]*P1[9][i]+K2[14]*H1[10]*P1[10][i]+K2[14]*H1[11]*P1[11][i]+K2[14]*H1[12]*P1[12][i]+K 2[14]*H1[13]*P1[13][i]+K2[14]*H1[14]*P1[14][i]+K2[14]*H1[15]*P1[15][i]; P1[14][i]=P1[14][i]-M1[14][i]+Q1[14][i]; } for(i=0;i<16;i++) { M1[15][i]=K2[15]*H1[0]*P1[0][i]+K2[15]*H1[1]*P1[1][ i]+K2[15]*H1[2]*P1[2][i]+K2[15]*H1[3]*P1[3][i]+K2[15]*H1[4]*P1[4][i]+K2[15]*H1[5]*P 1[5][i]+K2[15]*H1[6]*P1[6][i]+K2[15]*H1[7]*P1[7][i]+K2[15]*H1[8]*P1[8][i]+K2[15]*H1[ 9]*P1[9][i]+K2[15]*H1[10]*P1[10][i]+K2[15]*H1[11]*P1[11][i]+K2[15]*H1[12]*P1[12][i]+K 2[15]*H1[13]*P1[13][i]+K2[15]*H1[14]*P1[14][i]+K2[15]*H1[15]*P1[15][i]; P1[15][i]=P1[15][i]-M1[15][i]+Q1[15][i]; } // Control VGA sin RHONN b111=T*c*(b*cos(phi)-d*sin(phi)); b112=T*c*(b*cos(phi)+d*sin(phi)); b121=T*c*(b*sin(phi)+d*cos(phi)); b122=T*c*(b*sin(phi)-d*cos(phi)); b131=T; b132=0.0; b141=0.0; b142=T; b211=2.6386*T; b212=0.1011*T; b221=0.1011*T; b222=2.6386*T; z1=(2.6386*b111+0.1011*b112)*(w_1[0]*sx1+w_1[1]*sx3+w_1[2]*sx4+w1*x_5+w2*x_6+k1*(x_1-xd1)-xd2)+(0.1011*b121+2.6386*b122)*(w_1[3]*sx2+w_1[4]*sx3+w_1[5]*sx4+w3*x_5+w4*x_6+k1*(x_2-yd1)-yd2); //z1=(2.6386*T*c*(b*cos(phi)-d*sin(phi))+0.1011*T*c*(b*cos(phi)+d*sin(phi)))*(w_ 1[0]*sx1+w_1[1]*sx3+w_1[2]*sx4+w1*x_5+w2*x_6+k1*(x_1-xd1)-xd2)+(0.1011*T*c*(b*cos(phi)-

Page 146: 263MC_fmr

120 Programas del sistema embebido

d*sin(phi))+2.6386*T*c*(b*cos(phi)+d*sin(phi)))*(w_ 1[3]*sx2+w_1[4]*sx3+w_1[5]*sx4+w3*x_5+w4*x_6+k1*(x_2-yd1)-yd2); z1=(b111*b211+b112*b221)*(x+b111*vd+b112*vi-xd2+k1*(x-xd1))+(b121*b211+b122*b221)*(y+b121*vd+b122*vi-yd2+k1*(y-yd1)); z1=sqrt(z1*z1)/z1; taod=-7.0*z1; z2=(2.6386*b121+0.1011*b122)*(w_1[0]*sx1+w_1[1]*sx3+w_1[2]*sx4+w1*x_5+w2*x_6+k1*(x_1-xd1)-xd2)+(0.1011*b111+2.6383*b112)*(w_1[3]*sx2+w_1[4]*sx3+w_1[5]*sx4+w3*x_5+w4*x_6+k1*(x_2-yd1)-yd2); //z2=(2.6386*T*c*(b*sin(phi)+d*cos(phi))+0.1011*T*c*(b*sin(phi)-d*cos(phi)))*(w_1[0]*sx1+w_1[1]*sx3+w_1[2]*sx4+w1*x_5+w2*x_6+k1*(x_1-xd1)-xd2)+(0.1011*T*c*(b*sin(phi)+d*cos(phi))+2.6386*T*c*(b*sin(phi)-d*cos(phi)))*(w_1[3]*sx2+w_1[4]*sx3+w_1[5]*sx4+w3*x_5+w4*x_6+k1*(x_2-yd1)-yd2); //z2=(b111*b212+b112*b222)*(x+b111*vd+b112*vi-xd2+k1*(x-xd1))+(b121*b212+b122*b222)*(y+b121*vd+b122*vi-yd2+k1*(y-yd1)); z2=sqrt(z2*z2)/z2; taoi=-7.0*z2; ref1=(w_1[6]*sx5+w_1[7]*sx5*sx4+w_1[8]*sx5*sx3+w_1[9]*sx6*sx4+w_1[10]*sx6*sx3+d5*taod+d6*taoi); ref2=(w_1[11]*sx6+w_1[12]*sx5*sx4+w_1[13]+sx5*sx3+w_1[14]*sx6*sx4+w_1[15]*sx6*sx3+d7*taod+d8*taoi); ////////////////// PID //////////////////////////////////////////// if (dir1==1) epid1=ref1-dato1; else epid1=ref1+dato1; if(dir2==1) epid2=ref2-dato2; else epid2=ref2+dato2; upid1=KP*epid1;//+((KP*T)/TI)*(epid1/(epid1-epi d11+.00001))+(KP*TD/T)*(epid1-epid11); upid2=KP2*epid2;//+((KP2*T)/TI2)*(epid2/(epid2-epid22+.00001))+(KP2*TD2/T)*(epid2-epid22); epid11=epid1; epid22=epid2; ///////////////// PWM///////////////

Page 147: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

121

pwm_period1 = Pwm_Init(63, 1, 1, 2); // Inicialización del PWM para la llanta derecha pwm_period2 = Pwm_Init(63, 1, 1, 2); // Inicialización del PWM para la llanta derecha // De acuerdo al signo es la dirección de la rueda, si es mayor a cero la rueda va para el frente, si es menor a cero la rueda va para atrás if (upid1==0.0) { i1=0; dir1=1; PORTF.F0=0; portf.F1=0; } else if (upid1>=8.0) { i1=8.0; dir1=1; PORTF.F0=0; portf.F1=1; } else if (upid1<=-8.0) { i1=8.0; dir1=0; PORTF.F0=1; portf.F1=0; } else if (upid1<0.0) { i1=-upid1; dir1=0; PORTF.F0=1; portf.F1=0; } else { i1=upid1; dir1=1; PORTF.F0=0; portf.F1=1; } if (upid2==0.0) { i2=0.1; dir2=1; PORTF.F2=0;

Page 148: 263MC_fmr

122 Programas del sistema embebido

portf.F3=0; } else if (upid2>8.0) { i2=8.0; dir2=1; PORTF.F2=1; portf.F3=0; } else if (upid2<-8.0) { i2=8.0; dir2=0; PORTF.F2=0; portf.F3=1; } else if (upid2<0.0) { i2=-upid2; dir2=0; PORTF.F2=0; portf.F3=1; } else { i2=upid2; dir2=1; PORTF.F2=1; portf.F3=0; } i11=10/i1; i22=10/i2; Pwm_Start(1); Pwm_Start(2); Pwm_Set_Duty(pwm_period1/i11, 1); Pwm_Set_Duty(pwm_period2/i22, 2); // Acotamiento de salida para evitar problemas tmp=(ref1/20.0)+1.0; if(tmp>4) tmp=4; if(tmp<0) tmp=0;

Page 149: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

123

final=tmp*4095.0/4.1; // Seleccion de salida value=(unsigned int)final; DAC_Output(value); // Salida de dato en el DAC Delay_ms(10); LATG = ~LATG; } }

Page 150: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

124

Anexo B

Configuración de conexión del VGA – Cenidet

B.1 Modulo de conexiones

En la figura B1 se muestra la configuración de los pines de conexión del conector DB25 que se utiliza en el VGA –Cenidet, este conector es muy importante dado a que de aquí se obtienen las señales de entrada y salida para el control del robot.

Figura B1. Conector DB25 con numeración de los pines.

De acuerdo a la figura B1 la tabal B1 muestra cada señal que debe de entrar o salir del robot. Cabe mencionar que este modulo de conexiones no se cambia, ni se modifica para en este trabajo, con el fin de que el prototipo siga funcionando tanto con la configuración de [Camarena'09] así como también con la configuración de este trabajo y posiblemente con otras configuraciones electrónicas futuras.

Page 151: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

125

Tabla B1. Descripción de las señales de entrada y salida del modulo de conexiones del VGA - Cenidet.

PIN Descripción PIN Descripción PIN Descripción

1 Canal Index negado

Derecho 10

Canal Index Izquierdo

19 NC

2 Canal B negado

Derecho 11 Canal B

Izquierdo 20 GND

3 Canal A negado Derecho 12 Canal A

Izquierdo 21 NC

4 Canal Index Derecho 13 PWM Izquierdo 22 NC 5 Canal B Derecho 14 GND 23 GND

6 Canal A Derecho 15 Dirección

Antihoraria Derecha

24 Dirección

Antihorario Izquierdo

7 Canal Index negado Izquierdo

16 Dirección Horaria Derecha

25 Dirección Horario Izquierdo

8 Canal B negado Izquierdo 17 PWM Derecho

9 Canal A negado Izquierdo

18 NC

Page 152: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

126

Bibliografía [Alanis'10] Alma Y. Alanis, E. N. Sanchez, A. G. Loukianov y M. A. Perez

Cisneros, Real-Time Discrete Neural Block Control Using Sliding Modes For Electric Induction Motors, IEEE Transactions on Control Systems Technology, Vol. 18, No. 1,2010.

[Alanis'04] Alma Yolanda Alanis, Entrenamiento de redes neuronales con filtro de Kalman, Departamento de Electrónica, Tesis de Maestria, CINVESTAV, Guadajara, México 2004.

[Azcón'03] Alberto Naño Azcón, Análisis y Diseño del Control de Posición de un Robot Móvil con Tracción Diferencial, Control y Electríca Industrial, Maestría, Rovira I Virgili, 2003.

[Benitez'10] V. H. Baltazar Benitez, Decentralizad Continuos Time Neural Control, Departamento de Electrónica, Doctoral, CINVESTAV, Guadalajara, Jalisco, 2010.

[Bolton'01] Wiliam Bolton, Mecatrónica: Sistemas de control electrónico en ingeniería mecánica y eléctrica, Alfaomega, 2da Edición, 2001.

[Camarena'09] José Felipe Camarena, Análisis Cinemático, Dinámico y Control en Tiempo Real de un Vehículo Guiado Automáticamente, Departamento de Mecatrónica Maestría, Centro Nacional de Investigación y Desarrollo Tecnológico, Cuernavaca 2009.

[Castañeda'09] Carlos E. Castañeda, Edgar N. Sanchez, Alexander G. Loukianov y Bernardino Castillo-Toledo, Real-Time Torque Control for a DC Motor Using Recurrent High Order Neural Networks, IEEE International Symposium on Intelligent Control, p.p. 1809-1814, 2009.

[Chen'08] Peter Chen, Jie Wan, A. N. Poo y S. S. Ge, Tracking Control of Mobile Robots ans its Application to Formation Control, IEEE International Conference on Systems, Man and Cybernetics, 2008. SMC 2008, Singapore, p.p. 3132-3137, 2008.

[Fausett'94] L. V. Fausett, Fundamentals of Neural Networks, New Jersy, Prince-Hall, 1994.

[Freemam'93] J.A. Freemam y D. M. Skapura, Redes neuronales: Algoritmos, Aplicaciones y Técnicas de Programación., Wilmington, Delaware, E. U. A., Addison-Wesley, Iberoamericana S. A., 1993.

[Freire'09] E. Freire, J. Galán Vioque y M. Molina Becerra, Compotamiento Dinámico de un sistema no holónomo: El Sistema de Heisenberg Modificado, XXI Congreso de Ecuaciones Diferenciales y Aplicaciones, XI Congreso de Matem´atica Aplicada, Ciudad Real, p.p. 1-8, 2009.

[Fukao'00] Takanori Fukao, Hiroshi Nakagawa y Norihiko Adachi, Adaptive Tracking Control of a Nonholonomic Mobile Robot, IEEE Transactions on Robotics and Automation, p.p. 609-615, Vol. 16,2000.

[García'05] Efraín Mariscal García, Planeación y Seguimiento de Trayectorias de Robots Móviles en una Simulación de un Ambiente Real, Ra Ximhai, p.p. 177 - 200, Vol. 1,2005.

[Gover'92] R. Gover y P. Y. Hwang, Introduction to Random Signal and Applied Kalman Filtering, New York, Wiley, 1992.

[Haykin'01] Simon Haykin, Kalman Filtering and Neur al Networks, Ontario, Canada, Jonh Wiley and Sons, INC., 2001.

Page 153: 263MC_fmr

Control Embebido de un Vehículo Guiado Automáticamente Mediante Redes Neuronales Artificiales

127

[Hsiao'09] Ming-Ying Hsiao, Shun-Hung Tsai, Kai Tzuu-Hseng S. Li y Chi-Hua Liu, The Design of Internal Type -2 Fuzzy Kinematic Control and Interval Type-2 Fuzzy Terminal Sliding-Mode Dynamic Control of the Wheeled Mobile Robot, Proceeding of the 2009 IEEE Internacional Conference on Systems, Man, and Cybernetics, San Antonio, TX, USA, October, 2009.

[Huerta'08] Héctor Huerta, Alexander G. Loukianov y José M. Cañedo, Integral Sliding Modes with Block Control of Multimachene Electronic Power Systems, Systems, Structure an Control, 2008.

[Kasmatopoulos'97] Elias B. Kasmatopoulos, Manolis A. Christodoulou y Petros A. Ioannou, Dynamical neural Networks that Exponential Identifiation Error Convergence, IEEE Transactions on Neural Networks, p.p. 299-314, Vol. 10, No. 2,1997.

[Kasmatopoulos'95] Elias B. Kasmatopoulos, Marios M. Polycarpou, Manolis A. Christodoulou y Petros A. Ioannou, High-Orden Neural Network Structures for Identification of Dynamical Systems, IEEE Transactions on Neural Networks, Vol. 6, No. 2,1995.

[Kuo'96] Benjamin C. Kuo, Sistemas de control automático, Edo. México, Prentice Hall, 7ma, 1996.

[Li'09] Zheng Li, Fault Diagnosis and Fault Tolerant Control of Mobile Robot Based on Neural Networks, Proceeding of the Eighth Internacional Conference on Machine Learning and Cybernetics, Baoding, 2009.

[López'08] Raquel Flórez López y J. Miguel Fernández Frenández, Las Redes Neuronales Artificiales: Fundamentos teóricos y aplicaciones prácticas, España, Netbiblo, 2008.

[Loukianov'98] Alexander G. Loukianov, Nonlinear block control with sliding mode, Automatica Remote Control, p.p. 916-933, Vol. 59, No. 7,1998.

[Loukianov'01] Alexander G. Loukianov, José M. Canedo, Orlando Serrano, Vadim I. Utkin y Sergey Celikoxsky, Adaptive Sliding Mode Block Control of Induction Motors, Proceeding of the American Control Conference, Arlington, 2001.

[Murray'93] Richard M. Murray y Shankar Sastry, Non holonomic Motion Planning: Steering Using Sinusoids, IEEE Transactions Automatic Control, p.p. 700-716, Vol. 38,1993.

[Narendra'92] K. S. Narendra y S. Mukhopadhyay, Neuronal Networks in Control Systems, IEEE Transactions on Decision ans Control, p.p. 1-6, Vol. 1,1992.

[Narendra'90] Kumpati S. Narendra y Kannan Parthasarathy, Identification and Control of Dynamical Systems Using Neural Networks, IEEE Transactions on Neural Networks, p.p. 4-27, Vol 1, No 1,1990.

[Ogata'03] Katsuhiko Ogata, Ingenieria de Control Moderno, Madrid, Prentice Hall, 2003.

[Ollero'01] Aníbal Ollero, Robótica: manipuladores y robots móviles, Barcelona, España, Marcombo, 2001.

[Rao'05] S. Rao, H. Brandtstädter, V. Utkin y M. Buss, Generalized Block Control Principle, IFAC, 2005.

[Rios'03] Omar G. Rios, B. Castillo Toledo y Alexander G. Loukianov, Nonlinear Block Integral Sliding Mode Control: Appl ication to Induction Motor Control, Proceeding of the 42nd IEEE Conference on Decision and Control, Maui, Hawaii USA, 2003.

Page 154: 263MC_fmr

128 Bibliografía

[Rovisthakis'00] G. A. Rovisthakis y M.A. Chitodoulou, Adaptive Control with Recurrent High-Order Neural Networks, London, Springer, 2000.

[Sanchez'08] Edgar N. Sanchez, Alama Y. Alanis y Alezander G. Loukianov, Discrete-Time High Orden neural Control, Berlin, Springer, 2008.

[Sarkar'94] Nilanjas Sarkar, Xioaping Yun y R. Vija y Kumar, Control of Mechanical Systems with Rolling Constraints: Application to Dynamic Control of Mobile Robot, The International Kournal of Robotic Research, p.p. 55-69, 13,1994.

[Szemes'04] P. T. Szemes y H. Hashimoto, Fuzzy Neural Network Based mobile Agent Control for Intelligent Space, SICE Annual Conderence in Sapporo, Hokkaido Institute of Tecnology, Japan, 2004.

[Takenga'04] C. Mbusa Takenga, A. K. Roa, K. Kyamakya y J. C. Chedjou, Comparison of Gradient Descent Method, Kalman Filtering and Decoupled Kalman in Trainig Neural Networks Used for Firgerpr int-Based Positioning, IEEE Confenrence Vehicular Technology, p.p. 4146-4150, 2004.

[Tsuchiya'99] Kazuo Tsuchiya, Takateru Urakubo y Katsuyoshi Tsujita, A Motion Control of a Two-Wheeled mobile Robot, Conference Proceedings. 1999 IEEE International Conference on Systems, Man, and Cybernetics, 1999. IEEE SMC '99, Tokyo, Japan, p.p. 690-696, Vol. 5,1999.

[Ugalde'08] H. M Romero Ugalde, Identificación de Sistemas Utilizando Redes Neuronales, Departamento de Electrónica, Maestría, Centro Nacional de Investigación y Desarrollo Tecnológico, Cuernavaca, Morelos, 2008.

[Yazdanpanah'03] M. J. Yazdanpanah y G. Karimian Khosrowshahi, Robust Control of Mobile Robots Using the Computed Torque Plus H∞ Compensation Method, Proceeding of the 42nd IEEE Conference on Decision and Control, Maut, Hawaii USA, December, 2003.