You are on page 1of 11

UNIVERSIDAD NACIONAL DEL

CALLAO
FACULTAD DE INGENIERA ELCTRICA Y
ELECTRNICA

SECCIN POSGRADO

MAESTRA EN CIENCIAS DE LA ELECTRNICA


MENCIN: CONTROL Y AUTOMATIZACION

Curso: Control Inteligente

Trabajo final: identificacin de sistemas


basado en redes neuronales GADALINE
(Generalized ADALINE)

Alumno: Jos Luis Muoz Meza


Profesor: Ricardo Rodrguez Bustinza

CALLAO JUNIO 2017


Contenido
Antecedentes.................................................................................................................... 3
Planteamiento del problema ............................................................................................ 4
Implementacin de GADALINE-Algoritmo II..................................................................... 4
Evaluacin de Resultados ................................................................................................. 9
Conclusiones ................................................................................................................... 11
Bibliografa ...................................................................................................................... 11
Antecedentes
El uso de redes neuronales artificiales en la identificacin de sistemas es una de las
aplicaciones ms conocidas de este tipo de modelo computacional. El trabajo
propuesto se basa en un artculo (paper) de Wenle ZHANG, donde propone dos
posibles algoritmos, variantes de ADALINE, para reducir el tiempo de estimacin y ser
adecuados para su uso online.
El primer algoritmo de entrenamiento fue desarrollado durante las clases tericas del
curso y bsicamente procesa todo el vector de entrada hasta llegar a valores de los
coeficientes de la funcin de transferencia del sistema que se trata de identificar,
dentro de un margen de error definido.
El segundo algoritmo, materia del trabajo final, aplica el mecanismo de ventana
deslizante, es decir selecciona un nmero de muestras (ventana) y usa en cada
ventana bsicamente el primer algoritmo. La ventana luego va desplazndose para ir
procesando las muestras siguientes.
La implementacin realizada muestra la factibilidad el segundo algoritmo y compara
los resultados con el primero.
Planteamiento del problema
Identificar un sistema lineal usando el algoritmo II descrito en el paper de Zhang,
usando el mecanismo de ventana deslizante. En este caso, la intencin del autor es
estimar los parmetros de un sistema, es decir identificarlos, para aplicaciones en
tiempo real, donde el mecanismo de ventana deslizante permitira realizar los clculos
conforme van ingresndose los datos de entrada y respuesta deseada.
Conforme se hace notar, los valores de tamao de ventana, as como el factor de
aprendizaje deben ser sintonizados para cada aplicacin especfica.

Implementacin de GADALINE-Algoritmo II
A continuacin, se transcribe el algoritmo LSM-SW que se busca implementar:

GADALINE Training Algorithm II


Sea el tamao de la ventana deslizante
Sea el nmero de epocas (epochs)
Sea t = s
El data set de la ventana actual es
= {(0), , ( 1)}, = {(0), , ( 1)}
Inicializar el vector ( 1) con pesos aleatorios
While % la versin online tiene un bucle infinito
Sea () = (1 , . . , ) el siguiente vector de entrada, para el cual ()
es la salida deseada
Correr la ventana una unidad y actualizar ,
= {(2~), ()}, = {(2~), ()}
(0) = ( 1)
For = 1 to
For = 1 to
Calcular () = () ()( 1)
= ()()
Ajustar el vector de pesos a
() = ( 1) +
end for i
(0) = ()
end for j
() = ()
Incrementar
End while

Figura Nro. 1: Seudocdigo del algoritmo LSM-SW


