You are on page 1of 20

Control Inteligente

Práctica 1

Modelado de sistemas no lineales


José Alberto Vázquez Rivera
Febrero 23, 2018

Resumen
El campo de las redes neuronales fue inspirado por los estudios en re-
des neuronales reales que conforman el cerebro, en un intento por resolver
problemas mediante el empleo del conocimiento obtenido en casos simi-
lares resueltos en el pasado. lo que se buscar es emular ciertas cualidades
destacables de las redes neuronales reales de lo cual una computadora es-
tandar no puede realizar ya que estos son sistemas secuenciales y las redes
neuronales trabajan paralelamente.
En esta práctica se propuso un sistema cuyo comportamiento es no lineal,
el cual es un péndulo invertido sobre un carro en movimiento y para este
sistema se debe obtener el modelo matemático, para eso se implementa
el uso de funciones base polinimiales de Volterra (VPBF) por redes neu-
ronales. Para la implementación de este método se consideran datos de
experimentación del sistema el cual entrega una entrada y cuatro salidas
del sistema, las cuatro salidas son correspondientes a la posición angular,
posición lineal, velocidad angular y velocidad lineal; de las cuales utilizar
este metodo de (VPBF), las (VPBF) fueron desarrolladas en MATLAB,
este es un software matemático en el cual se analizan dichos datos del
sistema y las (VPBF) para así obtener el modelo matemático del sistema
no lineal.

1
ÍNDICE

Índice
1. Introducción 4
1.1. Introducción al tema . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Antecedentes del tema . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Desarrollo 7
2.1. Identificación de variables de entrada y salida . . . . . . . . . . . 7
2.2. Obtención de W . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3. Obtención de variables . . . . . . . . . . . . . . . . . . . . . . . . 9

3. Resultados 10
3.1. Salida X1 correspondiente a la posición angular . . . . . . . . . . 10
3.2. Salida X2 correspondiente a la posición lineal . . . . . . . . . . . 11
3.3. Salida X3 correspondiente a la velocidad angular . . . . . . . . . 13
3.4. Salida X4 correspondiente a la velocidad lineal . . . . . . . . . . 14

4. Conclusiones 16

5. Anexos 17

2
ÍNDICE DE FIGURAS

Índice de figuras
1. Péndulo invertido sobre Carro Móvil. . . . . . . . . . . . . . . . . 5
2. Esquema de Neurona. . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Entrenamiento de comparación de la salida X1 (Posición angular). 10
4. Validación de comparación de la salida X1 (Posición angular). . . 11
5. Error en comparación de la salida X1 (Posición angular). . . . . 11
6. Entrenamiento de comparación de la salida X2 (posición lineal). . 12
7. Validación de comparación de la salida X2 (posición lineal). . . . 12
8. Error en comparación de la salida X2 (posición lineal). . . . . . . 13
9. Entrenamiento de comparación de la salida X3 (velocidad angular). 13
10. Validación de comparación de la salida X3 (velocidad angular). . 14
11. Error en comparación de la salida X3 (velocidad angular). . . . . 14
12. Entrenamiento de comparación de la salida X4 (velocidad lineal). 15
13. Validación de comparación de la salida X4 (velocidad lineal). . . 15
14. Error en comparación de la salida X4 (velocidad lineal). . . . . . 15

Índice de listados

3
1. Introducción

1. Introducción
1.1. Introducción al tema
Las Redes Neuronales han recibido un interés particular como una tecnolo-
gía para minería de datos, puesto que ofrece los medios para modelar de manera
efectiva y eficiente los probremas grandes y complejos. Los modelos de Redes
neuronales son dirigidos a partir de los datos, es decir, son capaces de encontrar
relaciones (patrones) de forma indutiva por medio de los algoritmos de apren-
dizaje basado en los datos existentes más que requerir la ayuda de un modelado
para especificar la forma funcional y sus interacciones [1].
Las Redes Neuronales son un método de resolver problemas, de forma individual
o combinadas con otros métodos, para aquellas tareas de clasificación, identifica-
ción, diagnóstico, optimización o predicción en las que el balance datos/conocimiento
se inclina hacia los datos y donde, adicionalmente, puede haber la necesidad de
aprendizaje en tiempo de ejecución y de cierta tolerancia a fallos. En estos casos
las Redes Neuronales se adaptan dinánicamente reajustando constantemente los
pesos de sus interconexiones [2].

