You are on page 1of 23

MANUAL DE USUARIO

INTERFAZ GRFICA DE USUARIO (GUI) ContinvRNA_v1 para Matlab 7.4.0 R2007a Manual de usuario

Jairo Vargas Caleo Marlen Amparo Mateus Quitin

Esquema de Control Directo Inverso Generalizado


UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS FACULTAD TECNOLGICA, INGENIERIA EN CONTROL Grupo de Investigacin ORCA Bogot Julio de 2008
GUI ContinvRNA_v1 Manual de Usuario - Pgina 1

Archivos asociados al esquema de control directo inverso utilizados en la GUI.

experim expinit general special1 invinit1 special2 special3 invinit2 invsim invcon invinit

Genera el experimento para obtener datos de entrenamiento y validacin Definicin de los parmetros de diseo para experim Entrenamiento general del modelo inverso de la planta Entrenamiento especializado Back-Propagation del modelo inverso Definicin de los parmetros de diseo para special1 Entrenamiento especializado RPLR Gauss-Newton del modelo inverso Entrenamiento especializado RPEM Gauss-Newton del modelo inverso Definicin de los parmetros de diseo para special2 y special3 Programa que evala el modelo inverso entrenado programa para simular el controlador directo inverso Definicin de los parmetros de diseo para invcon Tabla 1. 1. Archivos para CDIG del Toolbox NNCTRL Magnus Norgaard

En el siguiente documento se exponen los conceptos generales para disear y simular controladores neuronales bajo el esquema de Control Directo Inverso Generalizado (CDIG) utilizando la interfaz ContinvRNA_v1, basada en las funciones presentes en el Toolbox NNCTRL. El proceso de diseo se divide en cinco partes: 1) Obtencin de los datos de la planta, 2) Seleccin de la arquitectura del controlador, 3) Entrenamiento del controlador, Generalizado. 4) Validacin del controlador y 5) Aplicacin del esquema de Control Directo Inverso

GUI ContinvRNA_v1

Manual de Usuario - Pgina 2

CARACTERISTICAS GENERALES DE LA GUI

Generalidades La GUI se diseo e implemento utilizando las funciones presentes en el Toolbox NNCTRL y las herramientas de MATLAB: GUIDE Quick Start y Toolbox de Redes Neuronales.

En la Figura 1., se muestra la apariencia de la interfaz implementada. El botn [Descripcin General] proporciona una descripcin bsica de la interfaz. El botn [Ejecutar GUI] abre la interfaz de trabajo y los restantes botones muestran las caractersticas principales de las etapas necesarias (descritas en apartados anteriores) para el diseo e implementacin de controladores as como datos de autores y referencias bibliogrficas.

Figura 1. GUI para diseo y simulacin de controladores neuronales bajo el esquema CDIG Como requisitos mnimos de Hardware & Software para el uso de la GUI se tienen:
GUI ContinvRNA_v1 Manual de Usuario - Pgina 3

Software MATLAB 7 o superior, Netscape Navigator 4.0 o Internet Explorer 6.0 y Adobe Acrobat Reader 5.0., para la documentacin en formato PDF que se anexe.

PC con procesador de 1 GHz o superior. 512 MB de memoria RAM o superior. 10 MB de espacio en disco duro. Adaptador de video SVGA (8 MB) o superior. Lector CD-ROM. Teclado y Ratn estndar.

La instalacin es un proceso muy sencillo que consiste en copiar la carpeta ContinvRNA_v1 en el PC y luego en MATLAB agregar la ruta o ubicacin de la carpeta. Para mayor informacin el lector puede consultar el archivo de ayuda para la instalacin de la GUI. La interfaz permite disear y simular controladores neuronales bajo el Esquema de Control Directo Inverso Generalizado (ECDIG) empleando una metodologa sencilla y eficiente. Para ello se tomaron como base las funciones presentes en el Toolbox NNCTRL de Norgaard descritas en la Tabla 1.

Al presionar el botn [Ejecutar GUI] se abre la interfaz de trabajo; se pueden distinguir nueve zonas de trabajo cuyo propsito es el siguiente: 1) Seleccin de la planta y seal de entrada, 2) Seleccin del nmero de muestras, tiempo de muestreo, nmero de pocas para entrenamiento especializado y caractersticas de la seal de referencia: amplitud, frecuencia y nivel DC, 3) Ejecucin del experimento, 4) Configuracin de la arquitectura de la red,
GUI ContinvRNA_v1 Manual de Usuario - Pgina 4

