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 At.
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. 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')
% NEFF Es
usado para crear una red neuronal alimentada hacia atrás de dos capas
% La red
tendra valores de entrada desde 0 a 8
net =
newff([0 8],[10 1],{'tansig' 'purelin'},'trainlm');
%el
commando newff permite crear una una red neuronal de una capa con 10 neuronas
tansig
%seguidas
de una neurona purelin. La retropropagación TRAINLIM es usada al igual que la
%TANSIG
y1 =
sim(net,p)
net.trainParam.epochs = 50; %se
define el numero de epocas en las cuales sera
%entrenada la red neuronal
net.trainParam.goal = 0.01; %se define el error al que se debe llegar
net =
train(net,p,t); %entrenamiento de la red
y2 = sim(net,p)%simulacion de la
red
plot(p,t,'o',p,y1,'x',p,y2,'*')%dibujo
de resultados obtenidos
Ejemplos
Diagrama en simulink del sistema dinámico antena descrito por las
ecuaciones:
Respuestas dinámicas del sistema durante 20 segundos para las siguientes
condiciones:
%obtencion de los aptrones de entrenaiento
A=[-20:22:200];
V=[-90:36:90];
F=[-30:6:30];
p=combvec(A,V,F)
T=[];
for i=1:1:length(p)
u=p(3,i)*pi/180; %ingreso de valor en radianes
w0=p(2,i)*pi/180;
teta0=p(1,i);
sim('Modelo_literal_8',
50e-3);%permite simular
el sistema creado en simulink
deltaw =
velocidad-w0;
deltaT =
angulo-teta0;
delta=[deltaT;deltaw]
T=[T delta]
end
1. 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.
% create a FFN
%3 neuronas en la capa de entrada y una en la salida
net=newff(minmax(p),[8,2],{'tansig','purelin'},'trainlm');
% set training parameters
net.trainParam.show = 8;% muestre cada
50 epocas
net.trainParam.lr = 0.05; %taza de aprendisaje
net.trainParam.epochs = 500;
net.trainParam.goal = 1e-7;
% Now train the network
[net,tr]=train(net,p,T);
% check the output
%a = sim(net,p)
1. Diagrama en simulink que permite la verificación del sistema identificado
con red neuronal mediante una comparación con el sistema original.
PREGUNTAS
¿Qué
es la identificación de un sistema dinámico?
La identificación de un
sistema dinámico consiste en conocer la forma en que las variables que
intervienen en el fenómeno se relacionan entre sí, la identificación permite,
mediante un conjunto de experiencias la determinación indirecta de las
ecuaciones matemáticas a las que se encuentra sometido el sistema, cuando estas
experiencias a las que es sometido el sistema cambian de un instante de tiempo
a otro con la misma señal de entrada se lo conoce como sistema dinámico.
¿Si
la red neuronal FF (Feed Foward - Alimentacion para adelante) es un sistema
estático, como se pretende identificar un sistema dinámico?
La red neuronal es un
sistema estático no dinámico, la idea es aproximar la función en un tiempo muy
pequeño, es decir hacer una congruencia de sistemas pero en un tiempo pequeño
en el que el sistema dinámico pueda ser visto como estático.
Se usa las variaciones que
tienen las entradas en las salidas puesto que el patrón de entrenamiento debe
entrenar en base a cambios y si el cambio no es muy pronunciado en el corto
tiempo el patrón de entrenamiento no podrá cumplir con su función.
¿Cómo
se caracteriza un sistema dinámico en el espacio de estados?
Es el conjunto más pequeño
de variables de estado de tal forma que la información que tienen esas
variables en un determinado instante diferente al inicial, conjuntamente con la
información de la entrada para dicho
instante determina completamente el comportamiento del sistema en cualquier
tiempo.
En
que consiste el “entramado” que se requiere para entrenar la red neuronal.
Comente el compromiso entre la resolución y la carga computacional
El entramado es una
estructura formada por muchos procesadores simples llamados nodos o neuronas ya
sean ocultas o visibles, estas se encuentran conectadas por canales de comunicación
o conexiones, por ende para entrenar una red neuronal se necesitara un
entramado complejo si así lo requiere el problema o uno simple si el problema
es de fácil solución.
La resolución de un
entrenamiento depende de cuan eficaz es el proceso de aprendizaje y cuan
complejo sea este proceso, si el problema requiere de varias capas de neuronas
la carga computacional será alta pues se deberán realizar procesos de cálculos
en diferentes niveles lo que de cierta forma demora el tener una respuesta, mientras
que si el problema requiere de una capa de neurona la carga computacional será
baja y por ende la resolución de aprendizaje será mejor pues se tienen una
mayor asertividad en los resultados.
0 comentarios :
Publicar un comentario