Para esta práctica se tiene un sistema no lineal el cual consiste en un pén-


dulo invertido simple montado sobre un carro movíl de movimiento horizontal.
La finalidad es la implementación de redes de funciones de base polinomiales de
Volterra:

Implemente el algoritmo para la selección de estructura de redes neurona-


les.
Con el 80 % de los datos obtener un modelo no lineal del sistema repre-
sentado en la figura 1.

Utilice el modelo formado por las cinco funciones base de mayor varianza,
que representan el mejor arreglo de cinco funciones, con el 20 % restante
de los datos para validar el modelo.

4
1.2 Antecedentes del tema

Figura 1: Péndulo invertido sobre Carro Móvil.

1.2. Antecedentes del tema


Las actividades de investigación desarrolladas en torno al estudio de RedesN euronales
o N euroredes, están motivadas en modelar la forma de procesamiento de infor-
mación en sistemas nerviosos biológicos. Mas que nada, por la forma de funcio-
namiento del cerebro humano, que es completamente distinta al funcionamiento
de un computador digital convencional.
El cerebro humano corresponde al de un sistema altamente complejo, no-lineal
y paralelo. En términos sencillos lo anterior equivale a decir que puede realizar
muchas operaciones simultáneamente a diferencia de los computadores comunes
que son del tipo secuencial, o sea, realizan solo una operación a la vez.
en este sentido, una red neuronal es un procesador de información, de dostribu-
ción altamente paralela, constituido por muchas unidades sencillas de procesa-
miento llamadas neuronas, el esquema de una neurona se puede visualizar como
en la figura 2.

5
1.3 Ecuaciones

Figura 2: Esquema de Neurona.

1.3. Ecuaciones

6
2. Desarrollo

2. Desarrollo
2.1. Identificación de variables de entrada y salida
Se tienen datos experimentales de los cuales se tiene que:

La señal de entrada la cual es la fuerza horizontal aplicada al cuerpo y es


U.
La posición angular del péndulo corresponde a X1.
La posición lineal del carro corresponde a X2.

La velocidad angular del péndulo corresponde a X3.


La velocidad lineal del carro corresponde a X4.
donde:
l Es el orden de la expansión polinomial.

n número de retardos maximos.


m número de retardos maximos.
N número de funciones base polinomiales.

y se considera que:
l=3 (1)
n=3 (2)
m=2 (3)
Por lo que:
(n + m + l)!
N= = 56 (4)
(n + m)! ∗ (i)!
Se tiene en cuenta que para la práctica el sistema es no lineal y los datos expe-
rimentales se encuentran en un archivo en .xls por lo que en MATLAB se crea
una función para la obtención de dichos datos y así poder obtener:
φ la cual es la matriz de funciones base.
Yaux donde se almacenan los datos reales de la salida del sistema para
cada Xn.
Uaux donde se almacenan los datos reales de la entrada del sistema.
ESTaux la cual es una matriz que sirve como identificador de la estructura
del sistema.

7
2.1 Identificación de variables de entrada y salida

Como se mencionó anteriormente se dividirán los datos, el 80 % se utilizará para


análisis experimental, y el resto que es el 20 % se utilizará como validación del
sistema.
Conociendo esto lo que se busca es obtener la función no lineal del sistema y
como primer paso es obtener:
(i)
P1 = φ i (5)
(i)
(i) Y T P1
V1 = (i) (i)
(6)
(P1 )T P1
(i) (i)
(i) V1 (P1 )T Y
r1 = (7)
Y TY
Encontrar:
s = argmax{r1i , i = 1, 2, ..., N } (8)
Teniendo en consideración que:
(s1)
P1 = P1 = φs1 (9)
Donde r es la relación de reducción de error, asi de esa forma conocer el vector
s el cual es un vector que incluye las posiciones de las funciones base con mayor
varianza, el cual tiene mucha importancia en el sistema, y este se encuentra de
forma descendente.
Un dato importante esque en el k-esimo paso tener en cuenta que k ≥ 2 para
i = 1, 2, ..., N, i 6= s1 , ..., i 6= sk−1 y calcular:

