Esquema de Control Inverso Con Redes Neuron Ales Artificiales
-
Upload
jairo-vargas-caleno -
Category
Documents
-
view
587 -
download
6
description
Transcript of Esquema de Control Inverso Con Redes Neuron Ales Artificiales
Página 1
DISEÑO E IMPLEMENTACIÓN DE UNA INTERFAZ
GRAFICA DE USUARIO PARA CONTROL INVERSO CON
REDES NEURONALES ARTIFICIALES
Jairo Vargas Caleño Ingeniero en Control – [email protected]
Universidad Distrital “Francisco Jose de Caldas”
RESUMEN
Este trabajo se sitúa en un campo de investigación en el que intervienen en particular la
Teoría del Control, las Ciencias de la Computación, el Análisis Numérico y la
Optimización. Abarca el estudio de las propiedades de las RNA, haciendo énfasis en las
ideas y métodos más relevantes aplicados al control de sistemas, con el objetivo de
utilizar estas propiedades y capacidad de aproximación a través de una Interfaz de
Usuario Grafica (GUI) en MATLAB® que permita aplicar el Esquena de Control Directo
Inverso Generalizado (ECDIG) a plantas clásicas.
ABSTRACT
This work is located in an investigation field in which intervene in particular the Control
Theory the computation, Sciences, the Numeric Analysis and the Optimization. The
project cover the properties studys of the RNA, doing emphasis in ideas and methods
more outstanding aplicated to the of systems control in order to use this properties and
aproximation capacity through of Graphical User Interfaces (GUI) in MATLAB® that
allows to applicate the genarelized Inverse Direct Control outline in classic plants.
1 Introducción
Las redes neuronales artificiales (RNA) han
sido utilizadas en el campo del control
Automático por la posibilidad que ofrecen para
aproximar funciones no lineales a funciones
lineales de tal forma que al someter una RNA a
procesos de entrenamiento se puede lograr
identificar o controlar procesos dinámicos sobre
todo aquellos de los cuales no poseemos
información o un modelo.
El objetivo de este trabajo es presentar
conceptos introductorios sobre redes neuronales
y esquemas de control incorporando estructuras
de esta naturaleza, se hace énfasis en el
esquema de Control Directo Inverso
Generalizado (ECDIG) expuesto por Norgaard
en su libro. Como plantas de prueba se emplean:
Motor DC, Sistema masa resorte con
amortiguamiento, Brazo robot de un eslabón,
Tanque esférico y Tanque cónico. El objetivo
final de la GUI esta en aplicar aprendizaje
generalizado y especializado para generar una
estructura neuronal con cuatro entradas, una
capa oculta de hasta de 15 neuronas y una
salida lineal que permita controlar la planta bajo
el ECDIG.
2 Definición Del Problema De Control
Las redes de neuronas artificiales ocupan un
lugar importante en el desarrollo de técnicas de
Control para procesos dinámicos. Cuando se
habla de control de procesos utilizando redes de
neuronas generalmente se entiende que es una
red la encargada de calcular la acción de control
que hay que aplicar al proceso para que se
Página 2
alcance el objetivo de control deseado. La
diversidad de los métodos o estrategias de
control radica en el modo de realizar el
entrenamiento de la red, así como en el tipo de
red utilizada.
Cuando se utilizan redes neuronales
supervisadas para el control de procesos
dinámicos es necesario disponer de una
respuesta deseada para realizar el entrenamiento
de la red. Los algoritmos de aprendizaje se
basan, generalmente, con el método de
descenso del gradiente, de manera que los pesos
o parámetros de la red que actúa como
controlador se adaptan siguiendo la dirección
negativa del gradiente de una determinada
función error.
Básicamente el problema de control neuronal se
puede dividir en dos grupos:
a. Control directo
En este caso el control lo realiza una red
neuronal. La implementación de este tipo de
control es sencilla mientras que el diseño y
sintonización son algo más complicados ya que
a través del tiempo es necesario modificar
parámetros de diseño.
Dentro de este tipo de controladores existen los
siguientes esquemas:
• Control Directo Inverso
• Control con modelo interno
• Linealización por retroalimentación
• Control Neuronal por Retroalimentación
(Feedforward Control)
• Control optimo
b. Control indirecto
Esta clase de controladores siempre se basan en
modelos. El objetivo es utilizar una red
neuronal para modelar el sistema a controlar. El
modelo está entrenado normalmente por
adelanto y el controlador está diseñado en línea;
esto lo hace muy flexible y por tanto más
adecuado para la mayoría de problemas
comunes de control. En este grupo podemos
encontrar los siguientes esquemas:
• Control predictivo
• Ubicación de polos aproximada
• Control de varianza mínima
• Control predictivo no lineal
2.1 Control De Procesos Dinámicos
Un proceso o sistema dinámico puede definirse
como una combinación de elementos o
componentes relacionados entre sí y que actúan
para alcanzar una determinada meta. El estudio
de un proceso dinámico es el estudio de la
variación a lo largo del tiempo de las variables
de salida de dicho proceso, a partir de las
variables de entrada que afectan al
comportamiento dinámico del proceso.
Desde un punto de vista matemático, un
proceso dinámico se suele representar mediante
una relación (directa o indirecta) entre las
variables de entrada y salida del proceso, es
decir, entre las variables medibles y observables.
Para la mayor parte de los procesos dinámicos
reales, no es fácil conocer estas relaciones o
representaciones matemáticas. Generalmente, la
información disponible viene dada por un
conjunto de datos observados, los cuales
requieren una interpretación para obtener una
representación matemática del proceso. El
problema de determinar dicha representación,
también llamada modelo del proceso, es
conocido como el problema de modelización e
identificación de procesos dinámicos.
Los procesos dinámicos requieren lo que se
conoce como sistemas de control, es decir,
sistemas que mediante la manipulación de
ciertas variables de entrada al proceso (aquellas
que puedan ser manipuladas), regulan el
comportamiento de las variables de salida, para
alcanzar el objetivo deseado.
2.2 Esquema del control directo inverso
generalizado Con redes neuronales (CDIG)
A continuación se presenta el esquema de
Control Directo Inverso Generalizado (CDIG)
Página 3
basado en redes neuronales supervisadas.
Pueden utilizarse redes con conexiones hacia
adelante, como redes recurrentes, aunque las
más utilizadas han sido el perceptron multicapa
y las redes parcialmente recurrentes.
2.2.1 Descripción
El concepto de inversión se origina cuando se
intenta resolver el problema de seguimiento,
para ello, podemos considerar una planta (el
sistema a ser controlado) con una entrada u(t) y
salida y(t), las que están relacionadas por el
modelo de entrada-salida:
y(t)=gt[u(t)], t∈ R
En esta descripción gt(0) es un operador
generalizado, incluso variante en el tiempo, no
lineal y dinámico, que captura la forma en que
la salida depende de la entrada. Se supone
inicialmente, que esta planta es estable, eso es,
que el operador gt(0) es estable, en el sentido
que la salida y(t) permanece acotada, para
cualquier entrada acotada u(t). Se requiere que
la salida siga la señal de referencia arbitraria y
acotada r(t).Se debe tener en cuenta una
elección adecuada para ct(c) tal que u(t) = ct,
r(t) e y(t) = r(t )como se describe en la
siguiente figura:
Figura 1. Problema fundamental de
seguimiento
En la figura 1., (1.0)
Entonces, para lograr y(t) = r(t), la ley de
control debe ser:
(1)
De modo que el controlador )0(tc realice una
operación inversa de aquella realizada por el
operador )0(tg .
Existen algunos criterios que determinan que
tan cerca del inverso ideal se encuentra una
buena solución al problema de diseño. Algunos
de estos elementos son:
Estabilidad
Causalidad
Causalidad
Incertidumbre
Adicionalmente, una descripción lineal es
siempre una aproximación de la planta real en
una región de operación, ya que toda la planta
real posee rasgos no lineales, incluyendo
saturación en la entrada. Por lo tanto, el
objetivo es encontrar un inverso aproximado.
Se suele decir que se tiene un buen inverso, si
ese inverso aproximado es estable, realizable,
robusto, y si genera comandos de control dentro
de límites aceptables.
El esquema de control CDIG, fue uno de los
primeros métodos propuestos. La red neuronal
se entrena para aprender la dinámica inversa de
la planta, el que al conectarse en serie con la
planta nos permite obtener una ganancia
cercana a la unidad.
Figura 2. Red de neuronas actuando como
controlador
Este esquema de control consiste en aproximar
mediante una red de neuronas la dinámica
inversa del proceso. Suponiendo que la salida
de un proceso dinámico se puede expresar de la
forma Y(t + 1) = S[u(t)], siendo u la entrada al
proceso, la relación inversa es una expresión de
la forma )]1([)( 1 tystu . Por tanto, en una
estrategia de control inverso la red de neuronas
se utiliza para aproximar la relación 1S .
Cuando se plantea un esquema de control
inverso utilizando redes de neuronas, el
aprendizaje de la red puede llevarse a cabo
Página 4
mediante dos formas diferentes, denominadas
aprendizaje generalizado y aprendizaje
especializado, las cuales se describen a
continuación.
2.2.2 Aprendizaje generalizado
En este caso, la red de neuronas se entrena para
que aprenda la dinámica inversa del proceso en
su totalidad. Para ello, se utiliza un conjunto de
datos representativo de dicha dinámica inversa,
los cuales se obtienen manipulando la acción de
control en sus diferentes rangos de operación y
observando o midiendo la salida del proceso
para dicha señal.
En la Figura 3, se muestra el esquema del
aprendizaje generalizado. Se puede observar
que la entrada al proceso actúa como la salida
deseada para la red, mientras que la salida del
proceso es la entrada a la red. Por tanto, el
aprendizaje de la red se realiza siguiendo la
dirección negativa del gradiente de la siguiente
función error:
(2)
Una vez realizado el entrenamiento de la red,
ésta puede utilizarse para el control; basta
sustituir la entrada a la red y(t + 1) por el
objetivo de control, ydes como se muestra en la
Figura 1
Figura 3. Esquema de control inverso con
aprendizaje generalizado
2.2.3 Aprendizaje especializado
Mediante el aprendizaje especializado, la red
aproxima la dinámica inversa local del proceso,
es decir, la dinámica inversa en una
determinada región de interés y no en todo el
rango de operación de la acción de control.
Figura.3 Esquema de control inverso con
aprendizaje especializado
Como se muestra en la Figura 1.3., la entrada a
la red es el objetivo de control y la salida de la
red es la acción de control que se aplica al
proceso dinámico. El aprendizaje de la red se
realiza para minimizar la diferencia entre la
salida del proceso y el objetivo de control
deseado, es decir:
(3)
Para poder realizar el aprendizaje de la red
siguiendo la dirección negativa del gradiente
del error dado por la Ecuación (3), es necesario
conocer el Jacobino del proceso, es decir, la
variación de la salida del proceso respecto de la
entrada dy
du. Esto es debido a que el proceso se
coloca entre la red que actúa como controlador
y la función error a minimizar. En el caso de
que dicho Jacobiano sea desconocido, es
necesario utilizar una aproximación.
Página 5
3 Principios básicos para aplicar control
directo inverso generalizado (CDIG)
Figura.4. Esquema de control CDIG
Inicialmente se parte de la premisa que una
planta puede ser descrita con la ecuación (4):
y(t +1) = g[y(t), ... , y(t − n +1), u(t), ... , u(t −
m)] (4)
La red neuronal que se seleccione para aprender
la dinámica inversa de la planta tendrá que
estimar la función uˆ(t) como:
uˆ(t) = gˆ −1[y(t +1), y(t), ... , y(t − n +1),
u(t), ... , u(t − m)] (5)
Suponiendo que esa red ha sido entrenada y
obtenida de alguna manera, esta puede
utilizarse para controlar el sistema mediante la
sustitución de la salida y(t +1) por la referencia
deseada representada como r(t +1) .
uˆ(t) = gˆ −1[r(t +1), y(t), ... , y(t − n +1),
u(t), ... , u(t − m)](6)
Los pasos para la implementación del
controlador pueden resumirse entonces de la
siguiente manera.
Figura 5. Implementación del ECDIG
a. Obtención de los datos de la planta
Los datos de la planta se obtienen realizando
un experimento con el fin de adquirir una buena
cantidad de datos que logren describir el
comportamiento del sistema sobre todo el
rango de operación que se desea trabajar. Así,
el objetivo de esta etapa se centra en excitar el
sistema con una entrada conocida y observar
cómo se comporta la salida del sistema. Estos
datos, se utilizaran para entrenar y validar el
modelo del controlador.
b. Selección de la arquitectura del controlador
la selección de la arquitectura se refiere al
número más conveniente de entradas, capas
ocultas, número de neuronas y la conectividad
entre ellas. Según Kolgomorov, una única capa
oculta con un mínimo número de neuronas
permite identificar cualquier función continua
(Valishevsky,1998). Sin embargo, otros autores
como Hertz recomendaron la utilización de dos
capas ocultas, como mínimo, para alcanzar un
buen nivel de precisión (Hertz,1994). El
sobredimensionamiento de una red puede
favorecer el proceso de aprendizaje y también
resentir su capacidad de generalización. La
Página 6
arquitectura del controlador seleccionado debe
representar la dinámica inversa de la planta con
el menor grado de error posible.
c. Entrenamiento del controlador
El entrenamiento del controlador se efectúa
para que el modelo aprenda la dinámica inversa
de la planta y consiste en la obtención de los
parámetros que mejor realizan la asociación
entre entradas y salidas. Este es un proceso de
estimación paramétrica convencional.
d. Validación del controlador
En esta etapa la gran incógnita es conocer si el
modelo entrenado corresponde a una
representación suficiente del proceso estudiado.
En esta etapa se debe definir un criterio para
evaluar la calidad del modelo. Esto se puede
llevar a cabo evaluando el error obtenido entre
la salida del modelo y la salida de la planta real
al aplicar la misma.
e. Aplicación del esquema de Control Directo
Inverso Generalizado
Finalmente, cuando se cuenta con el modelo del
controlador entrenado bajos los requerimientos
exigidos, basta colocar planta y controlador en
serie para implementar el esquema de control.
3.1 Estructura General Del Toolbox Nnctrl
De Norgaard
El Toolbox NNCTRL de Magnus Norgaard
permite aplicar varios esquemas de control
neuronal a plantas de estudio definidas por el
usuario. Incluye una colección de archivos para
el diseño y simulación de diferentes tipos de
controladores como: control directo inverso,
control con modelo interno, control
retroalimentado, control óptimo, control con
linealización retroalimentada, control predictivo
y control instantáneo sobre la base de
linealización. El Toolbox está orientado
principalmente a plantas invariantes en el
tiempo con una entrada y una salida (SISO).
NNCTRL está conformado por archivos 'm-
files' típicos de MATLAB® y se caracteriza por
tener una estructura flexible que permite la
incorporación de cambios definidos por el
usuario según los requerimientos del problema
que se esté estudiando. Estas características
fueron las que se utilizaron y permitieron el
desarrollo final de la GUI.
En las siguientes secciones se expondrán los
conceptos generales pertenecientes a las
diferentes etapas en las cuales se estructuro la
interfaz para aplicar el Esquema de Control
Directo Inverso Generalizado (CDIG)
utilizando las funciones presentes en el Toolbox
NNCTRL; para ello se utilizaron las
herramientas de MATLAB®: GUIDE Quick
Start y Toolbox de Redes Neuronales. La GUI
se estructuro y diseño buscando una
metodología simple y fácil de utilizar para el
diseño y simulación de los controladores.
La interfaz se compone de cinco bloques
principales:
1) Obtención de los datos de la planta,
2) Selección de la arquitectura del controlador,
3) Entrenamiento del controlador,
4) Validación del controlador y
5) Aplicación del esquema de Control Directo
Inverso Generalizado.
Aplicación del esquema de control directo
inverso Generalizado (CDIG)
Cuando el modelo neuronal del controlador
inverso ha sido entrenado se puede aplicar el
concepto de control inverso colocando en serie
el controlador neuronal con la planta.
Figura 6..Esquema del CDIG
Este esquema de control consiste en aproximar
la dinámica inversa del proceso con la red
neuronal entrenada.
3.2 Características Generales De La GUI
3.2.1. Generalidades
Página 7
En la Figura 7., se muestra la apariencia de la
interfaz implementada. El botón [Descripción
General] proporciona una descripción básica de
la interfaz. El botón [Ejecutar GUI] abre la
interfaz de trabajo y los restantes botones
muestran las características principales de las
etapas necesarias (descritas en apartados
anteriores) para el diseño e implementación de
controladores, así como datos de autores y
referencias bibliográficas.
Figura 7. GUI para diseño y simulación de
controladores neuronales bajo el esquema
CDIG
La interfaz permite diseñar y simular
controladores neuronales bajo el Esquema de
Control Directo Inverso Generalizado (ECDIG)
empleando una metodología sencilla y eficiente.
Para ello se tomaron como base las funciones
presentes en el Toolbox NNCTRL de Norgaard.
Figura 8. Interfaz de trabajo
Al presionar el botón [Ejecutar GUI] se abre la
interfaz de trabajo; se pueden distinguir nueve
zonas de trabajo cuyo propósito es el siguiente:
1) Selección de la planta y señal de entrada, 2)
Selección del número de muestras, tiempo de
muestreo, número de épocas para
entrenamiento especializado y características de
la señal de referencia: amplitud, frecuencia y
nivel DC, 3) Ejecución del experimento, 4)
Configuración de la arquitectura de la red,
5) Gráfica de los datos de entrada-salida y
respuesta del controlador con entrenamiento
general, 6) Entrenamiento general de la red
neuronal, 7) Entrenamiento especializado de la
red neuronal, 8) Cerrar la interfaz de trabajo y 9)
Región para visualizar las gráficas de los
datos de entrada-salida y respuesta del
controlador con entrenamiento general.
Para diseñar y simular un controlador neuronal
con la interfaz es necesario seguir los
siguientes pasos:
Primero: Configuración de la planta y
señal de entrada.
Inicialmente se parte del modelo de la planta
realizado en Simulink. Es importante, utilizar
los bloques “inport” y “outport”, ya que todos
los datos son ingresados y leídos en la planta a
través de ellos.
Página 8
Cuando se tiene el modelo de la planta es
necesario cargarlo en la Interfaz. Para ello se
presiona el botón [Plantas], con lo cual se
visualiza la ventana de la Figura 3.17;
Figura 9 Configuración del modelo de la
planta
La señal de entrada se configura presionando el
botón [Señal Entrada], el cual despliega la
ventana “señal_entrada1” de la Figura 10.
En general, para realizar un experimento
exitoso es necesario aplicar una señal de
entrada frecuencialmente rica. Para garantizar
que los algoritmos de estimación converjan a
una solución única, es necesario imponer unos
requerimientos mínimos en las señales de test.
Esto se denomina condiciones persistentemente
excitadas (persistent excitation). En la ventana
mostrada en la Figura 10, se puede configurar
cuatro tipos de señales, utilizadas amplia y
regularmente en procesos de identificación.
Para mayor información se puede consultar la
ayuda en línea de MATLAB®.
Figura 10. Configuración de la señal de
entrada
El Toolbox NNCTRL utiliza la señal tipo PRS
y ha sido empleado en numerosos trabajos de
maestría e investigaciones, es así, que con
seguridad los resultados que se obtienen al
aplicarla son bastante satisfactorios en este tipo
de aplicaciones.
En nuestro caso de estudio, aplicaremos la señal
PRS, con 500 muestras, amplitud variable
entre -12 y 12 y un rango de frecuencias (shift
frequency) de 0.85. La gráfica de esta señal
aparece en la Figura 11.a.
a) PRS b) RGS
c) RBS d) Seno
Figura 11. Señales de entrada
Página 9
Segundo: Configuración de los parámetros
para el experimento
En la sección de “Parámetros”, configuramos
de igual forma 500 muestras, 3 épocas para el
entrenamiento especializado (si resulta
necesario), 0.2 segundos de tiempo de muestreo
y una señal de referencia de 0.5 de amplitud, 2
de nivel DC y una frecuencia de 0.2 segundos.
Figura 12. Parámetros para ejecución del
experimento
Tercero: Realización del experimento
El experimento se lleva a cabo presionando el
botón [Organizar] de la sección “Obtención y
adecuación de datos”.
Figura 13. Obtención conjunto de datos
entrada-salida
Al iniciarse este proceso, se visualiza una
ventana como la que aparece en la Figura 14.
donde se puede observar el porcentaje de
ejecución.
Figura 14. Gráfica que muestra el porcentaje
de ejecución de un proceso
Este conjunto de datos también puede ser
graficado utilizando los botones [Datos Entrada]
y [Datos Salida] de la sección “Gráficas”
Figura 15 gráficas datos de entrada-salida
Cuarto: Selección de la arquitectura de la
red neuronal La interfaz utiliza un modelo con una
arquitectura que se basa en unidades perceptrón
multicapa con tres capas de neuronas. Una apa
de entrada, una capa oculta y una capa de salida.
La capa de entrada cuenta con dos muestras
retardadas de la salida y de la entrada,
siguiendo el esquema establecido en el Toolbox
NNCTRL. La capa oculta puede ser
configurada por el usuario con función de
activación Tangente hiperbólica. La capa de
salida posee una neurona con salida lineal.
La selección de la arquitectura se realiza
presionando el botón [Definir] de la sección
“Arquitectura RNA”, y consiste en ingresar el
número de neuronas presentes en la capa oculta
y el número de entradas y salidas pasadas. Se
pude seleccionar hasta máximo 15 neuronas y
cualquier número de salidas y entradas pasadas.
Figura 16. Configuración del número de
neuronas de la capa oculta y salidas-entradas
pasadas.
Página 10
Figura 1.7. Ventana configuración # de
neuronas capa oculta y # salidas-entradas
pasadas.
Quinto: Proceso de entrenamiento general El entrenamiento de la Red Neuronal (RN)
consiste en la búsqueda de las interconexiones
W(pesos) que representen más correctamente a
los pares de datos entrada-salida (patrones de
entrenamiento), y que a su vez generalicen esta
representación sobre un conjunto de pares
definidos para la validación del modelo.
Inicialmente se empieza con el proceso de
entrenamiento general aplicando una versión
del algoritmo Levenberg Marquard (LM).
Para aplicar este algoritmo se utiliza una rutina
que calcula la función a minimizar, un vector
de observaciones o valores deseados de la
función y una estimación inicial aleatoria
(Fletcher,1987).
Figura 18.. Proceso de entrenamiento general
Cuando se mantiene la configuración de dos
retardos tanto de la entrada como de la salida,
presionando el botón [Modelo RNA], se
mostrara la arquitectura de la red neuronal
seleccionada y entrenada, Figura 19.
Figura 19. RN implementada y entrenada
El proceso de validación se ejecuta presionando
el botón [Evaluar]. Para ello se evalúa el
modelo de la red entrenada utilizando el
segundo grupo de datos obtenidos en el
experimento, con esto, se calcula el error entre
la salida del modelo y el conjunto de datos que
se le presenta y que actúa como una señal de
control. El error deseado es cero (0), pero como
es bien conocido, esta tarea es muy difícil de
cumplir debido a las limitantes que se tienen,
sin embargo, el objetivo es encontrar un valor
próximo a cero, en nuestro caso se fijo un valor
igual a 0.1.
Figura 20. Respuesta de la RN, función de auto
correlación del error de predicción y error de
predicció.n
Por último, cuando el error de predicción es lo
bastante cercano a cero y la respuesta del
modelo entrenado aceptable, se puede proceder
a simular el esquema de control, esto se lleva a
cabo colocando en serie controlador y planta.
La Simulación del Controlador Inverso con
Entrenamiento General (CIEG) se ejecuta
presionando el botón [Simular CIEG].
Página 11
Nuevamente se desplegara la ventana de la
Figura 14., que indica el porcentaje de la
simulación; al finalizar la simulación la ventana
se cierra y se crean las gráficas de las Figura 21
y 22., las cual contienen la respuesta de la
planta (verde), la señal de referencia (azul) y
la señal de control (azul).
Figura 21. Respuesta de la planta con CIEG y
señal de control
Figura 22. Respuesta de la planta con CIEG al
presionar el botón [Respuesta] de la sección
“Gráficas”
Al analizar las gráficas de las Figura 21 y 22.,
se puede observar que existe un pequeño sobre
impulso (over-shot) lo que indica que el modelo
inverso no es perfecto. Sin embargo, estas
imprecisiones, no impiden que el controlador
logre controlar el sistema de forma aceptable.
Otro efecto que salta a la vista es que la señal
de control está muy activa y asume valores muy
grandes. Este es un resultado bastante común
cuando se utiliza el actual esquema de control.
Sexto: Proceso de entrenamiento
especializado Aunque el controlador neuronal con
entrenamiento general mostró un desempeño
aceptable, podemos realizar un segundo
proceso de entrenamiento más especializado.
Para ello, necesitamos un modelo directo de la
planta el cual se inicializa con los datos
obtenidos del entrenamiento general. La
arquitectura de este modelo es idéntica a la del
controlador y corresponde a una estructura
NNARX. Este proceso se lleva a cabo
presionando el botó [Entrenar] de la sección
“Entrenamiento Especializado”.
Figura 23.. Proceso de entrenamiento
Especializado
Al presionar el botón [Entrenar], aparecerá una
ventana donde se podrá elegir el algoritmo de
entrenamiento. Después de muchas pruebas, se
pudo comprobar que el algoritmo Gauss
Newton es el que converge más rápido y genera
mejores resultados. Sin embargo, el lector
puede aplicar el de su preferencia. Las
principales diferencias están en el número de
iteraciones, muestras y épocas necesarias para
obtener el conjunto de pesos que generen el
mejor desempeño del controlador.
Figura 24.. Algoritmos disponibles para el
proceso de entrenamiento especializado
Durante el proceso de entrenamiento
especializado se puede observar una gráfica
donde aparece el error cuadrático medio (SSE)
y la señal de control actual, obtenidos durante
cada época de entrenamiento. Finalizado este
proceso, presionando el botón [CIEE] se podrá
Página 12
Simular el Controlador Inverso con
Entrenamiento Especializado (CIEE). La Figura
25., muestra la respuesta de la planta con el
controlador CIEE.
Figura 25. Respuesta de la planta con CIEE y
señal de control
Para consultar la información obtenida, en el
“Workspace” de MATLAB®, se podrán
encontrar las variables Inverse y Forward con
las matrices de pesos originados.
Las matrices W1i y W2i contienen los pesos
correspondientes a la red neuronal que actúa
como controlador y se almacenan en la variable
Inverse.
Las matrices W1f y W2f contienen los pesos del
modelo directo de la planta y se almacenan en
la variable Forward.
La estructura de estas matrices es la siguiente:
W1 : Pesos de las entradas hacia la capa oculta.
La dimensión de la matriz es:
[(# Unidades ocultas) por (entradas + 1)]
W2 : Pesos de la capa oculta hacia la salida.
La dimensión de la matriz es:
[(Salida) * (# Unidades ocultas + 1)].El 1
corresponde a los valores Bias, los cuales se
almacenan en la última columna. Como las
variables utilizadas durante todo el proceso de
diseño del controlador se almacenan en una
carpeta establecida por MATLAB®
(C:\Documents and Settings\Administrador\Mis
documentos\MATLAB), estos pueden ser
borrados utilizando un comando, para ello se
escribe limpiar en el “Command Window”.
Esta acción nos permite evitar el uso de datos
erróneos.
Finalmente al presionar el botón [Aceptar] de la
sección “Salir del programa”, la interfaz de
trabajo se cerrara.
Figura 26. Salida de la interfaz de trabajo
3.3 Esquema De Control Neuronal Con
Modelo De Referencia
A continuación se diseñaran y aplicaran dos
controladores neuronales, el primero utilizando
el Toolbox de MATLAB® para Control con
Modelo de Referencia (Model Reference
Control) y el segundo con la GUI, haciendo un
comparativo con el fin de evaluar su desempeño.
Página 13
Figura 27. Esquema de control neuronal con
modelo de referencia (mrefrobotarm)
Figura 28. .Toolbox para control con modelo
de referencia (MRC)
El esquema de Control MRC se implementa
empleando dos redes neuronales diferentes. La
primera para modelar la planta y la segunda
para implementar el controlador.
En primer lugar se realiza un proceso de
identificación de la planta para luego entrenar el
controlador de tal manera que la salida de la
planta logre seguir la salida de referencia del
modelo.
Figura 29. Esquema del controlador neuronal
con modelo de referencia
Identificación de la planta y entrenamiento
del controlador
Antes de entrenar la red neuronal que actuara
como controlador, es necesario identificar un
modelo de la planta con otra red neuronal.
Nosotros utilizaremos para este fin la
herramienta de identificación presente en el
Toolbox.
Para mayor información el lector puede
consultar la ayuda en línea de MATLAB®.
De forma general, los parámetros básicos para
implementar el algoritmo de entrenamiento son
los siguientes:
1) Tamaño de la capa oculta: Numero de
neuronas en la capa oculta del controlador.
2) Modelo de la referencia: Archivo en
Simulink, con puertos de entrada y salida
(inport-outport).
3) Numero de retardos de la entrada de
referencia para el controlador.
4) Numero de retardos de la salida del
controlador.
5) Numero de retardos de la salida de la planta:
usados para alimentar el controlador.
6) Valores máximos y mínimos de la señal de
referencia: Define los límites de la señal de
entrada aleatoria al modelo de la referencia.
7) Intervalo de valores máximos y mínimos:
Define los límites del intervalo (por arriba)
en el que permanecerá constante de la señal
referencia aleatoria.
8) Muestras para el entrenamiento del
controlador: Define el número de valores
aleatorios generado por modelo de la referencia
usados para entrenar el controlador.
9) Épocas para entrenamiento del controlador:
Página 14
Un segmento de datos se presenta a la red, y
entonces se realiza el entrenamiento el número
de epocas especificado. El próximo segmento
se presenta entonces, y el proceso se repite
hasta que todos los segmentos de datos se
hayan presentado.
10) Segmentos para entrenamiento del
controlador: Define en cuántos segmentos los
datos de entrenamiento se dividen.
11) Entrenamiento acumulativo: Si se
selecciona, el entrenamiento inicial se hace con
un segmento de datos. Los entrenamientos
futuros se llevan a cabo agregando los
segmentos de datos anteriores al entrenamiento,
hasta que el conjunto de datos de entrenamiento
entero se use. El tiempo de entrenamiento
aumenta considerablemente por tal motivo es
necesario usarlo con precaución.
12) Uso de pesos actuales: Si selecciona este
parámetro, los pesos actuales del controlador se
usan como los pesos iníciales para el
entrenamiento del controlador. Por otra parte,
se generan los pesos iníciales aleatorios. Si la
estructura de la red del controlador es
modificada, opción arrojara error y se usarán
los pesos aleatorios.
Los datos de entrenamiento se generan con el
botón “Generate Taining Data” y se obtienen
del modelo de referencia. Estos datos se pueden
importar de otra fuente como por ejemplo de un
archivo de Excel o simplemente del Workspace
de MATLAB®.
Finalmente cuando se cuenta con una buena
colección de datos se puede proceder de la
siguiente forma:
1) Entrenamiento del controlador.
2) Almacenamiento: Los pesos son guardados
en el bloque del controlador. Es posible simular
el sistema mientras esta ventana permanezca
abierta.
3) Confirmación: Los pesos son guardados en
el bloque de la red neuronal del controlador y la
ventana se cierra
4) Cancelación: La ventana es cerrada y ningún
valor es guardado.
5) Identificación de la planta: es necesario
identificar la planta antes de realizar el
entrenamiento del controlador.
3.4 Brazo Robot De Un Eslabón
El modelo del brazo robot corresponde a una
variación del modelo del péndulo mostrado en
la Figura 29. En los cursos de física elemental,
el péndulo se aproxima por una ecuación lineal
simple, que sólo es válida para pequeñas
amplitudes de oscilación. En el presente
ejercicio no haremos esta aproximación, sino
que supondremos que el péndulo puede llegar
incluso a dar vueltas completas sobre sí mismo.
En ese caso se puede comprobar, mediante las
leyes básicas de la mecánica newtoniana, que la
ecuación que rige el movimiento del péndulo es:
(7)
En esta ecuación, φ es la posición angular del
péndulo respecto al eje vertical, medida en
radianes. Se ha considerado también un término
de amortiguamiento proporcional a la velocidad,
siendo b la constante de amortiguamiento del
sistema. Este sistema tiene dos puntos fijos, uno
estable y el otro inestable. El punto fijo estable
se tiene para una posición 0 y una velocidad 0,
y corresponde a un péndulo colgando
verticalmente hacia abajo y en reposo. El punto
fijo inestable se tiene para una posición π y una
velocidad 0, y corresponde a un péndulo
colgado "hacia arriba". Esta situación es muy
inestable, especialmente si el amortiguamiento
es pequeño.
Si el término de amortiguamiento b es igual a 0,
el sistema es conservativo. Esto quiere decir
que no se pierde energía en la trayectoria y hace
que el comportamiento del sistema sea
periódico. La solución de la ecuación anterior
es una oscilación, pero no una oscilación lineal.
Por ello, a diferencia del comportamiento de un
péndulo simple, en este caso el periodo no es
Página 15
independiente de la amplitud. En la
aproximación lineal el periodo siempre es el
mismo, sea cual sea el valor de la amplitud de
las oscilaciones. Esta es una aproximación
válida en muchos casos, pero como es bien
sabido, no es cierta para oscilaciones grandes.
En definitiva, el péndulo es un sistema no lineal
bastante simple, pero no es fácil de resolver.
Un sistema derivado del anterior y que tiene
también mucho interés es el péndulo
amortiguado y forzado. En este caso, añadimos
al modelo anterior un término que da cuenta de
una fuerza periódica que actúa sobre el péndulo
mientras este realiza su movimiento oscilatorio.
Llamando F a la amplitud de la fuerza periódica,
que supondremos sinusoidal, y omega a su
frecuencia, la ecuación que gobierna el
comportamiento de este sistema es:
(8)
Esta ecuación, en la suposición de oscilaciones
de pequeña amplitud, es una ecuación lineal, y
como tal se estudia en los cursos elementales de
física, donde se observa que presenta
comportamientos interesantes tales como
fenómenos de resonancia. La versión no lineal,
sin embargo, tiene un comportamiento mucho
más rico, dando lugar a movimiento periódico
para muchos valores de los parámetros, pero
caótico para otros.
Figura 29. Sistema Péndulo
El objetivo de la práctica es controlar el
movimiento del péndulo que corresponde al
modelo de un brazo robot de un eslabón, tratado
en los ejemplos de aplicación de MATLAB®.
Para ello inicialmente se definen las ecuaciones
de movimiento que describen la planta de la
siguiente manera.
El brazo robot se puede representar con la
siguiente ecuación de movimiento:
(9)
Donde es el ángulo del brazo y u corresponde al
torque suministrado por un motor de corriente
continua.
El objetivo es entrenar y obtener un controlador
neuronal con modelo de referencia. Este
modelo está representado por la ecuación:
(10)
Donde corresponde a la salida del modelo de
referencia y r a la señal de entrada.
Inicialmente se utilizara una arquitectura de tres
capas tipo perceptrón. La capa de entrada con
dos retardos de la entrada y salida, una capa
oculta y una capa de salida. Este esquema se
aplicara para el proceso de identificación y para
el proceso de entrenamiento del controlador.
Los parámetros básicos de configuración inicial
se muestran a continuación:
Capa oculta: 5 neuronas
Muestras: 500
Tiempo de muestreo: 0.2 segundos
Épocas de entrenamiento para identificación de
la planta: 300
Épocas de entrenamiento para entrenamiento
del controlador: 10 y 20 segmentos
a. Identificación del modelo de la
planta
Figura 30. Datos de entrada-salida para
identificación
b. Entrenamiento del controlador neuronal
Página 16
Figura 31. Proceso de entrenamiento
c. Respuesta de la planta con el
controlador
32. Respuesta de la planta con 5 neuronas y
500 muestras
Ahora utilizando 10 neuronas en la capa oculta
la respuesta de la planta con el controlador
entrenado es la siguiente:
Figura 33. Respuesta de la planta con 10
neuronas y 500 muestras
Utilizando 10 neuronas en la capa oculta y
aumentando el número de muestras a 1000.
Figura 34. Respuesta de la planta con 10
neuronas y 1000 muestras
Observando las graficas de la salida de la planta
con la acción del controlador MRC (Control
con modelo de referencia) entrenado, notamos
que la respuesta es aceptable. La salida trata de
seguir la señal de referencia tan rápido como le
es posible pero el error de estado estacionario
no es cero. Para mejorar el desempeño del
controlador se incrementaron el número de
neuronas en la capa oculta y la cantidad de
muestras, de esta forma, el error de estado
estacionario disminuye y la planta sigue mejor
la señal de referencia.
3.5 Esquema de control Directo Inverso
Generalizado para la planta
A continuación utilizamos la GUI para diseñar
y simular un controlador inverso (CI). Los
parámetros básicos son los siguientes: Capa
oculta: 5 neuronas, Muestras: 500, Tiempo de
muestreo: 0.2 segundos y 5 épocas de
entrenamiento especializado. Primero se
aplicara al controlador inverso con
entrenamiento general (CIEG) y luego con
entrenamiento especializado (CIEE).
Figura 35. Datos de entrada-salida y error de
predicción
Página 17
Figura 36. Respuesta de la planta con CIEG
Entrenando el controlador haciendo uso del
algoritmo “Gauss Newton”, se lograron los
siguientes resultados:
Figura 37.Respuesta de la planta con CIEE
Si analizamos las graficas de las Figuras 36 y
37, observamos que el desempeño del CI
formado con entrenamiento general, muestra un
mejor desempeño que el obtenido con el
controlador MRC inicial. La planta sigue la
señal de referencia tan rápido como le es
posible y el error de estado estacionario es casi
cero. Sin embargo, se observa un pequeño sobre
impulso. Para mejorar el desempeño del
controlador aplicamos entrenamiento
especializado logrando que el error de estado
estacionario sea prácticamente cero y ya no
exista sobre impulso. Este resultado se obtiene
con parámetros más bajos que los usados en el
proceso de entrenamiento del controlador MRC.
CONCLUSIONES
Luego de observar y evaluar los resultados
obtenidos con las diferentes plantas de prueba
que se emplearon para verificar el grado de
desempeño de los Controladores neuronales
diseñados con la GUI podemos afirmar que el
esquema de Control Directo Inverso
Generalizado (CDIG) es una alternativa
apropiada de control. Básicamente, lo que se
comprobó fue el buen desempeño que presentan
las redes basadas en perceptrones multicapa
para aprender la dinámica inversa de la planta y
luego ser utilizados como controladores.
El desempeño mostrado por este tipo de
controladores neuronales basados en
perceptrones se debe primero a la capacidad
que tienen para aproximar funciones no lineales,
lo que permite modelar sistemas complejos y
construir controladores para los mismos. Se
comprobó, que toda red que disponga de por lo
menos una capa oculta y contenga en ella una
adecuada cantidad de unidades entrenadas,
adquirirá el carácter de aproximador universal y
será capaz de reproducir cualquier función
continua y no lineal, que pueda estar definida
en cierto hiper-espacio, y así permitir la
implementación de controladores capaces de
operar sobre sistemas en principio
desconocidos.
La segunda propiedad está relacionada con la
capacidad de aprendizaje de las redes
neuronales artificiales (RNA), lo que hace
posible alcanzar un elevado grado de autonomía.
Es importante observar que las RNA trabajan
como sistemas paralelos, que basan su
Capacidad de aprendizaje a través de la
modificación de los pesos de interconexión
entre sus neuronas, con lo cual, pueden adecuar
dinámicamente su desempeño para responder a
cambios en el sistema o su entorno a lo largo
del tiempo, sin mayor información que la
obtenida de su experiencia con el proceso.
Al comparar el desempeño de los controladores
inversos con los esquemas de control
Página 18
neuronales RMC de MATLAB® y Control
Predictivo (GPC) del Toolbox NNCTRL, se
observo como utilizando una arquitectura más
sencilla y con menores parámetros en los
procesos de entrenamiento, se igualaba y
mejora el desempeño y rendimiento del
controlado.
REFERENCIAS
[1] Martín del Brío, Bonifacio, Sanz Molina,
Alfredo, Redes Neuronales y Sistemas Borrosos,
2ª edición, Universidad de Zaragoza, Editorial
RA-MA, 2001.
[2] Isasi Viñuela, Pedro, Galvan leon, Ines M.,
Redes de Neuronas Artificiales un enfoque
practico, Pearson, Prentice Hall, Madrid, 2004.
[3] M. Norgaar O, Ravn, N.K., Poulsen and
L.K Hansen, Neural Networks For Modelling
and Control of dinamic Systems.
[4] Charles M. Close, Dean K. Frederick,
Jonathan C. Newell, Modelling and Analysis of
Dynamics Systems, Editorial Jonh Wiley &
Sons Inc., Third edition., USA, 2002.
[5] K. J. Hunt, D. Sbarbaro, R. Zbikowski y P.
Gawthrop, "Neural Networks for Control
Systems- A Survey". Automática, Vol 28. No. 6.
1992.
[6] K.S. Narendra y A.M. Annaswamy, “Stable
Adaptive Systems”, Englewood Cliffs, NJ:
Prentice Hall, 1989.
[7] K.J. Astrom y B. Wittenmark, “Adaptive
Feedback Control” New York: Addison-Wesley,
1989.
[8] Valverde Gil Ricardo, Tesis Doctoral:
Control de sistemas mediante redes neuronales
Aprendizaje por refuerzo, Universidad Carlos
III de Madrid, Madrid, 1999, Páginas 1 a 13.
[9] Giró , Juan F., Olariaga, Sandra, Stuardi,
José E., Evaluación de modelos neuronales
destinados a operar sistemas inteligentes de
control, Departamento de Ingeniería de
Sistemas
de Información, Facultad Regional Córdoba,
Universidad Tecnológica Nacional, Córdoba,
Argentina, 2006.
[10] R. Fletcher (1987): “Practical Methods of
Optimization,” Wiley, 1987
[11] The MathWorks (2008): “Control System
Toolbox, User’s Guide, Version 4.2” The
MathWorks, Inc.
[12] K.J. Hunt, D. Sbarbaro (1991): “Neural
Networks for Nonlinear Internal Model
Control,” IEE, Proceedings-D, Vol. 138, No. 5,
pp. 431-438.
[13] K.J. Hunt, D. Sbarbaro, R. Zbikowski, P.J.
Gawthrop (1992): “Neural Networks for
Control Systems - A Survey,” Automatica, Vol.
28, No. 6, pp. 1083-1112.
[14] L. Ljung (1987):“System Identification -
Theory for the User,” Prentice-Hall, 1987.
[15] M. Nørgaard (2000): “Neural Network
Based System Identification Toolbox, Ver. 2”
Tech. report 00-E-891, Department of
Automation, Technical University of Denmark.
[16] M. Nørgaard, O. Ravn, N. K. Poulsen, L.
K. Hansen (2000): “Neural Networks for
Modelling and
Control of Dynamic Systems,” Springer-Verlag,
London, 2000.
[17] D. Psaltis, A. Sideris, A.A. Yamamure
(1988): “A Multilayered Neural Network
Controller,” Control
Sys. Mag., Vol. 8, No. 2, pp. 17-21.
[18] M.E. Salgado, G. Goodwin, R.H.
Middleton (1988): “Modified Least Squares
Algorithm
Incorporating Exponential Forgetting and
Resetting,” Int. J. Control, 47, pp. 477-491.
[19] K.J. Åström, B. Wittenmark (1995):
“Adaptive Control,” 2nd. Edition, Addison-
Wesley.
[20]Alanís García Alma Yolanda, Anzurez
Marin Juan, Castro Maldonado Victor, Control
e
identificación neuronal aplicados a sistema de
tanques, Cinvestav, Centro de Investigaciones
y estudios avanzados del IPN, Guadalajara ,
2007
[21] Guarnizo Marin, Jode Guillermo, Lopez
Rodriguez, Juan Carlos, Simulación de
identificadores a traves de redes neuronales y
control inverso generalizado, Universidad
Distrital “Francisco Jose de Caldas”, Facultad
de Ingenieria, Grupo de Investigación Línea de
Página 19
Investigación en fuentes alternativas de energía
LINFAE, Bogotá D.C., 2007
[22] Hernández, M. Hernández, A., Magallón,
J., Urrego, D., Identificación, control
neuronal y difuso aplicado a un helicóptero de
base fija, Cinvestav, Centro de Investigaciones
y estudios avanzados del IPN, Guadalajara ,
2007