Trasladando el cdigo en lenguaje MATLAB se tiene el siguiente script:
clear all; close all; clc
%-------------------------------------------------------------------------
% Algoritmo LMS-SW
% Elaborado por: Jos Luis Muoz Meza
% Nota: Se ha implementado el Algoritmo II (LMS-SW) del paper
% El Algoritmo I (GADALINE) ya fue desarrollado por el Prof. Rodriguez
%-------------------------------------------------------------------------
% Observaciones
% Los datos de pruebas alcanzados para validar el trabajo constan de
% cuatro columnas, donde la columna 1 y 3 son tiempos, en tanto que las
% columnas 2 y 4 corresponden a la entrada y salida del sistema
datos=load('datap1.lvm');
pure=datos(:,2)<0.5;
t=datos(:,1);t=t(sum(pure)+1:end)-t(sum(pure));
us=ones(length(t));
%ys=datos(:,4); ys=ys(sum(pure)+1:end);
ys=datos(:,4); ys=ys(sum(pure)+1:end);
ventana=10; % sliding window
ne=6; % epochs
figure
plot(t,ys,'r')
hold
u_1=0; y_1=0; % C.I cero
w1=0.01*randn; % pesos iniciales pequeos
w2=0.01*randn;
wt_1=[w1 w2];
alpha=0.04; % factor de aprendizaje
% m=0.01; en LMS-SW no se aplica momentun
dw_1=[0 0];
% E=0.00001; Tampoco se establece un epsiln o lmite de
parada del momentun
for k=1:length(us)-ventana-1
u_1=0; y_1=0;
uss=[u_1 -y_1];

wp=wt_1;
for j=1:ne
usventana=us(k+1:k+1+ventana);
ysventana=ys(k+1:k+1+ventana);

for i=1:ventana
ussj=[usventana(i) -ysventana(i)];
e=ysventana(i)-ussj*wp';
dw=alpha*e*ussj;
wp=wp+dw;

end
end
w=wp;
u_1=us(k);
y_1=ys(k);
end
% Respuesta del sistema con los parmetros W estimados
T=0.04;
tk=0:T:t(end);
u=ones(size(tk));
Gze=tf(w(1),[1 w(2)],T);
Gm=d2c(Gze);
Gm=zpk(Gm);
ye=lsim(Gze,u,tk);
plot(tk,ye,'-.k');
legend('Real','Estimado','Location', 'northeast');
plot(t,us,'b');
xlabel('\bf t(seg)');
ylabel('\bf y(t)');
title('Sistema Real y Estimado');
Se debe hacer notar que los archivos de pruebas proporcionados para validar el
algoritmo constan de cuatro columnas y no de dos como en el ejemplo proporcionado
como referencia.
La estructura de los archivos de prueba es:
tiempo1 seal de entrada -tiempo2 respuesta del sistema
Por lo tanto, en el script en la parte inicial, se extrae la columna de tiempo
(tiempo1=tiempo2) y la de respuesta del sistema. Posteriormente se procede a
analizar solo la parte de inters (en el instante donde se encuentra el escaln) para
simplificar su anlisis.
El resto del cdigo implementa el algoritmo, donde se utilizan pocas, definidas por el
usuario para ajustar el valor de los parmetros w, la cantidad de veces de dicho
parmetro, proceso que se realiza dentro de la ventana de muestra. Esto se va a ir
repitiendo a su vez, conforme se vaya deslizando o aplicando un corrimiento de la
informacin de muestra.
La implementacin mostrada toma en consideracin que los datos proporcionados del
sistema (archivo datap1.lvm), en principio, corresponden a un sistema de primer orden
por lo cual en el script se asume dicho modelo:
1 1 Ecuacin (1)
() =
1 + 2 1

Los valores de 1 y 2 son los pesos del polinomio.


Los datos siguientes de prueba (archivo datap2.lvm), presentan las caractersticas de un
sistema de segundo orden o superior; por ello, en el script anterior se debe establecer
un vector de pesos con mayores elementos, = [1 2 3 4 ] a fin de estimar los
parmetros de un sistema con la siguiente forma:

1 1 + 2 2 Ecuacin (1)
() = 1 2
1 + 3 + 4
Igualmente deben modificarse dw para que sea tambin de dimensin 1x4.
El script con el nuevo cdigo se observa a continuacin:
clear all; close all; clc
%-------------------------------------------------------------------------
% Algoritmo LMS-SW
% Elaborado por: Jos Luis Muoz Meza
% Nota: Se ha implementado el Algoritmo II (LMS-SW) del paper
% El Algoritmo I (GADALINE) ya fue desarrollado por el Prof. Rodriguez
%-------------------------------------------------------------------------
% Observaciones
% Los datos de pruebas alcanzados para validar el trabajo constan de
% cuatro columnas, donde la columna 1 y 3 son tiempos, en tanto que las
% columnas 2 y 4 corresponden a la entrada y salida del sistema
datos=load('datap2.lvm');
pure=datos(:,2)<0.5;
t=datos(:,1);t=t(sum(pure)+1:end)-t(sum(pure));
us=ones(1,length(t));
%ys=datos(:,4); ys=ys(sum(pure)+1:end);
ys=datos(:,4); ys=ys(sum(pure)+1:end);