(i) φTi Pj
αjk = , j = 1, 2, ..., k (10)
(Pj )T Pj
k−1
(i)
X
i
Pk = φ i − αjk Pj (11)
j=1
(i)
(i) Y T Pk
Vk = (i) (i)
(12)
(Pk )T Pk
(i) (i)
(i) Vk (Pk )T Y
rk = (13)
Y TY
Y asi de esa forma encontrar:
sk = argmax{rki , i = 1, 2, ..., N, i 6= s1 , ..., i 6= sk−1 } (14)
Y poder utilizar:
k−1
(sk) (s )
X
Pk = P1 = φsk − αjkk Pj (15)
j=1

El procedimiento concluye en el L-esimo paso cuando:


L
X
1− rj < e0 (16)
j=1

8
2.2 Obtención de W

2.2. Obtención de W
Se debe realizar la descomposición ortogonal de la matriz φ, almacenando
los datos más relevantes dentro de una matriz Q, la matriz Q será la matriz
ortogonal.
Se crea un vector llamado V e en la cual se almacenarán los argumentos máximos
del vector V . Teniendo estos dos datos lo que se busca es obtener el vector W ,
es decir, el vector de pesos que influyen en la capa de la red neuronal.

2.3. Obtención de variables


Se tienen tres datos importantes los cuales son:

W el cual es un vector de pesos.


ESTaux la cual es una matriz que sirve como identificador de la estructura
del sistema.
s el cual es un vector que incluye las posiciones de las funciones base con
mayor varianza, es decir, estos datos son los que tienen más importancia
en el sistema, y se encuentran de forma descendente.
Considerando estos tres datos se deben tomar solo las primeras 5 funciones base
del vector s considerando que estas son las que demuestran mayor varianza.
En base al orden en el vector s se toman y se ordenan los datos de la matriz
EST aux; los cinco datos del vector W se toman y se realiza la multiplicación
de cada uno de ellos con cada dato del vector EST aux.
La forma de la estructura de la red neuronal se puede visualzar en la ecuación
17.
[Y (t − 1)y(t − 2)t(t − 3)u(t − 1)u(t − 2)] (17)

9
3. Resultados

3. Resultados
A continuacion se mostrarán los resultados obtenidos en dicha práctica, se
mostrara por cada salida Xn, los datos de entrenamiento, datos de validación,
el error entre datos reales y modelos estimados.

3.1. Salida X1 correspondiente a la posición angular


Se tiene que:
     
2 1 0 0 1,7918
 3 
 

 2 0 0 


 −0,9507 

S=  6 
 EST aux = 
 5 0 0 
 W =
 −0,0035 
 (18)
 5   4 0 0   0,0017 
4 3 0 0 0,1415

Y la ecuación obtenida se visualiza en la ecuación 19:

M1 = 1,7918y(t−1)−0,9507y(t−2)−0,0035u(t−2)+0,0017u(t−1)+0,1415y(t−3)
(19)
Las respuestas de la salida X1 son los siguientes considerando datos de entrena-
miento (figura 3), datos de validación (figura 4) y el error entre los datos reales
y los datos del modelo (figura 5).

Figura 3: Entrenamiento de comparación de la salida X1 (Posición angular).

10
3.2 Salida X2 correspondiente a la posición lineal

Figura 4: Validación de comparación de la salida X1 (Posición angular).

Figura 5: Error en comparación de la salida X1 (Posición angular).

3.2. Salida X2 correspondiente a la posición lineal


Se tiene que:
     
2 1 0 0 1,6249
 3 
 

 2 0 0 


 −0,4605 

S=  5 
 EST aux = 
 4 0 0 
 W =
 −0,0041 
 (20)
 6   5 0 0   0,0021 
4 3 0 0 −0,1642

Y la ecuación obtenida se visualiza en la ecuación 21:

M2 = 1,6249y(t−1)−0,4605y(t−2)−0,0041u(t−1)+0,0021u(t−2)−0,1642y(t−3)
(21)

11
3.2 Salida X2 correspondiente a la posición lineal