5) Grfica 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) Regin para visualizar las grficas de los datos de entrada-salida y respuesta del controlador con entrenamiento general. La Figura 2., muestra el aspecto de la interfaz de trabajo.

Figura 2. Interfaz de trabajo

Utilizacin de la interfaz

GUI ContinvRNA_v1

Manual de Usuario - Pgina 5

Para explicar la forma en la que se utiliza la interfaz de trabajo para disear y simular un controlador neuronal ECDIG, se tomara una planta cuya funcin de transferencia esta descrita por:
H s 3 s s 5
2

El objetivo de esta prueba es tomar un sistema de segundo orden y lograr que siga una seal de referencia. La planta presenta error de estado estacionario y un coeficiente de amortiguamiento el cual hace que su respuesta presente oscilaciones indeseadas. Posee una frecuencia natural de 2.2 segundos y coeficiente de amortiguamiento de 0.22, con lo cual se esperara que tuviese sobre impulsos del 50%; en la Figura 3., se muestra la respuesta ante un entrada paso.
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

10

12

14

16

18

20

Figura 3., Respuesta planta de segundo orden ante una entrada paso

Para disear y simular un controlador neuronal con la interfaz es necesario seguir los siguientes pasos:

Primero: Configuracin de la planta y seal de entrada.

GUI ContinvRNA_v1

Manual de Usuario - Pgina 6

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 ledos en la planta a travs de ellos.

Figura 4. Modelo de la planta en Simulink Cuando se tiene el modelo de la planta es necesario cargarlo en la Interfaz. Para ello se presiona el botn [Plantas], con lo cual se visualiza la ventana de la Figura 5; esta ventana contiene seis botones: el primero [Personalizar], permite cargar y configurar cualquier modelo. El segundo [Motor DC 2do O], abre el modelo de un motor de corriente continua para control de velocidad. El tercero [Masa Resorte], contiene el modelo de un sistema masa resorte con amortiguador para control de posicin. El cuarto [Tanque Esfrico], abre el modelo de un tanque esfrico para control de nivel. El quinto [Brazo de un eslabn], muestra el modelo de un brazo con un eslabn y el ltimo [Cerrar] cierra la ventana plantas.

Figura 5. Configuracin del modelo de la planta

En este caso, presionamos el botn [Personalizar]. Se abre la ventana Personalizar, mostrada en la Figura 6., en ella se debe ingresar el modelo de la planta.
GUI ContinvRNA_v1 Manual de Usuario - Pgina 7

Figura 6. Ventana para ingresar modelo de la planta En la Figura 7., se muestra la apariencia final de la ventana Personalizar.

Figura 7. Apariencia final de la ventana Personalizar La seal de entrada se configura presionando el botn [Seal Entrada], el cual despliega la ventana seal_entrada1 de la Figura 8.

Figura 8. Configuracin de la seal de entrada En general, para realizar un experimento exitoso es necesario aplicar una seal de entrada frecuencialmente rica. Para garantizar que los algoritmos de estimacin converjan a una
GUI ContinvRNA_v1 Manual de Usuario - Pgina 8

solucin nica, es necesario imponer unos requerimientos mnimos en las seales de test. Esto se denomina condiciones persistentemente excitadas (persistent excitation). En la ventana mostrada en la Figura 8., se puede configurar cuatro tipos de seales, utilizadas amplia y regularmente en procesos de identificacin. Para mayor informacin se puede consultar la ayuda en lnea de MATLAB.

15

25 20

10

15
5

10
0

5 0

-5

-5
-10

-10
-15

50

100

150

200

250

300

350

400

450

500

-15

50

100

150

200

250

300

350

400

450

500

a) PRS
12

b) RGS
12

10

10

50

100

150

200

250

300

350

400

450

500

50

100

150

200

250

300

350

400

450

500

c) RBS Figura 9. Seales de entrada

d) Seno

GUI ContinvRNA_v1

Manual de Usuario - Pgina 9

El Toolbox NNCTRL utiliza la seal tipo PRS y ha sido empleado en numerosos trabajos de maestra 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 seal PRS, con 500 muestras, amplitud variable entre -12 y 12 y un rango de frecuencias (shift frequency) de 0.85. La grfica de esta seal aparece en la Figura 9.a.

Segundo: Configuracin de los parmetros para el experimento


