You are on page 1of 154

Centro Nacional de Investigacin y Desarrollo Tecnolgico

Departamento de Electrnica
TESIS DE MAESTRA EN CIENCIA

Control Embebido de un Vehculo Guiado Automticamente
Mediante Redes Neuronales Artificiales

presentada por
Fernando Martnez Ramrez
Ing. en Ciberntica por la Universidad del Sol
como requisito para la obtencin del grado de:
Maestra en Ciencias en Ingeniera Electrnica
Director de tesis:
Dr. Carlos Daniel Garca Beltrn

Co-Director de tesis:
Dr. Gerardo Vicente Guerrero Ramrez


Cuernavaca, Morelos, Mxico 23 de Febrero 2012
































Centro Nacional de Investigacin y Desarrollo Tecnolgico
Departamento de Electrnica
TESIS DE MAESTRA EN CIENCIA
Control Embebido de un Vehculo Guiado Automticamente
Mediante Redes Neuronales Artificiales
presentada por
Fernando Martnez Ramrez
Ing. en Ciberntica por la Universidad del Sol
como requisito para la obtencin del grado de:
Maestra en Ciencias en Ingeniera Electrnica
Director de tesis:
Dr. Carlos Daniel Garca Beltrn
Co-Director de tesis:
Dr. Gerardo Vicente Guerrero Ramrez
Jurado
Dr. Alejandro Rodrguez Palacios - Presidente
Dr. Carlos Daniel Garca Beltrn - Secretario
M. C. Jos Martn Gmez Lpez - Vocal
Dr. Gerardo Vicente Guerrero Ramrez - Vocal Suplente


Cuernavaca, Morelos, Mxico. 23 de Febrero 2012






























M10























































M11































































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.













































Agradecimientos

Primeramente le agradezco a Dios Seor Nuestro por haberme dado licencia de
vida, paciencia y salud, tambin por haberme puesto en este camino para poderme
superarme, as tambin como la proteccin 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 da 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 ms 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 Investigacin y Desarrollo Tecnolgico 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 econmicamente en este largo camino, ya que sin
ese apoyo pudiera haber sido muy difcil haber salido adelante.
Al ECEST por su apoyo con la beca de movilidad, que me apoyo econmicamente
para finalizar este trabajo de tesis.
A mis compaeros del Cenidet por u amistad y apoyo, especialmente a Gloria,
Eunice, Lino, Ivn, Manuel, Alfredo y Elfrich.
A mi director de tesis Dr. Carlos Daniel Garca Beltrn 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 Ramrez por su apoyo y
compresin.
A mis revisores, Dr. Alejandro Rodrguez Palacios y M. C. Jos Martin Gmez
Lpez por sus acertados comentarios que me ayudaron a superarme y mejorar este
trabajo.

































Resumen