Las respuestas de la salida X2 son los siguientes considerando datos de entrena-


miento (figura 6), datos de validación (figura 7) y el error entre los datos reales
y los datos del modelo (figura 8).

Figura 6: Entrenamiento de comparación de la salida X2 (posición lineal).

Figura 7: Validación de comparación de la salida X2 (posición lineal).

12
3.3 Salida X3 correspondiente a la velocidad angular

Figura 8: Error en comparación de la salida X2 (posición lineal).

3.3. Salida X3 correspondiente a la velocidad angular


Se tiene que:
     
2 1 0 0 0,9643
 6 
 

 5 0 0 


 −0,0022 

S=  39 
 EST aux = 
 2 2 4 
 W =
 −17,0296  (22)

 5   4 0 0   −0,0030 
3 2 0 0 −0,1596
Y la ecuación obtenida se visualiza en la ecuación 23:
M3 = 0,9643y(t−1)−0,0022u(t−2)−17,0296y(t−2)2 u(t−1)+0,0030u(t−1)−0,1596y(t−2)
(23)
Las respuestas de la salida X3 son los siguientes considerando datos de entre-
namiento (figura 9), datos de validación (figura 10) y el error entre los datos
reales y los datos del modelo (figura 11).

Figura 9: Entrenamiento de comparación de la salida X3 (velocidad angular).

13
3.4 Salida X4 correspondiente a la velocidad lineal

Figura 10: Validación de comparación de la salida X3 (velocidad angular).

Figura 11: Error en comparación de la salida X3 (velocidad angular).

3.4. Salida X4 correspondiente a la velocidad lineal


Se tiene que:
     
2 1 0 0 0,5461
 5   4 0 0   0,0653 
     
s=  6  EST aux =  5 0 0 W = 0,0632 (24)
  
   
 3   2 0 0   0,1684 
22 1 1 1 3,9049
Y la ecuación obtenida se visualiza en la ecuación 25:
M4 = 0,5461y(t−1)+0,0653u(t−1)+0,0632u(t−2)+0,1684y(t−2)+3,9049y(t−1)3
(25)
Las respuestas de la salida X4 son los siguientes considerando datos de entre-
namiento (figura 12), datos de validación (figura 13) y el error entre los datos
reales y los datos del modelo (figura 14).

14
3.4 Salida X4 correspondiente a la velocidad lineal

Figura 12: Entrenamiento de comparación de la salida X4 (velocidad lineal).

Figura 13: Validación de comparación de la salida X4 (velocidad lineal).

Figura 14: Error en comparación de la salida X4 (velocidad lineal).

15
4. Conclusiones

4. Conclusiones
Se sabe que el uso de redes neuronales entregan altos grados de aproximación
en el uso de funciones no lineales. Se puede considerar que el modelado no lineal
por redes con polinomios de Volterra (VPBF) son muy efectivos en modelos
no lineales como el modelo del péndulo invertido sobre un carro móvil que
se realizó en esta práctica al haber utilizado datos reales calculados con un
tiempo de muestreo de 50ms con una entrada y cuatro salidas y considerar
que n = 3, m = 2 y l = 3; demostrando que cualquier presición requerida en
la aproximación puede ser alcanzada usando un número adecuado de funciones
base no lineales independientes, en este caso en particular, el uso de las funciones
polinomiales de Volterra.

16
5. Anexos

