Identificación de funciones de varias variables. Identificación de sistemas dinámicos.

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