Este trabajo de tesis est orientado al control de robots mviles del tipo Two Wheel
Mobile Robot, conocido como Vehculo Guiado Automticamente (VGA). Se ocup
un modelo matemtico de ste para las pruebas en simulacin y para las pruebas de
implementacin se utiliz el prototipo diseado 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 tcnica de identificacin de sistemas no lineales.
Posteriormente se presenta el estudio de la tcnica Block Control, como tcnica de
control para realizar el seguimiento de trayectoria de sistemas no lineales. Tambin
se presenta la unin de estas tcnicas, con el fin de tener mayores ventajas, una de
las cuales es obtener un modelo matemtico que represente la dinmica y los
parmetros del sistema para aplicar una ley de control. Como parte de la
metodologa se desarrollan ejemplos tanto del identificador como de la tcnica de
control y de la unin mencionada.
Se presentan resultados de simulacin del control del VGA, en donde se utiliza el
identificador neuronal y se disea una ley de control basado en este. Se aplic el
algoritmo de de la ley de control propuesto al vehculo guiado automticamente y se
prob con diversas trayectorias. Para validar su desempeo se comparan los ndices
de desempeo de la tcnica que se presenta en [Camarena'09] y con el control
diseado en este trabajo. Teniendo como resultado que los ndices de desempeo
obtenidos en este trabajo son mejores.
Se implementaron los algoritmos en un sistema embebido, en este caso se trabaj
con una tarjeta de evaluacin dsPic que se encuentra montada en el prototipo y se
logr independizar el vehculo guiado automticamente, el cual se encontraba
conectado a una computadora. Finalmente, se presenta el diseo electrnico de los
elementos utilizados.






































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




























i

Contenido
Contenido ........................................................................................................................................ i
Lista de Figuras ............................................................................................................................. v
Lista de Tablas .............................................................................................................................. ix
Captulo 1 ....................................................................................................................................... 1
Sistemas de Control y Vehculos Guiados Automticamente ................................................... 1
1.1 Introduccin ................................................................................................................. 1
1.1.1 La Robtica ................................................................................................................. 2
1.2 Control del Vehculo Guiado Automticamente .............................................................. 4
1.3 Caso de estudio: VGA-Cenidet .......................................................................................... 6
1.4 Problemtica ........................................................................................................................ 7
1.5 Propuesta de solucin ......................................................................................................... 9
1.6 Hiptesis ............................................................................................................................. 11
1.7 Objetivos ............................................................................................................................ 11
1.8 Estructura de la tesis......................................................................................................... 11
Captulo 2 ..................................................................................................................................... 14
Redes Neuronales Recurrentes de Alto Orden ......................................................................... 14
2.1 Redes Neuronales Biolgicas ............................................................................................ 14
2.2 El modelo matemtico de una neurona ........................................................................... 15
2.3 Redes Neuronales Artificiales .......................................................................................... 16
2.3.1 Tipos de funciones de activacin .............................................................................. 17
2.3.2 Arquitectura ............................................................................................................... 19
2.4 Identificacin con Redes Neuronales Recurrentes de Alto Orden ................................ 20
2.5.1 Filtro de Kalman Extendido ..................................................................................... 21
2.6 Ejemplos ............................................................................................................................ 22
2.6.1 Identificacin neuronal de un satlite en orbita ...................................................... 23
2.6.2 Identificacin de un Oscilador de Van der Pol........................................................ 26
2.6.3 Identificacin neuronal de un motor de corriente continua con excitacin
separada............................................................................................................................... 28
2.7 Conclusiones ...................................................................................................................... 31
Captulo 3 ..................................................................................................................................... 34
ii

Block Control ............................................................................................................................... 34
3.1 Introduccin al Block Control ......................................................................................... 34
3.2 Diseo del Block Control .................................................................................................. 36
3.2.1 Ejemplo: Sistema numrico ...................................................................................... 39
3.3 Block Control utilizando RNA tipo RHONN .................................................................. 44
3.3.1 Diseo de control neuronal ....................................................................................... 44
3.3.2 Ejemplo: Control neuronal de un satlite en rbita ............................................... 45
3.4 Conclusin del captulo ..................................................................................................... 47
Captulo 4 ..................................................................................................................................... 49
Diseo de Control Basado en Identificacin Neuronal para el VGA ...................................... 49
4.1 Modelo matemtico del VGA usado en simulacin ........................................................ 49
4.2 Trayectorias empleadas en el trabajo .............................................................................. 56
4.3 Control del VGA mediante Block Control ...................................................................... 58
4.4 Identificacin neuronal del VGA ..................................................................................... 60
4.5 Identificacin 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 [Camarena09] ...................................................................... 76
4.8 Resultados finales .............................................................................................................. 80
Captulo 5 ..................................................................................................................................... 84
Implementacin en el VGA Cenidet ....................................................................................... 84
5.1 Estructuras electrnicas del VGA Cenidet .................................................................. 84
5.1.1 Configuracin del VGA Cenidet de acuerdo a [Camarena'09] .......................... 84
5.1.2 Configuracin del VGA Cenidet con el sistema embebido .................................. 85
5.2 Implementacin 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 Evaluacin dsPic PRO 4 ......................................................................... 89
5.2.4 Configuracin de los encoders de los motores del VGA Cenidet para el sistema
embebido.............................................................................................................................. 91
5.3 Programacin de los algoritmos de control e identificacin neuronal diseados. ....... 94
5.3.1 Programacin de los algoritmos en el dSpace ......................................................... 94
5.3.2 Programacin 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
iii

5.5 Conclusiones del captulo ............................................................................................... 102
Captulo 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
Configuracin de conexin del VGA Cenidet ...................................................................... 124
B.1 Modulo de conexiones .................................................................................................... 124
Bibliografa ................................................................................................................................ 126














iv



























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 conexin hacia la computadora. ................................................................... 7
Figura 4. Pndulo en el plano xy. ................................................................................ 8
Figura 5. Aro en un plano de 3 dimensiones............................................................... 8
Figura 6. Diagrama a bloques del control con identificacin mediante RNA tipo
RHONN. .................................................................................................................... 10
Figura 7. Neurona Biolgica. .................................................................................... 15
Figura 8. Modelo de una red neuronal. .................................................................... 16
Figura 9. Identificacin del modelo matemtico de un satlite en rbita ................ 24
Figura 10. Errores de identificacin del satlite en rbita. ...................................... 25
Figura 11. Evolucin de los pesos sinpticos de un satlite en rbita. ..................... 25
Figura 12. Identificacin del oscilador Van der Pol ................................................. 27
Figura 13. Errores de identificacin del oscilador Van der Pol. .............................. 27
Figura 14. Evolucin de los pesos sinpticos de la identificacin del oscilador Van
der Pol........................................................................................................................ 28
Figura 15. Identificacin del estado de un motor de CD de excitacin separada. ... 30
Figura 16. Errores de identificacin de motor de CD de excitacin separada. ....... 30
Figura 17. Pesos sinpticos de un motor de CD de excitacin separada. ................. 31
Figura 18. Representacin grfica de la forma controlable a bloques. .................... 36
Figura 19. Comportamiento del ejemplo numrico. ................................................ 41
Figura 20. Seal deseada para el seguimiento de x
1
. ................................................ 41
Figura 21. Seguimiento de trayectoria de un ejemplo numrico por medio de Block
Control. ...................................................................................................................... 42
Figura 22. Estado del sistema numrico con perturbaciones y aplicando Block
Control. ...................................................................................................................... 43
Figura 23. Seguimiento de trayectoria tomando en cuenta perturbaciones. ........... 43
Figura 24. Superficie deslizante del ejemplo numrico. ........................................... 44
Figura 25. Seguimiento de trayectoria de un satlite en rbita. ............................... 46
Figura 26. Errores de seguimiento de un satlite en rbita. ..................................... 47
Figura 27. VGA tipo TMRW en el plano xy para el modelo matemtico
generalizado............................................................................................................... 49
Figura 28. Trayectoria Hlice 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. Identificacin del VGA en lazo abierto. .................................................. 61
Figura 32. Errores de identificacin del VGA con RNA tipo RHONN. .................. 62
Figura 33. Pesos sinpticos del identificador neuronal del VGA. ............................ 62
vi

Figura 34. Identificacin del VGA Cenidet con una RNA tipo RHONN. ............. 64
Figura 35. Errores de identificacin del VGA Cenidet en lazo cerrado. ............... 64
Figura 36. Seguimiento del VGA a la trayectoria Hlice por BC. ............................ 68
Figura 37. Seguimiento del VGA a la trayectoria Hlice por BC en el plano xy. . 69
Figura 38. Seguimiento del VGA a la trayectoria Crculo por BC. .......................... 69
Figura 39. Seguimiento del VGA a la trayectoria Crculo 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 Hlice con BC con identificador
neuronal tipo RHONN. .............................................................................................. 72
Figura 43.Seguimiento del VGA a una trayectoria Hlice con BC con identificador
neuronal tipo RHONN en el plano xy. ................................................................... 73
Figura 44. Seguimiento del VGA a una trayectoria Crculo con BC con
identificador neuronal tipo RHONN. ........................................................................ 74
Figura 45. Seguimiento del VGA a una trayectoria Crculo 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 Hlice con control propuesto en
el trabajo de [Camarena09]. ..................................................................................... 76
Figura 49. Seguimiento del VGA a una trayectoria Hlice con control propuesto en
el trabajo de [Camarena09] en el plano xy........................................................... 77
Figura 50. Seguimiento del VGA a una trayectoria Crculo con control propuesto
en el trabajo de [Camarena09]. ................................................................................ 77
Figura 51. Seguimiento del VGA a una trayectoria Crculo con control propuesto
en el trabajo de [Camarena09] en el plano xy. ..................................................... 78
Figura 52. Seguimiento del VGA a una trayectoria Cuadrado con control propuesto
en el trabajo de [Camarena09]. ................................................................................ 79
Figura 53. Seguimiento del VGA a una trayectoria Cuadrado con control propuesto
en el trabajo de [Camarena09] 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 interaccin de
est con el dSpace de acuerdo a [Camarena'09]........................................................ 85
Figura 56. Esquema de implementacin. .................................................................. 86
Figura 57. Seales que usa el dSpace para el control del VGA - Cenidet. ............... 87
Figura 58. Seales 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 direccin de giro. ............................. 89
Figura 62. Bus en la arquitectura Harvard. .............................................................. 90
vii

Figura 63. Tarjeta de evaluacin 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. Identificacin del VGA - Cenidet con RNA tipo RHONN...................... 98
Figura 71. Seguimiento de trayectoria de la posicin x y posicin 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















viii



























ix


Lista de Tablas

Tabla 1. Clasificacin de los robots segn T. M. Knasel. ........................................... 3
Tabla 2. Tipos de control utilizados en el VGA tipo TWMR. .................................... 5
Tabla 3. Tipos de modelos matemticos que usan los autores. .................................. 5
Tabla 4. Funciones de activacin de las redes neuronales........................................ 18
Tabla 5. Arquitecturas de redes neuronales ............................................................. 19
Tabla 6. Valores de los parmetros del VGA usados en la simulacin. ................... 55
Tabla 7. ndices de desempeo para el VGA con BC siguiendo una trayectoria
Hlice. ........................................................................................................................ 67
Tabla 8. ndices de desempeo del VGA con BC siguiendo una trayectoria Crculo.
................................................................................................................................... 70
Tabla 9. ndices de desempeo del VGA con BC siguiendo una trayectoria
Cuadrado. .................................................................................................................. 71
Tabla 10. ndices de desempeo del VGA con BC con identificador neuronal tipo
RHONN siguiendo una trayectoria Hlice. .............................................................. 73
Tabla 11.ndices de desempeo del VGA con BC con identificador neuronal tipo
RHONN siguiendo una trayectoria Crculo. ............................................................ 73
Tabla 12. ndices de desempeo del VGA con BC con identificador neuronal tipo
RHONN siguiendo una trayectoria Cuadrado. ........................................................ 76
Tabla 13. ndices de desempeo del VGA con el control propuesto en
[Camarena09] siguiendo una trayectoria Hlice. .................................................... 76
Tabla 14. ndices de desempeo del VGA con el control propuesto en
[Camarena09] siguiendo una trayectoria Circulo. .................................................. 78
Tabla 15. . ndices de desempeo del VGA con el control propuesto en
[Camarena09] siguiendo una trayectoria Cuadrado. ............................................. 78
Tabla 16. ndices de desempeo de los controles utilizados sobre el VGA con
diversas trayectorias. ................................................................................................ 80
Tabla 17. Acciones que tomo el motor de acuerdo a los bits de direccin. .............. 87






x



























Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
1






Captulo 1

Sistemas de Control y Vehculos
Guiados Automticamente

1.1 Introduccin
El control automtico ha desempeado una funcin vital en el avance de la
ingeniera y la ciencia, el cual es el medio en el que los sistemas mecnicos,
elctricos, qumicos o biolgicos, mantienen su equilibrio. El control automtico ha
sido de gran importancia para el ser humano debido a la necesidad de realizar
actividades en el menor tiempo posible, de manera fcil y segura. Adems el control
automtico se volvi una parte importante e integral de los procesos modernos
industriales y de manufactura [Ogata'03].
En unos inicios el control automtico se cre para satisfacer algunas necesidades del
ser humano, como por ejemplo el flotador mecnico, que se relata en los aos 200
a.de C., el cul es un mecanismo automtico que deja pasar cierto flujo de agua
hasta un lmite deseado. Tiempo despus con la revolucin industrial en Europa, se
introdujo las primeras mquinas 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 aos transcurrieron la tecnologa empez hacerse ms
compleja, de un simple sistema mecnico a sistemas donde diversas disciplinas de
ingeniera intervienen como los son los sistemas mecatrnicos, y por lo tanto el
control tuvo que seguir sus pasos.
Los sistemas de control asumieron un papel cada vez ms importante en el
desarrollo y avance de la civilizacin moderna y la tecnologa, estos se encuentran
2 Sistemas de Control y Vehculos Guiados Automticamente



en gran cantidad en todos los sectores de la industria, tales como control de calidad
en lneas de procesos, lnea de ensamble automtico, tecnologa espacial, sistemas de
armas, sistemas de transporte, sistemas de potencia, entre otros [Kuo'96].
La mecatrnica surge de la combinacin sinrgica de distintas ramas de la
ingeniera entre las que destacan: la mecnica, la electrnica, la informtica y los
sistemas de control, no son simplemente la unin de estos sistemas y es ms que un
simple sistema de control: es una integracin completa de todo lo anterior
[Bolton'01].
1.1.1 La Robtica
Un claro ejemplo de sistemas mecatrnicos son los robots que estn constituidos
por soportes, actuadores y sensores mecnicos y electrnicos, son controlados a
travs de sistemas computacionales o sistemas electrnicos embebidos.
El trmino robot aparece por primera vez en 1921, en la obra teatral R. U. R.
(Rossums Universal Robots) del novelista y autor dramtico checo Karel Capek,
dentro de su obra aparece la palabra robota que su traduccin al espaol es
servidumbre. Con el tiempo se han intentado dar diversas definiciones al trmino
robot como por ejemplo: en el diccionario Webster define a un robot como un
dispositivo automtico que efecta funciones ordinariamente asignadas a los seres
vivos y Robot Institute of America da una descripcin ms precisa de los robos
industriales: un robot es un manipulador reprogramable multifuncional diseado
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 ms sencillos, sin embargo en el ao de 1915 Leonardo Torres
Quevedo menciono que la reproduccin de los gestos ms visibles del ser humano
no era de gran utilidad ya que las maquinas tienen ventajas sobre los humanos,
como lo son la fuerza, precisin , entre otras; y lo que l buscaba era mejorar los
resultados sin realizar una imitacin como tal, sino mejorar en tiempo, la calidad
los productos, las actividades que se generaban por el ser humano y principalmente
la reduccin de costos de mano de obra [Ollero'01].
Existen diversas clasificaciones de robots de acuerdo a sus caractersticas de
construccin o sus actividades que realizan, T. M. Knasel propone una clasificacin
de acuerdo a la utilidad y tiempo de invencin en la industria de los robots como se
muestra en la tabla 1.
Los robots mviles 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 interaccin con el mundo que les rodea [Ollero'01], estos utilizan
diversos tipos de locomocin que le dan caractersticas y propiedades diferentes
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
3



respecto a la eficiencia de energtica, dimensiones, cargar tiles y maniobrabilidad
[Azcn'03].


Tabla 1. Clasificacin de los robots segn T. M. Knasel.
Generacin Nombre Tipo de control Grado de
movilidad
Usos ms
frecuentes
1 (1982) Pick & place Fines de carrera,
aprendizaje
Ninguno Manipulacin,
servicio de
maquinas
2 (1984) Servo Servo-control,
trayectoria continua,
programacin
condicional
Desplazamiento
por va
Soladura,
pintura
3 (1989) Ensamblado Servos de precisin,
visin, tacto
Guiado por va Ensamblado,
desbardado
4 (2000) Mvil Sensores inteligentes Patas, ruedas,
orugas
Construccin,
traslado
5 (2010) Especiales Control con tcnicas
de IA
Andante,
saltarn
Militar,
espacial
Dentro de la clasificacin de los robots mviles, se encuentran divididos segn los
elementos usados para el desplazamiento de estos como los son: las ruedas, las
cadenas y las patas, por mencionar los ms comunes.
Los robots con ruedas son ms sencillos y ms fciles de construir, la carga que
pueden transportar es mayor, relativamente. Tanto los robots basados en cadenas
como en patas se pueden considerar ms 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 vehculo de ruedas podr sobrepasar un
obstculo que tenga una altura no superior al radio de sus ruedas, entonces una
solucin es utilizar ruedas mayores que los posibles obstculos a superar; sin
embargo, esta solucin, puede no ser prctica.
Para robots que vayan a funcionar en un entorno natural las cadenas son una
opcin muy buena porque las cadenas permiten al robot superar obstculos
relativamente mayores y son menos susceptibles que las ruedas de sufrir daos 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.
4 Sistemas de Control y Vehculos Guiados Automticamente



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 inters
en disear este tipo de robots, su construccin plantea numerosos retos. Estos retos
se originan principalmente en el gran nmero de grados de libertad que requieren
los sistemas con patas. Cada pata necesita como mnimo un par de motores lo que
produce un mayor coste, as como una mayor complejidad y menor fiabilidad. Es
ms los algoritmos de control se vuelven mucho ms complicados por el gran
nmero de movimientos a coordinar.
Se entiende como autonoma de un robot mvil, al dominio que tiene este para
terminar su curso de accin, mediante su propio proceso de razonamiento basado
en sensores que le permiten percibir el espacio de trabajo.
En este trabajo se hablara particularmente del Vehculo Guiado Automticamente
(VGA por sus siglas en espaol), 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, comnmente la trayectoria que siguen siempre es la misma y se encuentra
prediseada. Existen empresas dedicadas a la construccin de este tipo de robots
como los son E&K Automation y DTA S. A. Algunos modelos que producen dichas
compaas se muestran en la figura 1.

Figura 1. Ejemplos de VGA utilizados en la industria.
1.2 Control del Vehculo Guiado Automticamente
Existes dos objetivos comunes de control, la regulacin que se trata de llevar la
salida de un sistema a un punto de operacin deseado y el seguimiento de
trayectoria que es manipular el sistema con el fin de tener el mnimo 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 sucesin de la posicin de un robot que permite llevarlo de una posicin actual a
una siguiente de acuerdo a lo deseado, entendindose como posicin a la descripcin
de la ubicacin del robot referenciado a un marco absoluto generalmente
expresado por la combinacin de la coordenadas cartesianas del centro del robot o
un punto especifico de este y la posicin angular del eje principal [Garca'05]. La
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
5



configuracin que adquiere la trayectoria deseada se define por la geometra 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 ingls) como se muestra en la tabla 2, estos autores presentan
resultados solo en simulacin.
Tabla 2. Tipos de control utilizados en el VGA tipo TWMR.
Autor Control
[Sarkar'94] Linealizacin
retroalimentacin de estado
[Tsuchiya'99]y [Li'09] Anlisis de Lyapunov
[Fukao'00] Control adaptativo
[Yazdanpanah'03] Control robusto H


[Hsiao'09] Tcnicas de control difuso
En robtica existen dos modelos matemticos que se pueden usar para el diseo del
controlador, los cuales son el modelo cinemtico y el modelo dinmico.
El modelo matemtico cinemtico o geomtrico del robot es la relacin entre los
valores de las variables asociadas a las articulaciones del robot y la situacin de un
sistema de referencia. Se entiende por cinemtica el estudio del movimiento sin
considerar las fuerzas que lo producen.
La dinmica se ocupa de la relacin entre las fuerzas que actan sobre un cuerpo y
el movimiento que en l se origina. Por lo tanto, el modelo matemtico dinmico de
un robot tiene por objeto conocer la relacin 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 tcnicas de control, algunos autores
utilizan el modelo cinemtico, otros el dinmico o ambos como se muestra en la
tabla 3.
Tabla 3. Tipos de modelos matemticos que usan los autores.
Modelo Matemtico Autores
Cinemtico [Tsuchiya'99]
Dinmico [Sarkar'94], [Fukao'00], [Chen'08]
Ambos [Yazdanpanah'03], [Szemes'04]
6 Sistemas de Control y Vehculos Guiados Automticamente



1.3 Caso de estudio: VGA-Cenidet
El VGA es un sistema no-holonmico, para el caso particular del tipo TWMR el
nmero total de grados de libertad son 3 (posicin x, y, ms su orientacin ) sn
embargo nicamente se puede controlar el desplazamiento hacia adelante y hacia
atrs as como su orientacin, 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 mvil, se puede clasificar en cuatro tareas
fundamentales; localizacin, planificacin de trayectoria, seguimiento de la misma
y evasin de obstculos. Cabe mencionar que este tipo de robot mvil es altamente
no lineal lo que hace ms complicado su anlisis matemtico.
El seguimiento de la trayectoria lo realiza comnmente el punto central del eje que
une las ruedas al cual se llamada P
m
, sin embargo no necesariamente es este punto
el nico, puede ser cualquier otro siempre y siempre y cuando se aclare en el
anlisis matemtico, desglosando este punto en tres trayectorias a seguir, posicin
en el eje x, posicin en el eje y y orientacin 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, idnticas que son paralelas entre s, unidas por un eje
rgido, pero con giro independiente. Se considera tambin que las ruedas motrices
del vehculo son lo suficientemente rgidas, no deformables y que giran sin
deslizarse sobre la superficie en el cual se mueven.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
7




El VGA Cenidet se encontraba controlado a travs 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 linealizacin de entrada-salida por retroalimentacin esttica
del vector de estados. Debido a que el desacoplamiento entrada-salida no puede
llevarse a cabo por la retroalimentacin esttica, se plantea el segundo esquema que
consiste en la linealizacin entrada-salida por retroalimentacin dinmica del
vector de estados. Esto genera que al presentarse la singularidad en el
desacoplamiento de las variables x y y, del punto gua P
m
, se emplea el
algoritmo de extensin dinmica para linealizar y desacoplar la respuesta entrada-
salida del sistema y evadir de esta manera la singularidad del grado relativo de este
sistema no-holonmico. Con el fin de lograr la convergencia de las variables de
estado del robot, se diseo un control de estructura variable, el cual cambia entre
el primer y segundo esquema para evadir singularidades.
1.4 Problemtica
El control de los robots con ruedas es de gran inters para la comunidad de control,
este tipo de sistemas se enmarca dentro de la teora de control en el rea que se
conoce como control de sistemas no-holnomos. 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 trminos de la posicin y orientacin del
robot exclusivamente [Freire'09]. Por lo que se dice que estos sistemas tienen un
nmero menor de grados de libertad controlables respecto al nmero de grados de
libertad totales.
El trmino no-holnomo fue introducido por primera vez en mecnica por Heinrich
Hertz en su obra Principios de Mecnica (1894). Los sistemas no-holnomos
surgen en la mecnica clsica modelando la rodadura sin deslazamiento de los
cuerpos rgidos. Existen una gran cantidad de ejemplos clsicos de sistemas no-
holnomos que son ampliamente estudiados, la esfera de Routh, el disco rodante
que cae, el patn 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 conexin hacia la computadora.
8 Sistemas de Control y Vehculos Guiados Automticamente



Las restricciones holonmicas son aquellas expresadas de forma de igualdades
algebraicas. El nmero de coordenadas independientes cuando existen k
restricciones holonmicas es s=3N-k (donde N es un eje en el plano). La cantidad s
determina los grados de libertad del sistema, o el nmero mnimo de coordenadas
necesarias para describir el movimiento del sistema. Los grados de libertad definen
un conjunto de coordenadas generalizadas, denotadas por { }
s
q q q q , , ,
2 1
L = , el
cual tiene asociados un conjunto de velocidades generalizadas { }
s
q q q q & L & & & , , ,
2 1
= .
Un ejemplo de sistemas holnomos es el pndulo en el plano, como se muestra en la
figura 4, consiste en una varilla rgida 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. Pndulo en el plano xy.
Existen dos restricciones holonmicas 0 = z

y 0
2 2 2
= + + l y x .
Por otra parte, las restricciones no-holonmicas 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 estn dadas por:
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
9



sin 0
cos 0
d d
x R
dt dt
d d
y R
dt dt
z cte


=
=
=


Las coordenadas generalizadas son ) , ( y x para ubicar P, ms 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 0
d
i
x
sin d y
A q q sin b r
b r


(
(
(
(
(
( = =
(
(
(

(
(

&
&
&
&
&
&

donde:
es el ngulo de orientacin 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
i d
, son las posiciones angulares de las ruedas derecha e izquierda
respectivamente

Bajo las restricciones de movimiento, la problemtica principal de control de
sistemas no-holonmicos es poder realizar el seguimiento de trayectoria a pesar de
las restricciones de movimiento anteriormente descritas. Para el VGA adems de
esta problemtica se tienen las no linealidades que presenta el modelo del sistema
que hace complejo el anlisis matemtico, as tambin como las incertidumbres que
se agregan por las consideraciones del modelado.
1.5 Propuesta de solucin
La propuesta para la problemtica 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:

10 Sistemas de Control y Vehculos Guiados Automticamente



La primera parte es un identificador basado en una red neuronal artificial
(RNA por sus siglas en espaol) tipo Recurrent High Order Neural Network
(RHONN por sus siglas en ingls), partiendo de la suposicin de que el
modelo matemtico del sistema no se conoce y los parmetros de este son
desconocidos. Este identificador funcionara como un modelo paralelo al
sistema, lo que ayudara a proporcionar un modelo matemtico alterno y
poder aplicar una ley de control basada en el modelo.

Las RNA tipo RHONN son redes que su principal caracterstica 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 sinpticos 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 lnea.

La segunda parte del esquema es la tcnica de control llamado Block
Control, esta utiliza el modelo matemtico del sistema para su diseo, la
accin 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 anlisis
de la dinmica del error. Las restricciones para el uso de este control es que
se requiere que la estructura del modelo matemtico del sistema a controlar
sea capaz de llevarlo a la forma controlable a bloques, as como conocer los
parmetros del sistema.

Figura 6. Diagrama a bloques del control con identificacin mediante RNA tipo RHONN.

b) Sistema Embebido: El VGA Cenidet se diseo originalmente para estar
conectada a una PC al sistema de dSpace. ste sistema es un conjunto de
circuitos capaces de recibir datos digitales, analgicos, codificadores, entre
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
11



otros; as como enviar datos digitales, analgicos, salidas de PWM y seales
de comunicacin en RS 232, entre otros.

Una vez obtenido los algoritmos de identificacin y control del sistema VGA
se realiza el traslado a un sistema embebido, el cual consiste en una tarjeta
de evaluacin dsPIC Pro 4, est tarjeta contiene un procesador digital de
seales (DSP en sus siglas en ingls) tipo dspic30f6014. Por tratarse de una
tarjeta de desarrollo comercial, tienen disponibles todos los puertos de
entrada-salida, analgicos y digitales, as como tambin todos los enlaces de
comunicacin y otros dispositivos que soporta el procesador.

Se considera usar el lenguaje de programacin tipo C para el traslado de los
algoritmos hacia el sistema embebido. Debido a que este tipo de dispositivos
contienen herramientas de software ya diseadas para su uso.
1.6 Hiptesis
Un esquema de control embebido basado en redes neuronales recurrentes de alto
orden aplicado a un robot mvil no-holonmico, permite realizar el seguimiento de
trayectorias preestablecidas
1.7 Objetivos
Objetivo general:
Desarrollar un esquema de control basado en redes neuronales artificiales, aplicado
al vehculo guiado automticamente 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 autnomo y no tenga
necesidad de una computadora para su control.
Objetivos particulares:
Realizar un estudio y asimilacin de la RNA tipo RHONN.
Realizar estudio y asimilacin del manejo de la tarjeta dsPIC Pro 4.
Integracin 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 captulo se mostr un panorama general de la robtica y como el control
automtico contribuye en los sistemas, adems se plantea el problema, la hiptesis y
los objetivos de la tesis, as como la propuesta de solucin. En los siguientes
captulos se presenta el desarrollo de la tesis y los resultados obtenidos.
12 Sistemas de Control y Vehculos Guiados Automticamente



En el captulo 2 se define las neuronas biolgicas y se explica brevemente su
funcionamiento, tambin se presenta la estructura de una red neuronal artificial
tipo red neuronal recurrente de alto orden, as como sus caractersticas y
propiedades, su funcionamiento y ventajas, se muestra el anlisis del Filtro de
Kalman Extendido para entrenamiento de la red neuronal. Tambin se muestra el
diseo de un identificador neuronal basado en redes neuronales recurrentes de alto
orden.
En el captulo 3 se muestra el anlisis y diseo de un controlador llamado Block
Control, as tambin como el desarrollo de algunos ejemplos y la reproduccin de
otros. Se muestran resultados en simulacin de un ejemplo. Se desarrolla la unin
de las tcnicas de identificacin neuronal basada en redes neuronales recurrentes
de alto orden y la tcnica Block Control, as como el desarrollo de un ejemplo.
En el captulo 4 se muestra el diseo de un identificador para un modelo
matemtico del VGA, as el diseo del controlador, se presentan los resultados en
simulacin y una comparacin con el control presentado en [Camarena'09].
En el captulo 5 se muestra lo realizado en implementacin sobre el VGA Cenidet.
As como el desarrollo de tarjetas y programas utilizados. Se presentan resultados
de las pruebas realizas.
En el captulo 6 se muestra los resultados y conclusiones de la tesis, as como los
objetivos cumplidos y las aportaciones.











Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
13






As como el hierro se oxida por falta de uso, as
tambin la inactividad destruye el intelecto
-Leonardo da Vinci


Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
14





Captulo 2

Redes Neuronales Recurrentes de
Alto Orden

El conocimiento sobre redes neuronales se increment de manera significativa en
los ltimos aos, siendo una metodologa bien establecida para modelado y control,
sta permite resolver algunos de los problemas de control ms difciles, como
identificacin y control de sistemas no lineales. En particular el uso de redes
neuronales recurrentes, para el modelado y la reproduccin de transformacin
entrada-salida, se increment en aos recientes.
2.1 Redes Neuronales Biolgicas
Los conocimientos actuales sobre la estructura y composicin de las neuronas se
deben en parte al cientfico aragons y Premio Noble de la Medicina D. Santiago
Ramn y Cajal quien en 1888 demostr que el sistema nervioso estaba compuesto
por una red de clulas individuales, o neuronas, que se conectaban entre s
formando sistemas.
Las neuronas son el elemento fundamental de los sistemas neurales biolgicos, son
las clulas que forman el sistema nervioso central incluyendo el cerebro; tienen tres
componentes principales: las dendritas, el cuerpo de la clula o soma y el axn.
Las dendritas son el elemento receptor; son como fibras nerviosas que cargan de
seales elctricas al cuerpo de la clula. El cuerpo de la clula realiza la suma de
esas seales de entrada. El axn es una fibra larga que lleva la seal desde el cuerpo
de la clula hacia otras neuronas. El punto de contacto entre el axn de una clula y
la dendrita de otra clula es llamado sinapsis [Haykin'01]. La conexin entre el
axn de una neurona y las dendritas de otra reciben el nombre sinapsis y
determina la fuerza y tipo de relacin entre ellas [Lpez'08].
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
15



En la figura 7 se muestra la estructura de una neurona biolgica. La forma final de
la neurona depende de la funcin que cumple de la posicin que ocupa en el
conjunto del sistema y de los estmulos que recibe [Lpez'08].

Figura 7. Neurona Biolgica.
En algunas neuronas los impulsos se inician en la unin entre el axn y el soma; y
luego se transmiten a lo largo del axn a otras clulas nerviosas. Cuando el axn
est cerca de sus clulas destino, se divide en muchas ramificaciones que forman
sinapsis como el soma o axones de otras clulas. Las sinapsis pueden ser excitatorias
o inhibitorias segn el neurotransmisor que se libere. Cada neurona recibe de
10,000 a 100,000 sinapsis y su axn realiza una cantidad similar de sinapsis
[Haykin'01].
2.2 El modelo matemtico de una neurona
La neurona es la unidad de proceso de informacin fundamental en una red
neuronal. En la figura 8 se muestra el modelo de una neurona; ste forma la base
para el diseo de una red neuronal artificial. Aqu se pueden identificar tres
elementos bsicos del modelo neuronal.
Un conjunto de sinapsis, cada una de las cuales est caracterizada por un
peso o ganancia sinptica.
Un sumador o punto de suma para sumar las seales de entrada pesadas
por su respectivo peso sinptico: las operaciones hasta aqu descritas
constituyen combinaciones lineales.
Una funcin de activacin para limitar la amplitud de la salida de la
neurona. La funcin de activacin tpicamente est normalizada dentro de
un intervalo cerrado [0,1] o alternativamente [-1,-1].

En una forma matemtica es posible describir a la neurona como:
1
m
k kj j
j
u w x
=
=

(1)
16 Redes Neuronales Recurrentes de Alto Orden



( )
k k k
y u b = + (2)
Donde
1 2
, , ,
m
x x x L son las seales de entradas;
1 2
, , ,
k k km
w w w L son los pesos
sinpticos de la neurona k;
k
u es la combinacin lineal de las entradas ponderadas;
k
b es la polinizacin; ( ) es la funcin de activacin y
k
y es la seal de salida
de la neurona. Los tres elementos bsicos son: la sinapsis , un sumador y la funcin
de activacin [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, segn [Freemam'93], es un sistema de procesadores paralelos
conectados entre s en forma de grafo dirigido. Esquemticamente cada
elemento de procesamiento (neuronas) de la red se representa como un nodo.
Estas conexiones establecen una estructura jerrquica que tratando de emular la
fisiologa 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 biolgicas, estas no alcanzan la
complejidad del cerebro, sin embargo existen similitudes entre las biolgicas y las
artificiales. Los bloques de construccin son elementos computacionales sencillos
altamente interconectados y estas conexiones determinan la funcin 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 matemticos son simplificaciones de las redes
neuronales biolgicas, 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, segn [Haykin'01], son: tiene la
capacidad de adaptabilidad, pueden ser lineales o no lineales, son tolerantes a fallas,
uniformidad de anlisis de diseo.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
17



Desde la dcada de los 40s autores como McCulloch y Pitts realizaron
representaciones de redes neuronales como una mquina de conexin binaria, en
los 50s Frank Rosenblatt comenz el desarrollo del Perceptrn, el cual es la red
ms antigua, despus surgieron diversos trabajos y estudias donde se comprobaba
que una RNA era capaz de resolver problemas complejos, as tambin surgieron
mtodos de aprendizaje lo que hace ms sencilla el desarrollo de las RNA, en 1974,
Paul Werbos desarroll la idea bsica del algoritmo de aprendizaje de propagacin
hacia atrs (backpropagation).
Pero hasta la dcada de los 90s en el trabajo de [Narendra'90] demuestra que las
RNA son eficientes para la identificacin y control de sistemas dinmicos no
lineales, tambin hace uso de redes multicapas y redes recurrentes. En el trabajo
[Kasmatopoulos'95] se realiza un estudio de estabilidad, anlisis y diseo de las
redes neuronales recurrentes de alto orden (RHONN por sus siglas en ingls) para
la identificacin de sistemas dinmicos.
Las RNA presentan beneficios, en cuestin de control, identificacin 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 slo la combinacin lineal de los componentes de la red, sino tambin se
incluyen sus productos; ms an, 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 interaccin entre las neuronas.
2.3.1 Tipos de funciones de activacin
Las funciones de activacin, denotadas por
( ) , define la salida de la neurona en
trminos de un campo local inducido por v, las grficas y funciones se presentan en
la tabla 3.
1. La funcin lineal o identidad, que devuelve directamente el valor de
activacin de la neurona.

2. Funcin escaln o umbral, que presenta salidas binarias. En este caso, si la
activacin 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.

18 Redes Neuronales Recurrentes de Alto Orden



3. Funcin lineal a tramos, una variante progresiva de la funcin escaln. Si la
activacin de la unidad es menor que un lmite inferior preestablecido, la
salida se asocia con un determinado valor; si la activacin es igual o
superior que un lmite superior, la salida se asocia con otro valor. Si el nivel
de activacin se encuentra entre ambos lmites se aplica una funcin lineal o
identidad.

4. Funcin sigmoidea, defina en un determinado intervalo monotnico con
lmites superiores e inferiores. Estas funciones se caracterizan por
presentar una derivada siempre positiva e igual a cero en sus lmites
asintticos, lo que se conoce como una funcin suave.

5. La funcin gaussiana, que adapta la forma de una campana de Gauss cuyo
centro, radio y apuntamiento son susceptibles de adaptacin.

Tabla 4. Funciones de activacin de las redes neuronales.
Nombre Funcin Grfica
Lineal ( ) v v =

Escaln ( )
1 0
0 0
si v
v
si v

<



Lineal a tramos ( )
1
1
2
1 1
2 2
1
0
2
v
v v v
v

= + > >



Sigmoidea
( )
1
1
av
v
e


=
+


Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
19



Gaussiana ( )
Bv
v Ae

=



2.3.2 Arquitectura
A la arquitectura se refiera a la forma en cmo la informacin pasa a travs 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 ms 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 clasificacin 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
nmero de conexiones internas de la red entre neuronas crece.

Redes Neuronales Recurrentes: En esta clasificacin las redes contienen por
lo menos un lazo de retroalimentacin, 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

20 Redes Neuronales Recurrentes de Alto Orden



Recurrente

2.4 Identificacin 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 ,
n
x
m
u y
n m n
F

son funciones no lineales, para
identificar el sistema anterior se considerando el siguiente modelo RHONN en
tiempo discreto:
( 1) ( ( ), ( )), 1,..., (4)
T
i i i
x k x k k i n + = =

Donde
i
x es el estado de la i-esima neurona, n es la dimensin del estado,
i

-
es el
respectivo peso que se sintoniza en lnea y ( ( ), ( ))
i
x k k est definido como:
1 1
2 2
( ( ), ( )) (5)
L L
dij
i j I ij
dij
i j I ij
i
dij
i j I ij
x k k



( (
( (

( (
= =
( (
( (
( (

M M

Donde L es el nmero de conexiones de alto
1 2
{ , ,..., }
L
I I I es una coleccin de
subconjuntos no ordenados {1, 2,..., } n m + , m es el nmero de entradas,
ij
d es un
nmero positivo y
i
est definido como:
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
21



1
1
1
1
( )
( )
( )
( )
n
n
n m
i
i
n
i
i
m
i
S x
S x
S
S

+
+
(
(
(
(
(
(
(
(
(
= =
(
(
(
(
(
(
(
(
(


M
M
M
M
(6)
La funcin de activacin para esta red en particular se define como:
1
( ) , 0
1 exp( )
S

= >
+
(7)

La forma en cmo una RNA funciona se basa en la modificacin de pesos
sinpticos, llamado a estos mtodos entrenamiento de la RNA, ejemplos de estos
mtodos son el Filtro de Kalman [Narendra'92], [Takenga'04], el Filtro de Kalman
Extendido (FKE) [Alanis'04], [Sanchez'08], [Castaeda'09], [Benitez'10],
[Alanis'10], el Gradiente [Takenga'04], entre otros.
2.5.1 Filtro de Kalman Extendido
El FKE proporciona una solucin recursiva para la estimacin de estados en
sistemas dinmicos, se aplica en sistemas en estado estacionario y no estacionario.
Segn [Haykin'01] el filtro de Kalman es computacionalmente ms eficiente que el
clculo de la estimacin 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 sinpticos, 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) ( ) ( ) ( ) ( ) ( )
T
i i i i i i i
i i i i
T
i 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 i
L L
i
P k

R es el error de prediccin asociado a la matriz de covarianza,
( )
i
L
i
k R es el vector de pesos,
i
L es el nmero total de pesos en la red neuronal,
( )
m
y k R es el vector de salidas medibles, ( )
m
y k R es el vector de las salidas de
la red neuronal,
i
es un parmetro de diseo, ( )
i
L m
i
K k

R es la matriz de
22 Redes Neuronales Recurrentes de Alto Orden



ganancias de Kalman,
i i
L L
i
Q

R es el ruido de los estados relacionado con la
matriz de covarianza,
m m
i
R

R es el ruido de medicin relacionado con la matriz
de covarianza y ( )
i
L m
i
H k

R est definida como:
( )
( ) (9)
( )
i
ij
y k
H k
k
(

=
(

(


Considerando el problema de identificacin de un sistema no lineal de la forma (3).
El modelo general a una RHONN en tiempo discreto en su representacin serie-
paralelo de acuerdo a [Rovisthakis'00] para la identificacin un sistema no lineal:
( 1) ( ( ), ( )) ( ) (10)
T
i i i i i
x k x k k g e k + = +
Donde
i
x es la estimacin del estado,
i
g es una ganancia, ( ( ), ( ))
i
x k k

est
definida anteriormente,
T
i
son los pesos sinpticos y el error se define como
( ) ( )
i i i
e x k x k = , con la suposicin de que se conoce todo el estado del sistema a
identificar [Sanchez'08].
Cabe mencionar que los pesos sinpticos son calculados en lnea, cada iteracin 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) ( ) ( ) ( ) ( ) ( )
T
i i i i i i i
i
i i i i i i
ij T
i i i i i i
K k P k H k R k H k P k H k
x
k k K k e k H k
P k P k K k H k P k Q k

( = +

+ = + =

+ = +

Comnmente (0), (0), (0)
i i i
Q R P son inicializadas en diagonal y ,
i i
Q R contienen
valores fijos durante todo el proceso de identificacin, es importante mencionar que
los valores que se seleccionan como valores inciales de estos se calculan de forma
heurstica as como las ganancias
i
g y los parmetros
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 metodologa del trabajo, se tomaron varios ejemplos y sistemas de
corte acadmico para tener conocimiento y entender el mtodo de identificacin
basado en RNA tipo RHONN, la mayora de estos en tiempo contino por lo que se
realizo una discretizacin tipo Euler.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
23



2.6.1 Identificacin neuronal de un satlite en orbita
El siguiente sistema es de un satlite en rbita, en este ejemplo se realiza la
identificacin en lazo cerrado con el control Block Control ms adelante se
mostrar el diseo del control, la idea de este sistema es mantener regulado x
1
el
cual es la distancia entre la tierra y el satlite se mantenga en una posicin lo ms
constante posible y x
3
que es el ngulo del satlite con respecto a un radio de la
tierra, siga una trayectoria.

El modelo matemtico de este sistema se muestra en (12).

1 1 2
2 0 1
2 2 1 4 2
1
3 3 4
2 4 2
4 4 2
1 1
( 1) ( ) ( )
( )
( 1) ( ) ( ) ( )
( )
( 1) ( ) ( )
2 ( ) ( ) ( )
( 1) ( )
( ) ( )
s
s
s
s
x k x k T x k
k u k
x k x k T x k x k
x k M
x k x k T x k
x k x k u k
x k x k T
x k Mx k
+ = +
| |
+ = + +
|
\
+ = +
| |
+ = + +
|
\
(12)
Donde
1
x es la distancia entre el satlite y la tierra
2
x es la velocidad del satlite
3
x es el ngulo de la posicin satlite con referencia a un radio de la tierra
4
x es la velocidad angular del satlite con respecto a la tierra
0
k y M son parmetros del sistema
s
T es el tiempo de muestreo
Se propone la red tipo RHONN, donde se toma en cuenta el modelo matemtico 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 identificacin del sistema (12) utilizando como identificador el modelo
en (13).
24 Redes Neuronales Recurrentes de Alto Orden




En la figura 9 se muestra el seguimiento de la RHONN al modelo matemtico del
satlite en rbita. En la figura 10 se muestran los errores de esta identificacin los
cuales no son mayores del 15% de las seales que del sistema identificado. En la
figura 11 se muestra la evolucin de los pesos sinpticos.


Figura 9. Identificacin del modelo matemtico de un satlite en rbita
0 5 10 15 20 25
90
100
110
Estimacin de la distancia entre el satlite y la tierra
D
i
s
t
a
n
c
i
a

(
K
m
)
0 5 10 15 20 25
-5
0
5
Estimacin de la velocidad del satlite
V
e
l
o
c
i
d
a
d

(
K
m
/
s
)
0 5 10 15 20 25
-0.2
0
0.2
V
e
l
o
c
i
d
a
d

(
m
)
Estimacin del angulo del satlite


real
Identificacin
0 5 10 15 20 25
-0.02
0
0.02
Estimacin de la velocidad angular del satlite
tiempo (s)
D
i
s
t
a
n
c
i
a

(
m
/
s
)
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
25




Figura 10. Errores de identificacin del satlite en rbita.

Figura 11. Evolucin de los pesos sinpticos de un satlite en rbita.
0 5 10 15 20 25
-0.2
0
0.2
error de la distancia entre el satlite y la tierra
D
i
s
t
a
n
c
i
a


(
K
m
)
0 5 10 15 20 25
-1
0
1
error de la velocidad del satlite
V
e
l
o
c
i
d
a
d

(
K
m
/
s
)
0 5 10 15 20 25
-2
0
2
x 10
-4
error del angulo del satlite
D
i
s
t
a
n
c
i
a


(
m
)
0 5 10 15 20 25
-5
0
5
x 10
-3
error de la velocidad angular del satlite
tiempo (s)
V
e
l
o
c
i
d
a
d

(
m
/
s
)
0 5 10 15 20 25
0
10
20
30
40
50
60
70
Pesos relacionados a la distancia entre el satlite 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 satlite


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
1
Pesos relacionados al ngulo del satlite


w(3,1)
w(3,2)
w(3,3)
w(3,4)
0 5 10 15 20 25
-1
-0.5
0
0.5
1
Pesos relacionados a la velocidad angular del satlite


w(4,1)
w(4,2)
w(4,3)
w(4,4)
26 Redes Neuronales Recurrentes de Alto Orden



2.6.2 Identificacin de un Oscilador de Van der Pol
En [Sanchez'08] se presenta la identificacin del Oscilador de Van der Pol, con el
modelo no lineal:
1 1 2 1
2
2 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 seal de entrada:
2
( ) cos
25
k
u k
| |
=
|
\

Donde

es un parmetro 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 2
1 11 1 12 1 2 13 2
4
14 2 1 1
2 3
2 21 1 22 2 23 1 2
2 3
24 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 identificacin neuronal del sistema (14) con la red neuronal (15). En la
figura 12 se muestra el seguimiento de la red neuronal a
1
x

y
2
x , las seales se
encuentran montadas la real como la estimada. En la figura 13 los errores de esta
identificacin no son mayores del 10% de las seales identificadas y en la figura 14
se muestra la evolucin de los pesos sinptico.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
27




Figura 12. Identificacin del oscilador Van der Pol

Figura 13. Errores de identificacin 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.5
error x1
0 50 100 150 200 250 300 350 400 450 500
-0.1
-0.05
0
0.05
0.1
error x2
No. de datos
28 Redes Neuronales Recurrentes de Alto Orden




Figura 14. Evolucin de los pesos sinpticos de la identificacin 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 inciales 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 parmetros para la identificacin son:
1 2
7, 8.5 = =
Las ganancias
1 2
1.6, 1.8 g g = = .
2.6.3 Identificacin neuronal de un motor de corriente continua con excitacin
separada
En el artculo tcnico [Castaeda'09] presenta la identificacin mediante una RNA
tipo RHONN de un motor de CD de excitacin separada en lazo cerrado, sin
embargo se toma el modelo en lazo abierto para probar la identificacin neuronal,
su modelo es:
0 100 200 300 400 500 600
-4
-2
0
2
4
Pesos sinpticos 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 sinptico en x2


w(2,1)
w(2,2)
w(2,3)
w(2,4)
w(2,5)
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
29



( 1) ( ) ( ) ( ) ( ) ( )
( 1) ( ) ( ) ( ) ( ) ( )
( 1) ( ) ( ) ( )
s af
s e s
m m m a f L
e e e
s af
s a s
a a a m f a
a a a
s f
s
f f f f
f f
T L
T b T
k k k i k i k T k
J J J
T L
T R T
i k i k i k k i k u k
L L L
T R
T
i k i k i k u k
L L

+ = +
+ = +
+ = +
(16)
Donde
m
es la velocidad angular del rotor de motor,
a
i es la corriente de
armadura y
f
i es la corriente de campo, , , , , ,
s e e af a a
T b J L R L son los parmetros del
sistema, ,
a f
u u son los voltajes de entrada al motor y
L
T es la carga mecnica del
motor que comnmente se tom como una perturbacin para cuestiones de control.
Y el modelo RHONN que propone en el artculo es de la forma:

( )
( ) ( ) ( ) ( )
( )
2
11 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 parmetros para la identificacin no estn presentados en el artculo de
[Castaeda'09] por lo que se proponen estos valores, los cuales son los pesos
inciales as como los valores inciales de R, P, Q tambin los valores de las
ganancias del FKE y del modelo neuronal. Se realiz la identificacin del sistema
(16) con la red neuronal (17).
30 Redes Neuronales Recurrentes de Alto Orden




Figura 15. Identificacin del estado de un motor de CD de excitacin separada.

Figura 16. Errores de identificacin de motor de CD de excitacin separada.
0 0.5 1 1.5 2 2.5 3 3.5 4
0
50
100
150
Velocidad angular
0 0.5 1 1.5 2 2.5 3 3.5 4
0
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
1
Corriente If
Tiempo (s)
0 0.5 1 1.5 2 2.5 3 3.5 4
-3
-2
-1
0
1
2
3
Error en Velocidad wm
0 0.5 1 1.5 2 2.5 3 3.5 4
-3
-2
-1
0
1
2
3
Error 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)
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
31




Figura 17. Pesos sinpticos de un motor de CD de excitacin separada.
En la figura 15 se muestra la identificacin del estado donde las seales se
encuentran montadas, por lo que se dice que el modelo neuronal sigue al modelo
matemtico 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 cmo pasa el tiempo el error
tiende a cero, esto es debido al tiempo que se tardan el algoritmo en realizar la
identificacin. En la figura 17 se muestran los pesos sinpticos de este ejemplo.
2.7 Conclusiones
El ejemplo del motor de CD de excitacin separada se trata de identificacin en lazo
abierto es decir que el sistema no tiene ningn tipo de retroalimentacin ni de
control y el ejemplo del satlite es en lazo cerrado, este se encuentra controlado a
travs de la tcnica 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 identificacin 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 rpidos, lo que produce que los pesos
sinpticos 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
300
Pesos sinpticos
Tiempo (s)


w(1,1)
w(2,1)
w(2,2)
w(2,3)
w(3,1)
32 Redes Neuronales Recurrentes de Alto Orden




























Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
33












Todas las pasiones son buenas cuando
uno es dueo de ellas, y todas son
malas cuando nos esclavizan
-Rousseau


Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
34





Captulo 3

Block Control
La tcnica del Block Control (BC por sus siglas), es un mtodo que parte el modelo
matemtico 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 tcnica de BC en unin con
otras tcnicas de control para resolver el seguimiento de trayectorias en un motor
de induccin. En [Huerta'08] se presenta el uso de la tcnica de BC para el control
de sistemas de potencia. En [Castaeda'09] presenta el control de un motor de CD
de excitacin 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 condicin que el modelo se pueda llevar a un la forma controlable por
bloques.
3.1 Introduccin 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
n
x son los estados del sistema, ( ( ), ( ( )) f x k B x k son funciones no
lineales que dependen de los estados, ( )
m
u k es la entrada del sistema y ( ) d k
son perturbaciones del sistema.

La forma NBC (No-lineal Block Control ,por sus siglas en ingls) presentada en
[Loukianov'98] consiste en r bloques:


Control Embebido de un Vehculo Guiado Automticamente 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 n
r
x x x = L es el vector de estado,
i
n
i
x ,
1
[ ]
T
i i
x x x = L ;
m
u

es el vector de control. Por otra parte, ( ) f y ( ) B son campos vectoriales suaves,
i
d son perturbaciones desconocidas o variaciones de parmetros y
[ ]
1
( ) ,
i i i
rank B x x n x = L
Los enteros
1
, ,
r
n n K definen la dimensin i esmo bloque y satisfacen que
1 2
1
,
r
r i
i
n n n m n n
=
= =

L
El objetivo de control del diseo del sistema en (19) es que su salida y siga a una
seal ( )
ref
x k con derivadas limitadas, a pesar de perturbaciones. Para introducir el
modo deslizante en el bloque r del sistema (19), se utiliza una funcin sigmoidea
( / ) sigm v continuamente diferenciable que se define como:
/ /
/ /
( / ) tanh( / ), tanh( / )
v v
v v
e e
sigm v v v
e e


= =
+

Donde 1/ es la pendiente de la funcin sigmoidea en 0 v = , por lo que se tiene:
0
lim ( / ) ( ) 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 seal de control del sistema
36 Block Control



3.- En cada bloque se pueda tener la seal del bloque siguiente como un control,
como se muestra en (13) en el segundo trmino de cada bloque.

Figura 18. Representacin grfica de la forma controlable a bloques.
3.2 Diseo del Block Control

De acuerdo a la tcnica ocupada en [Loukianov98], el estado
1
, 1, , 1
i
x i r
+
= K es
considerado como un control ficticio del i esmo bloque del sistema (19). El
procedimiento de diseo se explica a continuacin.
La tcnica del BC se basa en un cambio de la dinmica del sistema a la dinmica del
error. De acuerdo a esto, el primer bloque
1
( ) z k , estar dado por el error de
seguimiento:

1 1
( ) ( ) ( ) (20)
ref
z 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)
ref
d k d k x k = +

El control ficticio
2
( ) x k

en (21) se define de tal forma que elimine la dinmica
pasada e introduzca la accin de control y el siguiente bloque, queda de la forma:
1
2 2 1 1 1 2
( ) ( ( ) ( )) (22)
c
x k x B k z k z k

= + +

Con
1
0 k > y
1 1
1 1 1 1
( )
T T
B B B B

=

Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
37



donde
2
c
x se obtiene cuando la dinmica
1
( ) z k es igual a cero:
1
2 1 1 1
( )
c
x B f d

= +
se sustituye en el control ficticio y se tiene que:

1
2 1 1 1 1 1 2
( ) ( ( ) ( ) ( )) x k B f d k k z k z k

= +
despejando
2
z :

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
2
z

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 mtodo 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 diseo del Block Control es la seleccin de la ley de control
por modos deslizantes, tomando ( ) 0
n
z k =

como el objetivo del control. La
condicin para que se cumpla esto con xito es equivalente a garantizar estabilidad
en la superficie
n
z , descrita en el ltimo bloque del sistema (23), por lo que se
propone una funcin candidata de Lyapunov:

1
( ) ( ) ( )
2
T
r r
V k z k z k = (24)
( ) ( 1) ( ) V k V k V k = + (25)

38 Block Control



Para garantizar la estabilidad a travs de este mtodo es necesario que ( ) V k sea
negativa definida o negativa semi-definida. Por lo que se obtiene:

( )
1
( 1) ( 1) ( ) ( ) ( 1)
2
T T
r r r r
V k z k z k z k z k + = + + +

con ( 1) ( ) ( ) ( 1)
T T
r r r r
z k z k z k z k + = +
Desarrollando la ecuacin se tiene:
( )
( )
1
( 1) ( ) ( 1) ( ) ( 1)
2
1
( 1) 2( ( ) ( 1))
2
T T
r r r r
T
r r
V k z k z k z k z k
V k z k z k
+ = + + +
+ = +

( 1) ( ) ( 1)
T
r r
V k z k z k + = + (26)
Sustituyendo (21) en (26) y desarrollando se tiene:

( 1) ( ) ( ) ( )
T
r r r r
V k z k f B u k d k ( + = + +


( 1) ( ) ( ) ( ) ( )
T T
r r r r r
V k z k f d k z k B u k ( ( + = + +

(27)
Sustituyendo (24) y (27) en (25) se tiene:
1
( ) ( ) ( ) ( ) ( ) ( ) ( )
2
T T T
r r r r r r r
V 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
( )
n
u U s i gn z = (29)
con
1
0, ,
T T T
o r r r r r r
U z B z z z B

> = =

donde
1
( )
T
r r r
z z sign z =

1 2
r r
z z

( )
1
0
2
2
1
( )
2
T
r r r r r r
V k z U B f d z z

(
+



Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
39



Es negativa definida cuando:
( )
1
0
2
r r r
B f d U

+ <
3.2.1 Ejemplo: Sistema numrico
El siguiente ejemplo es numrico, su estructura se encuentra ya en una forma
controlable a bloques, esto se realiz a propsito para fines prcticos, el fin de
control es seguir una seal deseada a pesar de perturbacin introducidos al sistema,
el control se disea 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
2
3 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 estn
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 funcin:

( ) 2sin(0.15 ) 4cos(0.1 ) 4
d
y k T T = +

Se selecciona como primer bloque:
1 1
( ) ( ) ( )
d
z k x k y k = (31)
Se obtiene el adelanto de
1
z 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)
d
f x k x k B d y k = = = +




40 Block Control



Se selecciona el control ficticio y realizando el mismo procedimiento se tiene:
1
2 2 1 1 1 2
( ) ( ( ) ( ))
c
x k x B k z k z k

= + +

Con
1
0 k > , donde
2
c
x se obtiene cuando la dinmica
1
( ) z k es igual a cero:
1
2 1 1 1
( )
c
x B f d

= +
se sustituye en el control ficticio y se tiene que:

1
2 1 1 1 1 1 2
( ) ( ( ) ( ) ( )) x k B f d k k z k z k

= +
despejando
2
z :

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

Se obtiene el adelanto de
2
z 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
( )
2
3 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)


Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
41



La seal 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 seal u igual a 500.


Figura 19. Comportamiento del ejemplo numrico.
La seal
d
y la cual
1
x tiene que seguir se muestra en la figura 20.

Figura 20. Seal deseada para el seguimiento de x
1
.
0 0.1 0.2 0.3 0.4 0.5
0
5
10
x
1
A
m
p
l
i
t
u
d
Tiempo(s)
0 0.1 0.2 0.3 0.4 0.5
0
10
20
30
x
2
A
m
p
l
i
t
u
d
Tiempo(s)
0 0.1 0.2 0.3 0.4 0.5
0
20
40
x
3
A
m
p
l
i
t
u
d
Tiempo(s)
0 50 100 150
-10
-8
-6
-4
-2
0
2
y
d
A
m
p
l
i
t
u
d
Tiempo(s)
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 seales de referencia y de
1
x
sobre montadas, el error de seguimiento se encuentra por debajo del 1% de la seal
y la tercera figura de arriba abajo es la seal de control introducida al sistema.

Figura 21. Seguimiento de trayectoria de un ejemplo numrico 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
3
x

se encuentra con mucha oscilacin, esto es debido a la
seal de control, ya que est diseado en base a modos deslizantes.
Se agregaron las perturbaciones
1 2 3
, , del sistema y el resultado de aplicar la
misma seal 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 acadmico 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 podra
realizar la accin de control al conmutar entre el mximo y mnimo.
Las seales de control aplicadas al ejemplo contienen cambios bruscos del mximo
y mnimo valor de entrada, lo cual en un sistema real podra ocasionar muchos
0 50 100 150
-10
-5
0
5
Segumiento del estado x1
tiempo(s)
M
a
g
n
i
t
u
d


0 50 100 150
-0.01
-0.005
0
0.005
0.01
Error de segumiento del estado x1
tiempo(s)
M
a
g
n
i
t
u
d
35 35.1 35.2 35.3 35.4 35.5 35.6 35.7 35.8 35.9
-500
0
500
Seal de control
tiempo(s)
M
a
g
n
i
t
u
d
Referencia
Estado x1
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
43



problemas dependiendo de la resistencia del mismo o simplemente no podra
ejecutar esta seal de control.

Figura 22. Estado del sistema numrico con perturbaciones y aplicando Block Control.

Figura 23. Seguimiento de trayectoria tomando en cuenta perturbaciones.
0 50 100 150
-10
-5
0
5
x
1
A
m
p
l
i
t
u
d
Tiempo(s)
0 50 100 150
-2
-1
0
1
2
x
2
A
m
p
l
i
t
u
d
Tiempo(s)
0 50 100 150
-20
-10
0
10
20
x
3
A
m
p
l
i
t
u
d
Tiempo(s)
0 50 100 150
-15
-10
-5
0
5
Segumiento del estado x1
tiempo(s)
M
a
g
n
i
t
u
d


0 50 100 150
-0.02
-0.01
0
0.01
Error de segumiento del estado x1
tiempo(s)
M
a
g
n
i
t
u
d
35 35.1 35.2 35.3 35.4 35.5 35.6 35.7 35.8 35.9
-500
0
500
Seal de control
tiempo(s)
M
a
g
n
i
t
u
d
Referencia
Estado x1
44 Block Control




Figura 24. Superficie deslizante del ejemplo numrico.
3.3 Block Control utilizando RNA tipo RHONN
Al unir la tcnica de identificacin mediante RNA tipo RHONN explicada en el
captulo 2 y la tcnica de control explicada en este captulo, proporciona ventajas.
Por una parte la tcnica del BC requiere el modelo matemtico del sistema y sus
parmetros, pero en muchos casos el modelo matemtico solo representa una parte
del sistema o en una cierta zona de operacin, en cuestin de los parmetros en
algunos casos es difcil obtenerlos o medirlos. Al realizar esta unin ya no se
requiere ms el modelo y los parmetros del sistema ya que la identificacin los
proporciona, y dado a que le modelo neuronal para realizar la identificacin de un
sistema es propuesto por el diseador, 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
parmetros del sistema, tambin ayuda con el ruido de medicin o ruido en los
estados as tambin en el ruido en la seal de control o entrada al sistema.
3.3.1 Diseo de control neuronal
La metodologa para realizar un control neuronal con RHONN y BC es la
siguiente:
Se disea la red neuronal tipo RHONN la cual ser un modelo de seguimiento del
sistema a controlar, a esto se llamara identificacin del sistema, el modelo neuronal
se propone de tal manera que tenga la forma controlable a bloques.
Se realiza la prueba de identificacin 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
A
m
p
l
i
t
u
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
A
m
p
l
i
t
u
d
Tiempo(s)
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
45



Se disea el control por BC, ya que el modelo esta en forma controlable a bloques
ya no se quiere realizar ninguna otra manipulacin al sistema.
Dada una seal de referencia
d
y , un sistema dinmico con salida
s
y y una red
neuronal RHOON con salida
nn
y

se puede realizar la siguiente desigualdad.
r s nn s r nn
y y y y y y + (37)
Donde
r s
y y es el error del seguimiento del sistema,
nn s
y y es el error entre el
sistema y la identificacin y
r nn
y 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. Minimizacin de
nn s
y y , lo que puede ser logrado con la
identificacin en lnea.
2. Minimizacin de
r nn
y y , el identificador neuronal logra este
objetivo.
3.3.2 Ejemplo: Control neuronal de un satlite en rbita
Del ejemplo en 2.6.1 de identificacin, el modelo neuronal en (13) que identifica al
modelo matemtico 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)
ref
x k f B x x k
x k f B u
+ = + +
+ = +
(39)
Con
1 1 2
1 2
3 3 4
( ) ( ) ( )
( ) , ( )
( ) ( ) ( )
d
d
x k x k x k
x k x k
x k x k x k
( (
= =
( (


% %
% %





46 Block Control



Aplicando la transformacin de acuerdo a la tcnica 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 seal de control en (41) al sistema en (12), con la suposicin que no se
conocen los parmetros ni el modelo matemtico del sistema solo se tiene medicin
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 identificacin 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 seales 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 seales.


Figura 25. Seguimiento de trayectoria de un satlite en rbita.
0 10 20 30 40 50
90
95
100
105
110
Seguimiento de la distancia entre el planeta tierra y el satlite
tiempo (s)
D
i
s
t
a
n
c
i
a

e
n

(
K
m
)


0 10 20 30 40 50
-0.2
-0.1
0
0.1
0.2
Seguimiento del ngulo del satlite
tiempo (s)
D
i
s
t
a
n
c
i
a

e
n

(
m
)


x
1
x
d
1
x
3
x
d
2
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
47




Figura 26. Errores de seguimiento de un satlite en rbita.

3.4 Conclusin del captulo
La tcnica de Block Control contiene una metodologa que preestablecida para
disear un control a cualquier sistema que cumpla con sus requerimientos, pero
estos requerimiento pueden ser un poco exigentes por lo que al realizar la
identificacin 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
-Pitgoras

0 10 20 30 40 50
-0.2
-0.1
0
0.1
0.2
Error de seguimiento de la distancia entre el planeta y el satlite
tiempo (s)
D
i
s
t
a
n
c
i
a

e
n

(
K
m
)
0 10 20 30 40 50
-6
-4
-2
0
2
4
6
x 10
-4
Error de seguimiento del agulo del satlite
tiempo (s)
D
i
s
t
a
n
c
i
a

e
n

(
m
)
48 Block Control




Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
49





Captulo 4

Diseo de Control Basado en
Identificacin Neuronal para el VGA
El VGA como ya antes se menciono en el captulo 1, es un sistema no lineal que
contiene restricciones no holonmicas. 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
identificacin neuronal y por otro la tcnica de control.
4.1 Modelo matemtico del VGA usado en simulacin
El modelo matemtico utilizado para las pruebas en simulacin 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
vehculo 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 ms flexible.

Figura 27. VGA tipo TMRW en el plano xy para el modelo matemtico generalizado.

50 Diseo de Control Basado en Identificacin Neuronal para el VGA



Considerando el siguiente modelo de robot mvil no holonmico que est sujeto a m
restricciones:

( ) ( , ) ( ) ( ) (42)
T
M q q C q q q B q A q + = + && & &


Donde
n
q son las coordenadas generalizadas,
r
es el vector de entradas,
m
es el vector de restricciones de fuerzas, ( )
nxn
M q

es la matriz de fuerzas
inerciales asimtrica y definida positiva, ( , )
nxn
C q q &

es la matriz de fuerzas
centrifugas y coriolis, ( )
nxr
B q

es la matriz de transformacin de entrada y
( )
mxn
A 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 0 0 0 0 0 2 cos
0 0 0 0 0 0 2 sin
( , ) ( ) 0 0 0 0 0 0 0
1 0 0 0 0 0 0
0 1 0 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
= +
= + + +

Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
51



i
d

Las coordenadas generalizadas son { } , , , ,


d i
q x y = donde:

x es la posicin en el eje x del centro de masa del robot
y es la posicin en el eje y del centro de masa del robot
es el ngulo de orientacin de la parte frontal del robot
es la posicin angular de la rueda izquierda
es la posicin angular de la rueda derecha

y sus parmetros 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
m
c
: masa del vehculo, plataforma y electrnica en general
m
w
: 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 cinemticas son expresadas como:
( ) 0 A q q = & (43)
Con respecto a la dinmica del robot mvil en (42), las siguientes propiedades son
conocidas.
Propiedad 1. ( ) M q

es una matriz simtrica y definida positiva.
Propiedad 2.
0
0
l
p

es un vector de parmetros que satisface la siguiente
ecuacin:
0 0
( ) ( , ) ( , , , ) M q v C q q v Y q q v v p + = & & & & (44)
Donde
n
v y
0
Y son una matriz
0
n l cuyos elementos son funciones conocidas.
Propiedad 3. La matriz 2 M C
&
es antisimtrica y que cumple:
( 2 ) 0,
T n
x M C x x =
&
(45)
52 Diseo de Control Basado en Identificacin Neuronal para el VGA



El robot mvil no holonmico 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 2
2
2
11 22 2
2 2 2 2
12 21 2
2
4 4
2
4
T
c c m
c
w w
c c c m
M M
M T MT
M M
r m d I I
m r
M M I m r
b
m r b r m d I I
M M
b
(
= =
(

+ +
= = + + +
+ +
= =

( )
( ) ( )
2 2
2
2
2 2
( )
2
2 2
w w c w
T
w
w c
bd m r dr m m dm r
b b
V T MT CT
dm r r b
dr m m
b b

( +

(
(
= + =
(


&
&
&

1 0
0 1
T
B T B
(
= =
(


( )
d
i
v
v t
v
(
=
(



d
v

es la velocidad angular de la rueda derecha
i
v

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 transformacin de coordenadas de (42) a (47) se explica a
continuacin.
El sistema (42) se multiplica por ( )
T
T 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



+ = +
+ = +
+ = +
&& & &
&& & &
&& & &

Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
53



Dado a que:
( ) ( ) 0
T T
T q A q =
El sistema queda como:

( ) ( ) ( ) ( , ) ( ) ( )
T T T
T 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

= +
( + + =

+ + =
+ +
&
&& &
&
& &
&
& &
&
& & ) ( ) ( ) ( )
T
v t T q B q ( =


Por fin el sistema en (42) queda de la forma (47)
El sistema en (46) representa la cinemtica del robot mvil.
Las siguientes propiedades son derivadas de las propiedades mencionadas con
anterioridad, Propiedades 1 3.
Propiedad 1: ( ) M q

es una matriz simtrica y definida positiva.
Propiedad 2:
1
1
l
p

es un vector de parmetros que satisface la siguiente
ecuacin:
1 1
( ) ( , ) ( , , , ) M q v V q q v Y q q v v p + = & & & & (49)
Donde
1
Y es una matriz ( )
1
n m l cuyos elementos son funciones conocidas.
Propiedad 3: La matriz 2 M V
&
es antisimtrica.
En (49) se encuentra solo los parmetros del modelo dinmico. Los parmetros del
modelo cinemtico son incluidos en
1
Y . Suponiendo la estructura de los parmetros
del modelo cinemtico.
Suposicin 1: Algunos parmetros de la parte cinemtica aparecen del robot mvil
aparecen en la siguiente ecuacin.
54 Diseo de Control Basado en Identificacin Neuronal para el VGA




0
1 1 1
( , ) ( , ) ( ) ( )
i
l n m n m
i i i i ij ij i
i i j
q T q v t q v q q v

= = =
| |
= = = +
|
\

&
(50)
Donde [ ]
1
, ,
n m


= K ,
1
, ,
i
i i il
( =

K , 1 i n m son vectores paramtricos y
( )
ij
q , 1 i n m , 0
i
j l son vectores que sus elementos son funciones
conocidas.
Adems, la siguiente Propiedad 2 se satisface.
Propiedad 2: El vector paramtrico
l
p contiene tanto la parte dinmica como
la cinemtica del sistema y satisface:
( ) ( , ) ( , , , ) M q v V q q v Y q q v v p + = & & & & (51)
La matriz de transformacin 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
r
c
b
=
Este es el modelo que de aqu en adelante ser utilizado, cabe mencionar que los
datos utilizados en simulacin son diferentes a los del VGA-Cenidet debido a que no
se tiene los elementos para obtenerlos.
Para poder aplicar las tcnicas ya mencionadas en los captulos 2 y 3, es necesario
adecuar el modelo en (47), el cual est en una formulacin Euler Lagrange, de tal
manera que se encuentre en ecuaciones diferenciales.
Se toma la ecuacin 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)

Control Embebido de un Vehculo Guiado Automticamente 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 d
v




= + +
= + +
=
=
=
(
+ + + + +

=
&
&
&
&
&
&
&
( )
( )( )
( )( )
( )( )
( ) ( ) ( )
( )
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 m
v
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 parmetros que se toman para
realizar las pruebas en simulacin.
Tabla 6. Valores de los parmetros del VGA usados en la simulacin.
Parmetro Valor
b 0.75 m
d 0.30 m
a 2.00 m
r 0.15 m
m
c
30.00 kg
m
w
1.00 kg
I
c
15.625 kg m
2
56 Diseo de Control Basado en Identificacin Neuronal para el VGA




La variable es sustituida por una ecuacin algebraica, por lo que no se toma como
parte del estado.
( ) ( )
d i d i
c v v c = =
&

Se sustituyeron los valores de la tabla 6 en el modelo en (53) y una discretizacin 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 d
d d i
k k
v k k k k k
k k Tsv k
k k Tsv k
k k k k
v 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 d
d i
i d i d
i i i d
i d i
k
k k k k
v k k
Ts
k k k k
v k v k Ts v k k
Ts
k k k

( | |
+ +
| (
\
| |
+ = + +
|
\

+
1) ( 1))
( ) 2.6386 ( )
d
d i
k
v 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 simulacin y tambin se considera para el diseo 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
m
P .
Se proponen diversas formas de trayectorias con el fin de ver el comportamiento del
VGA controlado.
I
w
0.005 kg m
2
I
m
0.0025 kg m
2
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
57



Todas las trayectorias propuestas tienen un tiempo de duracin de 60 segundos y
son de circuito cerradas, es decir que siempre despus 60 segundos se termina el
circuito e inicia de nuevo.

Las trayectorias a usar son las siguientes:
1. Trayectoria Hlice

Figura 28. Trayectoria Hlice en el plano xy.
2. Trayectoria Crculo

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)
E
j
e

Y
(
m
e
t
r
o
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)
E
j
e

Y
(
m
e
t
r
o
s
)
58 Diseo de Control Basado en Identificacin 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 d
k 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.9
Trayectoria Cuadrado
Eje X(metros)
E
j
e

Y
(
m
e
t
r
o
s
)
Control Embebido de un Vehculo Guiado Automticamente 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 d T
x
i d i d
i d i d T
y
Ts k k k k
B
Ts k k k k
Ts k k k k
B
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 operacin 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 B
f B
f B
f B
f B
f B
f B
u

( (
( (
( (
= =
( (
( (
( (

( (
= =
( (
( (

(
=
(



Se realiza la transformacin del sistema de acuerdo al mtodo de BC explicada en el
captulo 3 y se tiene que:
1 1
2 1 1 1 2 1 1 1
( ) ( ) ( )
( ) ( ( )) ( 1)
ref
z k x k x k
z k f x k B x d k k z
=
= + +
(57)
Donde:
60 Diseo de Control Basado en Identificacin Neuronal para el VGA



1
( )
( )
( )
0
0
( 1) ( 2)
d
d
ref
ref
x k
y k
x k
d k x k
(
(
(
=
(
(

+ = +

La seal de control u(k), se obtiene con la siguiente ecuacin :
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 seccin 4.3 y los resultados se muestran en la seccin 4.7.






4.4 Identificacin neuronal del VGA
Para realizar la identificacin neuronal de acuerdo a la metodologa planteada en el
captulo 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 wv w v
y k k S y k k S k k S k wv 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 i
v k S k w w + +

(59)
Se realiza la identificacin del modelo en (54) con la red neuronal en (59) en lazo
abierto, con valores de

constantes y los resultados fueron los siguientes:
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
61




Figura 31. Identificacin del VGA en lazo abierto.
0 5 10 15
-20
0
20
40
Posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 5 10 15
-20
0
20
Posicin en el eje y
tiempo(s)
m
e
t
r
o
s
0 5 10 15
-500
0
500
1000
Posicin angular de la rueda derecha
tiempo(s)
r
a
d
0 5 10 15
0
500
1000
Posicin angular de la rueda izquierda
tiempo(s)
r
a
d
0 5 10 15
-50
0
50
100
Velocidad angular de la rueda derecha
tiempo(s)
r
a
d
/
s
0 5 10 15
0
50
100
Velocidad angular de la rueda izquierda
tiempo(s)
r
a
d
/
s


Seales VGA
Identificador RHONN
62 Diseo de Control Basado en Identificacin Neuronal para el VGA




Figura 32. Errores de identificacin del VGA con RNA tipo RHONN.

Figura 33. Pesos sinpticos del identificador neuronal del VGA.
En la figura 31 se muestra el estado del VGA y su identificacin y como se observa
las seales se encuentran montadas, esto quiere decir que se realiza una buena
identificacin, por otra parte en la figura 32 se muestran los errores de stas
identificaciones. Los errores de la posicin en x, la posicin en y, la velocidad
0 5 10 15
-0.2
0
0.2
0.4
0.6
Error en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 5 10 15
-1
-0.5
0
0.5
Error en posicin en el eje y
tiempo(s)
m
e
t
r
o
s
0 5 10 15
-0.2
0
0.2
0.4
0.6
Error en posicin angular de la rueda derecha
tiempo(s)
r
a
d
0 5 10 15
-0.1
0
0.1
0.2
0.3
Error en posicin angular de la rueda izquierda
tiempo(s)
r
a
d
0 5 10 15
-0.6
-0.4
-0.2
0
0.2
Error en velocidad angular de la rueda derecha
tiempo(s)
r
a
d
/
s
0 5 10 15
-1
-0.5
0
0.5
Error en velocidad angular de la rueda izquierda
tiempo(s)
r
a
d
/
s
0 5 10 15
-20
-10
0
10
20
30
40
50
60
70
Pesos sinpticos del identificador del VGA
tiempo (s)
a
m
p
l
i
t
u
d
Control Embebido de un Vehculo Guiado Automticamente 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 seales, los errores de las
posiciones angulares de las ruedas aumentan de acuerdo a como su seal lo hace sin
embargo cuando la seal se encuentra alrededor de 500 radianes tiene un error de
aproximadamente 0.2 radianes lo que significa que el error es muy pequeo por
debajo de 1%.
En la figura 33 se muestran los pesos sinpticos 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 Identificacin neuronal del VGA Cenidet en lazo cerrado
Una vez obtenida la red neuronal funcionando en simulacin se procedi a realizar
una prueba con el VGA Cenidet, se agrego la programacin de la RHONN en el
dSpace (en el captulo 5 se explica su funcin) en conjunto del control que en
[Camarena'09] presenta.
En la figura 34 se muestra la identificacin realizada en lnea con el VGA Cenidet,
la posicin en x y la posicin en y se encuentran montadas las seales del VGA
Cenidet con las seales de la identificacin, por otra parte las velocidades angulares
de la ruedas contienen muchos cambios rpido en las seales y la identificacin no es
capaz de seguirle al 100% sin embargo la forma de onda que lleva tanto las seales
del VGA Cenidet como las seales del identificador neuronal son iguales.

0 10 20 30 40 50 60 70
-1
0
1
Posicin en el eje x
m
e
t
r
o
s
0 10 20 30 40 50 60 70
-1
0
1
2
Posicin en el eje y
m
e
t
r
o
s
0 10 20 30 40 50 60 70
-5
0
5
Velocidad en la llanta derecha
r
a
d
/
s
0 10 20 30 40 50 60 70
-2
0
2
4
Velocidad en la llanta izquierda
r
a
d
/
s
tiempo (s)


VGA-Cenidet
RHONN
64 Diseo de Control Basado en Identificacin Neuronal para el VGA



Figura 34. Identificacin del VGA Cenidet con una RNA tipo RHONN.
En la figura 35 se muestran los errores de identificacin 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 seales son iguales.

Figura 35. Errores de identificacin del VGA Cenidet en lazo cerrado.
La identificacin neuronal del VGA Cenidet fue buena, a pesar de que el modelo
en (54) y el VGA Cenidet contienen diferentes parmetros el red neuronal en (59)
pudo realizar la identificacin adecuada.
4.6 Control del VGA mediante BC con uso de RNA tipo RHONN
Se disea 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.01
Error de identificacin en posicin en el eje x
m
e
t
r
o
s
0 10 20 30 40 50 60 70
-5
0
5
x 10
-3
Error de identificacin en posicin en el eje y
m
e
t
r
o
s
0 10 20 30 40 50 60 70
-4
-2
0
2
Error de identificacin en velocidad en la llanta derecha
r
a
d
/
s
0 10 20 30 40 50 60 70
-1
0
1
Error de identificacin en velocidad en la llanta izquierda
r
a
d
/
s
tiempo (s)
Control Embebido de un Vehculo Guiado Automticamente 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
v
v
v




+ +
=
= + +
+ +
=

%
%
%
%
%
%
(
(


El sistema en (60) se puede dividir en dos bloques para realizar el diseo 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:
66 Diseo de Control Basado en Identificacin Neuronal para el VGA



1 1
2 2
,
, ,
d d
i i
d d
i i
x x
y y
v v
d
i v v
f B
f B
f B
f B
f B
f B
f B u
f B

( (
( (
( (
= =
( (
( (
( (

( (
(
= = =
( (
(
( (

% %
% %
% %
% %
% %
% %



Se selecciona el primer bloque de la transformacin como:
1 1
( ) ( ) ( )
ref
z k x k x k =
(62)
Donde ( )
ref
x k es la trayectoria a seguir. Se aplica un adelanto a (62) y se tiene que:

1 1
( 1) ( 1) ( 1)
ref
z k x k x k + = + +
(63)
Sustituyendo
1
( 1) x k + en (63) si tiene:
1 1 1 1 2
( 1) ( ( )) ( 1)
ref
z k f x k B x x k + = + +
(64)
Se selecciona el control ficticio se tiene:
1
2 2 1 1 1 2
( ) ( ( ) ( ))
c
x k x B k z k z k

= + +

Con
1
0 k > , donde
2
c
x se obtiene cuando la dinmica
1
( ) z k es igual a cero:
1
2 1 1 1
( ( ( )) ( 1))
c
ref
x B f x k x k

= + +
se sustituye en el control ficticio y se tiene que:

1
2 1 1 1 1 1 2
( ) ( ( ( )) ( 1) ( ) ( ))
ref
x k B f x k x k k z k z k

= + +
despejando
2
z :

2 1 1 1 2 1 1
( ) ( ( )) ( ) ( 1) ( )
ref
z k f x k B x k x k k z k = + + +

Donde
2
z

ya es la superficie de deslizamiento, se propone la seal de control de la
siguiente manera:
Control Embebido de un Vehculo Guiado Automticamente 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 seccin
4.7.

4.7 Resultados
En esta seccin se mostrar el seguimiento del VGA a las trayectorias en la posicin
x y posicin y as como sus errores y la contabilizacin de estos, todo esto en
simulacin, por cada trayectoria y cada tipo de control diseado, tambin se
presenta el seguimiento del VGA con el control propuesto en [Camarena'09] para
fines de comparacin.
Para poder hacer dicha comparacin se obtuvieron los ndices de desempeo
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 Hlice
Tabla 7. ndices de desempeo para el VGA con BC siguiendo una trayectoria Hlice.
ndice de desempeo Valor
68 Diseo de Control Basado en Identificacin Neuronal para el VGA








Figura 36. Seguimiento del VGA a la trayectoria Hlice por BC.
0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimietno en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s


VGA
Referencia
0 10 20 30 40 50 60
-0.015
-0.01
-0.005
0
0.005
0.01
0.015
Error de seguimiento en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-0.015
-0.01
-0.005
0
0.005
0.01
0.015
0.02
Error de seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s
IAE 0.030
ISE 8.2551e-006
ITAE 0.0234
ITSE 14.8595
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
69




Figura 37. Seguimiento del VGA a la trayectoria Hlice por BC en el plano xy.
Trayectoria Crculo

Figura 38. Seguimiento del VGA a la trayectoria Crculo por BC.
-1.5 -1 -0.5 0 0.5 1 1.5
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimiento en plano XY
eje x
e
j
e

y


VGA
Referencia
0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimietno en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
Seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s


VGA
Referencia
0 10 20 30 40 50 60
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
x 10
-3
Error de seguimiento en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-2
-1
0
1
2
3
4
5
x 10
-3
Error de seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s
70 Diseo de Control Basado en Identificacin Neuronal para el VGA




Figura 39. Seguimiento del VGA a la trayectoria Crculo por BC en el plano xy.


Tabla 8. ndices de desempeo del VGA con BC siguiendo una trayectoria Crculo.





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
e
j
e

y


VGA
Referencia
ndice de desempeo Valor
IAE 9.5749e-004
ISE 5.0967e-007
ITAE 0.0196
ITSE 0.9174
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
71




Figura 40. Seguimiento del VGA a una trayectoria Cuadrado con BC.
Tabla 9. ndices de desempeo 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
1
Seguimietno en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-0.2
0
0.2
0.4
0.6
0.8
1
Seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s


VGA
Referencia
0 10 20 30 40 50 60
-3
-2
-1
0
1
2
x 10
-3
Error de seguimiento en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-3
-2
-1
0
1
2
3
x 10
-3
Error de seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
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
e
j
e

y

ndice de desempeo Valor
IAE 0.0013
ISE 8.1642e-007
ITAE 0.0361
ITSE 1.4696
72 Diseo de Control Basado en Identificacin Neuronal para el VGA



4.7.2 Block Control con identificador neuronal tipo RHONN
Trayectoria Hlice

Figura 42. Seguimiento del VGA a una trayectoria Hlice con BC con identificador neuronal
tipo RHONN.


0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimietno en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s


0 10 20 30 40 50 60
-0.015
-0.01
-0.005
0
0.005
0.01
0.015
Error de seguimiento en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-0.02
-0.01
0
0.01
0.02
Error de seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s
VGA
Referencia
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
73




Figura 43.Seguimiento del VGA a una trayectoria Hlice con BC con identificador neuronal
tipo RHONN en el plano xy.
Tabla 10. ndices de desempeo del VGA con BC con identificador neuronal tipo RHONN
siguiendo una trayectoria Hlice.





Trayectoria Crculo
Tabla 11.ndices de desempeo del VGA con BC con identificador neuronal tipo RHONN
siguiendo una trayectoria Crculo.

-1.5 -1 -0.5 0 0.5 1 1.5
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimiento en plano XY
eje x
e
j
e

y


VGA
Referencia
ndice de desempeo Valor
IAE 0.0157
ISE 1.6488e-005
ITAE 0.3681
ITSE 29.6787
ndice de desempeo Valor
IAE 0.0090
ISE 2.2721e-006
ITAE 0.3026
ITSE 4.0899
74 Diseo de Control Basado en Identificacin Neuronal para el VGA




Figura 44. Seguimiento del VGA a una trayectoria Crculo con BC con identificador
neuronal tipo RHONN.

Figura 45. Seguimiento del VGA a una trayectoria Crculo 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.5
Seguimietno en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s


0 10 20 30 40 50 60
-3
-2
-1
0
1
2
x 10
-3
Error de seguimiento en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-3
-2
-1
0
1
2
3
4
x 10
-3
Error de seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s
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
e
j
e

y


VGA
Referencia
Control Embebido de un Vehculo Guiado Automticamente 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
1
Seguimiento en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-0.2
0
0.2
0.4
0.6
0.8
1
Seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
s


0 10 20 30 40 50 60
-3
-2
-1
0
1
2
x 10
-3
Error de seguimiento en posicin en el eje x
tiempo(s)
m
e
t
r
o
s
0 10 20 30 40 50 60
-2
-1
0
1
2
3
x 10
-3
Error de seguimiento en posicin en el eje y
tiempo(s)
m
e
t
r
o
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
Seguimiento en plano XY
eje x
e
j
e

y


VGA
Referencia
76 Diseo de Control Basado en Identificacin Neuronal para el VGA



Tabla 12. ndices de desempeo del VGA con BC con identificador neuronal tipo RHONN
siguiendo una trayectoria Cuadrado.





4.7.3 Control propuesto en [Camarena09]
Trayectoria Hlice

Figura 48. Seguimiento del VGA a una trayectoria Hlice con control propuesto en el trabajo
de [Camarena09].
Tabla 13. ndices de desempeo del VGA con el control propuesto en [Camarena09]
siguiendo una trayectoria Hlice.

0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
1.5
metros
T
i
e
m
p
o

(
s
)
Seguimiento en posicin en el eje x


VGA
Referencia
0 10 20 30 40 50 60
-1
-0.5
0
0.5
1
Seguimiento en posicin en el eje y
metros
T
i
e
m
p
o

(
s
)
0 10 20 30 40 50 60
-0.1
0
0.1
0.2
0.3
0.4
Error de seguimiento en posicin en el eje x
metros
T
i
e
m
p
o

(
s
)
0 10 20 30 40 50 60
-5
0
5
10
15
x 10
-3
Error de seguimiento en posicin en el eje y
metros
T
i
e
m
p
o

(
s
)
ndice de desempeo Valor
IAE 0.0062
ISE 1.4442e-006
ITAE 0.2068
ITSE 2.5996
ndice de desempeo Valor
IAE 0.2941
ISE 0.0239
ITAE 3.3140
ITSE 4.2997e+004
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
77




Figura 49. Seguimiento del VGA a una trayectoria Hlice con control propuesto en el trabajo
de [Camarena09] en el plano xy.
Trayectoria Crculo

Figura 50. Seguimiento del VGA a una trayectoria Crculo con control propuesto en el
trabajo de [Camarena09].
-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
Posicin x
P
o
s
i
c
i

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
T
i
e
m
p
o

(
s
)
Seguimiento en posicin en el eje x


VGA
Referencia
0 10 20 30 40 50 60
-1.5
-1
-0.5
0
0.5
1
1.5
Seguimiento en posicin en el eje y
metros
T
i
e
m
p
o

(
s
)
0 10 20 30 40 50 60
-0.1
0
0.1
0.2
0.3
0.4
Error de seguimiento en posicin en el eje x
metros
T
i
e
m
p
o

(
s
)
0 10 20 30 40 50 60
-2
0
2
4
6
x 10
-3
Error de seguimiento en posicin en el eje y
metros
T
i
e
m
p
o

(
s
)
78 Diseo de Control Basado en Identificacin Neuronal para el VGA




Figura 51. Seguimiento del VGA a una trayectoria Crculo con control propuesto en el
trabajo de [Camarena09] en el plano xy.
Tabla 14. ndices de desempeo del VGA con el control propuesto en [Camarena09]
siguiendo una trayectoria Circulo.





Trayectoria Cuadrado
Tabla 15. . ndices de desempeo del VGA con el control propuesto en [Camarena09]
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
Posicin x
P
o
s
i
c
i

n

y
Seguimiento en el plano XY


VGA
Referencia
ndice de desempeo Valor
IAE 0.1992
ISE 0.0231
ITAE 0.3938
ITSE 4.1506e+004
ndice de desempeo Valor
IAE 0.2104
ISE 0.0233
ITAE 1.5037
ITSE 4.1928e+004
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
79




Figura 52. Seguimiento del VGA a una trayectoria Cuadrado con control propuesto en el
trabajo de [Camarena09].

Figura 53. Seguimiento del VGA a una trayectoria Cuadrado con control propuesto en el
trabajo de [Camarena09] en el plano xy.
0 10 20 30 40 50 60
-0.2
0
0.2
0.4
0.6
0.8
1
metros
T
i
e
m
p
o

(
s
)
Seguimiento en posicin en el eje x


0 10 20 30 40 50 60
-0.2
0
0.2
0.4
0.6
0.8
1
Seguimiento en posicin en el eje y
metros
T
i
e
m
p
o

(
s
)
0 10 20 30 40 50 60
-0.1
0
0.1
0.2
0.3
0.4
Error de seguimiento en posicin en el eje x
metros
T
i
e
m
p
o

(
s
)
0 10 20 30 40 50 60
-3
-2
-1
0
1
2
3
x 10
-3
Error de seguimiento en posicin en el eje y
metros
T
i
e
m
p
o

(
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
Posicin x
P
o
s
i
c
i

n

y
Seguimiento en el plano XY


VGA
Referencia
80 Diseo de Control Basado en Identificacin 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 desempeo 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
pequeas a diferencia del control propuesto en [Camarena'09].
Tabla 16. ndices de desempeo de los controles utilizados sobre el VGA con diversas
trayectorias.
ndic
e de
des.
Block Control BC con Identificador RHONN [Camarena09]
o o o
IAE 0.030
9.5749
e-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 desempeo 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 ms abajo que los dems,
sin embargo al poder ver las grficas 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
Crculo
Cuadrado
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
81



Por otra parte el control en [Camarena'09] tiene un problema en cuestin del ngulo
de inicio de la orientacin del robot, esto es debido a las ecuaciones del sistema
cinemtico, lo que hace que el robot pierda la referencia en los primeros segundos de
la trayectoria, a pesar de indicar el punto de partida.
Fsicamente el robot acelera y pierde la trayectoria, sin embargo si se detiene
durante unos segundos y despus se suelta puede realizar el seguimiento sin
problemas.





















82 Diseo de Control Basado en Identificacin Neuronal para el VGA


































A veces, cuesta mucho ms elimnar
un solo defecto que adquirir cien virtudes.
-Jean de la Bruyre
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
83





Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
84





Captulo 5

Implementacin en el VGA Cenidet
El objetivo de este captulo es mostrar el diseo electrnico del sistema embebido
as como tambin la programacin de los algoritmos propuestos en este trabajo de
tesis. El sistema embebido se incluy en el prototipo VGA Cenidet como parte de
su electrnica, 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 electrnicos que
trabajan para un mismo fin que se encuentra integrado en un equipo, sistema,
aplicacin o instrumento, comnmente las tareas que realizan estos tipos de
sistemas son muy especificas y frecuentemente son utilizados en aplicaciones en
tiempo real. Adems este sistema suele ser compacto, por lo cual es fcil
introducirlo en un sistema robtico autnomo. Para este caso particular el sistema
embebido se disea basndose en una tarjeta de evaluacin 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 DSPs (Digital Signal
Processor, por sus siglas en ingls).
La metodologa utilizada en esta seccin fue la siguiente: se disearon los elementos
electrnicos como acondicionadores de seales para la conexin 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 electrnicas del VGA Cenidet
5.1.1 Configuracin del VGA Cenidet de acuerdo a [Camarena'09]
El VGA Cenidet fue diseado para que una computadora con una tarjeta dSpace
procese todos los algoritmos de control [Camarena'09], en la figura 55 se muestra
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
85



un diagrama a bloques de cmo fue diseado, donde se muestran las conexiones de
derecha a izquierda:
Se encuentra una computadora que manda y recibe seales de la tarjeta dSpace,
esta tarjeta es un conjunto de DSPs utilizada para el desarrollo de proyectos,
cuenta con una gran gama de conexiones, como lo pueden ser entradas y saldas
digitales y analgicas, salidas de PWM (Pulse Width Modulator, por sus siglas en
ingls), puertos de comunicacin 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 seales del VGA Cenidet e internamente el robot
est conectado para que las seales que recibe del dSpace se dirijan a las ruedas y al
movimiento de las ruedas los encoders conectados directamente a las ruedas
manden las seales hacia el dSpace.

Figura 55. Diagrama a bloques de la estructura del VGA Cenidet e interaccin de est con
el dSpace de acuerdo a [Camarena'09].
Las conexiones entre el VGA Cenidet y el dSpce se realizan a travs de un cable
con terminales DB25, en el Anexo B se muestra la configuracin de conexin.
5.1.2 Configuracin 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 diseado en [Camarena'09],
internamente se pueden ver los bloques de cada la rueda, los cuales se encuentra
conectada mecnicamente con un motor y un encoder. Se puede ver tambin el
modulo de conexiones, un bloque que representa toda la electrnica de potencia y
86 Implementacin en el VGA Cenidet



las interconexiones entre los bloques. En la parte central se muestran solo los
elementos utilizados de la tarjeta de evaluacin 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 implementacin.
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 programacin como por ejemplo, cambios de la
trayectoria a seguir, cambio valores de los controladores.
5.2 Implementacin 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 seales de control (PWM) y las direcciones de los motores, estas son
generadas para saber si el motor tiene que moverse hacia adelante o hacia atrs,
esto es debido a que solo con el PWM no se puede realizar cambios de direccin en
un motor. Por otra parte estn las entradas de los encoders de los motores.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
87




Figura 57. Seales que usa el dSpace para el control del VGA - Cenidet.
En la figura 58 se muestran las seales 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 direccin
por rueda, dependiendo el sentido de giro de esta, la tabla 17 se muestran cada
combinacin de bits lo que significa, estos bits son dirigidos a un circuito de
proteccin el cual es un circuito lgico AND que tiene la funcin de no dejar pasar
alguna seal de control si existe un problema con los bits de direcciones, despus de
pasar por esta proteccin la seal de control se introduce en un circuito de
conocido como Puente H, el cual se encarga de dar la potencia necesaria a la
seal para que el motor pueda tener el mejor desempeo posible.

Figura 58. Seales de entrada en el VGA Cenidet [Camarena'09].
Tabla 17. Acciones del motor de acuerdo a los bits de direccin.
Bits de Direccin
Accin
Bit 1 Bit 2
0 0 Motor Detenido
0 1 Giro hacia adelante
1 0 Giro hacia atrs
1 1 Sin accin
88 Implementacin 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 fotografa de este.
El encoder es un transductor rotativo, que mediante una seal elctrica
(normalmente un pulso o una seal senoidal) indica el ngulo de giro. Si este sensor
rotatorio se conecta mecnicamente con una rueda se puede medir distancias
lineales, velocidades angulares y posicin angular de la rueda.
Las caractersticas bsicas de un encoder ptico son:
Tensin de alimentacin: Indica a que tensin puede trabajar el encoder.
Resolucin: es el nmero de pulsos que da por revolucin.
Tipo de salida: las salidas de los canales pueden ser de varios tipos; TTL,
colector abierto, ttem-pole, etc.
Nmero de canales: suelen ser 1 o 2, ms 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
ingls) que esta siempre se est encendido, colocado enfrente de un sensor ptico, el
cual mientras reciba luz manda una seal de elctrica. 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 despus de una
procesamiento de estas seales manda pulsos a los canales de salida. La frecuencia
de los pulsos es proporcional a la frecuencia de giro del motor.
Control Embebido de un Vehculo Guiado Automticamente 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 direccin del giro.

Figura 61. Pulsos del encoder de acuerdo a la direccin 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 Evaluacin 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 numricas 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 multiplicacin simultanea. Esta caracterstica constituye
la principal diferencia de un DSP y otros tipos de microprocesador.
La Familia dsPic30f60XX estn diseados en arquitectura Harvard, en la cual
existen bloques de memoria fsicamente separados para datos y programa. Cada
90 Implementacin 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 dimensin de palabra que la memoria de
programa. Debido a esto el procesamiento es ms rpido 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 bsicos que componen un dsPIC son:
Conversores en las entradas y salidas
Memoria de datos, memoria de programa.
MACs: multiplicadores y acumuladores.
ALU: Unidad aritmtico-lgica.
Registros.
PLL: Bucles enganchados en fase.
PWM: Mdulos de control de ancho de pulso.
Las especificaciones elctricas del este dsPic son:
Mxima corriente de entrada salida 25 mA.
Voltaje de operacin en tecnologa CMOS 2.5 V a 5.5 V.
Temperatura de operacin hasta 85 C.
Alimentacin -0.3 V a +5.5 V
En la figura 63 se muestra la tarjeta de evaluacin dsPIC Pro 4, la cual contiene
diversos elementos como lo son:
7 puertos de entrada/salida digital, los cuales estn disponibles en pines, as
como tambin con botones y LEDs.
12 puertos de entrada analgica, adems contiene dos resistencias variables
para poder introducir dos seales diferentes analgicas.
Puertos de comunicacin: 2 RS232, 1 RS485, CAN bus y Ethernet.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
91



Un reloj a tiempo real.
Botn de reset.
Programador a travs de USB.
LCD de 2X16.

Figura 63. Tarjeta de evaluacin dsPic Pro 4.
Los elementos utilizados para el sistema embebido son los siguientes:
Se utilizaron las salidas digitales para indicar la direccin de los motores, as como
las seales PWM que en este caso son las seales de control, por otra parte se
utilizaron las entradas analgicas para introducir la velocidad de los motores, las
cuales son proporcionadas por las tarjetas lectores de encoders.
5.2.4 Configuracin 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 caractersticas de las seales 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
comnmente Quadrature Encoder) de motores por lo que se dise un lector de
encoders, as se podr introducir la seal de velocidad de las ruedas del VGA-
Cenidet como un voltaje a un puerto del convertidos analgico-digital.
Para poder realizar el lector de encoder se utiliza un PIC 16f877, con ayuda de la
interrupcin externa que tiene este tipo de PICs, se puede realizar un conteo de
interrupciones. La interrupcin 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 programacin de la interrupcin para el conteo de pulsos.
92 Implementacin 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 direccin para que siempre exista un conteo en
aumento. Se realiza lo siguiente:
Si el bit de direccin 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 accin.

o Si existe flanco de bajada en A
No se activa la interrupcin, no hay aumento o decremento.

Si el bit de direccin 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
accin.
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 interrupcin, 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 informacin, por lo que se diseo
una interrupcin con un timer, se pone un tiempo especifico para realizar esta
interrupcin y una vez hecha se hace una divisin de el valor del conteo entre el
tiempo definido, borrar el contador y poner el resultado de la divisin 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 direccin de giro del
motor. Y por ltimo se coloc un convertidor digital analgico para enviar la
informacin 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 diseada para este
fin.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
93




Figura 64. Diagrama de flujo del lector de encoder.
En la figura 65 se muestra la tarjeta diseada 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.
94 Implementacin 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, tambin cabe mencionar
que se han colocado dos bateras para poder alimentar toda esta nueva electrnica,
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
analgico y por otra parte para tener una separacin sobre las cargas de la batera
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 Programacin de los algoritmos de control e identificacin
neuronal diseados.
5.3.1 Programacin 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 mnimo de muestreo de 10 milisegundos para realizar la
prueba, este tiempo de muestreo no se pudo reducir debido a que Matlab marca
error de compilacin, 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 seales, la procesa
y manda una seal de control, dentro de este tiempo se encuentra el tiempo que
tardan los convertidores analgico digital, el procesamiento del identificador
neuronal, el procesamiento de la ley de control y la creacin de los PWMs.
La tarjeta dSpace es que las seales de entrada y salida se proporcionen o se
obtengan, segn sea el caso de manera paralela, como se muestra en la figura 68,
existen 4 etapas del algoritmo, la primer etapa es la obtencin de las seales de las
velocidades de las ruedas del VGA Cenidet, la segunda etapa es el algoritmo de
identificacin esta parte es la ms pesada computacionalmente de todo el algoritmo,
la tercera etapa es el clculo de la seal de control y la ltima etapa es dar las
seales de control en forma de PWM.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
95




Figura 67. Diagrama de secuencia en el tiempo del programa en el dSpace.
5.3.2 Programacin 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 diseo 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 instruccin. Por lo que se
realiz el anlisis del FKE por ciclo y se obtuvieron las siguientes sumatorias de
forma escalar, lo que ayud a la programacin:
Tomando en cuenta las dimensiones siguientes del FKE mostrado en (11):
, , , , , ,
m m m m
K 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 l
l k
m
n k nk
k
n n n n
m
ln ln l k kn ln
k
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.
96 Implementacin 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 seales de los sensores del VGA, como las
entradas analgicas estn limitadas de 0 a 5 vols, se realiza dentro del programa
una adecuacin de estas seales para poder realizar las operaciones con las seales
reales, despus de tener las seales deseadas se realiza la identificacin RHONN y
una vez tenido los datos de identificacin se procede a la tcnica de control BC, por
ltimo se generan los PWM necesarios para cada motor del VGA de acuerdo a la
seal 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
ms 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 instruccin en un ciclo de
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
97



mquina, en la figura 69 se muestra un diagrama de tiempo donde se puede ver
cmo se desarrolla en el tiempo. El tiempo de muestreo mnimo 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
ms en obtener las seales de los sensores del robot, debido a que el dSpace tiene la
capacidad de manejar los seales 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 aplicacin.
5.4 Pruebas
5.4.1 Pruebas en el dSpace
En la figura 70 se muestra la identificacin del VGA Cenidet a travs del las RNA
tipo RHONN y como se pueden observar las seales de la identificacin se
encuentra montada sobre las seales del VGA, a pesar de los cambios bruscos que
contienen las seales, se pudo identificar correctamente el sistema.

98 Implementacin en el VGA Cenidet






Figura 70. Identificacin 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
ms 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 seal de control
para un tiempo t el VGA Cenidet se encuentra en una posicin en un tiempo t+1,
es por lo que cuando el robot intenta seguir la referencia el algoritmo ha mandado
tarde la seal de control que se necesita.
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
99




Figura 71. Seguimiento de trayectoria de la posicin x y posicin y.

Figura 72.Seguimiento de trayectoria en el plano "xy".
Debido a que las seales de control cambian de manera brusca los motores se
afectan y es por ello que no se realizaron ms pruebas.
Cabe mencionar que las figuras 70, 71 y 72, son datos que el dSpace puede obtener
fcilmente debido a que el procesamiento lo hace el mismo, por lo que poder
analizar las seales de los sensores y actuadores no son ningn problema. Por otra
parte en el sistema embebido es difcil obtener las seales ya que se requiere un
100 Implementacin en el VGA Cenidet



poco ms de lneas de programacin para poder obtener por algn puerto estas
seales.
5.4.2 Pruebas en sistema embebido.
Para poder comprobar que lo antes dicho es correcto y no se tiene algn error con
programacin o algn problema en seales electrnicas, se realizan algunas
simulaciones utilizando diversos tiempos de muestreo que van del mnimo tiempo
utilizado en simulacin 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, tambin 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
e
j
e

y


VGA
Referencia
Control Embebido de un Vehculo Guiado Automticamente 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
e
j
e

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
e
j
e

y


VGA
Referencia
102 Implementacin 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 captulo
Se logr la independencia del VGA Cenidet a una computadora, con el sistema
embebido diseado. Este sistema embebido puede leer los encoders y proporciona
las seales 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
cuestin de tiempo de procesamiento, agregado a esto el tiempo que se tarda en
recibir las seales de los sensores y mandar las seales 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
e
j
e

y


VGA
Referencia
-1 -0.5 0 0.5 1 1.5 2
-5
-4
-3
-2
-1
0
1
2
Seguimiento en plano XY
eje x
e
j
e

y


Real VGA
Estimado
Referencia
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
103









Lo que hacemos es resultado directo no
slo de qu y cmo pensamos, sino
tambin de qu y cmo sentimos.
-Warren Bennis

Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
104





Captulo 6

Conclusiones
6.1 Conclusiones
En un inicio los objetivos planteados para este trabajo de tesis fueron:

1. Realizar un estudio y asimilacin de la RNA tipo RHONN.
2. Realizar estudio y asimilacin del manejo de la tarjeta dsPic Pro 4.
3. Integracin 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
identificacin neuronal de un satlite en rbita, del oscilador Van der Pol y de un
motor de corriente directa de excitacin separada, por otra parte identifico con un
mismo modelo neuronal a un modelo generalizado del VGA en simulacin y al
VGA Cenidet en implementacin.

2. Se reviso detalladamente la tarjeta de evaluacin dsPic Pro 4, con lo cual se
encontraron deficiencias para la aplicacin que se propone en este trabajo de tesis,
como: no contar con un lector de encoder y el procesamiento de las seales son de
manera secuencial sin poder hacer nada de manera paralelo.

3. Se tomo al Block Control como tcnica de control para este trabajo de tesis, El
cual fue capaz de controlar un sistema numrico con perturbaciones sin tomar ests
en el diseo del control, tambin controlo al modelo del VGA en simulacin y pudo
seguir de manera adecuada las trayectorias que se propusieron. Se diseo un
algoritmo de control (Block Control) basado en un identificador neuronal para el
VGA Cenidet capaz de seguir alguna trayectoria prediseadas, teniendo
resultados favorables en programacin.

4. En un inicio se plante realizar un sistema descentralizado, es decir tener el
algoritmo de identificacin en una tarjeta dsPic Pro 4 y el algoritmo de control en
otra igual, teniendo estas comunicadas y trabajando simultneamente. Sin embargo
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
105



debido a todos los problemas que se provocaron con el tiempo de muestreo, no fue
capaz de realizar esta separacin ya que al integrar un algoritmo de comunicacin
consume tiempo de procesamiento de los datos y como se menciono anteriormente
el sistema embebido no es capaz de proporcionar la seales de control en el tiempo
necesario, por lo que este objetivo no se cumpli al 100%, sin embargo las pruebas
en simulacin 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 identificacin 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 sinpticos
de la red neuronal.
El esquema de control con la tcnica de Block Control en conjunto con la
identificacin 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 ejecucin de sus algoritmos de control, por otra parte sigue
conservando todo el diseo planteado en [Camarena'09].
Por otra parte se ha publicado un artculo con el ttulo de Control descentralizado
de un vehculo guiado automticamente mediante redes neuronales artificiales en
el congreso nacional del AMCA con los resultados obtenidos.
6.2 Aportaciones
La principal aportacin de este trabajo es: la exploracin de un algoritmo de
control inteligente basado en redes neuronales, para el seguimiento de trayectoria
de sistemas dinmicos. Este algoritmo es la unin de dos elementos, por una parte
se encuentra la tcnica del Block Control y por otro un identificador neuronal.
A pesar de que el identificador neuronal es computacionalmente muy pesado,
debido a su mtodo de entrenamiento, logramos controlar diversos sistemas
dinmicos en simulacin como por ejemplo un satlite 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 fsico real (VGA Cenidet)
logrando seguir la trayectoria, una vez teniendo los resultados, presentados en el
captulo 5, se trasladar los algoritmos a un sistema embebido conectado
directamente al VGA Cenidet, sin poder logra el seguimiento de trayectoria.
Otra aportacin de este trabajo es que la maqueta VGA Cenidet se encuentra
libre de cables, lo que quiere decir que tiene un espacio de trabajo ms amplio, esto
se logro con el diseo del sistema embebido y sus tarjetas acondicionadores de
106 Conclusiones



seales, teniendo como resultado una maqueta de pruebas para nuevas tcnicas 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 tcnica de entrenamiento para las Redes Neuronales
Recurrentes de Alto Orden, con el fin de disminuir el gasto computacin y lograr el
seguimiento de trayectoria del VGA Cenidet de una manera adecuada.
Probar nuevas tcnicas 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.
















Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
107






Control Embebido de un Vehculo Guiado Automticamente 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 // Direccin del puerto A
#Byte PortB = 0x06 // Direccin 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 interrupcin y
// en el programa principal. Por tanto declaramos esta variable
// antes de la interrupcin y de "Void Main".
Int8 timer=0;

// --------- Interrupcin ---------
#Int_Ext // Interrupcin Externa por RB0: Decodificacin 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 interrupcin 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 configuracin.
{
Setup_adc_ports(NO_ANALOGS);
Setup_adc(ADC_CLOCK_DIV_2);
Setup_spi(SPI_SS_DISABLED);
Setup_timer_0(RTCC_INTERNAL|RTCC_DIV_128);
Control Embebido de un Vehculo Guiado Automticamente 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 interrupcin por flanco de
// subida.
Enable_Interrupts(Int_Ext); // Activar Interrupcin 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; // Posicin del robot
double long x; // Posicin en el eje x
double long y; // Posicin en el eje y
double long phit; // Position del robot
double long xt; // Posicin en el eje x
double long yt; // Posicin en el eje y
double long xd1; // Posicin en el eje x
110 Programas del sistema embebido



double long yd1; // Posicin en el eje y
double long xd2; // Posicin en el eje x k+1
double long yd2; // Posicin en el eje y k+1
double long tetad; // Posicin de la rueda derecha
double long tetai; // Posicin de la rueda izquierda
double long vd; // Velocidad de la rueda derecha
double long vi; // Velocidad de la rueda izquierda
double long tetadt; // Posicin de la rueda derecha
double long tetait; // Posicin 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;
Control Embebido de un Vehculo Guiado Automticamente 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;
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;
Control Embebido de un Vehculo Guiado Automticamente 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;
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*ta
od+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;
Control Embebido de un Vehculo Guiado Automticamente 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]+H
P[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;
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]*P
1[7][i]+K2[0]*H1[8]*P1[8][i]+K2[0]*H1[9]*P1[9][i]+K2[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[13][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]*P
1[7][i]+K2[1]*H1[8]*P1[8][i]+K2[1]*H1[9]*P1[9][i]+K2[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[13][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]*P
1[7][i]+K2[2]*H1[8]*P1[8][i]+K2[2]*H1[9]*P1[9][i]+K2[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[13][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]*P
1[7][i]+K2[3]*H1[8]*P1[8][i]+K2[3]*H1[9]*P1[9][i]+K2[3]*H1[10]*P1[10][i]+K2[3]*H1[11]
Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
117



*P1[11][i]+K2[3]*H1[12]*P1[12][i]+K2[3]*H1[13]*P1[13][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]*P
1[7][i]+K2[4]*H1[8]*P1[8][i]+K2[4]*H1[9]*P1[9][i]+K2[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[13][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]*P
1[7][i]+K2[5]*H1[8]*P1[8][i]+K2[5]*H1[9]*P1[9][i]+K2[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[13][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]*P
1[7][i]+K2[6]*H1[8]*P1[8][i]+K2[6]*H1[9]*P1[9][i]+K2[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[13][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]*P
1[7][i]+K2[7]*H1[8]*P1[8][i]+K2[7]*H1[9]*P1[9][i]+K2[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[13][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
118 Programas del sistema embebido



1[7][i]+K2[8]*H1[8]*P1[8][i]+K2[8]*H1[9]*P1[9][i]+K2[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[13][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]*P
1[7][i]+K2[9]*H1[8]*P1[8][i]+K2[9]*H1[9]*P1[9][i]+K2[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[13][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]*P1[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]+K2[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]*P1[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]+K2[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]*P1[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]+K2[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++)
{
Control Embebido de un Vehculo Guiado Automticamente 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]*P1[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]+K2[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]*P1[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]+K2[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]*P1[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]+K2[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+k
1*(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)-
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+k
1*(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*t
aod+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-epid11+.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///////////////

Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
121



pwm_period1 = Pwm_Init(63, 1, 1, 2); // Inicializacin del PWM para la llanta derecha
pwm_period2 = Pwm_Init(63, 1, 1, 2); // Inicializacin del PWM para la llanta derecha

// De acuerdo al signo es la direccin de la rueda, si es mayor a cero la rueda va para el
frente, si es menor a cero la rueda va para atrs
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;
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;
Control Embebido de un Vehculo Guiado Automticamente 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;
}
}














Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
124





Anexo B

Configuracin de conexin del VGA
Cenidet
B.1 Modulo de conexiones
En la figura B1 se muestra la configuracin de los pines de conexin del conector
DB25 que se utiliza en el VGA Cenidet, este conector es muy importante dado a
que de aqu se obtienen las seales de entrada y salida para el control del robot.

Figura B1. Conector DB25 con numeracin de los pines.
De acuerdo a la figura B1 la tabal B1 muestra cada seal 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 configuracin de [Camarena'09] as como tambin con la configuracin de
este trabajo y posiblemente con otras configuraciones electrnicas futuras.




Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
125



Tabla B1. Descripcin de las seales de entrada y salida del modulo de conexiones del VGA
- Cenidet.
PIN Descripcin PIN Descripcin PIN Descripcin
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
Direccin
Antihoraria
Derecha
24
Direccin
Antihorario
Izquierdo
7
Canal Index negado
Izquierdo
16
Direccin
Horaria
Derecha
25
Direccin Horario
Izquierdo
8
Canal B negado
Izquierdo
17 PWM Derecho
9
Canal A negado
Izquierdo
18 NC






Control Embebido de un Vehculo Guiado Automticamente Mediante
Redes Neuronales Artificiales
126



Bibliografa

[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 Electrnica, Tesis de Maestria, CINVESTAV,
Guadajara, Mxico 2004.
[Azcn'03] Alberto Nao Azcn, Anlisis y Diseo del Control de Posicin de un
Robot Mvil con Traccin Diferencial, Control y Electrca Industrial,
Maestra, Rovira I Virgili, 2003.
[Benitez'10] V. H. Baltazar Benitez, Decentralizad Continuos Time Neural
Control, Departamento de Electrnica, Doctoral, CINVESTAV,
Guadalajara, Jalisco, 2010.
[Bolton'01] Wiliam Bolton, Mecatrnica: Sistemas de control electrnico en
ingeniera mecnica y elctrica, Alfaomega, 2da Edicin, 2001.
[Camarena'09] Jos Felipe Camarena, Anlisis Cinemtico, Dinmico y
Control en Tiempo Real de un Vehculo Guiado Automticamente,
Departamento de Mecatrnica Maestra, Centro Nacional de Investigacin
y Desarrollo Tecnolgico, Cuernavaca 2009.
[Castaeda'09] Carlos E. Castaeda, 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 Tcnicas de Programacin., Wilmington, Delaware, E. U. A.,
Addison-Wesley, Iberoamericana S. A., 1993.
[Freire'09] E. Freire, J. Galn Vioque y M. Molina Becerra, Compotamiento
Dinmico de un sistema no holnomo: El Sistema de Heisenberg
Modificado, XXI Congreso de Ecuaciones Diferenciales y Aplicaciones, XI
Congreso de Matematica 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.
[Garca'05] Efran Mariscal Garca, Planeacin y Seguimiento de Trayectorias
de Robots Mviles en una Simulacin 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 Neural Networks, Ontario,
Canada, Jonh Wiley and Sons, INC., 2001.
Control Embebido de un Vehculo Guiado Automticamente 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] Hctor Huerta, Alexander G. Loukianov y Jos M. Caedo, 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 automtico, Edo. Mxico,
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.
[Lpez'08] Raquel Flrez Lpez y J. Miguel Fernndez Frenndez, Las Redes
Neuronales Artificiales: Fundamentos tericos y aplicaciones prcticas,
Espaa, 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, Nonholonomic 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, Identication 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] Anbal Ollero, Robtica: manipuladores y robots mviles,
Barcelona, Espaa, Marcombo, 2001.
[Rao'05] S. Rao, H. Brandtstdter, 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: Application to Induction
Motor Control, Proceeding of the 42nd IEEE Conference on Decision and
Control, Maui, Hawaii USA, 2003.
128 Bibliografa



[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. Vijay 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 Firgerprint-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, Identificacin de Sistemas Utilizando Redes
Neuronales, Departamento de Electrnica, Maestra, Centro Nacional de
Investigacin y Desarrollo Tecnolgico, 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.

You might also like