5. Anexos
Código implementado en Matlab usando Gram Schmidt.
1 %% Limpiar
2 clc
3 clear a l l
4 close a l l
5 %% Datos de l a practica
6 l =3; %Orden de l a e x p a n s i o n p o l i n o m i a l
7 n=3; %r e t a r d o s en y
8 m=2; %r e t a r d o s en u
9 M=3169; % Numero de d a t o s de m u e s t r a s d de l o s d a t o s
10
11 M1 = M∗ 0 . 8 ; %Porc de d a t o s e x p e r i m e n t a l e s para e n t r e n a m i e n t o 80 %
12 M2 = M1+1; %Para o b t e n e r e l p o r c e n t a j e de v a l i d a c i o n 20 %
13 N = f a c t o r i a l ( n+m+l ) / ( f a c t o r i a l ( l ) ∗ f a c t o r i a l ( n+m) ) ; 1
14
15 sum1 = 1 ;
16 [ FHIaux , Uaux , Yaux , ESTaux ] = ObtenerDatos (M, n ,m, l ) ;
17 f h i 1 = FHIaux ( 1 : M1 , : ) ; %Obtencion de d a t o s 80 %
18 f h i 2 = FHIaux (M2:M, : ) ; %Obtencion de d a t o s 20 %
19 Y1 = Yaux ( 1 :M1) ; %Obtencion de d a t o s 80 %
20 Y2 = Yaux (M2:M) ; %Obtencion de d a t o s 20 %
21
22 %% C a l c u l o s
23 f o r k =1:N
24 maxim = −100; %Dato a l e a t o r i o para r e a l i z a r comparacion
25 f o r i =1:N
26 i f k==1
27 P( : , i ) = fhi1 ( : , i ) ;
28 V( i ) = Y1 ’ ∗ P( : , i ) / (P ( : , i ) ’ ∗P ( : , i ) ) ;
29 r ( i ) = V( i ) ^2∗P ( : , i ) ’ ∗P ( : , i ) / (Y1 ’ ∗ Y1) ;
30 i f maxim<r ( i )
31 maxim = r ( i ) ;
32 argmax = i ;
33 end
34 else
35 i f i s e q u a l ( ( i==s ( : ) ) , zeros ( k −1 ,1) )
36 sum2 = 0 ;
37 f o r j =1:k−1
38 a l f a ( j , i ) = f h i 1 ( : , i ) ’ ∗ Pe ( : , j ) / ( Pe ( : , j ) ’ ∗ Pe ( : , j
));
39 sum2 = sum2 + a l f a ( j , i ) ∗Pe ( : , j ) ;
40 end
41 P ( : , i ) = f h i 1 ( : , i )−sum2 ;
42 V( i ) = Y1 ’ ∗ P ( : , i ) / (P ( : , i ) ’ ∗P ( : , i ) ) ;
43 r ( i ) = V( i ) ^2∗P ( : , i ) ’ ∗P ( : , i ) / (Y1 ’ ∗ Y1) ;
44 i f maxim<r ( i )
45 maxim = r ( i ) ;
46 argmax = i ;
47 end
48 end
49 end
50 end
51 R( k ) = maxim ;
52 s ( k ) = argmax ;

17
5. Anexos

53 Pe ( : , k ) = P ( : , s ( k ) ) ;
54 i f k<=10 %N %sum2>e r r o r
55 i f k==1
56 Q( k , k ) = 1 ;
57 else
58 Q( k , k ) = 1 ;
59 FHIaux = [ a l f a ( : , argmax ) ; 1 ] ;
60 Q( : , k ) = FHIaux ;
61 end
62 Ve ( k )=V( argmax ) ;
63 FHI1 ( : , k ) = f h i 1 ( : , argmax ) ;
64 FHI2 ( : , k ) = f h i 2 ( : , argmax ) ;
65 L = k;
66 end
67 sum1 = sum1 − R( k ) ;
68 error ( k ) = sum1 ;
69 end
70 s
71 L
72 sum1
73 e r r = error ’ ;
74 W = inv (Q) ∗Ve ’ ;
75 ye1 = FHI1∗W;
76 ye2 = FHI2∗W;
77 d a t a s = x l s r e a d ( ’ P r a c t i c a 1 ’ ) ;
78 %% T=1:M1 80 %
79 T = d a t a s ( 1 : M1, 1 ) ;
80 subplot ( 3 , 1 , 1 ) , plot (T, ye1 , ’ . ’ ,T, Y1 , ’ g ’ )
81 t i t l e ( ’ Datos de e n t r e n a m i e n t o d e l s i s t e m a ’ ) ;
82 xlabel ( ’ Tiempo ’ ) ;
83 ylabel ( ’ S a l i d a ’ ) ;
84 legend ( ’ Modelo e s t i m a d o ’ , ’ Datos R e a l e s ’ )
85 grid on
86 %% T=M1:M 20 %
87 T1=d a t a s (M2:M, 1 ) ;
88 subplot ( 3 , 1 , 2 ) , plot ( T1 , ye2 , ’ . ’ , T1 , Y2 , ’ g ’ )
89 t i t l e ( ’ Datos de v a l i d a c i à ş n d e l s i s t e m a ’ )
90 xlabel ( ’ Tiempo ’ ) ;
91 ylabel ( ’ S a l i d a ’ ) ;
92 legend ( ’ Modelo e s t i m a d o ’ , ’ Datos R e a l e s ’ )
93 grid on
94 %% E r r o r
95 subplot ( 3 , 1 , 3 ) , plot ( error , ’ b ’ )
96 t i t l e ( ’ E r r o r e n t r e d a t o s r e a l e s y modelo e s t i m a d o ’ )
97 xlabel ( ’ NÞmero de f u n c i o n e s p o l i n o m i a l e s ’ )
98 ylabel ( ’ E r r o r ’ ) ;
99 grid on

