Actividad no13 y_14_de_2do_parcial

11

Click here to load reader

Transcript of Actividad no13 y_14_de_2do_parcial

Page 1: Actividad no13 y_14_de_2do_parcial

Página 1

UNIVERSIDAD DE FUERZAS ARMADAS “ESPE” DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

ASIGNATURA: CONTROL INTELIGENTE

Actividad No 13 y No 14. Identificación de funciones de varias variables. Identificación de

sistemas dinámicos.

Fecha: 22 de Mayo del 2014

Nombre de los alumnos: Dayana Ochoa y Carlos Mendoza

NRC: 2055

Introducción. IDENTIFICACIÓN DE UN SISTEMA DINÁMICO MEDIANTE RED

NEURONAL

La identificación de un sistema dinámico mediante una red neuronal consiste en determinar los

parámetros de la red de tal manera que los dos sistemas tengan respuestas similares cuando son excitados con las mismas señales de control. Un sistema dinámico puede caracterizarse en el espacio de estado. En la formulación de espacio

de estado un sistema está caracterizado por la ecuación de estado. Esta formulación es aplicable a sistemas de una entrada, una salida SISO o para sistemas multivariables MIMO. La ecuación

de estado es: �̇� = 𝒇(𝒙, 𝒖)

𝒚 = 𝒈(𝒙, 𝒖)

Donde x son los estados y u es la señal de control. La descripción del sistema dinámico es completa cuando se define una condición inicial para los estados y una señal de control.

En esta actividad, la red neuronal que se utilizará para la identificación es una red estática (que no varía en el tiempo). La red neuronal por tanto solo puede identificar a un sistema estático. Si

se restringe al sistema dinámico a un pequeño intervalo de tiempo, se lo puede considerar como un sistema estático. Es posible obtener una red neuronal que tiene las mismas variaciones que el sistema dinámico luego de que ha transcurrido un pequeño intervalo de tiempo ∆𝒕. Para que la

red neuronal refleje el comportamiento del sistema dinámico es necesario que su comportamiento sea similar para un entramado lo suficientemente fino de valores de los estados

y señal de control del sistema. Esto se logra mediante la generación de patrones de entrenamiento que capten la respuesta a los valores de dicho entramado de tal manera que la red

neuronal aprenda el comportamiento para las distintas condiciones del sistema dinámico. 1. Analice el código de ayuda del comando train. Ejecute el código, grafique los resultados e

indique la funcionalidad de los comandos: newff, sim, net.trainParam.epochs = 50; net.trainParam.goal = 0.01. Identifique el significado de los parámetros [0 8],[10

1],{'tansig' 'purelin'},'trainlm' en la función newff

p = [0 1 2 3 4 5 6 7 8];

t = [0 0.84 0.91 0.14 -0.77 -0.96 -0.28 0.66 0.99];

plot(p,t,'o')

% Here NEWFF is used to create a two layer feed forward network.

% The network will have an input (ranging from 0 to 8), followed

% by a layer of 10 TANSIG neurons, followed by a layer with 1

% PURELIN neuron. TRAINLM backpropagation is used. The network

% is also simulated.

% net = newff([0 8],[10 1],{'tansig' 'purelin'},'trainlm');

y1 = sim(net,p)

Page 2: Actividad no13 y_14_de_2do_parcial

Página 2

% Here the network is trained for up to 50 epochs to a error goal of

% 0.01, and then resimulated.

%

net.trainParam.epochs = 50;

net.trainParam.goal = 0.01;

net = train(net,p,t);

y2 = sim(net,p)

plot(p,t,'o',p,y1,'x',p,y2,'*')

Analisis del código

En el código descrito en la ayuda del comando train, este comando llama a la función indicada por NET.trainFcn, utilizando los valores de los parámetros de

formación indicados por NET.trainParam.

Típicamente una época de entrenamiento se define como una única presentación de todos los vectores de entrada a la red. La red se actualiza entonces de acuerdo

con los resultados de todos los casos posibles.

El entrenamiento ocurre cuando se produce un número máximo de épocas,

también cuando se cumple el objetivo de rendimiento, o cuando se cumple cualquier otra condición de parada de la función NET.trainFcn.

