Página 1
UNIVERSIDAD DE FUERZAS ARMADAS “ESPE”
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
ASIGNATURA: CONTROL INTELIGENTE
Act...
Página 2
% Here the network is trained for up to 50 epochs to a error goal of
% 0.01, and then resimulated.
%
net.trainPar...
Página 3
2. Identifique mediante una red neuronal la función 𝒛 = 𝒙𝒆−𝒙 𝟐
−𝒚 𝟐
. Presente el gráfico de la
función original ...
Página 4
3. Repita el ejercicio anterior, identifique mediante una red neuronal la función 𝒛 = 𝒙𝒆−𝒙 𝟐
−𝒚 𝟐
.
Presente el g...
Página 5
4. Escriba dos párrafos que describan las características principales del entrenamiento al que se
refiere el coma...
Página 6
6. Presente las respuestas dinámicas del sistema durante 20 segundos para las siguientes
condiciones iniciales: a...
Página 7
8. Obtenga las variaciones de velocidad y ángulo que se obtienen luego de 50ms para cada una
de los valores que s...
Página 8
10. Construya un diagrama en simulink que permita la verificación del sistema identificado
con red neuronal media...
Página 9
Gráfica con condiciones iniciales
PREGUNTAS
1.- ¿Qué es la identificación de un sistema dinámico?
La identificaci...
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 qu...
Página 11
valores de los estados y señal de control del sistema. El entramado consiste en lograr mediante la
generación de...
Próxima SlideShare
Cargando en…5
×

Actividad no13 y_14_de_2do_parcial

195 visualizaciones

Publicado el

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.

Publicado en: Ingeniería
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
195
En SlideShare
0
De insertados
0
Número de insertados
35
Acciones
Compartido
0
Descargas
9
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Actividad no13 y_14_de_2do_parcial

  1. 1. 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' enla 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)
  2. 2. 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.
  3. 3. 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
  4. 4. 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);
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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)
  9. 9. 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
  10. 10. 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
  11. 11. 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

×