En la seccin de Parmetros, configuramos de igual forma 500 muestras, 3 pocas para el entrenamiento especializado (si resulta necesario), 0.2 segundos de tiempo de muestreo y una seal de referencia de 0.5 de amplitud, 2 de nivel DC y una frecuencia de 0.2 segundos.

Figura 10. Parmetros para ejecucin del experimento

En muchos casos el periodo de muestreo viene definido por la aplicacin final. Por ejemplo el instrumento de control a utilizar, los instrumentos de medida, el tipo de algoritmo de control y hasta el mismo proceso, limitan en muchos casos el periodo de muestreo. La
GUI ContinvRNA_v1 Manual de Usuario - Pgina 10

prdida de informacin debida al periodo se explica mejor en el dominio frecuencial. Es bien conocido que una seal con una frecuencia mayor que la mitad de la frecuencia de muestreo (denominado frecuencia de Nyquist) no puede, al ser muestreda, distinguirse de otra por debajo de este periodo. Para mayor informacin remitimos al lector al libro Discrete-time Control Systems de K. Ogata.

Tercero: Realizacin del experimento


El experimento se lleva a cabo presionando el botn [Organizar] de la seccin Obtencin y adecuacin de datos.

Figura 11. Obtencin conjunto de datos entrada-salida

Al iniciarse este proceso, se visualiza una ventana como la que aparece en la Figura 12., donde se puede observar el porcentaje de ejecucin de la tarea.

Figura 12. Grfica que muestra el porcentaje de ejecucin de un proceso

Terminado el experimento la ventana se cierra. En este momento al presionar el botn [Graficar] se puede observar en una grfica los datos de entrada-salida obtenidos.

GUI ContinvRNA_v1

Manual de Usuario - Pgina 11

Input sequence (training and test set, respectively) 10 5 0 -5 -10 0 50 100 150 200 250 300 350 400 450 500

Output sequence 5 0 -5 -10 0 50 100 150 200 250 300 time (samples) 350 400 450 500

Figura 13. Conjunto de datos entrada-salida obtenidos a partir del experimento

Este conjunto de datos tambin puede ser graficado utilizando los botones [Datos Entrada] y [Datos Salida] de la seccin Grficas

Figura 14. Grficas datos de entrada-salida

Cuarto: Seleccin de la arquitectura de la red neuronal


La interfaz utiliza una arquitectura que se basa en unidades perceptrn multicapa con tres capas de neuronas. Una capa de entrada, una capa oculta y una capa de salida.

GUI ContinvRNA_v1

Manual de Usuario - Pgina 12

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 funcin de activacin Tangente hiperblica. La capa de salida posee una neurona con salida lineal.

La seleccin de la arquitectura se realiza presionando el botn [Definir] de la seccin Arquitectura RNA, y consiste en ingresar el nmero de neuronas presentes en la capa oculta y el nmero de entradas y salidas pasadas. Se pude seleccionar hasta mximo 15 neuronas y cualquier nmero de salidas y entradas pasadas, sin embargo, cuando se realiza entrenamiento general se puede observar una grfica de la arquitectura de la red presionando el botn [Modelo RNA] siempre y cuando se haya configurado 2 salidas y entradas pasadas, en caso contrario, al presionar este botn [Modelo RNA] se generara un error. Este error no impide que los procesos de entrenamiento, validacin y simulacin del control sean llevados a cabo satisfactoriamente. El tiempo de retardo entre muestras tpicamente es de 1.

Figura 15. Configuracin del nmero de neuronas de la capa oculta y salidas-entradas pasadas.

Cuando se presiona el botn [Definir], se despliega la venta de la Figura 16. Es necesario presionar el botn [Aceptar] antes de cerrar la ventana con el botn [Salir] para que los datos ingresados sean almacenados en la GUI.

GUI ContinvRNA_v1

Manual de Usuario - Pgina 13

Figura 16. Ventana configuracin # de neuronas capa oculta y # salidas-entradas pasadas.

Quinto: Proceso de entrenamiento general

Figura 17. Esquema del entrenamiento generalizado.

GUI ContinvRNA_v1

Manual de Usuario - Pgina 14

El entrenamiento de la Red Neuronal (RN) consiste en la bsqueda de las interconexiones W (pesos) que representen ms correctamente a los pares de datos entrada-salida (patrones de entrenamiento), y que a su vez generalicen esta representacin sobre un conjunto de pares definidos para la validacin del modelo. Inicialmente se empieza con el proceso de entrenamiento general aplicando una versin del algoritmo Levenberg Marquard (LM) y minimizar la funcin de costo. Para aplicar este algoritmo se utiliza una rutina que calcula la funcin a minimizar, un vector de observaciones o valores deseados de la funcin y una estimacin inicial aleatoria (Fletcher, 1987).