Gráfica de resultados

Funcionalidad de los comandos:

newff: Este comando se utiliza para crear una red de alimentación hacia adelante

de dos capas. sim: Este comando sirve para simular la red neuronal. net.trainParam.epochs = 50: En este comando se especifica el número de épocas

de entrenamiento de la red neuronal. net.trainParam.goal = 0.01: Este comando específica el valor al que se desea

llegar en el error medio cuadrático.

Page 3: Actividad no13 y_14_de_2do_parcial

Página 3

2. Identifique mediante una red neuronal la función 𝒛 = 𝒙𝒆−𝒙𝟐 −𝒚𝟐. Presente el gráfico de la

función original y de la función aproximada mediante red neuronal para −𝟐 ≤ 𝒙 ≤𝟐; −𝟐 ≤ 𝒚 ≤ 𝟐. a) Utilice 6 neuronas en la capa escondida, el método de entrenamiento

traingd. b) Utilice 12 neuronas en la capa escondida, el método de entrenamiento traingd.

[X,Y] = meshgrid(-2:.2:2, -2:.2:2); Z = X .* exp(-X.^2 - Y.^2); surf(X,Y,Z) mesh ( X,Y,Z) xT=X(:)'; %TRASNFORMACION A UN SOLO VALOR

yT=Y(:)'; %TRASNFORMACION A UN SOLO VALOR zT=Z(:)'; %TRASNFORMACION A UN SOLO VALOR p=[xT; yT]; t=[zT]; net=newff(minmax(p),[6,1],{'tansig','purelin'},'traingd'); %neuronas de la capa de entrada %neuronas de la capa de salida % set training parameters net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.epochs = 1000; net.trainParam.goal = 1e-7;

[net,tr]=train(net,p,t); a = sim(net,p) cont=1; for i=1:1:21 for j=1:1:21 matrizA(i,j)= a(cont); cont=cont+1; end end mesh(X,Y,matrizA);

Identifique el significado de los parámetros

[0 8]: Representan el rango de los valores de entrada. [10 1]: En este parámetro se especifica el número de neuronas de entrenamiento en una

capa y el número de neuronas que le sigue en la siguiente capa. Se dice aquí que es una capa de diez neuronas seguido por una capa de una neurona. tansig: Es la función de transferencia neuronal.

purelin: Es la función de activación de la tangente hiperbólica. Del tipo lineal mx+b. trainlm: Es el método de entrenamiento y se especifica que es un método de

aproximaciones de segunda derivada ya que al tener lm se dice que se usa la segunda derivada, es un método sofisticado.

Gráfica Original Gráfica con 6 neuronas

Gráfica con 12 neuronas

Page 4: Actividad no13 y_14_de_2do_parcial

Página 4

3. Repita el ejercicio anterior, identifique mediante una red neuronal la función 𝒛 = 𝒙𝒆−𝒙𝟐 −𝒚𝟐.

Presente el gráfico de la función original y de la función aproximada mediante red neuronal para −𝟐 ≤ 𝒙 ≤ 𝟐; −𝟐 ≤ 𝒚 ≤ 𝟐. a) Utilice 6 neuronas en la capa escondida, el método de

entrenamiento trainlm. b) Utilice 12 neuronas en la capa escondida, el método de entrenamiento trainlm.

Gráfica Original Gráfica con 6 neuronas

Gráfica con 12 neuronas

[X,Y] = meshgrid(-2:.2:2, -2:.2:2); Z = X .* exp(-X.^2 - Y.^2);

surf(X,Y,Z) mesh ( X,Y,Z) xT=X(:)'; %TRASNFORMACION A UN SOLO VALOR yT=Y(:)'; %TRASNFORMACION A UN SOLO VALOR zT=Z(:)'; %TRASNFORMACION A UN SOLO VALOR p=[xT; yT]; t=[zT]; net=newff(minmax(p),[6,1],{'tansig','purelin'},'trainlm'); %neuronas de la capa de entrada %neuronas de la capa de salida % set training parameters net.trainParam.show = 50;

