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.
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Actividad no13 y_14_de_2do_parcial
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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