Para iniciar el entrenamiento basta con presionar el botn [Entrenar]. El proceso se realiza durante 500 iteraciones.

Figura 18. Proceso de entrenamiento general

Al finalizar el proceso de entrenamiento en el Command Window de MATLAB, aparece el siguiente mensaje:

GUI ContinvRNA_v1

Manual de Usuario - Pgina 15

Cuando se mantiene la configuracin de dos retardos tanto de la entrada como de la salida, presionando el botn [Modelo RNA], se mostrara la arquitectura de la red neuronal seleccionada y entrenada, Figura 19.
u(t-2) Red Neuronal Implementada

u(t-1) yhat(t) y(t-2)

y(t-1)

Figura 19. RN implementada y entrenada

El proceso de validacin se ejecuta presionando el botn [Evaluar]. Para ello se evala 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 acta como una seal de control. El error deseado es cero (0), pero como es bien conocido, esta tarea es muy difcil de cumplir debido a las limitantes que se tienen, sin embargo, el objetivo es encontrar un valor prximo a cero, en nuestro caso se fijo un valor igual a 0.1.
Auto correlation function of prediction error 1

Actual control signal (dashed) and prediction (solid) 10 5

0.5

0
0

-5 -10
0 5 10 15 20 25 lag Linearized network parameters

-0.5

50

100 150 time (samples) Prediction error (u-uhat)

200

250

20

4 2

0
-20

-2 -4

-40

50

100 150 time (samples)

200

250

50

100 150 time (samples)

200

250

Figura 20. Respuesta de la RN, funcin de auto correlacin del error de prediccin y error de prediccin
GUI ContinvRNA_v1 Manual de Usuario - Pgina 16

Por ltimo, cuando el error de prediccin 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 Simulacin del Controlador Inverso con Entrenamiento General (CIEG) se ejecuta presionando el botn [Simular CIEG]. Nuevamente se desplegara la ventana de la Figura 12., que indica el porcentaje de la simulacin; al finalizar la simulacin la ventana se cierra y se crean las grficas de las Figura 21 y 22., la cual contienen la respuesta de la planta (verde), la seal de referencia (azul) y la seal de control (azul).
Reference and output signal 2

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

Control signal

5 0 -5 0 50 100 150 200 250 300 time (samples) 350 400 450 500

Figura 21. Respuesta de la planta con CIEG y seal de control

Figura 22. Respuesta de la planta con CIEG al presionar el botn [Respuesta] de la seccin Grficas
GUI ContinvRNA_v1 Manual de Usuario - Pgina 17

Al analizar las grficas de las Figura 21 y 22., se puede observar que existe un pequeo 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 seal de control est muy activa y asume valores muy grandes. Este es un resultado bastante comn cuando se utiliza el actual esquema de control.

Si la inversa del sistema es inestable, es decir, presenta ceros fuera del crculo de radio uno (en el caso lineal), entonces podemos anticipar que el sistema en lazo cerrado es inestable, situacin que ocurre con bastante frecuencia en la prctica. En [strm et al. 1984], se muestra que el proceso de discretizacin de un modelo lineal continuo en el tiempo puede dar lugar a ceros fuera del crculo de radio uno a pesar que el modelo original no posea ceros o que tenga todos los ceros en la parte izquierda del plano. De hecho, para un modelo con exceso de polos, uno o ms ceros en el modelo discretizado estarn en el crculo o incluso fuera a medida que la frecuencia de muestreo es incrementada.

Otro problema con el diseo se plantea cuando el sistema a ser controlado no es uno a uno, ya que la inversa del sistema no existe. Esto es:

La dificultad puede ocurrir por la accin de dos diferentes seales de control donde . Si esta singularidad no se refleja en el entrenamiento se puede establecer en principio que el rendimiento del modelo inverso podra ser suficiente para controlar el sistema. Sin embargo, con frecuencia el resultado final ser un modelo inverso incorrecto e intil. Esto no se conoce hasta que el modelo inverso del sistema ha sido entrenado y utilizado como controlador.

GUI ContinvRNA_v1

Manual de Usuario - Pgina 18

Sexto: Proceso de entrenamiento especializado

Figura 23. Esquema del entrenamiento especializado.

