Laboratorio 4 - Control inteligente

Anuncio
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.
Descargar