Professional Documents
Culture Documents
INTERFAZ GRFICA DE USUARIO (GUI) ContinvRNA_v1 para Matlab 7.4.0 R2007a Manual de usuario
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
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.
Utilizacin de la interfaz
GUI ContinvRNA_v1
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:
GUI ContinvRNA_v1
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.
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
d) Seno
GUI ContinvRNA_v1
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.
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.
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.
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
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
Este conjunto de datos tambin puede ser graficado utilizando los botones [Datos Entrada] y [Datos Salida] de la seccin Grficas
GUI ContinvRNA_v1
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
GUI ContinvRNA_v1
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.
GUI ContinvRNA_v1
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
y(t-1)
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
0.5
0
0
-5 -10
0 5 10 15 20 25 lag Linearized network parameters
-0.5
50
200
250
20
4 2
0
-20
-2 -4
-40
50
200
250
50
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
Control signal
5 0 -5 0 50 100 150 200 250 300 time (samples) 350 400 450 500
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
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.
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
iteraciones, muestras y pocas necesarias parta obtener el conjunto de pesos que generen el mejor desempeo del controlador.
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
Control signal
20 0 -20 0 50 100 150 200 250 300 time (samples) 350 400 450 500
GUI ContinvRNA_v1
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
350
400
450
Ahora, si aumentamos el nmero de pocas de entrenamiento especializado de tres a siete el SSE disminuye como se observa en la Figura 28.
GUI ContinvRNA_v1
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
350
400
450
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:
W2
[(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.