Aunque el controlador neuronal con entrenamiento general mostr un desempeo aceptable, podemos realizar un segundo proceso de entrenamiento ms 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 idntica a la del controlador y corresponde a una estructura NNARX. Este proceso se lleva a cabo presionando el botn [Entrenar] de la seccin Entrenamiento Especializado.

Figura 24. Proceso de entrenamiento Especializado

Al presionar el botn [Entrenar], aparecer una ventana donde se podr elegir el algoritmo de entrenamiento. Despus de muchas pruebas, se pudo comprobar que el algoritmo Gauss Newton es el que converge ms rpido y genera mejores resultados. Sin embargo, el lector puede aplicar el de su preferencia. Las principales diferencias estn en el nmero de

GUI ContinvRNA_v1

Manual de Usuario - Pgina 19

iteraciones, muestras y pocas necesarias parta obtener el conjunto de pesos que generen el mejor desempeo del controlador.

Figura 25. Algoritmos disponibles para el proceso de entrenamiento especializado

Durante el proceso de entrenamiento especializado se puede observar una grfica donde aparece el error cuadrtico medio (SSE) y la seal de control actual, obtenidos durante cada poca de entrenamiento. Finalizado este proceso, presionando el botn [CIEE] se podr Simular el Controlador Inverso con Entrenamiento Especializado (CIEE). La Figura 26., muestra la respuesta de la planta con el controlador CIEE.
Reference and output signal

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

Control signal

20 0 -20 0 50 100 150 200 250 300 time (samples) 350 400 450 500

Figura 26. Respuesta de la planta con CIEE y seal de control

GUI ContinvRNA_v1

Manual de Usuario - Pgina 20

Otra forma de obtener grficas de la respuesta de la planta con los controladores entrenados es la siguiente: En el Command Window de MATLAB, escribimos resulgeneral y resulespecial. Con ello, se obtendrn las grficas mostradas en la Figura 27.

Control inverso con entrenamiento general: Salida Planta (Azul) y Referencia (Verde) Control inverso con entrenamiento especializado: Salida Planta (Azul) y Referencia (Verde)

3.5
2.5 2

3 2.5

Amplitud)

Amplitud)

1.5 1 0.5

2 1.5 1 0.5

0 0 50 100 150 200 250 300 Tiempo(Muestras) 350 400 450

0 0

50

100

150

200 250 300 Tiempo(Muestras)

350

400

450

Figura 27. Respuesta de la planta con CIEG (Izq.) y CIEE (Der.)

Ahora, si aumentamos el nmero de pocas de entrenamiento especializado de tres a siete el SSE disminuye como se observa en la Figura 28.

Figura 28. Resultado entrenamiento especializado durante siete pocas

GUI ContinvRNA_v1

Manual de Usuario - Pgina 21

Y la respuesta de la planta muestra un mejor desempeo del controlador neuronal. La accin del control es tan rpida como el cambio de la seal de referencia y el error de estado estacionario prcticamente es cero.
Reference and output signal

Control inverso con entrenamiento especializado: Salida Planta (Azul) y Referencia (Verde) 3 2.5
Amplitud)

2 0 -2

2 1.5 1 0.5 0

50

100

150

200

250

300

350

400

450

500

Control signal 40 20 0 -20 -40 0 50 100 150 200 250 300 time (samples) 350 400 450 500

50

100

150

200 250 300 Tiempo(Muestras)

350

400

450

Figura 29. Respuesta de la planta con CIEE en siete pocas

La informacin obtenida de los controladores, se puede consultar en el Workspace de MATLAB, ah se encontraran las variables Inverse y Forward con las matrices de pesos originados por los procesos de entrenamiento. Las matrices W1i y W2i contienen los pesos correspondientes a la red neuronal que acta 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.
GUI ContinvRNA_v1 Manual de Usuario - Pgina 22

La estructura de estas matrices es la siguiente: W1 : Pesos de las entradas hacia la capa oculta. La dimensin de la matriz es:

[(# Unidades ocultas) por (entradas + 1)]

W2

: Pesos de la capa oculta hacia la salida. La dimensin 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 diseo 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 accin nos permite evitar el uso de datos errneos.

Finalmente al presionar el botn [Aceptar] de la seccin Salir del programa, la interfaz de trabajo se cerrara.

Figura 30. Salida de la interfaz de trabajo


GUI ContinvRNA_v1 Manual de Usuario - Pgina 23

You might also like