net.trainParam.lr = 0.05; net.trainParam.epochs = 1000; net.trainParam.goal = 1e-7; [net,tr]=train(net,p,t); a = sim(net,p) cont=1; for i=1:1:21 for j=1:1:21 matrizA(i,j)= a(cont); cont=cont+1; end end mesh(X,Y,matrizA);

Page 5: Actividad no13 y_14_de_2do_parcial

Página 5

4. Escriba dos párrafos que describan las características principales del entrenamiento al que se refiere el comando trainlm.(pag. 180 de Neural Networks for applied Sciences and Engineering, Sandhya

Samarasinghe)

5. Realice el diagrama en simulink del sistema dinámico antena descrito por las ecuaciones:

𝒙𝟏 = 𝜽 á𝒏𝒈𝒖𝒍𝒐 [°]; 𝝎 = 𝒙𝟐 =𝒅𝜽

𝒅𝒕 = velocidad angular [

°

𝑺]

𝒖 = 𝒇𝒖𝒆𝒓𝒛𝒂 [𝑵] �̇�𝟏 = 𝒙𝟐

�̇�𝟐 = 𝟗. 𝟖𝟏 ∗ 𝒔𝒆𝒏(𝒙𝟏) − 𝟐 ∗ 𝒙𝟐 + 𝒖

Este método mejora la solución a los problemas que son difíciles para resolver por

sólo el ajuste de la tasa de aprendizaje en repetidas ocasiones, como se implica en el método de Gauss-Newton que incorpora las dos derivadas (primera y segunda) del

error. En lugar de ajustar 𝜺 el método de Levenberg-Marquardt (LM) setea la unidad y

un nuevo término 𝒆𝝀 se le agrega al segundo término a ser derivado donde 𝒆 es el

logaritmo natural.

Las propiedades de convergencia del método de Levenberg Marquardt son similares a

las del método de Newton-Gauss. La convergencia local es lenta cuando el residuo es grande y cuando el problema es fuertemente no lineal. Sin embargo este método es

superior en ciertos aspectos. Cuando J(x)(matriz jacobiana) no es de rango completo, el método de Levenberg – Marquardt queda mejor definido y cuando el paso es grande, la dirección de descenso es mejor que en el método de Newton- Gauss. Por

ello es preferible el uso del método de Levenberg- Marquardt para la mayoría de los problemas.

Este algoritmo converge en menos iteraciones que cualquier método discutido anteriormente, por supuesto requiere más cálculos computacionales por iteración, debido a que implica el cálculo de matrices inversas. A pesar de su gran esfuerzo

computacional sigue siendo el algoritmo de entrenamiento más rápido para redes neuronales cuando se trabaja con un moderado número de parámetros en la red, si el

número de parámetros es muy grande utilizarlo resulta poco práctico.

Diagrama del sistema dinámico antena

Page 6: Actividad no13 y_14_de_2do_parcial

Página 6

6. Presente las respuestas dinámicas del sistema durante 20 segundos para las siguientes

condiciones iniciales: a) 𝜽 = 𝟖𝟎°; 𝒘 = 𝟑𝟎°

𝒔; 𝒖 = 𝟓 𝑵 b) 𝜽 = −𝟓°; 𝒘 = −𝟔𝟎

°

𝒔 ; 𝒖 =

𝟏𝟓 N

7. Escriba el código para generar un conjunto de patrones de entrenamiento que genere un entramado (todas las combinaciones posibles) de valores de ángulo, velocidad y fuerza con los siguientes rangos y resoluciones:

a) Ángulo: −𝟐𝟎 ≤ 𝜽 ≤ 𝟐𝟎𝟎 en pasos de 22°.

b) Velocidad: −𝟗𝟎 ≤ 𝝎 ≤ 𝟗𝟎 en pasos de 36 °

𝒔 .

c) Fuerza: −𝟑𝟎 ≤ 𝒖 ≤ 𝟑𝟎 en pasos de 6 N

a) 𝜽 = 𝟖𝟎°; 𝒘 = 𝟑𝟎°

𝒔; 𝒖 = 𝟓 𝑵

Gráfica de la respuesta dinámica

Código del Programa

