Professional Documents
Culture Documents
TESIS PROFESIONAL
TITULO:
CONTROL DE UN PENDULO INVERTIDO EMPLEANDO REDES
NEURONALES ARTIFICIALES
ALUMNO:
CESAR ALEJANDRO FRAUSTO DAVILA
(97240322)
ASESORES:
Dr. ANTONIO ZAMARRON RAMIREZ
M.C. MARTHA ALICIA ROCHA SANCHEZ
AGRADECIMIENTOS
Quiero agradecer primero a Mi Seor Jess Cristo por haberme criado (Gen. I), haberme mostrado
cosas grandes y maravillosas que nunca imagine (Jer. III), por haberme dado potestad de ser hecho
hijo de Dios (Ev. J. I), a El sea Toda la Gloria y Toda la Honra. Amen (Ap. 21). (Shella).
Quiero agradecer a mis padres Nicols Frausto Morales y Felipa Dvila Rodrguez por el amor, la
paciencia y apoyo que me han demostrado, por su ejemplo, por su amistad, su apoyo, Gracias. A mis
hermanos: Gabriel, a Mario (Siempre en nuestros mejores recuerdos), a Xochitl y Fanny. A mis
sobrinas Tania, Karina y Karen y mis sobrinos Mario y Josu, deseo ardientemente leer un da las
tesis de ellos.
Quiero externar mi reconocimiento a todos aquellos que aportaron su granito de arena para mi
formacin. A los profesores de la Escuela Primaria Urbana No. 13 Narciso Mendoza, en especial a
la maestra Guillermina Martnez rnelas y al Profesor Aurelio Lpez Flores (1980-1986). A los
Profesores de la Escuela Secundaria Federal No. 5 Emperador Cuahuhtemoc, en especial al
profesor de Matemticas Ricardo Galn, al profesor de electrnica Daro, un recuerdo para las
maestras Marisela y Mary, ambas de espaol (1986-1989). Al personal de la Preparatoria Abierta
Pedagoga Aplicada en especial al Lic. Guadalupe Mota Gmez y la maestra Mary Mota Gmez.
Al Instituto Tecnolgico de Len y las personas que laboran en dicha institucin, al M.C. Carlos
Jess Aguilera Batista, excelente persona. A mi asesor de esta tesis, el Dr. Antonio Zamarrn el cual
se desempeo como un excelente director al asignarme la tarea, guiarme, darme las herramientas,
recomendarme las personas adecuadas y en fin, a auxiliarme a terminar con xito esta tesis, Gracias.
Al Lic. Jos Ignacio Gallardo Hernndez, al Ing. Jos Antonio Martines excelente deportista e
ingeniero. Un reconocimiento al M. C. Julin Rentera Hernndez (gracias por su amistad y apoyo), a
Pedro Sosa, asistente en el taller de Hidrulica y Mecnica, a la maestra Susan Onesky (IAAP ahora
Berlitz SLP), a mi compaero Omar rnelas Lozano, a mis amigas Olga Prado y ngeles Alvarez
por su agradable compaa y por mostrarme that mankind is led into the darkness beyond our world
by the inspiration of discovery and the longing to understand.
Deseando xito en todo lo que emprende, al Dr. Francisco Javier Cuevas de la Rosa del Centro de
Investigaciones en ptica, A.C.
Al Coronel de Infantera DEM Miguel ngel Chavero Cevallos, al Capitn I de Infantera DEM
Guadalupe Arias, al sargento II de Infantera Praxedis Guerrero, al Sr. Ernesto Myer de Pesquera
Internacional en Cabo San Lucas BCS, al Ing. Jorge Marmolejo de Plsticos Boston, a Elas Barba de
Torno y Soldadura (7 77 01 08), al Ing. Ignacio Alcal de Lira de Alumbrado Publico Municipal, al
Ing. Jess Samano de Maselli Measurement, a mis ex compaeros en Innopack, Refrescos Aga,
Suelas Hulsalite, Suelas Sole, Inoplast y Hafca Proyectos Industriales. Quiero recordar que este
trabajo no hubiera sido posible sin la colaboracin del Dr. Cuevas del CIO y la M.C. Rocha del Dep.
de Sistemas por lo que estoy seguro que cualquier actividad encaminada a estrechar la colaboracin
entre instituciones y departamentos permitir lograr objetivos mucho mayores que los aqu
presentados.
Creo que faltaran hojas para nombrar las personas que han compartido su vida conmigo y que
forman parte de lo que soy. A todas ellas
GRACIAS
Ingeniera Electromecnica i
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
INDICE
PAG.
AGRADECIMIENTOS i
INDICE ii
INDICE DE FIGURAS iv
INDICE DE TABLAS v
PRLOGO vi
CAPITULO 1
INTRODUCCIN
1.1 DESCRIPCIN GENERAL 1
1.2 HIPOTESIS 2
1.3 OBJETIVOS GENERALES 2
1.3.1 OBJETIVOS ESPECIFCOS 2
1.3 ALCANCES Y LIMITACIONES 3
REFERENCIAS DE CAPITULO 3
CAPITULO 2
PENDULO INVERTIDO Y REDES NEURONALES ARTIFICIALES
2.1 PRINCIPIOS BSICOS DEL SISTEMA PENDULO INVERTIDO 4
2.1.1 MODELADO DE UN PIS 5
2.1.2 DISEO DE UN CONTROLADOR PARA EL PIS 7
2.2 REDES NEURONALES ARTIFICIALES 9
2.2.1 BREVE HISTORIA DE LAS RNAS 11
2.2.2 CARACTERSTICAS DE LAS RNAS 12
2.2.3 NEURONA ARTIFICIAL 12
2.2.4 RNA 17
2.2.5 ENTRENAMIENTO DE UNA RNA 20
2.2.5.1 ENTRENAMIENTO SUPERVISADO 21
2.2.6 RNA PERCEPTRON 22
2.2.6.1 ENTRENAMIENTO DE UNA RNA TIPO PERCEPTRON 22
2.2.7 RNA TIPO PERCEPTRON DE CAPAS MULTIPLES 24
2.2.8 RNA TIPO ADALINE 24
2.2.8.1 REGLA DE APRENDIZAJE DEL ERROR CUADRATICO MEDIO
LMS (LEAST MEAN SQUARE O LMS) 25
2.2.8.2 LOCALIZACIN DE LA MATRIZ PTIMA DE PESOS
MEDIANTE EL MTODO DE GRADIENTE DESCENDENTE 26
2.2.9 RNA TIPO MADALINE 28
2.2.9.1 ALGORITMO MRII (MADALINE RULE II) 29
2.2.10 RNA TIPO BACKPROPAGATION (BP) 30
2.2.10.1 REGLA DELTA GENERALIZADA (GDR) 31
2.2.10.2 ENTRENAMIENTO DE UNA RNA BP 33
2.2.10.3 PESOS Y PARAMETROS DE APRENDIZAJE 34
REFERENCIAS DEL CAPITULO 35
CAPITULO 3 PAG.
DESCRIPCION DEL SISTEMA
3.1 RNAs EN MATLAB 38
3.1.1 ESTRUCTURA DE LOS DATOS 39
3.1.2 RED MADALINE 40
3.1.2.1 CREACION DE UNA RNA TIPO MADALINE MEDIANTE LA
GUI nntool 41
3.1.2.2 FILTRO LINEAL DE RESPUESTA A IMPULSOS FINITOS 44
3.1.3 RNA TIPO BP 44
3.1.3.1 CREACION DE UNA RNA TIPO BP MEDIANTE LA GUI nntool 44
3.1.4 ENTRENAMIENTO DE UNA RNA 49
3.1.5 EXPORTANDO DATOS A LA VENTANA DE TRABAJO DE MATLAB
50
3.1.6 LIMPIAR LA VENTANA NETWORK / DATA MANAGER 51
3.1.7 IMPORTANDO DATOS DESDE EL ESPACIO DE TRABAJO DE MATLAB 51
3.2 SIMULINK 51
3.2.1 USO DEL BLOQUE TAPPED DELAY 51
3.3 REAL TIME WORKSHOP 53
3.3.1 CONCEPTOS BASICOS 53
3.4 REAL TIME WINDOWS TARGET 56
3.5 TARJETA PCI6014 58
3.6 INTERFASE DE POTENCIA 59
3.7 SISTEMA PIS 59
REFERENCIAS DEL CAPITULO 61
CAPITULO 4
IMPLEMENTACION DEL CONTROLADOR
4.1 PROTOTIPO PIS 63
4.2 ADQUISICIN DE DATOS DE ENTRENAMIENTO 64
4.3 EMULACION DE LA RNA BP EMPLEANDO MATLAB 67
4.4 ENTRENAMIENTO DE LAS RNAs BP 69
4.5 IMPLEMENTACION DE LA RNA BP COMO CONTROLADOR DEL PIS 73
REFERENCIAS DEL CAPITULO 77
CAPITULO 5
RESULTADOS
5.1 RESULTADOS 78
CAPITULO 6
CONCLUSIONES, RECOMENDACIONES Y PROPUESTAS PARA TRABAJOS FUTUROS
6.1 CONCLUSIONES 82
6.2 RECOMENDACIONES 84
6.2 TRABAJOS FUTUROS 85
APENDICE
A Programa Normalizacin Vector de Entradas
B Programa Vector Condiciones Iniciales en Retardos de Tiempo
INDICE DE FIGURAS
PAG.
Fig. 2.1 Representacin de un Pndulo Invertido 4
Fig. 2.2 Pndulo Invertido Simple de base mvil (PIS) 5
Fig. 2.3 Diagramas de cuerpo libre para un PIS 6
Fig. 2.4 Partes Principales de una Neurona Biolgica 10
Fig. 2.5 Diferentes mtodos de implementacin de RNAs 11
Fig. 2.6 Modelo McCullon-Pitts de una neurona 13
Fig. 2.7 Modelo de una neurona artificial general 14
Fig. 2.8 Funciones de activacin ms comnmente empleadas 16
Fig. 2.9 Funciones de salida ms empleadas 17
Fig. 2.10 Grafica dirigida de una RNA general 19
Fig. 2.11 Ejemplos de RNAs con distintas arquitecturas de alimentacin 19
Fig. 2.12 Perceptron de una sola capa 22
INDICE DE TABLAS
PAG.
Tabla 3.1 Funciones de entrenamiento disponibles en Matlab para una RNA BP 48
Tabla 3.2 Datos tcnicos de la tarjeta PCI6014 de National Instruments 59
Tabla 4.1 Parmetros de entrenamiento empleados en la RNA BP1 69
Tabla 4.2 Parmetros de entrenamiento empleados en la RNA BP2 71
Ingeniera Electromecnica v
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
PROLOGO
Es comn ver en pelculas de ciencia ficcin situaciones en las que maquinas creadas por el
hombre llegan a tal grado de desarrollo que logran su autonoma, y algunos autores son tan
osados que en ocasiones llegan ha dotarlas de cualidades, que por el momento no tienen, tales
como inteligencia, odio, amor, etc. No creo imposible llegar a tal grado de desarrollo en la
tecnologa, es un hecho que da con da se analizan nuevas tcnicas encaminadas a emular la
naturaleza en forma artificial. En mi opinin, las computadoras, o alguna herramienta derivada
de estas, tendrn un papel importante en el logro de esta meta.
El hecho de dotar de inteligencia ms que de autonoma a una maquina parece de entrada algo
atractivo para la ciencia, la industria, y aun la misma sociedad, con el fin de atisbar en lo que
es el uso de Tcnicas de Computacin Suave en el control de sistemas fsicos (en especial
mecnicos) reales hemos desarrollado con agrado esta tesis en la cual se aplica una Red
Neuronal Artificial como controladora de un sistema no lineal (pndulo invertido).
Deseando que la presente tesis sea un prembulo para aplicaciones futuras en control de
sistemas electromecnicos empleando Tcnicas de Computacin Suave y esperando sea de
utilidad lo aqu presente dejo a su consideracin el trabajo.
Atentamente
El Autor
soterios77@hotmail.com
El tipo de control que se implementa en cada caso depende de varios factores, entre ellos si el
sistema a controlar es lineal o no lineal, estable o inestable, etc. Hasta hace pocos aos el
control de sistemas lineales se realizaba principalmente mediante reguladores Proporcional,
Integral, derivativo o una combinacin de estos. Para el caso de sistemas no lineales, en
especial de varias entradas y salidas, era comn utilizar variables de estado. Hoy en da cada
vez es ms comn utilizar controles inteligentes para realizar estas tareas.
La programacin para la implementacin del regulador con RNA`s en tiempo real fue
realizado empleando el software MATLAB 7.0, SIMULINK, Real Time Workshop y Real
Time Windows Target. En el capitulo 3 se describen algunas caractersticas de estas
herramientas para la implementacin del regulador con RNA`s.
Al contar con el modelo Real Time Worshop de una RNA, esta se puede presentar ante
condiciones distintas de las contenidas en su conjunto de entrenamiento, con el fin de observar
si la RNA asimilo o no la funcin requerida, esto se aborda en el capitulo 5. En el capitulo 6 se
exponen las conclusiones y observaciones emanadas de los datos obtenidos y de la experiencia
adquirida durante el desarrollo de la tesis, culminando con algunas propuestas de trabajos
futuros.
1.2 HIPOTESIS
La Red Neuronal Artificial tipo Retro propagacin (BP) es capaz de generar la seal de
control que estabiliza un prototipo real del Pndulo Invertido Simple, aprendiendo de un
conjunto de datos que representan el comportamiento deseado.
Desarrollo de un prototipo PIS (Pndulo Invertido Simple) controlado por una red
neuronal artificial en tiempo real.
Integrar la RNA BP modelada como controladora del prototipo PIS en tiempo real.
Por otro lado, en este trabajo no se analiza la forma en que influyen cada uno de los
parmetros de diseo y entrenamiento de una RNA BP, al ser usadas en aplicaciones de
control, sino que solo se muestra que una RNA BP puede emular y generalizar de forma
aceptable la tarea de control presentada en su conjunto de entrenamiento.
REFERENCIAS DE CAPITULO
1. Furnas, J.M. and R.d. TIME-LIFE, EL INGENIERO. El Ingeniero, ed. C. Cientifica. 1972,
Mexico, DF: Time-Life Inc. 9.
2. Anderson, C.W., Learning to Control an Inverted Pendulum Using Neural Networks. IEEE
Control Systems Magazine, 1989. April 1989: p. 31-37.
3. Wang, D. and J. Huang, A Neural-Network-Based Approximation Method for Discrete-Time
Nonlinear Servomechanism Problem. IEEE Transactions on Neural Networks, 2001. 12: p.
591-597.
4. Cembrano, G. and G. Wells, Aplicaciones del Aprendizaje Neuronal al Control de Robots.
Inteligencia Artificial, 1997. 1: p. 34-40.
5. Freeman, J.A. and D.M. Skapura, Neural Networks: algorithms, applications, and
programming techniques. 1 ed. Computation and Neural Systems, ed. C. Koch. Vol. 1. 1991,
California: Addison Wesley. 45-124,341-371.
Capitulo 1. Introduccin 3
CAPITULO 2
PENDULO INVERTIDO Y REDES NEURONALES ARTIFICIALES
El hombre desde sus inicios ha cohabitado con su entorno y, gran parte de sus acciones han
sido encaminadas a controlar o modificar dicho entorno con el fin de obtener beneficio.
Con el fin de lograr un comportamiento adecuado a sus expectativas, el hombre ha
desarrollado tcnicas que le permiten monitorear y controlar fenmenos o procesos. Hasta
hace algunas dcadas solo se empleaba lo que se conoce como Teora de Control Moderna,
pero debido a la creciente complejidad de las tareas a controlar se han investigado nuevas
tcnicas de control, una de ellas y de la cual trataremos en este trabajo es empleando
Tcnicas de Computacin Suave. En este capitulo se muestra informacin del Pndulo
Invertido, el cual tomaremos como sistema a controlar y se expondr una breve descripcin
de las Redes Neuronales Artificiales (un subconjunto de las tcnicas de computacin suave)
las cuales nos servirn como elementos controladores.
El Pndulo Invertido es un dispositivo mecnico compuesto bsicamente por una barra que
oscila libremente en un plano, soportada por uno de sus extremos en el cual puede pivotear
libremente [1]. La barra del pndulo puede estar montada sobre una base ya sea mvil o
esttica, ver figura 2.1.
Barra
F Pivote
Pieza
base
En este trabajo se emplea un pndulo de la forma PIS (figura 2.2) por las ventajas
econmicas y de manufactura que presenta su implementacin. En dicho prototipo la fuerza
aplicada a la base mvil se realiza a travs de una banda de transmisin accionada por un
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
El PIS es un sistema no lineal (las ecuaciones que representan dicho sistema son de
naturaleza no lineal), inestable (el pndulo puede volcarse en cualquier momento y en
cualquier direccin) y sub-actuado ya que el pndulo no recibe directamente ninguna seal
de control (la seal de control es aplicada a la base mvil), sin embargo puede ser
modelado como un sistema lineal en torno a la posicin de equilibrio para facilitar la
implementacin del controlador [1, 5, 11-13].
PIS Banda de
Transmision
Motor Impulsor
Barra
Gua
Superficie de soporte
En la literatura existe una gran cantidad de mtodos que permiten obtener el modelo
matemtico de un PIS [1, 5, 7, 8, 10, 12, 14-18], en nuestro caso el desarrollo del
modelo matemtico tomara como base la metodologa empleada en el sitio web de The
University of Michigan [17], y se apoya en los diagramas de cuerpo libre mostrados en la
figura 2.3, en dicha figura se considera una fuerza externa, F, que acta sobre la base
mvil, esta es la seal de control. Se determinan las ecuaciones dinmicas que modelan el
sistema, y posteriormente se linealizan en torno al punto en el cual el ngulo del pndulo
= (asumiendo que el pndulo no se mueve mas que unos pocos grados a ambos lados
de la vertical, a la cual se le ha asignado el ngulo ).
Teora Bsica 5
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
P
N
mx
F
l
bx ml
mg
x -N
x
-P
Sumando las fuerzas que actan sobre el carro en direccin horizontal, se obtiene la
siguiente ecuacin de movimiento:
** *
M x+bx+ N = F Ec. 2.1
** ** * Ec. 2.2
N = m x + ml cos ml 2 sen
** * ** * Ec. 2.3
( M + m ) x + b x + ml cos ml 2 sen = F
** ** Ec. 2.4
Psen + N cos mgsen = ml + m x cos
Para aislar los trminos P y N de la ecuacin anterior, se suman los momentos alrededor del
centro de gravedad del pndulo para obtener la ecuacin siguiente:
** Ec. 2.5
Plsen Nl cos = I
Al combinar la ecuacin 2.4 con la 2.5 se obtiene la ecuacin dinmica del sistema:
(I + ml ) + mglsen = ml x cos
2
** ** Ec. 2.6
**
(M + m ) x + b x ml = u Ec. 2.8
** *
La primer solucin al problema de control del sistema Pndulo Invertido fue descrita por
James K. Roberge [14]. Una vez obtenidas las ecuaciones representativas del sistema se
pueden emplear distintos mtodos de control para equilibrar el sistema [1-13, 15, 17, 19],
algunos de ellos trabajan en el dominio de la frecuencia por lo que es necesario obtener la
Transformada de Laplace de las ecuaciones del sistema [1, 4, 6, 9, 17] (suponiendo
condiciones iniciales nulas), lo que da como resultado variables en el dominio de la
variable s ( X(s), U(s) y (s) ):
(I + ml ) (s)s
2 2
mgl ( s ) = ml X ( s ) s 2
Ec. 2.9
Ec. 2.10
(M + m ) X ( s) s 2 + b X ( s) s ml ( s) s 2 = U ( s)
Algunos de estos mtodos estn limitados a que los controladores solo analizan una seal
como salida a controlar del sistema. Si consideramos el ngulo como la salida a observar
del sistema, obtendramos la siguiente funcin de transferencia:
Teora Bsica 7
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
ml 2
s
(s) = q
Ec. 2.11
b( I + ml 2 ) 3 ( M + m)mgl 2 bmgl
U (s) s 4 + s s s
q q q
Donde,
[ ( )
q = (M + m ) I + ml 2 (ml )
2
] Ec. 2.12
Para salvar esta limitacin de tener una sola salida controlable podra disearse el
controlador empleando variables de estado en la expresin de las ecuaciones dinmicas [1,
2, 6, 10, 13, 17, 18], tomando como base la siguiente representacin general [1, 6]:
* Ec. 2.13
X = A X + B U
Ec. 2.14
Y = C X + D U
* *
Ec. 2.15
(x1 , x2 , x3 , x 4 ) = x, x, ,
Se pueden obtener las siguientes matrices de estado:
*
0
0 1 0 0
x
** 0 ( I + ml 2 )b m 2 gl 2 x I + ml 2
0 * 2
x I ( M + m) + Mml 2 I ( M + m) + Mml 2
* = 0 x + I ( M + m) + Mml u
1
0 0 0
mlb mgl ( M + m) ml
0
**
0
*
x*
1 0 0 0 x 0
y= + u
0 0 1 0 0
*
observador, etc. [1, 2, 6]. Estas tcnicas de control permiten estabilizar mas de un
parmetro del sistema. El xito en la estabilizacin del sistema PIS, mediante el controlador
creado con alguna de estas tcnicas, depender en gran parte de lo cercano que sea el
modelo obtenido en relacin a la dinmica actual del sistema. Podemos decir que un control
tradicional, en los casos que se conocen sus ecuaciones dinmicas presentara la forma
general de la siguiente ecuacin [16].
* *
Ft = b1 x + b2 x + b3 + b4 Ec. 2.16
En la cual se asume que la fuerza de control es una funcin lineal de las cuatro variables de
estado y adems con coeficientes constantes.
En los dos mtodos mencionados es necesario contar con suficiente conocimiento del
sistema as como realizar un adecuado desarrollo matemtico para obtener un modelo
adecuado. Dado que en ocasiones es difcil y en ocasiones casi imposible obtener la
informacin necesaria para disear un sistema de control clsico, se han investigado otras
alternativas, entre ellas podemos mencionar el uso de Redes Neuronales Artificiales [16,
20, 21], Lgica Difusa [18], sistemas hbridos [11] y controles adaptativos [2] .
El inters por crear mquinas que de alguna forma emulen el comportamiento humano tiene
siglos de antigedad, ya en el siglo primero de nuestra era se realizaban mecanismos
animados, los de Hern de Alejandra [22], y en el siglo XVII Jacques de Vaucason cre el
primer mecanismo que podramos llamar humanoide [23], aunque no es sino hasta el siglo
XX cuando se presenta una cooperacin mas activa entre diferentes ramas de la ciencia que
permitieron hacer mas viable dicha idea.
Teora Bsica 9
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
Las dendritas son las conexiones de entrada de la neurona. Por su parte el axn es la
"salida" de la neurona y se utiliza para enviar impulsos o seales a otras clulas nerviosas.
Cuando el axn esta cerca de sus clulas destino se divide en muchas ramificaciones que
forman sinapsis con el soma o axones de otras clulas. Esta unin puede ser "inhibidora" o
"excitadora" segn el transmisor que las libere [32].
dendritas
soma
soma
dendritas
axon
sinpsis
EFICIENCIA FLEXIBILIDAD
SIMULADORES SOFTWARE
NEUROCOMPUTADORES
Para PC de uso general
NEUROCOMPUTADORES NEUROCOMPUTADORES PC PC
de uso especifico de uso general Paralela serie
convencional convencional
Matriz de Tarjetas
Neuro Chips Procesadores Coprocesadoras
Neuro Chips
Mixtos Anal. Dig.
A/D
La ventaja que presentan las RNAs a otros tipos de controladores es que estas aprenden el
funcionamiento deseado mediante ejemplos sin necesidad de un modelado matemtico que
represente la tarea a realizar, incluso las RNAs tienen capacidad de aproximar funciones
no lineales complejas [20, 21, 27, 32, 36].
La primera accin encaminada a emular las neuronas biolgicas se dio en 1943 cuando
Warren McCulloch, un neurofisilogo, y un matemtico, Walter Pitts, escribieron un
documento referente a la manera en la que podan funcionar las neuronas en el cual
consideraron la salida de las neuronas de forma binaria [37].
Para reforzar este concepto de las neuronas y como trabajan fue escrito un libro por Donal
Hebb, La organizacin del comportamiento (The Organization of Behavior), el cual fue
escrito en 1949 [32]. Este trabajo resalt el hecho de que, las rutas de comunicacin
(sinapsis) de las neuronas se fortalecen en el grado en que son empleadas, esto es, en alguna
forma desarrollaban nuevas habilidades [30].
En 1957 Jhon Von Neumann sugiri imitar las funciones simples de las neuronas
empleando relevadores de telgrafo o tubos de vaco. En el mismo ao, Frank Rosenblatt,
comenz a trabajar con el Perceptron. ste era el modelo de una red de neuronas simple
que considera la salida de las neuronas como salida binaria [32]. El Perceptron, que resulto
de estas investigaciones, fue construido en hardware. Posteriormente Minsky y Papert
mostraron las limitaciones que presentaba el Perceptron ya que por la limitacin de su
salida binaria solo poda separar un espacio de muestras en dos clases [33].
En 1959 Bernard Widrow y Marcian Off de Stanford desarrollaron modelos que ellos
llamaron ADALINE y MADALINE. Estos modelos fueron nombrados de esta manera por
el uso de mltiples elementos de adaptacin lineal (Multiple ADAptive LINear Elements)
Teora Bsica 11
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
[32] y a diferencia del Perceptron incluan un peso de conexin con entrada constante de 1
(sesgo o bias).y empleaba una funcin de activacin bipolar [30].
Durante las siguientes dos dcadas hubo un aletargamiento en el desarrollo de las RNAs y
a principios de los 80s se presentaron dos aportaciones que nuevamente despertaron el
inters de los investigadores, uno de ellos fue el trabajo de Hopfield en el cual aproximaba
el funcionamiento de las neuronas desde el punto de vista energtico, y el otro trabajo fue la
presentacin del algoritmo de aprendizaje de Retro propagacin empleado en una red
Perceptron de capas Mltiples, propuesto por Verbos [32, 38].
Procesamiento Paralelo
Habilidad de generalizar
Adaptabilidad
Tolerancia a fallas
El elemento bsico de una RNA es la Neurona Artificial (tambin conocida como; PE por
sus siglas en Ingles, Process Element, elemento de procesamiento bsico procesador
elemental).
E peso 1
n
t
Entrada a la salida de la
r neurona neurona
a peso 2
d
a Umbral
s
peso n
n Ec. 2.17
u = wj y j +
j =1
Donde:
u = Valor de la seal de salida de la neurona, regularmente se considera igual al nivel
de activacin de la neurona.
w = Peso de la entrada j.
y= Valor de seal de entrada j.
= Valor de umbral o sesgo de la funcin.
n = Numero de entradas a la neurona.
Teora Bsica 13
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
y1
w1
wn
yn
NUCLEO DE
NEURONA
Fig.
2.7 Modelo de neurona artificial general [39].
a) sumatoria del producto de los valores de entrada por sus respectivos pesos.
n Ec. 2.18
wj =1
j yj
n Ec. 2.19
wj =1
j yj
d) Distancia euclidiana.
Ec. 2.21
( )
n 2
y j wij
j =1
Una neurona artificial puede estar activa o inactiva; esto significa que tiene un estado de
activacin. Algunas neuronas artificiales pueden encontrarse en un valor de activacin
dentro de un conjunto determinado [39].
La funcin de activacin calcula el estado de actividad de una neurona, esta es una funcin
del valor x proporcionado por la funcin de entrada (valor de salida en funcin de entrada).
Las funciones de activacin ms empleadas se mencionan en seguida, y muestran en la
figura 2.8:
a) Funcin lineal.
1, x 1 Ec. 2.22
a
1 1
ax, < <
f (x ) = a
x
a
1, x 1a
Siendo a un valor que afecta la pendiente de la funcin.
b) Funcin Sigmoidea.
Ec. 2.23
f (x ) =
1
gx
1+ e
Siendo g un valor que afecta la pendiente de la funcin.
gx gx Ec. 2.24
f (x ) = tgh (x ) = gx e gx
e
e +e
Siendo g un valor que afecta la pendiente de la funcin.
d) Funcin Gausiana
f (x ) = A
B x
2
Ec. 2.25
e
Siendo A y B un valor que afecta la dispersin de la funcin.
Por ultimo el elemento de procesamiento esta listo para proporcionar el valor de la seal de
salida u. Esta salida es transferida a otros elementos de procesamiento, o a una conexin de
salida, como corresponda a la estructura de la red.
Si la funcin de activacin est por debajo de un umbral determinado (ver figura 2.6),
ninguna salida se pasa a la neurona siguiente. Normalmente los valores de entrada a una
neurona estn restringidos dentro de un rango: [ 0 , 1 ], [ -1 , 1 ], etc.
Teora Bsica 15
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
+1 f (x, a ) +1 f (x, g1 )
1
f (x, a2 ) f (x, g2 )
-1 -1
(a) Funcin de (b) Funcin de
Activacin lineal Activacin Tangente
hiperblica
+1 f (x, g1 )
+1
f (x, g2 )
f (x, A1 , B )
1
f (x, A 2 , B )
2
u i (t ) = f ( x ) Ec. 2.26
b) La funcin binaria.
( )=
ui t { 1
0
si u i ( t ) i
si u i ( t ) <
i
Ec. 2.27
f (x) ui (t )
+1 +1
ui (t ) 0
f (x)
-1 +1 i
-1 -1
2.2.4 RNA
Podemos decir que una RNA esta definida por cuatro parmetros [26]:
Teora Bsica 17
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
3. El algoritmo de entrenamiento
4. El algoritmo de recuperacin
Bsicamente, todas las RNA tienen una estructura o topologa similar a la que se muestra
en la figura 2.10. Existen redes tiles que contienen una sola capa, o aun un solo elemento,
pero la mayora de las aplicaciones requieren redes que al menos tengan los tres tipos de
capa.
La capa de neuronas de entrada recibe los datos ya sea por medio de archivos de entrada o
en aplicaciones de tiempo real directamente de sensores. La capa de salida enva
informacin directamente al mundo exterior, ya sea a un proceso de clculo secundario o
la etapa de potencia electrnica de un sistema de control mecnico, por ejemplo. Entre estas
dos capas puede haber muchas capas ocultas. Estas capas internas contienen neuronas
interconectadas en varias estructuras. La entrada y salida de cada una de estas neuronas
ocultas simplemente alimenta a otras neuronas.
Todas las neuronas correspondientes a una capa pueden estar conectadas con todas las
neuronas de las capas vecinas, esto seria una Conexin Completa. Cuando no existen todas
las conexiones posibles de una neurona o capa de neuronas se dice que estn Parcialmente
Conectadas.
Auto-asociativas. En estas RNAs las neuronas de entrada son tambin las neuronas
de salida.
x1
x2 f (x)
1,1
f (x)
2,1
x3
f (x) f (x)
1,2 s,1
x4 f (x)
2,2
f (x) f (x)
1,3 s,i
x5
f (x)
2, j
x6 f (x)
1,m
xn
n NODOS CAPA DE CAPA CAPA DE
DE ENTRADA OCULTA 1 SALIDA
ENTRADA m neuronas j neuronas s salidas
y (t ) RNA con
Realimentacin ui (t )
(Feedback)
Teora Bsica 19
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
A pesar del entrenamiento, algunas RNAs nunca aprenden la tarea deseada. Esto puede ser
debido a que los datos de entrada no contienen la informacin suficiente para producir la
salida esperada. Las RNAs adems no convergen si no se tienen los suficientes datos para
generar el aprendizaje. Idealmente, debe haber suficientes datos, de tal forma que parte de
los datos se conserven de respaldo para verificar la respuesta de la RNA ya entrenada,
dichos datos no se le han presentado antes y de esta manera se puede comprobar que la
RNA ha generalizado y no solo memorizado los valores que se le presentaron. La
memorizacin se puede evitar no teniendo exceso de PEs.
Si una RNA no puede resolver un problema, se deben revisar: los datos de entradas y
salidas, el nmero de capas, el nmero de elementos por capa, el tipo de conexin entre
capas, las funciones de entrada, activacin, salida y de adiestramiento. Por lo regular se
emplea un solo tipo de funcin para todos los PEs de una capa, pero esto solo por
conveniencia de programacin. Otra cosa que puede afectar el funcionamiento de una RNA
es la forma en que se le presentan los datos de entrada y salida (codificados o no). Las RNA
solo tratan con datos de entrada numricos, sin embargo, normalmente el formato del dato
puede ser convertido desde el exterior. Adicionalmente, es necesario en ocasiones escalar el
dato, o normalizar este al modelo de la red.
Rosenblatt diseo una gran variedad de RNAs simples conocidas como Perceptrones. Uno
de los Perceptrones ms simples estaba compuesto de una sola capa conteniendo varias
neuronas similares a las de McCullon y Pitts pero con la variante de que su funcin de
entrada aada un valor de umbral o sesgo. En dichas neuronas los pesos y sesgos podan
ser ajustados para generar un vector de salidas determinado (figura 2.12). La tcnica de
Teora Bsica 21
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
b (Umbral)
x1
w1
w2 u
x2 wx+b
xn xn
El algoritmo de aprendizaje del Perceptron podra considerarse como una forma simple de
aproximacin estocstica.
Si se considera una funcin de criterio de expectacin E[ J (w)] se podra obtener una ley
de aprendizaje de gradiente descendente ideal de la forma mostrada en la siguiente
ecuacin:
Mediante estas consideraciones se puede llegar a una forma general del algoritmo
Perceptron que tendra la forma siguiente:
wk +1 = wk + c k x Ec. 2.29
x X
wm +1 = wm + cx Ec. 2.30
wm +1 = wm cx Ec. 2.31
Donde c es una constante. Esto de forma repetida hasta que g1 (x ) = xwT > 0 para todo
x D1 , y g 2 (x ) = xwT > 0 para todo x D2 . Si el Perceptron clasifica correctamente a x
entonces no se realiza ninguna modificacin en el vector de pesos.
Teora Bsica 23
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
multiplicados por los pesos de conexin de su salida y procesados por ultima vez dentro de
la capa de salida (Output Layer) para producir la salida de la red.
Para el caso en el que el Perceptron clasifique a las muestras dentro de ms de dos clases (
empleando mas de una capa) la forma de actualizar los pesos en la iteracin m+1,
considerando que el Perceptron clasifica a x Di dentro de la clase Dj, donde j es
diferente a i, entonces:
wi (m + 1) = wi (m ) + cx Ec. 2.32
w j (m + 1) = w j (m ) cx Ec. 2.33
Las redes ADALINE (ADAptive Linear Element) emplean una estructura de una sola
neurona con una funcin sumatoria y funcin de transferencia lineal (emplean la estructura
bsica del Perceptron). Esta estructura permite introducir retardos de tiempo en sus
entradas. Un filtro Adaline es un objeto que consiste en un solo elemento de procesamiento
(EP); por lo tanto no es tcnicamente una RNA.
Existen dos modificaciones bsicas que se requieren para convertir la estructura general de
un PE (Ver apartado 2.2.3) en un filtro Adaline. La primera modificacin es aadir una
conexin con peso, wo, comnmente conocida como sesgo. Este trmino se puede
considerar el peso de una conexin de entrada que siempre tiene valor de 1. La segunda
modificacin es aadir una condicin lineal en la salida. La parte del filtro Adaline donde
se pesan las entradas se le conoce como Combinador Lineal Adaptivo (ALC por sus siglas
en ingls). La salida del ALC determina la salida del filtro Adaline.
El procesamiento que realiza el ALC es igual al que realiza el PE tpico. El ALC ejecuta un
clculo de suma de productos entre los vectores de entradas y de pesos, y aplica una
funcin de salida para obtener un solo valor de salida.
n Ec. 2.35
u t = wo + w j x j
j =1
n Ec. 2.36
ut = w j x j
j =0
en notacin vectorial
u t = wT x Ec. 2.37
Si se tuviera un conjunto de vectores de entrada, xk, cada uno de los cuales con su valor de
salida correcto, dk , mediante el empleo de la regla LMS puede encontrarse el vector de
pesos correcto wk que asocie dichos elementos. Dicha regla puede incrustarse dentro del
mismo elemento, el cual podr auto-adaptarse al momento que sus entradas y salidas
deseadas le sean presentadas. Sus pesos son ajustados cada vez que se le presenta una
pareja de entrada-salida deseada hasta que la ALC genera salidas correctas. Este proceso se
considera un entrenamiento porque no es necesario calcular los valores de los pesos si no
que la misma red los obtiene empleando la regla de aprendizaje.
1 k =L 2 Ec. 2.38
k2 = k
L k =1
k2 = (d k wT x k ) Ec. 2.39
2
= d k2 + wT x k x kT w 2 d k x kT w
Una aproximacin para que la ALC encuentre los pesos ptimos es mediante la ubicacin
del mnimo en la superficie de pesos ya que una bsqueda puramente aleatoria podra no
ser eficiente.
Teora Bsica 25
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
Se puede iniciar asignando valores arbitrarios a los pesos. Desde este punto de la superficie
de pesos, se determina la direccin de la pendiente mas inclinada de descenso. Cambiando
los pesos ligeramente de tal manera que el nuevo vector de pesos se dirija hacia la parte
baja de la superficie. Se repite el proceso hasta que se alcance el mnimo. En este mtodo se
considera implcitamente que la superficie del error es de una forma paraboloide.
Lo que faltara sera determinar el valor de w(t) en cada paso sucesivo de iteracin.
k2 (t ) = (d k wT (t )x k ) Ec. 2.42
2
3.- Calcular una aproximacin de (t), empleando k2 (t) como una aproximacin de
k2:
k2 (t ) k2 Ec. 2.43
(t ) 2 k (t )x k
2
k
4.- Actualizar el vector de pesos de acuerdo a la ecuacin 2.41 empleando la ecuacin 2.43
como aproximacin del gradiente:
5.- Repetir los pasos 1 al 4 con el siguiente vector de entrada, hasta que el error ha sido
reducido a un valor aceptable.
Una situacin especial en el uso de la RNA tipo ADALINE es cuando se cuenta con una
sola seal de entrada, en dicho caso la ALC se arregla en una configuracin conocida
como Filtro Transversal. En esta configuracin, la seal de entrada es muestreada en varios
puntos en el tiempo, en lugar de tener varios sensores en un solo tiempo.
Para el Filtro Transversal, cada muestra adicional en el tiempo representa otro grado de
libertad que puede ser empleado para ajustar la seal de entrada a la seal de salida
deseada. Esto es, si no se puede obtener un buen ajuste con una cantidad pequea de
muestras pueden aadirse otras para aumentar la posibilidad. Si en la primera seleccin de
cantidad de retardos de tiempo se obtiene un buen ajuste de la seal, es conveniente tratar
con menos retardos, con el fin de observar respuesta y convergencia. Se debe recordar que
se debe esperar al menos n*(cantidad de retardo de tiempo) para que en todas las entradas
del filtro este presente la seal. En este tipo de filtros por lo regular los umbrales o sesgos
son superfluos.
Teora Bsica 27
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
Para entrenar una RNA de este tipo, se podra pensar emplear el algoritmo LMS en la capa
de salida, pero ya que dicho algoritmo no permite conocer la aportacin de cada capa al
error total es necesaria una modificacin a este algoritmo. Debido a que la RNA es
entrenada con patrones de entrada identificados previamente, se conoce el vector de salida
deseado. Lo que no se conoce es la salida deseada en un nodo dado de la capa oculta. El
algoritmo LMS operara en las salidas anlogas de la ALC, no en los valores de salida
bipolar de los filtros Adaline. Por esta razn se ha desarrollado una estrategia de
entrenamiento diferente para la RNA Madaline.
1.- Aplicar un vector de entrenamiento a las entradas de la RNA Madaline y propagar este
hasta las unidades de salida.
2.- Contar el nmero de valores incorrectos en la capa de salida: llamar a este nmero el
error.
a) Seleccionar el primer nodo cuya salida anloga esta mas cercana a cero. Este
nodo es precisamente el que puede revertir su salida bipolar con el menor
cambio en su peso, de aqu el trmino de Disturbancia Mnima.
b) Cambiar los valores en la unidad seleccionada de tal forma que la salida bipolar
de la unidad cambie.
4.- Repetir el paso 3 para todas las capas excepto la capa de entrada.
a) Seleccionar los pares de unidades cuya salida anloga esta mas cercana a cero.
b) Aplicar una correccin de peso a ambas unidades, con el fin de cambiar la salida
bipolar de cada una.
c) Propagar el vector de entrada hacia adelante desde las entradas hasta las salidas.
6.- Repetir el paso 5 para todas las capas excepto para la capa de entrada.
La RNA BP fue formalmente definida por Verbos [38], y despus por Parker [46],
posteriormente por Rummelhart y McClelland [47]. Este tipo de red esta diseada para
Teora Bsica 29
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
funcionar como red de capas mltiples, con alimentacin hacia adelante, empleando el
modo de entrenamiento supervisado.
La seal de error calculada es entonces transmitida hacia atrs desde la capa de salida hasta
cada uno de los nodos de las capas intermedias que contribuyen directamente con la salida.
Sin embargo, cada una de las unidades de las capas intermedias solo recibe una porcin de
la seal de error total calculada, basada estrictamente en la contribucin que cada unidad
hace para la salida original. Este proceso se repite, capa por capa, hasta que cada nodo de la
red ha recibido una seal de error que describe su contribucin relativa al error total.
Basado en la seal de error recibida, los pesos de conexin se actualizan en cada unidad
provocando que la red converja hacia un estado que le permita codificar todos los patrones
de entrenamiento.
Conforme se entrena la RNA BP, los nodos en las capas intermedias se ajustan as mismos
de tal forma que distintos nodos aprenden a reconocer diferentes objetos del espacio total
de entrada. Despus del entrenamiento, cuando se le presenta un patrn arbitrario de
entrada que contiene ruido o esta incompleto, las unidades en la capa intermedia de la red
respondern con una salida activa si la nueva entrada contiene un patrn que asemeje el
objeto que la unidad individual enseado a reconocer durante el entrenamiento.
Convencionalmente, las unidades de las capas ocultas tienen una tendencia a inhibir sus
salidas si el patrn de entrada no contiene el objeto el cual fueron entrenadas a reconocer.
Conforme la seal se propaga a travs de las diferentes capas en la RNA BP, la actividad
del patrn presente en cada una de las capas superiores se puede considerar como un patrn
con objetos que pueden ser reconocidos por unidades en las capas siguientes. El patrn de
salida generado puede considerarse como una representacin de la presencia o ausencia de
muchos objetos combinados en la entrada.
Algunas investigaciones han mostrado que durante el entrenamiento, las RNA BP tienden a
desarrollar relaciones internas entre los nodos como si organizaran los datos de
entrenamiento dentro de clases o patrones [28]. Esta tendencia puede ser extrapolada a la
hiptesis de que todas las unidades de las capas ocultas de una RNA BP son de alguna
manera asociadas con objetos especficos de los patrones de entrada como resultado del
entrenamiento. De esta forma la RNA BP encuentra una forma de representar internamente
los patrones de forma que le permite generar la salida deseada cuando se le proporciona una
entrada de entrenamiento. Esta misma representacin interna puede aplicarse a las entradas
que no se emplearon durante el entrenamiento. La RNA BP puede clasificar estas entradas
desconocidas de acuerdo a los objetos que fueron aprendidos durante el entrenamiento.
El algoritmo que se emplea para entrenar una RNA BP es la Regla Delta Generalizada.
Como se menciono, la RNA BP esta compuesta por capas mltiples, con propagacin de
las entradas hacia adelante y completamente interconectada en sus capas. Esto significa que
no existen conexiones hacia atrs ni conexiones que alimenten la salida de una capa hacia
otra que no sea la siguiente. Puede existir ms de una capa oculta en una RNA BP.
Una RNA es llamada red representativa (mapping network) si esta es capaz de calcular
alguna funcin de relacin entre las entradas y las salidas. Estas son tiles en situaciones
donde se desconoce la funcin de relacin entre las entradas y salidas, en estos casos la alta
capacidad de la RNA para descubrir su propia representacin es extremadamente til.
Si se cuenta con un conjunto de P vectores de parejas, (x1 , u1 ),......(xp , up ), los cuales son
ejemplo de una funcin representativa u = (x) : x RN , u RN .
Se puede entrenar una RNA BP para obtener una aproximacin O = u = (x). Para
emplear el mtodo aqu expuesto es necesario que los vectores de parejas hayan sido
adecuadamente seleccionados y que exista suficiente cantidad de ellos. El algoritmo
asemeja al problema de encontrar la ecuacin de una lnea que mejor aproxima un conjunto
de puntos. Y es una generalizacin de la regla LMS. Como este caso se asemeja a contar
con no linealidades y dimensiones mltiples, se emplea una versin interactiva del mtodo
simple de los mnimos cuadrados, llamada tcnica de gradiente descendente.
Para iniciar se considera un vector de entradas, xp = ( xp1, xp2 , ..... xpN ) T , que se aplica a la
capa de entrada de una RNA BP. Las unidades de la entrada distribuyen los valores a las
unidades de las capas ocultas. La entrada a la red de la unidad oculta j es:
N Ec. 2.46
Net hpj = w hji x pi + jh
i =1
(
I pj = f jh net hpj ) Ec. 2.47
L
Ec. 2.48
Net opk = wkjo I pj + ko
j =1
O pk = f k
o
(Net )
o
pk
Teora Bsica 31
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
El conjunto de valores de pesos iniciales representan una primera suposicin de los pesos
adecuados al problema. El proceso bsico de entrenamiento de una BPN esta incluido en la
siguiente descripcin:
6. Repetir los pasos 1 al 5 con todos los vectores de entrenamiento hasta que el error
para todos los vectores en el conjunto de entrenamiento se reduzca a un valor
aceptable.
1.- Aplicar un vector de entrada, xp = ( xp1 , xp2 ,....., xpN ) T a las unidades de entrada.
2.- Calcular el valor de entrada a cada una de las neuronas en las capas ocultas: ecuacin
2.46
4.- Cambiar a la capa de salida. Calcular el valor de entrada a cada neurona: ecuacin 2.48a
Notar que el error para las unidades en la capa oculta se calcula antes que los pesos de
conexin en la capa de salida sean actualizados.
wkjo (t + 1) = wkjo (t ) + pk
o
i pj Ec. 2.51
Donde es el rango de aprendizaje
1 M 2 Ec. 2.53
Ep = pk
2 k =1
Ya que esta cantidad es una medida de que tan bien esta aprendiendo (suma de los errores
cuadrados de todas las unidades en la salida). Cuando el error es aceptablemente pequeo
para cada uno de los vectores de entrenamiento, el entrenamiento puede darse por
terminado.
La RNA BP es buena para generalizar, esto quiere decir, dados diferentes vectores de
entrada, siendo todos de la misma clase, una RNA BP aprender a asimilar las similitudes
en los vectores de entrada. Y los datos irrelevantes sern ignorados.
Teora Bsica 33
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
completamente con una clase y entonces cambiar a otra podra hacer a la red olvidar el
entrenamiento original.
Los pesos pueden ser inicializados a valores pequeos y aleatorios, por ejemplo entre +0.5
y -0.5, al igual que los trminos de sesgo (o umbrales), Es comn emplear los valores de
sesgo como otro peso que esta conectado a una neurona ficticia cuya salida siempre es uno.
De esta manera podra participar del proceso de aprendizaje como peso y ser modificado.
Otra opcin es no emplear sesgos, el uso de ellos es opcional.
wkjo (t + 1) = wkjo (t ) + pk
o
i pj + p wkjo (t 1) Ec. 2.54
Con una ecuacin similar se puede encontrar los cambios de pesos en la capa oculta. En la
ecuacin el smbolo es el parmetro de momento y por lo regular es positivo menor que
1. El uso de este trmino es opcional.
Teora Bsica 35
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
24. Konar, A., Artificial Intelligence and Soft Computing. 1 ed. 2000, Boca Raton, Florida:
CRC Press. 415-443.
25. Pedrycz, W., Computacional Intelligence: an introduction. 1 ed. Computer Engineering.
1998, Florida USA: CRC PressLLC. 7-35.
26. Kasabov, N.K., Foundations of Neural Networks, Fuzzy Systems, and
Knowledge Engineering. 2 ed. Expert systems (Computer science), ed. B. Book. Vol. 1.
1998, London, England: MIT Press. 251-307.
27. Kosko, B., Neural Networks and Fuzzy Systems: a dynamical systems approach. 1992:
Prentice Hall. 39-110.
28. Hinton, G.E. y T.J. Sejnowski, Neural Networks architectures for AI, in MP2. 1987: Seattle
WA.
29. Pitas, I., Parallel algorithms: for digital image processing, computer vision, and neural
networks. Parallel Computing, ed. 1993: Jhon Wiley and sons. 259-301.
30. Cuevas de la Rosa, Francisco J. y M.S. Girardo, La Neurona Biologica y su
Implementacion Artificial. 1993, CIO: Len, Guanajuato. p. 3-16.
31. Burns, R.S., Advanced Control Engineering. 1 ed. 2001, Woburn,MA: Butterworth-
Heinemann. 347-360.
32. Freeman, J.A. y D.M. Skapura, Neural Networks: algorithms, applications, and
programming techniques. 1 ed. Computation and Neural Systems, ed. C. Koch. Vol. 1.
1991, California: Addison Wesley. 45-124,341-371.
33. Jain, A.K. y J. Mao, Artificial Neural Networks: A tutorial. IEEE Computer, 1996. 18: p.
31-44.
34. Jones, P.C. y S. Tepavich, ADALINE Stabilization of an Inverted Robot Arm. 1997,
www.aracnet.com.
35. Pino, B. y otros, Implementaciones hardware de redes neuronales artificiales. Inteligencia
Artificial, 1997. 1: p. 48-56.
36. Bishop, C.M., Neural Networks for Pattern Recognition. 1 ed. 2003, New York: Oxford
University Press. 116-161.
37. McCulloch, S. y W. Pitts, A logical Calculus of the ideas immanent in nervous activity, in
Mathematicall Biophisycs. 1943. p. 115-133.
38. Werbos, P., Beyond Regression: New Tools for Prediction and Analysis in the Behavioral
Sciences, in Computational Sciences. August 1974, Harvard: Cambridge.
39. Matich, D.J., Redes Neuronales: Conceptos Bsicos y Aplicaciones, in Catedra:Informtica
aplicada a la Ingeniera de Procesos, M.S. Basualdo, Editor. 2001, Universidad
Tecnolgica Nacional
Facultad Regional Rosario: Rosario, Argentina. p. 8-28.
40. Krse, B. y P.V.d. Smagt, An Introduction to Neural Networks. 1996, Amsterdam: The
University of Amsterdam. 15-45.
41. Hu, Y.H. y J.-N. Hwang, Handbook of Neural Networks Signal Processing. The Electrical
Engineering And Applied Signal Processing, ed. A. Poularikas. 2002, USA: CRC Press.
42. Kosko, B., Neural Networks for Siganl Processing. 1992, Englewood Cliffs, New Jersey:
Prentice-Hall. 161-188.
43. Lebbart, L., A. Morineau, and M. Piron, Statistique exploratoire multidimensionnelle. 1995,
Paris: DUNOD. 263-283.
44. Cuevas de la Rosa, Francisco J., Aplicacin de redes neuronales en la reconstruccin
tridimensional de objetos, in Metrolgiaptica. 2000, Centro de Investigaciones en
ptica: Len Guanajuato.
45. Winter, R. y B. Widrow. MADALINE RULE II: A training algorithm for neural networks.
in Second International Conference on Neural Networks. 1988. San Diego,CA.
46. Parker, D.B., Learning logic. 1985, MIT: Cambridge.
Teora Bsica 37
CAPITULO 3
DESCRIPCION DEL SISTEMA
PC :
Matlab (Neural Network Toolbox )
Simulink
Real Time Workshop
Real Time Windows Target
Fuente de Voltaje
+12V....-12V
Matlab cuenta con una caja de herramientas (Neural Network Toolboox) que permite
disear RNAs. La implementacin en Matlab de una RNA para funciones de control puede
realizarse de tres formas:
Empleando la Interfase Grafica de Usuario (GUI por sus siglas en ingles) de RNAs,
la cual se puede desplegar empleando el comando nntool (Neural Network
Toolbox).
Al crear una RNA mediante el espacio de trabajo de Matlab es necesario introducir los
comandos adecuados para obtener la arquitectura deseada en la RNA. Esta forma de disear
RNAs permite personalizar la arquitectura y presenta la ventaja de poder emplear
funciones de entrada, de activacin y de salida definidas por el usuario o, una combinacin
de las ya implementadas en el propio Matlab.
Por ltimo, la tercer forma de disear una RNA es mediante la GUI nntool. Esta
herramienta nos permite crear RNAs de distintas arquitecturas mediante la seleccin en un
men de la arquitectura deseada. Para este trabajo se selecciono la GUI nntool para crear
las RNAs empleadas en el control del PIS.
Para informacin de como emplear las primeras dos formas de crear RNAs en Matlab se
puede consultar el Manual de Usuario de Neural Networks Toolbox [1].
Cuando se crea una RNA en Matlab, las capas generadas incluyen la combinacin de:
pesos, operaciones de multiplicacin y suma (en este caso realizadas como un producto
entre vectores W*P), el sesgo b, y la funcin de transferencia f. El arreglo de entradas (el
vector P) no se considera parte de la capa, por lo que ser necesario crear el vector
correspondiente, si es que se desea emular la RNA creada. Cuando se emplea la notacin
abreviada de RNAs , las dimensiones de la matriz se muestran debajo de los elementos
matriciales, y se pueden observar en la vista (view) de la RNA creada.
Existen dos clases de neuronas las estticas (no tiene realimentacin o retardos de tiempo) y
las dinmicas (contiene retardos de tiempo). Cada una de ellas presenta requerimientos
distintos en el formato de sus datos de entrada. Existen dos tipos bsicos de vectores de
entradas: aquellos que son concurrentes (ocurren al mismo tiempo, su secuencia de tiempo
no importa), y aquellos que suceden de forma secuencial con respecto al tiempo. Para los
vectores concurrentes, el orden no importa, para los vectores secunciales el orden es de
gran importancia.
La forma mas simple de simular una RNA se presenta cuando la RNA es esttica. En este
caso no es necesario tomar precauciones respecto a si el vector de entradas ocurre en una
secuencia de tiempo determinada, y las entradas se pueden tratar como concurrentes.
Adems se puede simplificar el problema asumiendo que la RNA tiene solo un vector de
entrada.
Cuando una RNA contiene retardos de tiempo, la entrada a la RNA debe ser normalmente
una secuencia de vectores de entrada que ocurren con un determinado orden de tiempo. Las
entradas secunciales son presentadas a una RNA como si fueran elementos de un arreglo
de celdas, por ejemplo:
En el caso especial que se desee simular la respuesta de la RNA con secuencias distintas y
al mismo tiempo, la RNA se podr confrontar con un conjunto concurrente de secuencias.
En este caso la entrada ser un arreglo de celdas, donde cada elemento del arreglo contiene
los elementos de cada secuencia que ocurre al mismo tiempo, por ejemplo, para dos
secuencias distintas:
La salida que se obtendr ser de tal forma que la primera columna de cada matriz
contendr la secuencia de salida producida por la primera secuencia de entrada, y as
sucesivamente. No existe interaccin entre cada secuencia concurrente y el funcionamiento
de la RNA ser como si cada una de las secuencias se presentara a distintas RNAs
ejecutndose en paralelo.
Crear vectores o matrices mediante la opcin New Data. Los datos de los vectores o
matrices pueden ser ya sea de entradas, salidas deseadas, valores para retardos de
tiempo empleados en las entradas, valores para los retardos de tiempo empleados en
las capas ocultas o de salida, valores de salidas, o valores de error.
Figura 3.4 Ventana Create New Network para una RNA tipo Adaline o Madaline.
El formato del elemento que contenga los datos de entradas y de salidas deseadas definir
la cantidad de entradas a la RNA y la cantidad de neuronas lineales empleadas en la capa de
salida (cada rengln en el vector o matriz de datos correspondiente representa una entrada o
neurona de salida).
Fig. 3.5 Diagrama representativo de una Red lineal creada en la GUI nntool.
La GUI tiene su propio espacio de trabajo en la memoria del sistema el cual esta ubicado
fuera del espacio de trabajo de Matlab. Debido a esto, cuando se emplea una GUI, se deben
exportar los resultados de la GUI a la lnea de comandos o espacio de trabajo de Matlab. De
la misma manera si se desea emplear algn valor del espacio de trabajo de Matlab se deben
Importar dichos datos.
Una vez que se ha creado una RNA y la ventana Network/Data Manager se encuentra
activa, se puede, observar la RNA, entrenar, simular y exportar los resultados finales al
espacio de trabajo de Matlab.
Para hacer uso pleno de la funcionalidad de una RNA tipo Madaline se requiere emplear un
conjunto de retardos de tiempo (en Matlab Tapped Delay Line, TDL) de tal forma que se
convierta esta RNA en un filtro adaptativo. En el campo del Procesamiento de Seales a
dicho filtro se le conoce como Filtro Lineal de Respuesta a Impulsos Finitos (FIR por sus
siglas en ingles). De esta forma el vector de entradas a la RNA esta conformado por el
valor de la seal actual y n-1 valores pasados de dicha seal (siendo n la cantidad de
entradas en la RNA tipo Madaline).
R Ec. 3.3
u (t ) = w1,i u (t i + 1) + b
i =1
donde:
R es la cantidad de entradas a la RNA
t es el ciclo actual de muestreo, t-1 seria el ciclo anterior.
Como se menciona en el apartado 2.2.10, la RNA tipo BP estndar es una RNA entrenada
mediante una generalizacin de la Regla de Aprendizaje de Widrow-Hoff y dicha regla de
entrenamiento puede aplicarse a RNAs de capas mltiples y con funciones de salida no
lineales, con la nica condicin de que sean diferenciables.
El proceso general para implementar una RNA de este tipo requiere cuatro pasos:
La GUI nntool permite crear RNAs tipo BP con distintas arquitecturas. La arquitectura de
la red BP ms empleada es la RNA tipo BP de capas mltiples con prealimentacin (Feed-
Forward Backpropagation), otra de ellas empleada en esta tesis es la RNA BP con retardos
de tiempo.
Para crear una RNA tipo BP de capas mltiples con prealimentacin es necesario
seleccionar la opcin Feed-forward backprop del men Network Type en la ventana
Create New Network. Al realizar esta accin se despliega la ventana mostrada en la figura
3.6 la cual muestra los parmetros a introducir con el fin de personalizar la RNA.
Fig. 3.6 Ventana desplegada para crear una RNA tipo BP de prealimentacin.
La dimensin del vector de entradas debe ser: dos columnas, una para el limite inferior y
otra para el limite superior, y la misma cantidad de renglones como de entradas que se
hallan declarado en el espacio Number of layers:. El numero de nodos en la capa de
entrada ser la cantidad introducida en el espacio Number of layers:.
Durante el entrenamiento de una RNA BP los pesos y sesgos son ajustados de forma
interactiva de tal forma que se minimice la funcin de ejecucin de la RNA. La funcin de
ejecucin por omisin para la red con prealimentacin es la del error medio al cuadrado
(MSE por sus siglas en ingles), esto es: el error cuadrado promedio entre las salidas de la
red u y las salidas deseadas t (ver figura 3.7 en la opcin Performance function:). Otras
opciones de funciones de ejecucin son MSEREG y SSE. Esta opcin determina la forma
en la que los pesos de la RNA son ajustados, para una descripcin de la manera en la que
trabajan las opciones MSEREG y SSE se puede ver el Capitulo 5 de [1].
En el entrenamiento de una RNA BP el formato de las entradas puede ser como un solo
vector o una matriz que agrupe un conjunto de vectores de entrada en el cual cada elemento
de entrada ocupa un rengln (conocido como simulacin por lotes).
Para entrenar una RNA BP se requiere de vectores que contengan las entradas a la RNA y
los valores correctos de las salidas correspondientes.
En el men Properties for: la capa Layer 1 representa la capa oculta y Layer 2 la capa de
salida de la RNA BP creada. De la misma forma se puede definir el numero de neuronas en
la capa seleccionada dentro del espacio en blanco Number of neurons:.
Despus de haber personalizado la RNA creada se puede seleccionar la opcin Create para
generar en la ventana Network/Data Manager el objeto que emula la RNA BP con los
parmetros introducidos. Estando lista para inicializar sus pesos (Initialize), entrenarse
(Train), simularse (simulate) actualizarse (adapt).
En la tabla 3.1 se muestran los algoritmos de entrenamiento disponible para una RNA BP.
Para entrenar la RNA creada, primero se debe seleccionar dicha RNA en la ventana
Network /Data Manager. Posteriormente se presiona el botn Train. Al hacer esto se
activa una nueva ventana con el titulo Network:Nombre de la RNA, vea la figura 3.8.
Dicha ventana permite observar datos concernientes al estado de la RNA, tal como valores
de inicializacin, parmetros de simulacin, y su arquitectura. La tecla Train contiene
opciones que permiten definir los datos de entrada y salida mediante la ventana Training
Info, figura 3.9. En dicha ventana se puede observar en el rea de Training Results que el
archivo con los datos de salida y errores tienen incluido al inicio el nombre de la RNA. Esto
permite identificarlos fcilmente si se desea exportarlos al espacio de trabajo de Matlab.
Para definir los parmetros que regirn durante el entrenamiento, tal como numero de
pocas, y error final es necesario dirigirse a la ventana Training Parameters que cuenta
con apartados que permiten definir dichos valores, figura 3.8.
Despus de haber definido los parmetros adecuados es posible activar el botn Train
Network el cual iniciara la ejecucin de dicha tarea.
Para verificar que una RNA ha sido entrenada adecuadamente es necesario retornar a la
ventana Network/ Data Manager y seleccionar la opcin Simulate del apartado
Networks Only, dicha opcin activara la ventana de la RNA y en ese momento se
selecciona la opcin Simulate, en la ventana desplegada por esta opcin se puede
modificar el nombre del archivo que almacena los datos de salida, as como los valores de
entrada y su origen, figura 3.10. Despus de hacer las modificaciones pertinentes se
presiona el botn Simulate network ubicado en la parte inferior derecha.
Fig. 3.10 Ventana para introducir los datos a emplear en la simulacin de una RNA
Para exportar los datos generados por una RNA con destino el espacio de trabajo de Matlab
es necesario retornar a la pantalla Network / Data Manager, figura 3.2. Al estar en la
ventana Network / Data Manager se puede seleccionar los datos que se desea sean
exportados al espacio de trabajo de Matlab y seleccionar el botn Export lo cual dar las
opciones Export o Save from Network / Data Manager, figura 3.11. Si solo se desea
exportar los datos al espacio de trabajo de Matlab se selecciona la opcin Export. De otra
manera la segunda opcin Save almacenara los datos en un archivo MAT.
Para limpiar la ventana Network/ Data Manager es necesario seleccionar cada una de las
variables presentes en la ventana y activar la opcin Delete, ver figura 3.2. De otra manera
ser necesario salir de Matlab, para volver a emplear el comando nntool y generar una
ventana limpia.
En la ventana Network / Data Manager existe la opcin Import la cual permite importar
los datos de una variable ubicada en el espacio de trabajos de Matlab o en un archivo de
unidad disco y generar su variable en la ventana Network / Data Manager, durante este
proceso se le puede asignar un nombre distinto a la variable generada en la ventana
Network/ Data Manager.
3.2 SIMULINK
Para crear en Simulink el modelo de una RNA creada en la caja de herramientas nntool y
previamente exportarla al espacio de trabajo de Matlab, se emplea el comando
gensim(net,tm) donde net es el nombre de la RNA a la cual se le desea generar su modelo y
tm es el tiempo de muestreo del bloque a generar, el valor por omisin para el tiempo de
muestreo es de -1, esto es muestreo continuo y es aplicable solo cuando la RNA no
contiene retardos de tiempo en alguna de sus capas.
El periodo de tiempo entre cada una de las muestras se introduce mediante el parmetro
Sample time:, ver figura 3.13. La cantidad de retardos de tiempo a aplicar en la seal se
introduce en el espacio Numbers of delays:. El bloque recibe una entrada escalar y genera
una salida por cada retardo de tiempo. El orden en los elementos del vector de salida se
determina en la lista de opciones Order output vector starting whit:. Las dos opciones
posibles son Oldest que ordena los elementos del vector de salida comenzando con la el
valor ms antiguo de la seal y finalizando con el ms actual y Newest que los ordena
comenzando de forma contraria. Los valores en la salida del bloque para el primer periodo
de muestreo se especifica en el parmetro Initial condition. La opcin Include current
input in output vector permite incluir los valores actuales de la seal en el vector de
salida.
Real-Time Workshop (RTW) es una extensin de capacidades para Simulink y Matlab que
permite compilar y generar automticamente el cdigo fuente de modelos desarrollados en
Simulink. De esta manera se pueden crear aplicaciones de software en tiempo real.
La forma en que se desarrolla una aplicacin con RTW puede observarse en el diagrama de
flujo en la figura 3.14.
Identificacin de requerimentos
para las opciones de configuracin
de la aplicacin.
Ajuste de parmetros
de configuracin
Ejecucin de la Aplicacin
S
Se requiere ajustar la
configuracin?
No
Generar cdigo
No
Es correcto el Cdigo?
Generar cdigo y
un programa ejecutable
No
Los resultados imitan
la simulacin?
FIN
Fig. 3.14 Diagrama de flujo para la creacin de una aplicacin en RTW [2].
Otra forma de verificar los parmetros pero en forma individual para cada uno de los
elementos del modelo es mediante la ventana Model Explorer ubicada en el men View en
Simulink, ver figura 3.16. Mediante esta ventana se pueden analizar, modificar y guardar
parmetros correspondientes a un modelo determinado.
Desde la ventana del modelo creado en Simulink se puede generar el cdigo y su archivo
ejecutable mediante la opcin Build Model(ctrl.+B), en el submen Real-Time
Workshop del men desplegable Tools. Durante el proceso de compilacin se crean una
gran variedad de archivos temporales y otros requeridos por RTW, estos son colocados
dentro del directorio de trabajo en una carpeta con el nombre del modelo. Para una lista y
descripcin de los archivos creados durante la construccin de una aplicacin se puede
consultar el capitulo 2 de Getting Started en [2].
Al crear una aplicacin particular se requiere especificar el elemento final que la ejecutara
(System Target), RTW cuenta con algunas configuraciones ya definidas de tal manera que
al seleccionar alguna de ellas se realizan los ajustes adecuados en los elementos a emplear,
en este trabajo se utilizara Real-Time Window Target como ambiente de ejecucin del
programa a realizar por lo que es necesario seleccionar la opcin rtwin.tlc del men RTW
system target file en la ventana Configuration Parameters. Si se desea monitorear o
almacenar en un archivo alguna de las seales generadas durante la ejecucin del programa
se puede seleccionar la opcin Enable archiving presente en la ventana External Data
Archiving del submen External Model Control Panel del men tools de Simulink.
Real Time Windows Target (RTWT) es una caja de herramientas de Matlab que permite
extender las habilidades de Simulink, de tal forma que los modelos generados en Simulink
puedan ser empleados como interfase grafica entre el usuario y una aplicacin de tiempo
real, permitiendo visualizar seales, ajustar parmetros y controlar la aplicacin en tiempo
real .
La ventana que nos permite emplear bloques de conexin entre la aplicacin software y el
sistema fsico empleando RTWT se puede acceder en la ventana de libreras de Simulink
(Simulink Library Browser), figura 3.17, en el submen Real-Time Windows Target.
En la ventana de bloques de RTWT se puede seleccionar alguna de los canales de seal
disponible en los dispositivos configurados. El tipo de bloque que pueda utilizarse
depender del dispositivo seleccionado. Los parmetros de configuracin de la seal
seleccionada se pueden modificar en la ventana Block Parameters : Analog Input, figura
3.18. Los parmetros comunes en una gran cantidad de tarjetas son: El tiempo de muestreo
(Sample Time:), que determinara la frecuencia con la que se realizan las mediciones en las
seales de entrada o salida y la unidad de tiempo que se emplea es el segundo.
El numero de entrada o salida que se pretende emplear, Input channels:, por si existen
varios canales de entrada o salida en el dispositivo seleccionado. El rango de valores en las
seales de entrada, Input range:. Y el tipo de dato a la salida del bloque seleccionado,
Block output signal:.
Para una descripcin mas detallada de los tipos de bloque disponibles y sus parmetros de
configuracin se puede ver el capitulo 4 de la gua de usuario en [3]. En la misma ventana
Block Parameters: se puede dar de alta alguna de las tarjetas de adquisicin de datos
compatible con RTWT, dentro de la opcin Install new board se puede seleccionar alguna
de las tarjetas de terceros fabricantes, figura 3.19, dentro de este men se puede seleccionar
la tarjeta PCI-6014 de National Instruments empleada en esta tesis.
La interfaz entre la tarjeta de adquisicin de datos y el motor de c.c. del PIS se realiza
mediante un amplificador de corriente lineal implementado con un amplificador
operacional (CI 1) y transistores BJT (T1 y T2). En el circuito se emplean dos transistores
con caractersticas elctricas idnticas (uno de ellos PNP y el otro NPN) en configuracin
emisor-seguidor, con los emisores conectados entre s (ver figura 3.20).
El motor de c.c. es alimentado a travs de los transistores BJT. Cuando el control del PIS
requiere que el motor gire en un sentido y a cierta velocidad, el amplificador operacional
acopla la seal de la tarjeta 6014 con los transistores de potencia. Estos amplifican la seal
en corriente para mover al motor con la velocidad y giro adecuado. El amplificador
operacional se realimenta (a travs de R2) del voltaje que le llega al motor para asegurarse
que la seal recibida de la tarjeta se transfiera fielmente al motor. La corriente que
proporcionan los transistores al motor son tomados de una fuente de voltaje adicional. Esta
fuente de voltaje proporciona un voltaje de +V=12 V. y V=-12 V a 3 amperios.
Para que el potencimetro proporcione una seal de tensin proporcional a la posicin del
cursor ste se conecta como divisor de tensin. La terminal de uno de los extremos se
conecta al voltaje fijo regulado por R3 y DZ1 y la del otro extremo a tierra. De la terminal
central con respecto a tierra se obtiene el voltaje proporcional al ngulo de giro. Para
conocer la posicin del pndulo se monitorea la seal S1 y para la posicin de la base mvil
la seal S2.
PARTE ELECTRICA DEL SISTEMA PIS
R3
E1 E3 - 12 V
S1 Cursor en Pndulo
R2 S2 Cursor en base
CI1 LM741
R1 T1 R1 10 K
E2 10 K
R2
CI1 R3 120
M1
T1 TIP31
T2
T2 TIP32
DZ1 10 V
M1 Motor 12 VCD
E3
El elemento impulsor para desplazar la base mvil del PIS es un motor de corriente directa
de 12 V y 1 A. Para transformar el movimiento giratorio del motor a un movimiento lineal
(y permita el desplazamiento horizontal de la base mvil) se ha utilizado un engrane y una
banda dentada como se puede observar en la figura 3.21. La carrera (longitud de
movimiento horizontal) del la base mvil es de 30 cm. aproximadamente. Esta base se
mueve horizontalmente sobre una barra gua para mantenerse en movimiento en un solo
eje.
Motor Impulsor
(M1) Engrane Base mvil Banda de transmisin
Barra Gua
1. Demuth, H. and M. Beale, Neural Networks Toolbox Users Guide. Version 4 ed. 2000,
Natick,MA: The MathWorks,Inc. 1-208.
2. MathWorks, Getting Started whit Real-Time Worshop For Use Whit Simulink. Version 6
ed. 2004, Natick, MA: The Mathworks, Inc. 1_1-3_51.
3. MathWorks, Real-Time Windows Target Users Guide. Version 2 ed. 2004, Natick,MA:
The Mathworks, Inc.
4. Instruments, N., The Measurement and Automation, in Catalog 2004. 2004, National
Instruments: Austin, Tx.
5. Zbar, P.B., A.P. Malvino, and M.A. Miller, Prcticas de Electrnica. 2001: AlfaOmega
Grupo Editor. 113-119.
6. Maloney, T.J., Electrnica Industrial Moderna. 3 ed. 1997: Prentice Hall. 338-342.
En este capitulo se describe la implementacin del controlador de posicin del PIS utilizando
redes neuronales. Se presenta el comportamiento del prototipo utilizando un controlador PID y
la forma en que ste se modific para generar datos vlidos para entrenar la red. Tambin se
describe el proceso de entrenamiento de la red para varios conjuntos de datos.
Para entrenar una RNA BP, empleando tcnicas de entrenamiento supervisado, es necesario
contar con informacin referente al comportamiento del sistema como los son datos de entrada
y salida. En nuestro caso los datos de entrada son las seales provenientes de los sensores de
posicin (potencimetros) y los de salida la seal de voltaje que se inyecta al motor de c.d. En
la figura 4.1 se presenta un esquema de los elementos utilizados en el prototipo desarrollado
as como el flujo de datos entre ellos. La computadora es utilizada para monitorear, procesar y
pos-procesar los datos. Adems en ella est incluido el algoritmo de la red neuronal
implementado en Matlab-Simulink. La interfaz incluye la tarjeta de adquisicin de datos as
como la etapa de potencia que permite accionar al motor. La interfaz es quien permite la
comunicacin entre la computadora y el mundo real. A travs de sus entradas analgicas
recibe la informacin de los sensores de posicin (posicin del pndulo ( ) y de la base
mvil x(t)) y mediante su salida analgica enva la seal de voltaje v(t) al motor del sistema
motriz.
PROTOTIPO
PIS
Sistema Motriz (t)
(t+1)
v(t) M
x(t) x(t+1)
INTERFAZ
PC :
Ejecuta Controlador:
PID o RNA
Almacena y Despliegua
datos
Para obtener los datos tanto de entrada como de salida se puede emplear uno de los mtodos
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
Las seales de realimentacin en nuestro PIS son una seal de voltaje proporcional a la
posicin angular del pndulo y otra proporcional a la posicin longitudinal de su base mvil.
La seal de control es el voltaje de alimentacin aplicado al motor de corriente directa M1.
Esta seal de control est limitada al rango de +10 a -10 V de la salida analgica de la tarjeta
6014.
Debido a que el clculo, diseo y seleccin de los componentes utilizados en el desarrollo del
prototipo estn fuera del mbito de esta tesis no se har referencia a ellos a menos que sea
necesario.
Sensor RV2
Posicin de base mvil (x )
Motor Impulsor
(M1)
Sensor RV1
Angulo de la barra ()
Por otro lado, debido a que en nuestro prototipo PIS se presentan tiempos muertos (el motor
M1 no comienza a girar sino hasta despus de un voltaje mnimo ( 1.7 Volts) y la banda de
transmisin no es completamente rgida, etc.) su comportamiento es distinto al del PIS ideal
modelado en la seccin 2.1.
De acuerdo a Anderson [4], es posible obtener una seal de control (que tienda a equilibrar el
sistema) conociendo los valores de posicin angular del pndulo y posicin horizontal de la
base mvil as como los de sus respectivas derivadas (ecuacin 2.16) [1].
20
-20
-5
-10
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
tiempo (ms) 4
x 10
Salida controlador PID con Filtro
Posteriormente se trunca a valores de +10......-10 V
50
Volts
-50
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
tiempo (ms) 4
x 10
Fig. 4.4 Respuesta del PIS utilizando el controlador PID con filtro
La respuesta del sistema utilizando el controlador PID con filtro se presenta en la figura 4.4.
En el eje x se encuentra la escala del tiempo (en milsimas de segundo) y en el eje de las
ordenadas la magnitud de voltaje proporcional a las seales de entrada y salida utilizadas
(multiplicado por su factor de conversin para graficarse en unidades adecuadas, ngulo o
desplazamiento lineal).
Como se puede observar el ngulo del pndulo y la posicin de la base mvil es oscilatoria y
tienden a crecer a medida que pasa el tiempo. En t = 8 s y 16 s las seales alcanzan una
magnitud importante por lo que es necesario modificar manualmente el ngulo del pndulo
mediante un pequeo empujn en el pndulo para evitar que la base mvil salga de sus limites
de desplazamiento horizontal.
El comportamiento del PIS con el controlador PID con filtro y elemento doble integrador se
muestra en la figura 4.6.
Dentro del conjunto de valores que se obtienen al controlar el prototipo PIS mediante los
reguladores proporcionales, integrales y derivativos existen datos que corresponden a
diferentes condiciones, algunos de ellos corresponden a periodos donde el prototipo ha estado
expuesto solo a la seal de control, y otros corresponden a fracciones de tiempo en el cual se
introdujo un impulso para evitar que la base mvil salga de sus lmites en la horizontal (ver
grafica 1 de la figura 4.6).
El mejor comportamiento de la RNA como imitadora del controlador es cuando los datos de
5
0
-5
-10
-15
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
tiempo (ms) 4
x 10
Salida controlador PID con doble integrador
Posteriormente se trunca a valores +10 ... -10 V
50
Volts
-50
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
tiempo (ms) 4
x 10
Fig. 4.6 Respuesta del PIS ante un controlador PID con doble integrador
Considerando el comportamiento del controlador PID con filtro, el controlador PID con doble
integrador y sus respetivas seales de control la tarea a imitar por la RNA BP, se procede a
implementar la RNA BP mediante la herramienta nntool de Matlab. Los parmetros
empleados se muestran en las figuras 4.7 y 4.8. Estos corresponden a una RNA BP de
realimentacin (RNA BP1) y una RNA BP con retardos de tiempo en sus entradas (RNA
BP2).
Los parmetros mostrados en dichas figuras fueron seleccionados despus de probar con
distinta cantidad de neuronas en la capa de entrada (layer 1), empleando las funciones de
transferencia disponibles en la ventana Create New Network / Transfer Function: y
analizando el proceso de aprendizaje de la RNA. En las figuras 4.9 y 4.10 se muestran las
representaciones graficas generadas por Matlab correspondientes a las RNA BP1 y RNA BP2.
Como se puede observar en las figuras 4.9 y 4.10 las dos RNAs creadas contienen la misma
cantidad de neuronas en la capa de entrada (columna izquierda obscurecida, dos neuronas),
cada una de ellas monitoreando la seal de realimentacin correspondiente (RV1 y RV2). La
RNA BP1 tiene mayor cantidad de neuronas en la capa oculta (14 neuronas) que la RNA BP2
(7 neuronas), pero la RNA BP2 tiene 4 retardos de tiempo en sus entradas (ver la opcin Input
delay vector: de la figura 4.8) que le permiten considerar mayor cantidad de informacin en el
aprendizaje de la funcin a imitar, al contar con una cantidad menor de elementos de
aprendizaje (neuronas en cualquiera de las capas o retardos de tiempo en alguna de sus
neuronas) la RNA podra no ser capaz de aprender la funcin deseada, por otro lado un exceso
de elementos podra provocar que la RNA solo memorice los datos presentados durante su
entrenamiento. La arquitectura seleccionada en este caso presenta un comportamiento
adecuado en su aprendizaje.
Al crear las RNAs se define la regla de aprendizaje a utilizar, que en este caso es la de
Gradiente Descendente ( Seccin 2.2.8.2) por ser la mas simple en caso de desear emular la
RNA en otro ambiente de programacin y poder reproducir los resultados obtenidos, tomando
como funcin de ejecucin el Error Medio Cuadrtico (Seccin 3.1.3.1) que nos permite
observar la convergencia de la RNA.
Al momento de entrenar una RNA BP se debe tener presente que el contenido de los vectores
de entrenamiento determinan la funcin aprendida por la RNA. Para el caso de una RNA que
no contiene retardos de tiempo no es tan importante el orden de los elementos del vector de
entrenamiento (pares entrada-salida deseada), pero para el caso en que estn presentes retardos
de tiempo (RNA BP2), tanto el orden de los elementos en el vector de entrenamiento como los
valores iniciales que se le asignan a dichos retardo son cruciales para determinar la funcin
asimilada por la RNA. Al realizar esta tesis errneamente se le asignaban condiciones iniciales
con valor 0 a los retardos de tiempo y el valor de error MSE obtenible en el entrenamiento de
las RNA BP1 y RNA BP2 no se diferenciaban significativamente, esto es, aprendan una tarea
muy similar. Creando un nuevo conjunto de datos que representen las condiciones iniciales en
los retardos de tiempo de la RNA BP2 (los cuales corresponden a los datos empleados en el
conjunto de entrenamiento) y empleando este como condiciones iniciales de los retardos es
posible lograr un aprendizaje ms similar a la tarea deseada. En el Apndice B se presenta el
programa empleado para generar el arreglo de vectores de las condiciones iniciales de los
retardos de tiempo.
Para llevar a cabo el entrenamiento de la RNA BP es necesario definir los parmetros que se
utilizaran durante el proceso, una adecuada seleccin de los parmetros de entrenamiento
permitir a la RNA BP aprender la tarea deseada (ver seccin 2.2.10). Para el entrenamiento
realizado en esta tesis se emplearon los parmetros de entrenamiento mostrados en las tabla
4.1 y 4.2 (por conveniencia esta ltima se presenta en una pgina posterior).
Como podemos ver en la figura 4.11 la RNA despus de aproximadamente 500 ciclos de
entrenamiento comienza a disminuir su convergencia pero variando sus parmetros de
entrenamiento (tabla 4.1) aun se logra disminuir el valor de MSE ( hasta obtener un valor final
de 58.39).
2
MSE en ultimo ciclo: 58.3911 , Meta: 0
10
Valor Mean Square Error
1
10
0
10
0 1000 2000 3000 4000 5000 6000 7000
Epocas
De la figura 4.12 podemos observar que la RNA BP1 se comporta como filtro de seal que
como imitadora de la funcin, siendo mas parecido a la salida deseada el valor de error
obtenido, a pesar de ello la seal de control que genera presenta un comportamiento aceptable
en el PIS.
Para el entrenamiento de la RNA BP2 se emplearon los dos conjuntos de datos obtenidos,
tanto del controlador PID con filtro como del controlador PID con doble integrador, con el fin
de obtener dos RNAs cada una de ellas emulando el comportamiento presentado en su
conjunto de entrenamiento. El conjunto de valores de entrada-salida deseada obtenidos por el
controlador PID con filtro fue el mismo que el empleado para entrenar la RNA BP1, la
normalizacin en el vector de entradas fue el mismo para las RNA BP1 y RNA BP2, ver
Apndice A. Los parmetros a emplear durante el entrenamiento de la RNA BP2 se presentan
en la tabla 4.2.
0
-20
-40
0 500 1000 1500 2000 2500 3000 3500 4000
4000 patrones de salida deseada
Salida RNA BP1 ante sus patrones de entrenamiento
40
20
Volts
-20
-40
0 500 1000 1500 2000 2500 3000 3500 4000
Error obtenido en la RNA BP1 con el conjunto de entrenamiento
20
-20
0 500 1000 1500 2000 2500 3000 3500 4000
Fig. 4.12 Respuesta de la RNA BP1 despus del tercer ciclo de entrenamiento
3
10
Valor Mean Square Error
2
10
1
10
0
10
0 200 400 600 800 1000 1200 1400 1600 1800 2000
Epocas
Fig. 4.13 Valores MSE de RNA BP2 durante el cuarto ciclo de entrenamiento
(Datos obtenidos de controlador PID con Filtro)
Volts
0
-20
-40
0 500 1000 1500 2000 2500 3000 3500 4000
4000 patrones de salida deseada
Salida RNA BP1 ante sus patrones de entrenamiento
40
20
Volts
-20
-40
0 500 1000 1500 2000 2500 3000 3500 4000
Error obtenido en la RNA BP1 con el conjunto de entrenamiento
10
-10
Fig. 4.14 Respuesta de la RNA BP2 despus del cuarto ciclo de entrenamiento
(Datos obtenidos del controlador PID con filtro)
Para entrenar la RNA BP2 empleando el conjunto de datos obtenidos del controlador PID con
doble integrador se utilizaron los parmetros de entrenamiento mostrados en la tabla 4.2 (parte
inferior).
De la figura 4.15 podemos ver que a pesar de que el error en la salida oscila entre +5-5
aprox. La salida que genera la RNA (grafica central de figura 4.15) es muy parecida a la salida
deseada (figura superior), de esto podemos considerar que el aprendizaje de la RNA es
aceptable.
Cuando consideramos que la RNA ha asimilado la tarea que se desea realice, solo resta
presentarla ante condiciones distintas y de esta forma comprobar que la RNA puede
generalizar su respuesta y desempear su funcin como controlador. Para esto, Matlab cuenta
con las herramientas Simulink y Real Time Windows Target que permiten crear el modelo que
emula la RNA creada y entrenada con el administrador de RNAs de la GUI nntool.
Salida deseada
10
-10
-20
0 500 1000 1500 2000 2500 3000
Salida RNA BP2
15
10
Salida RNA BP2
-5
-10
-15
0 500 1000 1500 2000 2500 3000
Error despues de 14000 epocas
Salida deseada - Salida RNA BP2
10
-5
-10
0 500 1000 1500 2000 2500 3000
Fig. 4.15 Respuesta de la RNA BP2 despus del cuarto ciclo de entrenamiento
(Datos obtenidos del controlador PID con doble integrador)
Como se menciono en el capitulo 3, el espacio de memoria que emplea nntool es distinto al del
espacio de trabajo de Matlab, debido a esto para emplear una RNA creada con nntool, primero
es necesario exportar la RNA en cuestin al espacio de trabajo de Matlab mediante la opcion
export.
En la figura 4.16 se puede observar la forma en que se implementan las RNAs utilizadas
dentro del modelo Real Time Workshop, el elemento obscuro ( RNA BP) de esta figura
corresponde a la RNA BP2 pero un modelo similar se obtiene para cada una de las RNA
generadas con nntool.
La tarea de control generada por la RNA BP2 aun tiende a exceder los limites de
desplazamiento horizontal de la base mvil por lo que se decide introducir una seal manual
que auxilie a la RNA BP2 en el control del PIS. La seal auxiliar es de +12 o -12 dependiendo
del lmite (izquierdo o derecho) que esta a punto de excederse y la direccin de
desplazamiento en la base mvil.
La seal se introduce por otro canal de entrada analgica de la tarjeta PCI 6014 mediante
botones pulsadores en el momento de observar que la base mvil sale de ciertos limites en la
horizontal, dicho limite no es esttico sino que el operador que la genera decide en que
momento introducir una seal auxiliar correctora en funcin de la posicin que observa en la
base mvil.
En la figura 4.17 se observa el modelo Real Time Workshop que se emplea para realizar la
tarea de control de forma auxiliada y en la figura 4.18 podemos ver el comportamiento del PIS
frente a estas condiciones.
Para auxiliar el control del PIS se modifica la seal que realimenta la posicin de la base
mvil atenuando el efecto de esta ( bloque Gain2 de figura 4.17), de tal forma que la RNA
BP2 tiende a poner nfasis en el control del ngulo del pndulo (+3-3 grados, grafica
superior de figura 4.18), aunque el control de la posicin de su base mvil en cierta forma es
descuidado (grafica central superior de figura 4.18), para evitar que la base mvil salga de
cierto rango se introducen los picos de voltaje en forma manual (grafica central inferior de
figura 4.18) los cuales generan las perturbaciones convenientes en el ngulo de la barra
(grafica superior de figura 4.18), permitiendo que la base mvil se mantenga dentro de sus
rangos de desplazamiento. Si la base mvil esta a punto de alcanzar uno de sus limites
horizontales se introduce un pico de voltaje que incline la barra-pndulo en direccin contraria
al limite que se esta a punto de alcanzar, de esta forma la seal de control generada modifica la
direccin de la base mvil.
Para implementar la seal auxiliar como parte del controlador se entreno una RNA con 4
retardos de tiempo en su entrada, en funcin solo de la posicin horizontal de la base mvil, su
nica seal de entrada es la posicin de la base mvil.
El modelo Real Time Workshop del controlador implementado con las dos RNAs se presenta
en la figura 4.19. Se observan tambin algunos bloques de Ganancia para normalizar los
valores de entrada a las RNAs y tambin los valores de Ganancia necesarias para convertir las
variaciones de voltaje en unidades de desplazamiento angular o longitudinal, segn sea el
caso.
Despus de obtener las RNAs que generan la tarea de control deseada y teniendo ya su
modelo en Simulink se procede a generar y ejecutar la aplicacin en Real Time Workshop con
el fin de observar el comportamiento del PIS prototipo ante estas nuevas condiciones.
-10
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
tiempo (ms) 4
x 10
Posicin horizontal Base mvil (Respecto a centro en superficie de apoyo)
cm (100 cm = 1 m)
10
-10
0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000
tiempo (ms)
Seal correctora auxiliar
20
Volts
-20
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
tiempo (ms) 4
x 10
Salida de RNA BP2 mas seal correctora
40
20
Volts
-20
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
tiempo (ms) 4
x 10
Fig. 4.18 PIS controlado con RNA BP2 mas seal auxiliar
REFERENCIAS DE CAPITULO
1. Chou, S.C.-M., D. Goldberg, and otros, Inverted Pendulum, in Control Systems. 2001,
UBC: Conecticut. p. 6-28.
2. Mguelez Garca, R., Estudio diseo y desarrollo de una aplicacin de tiempo real y de
un simulador para su comprobacin. 2001, U. Cantabria: Cantabria.
3. Jones, P.C. and S. Tepavich, ADALINE Stabilization of an Inverted Robot Arm. 1997,
www.aracnet.com.
4. Anderson, C.W., Learning to Control an Inverted Pendulum Using Neural Networks.
IEEE Control Systems Magazine, 1989. April 1989: p. 31-37.
5. Freeman, J.A. and D.M. Skapura, Neural Networks: algorithms, applications, and
programming techniques. 1 ed. Computation and Neural Systems, ed. C. Koch. Vol. 1.
1991, California: Addison Wesley. 45-124,341-371.
5.1 RESULTADOS
A lo largo de este trabajo se desarrollaron varias arquitecturas de RNAs , sin embargo solo se
muestran las que presentan resultados ms relevantes. Tambin se realiz un trabajo arduo con
controladores clsicos como el PID para generar datos de entrada y salida vlidos para
entrenar a las RNAs.
En total se desarrollaron tres controladores con RNAs. El primero de ellos fue con una RNA
back-propagation (RNA BP1) entrenada con datos obtenidos del PIS controlado mediante un
controlador PID sencillo. En la figura 5.1 se muestra el comportamiento del prototipo PIS con
la RNA BP1 actuando como controlador.
Se puede observar en la grfica inferior como la posicin de la base mvil casi excede los
limites de desplazamiento horizontal del prototipo, por lo que fue necesario introducir
perturbaciones de forma manual (perturbacin 1, 2 y 3) para evitar que esta saliera de sus
mrgenes horizontales de operacin (+15-15 cm). Este comportamiento en cierta forma es
el que se esperaba ya que cuando se implement el controlador con el PID los resultados eran
muy similares. La variacin del ngulo del pndulo respecto a la vertical (grfica superior de
la figura 5.1) lleg a oscilar hasta +15 y -15 grados cuando los lmites de desplazamiento
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
De acuerdo a la teora presentada en el capitulo 2 era de esperarse que con un simple PID no
se pueda controlar por completo al pndulo invertido. Este tipo de controlador sintonizado
correctamente puede llegar a equilibrar al pndulo pero la base mvil se mover hasta uno de
los extremos ya que el PID solo puede controlar una variable y no dos a la vez (ngulo del
pndulo y posicin horizontal de la base mvil).
El segundo controlador utilizado fue con la RNA back-propagation (RNA BP2) que tiene
como caracterstica adicional respecto a la RNA BP1 la inclusin de retardos de tiempo (4
retardos) en sus entradas. Como se mencion en el captulo anterior los retardos de tiempo en
las entradas de la red permiten retener mayor cantidad de informacin durante el proceso de
aprendizaje. Otra caracterstica es que la RNA BP2 solo tiene 7 neuronas en la capa oculta
contra 14 que tiene la RNA BP1.
Los datos para entrenar esta RNA se obtuvieron del mismo controlador PID utilizado para la
RNA BP1. El nico cambio que se realiz fue que al PID se le aadi un filtro digital (figura
4.3) para disminuir el ruido proveniente del sensor del pndulo pensando en que esto podra
mejorar la respuesta. En la figura 5.2 se presentan los resultados en tiempo real del prototipo
PIS implementado con la RNA BP2. Como se puede observar de la grfica superior la
magnitud y frecuencia de oscilacin del pndulo disminuyen en forma notable respecto a su
contraparte de la figura 5.1. Sin embargo an con esta mejora la respuesta del pndulo no es
adecuada ya que nuevamente es necesario introducir perturbaciones manuales para evitar que
la base mvil salga de su rango de desplazamiento. En la grfica inferior de la figura 5.2 se
puede ver incluso que la base mvil tiende a llegar con mayor facilidad a los extremos.
Ante estas conclusiones se procedi a buscar la forma de mejorar el controlador PID para
mantener estable tanto al pndulo como la base mvil del PIS. En la figura 5.3 se presenta el
nuevo comportamiento del PIS con la RNA PB2 entrenada con datos obtenidos de un
controlador PID con filtro y doble integrador (figura 4.5). Como se puede apreciar en la
grfica superior el comportamiento del pndulo es ms estable, aunque a medida que
evoluciona el tiempo la amplitud de la oscilacin tiende a crecer (figura 5.3). Este
comportamiento es similar en la base mvil, la magnitud de su oscilacin tambin tiende a
crecer. Ya que la oscilacin del pndulo y de la base mvil crecen progresivamente, en t=15
seg. se le ayuda manualmente al pndulo con un pequeo empujn para que la base mvil
no llegue a exceder los lmites de desplazamiento. Una vez que casi se estabiliza el pndulo
con el empujn ste vuelve a repetir el patrn, aumenta la magnitud de su oscilacin a medida
que evoluciona el tiempo.
De este ltimo experimento surge la idea de ayudar a la RNA BP2, entrenada con datos
obtenidos del controlador PID con doble integrador, a estabilizar tanto al pndulo como a la
pieza mvil, ya no con empujones en el pndulo, sino con pulsos de voltaje aplicados
directamente al controlador en forma manual. La ventaja de aplicar estos pulsos directamente
al controlador es que los datos de entrada y salida que se obtienen para entrenar la RNA
contienen informacin de manera inherente de los pulsos aplicados para corregir la
inestabilidad del pndulo y base mvil. Los resultados en este experimento dependen hasta
cierto punto de la habilidad de la persona que est aplicando los pulsos de voltaje. A la RNA
entrenada con estos datos se le ha asignado en este trabajo con el nombre de RNA AUX.
El controlador con RNA en este experimento no solo est implementado con la RNA AUX
Capitulo 5. Resultados 80
Control de un Pndulo Invertido Empleando Redes Neuronales Artificiales
sino que tambin incluye a la RNA BP2 como ya se explic en el punto 4.5. La RNA AUX
tambin tiene cuatro retardos de tiempo en su seal de entrada (posicin de la base mvil) al
igual que la RNA BP2, que le permiten considerar la posicin y direccin del desplazamiento.
Al utilizar estas dos redes neuronales se logra mantener al pndulo oscilando dentro de un
estrecho margen angular y a la base mvil con pequeos desplazamientos, siendo estos los
efectos deseados (aunque no los ptimos) en el PIS.
La respuesta del PIS con el controlador compuesto de la RNA BP2, entrenada con datos
generados por los reguladores PID con doble integrador, y la RNA AUX, entrenada con datos
generados manualmente, se presenta en la figura 5.4
Fig. 5.4 Respuesta del PIS controlado por la RNA BP2 ms la RNA AUX
En este capitulo presento las conclusiones emanadas de los resultados obtenidos, as como
algunas recomendaciones para aquellas personas que quieran seguir trabajando con el PIS
utilizando las redes neuronales como medio de control. Estas recomendaciones las he separado
en aquellas que se relacionan con el prototipo y las que tienen que ver con la implementacin
de las RNAs. Tambin presento algunas propuestas para trabajos futuros con el PIS y las
RNAs.
6.1 CONCLUSIONES
A travs de esta tesis se ha comprobado que las redes neuronales pueden emular el
comportamiento de un controlador PID digital para controlar un pndulo invertido simple. Se
ha visto que si los datos obtenidos para entrenar la red neuronal son errneos, la red arrojar
resultados errneos. Si los datos son adecuados, el comportamiento de la red ser por lo
general el esperado.
La configuracin de la red neuronal es tambin un punto clave para que una aplicacin sea
exitosa. Si los datos de entrenamiento son correctos, pero la arquitectura de la red no es la
adecuada para la aplicacin, difcilmente la red neuronal se comportar como se espera. Como
pudimos observar de las figuras 5.1 a 5.4, el hecho de utilizar retardos de tiempo en las
entradas de las RNAs permite retener mayor informacin en el momento del entrenamiento
repercutiendo en un mejor aprendizaje de la tarea deseada. En resumen, el grado de xito que
se obtiene en el proceso de entrenamiento de una RNA depende de una seleccin adecuada de
su arquitectura y los parmetros de entrenamiento a utilizar. La informacin que se le presente
a la RNA se puede modificar mediante normalizacin de sus valores en las seales de entrada
de tal forma que se pueda resaltar las caractersticas ms importantes del comportamiento a
aprender. La tarea que aprende la RNA es determinada en gran manera por los atributos mas
activos de la informacin presentada (valores mayores tendrn mayor peso en la tarea
aprendida).
Adems de los puntos anteriores el desarrollo de la tesis deja en claro las siguientes
conclusiones:
a) Las redes neuronales pueden llegar a aprender lo que uno les quiera ensear.
f) Los datos de entrada y salida para entrenar una RNA deben estar fielmente ligados a la
accin y reaccin del controlador que se desea emular. El resultado no sera el
esperado si solo se modifican los datos de entrada o de salida sin crear un vnculo
vlido entre los dos conjuntos de datos.
6.2 RECOMENDACIONES
En referencia al prototipo recomiendo utilizar otro tipo de sensores para detectar la posicin
del pndulo y de la base mvil. Una posible opcin puede ser utilizar un encoder el cual
introduce menos ruido que los potencimetros empleados. Aunque vale la pena decir que al
utilizar los encoder ser necesario utilizar una etapa adicional en el control para convertir los
pulsos a valores de posicin.
Se recomienda tambin colocar interruptores en los extremos de la barra gua para evitar que
el motor se fuerce innecesariamente en caso de que la base mvil llegue a uno de ellos.
Vale la pena tambin comentar que es necesario redisear la base que soporta al pndulo y
sensor de posicin ya que la actual no tiene buen acoplamiento mecnico entre el eje que une
la barra y el sensor de posicin. Esta imperfeccin mecnica altera el valor de la posicin
sensada en relacin a la posicin real del pndulo.
En relacin al controlador que aporta los datos de entrenamiento para la RNA recomiendo
utilizar otras tcnicas de control para mejorar el comportamiento del PIS. Algunas de estas
tcnicas pueden ser control no lineal o variables de estado.
Sera conveniente tambin experimentar con otras arquitecturas de RNAs que incluyan
conexiones de realimentacin desde las neuronas de salida hacia las neuronas de entrada
(feedback) ya que estas han tenido xito en otras aplicaciones de control.
Como trabajo futuro propongo que se implementen RNAs en un procesador digital de seales
(DSP), el cual puede ser programado en lenguaje C VisSim (leguanje grfico). El propsito
sera prescindir de la computadora una vez programado el DSP para aplicaciones donde el
espacio es un factor importante.
Al contar con el prototipo PIS, otro trabajo futuro es hacer uso de otras herramientas de las
Tcnicas de Computacin Suave (Lgica Difusa y Algoritmos Genticos) e implementarlas
como controladores en tiempo real de este prototipo.
Para el PIS, como trabajo futuro queda el implementar otra tarea de control complementaria a
la realizada en este trabajo, la cual involucrara equilibrar en la vertical superior a la barra-
pndulo partiendo de su posicin vertical hacia abajo (esto es 180 de la vertical superior).
De la misma forma queda pendiente implementar el control mediante RNAs de otros sistemas
fsicos no lineales tales como el pndulo invertido con dos eslabones, equilibrio de una masa
sostenida por un eslabn, control en la trayectoria de un proyectil, etc. As como sistemas
mecnicos que involucren informacin visual, tal como el control de posicin de un brazo
mecnico en funcin de informacin recabada por medio de visin digital, etc.
A
* * Programa Normalizador de entradas a RNA BP * *
A2=PISF_0.signals(1).values(7001:10000);
B2=PISF_0.signals(2).values(7001:10000);
C2=PISF_0.signals(3).values(7001:10000);
AA1=A2';
BB1=B2';
CC1=C2';
AAA=(AA1/0.05);
BBB=(BB1/2);
CCC=(CC1);
x_teta=[AAA;BBB];
v_deseado=[CCC];
B
* * Programa genera el arreglo de vectores correspondientes a los 4 retardos de tiempo
empleados en la RNA BP2 * *
A2=Seal.signals(1).values(7001:10000);
B2=PISF_0.signals(2).values(7001:10000);
C2=PISF_0.signals(3).values(7001:10000);
D11=([PISF_0.signals(1).values(6996:9995)])/0.05;
D12=([PISF_0.signals(1).values(6997:9996)])/0.05;
D13=([PISF_0.signals(1).values(6998:9997)])/0.05;
D14=([PISF_0.signals(1).values(6999:9998)])/0.05;
D15=([PISF_0.signals(1).values(7000:9999)])/0.05;
D121=([PISF_0.signals(2).values(6996:9995)])/2;
D122=([PISF_0.signals(2).values(6997:9996)])/2;
D123=([PISF_0.signals(2).values(6998:9997)])/2;
D124=([PISF_0.signals(2).values(6999:9998)])/2;
D125=([PISF_0.signals(2).values(7000:9999)])/2;
DA1=[D15';D125'];
DB1=[D14';D124'];
DC1=[D13';D123'];
DE1=[D12';D122'];
DF1=[D11';D121'];
AA1=A2';
BB1=B2';
CC1=C2';
AAA=(AA1/0.05);
BBB=(BB1/2);
CCC=(CC1);
x_teta=[AAA;BBB];
v_deseado=[CCC];