ventana=10; % sliding window


ne=6; % epochs

figure
plot(t,ys,'r')
hold
u_1=0; y_1=0; % C.I cero
w1=0.01*randn; % pesos iniciales pequeos
w2=0.01*randn;
w3=0.01*randn;
w4=0.01*randn;

wt_1=[w1 w2 w3 w4];
alpha=0.04; % factor de aprendizaje
% m=0.01; en LMS-SW no se aplica momentun
dw_1=[0 0 0 0];
% E=0.00001; Tampoco se establece un epsiln o lmite de
% parada del momentum
us=[0 us];
ys=[0 ys'];

for k=2:length(us)-ventana
usventana=us(k-1:k+ventana-1);
ysventana=ys(k-1:k+ventana-1);
wp=wt_1;
for j=1:ne

for i=1:ventana
wt_1=wp;
ussj=[usventana(i+1) usventana(i) -ysventana(i+1) -
ysventana(i)];
e=ysventana(i+1)-ussj*wp';
dw=alpha*e*ussj;
wp=wp+dw;

end

end
w=wp;
u_1=us(k);
y_1=ys(k);
end
% Respuesta del sistema con los parmetros W estimados
T=0.004;
tk=0:T:t(end);
u=ones(size(tk));
Gze=tf([w(1) w(2)],[1 w(3) w(4)],T);
Gm=d2c(Gze);
Gm=zpk(Gm);
ye=lsim(Gze,u,tk);
plot(tk,ye,'-.k');
legend('Real','Estimado','Location', 'northeast');
plot(t,us(2:end),'b');
xlabel('\bf t(seg)');
ylabel('\bf y(t)');
title('Sistema Real y Estimado');
Figura Nro. 2: Respuesta del sistema correspondiente al segundo dataset de prueba
Evaluacin de Resultados
Para el primer dato de prueba, se obtienen los resultados mostrados en la siguiente
figura:

Figura Nro. 3: Resultados obtenidos con el algoritmo Gadaline II (LSM-SW) para el


primer conjunto de datos (sistema de primer orden)

Como se puede apreciar, los resultados son bastante satisfactorios, con un seguimiento
muy cercano al sistema bajo evaluacin.
Para el segundo conjunto de datos, se obtiene lo siguiente:
Figura Nro. 4: Resultados obtenidos con el algoritmo Gadaline II (LSM-SW) para el
segundo conjunto de datos (sistema de segundo orden)

En este caso, aun cuando el sistema estimado es de segundo orden, no logra


aproximarse en la fase transitoria al sistema de pruebas. En principio, se entiende que
deberan realizarse ajustes a los valores de la tasa de aprendizaje, a la cantidad de
pocas y al tamao de la ventana.
Conclusiones
1. El uso de una red GADALINE en cualquiera de las dos variantes propuestas por
el autor son adecuadas para la identificacin de un sistema.
2. El algoritmo I incorpora un momentum para acelerar la convergencia del
GADALINE convencional. Este algoritmo fue implementado en clases
3. El algoritmo II aplica los conceptos de ventana deslizante (LSM-SW) y pocas
(epochs), que en principio seran ms adecuadas para sistemas en tiempo real.
4. Los datos de prueba proporcionados corresponden a un sistema de primer
orden y de segundo orden. Para fines de elaboracin del script, es conveniente
poder identificar el orden respectivo.
5. Los resultados obtenidos son aceptables y confirman la validez del artculo.

Bibliografa

[1] W. Zhang, "System Identification Based on Generalized ADALINE Neural Network,"


INTERNATIONAL JOURNAL OF INTELLIGENT CONTROL AND SYSTEMS, pp. 17-25,
2006.

You might also like