angulo=[-20:22:200]; velocidad=[-90:36:90]; fuerza=[-30:6:30]; T=[]; p=combvec(angulo,velocidad,fuerza)%entramado de entradas con las

combinaciones posibles

b) 𝜽 = −𝟓°; 𝒘 = −𝟔𝟎°

𝒔 ; 𝒖 = 𝟏𝟓 N

Gráfica de la respuesta dinámica

Page 7: Actividad no13 y_14_de_2do_parcial

Página 7

8. Obtenga las variaciones de velocidad y ángulo que se obtienen luego de 50ms para cada una de los valores que se obtuvieron en el numeral anterior. Almacene estos resultados en un vector de dos filas y número de columnas igual al número de combinaciones.

Verifique los resultados obtenidos con los del numeral 6 y comente.

9. Escriba el código para entrenar una red neuronal con 8 neuronas en la capa oculta para

identificar el sistema dinámico antena en un lapso de tiempo de 50 ms.

Código del programa

angulo=[-20:22:200] *pi/180;

velocidad=[-90:36:90] *pi/180;

fuerza=[-30:6:30];

T=[];

p=combvec(angulo,velocidad,fuerza)%entramado de entradas con las combinaciones

posibles

for i=1:1:length(p);

u=p(3,i);

w0=p(2,i);

teta0=p(1,i);

sim('ejercicio13', 0.05);%simular el sistema de simulink

deltaw=veloci-w0;

deltaT=angul-teta0;

delta=[deltaT ; deltaw];

T=[T delta];

end

Gráfica de resultados

Análisis

Al realizar la comparación entre las gráficas obtenidas en ambos literales del

ejercicio 6 con la gráfica obtenida en el ejercicio 8 se puede decir que cuando la misma red neuronal es simulada en intervalos de tiempo distintos, la red produce respuestas similares pero en intervalos superiores la respuesta es más lenta mientras

que intervalos más cortos la red es más rápida. Es importante notar que en el ejercicio 6 los valores de ángulo, velocidad y fuerza son los mismos valores en todo

el intervalo, mientras que en el ejercicio 8 estos son un intervalo que genera aproximadamente 726 combinaciones.

Código del programa angulo=[-20:22:200]*pi/180;

velocidad=[-90:36:90]*pi/180;

fuerza=[-30:6:30];

T=[];

p=combvec(angulo,velocidad,fuerza)%entramado de entradas con las combinaciones

posibles

for i=1:1:length(p);

u=p(3,i);

w0=p(2,i);

teta0=p(1,i);

sim('ejercicio13', 0.05);%simular el sistema de simulink

deltaw=veloci-w0;

deltaT=angul-teta0;

delta=[deltaT ; deltaw];

T=[T delta];

end

Page 8: Actividad no13 y_14_de_2do_parcial

Página 8

10. Construya un diagrama en simulink que permita la verificación del sistema identificado

con red neuronal mediante una comparación con el sistema original. Transcriba el

diagrama de simulink y los resultados obtenidos para varias condiciones iniciales y de señal de fuerza aplicada (mínimo tres casos de estudio).

Diagrama en Simulink

a) teta0=0; w0=0; u=1

Gráfica resultante

net=newff(minmax(p),[8,2],{'tansig','purelin'},'trainlm');

%neuronas de la capa de entrada

%neuronas de la capa de salida

% set training parameters

net.trainParam.show = 50;

net.trainParam.lr = 0.05;

net.trainParam.epochs = 1000;

net.trainParam.goal = 1e-7;

[net,tr]=train(net,p,T);

% check the output

a = sim(net,p)

gensim(net,0.05)

Page 9: Actividad no13 y_14_de_2do_parcial

Página 9

Gráfica con condiciones iniciales

PREGUNTAS

1.- ¿Qué es la identificación de un sistema dinámico?

La identificación de un sistema dinámico mediante una red neuronal es el proceso que consiste

en determinar los parámetros de la red de tal manera que los dos sistemas tengan respuestas similares cuando son excitados con las mismas señales de control.

2.- ¿Si la red neuronal FF es un sistema estático, cómo se pretende identificar un sistema

dinámico?

b) teta0=30*pi/180; w0=0; u=1

Gráfica resultante