Función código para obtención de datos.


1 function [ f h i , u , y , S t r u c t u r e ] = ObtenerDatos (M, n ,m, l )
2 %M numero de m u e s t r a s
3 %n r e t a r d o s en y
4 %m r e t a r d o s en u
5 %n+m numero de v a r i a b l e s en X
6 %l orden de l a e x p a n s i o n p o l i n o m i a l
7 datas = xlsread ( ’ Practica1 ’ ) ;
8 S = n+m;

18
5. Anexos

9 M = length ( d a t a s ) ;
10 f o r t =1:M
11 u( t ) = datas ( t , 4 ) ;
12 % y ( t ) = d a t a s ( t , 2 ) ; %X1
13 y ( t ) = d a t a s ( t , 6 ) ; %X2
14 % y ( t ) = d a t a s ( t , 3 ) ; %X3
15 % y ( t ) = d a t a s ( t , 5 ) ; %X4
16 i f t==1
17 X = [0 0 0 0 0 ] ;
18 e l s e i f t==2
19 X = [ y ( t −1) 0 0 u ( t −1) 0 ] ;
20 e l s e i f t==3
21 X = [ y ( t −1) y ( t −2) 0 u ( t −1) u ( t −2) ] ;
22 else
23 X = [ y ( t −1) y ( t −2) y ( t −3) u ( t −1) u ( t −2) ] ;
24 end
25 %% Orden de l a e s t r u c t u r a
26 cont = 1 ;
27 f h i ( t , cont ) = 1 ;
28 S t r u c t u r e ( cont , 1 ) = 0 ;
29 S t r u c t u r e ( cont , 2 ) = 0 ;
30 S t r u c t u r e ( cont , 3 ) = 0 ;
31 f o r i =1:S
32 cont = cont + 1 ;
33 f h i ( t , c o n t ) = X( i ) ;
34 S t r u c t u r e ( cont , 1 ) = i ;
35 S t r u c t u r e ( cont , 2 ) = 0 ;
36 S t r u c t u r e ( cont , 3 ) = 0 ;
37 end
38 f o r i =1:S
39 f o r j=i : S
40 cont = cont + 1 ;
41 f h i ( t , c o n t ) = X( i ) ∗X( j ) ;
42 S t r u c t u r e ( cont , 1 ) = i ;
43 S t r u c t u r e ( cont , 2 ) = j ;
44 S t r u c t u r e ( cont , 3 ) = 0 ;
45 end
46 end
47 f o r i =1:S
48 f o r j=i : S
49 f o r k=j : S
50 cont = cont + 1 ;
51 f h i ( t , c o n t ) = X( i ) ∗X( j ) ∗X( k ) ;
52 S t r u c t u r e ( cont , 1 ) = i ;
53 S t r u c t u r e ( cont , 2 ) = j ;
54 S t r u c t u r e ( cont , 3 ) = k ;
55 end
56 end
57 end
58 end
59 u=u ’ ;
60 y=y ’ ;
61 end

19
REFERENCIAS

Referencias
[1] Rodrigo Salas Redes Neuronales Artificiales, Departamento de Compu-
tación, Universidad de Valparaíso.
[2] Andres Nacelle Redes Neuronales Artificiales, Núcleo de ingeniería bio-
médica facultades de medicina e ingeniería, Universidad de la república.

20