CONTROL INTELIGENTE Laboratorio Nº5 Profesor: Juan Pablo Rivera. Objetivos Diseñar adecuadamente un experimento que permita generar los datos para identificar una planta con Redes Neuronales Artificiales. Definir la arquitectura de una Red Neuronal que permita realizar la identificación de una planta. Entrenar una Red Neuronal para que identifique una planta. Validar el modelo que se tiene con una red Neuronal luego de entrenarla con los datos provenientes de la planta PROCEDIMIENTO 1. Grafique las siguientes funciones de dos variables y encuentre sus valores máximo y mínimo mediante el uso de matlab. Seleccione a partir de la grafica un rango adecuado de valores en los que le interese identificar el máximo y el mínimo. a. X^2+y^2=1 b. 2sen4x+cos2y c. 2X^2Y^2+3X-2Y+8=0 2. Que es un algoritmo genérico y qué relación tendría esta técnica con el numeral anterior. 3. Haga un programa en matlab donde mediante programación genérica un robot pueda moverse siguiendo las paredes de una habitación. DESCRIPCIÓN DEL PROBLEMA Con base al esquema de “Simulink” de la figura 1 se ha de obtener una serie de datos para obtener los vectores de entrada, salida y tiempo del sistema para realizar la identificación de este por medio de una red neuronal. Entrada To Workspace 10 Salida s2 +4s+10 Band -Limited White Noise To Workspace 1 Transfer Fcn 0.6 Scope Constant Tiempo Clock To Workspace2 PROCEDIMIENTO Se ha de utilizar el modelo para una función de transferencia de segundo orden y compararla con la función de transferencia del sistema para obtener los parámetros necesarios con el fin de determinar el periodo de muestreo: De aquí se obtiene que: K=1 Wn = Wn = 3.1623 rad/seg =4 Sample time = 0.1* 0.5 * 0.1 = 0.05 seg 0.6325 seg Sample time for Band-Limited white noise (ts) = Con estos parámetros obtenidos se parametrizan los bloques del Simulink; el primer tiempo de muestreo de 0.05 es utilizado en todos los bloques del diagrama salvo en el generador de ruido blanco, el cual se le ingresa un parámetro de cambio de 2.5 segundos, esto con el fin de que ingrese un escalón diferente en este intervalo de tiempo permitiendo a la planta alcanzar este escalón generado. Una vez hecho esto se obtiene la siguiente respuesta en la planta. Respuesta Del Sistema Ante Entrada De Ruido Blanco 1.6 Ruido Blanco Respuesta de la planta 1.4 Escalon aplicado y Respuesta del Sistema 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 0 5 10 15 20 25 Tiempo 30 35 40 45 Una vez realizada esta simulación han de quedar guardadas en el MATLAB las variables de tiempo, Entrada y salida del sistema para realizar la identificación del mismo, la cual será realizada con la ayuda de un modelo ARX, el cual trabaja con los estados pasados de la salida y entrada del sistema con el fin de realizar una adecuada identificación y predicción del siguiente estado. La ecuación de este modelo es: Y(k)=F(U(k-1),U(k-2),y(k-1),y(k-2)) Donde las “Y” son las salidas del sistema y “U” las entradas de este. 50 Con base a esto los parámetros para entrenar la red han de quedar de la siguiente manera. Entrada retardada un tiempo Entrada retarda dos tiempos Salida con un retardo Salida retardada dos tiempos Salida Actual del sistema U(k-1) U(k-2) Y(k-1) Y(k-2) Y(k) Sabiendo esto se ha de programar adecuadamente la red neuronal para que trabaje con estos parámetros. El siguiente es el código en MATLAB para realizar dicha tarea el cual además tendrá como capa oculta diez neuronas y una sola capa de salida que será la salida actual del sistema: y=length(Salida) e1=Entrada(2:1:(y-1))%Este será el U(k-1) e2=Entrada(1:1:(y-2))%Este será el U(k-2) s1=Salida(2:1:(y-1))%Este será el Y(k-1) s2=Salida(1:1:(y-2))%Este será el Y(k-2) s3=Salida(3:1:(y))%Salida Y(k) INs=[e1 e2 s1 s2];%Entradas a la caja negra ENTRADAS=INs'%Vector de entradas transpuesto %esto con el fin de realizar la operación matricial red=newff(minmax(ENTRADAS),[10,1],{'tansig','purelin'},'trainlm') %selección de los parámetros de entrenamiento incluyendo el tipo de entrenamiento que puede ser trainlm, traingd, traingdm, traingda, traingdx red.trainparam.show=20%MOstrar grafica de entrenamiento cada 20 epochs red.trainparam.epochs=100%Realizar 100 epochs red.trainparam.goal=0.0000001%Valor de parada, el entrenamiento se detiene si %el error presente es menor a este valor red=train(red,ENTRADAS,s3')%Entrenar con los valores definidos gensim(red,0.05)%el 0.05 es el tiempo de muestreo Una vez entrenada la red, el MATLAB muestra en un grafico el entrenamiento de la red además de entregar un bloque que guarda los parámetros de esta red entrenada, basados en los parámetros y tipo de entrenamiento seleccionado. Los gráficos de entrenamiento con los diferentes tipos de entrenamientos son los siguientes, los cuales indican la cantidad de epochs utilizados y el error obtenido con este tipo de entrenamiento. Recordemos que se por software hemos impuesto como limite un máximo de 100 epochs y que el entrenamiento se detenga si se presenta un error inferior a 0.0000001. Ss Tipo de Entrenamiento Tiempo utlizado trainlm 1.822503 seg. traingd 2.425252 seg. trainlgdm 2.793966 seg. trainlgda 2.284557 seg. trainlgdx 2.456878 seg Una vez entrenada la red neuronal con los diferentes tipos de entrenamiento se observa que el entrenamiento con mejor respuesta es aquel en el que se usa el parámetro trainlm, por tanto el bloque obtenido en este entrenamiento se ha de usar en un diagrama de Simulink que permita ver la comparación entre la señal de entrada, la respuesta del planta real y la planta obtenida por la red neuronal en el proceso de identificación; Este diagrama es mostrado a continuación: 1 z Unit Delay 1 1 Entrada To Workspace z Unit Delay x{1} 1 y {1} Neural Network z Unit Delay 2 1 10 Salida s2 +4s+10 Step To Workspace1 Transfer Fcn y{1} z Unit Delay 3 Tiempo Clock To Workspace2 Scope La grafica obtenida Respuesta Del Sistema Ante Escalón Unitario Escalon Aplicado, Respuesta del Sistema Real, Respuesta De La Red Neuronal 1.4 Escalón Unitario Respuesta Sistema Real Respuesta De La Red 1.2 1 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 Tiempo 3 3.5 4 4.5 es la siguiente: CONCLUSIONES Una red neuronal bien entrenada puede simular el comportamiento de una planta, por lo que nos serviría para la parte industrial para identificación y posterior control de las mismas. El entrenamiento tranlm es el más eficaz de todos los entrenamientos para este tipo de red neuronal, ya que es este quien realiza su labor en el menor tiempo y logra el objetivo de obtener un error inferior a 0.000001 Para una adecuada identificación de un proceso por medio de una red neuronal se debe utilizar un modelo de identificación ARX, para así trabajar con base a los estados anteriores de la entrada y salida. Para validar los modelos realizados con la ayuda de redes neuronales se debe tener sumo cuidado a la hora de estructurar el diagrama de Simulink, ya que el ingreso inadecuado de las variables genera una validación errónea del modelo. Hasta ahora solo era conocida en el MATLAB el TOOLBOX de identificación para realizar la identificación de un sistema, ahora con la ayuda de las redes neuronales podemos ver que este software posee diversos métodos para realizar una adecuada identificación a un sistema.