c) teta0=30*pi/180; w0=10*pi/180; u=1

Gráfica resultante

d) teta0=30*pi/180; w0=10*pi/180; u=5

Gráfica resultante

Page 10: Actividad no13 y_14_de_2do_parcial

Página 10

La red neuronal es un sistema estático no dinámico, la idea es aproximar al sistema dinámico cuando el tiempo que transcurre es muy pequeño (tiempo de discretización), en este tiempo ocurre que el sistema dinámico puedo ser considerado como un sistema estático es decir al

sistema dinámico se le analiza para una fuerza ángulo y velocidad inicial que esta descrito por las ecuaciones en el espacio de estados; de esta forma se puede encontrar las variaciones del

ángulo y la velocidad que son funciones estáticas cuando se toman este tiempo de discretización.

3.- ¿Qué elementos tiene cada patrón de entrenamiento para la:

a) Aproximación de una función

Para la aproximación de una función los elementos que tiene cada patrón de entrenamiento son el número de épocas de entrenamiento de la red neuronal, el valor al que se desea llegar en el error

medio cuadrático, el intervalo de tiempo de visualización de los resultados y la tasa de aprendizaje. b) Identificación del sistema dinámico?

Para identificar el sistema dinámico se debe especificar en este ejercicio en el especifico las entradas de ángulo velocidad y fuerza al igual que el entramado de entradas con las

combinaciones posibles de ángulo, velocidad y fuerza. 4.- ¿Cómo se caracteriza un sistema dinámico en el espacio de estado?

Un sistema dinámico se caracteriza en el espacio de estado, a través de las variables de estado, que son variables que cambian con el tiempo y que definen un estado específico de un sistema

dinámico en un instante dado.

Se tiene entonces lo siguiente:

�̇�𝟏(𝒕) = 𝒇𝟏(𝒕,𝒙𝟏 ,… . , 𝒙𝒏, 𝒖𝟏 , … … 𝒖𝒎 )

�̇�𝟐(𝒕) = 𝒇𝟐(𝒕,𝒙𝟏 ,… . , 𝒙𝒏, 𝒖𝟏 , … … 𝒖𝒎 )

. .

�̇�𝒎 (𝒕) = 𝒇𝒏(𝒕, 𝒙𝟏 ,… . , 𝒙𝒏, 𝒖𝟏 , … … 𝒖𝒎 )

Y por ecuación de salida la siguiente

𝒚 = 𝒉(𝒕,𝒙𝟏 , … . , 𝒙𝒏, 𝒖𝟏 , … … 𝒖𝒎 )

De manera simplificada se tendrá

�̇� = 𝒇(𝒙, 𝒖)

𝒚 = 𝒈(𝒙, 𝒖)

Donde x son los estados y u es la señal de control. La descripción del sistema dinámico es

completa cuando se define una condición inicial para los estados y una señal de control.

5. En qué consiste el “entramado” que se requiere para entrenar la red neuronal comente

el compromiso entre la resolución y la carga computacional.

En esta actividad, la red neuronal que se utilizó para la identificación es una red estática (que no

varía en el tiempo) para que la red neuronal refleje el comportamiento del sistema dinámico es necesario que su comportamiento sea similar para un entramado lo suficientemente fino de

Page 11: Actividad no13 y_14_de_2do_parcial

Página 11

valores de los estados y señal de control del sistema. El entramado consiste en lograr mediante la generación de patrones de entrenamiento captar la respuesta a los valores de dicho entramado de tal manera que la red neuronal aprenda el comportamiento para las distintas condiciones del

sistema dinámico.

El compromiso que exista entre la resolución y la carga computacional es importante ambos

términos determinan exactitud o claridad en la reproducción de los resultados y el tiempo que estos se demoren en producirse, dentro del proceso de entrenamiento de una red neuronal se requiere tener una alta resolución y una baja carga computacional ya que esto permitirá tener

resultados eficientes.

Nosotros Dayana Ochoa y Carlos Mendoza afirmamos que esta actividad es de nuestra autoría y

establecemos que para la elaboración de la misma hemos seguido los lineamientos del Código de Ética de la Universidad de las Fuerzas Armadas ESPE