Esquema de Control Inverso Con Redes Neuron Ales Artificiales

19
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 CaldasRESUMEN 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

description

Redes Neuronales Artificiales

Transcript of Esquema de Control Inverso Con Redes Neuron Ales Artificiales

Page 1: 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

Page 2: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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)

Page 3: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 4: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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.

Page 5: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 6: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 7: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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.

Page 8: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 9: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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.

Page 10: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 11: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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á

Page 12: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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.

Page 13: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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:

Page 14: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 15: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 16: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 17: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 18: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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

Page 19: Esquema de Control Inverso Con Redes Neuron Ales Artificiales

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