´ Y DE ESTUDIOS AVANZADOS DEL CENTRO DE INVESTIGACI ON ´ INSTITUTO POLITECNICO NACIONAL Unidad Unid ad Ciud Ciudad ad de M´ exi co exico Departament Departa mento o de Contr Control ol Auto Autom´ m´ atic o atico
CINVESTAV-IPN
Aprendizaje Neuronal para el Control de Sistemas No Lineales Tesis que presenta: Jos´ Jo s´ e Ma Mart rt´ ´ın Fl Flore oress Al Albi bino no 1 Para obtener el grado de Doctor en Ciencias En la especialidad de Contro Con troll Aut Autom´ om´atico ati co
Directores de Tesis: Dr.Ieroham Dr.Ier oham Solomon Baro Barouh uh Dr.. Jua Dr Juan n Car Carlo loss Mar Martt´ın ınez ez Gar Garcc´ıa M´exico, D. F. 1 Becario
CONACYT, No. 72355
28 de Mayo del 2004
.
En este documento se utilizan:
LAT E X2e
compilador: MiKTeX 2.1
http://www.miktex.org
editor: WinEdt ver. 5
http://www.winedt.com
dibujos: CorelDraw ver. 5.00.E2
Simulaci´on on y Gr Gr´´afica afi cas: s: MatLab ver. 5.2.0.3084 Simulink
.
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008 For Evaluation Only.
Agradecimientos Ha sido muy largo el tiempo que he tomado para terminar este trabajo, el resultado de todo to do ser´a evaluado al momento de que sea de utilidad para otros, ´este ha sido el objetivo desde su inicio. El que se dedica a la investigaci´on, en frenta el reto del necesario aislamiento en que las reflexiones se conciben. Lo com´un un es que no halla alguien cerca cuando se logra un despeje exitoso de la variable que tanto se buscaba; ni se escuchan aplausos al ver que una simulaci´on por computadora no se va al infinito. Pero aquello que nos alimenta a seguir es la curiosi curiosidad dad ¿Qu´ ¿Q u´e pasa sı...? ¿C´omo omo ocur ocurre re ...? Etc´etera. etera. Pero cuando se desciende de esta nube de aparente aislamiento, notamos que nunca se estuvo solo, que hay muchas personas que han apoyado de forma directa y otras que sin darse cuenta nos han dando su aliento para continuar. Gracias Graci as a todos.. todos....
Dr. Ieroham Solomon Barouh Sin su apoyo y ejemplo este trabajo jam´as as se s e hubiese concluido.
Departamento Departament o de Control Autom´atico atico Y Centro de Investigaci´ on y Estudios Avanzados on Por ser el lugar donde conoc conoc´´ı a mis profesores y compa˜ neros.
Dr. Juan Jua n Carlos Mart Mart´ ´ınez Garc Garc´ ´ıa Por confiar en mi esfuerzo.
Consejo Nacional de Ciencia y Tecnol´ogia ogia
Por ser la instituci´ on que me brind´ o el apoyo econ´ omico para lograr este objetivo.
Instituto de Investigaci´ on y Desarrollo Tecnol´ogico on ogico Secretar Secr etar´ ´ıa de Marin Marina, a, Arma Armada da de M´ exic o exico Por ser el lugar que me abri´ o las puertas para desarrollarme y me darme la oportunidad de terminar este trabajo.
A mi mam´ a y hermana hermanass Por su infinita paciencia y comprensi´ on.
Liliana Vicente˜ no Loya no Por todo tu cari˜ no.
.
Resumen
En las siguientes p´aginas se presenta el trabajo realizado durante mi estancia en el Centro de Investigaci´ on y de Estudios Avanzados del Instituto Polit´ecnico Nacional con el prop´ osito de obtener el grado de Doctor en Ciencias del Departamento de Control Autom´atico. La investigaci´ on se enfoc´ o en el estudio de una arquitectura de Red Neuronal Recurrente y su algoritmo de aprendizaje del tipo retropropagaci´ on din´amico para su aplicaci´ on en tareas de identificaci´ on y control de sistemas no lineales. Se realizaron implementaciones en simulaci´ on y en un prototipo en tiempo real para el control de un motor de corriente directa. Los resultados producidos han sido alentadores y animan a plantearse metas de mayor complejidad. El deseo final de este escrito es el de generar nuevas preguntas y retos en la aplicaci´ on de las redes neuronales para el control de sistemas complejos.
Jos´ e Mart´ın Flores Albino , 8 de mayo de 2004
.
´Indice general ´Indice general ´Indice de figuras ´Indice de tablas Historia Simbolog´ıa 1. Introducci´ on: Redes Neuronales
I
IV
VIII
XI
XIII
1
1.1. Redes Neuronales Biol´ ogicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1.1. Modelo Matem´atico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2. Redes Neuronales Artificiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2.1. Topolog´ıas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2.2. Redes Neuronales Artificiales Est´a ticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2.3. Redes Neuronales Artificiales Din´amicas (Recurrentes) . . . . . . . . . . . . . . . . . . . . . . .
9
1.2.4. Proceso de Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.3. Conclusi´ on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2. Red Neuronal Recurrente Entrenable
21
2.1. Estructura de una RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.2. Propiedades de Observabilidad y Controlabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.2.1. Observabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.2.2. Controlabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3. Red Neuronal Recurrente Entrenable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2.3.1. Ley de Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.4. Red Neuronal Recurrente de Tres Capas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.4.1. Ley de Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
2.5. RNRE con Predicci´ on de la Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.5.1. Ley de Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
2.6. RNRE con Retardo en la Retroalimentaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
2.6.1. Ley de Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
2.7. RNRE con Estados Acotados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37 I
´INDICE GENERAL
´INDICE GENERAL
2.7.1. Ley de Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
2.8. Condici´ on de Estabilidad para los Pesos J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
2.9. Pesos de Compensaci´ on ci0 , bi0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
2.10. Escalamiento de la Funci´on de Activaci´on, Γ(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
2.11. Conclusi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3. Identificaci´ on de Sistemas
43
3.1. Aproximaci´on de Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.1.1. Redes Neuronales Est´aticas en la Aproximaci´o n de Funciones . . . . . . . . . . . . . . . . . . . .
44
3.2. Identificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.3. M´etodos de Identificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.3.1. Algoritmo de Proyecci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.3.2. Algoritmo de Proyecci´on Ortogonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.3.3. Algoritmo de M´ınimos Cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.3.4. Exitaci´on Persistente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3.3.5. Algoritmos de Identificaci´o n Cl´a sicos y Redes Neuronales . . . . . . . . . . . . . . . . . . . . . .
62
3.4. Identificaci´o n de Sistema Usando Redes Neuronales Est´a ticas . . . . . . . . . . . . . . . . . . . . . . . .
63
3.4.1. Sistemas Lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
3.4.2. Sistemas No Lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
3.5. Identificaci´o n de Sistemas Usando Redes Neuronales Din´a micas . . . . . . . . . . . . . . . . . . . . . . .
67
3.6. Identificaci´on de Sistemas Utilizando RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
3.6.1. Identificaci´o n. del Modelo de Vel. de un Motor de cc. usando una RNRE . . . . . . . . . . . . .
70
3.6.2. Identificaci´on no Lineal Usando RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
3.6.3. Identificaci´o n de un Sistema no Lineal de dos Entradas dos Salidas . . . . . . . . . . . . . . . . .
74
3.6.4. Identificaci´on M´ultimodelo con RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
3.6.5. Identificaci´o n en Tiempo Real de un Motor de cc. . . . . . . . . . . . . . . . . . . . . . . . . . .
80
3.7. Complejidad Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
3.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
4. Control de Sistemas
89
4.1. Redes Neuronales en el Control de Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
4.2. Modelado de controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
4.3. Control por modelo inverso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
4.4. Control Adaptable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102
4.4.1. Control Adaptable Indirecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.4.2. Control Adaptable Directo, [16]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.5. Control por Modelo de Referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4.5.1. Control por modelo de referencia: Enfoque neuronal [28] . . . . . . . . . . . . . . . . . . . . . . 117 4.5.2. Control por modelo de referencia: Sistemas lineales . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.6. Control por Modelo Interno, [58] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.6.1. Control por Modelo Interno –Redes Neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.7. Control de Sistemas por medio de RNRE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 ii
– JMFA –
´INDICE GENERAL
´INDICE GENERAL
4.7.1. Sistemas de Control Adaptable Indirecto Usando los Par´ ametros Obtenidos por la RNRE . . . . . 131 4.7.2. Sistemas de Control Adaptable Directo Usando RNRE . . . . . . . . . . . . . . . . . . . . . . . 136 4.7.3. Control en Tiempo Real de un Motor de Corriente Continua . . . . . . . . . . . . . . . . . . . . 140 4.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
144
Conclusiones Generales y Perspectivas
145
Bibliograf´ıa
147
A. Art´ıculos Publicados
151
A.1. Congresos Nacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 A.2. Congresos Internacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 A.3. Revistas Nacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 A.4. Anexos en Libros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
B. Programas de C´ omputo
153
B.1. Aproximaci´on de una Funci´o n No Lineal por Medio de una RNMC . . . . . . . . . . . . . . . . . . . . . 153 B.2. Aproximaci´on de una Funci´o n No Lineal por Medio de una RNFRB . . . . . . . . . . . . . . . . . . . . .
155
B.3. Algoritmo de Proyecci´ on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 B.4. Algoritmo de Proyecci´ on Ortogonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
158
B.5. Algoritmo de M´ınimos Cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 B.6. Ident. Vel. Motor cc. con RN Est´atica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.7. Ident. No lineal con RN Est´atica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 B.8. Ident. Vel. Motor cc. con RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 B.9. Ident. No Lineal con RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
169
B.10.Ident. No Lineal MIMO con RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
171
B.11.Ident. M´u ltimodelo No Lineal MIMO con RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 B.12.Modelado de Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 B.13.Cinem´atica Inversa de dos Eslabones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 B.14.Cinem´atica Directa de dos Eslabones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 B.15.Ctrl. Inverso: Ident. Mod. Directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
189
B.16.Ctrl. Inverso: M´e todo especializado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 B.17.Ctrl. Adaptable Indirecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 B.18.Ctrl. Adaptable Indirecto 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 B.19.Ctrl. Adaptable Directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
203
B.20.Ctrl. por Modelo de Referencia: Motor de CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
C. Motor de Corriente Continua
207
C.1. Modelo Matem´atico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 C.2. Motor de cc de Im´an Permanente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 C.3. Control de Velocidad en R´egimen Estacionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 C.4. Modelo Discreto de un Motor de cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 – JMFA –
iii
´INDICE GENERAL
´INDICE GENERAL
D. Ecuaciones de Entrenamiento para Redes Neuronales Recurrentes
213
D.1. Red Neuronal Recurrente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 D.1.1. Pesos de la Capa de Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 D.1.2. Pesos de la Capa Oculta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 D.1.3. Pesos de la Capa de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 D.2. R NR con Tres Capas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 D.2.1. Pesos de la Capa de Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 D.2.2. Pesos de la Capa Oculta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 D.2.3. Pesos de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 D.3. Predicci´ on de la Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 D.3.1. Pesos de la Capa de Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 D.3.2. Pesos de la Capa Oculta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 D.3.3. Pesos de la Capa de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 D.4. E stados Acotados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 D.4.1. Pesos de la Capa de Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 D.4.2. Pesos de la Capa Oculta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 D.4.3. Pesos de la Capa de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
E. Prototipo Experimental
219
E.1. Descripci´ on General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 E.2. Control Proporcional Integral Derivativo Discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 E.3. Filtrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
F. Algoritmo de Retropropagaci´ on
227
G. Representaci´ on de Sistemas
231
G.1. Modelos Discretos de Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 G.1.1. Modelo DARMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 G.1.2. Modelo Regresor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 G.1.3. Modelo en Variables de Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
´Indice alfab´ etico
iv
235
– JMFA –
´Indice de figuras 1.1. Estructura de una neurona biol´ ogica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2. Neurona artificial elemental. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3. Funciones de activaci´ on comunes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.4. Derivadas de las funciones de activaci´ on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.5. Topolog´ıas de redes neuronales artificiales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.6. Tipos de redes neuronales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.7. Red neuronal de m´ ultiples capas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.8. Red neuronal de funciones radiales b´asicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.9. Neurona de Hopfield. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.10. Red de Hopfield con tres neuronas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.11. M´aquina de Boltzmann. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.12. Estructuras de redes neuronales recurrentes (local-recurrent-global-feedforward). . . . . . . . . . . . . . .
12
1.13. Modelos para un sistema desconocido no lineal discreto de una entrada y una salida.
. . . . . . . . . . .
13
1.14. Estructura de la red de Jordan y de Elman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.15. Divisi´ on del Aprendizaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.16. Paradigmas de Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.17. Red Neuronal con tres capas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.18. Modelo de sensibilidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.19. Retropropagaci´ on a trav´es del tiempo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.1. Estructura general de una red neuronal hibr´ıda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.2. Ejemplo de una red neuronal recurrente entrenable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.3. Diagrama a bloques de una red neuronal recurrente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.4. Red neuronal recurrente entrenable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2.5. Red neuronal recurrente de tres capas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.6. Red neuronal recurrente con predicci´ on de la salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.7. Red neuronal con retardo en la retroalimentaci´ on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
2.8. Red neuronal recurrente con estados acotados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
2.9. Funci´ on de Activaci´ on tanh(x). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.1. Proceso de proximaci´ on en l´ınea de una funci´ on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.2. Aproximaci´ on de una funci´ on a trav´ es de una red neuronal m´ ulticapa. . . . . . . . . . . . . . . . . . . .
47
3.3. Aproximaci´ on de una funci´ on no lineal utilizando una red neuronal de funciones radiales b´asicas. . . . . . 49 V
´INDICE DE FIGURAS
´INDICE DE FIGURAS
3.4. Problema de identificaci´ on de sistemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.5. Algoritmo de proyecci´ on- Interpretaci´ on geom´etrica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.6. Interpretaci´ on del algoritmo de proyecci´ on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.7. Operaci´ on del algoritmo de proyecci´ on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.8. Operaci´ on del algoritmo de proyecci´ on ortogonal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
3.9. Operaci´ on del algoritmo de m´ınimos cuadrados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
3.10. Redes neuronales en los algoritmos de identificaci´ on. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
3.11. Identificaci´ on de un sistema lineal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
3.12. Identificaci´ on de un sistema lineal (entrenamiento). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
3.13. Identificaci´ on de un sistema lineal (generalizaci´ on). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
3.14. Identificaci´ on no lineal usando una RN Est´atica (Entrenamiento).
. . . . . . . . . . . . . . . . . . . . .
66
3.15. Identificaci´ on no lineal usando una RN Est´atica-Generalizaci´ on. . . . . . . . . . . . . . . . . . . . . . . .
67
3.16. Red neuronal est´atica en lazo cerrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
3.17. Modelo general de una red neuronal recurrente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
3.18. Modelo de red neuronal recurrente simplifacada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
3.19. Identificaci´ on de la vel. Motor de cc. usando una RNRE
. . . . . . . . . . . . . . . . . . . . . . . . . .
71
3.20. Identificaci´ on de un sist. no lineal usando RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
3.21. Identificaci´ on de un sist. no lineal MIMO Usando RNRE . . . . . . . . . . . . . . . . . . . . . . . . . .
75
3.22. Identificaci´ on M´ ultimodelo Usando RNRE +
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
3.23. Identificaci´ on M´ ultimodelo Usando RNRE −
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
3.24. Identificaci´ on M´ ultimodelo Usando RNRE ±
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
3.25. Lugar de las ra´ıces sis tema retroalimentado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
3.26. Identificaci´ on en tiempo real de un motor de cc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
3.27. Identificaci´ on multimodelo en tiempo real de un motor de cc. . . . . . . . . . . . . . . . . . . . . . . . .
84
3.28. Identificaci´ on multimodelo en tiempo real de un motor de cc. . . . . . . . . . . . . . . . . . . . . . . . .
85
4.1. Modelado de controlador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
4.2. Ejemplo del esquema por modelado de controlador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
4.3. Resultados del esquema de modelado de controlador. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
4.4. Control por modelo inverso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
4.5. Modelo inverso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
4.6. Descripci´ on de un mecanismo de dos eslabones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
4.7. Cinem´atica directa del mecanismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
4.8. Cinem´atica inversa del mecanismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
4.9. Posici´ on de los eslabones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.10. Control inverso especializado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.11. Control por modelo inverso (M´etodo especializado) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.12. Control Adaptable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.13. Control Adaptable Indirecto –Identificaci´ on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.14. Control Adaptable Indirecto –Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.15. Control Adaptable Indirecto -En l´ınea vi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 – JMFA –
´INDICE DE FIGURAS
´INDICE DE FIGURAS
4.16. Componentes del control directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 ´ 4.17. Control Adaptable Directo - Epoca 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 ´ 4.18. Control Adaptable Directo - Epoca 100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.19. Control por modelo de Referencia
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.20. Grado relativo: linealizaci´ on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.21. Diagrama a bloques del Ctl. Modelo de Referencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 4.22. Diagrama a bloques del Ctl. Modelo de Referencia -Redes Neuronales. . . . . . . . . . . . . . . . . . . . 120 4.23. Control por modelo de Referencia 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.24. Control por Modelo de Referencia –Motor de CC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.25. Control por Modelo Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.26. Control por Modelo Interno –Eq. Lazo cerrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.27. Control por Modelo Interno –Redes Neuronales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.28. Control por Modelo Interno –Entrenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.29. Control Adaptable Indirecto –RNRE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.30. Control Adaptable Indirecto –P, PI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 4.31. Control Adaptable Indirecto –Seguimiento de Trayectoria. . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.32. Control Adaptable Directo –Modelo Inverso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.33. Control Adaptable Directo –Modelo Inverso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.34. Plataforma experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.35. Esquema de control en tiempo real de un Motor CC.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
4.36. Control en Tiempo Real de un Motor de CC – Posici´ on. . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 4.37. Control en Tiempo Real de un Motor de CC – Velocidad. . . . . . . . . . . . . . . . . . . . . . . . . . . 143 C.1. Motor de corriente continua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 C.2. Modelo matem´atico de un motor de c.c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 C.3. Transformada de Laplace de un motor de cc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 C.4. Respuesta al escal´ on Motor de c.c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 D.1. Red neuronal recurrente 2, 3, 2
{
}
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
D.2. Red neuronal recurrente con tres capas 2, 3, 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
{
}
D.3. Red neuronal recurrente con predicci´ on a la salida 2, 3, 2
{
}
. . . . . . . . . . . . . . . . . . . . . . . . . 216
D.4. Estados acotados 2, 3, 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
{
}
E.1. Prototipo experimental de laboratorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 E.2. Respuesta al escal´ on del motor de cc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 E.3. Diagrama de Bode de un derivador.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
E.4. Diagrama de Bode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 E.5. Diagrama de Bode de un filtro Butterworth pasa-altos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 E.6. Diagrama de Bode de un filtro Butterworth pasa-bajos.
. . . . . . . . . . . . . . . . . . . . . . . . . . 223
E.7. Diagrama de Bode de un filtro pasa-banda (continuo). . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 E.8. Diagrama de Bode de un filtro pasa-banda (Discreto). . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 E.9. Diagrama de Bode de un filtro Butterworth pasa-bajos de tercer orden. . . . . . . . . . . . . . . . . . . 224 – JMFA –
vii
´INDICE DE FIGURAS
´INDICE DE FIGURAS
E.10. Diagrama de Bode de un filtro pasa-banda. E.11. Filtro digital pasa banda
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
F.1. Esquema del m´etodo de aprendizaje por retropropagaci´ on. . . . . . . . . . . . . . . . . . . . . . . . . . 230
viii
– JMFA –
´Indice de tablas 1.1. Topolog´ıa de una red neuronal m´ ultiples capas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.1. Resumen de resultados de generalizaci´ on para el ejemplo 3.1. . . . . . . . . . . . . . . . . . . . . . . . .
48
3.2. Resumen de resultados de generalizaci´ on para el ejemplo 3.2. . . . . . . . . . . . . . . . . . . . . . . . .
50
3.3. Resumen del algoritmo de identificaci´ on de proyecci´ on. . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.4. Resumen del algoritmo de identificaci´ on de proyecci´ on ortogonal. . . . . . . . . . . . . . . . . . . . . . .
57
3.5. Resumen del algoritmo de identificaci´ on de m´ınimos cuadrados. . . . . . . . . . . . . . . . . . . . . . . .
61
3.6. Par´ ametros de una RNRE-Identificaci´ on de un Motor en tiempo real. . . . . . . . . . . . . . . . . . . . .
81
3.7. Par´ ametros de una RNRE-Identificaci´ on de un Motor en tiempo real. . . . . . . . . . . . . . . . . . . . .
83
3.8. Desempe˜ no entre una RN est´ atica y una RNRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
4.1. Resultados del modelo neuronal inverso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 C.1. Par´ ametros de un motor de cc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
IX
´INDICE DE TABLAS
x
´INDICE DE TABLAS
– JMFA –
Historia 1990 Narendra & Partasaraty . . . . . . . . . . 1988 Anderson & Rosenfeld . . . . . . . . . . . 1986 Rumerlhart & MacClelland . . . . . . . 1985 Ack, Hinton & Sejnowski . . . . . . . . 1983 Barto, Sutton & Anderson . . . . . . . 1983 Kirkpatrick, Galatt & Vecchi . . . . . 1982 Kohonen . . . . . . . .. . . . . . . . . . . . . . . . 1983 Cihen & Grossberg . . . . . . . . . . . . . . 1982 Hopfield . . . . . . . . . . . . . . . . . . . . . . . . 1980 Grossberg . . . . . . . . . . . . . . . . . . . . . . . 1979 Utley . . . . . . . . . . . . . . . . . . . . . . . . . . . 1973 Malsburg . . . .. . . . . . . . . . . . . . . . . . . 1972 Anderson, Kohonen & Nakano . . . 1969 Minski & Papert . . . . .. . . . . . . . . .. 1962 Widrow . . . . . . . . . . . . . . . . . . . . . . . . . 1960 Widrow & Hoff . . . . . . . . . . . . . . . . . . 1958 Rosenblatt . . . . . . . . . . . . . . . . . . . . . . 1958 Rosenblatt . . . .. . . . . . . . . . . . . . . . . . 1954 Minsky . .. .. .. . .. .. .. .. .. .. .. .. .. 1956 Holland, Habitt & Duda . . . . . . . . . 1949 Hebb .. . . . . . . . .. . . . . . . . . .. . . . . . . 1948 Wiener . . . . . . . . . . . . . . . . . . . . . . . . . . 1943 MacCulloch & Pitts . . . . . . . . . . . . .
Presentan el algortimo Retropropaci´on Din´amico para entrenar redes m´ulticapas para identificaci´on y control de sistemas. Presentan las Funciones Radiales B´ asicas (RBF) como alternativa para los perceptrones m´ulticapa. Presentan el algoritmo Retropropagaci´on para el entrenamiento del perceptr´on m´ulticapa. Definen el aprendizaje estoc´ astico para la m´aquina de Boltzmann. Definen el aprendizaje reforzado (Reinforcement Learning ). Presentan el aprendizaje por templado simulado ( simulatedannealing ) para resolver problemas de optimizaci´on. Presentan sus mapas auto-organizados. Presentan las memorias direccionadas por contenido ( contentaddressable memories ). Presenta una red neuronal din´a mica, define su funci´on de energ´ıa considerando simetr´ıa en los pesos. Trabaja con el aprendizaje competitivo, establece el nuevo principio de auto-organizaci´on. Integra la teor´ıa de las comunicaciones de Shanon con el aprendizaje sinaptico neuronal. Presenta los mapas auto-organizados entrenados por una ley de aprendizaje competitiva. Presentan una ley de aprendizaje en una matriz de correlaci´on. Presentan el perceptr´on de una capa y de m´ultiples capas. Presenta una estructura para adaline’s de m´ultiples capas (Madaline). Presentan el algoritmo de m´ınimos cuadrados, usado para el entrenamiento de Adaline (adaptive learning element ). Teorema de convergencia del Perceptr´on. Presenta su modelo del Perceptr´on. Presenta su tesis Doctoral Theory of Neural-Analogue Reinforcement System and its Applications to the Brain-Model Problem. Presentan una simulaci´on por computadora de la ley de aprendizaje de Hebb. Explica una regla de aprendizaje fisiol´ogica para la modificaci´on sinaptica. Establece las bases para la teor´ıa del control, comunicaciones y el aprendizaje. Describen la operaci´on de una red neuronal y su modelo.
XI
´INDICE DE TABLAS
xii
´INDICE DE TABLAS
– JMFA –
Simbolog´ıa t R+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k Z + . . . . . . . . .. . . . . . . . .. . . . . . . . .. . . i, j, n, r Z + . . . . . . . .. . . . . . . . .. . . . . wij , T ij R . . . . . . . . . . . . . . . . . . . . . . . . . .
Ker(C ) .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. det(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. = Im(B) . .. .. .. .. .. .. .. . .. .. .. .. .. > . .. . .. .. .. .. .. .. .. .. . .. o =< A, c = c (A, B) .. .. .. .. .. .. .. .. .. .. .. J (k), E (k) R . . . . . . . . . . . . . . . . . . . . . . . ∂E(k) ∂w ij . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tiempo continuo. N´umero de muestra (tiempo discreto). Enteros positivos (´ındices). Peso de la conexi´on que va desde la salida de la neurona j hasta la entrada de la neurona i. Funci´on de activaci´on. Transpuesta del matriz x. Derivada de la funci´on f (x). Si A es una matriz, σ(A) es el espectro de A (conjunto de valores propios). Espacio nulo de la transformaci´on lineal definida por C . Determinante de la matriz A. Indica que el subespacio es invariante bajo la transformaci´on lineal A. Espacio imagen de la transformaci´on lineal B. Espacio de alcanzable del par (A, B). Es el espacio coordenado A-invariante m´as grande incluido en el Ker(C ). Funci´on de costo. Derivada parcial de E (k) con respecto a wij .
Si y(k), x(x)
Jacobiano de y(x) con respecto al vector x(k).
∈ ∈
∈
∈
Γ( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Rnm : [x]T .. .. .. .. .. .. .. .. .. .. .. . d ˙ f ′ (x), f (x), dx f (x) .. .. .. .. .. .. .. .. .. . σ(A) . . . . . . . .. . . . . . . . .. . . . . . . .. . . . . . . .
· ∈
V ⊂ V B R B O O ∈
∂y(k) ∈ Rn : ∂x(x) .. .. .. .. .. .. . ∂y(k) Si y(k) ∈ R y x(x) ∈ Rn : ∂x(x) .. .. .. . n
sli (k) δil (k) −1
nl 1 r=1 ∂E (k) ∂s li (k)
l−1
= wir xr .. .. .. .. .. .. .. . = .. .. .. .. .. .. .. .. .. .. .. .. q x(k + 1) x(k) .. .. .. .. .. .. .. .. .. M −1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dim θo = n . . . . . . . . . . . . . . . . . . . . . . . . .
{ }
−
→
V
Gradiente de y(x) con respecto al vector x(k). Combinaci´on lineal de las entradas a la neurona i del nivel l. Gradiente local del nodo i en el nivel l. Operador retardo. Matriz inversa de M . Dimensi´on del supespacio θo .
XIII
´INDICE DE TABLAS
xiv
´INDICE DE TABLAS
– JMFA –
Cap´ıtulo 1
Introducci´ on: Redes Neuronales En este cap´ıtulo se exponen algunos de los fundamentos que introduce a la compresi´on de las redes neuronales, sus principios biol´ogicos y los modelos matem´ aticos propuestos.
1.1.
Redes Neuronales Biol´ ogicas
Las redes neuronales artificiales son una muestra m´ as del inter´es humano por emular alguna de las capacidades naturales de los seres vivos. Las redes neuronales biol´ogicas exhiben caracter´ısticas importantes que las hacen muy atr´activas para imitar; entre estas caracter´ısticas se pueden citar las siguientes: memorizaci´ on, especializaci´ on, paralelismo, robustez, densidad, generalizaci´ on y aprendizaje . Los estudios sobre el sistema nervioso se remonta al a˜no de 1889, por las observaciones realizadas por el cient´ıfico espa˜nol Santiago Ram´on y Cajal (1852-1934, premio Nobel de Medicina 1906). Ram´on y Cajal report´o que el sistema nervioso est´a compuesto de unidades individuales que son estructuralmente independientes, cuyo contenido interno no entra en contacto directo. Estas unidades son las c´elulas neuronales. A esta hip´otesis se le conoce como teor´ıa neuronal . Los seres vivos (agentes) poseen la habilidad de adaptarse a su ambiente. Los cambios externos son los est´ımulos y las reacciones son su respuesta. En los seres m´as simples la relaci´on causa-efecto es directa; esto significa que la presencia de un estimulo dispara una reacci´on determinada. En los seres m´as complejos la respuesta a los est´ımulos implica la integraci´ on y sincronizaci´on de varios eventos de distintas partes del cuerpo, lo anterior es posible por la presencia de un mecanismo de control (controlador) entre los est´ımulos y las reacciones. En los organismos multicelulares este controlador emplea dos tipos de sistemas: la regulaci´on qu´ımica y la regulaci´on nerviosa. En la regulaci´on qu´ımica, sustancias llamadas hormonas son fabricadas por un grupo bien definido de c´elulas y transportadas p or la sangre a otras partes de cuerpo en donde existen c´elulas objetivo, aqu´ı las hormonas alteran el metabolismo de estas c´elulas o incitan la s´ıntesis de otras sustancias. El sistema nervioso se define como un grupo organizado de c´elulas llamadas neuronas , dedicadas a la conducci´ on de impulsos (cambio breve de la carga el´ectrica en la membrana de la c´elula) desde un receptor sensorial que atraviesa una red de nervios hasta un efector. El sistema nervioso est´a especializado en la conducci´on de impulsos el´ectricos, lo que permite una r´apida reacci´on a los est´ımulos del ambiente. En el ser humano se estima que existen 10, 000, 000, 000 de neuronas. En el cuerpo de una c´elula neuronal se identifican tres estructuras: el soma, el ax´ on y las dentritas . El soma es el cuerpo principal de la neurona, en ´el se concentran los organos responsables de su metabolismo y del intercambio electroqu´ımico producido como respuesta de la neurona. El ´ ax´ on es la extremidad m´as larga de la neurona, es por donde se transmiten los impulsos nerviosos hacia otras neuronas, es decir, representa la terminal de salida de la neurona. Las dentritas son varias extremidades de longitud m´ as corta que el ax´on, su funci´on es de ser las terminales receptoras de los impulsos provenientes de otras neuronas. Al punto de transici´ on entre ax´on-dentrita se le llama sinapsis , en la figura 1.1 se presenta un dibujo de una c´elula neuronal, en donde se pueden identificar las estructuras que la integran. El mecanismo de conducci´on de los impulsos nerviosos en las neuronas es diferente al usado por los metales. En las neuronas la transmisi´on el´ectrica se debe al intercambio de iones (´ atomos que han ganado o perdido electrones); por el 1
1.1. Redes Neuronales Biol´ogicas
Cap´ıtulo 1. Introducci´on: Redes Neuronales
Dentrita
Estructura de una neurona biol´ ogica. Se distinguen tres estructuras en una c´elula neuronal: el soma, el ax´on y las dentritas. La uni´on dentrita-ax´on se le llama sinapsis. En el sistema nervioso se transmiten impulsos el´ectricos entre las neuronas. Los neurotransmisores son sustancias qu´ımicas que pasan de una c´elula a otra, y definen el acomplamiento el´ectrico entre ellas. ........................................................ Figura 1.1:
Soma Sinapsis Axón
contrario, en los metales la conducci´on el´ectrica es debido a la gran cantidad de electrones libres en ellos. Pero adem´as las neuronas utilizan un medio qu´ımico para el acoplamiento el´ectrico entre ellas. Los neurotransmisores son sustancias qu´ımicas que pasan de una c´elula a otra, estimulando un potencial el´ectrico en la membrana de la c´elula receptora.
1.1.1.
Modelo Matem´ atico
En [1] se presenta un modelo matem´atico del comportamiento de una neurona biol´ogica. Como en todo modelo se intenta describir los procesos m´ as importantes que ocurren en el interior de una neurona descartando los efectos menos perceptibles. Sean uj el potencial el´ ectrico de la membrana de la neurona j y T ij f j (uj ) la transformaci´on que este potencial sufre al pasar por la sinapsis que lo conecta a la neurona i. El valor de T ij puede ser positivo o negativo de forma que represente los iones positivos de potacio y sodio, K + , N a+ ; o negativos de cloro, Cl − en el cuerpo de la neurona. La concentraci´on de potencial de la neurona i por esta uni´on es la integral en el tiempo:
t
T ij f j (uj )dτ.
(1.1)
−∞
El potencial que llega por cada uni´on de la neurona i depende del tiempo; entre m´as tarde en llegar el potencial a la neurona, menos contribuye al potencial acumulado en la membrana. Para considerar este efecto se modifica la ecuaci´on (1.1) incluyendo una funci´on que es monot´onicamente decreciente, h:
t
h(t + τ )T ij f j (uj ) dτ,
(1.2)
−∞
en donde h( ) una funci´on que decae exponencialmente con el tiempo. La funci´on h se suele seleccionar como una exponencial decreciente en el tiempo: t 1 h(t) = e− µi , (1.3) µi
·
en donde µi es la constante de tiempo de la neurona i; µi > 0. De esta forma s´olo los potenciales m´as recientes (entre t = 0 hasta aproximadamente t = 4µi ) contribuyen al potencial total. En el modelo de la neurona se considera el caso de que exista una entrada independiente; es decir, que no proviene de otra neurona. Para la neurona i esta entrada es denotada como I i . Por tanto, la contribuci´on de esta entrada al potencial de la neurona es igual a la expresi´on:
t
h(t + τ )I j (τ )dτ.
−∞
2
– JMFA –
(1.4)
Cap´ıtulo 1. Introducci´on: Redes Neuronales
1.2. Redes Neuronales Artificiales
Ahora, como la neurona i recibe potenciales de varias otras, todas e´ stas deben ser sumadas para determinar el potencial total en la membrana de la neurona i. Si n es el n´umero de estas conexiones, se establece que el potencial total ui (t) es igual al t´ermino: n
ui (t) =
j=1
t
t
h(t + τ )T ij f j (uj ) +
−∞
h(t + τ )I i (τ )dτ.
(1.5)
−∞
Para facilitar el tratamiento se prefiere la forma diferencial de la ecuaci´on (1.5). Entonces, sustituyendo (1.3) y ordenando los componentes de (1.5) se logra la ecuaci´on: d d ui (t) = dt dt
t
−∞
1 e µi
−τ − tµ i
n
T ij f j (uj (τ )) + I i (τ ) dτ.
j=1
(1.6)
Pasando la derivada dentro de la integral en (1.6) y aplicando la regla de la derivada para el producto, regla de Leibnitz , la ecuaci´on (1.6) se transforma de la manera siguiente: d ui (t) = dt
t
−∞
1 − tµ τ d e i µi dτ −
n
T ij f j (ui (τ ) + I i (τ )) dτ
j=1
− µ1i · µ1i e−
t−τ µi
n
T ij f j (ui (τ ) + I i (τ )) dτ . (1.7)
j=1
El valor de la primera integral en (1.7) se obtiene al sustituir τ por t, y sustituyendo en el segundo t´ermino la parte que corresponde a ui . De este modo la expresi´on para el potencial de la neurona ui (1.7) adquiere la estructura final: µi
d ui (t) = dt
n
−ui(τ ) +
T ij f j (ui (τ ) + I i (τ )) ;
j=1
i = 1, ..., n.
µ i > 0.
(1.8)
De la expresi´on (1.8) se desea destacar que a´un en este modelo simplificado de una c´elula neuronal se observa que su comportamiento est´a matem´aticamente modelado por un sistema din´amico. Los valores que toman los par´ ametros T ij depende de la interacci´on de la neurona con su ambiente, es por esto que se estima que la informaci´on en la neurona est´a fijado por los valores de los par´ ametros T ij . La respuesta de cada neurona depende del efecto que tienen las neuronas con las que est´ a conectada. Se forma una estructura de neuronas interconectadas; la transferencia de informaci´on se realiza entre las sinapsis y la respuesta de cada neurona depende del potencial en su cuerpo. En la secci´on 1.2 se describen algunos de los modelos matem´aticos para las redes neuronales artificiales, sus topolog´ıas y los paradigmas de aprendizaje.
1.2.
Redes Neuronales Artificiales
Con la denominaci´on de Redes Neuronales Artificiales , desde el punto de vista computacional, se conoce a todos los modelos matem´aticos y de c´alculo que intentan imitar las capacidades y caracter´ısticas de sus semejantes biol´ogicos. La redes neuronales artificiales est´an formadas por elementos relativamente simples de c´alculo, todos ellos interconectados con una cierta organizaci´on (topolog´ıa). Las neuronas, llamadas perceptrones (Rossenblatt, 1958) o Adaline (Widrow y Hoff) que integran la red pueden ser tan simples como s´olo puntos de suma, hasta elementos din´amicos complejos. El modelo b´asico de una neurona est´a constituido por los siguientes elementos: Un conjunto de sinapsis, que son las entradas de la neurona ponderadas, por un peso. Se identifica al peso que conecta a la entrada xj de la neurona i por s´ımbolo wij . Se incluye un peso independiente, wi0 , que se adquiere al suponer una entrada constante a la neurona i1 1 El
peso wi0 se le llama de compensaci´ on (bias) cuando la entrada asociada tiene valor de 1, y se le llama umbral (threshold) cuando la entrada asociada tiene valor de −1.
– JMFA –
3
1.2. Redes Neuronales Artificiales
Cap´ıtulo 1. Introducci´on: Redes Neuronales
Un sumador, que simula el cuerpo de la neurona y fija el nivel de exitaci´on. Una funci´on de activaci´on, que genera la salida de la neurona y es la transformaci´on del nivel de exitaci´on de la neurona y restringe el nivel de salida. Opcionalmente en [2], se incluye entre el sumador y la funci´on de activaci´on una din´amica lineal de primer orden, o un retardo en su forma continua o discreta, al hacer esto, se implica una din´ amica interna al comportamiento de la neurona. En otra secci´ on se trata este tema (secci´on 1.2.3). En su forma b´asica, la salida de una neurona est´a fijada por la expresi´on:
n
yi = Γ
wir xr
r=1
− wi0
,
(1.9)
en donde n indica el n´umero de entradas a la neurona i. Notar que el argumento de la funci´on de activaci´on es la combinaci´on lineal de las entradas de la neurona. Si se considera al conjunto de entradas y los pesos de la neurona i como un vector de dimensi´on (n + 1), la expresi´on (1.9) puede escribirse de la siguiente forma:
x = [ 1, x1 , . . . , xn ]T ,
yi = Γ wiT x ;
−
wi = [wi0 , wi1 , . . . , w in ]T ,
(1.10)
T en donde [ ] indica la transposi´on del vector. En la figura 1.2 se presenta el esquema de una neurona o perceptr´on.
·
Pesos sinapticos
x 1
w i1
-1 w i0
compensación (bias)
y i
Entradas
(*) x n
w in
Neurona artificial elemental. Cada elemento b´asico de c´alculo en una red neuronal esta formado por un grupo de constantes que ponderan la entrada a un sumador y la salida es acotada por la funci´on de activaci´on. ............................................. Figura 1.2:
s(*) Función de Activación Sumador
En lo que se refiere a los tipos de funciones de activaci´on, las m´ as utilizadas son la funci´on a) escal´ on, b) sigmoide , c) tangente hiperb´ olica y d) saturaci´ on, figura 1.3. 1 1
0.5
-1
Escalón: µ(x)
1
1
-1
Tangente Hiperbólico: Tanh(x)
4
Sigmoide: Sigm(x)
-1
Saturación: Sat(x)
– JMFA –
1.3: Funciones de activaci´ on comunes. a) Escal´on. b) Sigmoide. c) Tangente hiperb´olica. d) Saturaci´ on. La funci´on de activaci´on en una neurona acota el nivel de salida. ............................................. Figura
Cap´ıtulo 1. Introducci´on: Redes Neuronales
1.2. Redes Neuronales Artificiales
Estas funciones de activaci´on est´an definidas por las expresiones: (a
µ(x) =
(c
1 si x 0 0 si x < 0
tanh(x) =
≥
2x
−
1−e 1+e
2x
−
(b
,
sigm(x) =
(d
sat(x) =
1 1+e
x
−
−
,
1 si x < 1 x si x 1 1
− | |≤
(1.11) .
si x > 1
Una propiedad de las funciones sigmode y tangente hiperb´olica es que su derivada existe y es una funci´on continua. El c´alculo de la derivada de la funci´on de activaci´on sigmoide se realiza de la siguiente manera:
1 e−x = = , 2 1 + e−x 1 + e−x (1 + e−x ) 1 1 + e−x 1 1 1 = = 1 −x −x −x 1+e 1+e 1+e 1 + e−x = [1 sigm(x)] sigm(x).
d d (sigm(x)) = dx dx
1 1 + e−x
e−x
−
−
−
(1.12)
La derivada de la funci´on de activaci´on tangente hiperb´olica est´a descrita por la expresi´on: d d (tanh(x)) = dx dx = 1
senh(x) cosh(x)
=
cosh(x)2
− sen(x)2 =
cosh(x)2
− tanh(x)2.
(1.13)
De esta manera, las derivadas de estas funciones de activaci´on quedan en funci´on de ellas mismas, esto ser´a ´util para interpretar el algoritmo de ajuste de los pesos de la red neuronal como un proceso transferencia de informaci´on en sentido contrario, ver secci´on 1.2.4. En la figura 1.4, se presentan las gr´aficas de las derivadas de las funciones de activaci´on. 1
Derivada Escalón Delta de Dirac d/dx[µ (x)]=δ (x) 1
0.25
Derivada Sigmoide d/dx[Sigm(x)] 1
Derivadas de las funciones de activaci´ on. Las derivadas de las funciones de activaci´on sigmoide y tangente hiperb´olica son funciones continuas. ....................................... Figura 1.4:
-1
Derivada Tangente Hiperbólico d/dx[Tanh(x)]
Derivada Saturación d/dx[Sat(x)]
La ecuaci´on (1.9) es com´un a diferentes modelos de neuronas. En cada uno de los pesos w las neuronas almacenan la informaci´on sobre su forma de responder a la exitaci´on en la entrada. Pero tambi´en es importante reflexionar sobre la organizaci´ on que las neuronas conservan dentro de una red, debido a que la respuesta colectiva potencializa la capacidad de las neuronas individuales.
– JMFA –
5
1.2. Redes Neuronales Artificiales
1.2.1.
Cap´ıtulo 1. Introducci´on: Redes Neuronales
Topolog´ıas
Como se ha mostrado en las secciones anteriores, las redes neuronales biol´ogicas y artificiales est´an construidas en base a elementos de c´ alculo relativamente simples, que son capaces de aprender de su ambiente y modificar su forma de reaccionar ante ´el. Al modo en que las neuronas se organizan en la red se le conoce como Topolog´ıa. En las redes neuronales artificiles se clasifican en tres organizaciones elementales: una sola capa, de m´ultiples capas, y en malla, ver la figura 1.5.
Red Neuronal de una capa
Red Neuronal de Múltiples capas
Red Neuronal en malla
Topolog´ıas de redes neuronales artificiales. Se clasifican en tres estructuras los arreglos de neuronas: en una capa, m´ultiples capas y en malla. .......................................................................................... Figura 1.5:
En las redes neuronales, el modelo usado para las neuronas es quien le provee de su capacidad de adaptaci´on, debido al conjunto de pesos ajustables que tiene. Pero otras caracter´ısticas importantes de las redes se basan en la organizaci´on que conserva cada neurona en la red; por ejemplo: de la dimensiones de la red puede depender que ´esta sea capaz de asimilar la informaci´on que los patrones de entrenamiento contienen. Las siguientes son algunas caracter´ısticas que las redes neuronales tiene por su organizaci´on interna. Caracter´ısisticas de las redes neuronales debidas a su topolog´ıa.
• •••
Paralelismo. Representaci´ on y c´alculo distribuido. Inherente procesamiento contextual de la informaci´on. Tolerancia a fallas.
Otra clasificaci´on para las redes neuronales se basa en la manera en que la informaci´on se transmite en la red. Se dividen en dos grupos: redes con conexiones hacia adelante (est´aticas) y redes neuronales recurrentes (con retroalimentaciones) o din´amicas, ver la figura 1.6. En la pr´oxima secci´on se presentan las redes neuronales est´aticas, se dan sus modelos y principales caracter´ısticas.
1.2.2.
Redes Neuronales Artificiales Est´ aticas
Si la respuesta de una red neuronal depende ´unicamente de sus entradas se dice que es una red neuronal est´atica; es decir, que realiza un mapeo desde el espacio de entrada al espacio de salida, y por tanto, la respuesta de la red neuronal para cada entrada no depende del tiempo en el cual se aplica, ni de se˜nales de instantes anteriores. Existen dos tipos de redes neuronales est´aticas que han sido extensamente estudiadas, estas son: Las redes neuronales de m´ ultiples capas o niveles (RNMC), y las redes neuronales de funciones radiales b´asicas (RNFRB). Redes Neuronales de M´ ultiples Capas Estas redes neuronales est´an construidas por neuronas organizadas en capas. Cada nivel de la red tiene como entrada a todas o un conjunto de las salidas de la capa anterior. Un ejemplo de una red neuronal con m´ultiples capas se presenta 6
– JMFA –
Cap´ıtulo 1. Introducci´on: Redes Neuronales
1.2. Redes Neuronales Artificiales
Redes Neuronales
Estáticas
Dinámicas
Perceptrón de una Capa
Redes Competitivas
Redes de KOHONEN Perceptrón de Múltiples Capas Redes de HOPFIEL
Redes de Funciones Radiales Básicas
Adaptive Resonance Theory ART
Tipos de redes neuronales. Las redes neuronales pueden clasificarse en dos grupos: redes neuronales est´ aticas y redes neuronales din´amicas (recurrentes). ................................................................................................................. Figura 1.6:
en la figura 1.7. La primera capa de la red es la de entrada; su funci´on es la de distribuir las entradas de la red en la primera capa oculta. La ´ultima capa genera las salidas de la red neuronal y las capas que se localizan entre la primera y la de salida se les denomina ocultas. La configuraci´on o topolog´ıa que se presenta en la figura 1.7 se expresa como: 2 , 3, 4, 3 , esto significa que esta red neuronal tiene dos entradas; la primera capa oculta con tres neuronas; la segunda capa oculta con cuatro neuronas y la capa de salida con tres neuronas.
{
}
No. de capas de la red No. de entradas de la red No. nodos de la capa i (i = 1, . . . , L No. de salidas de la red
− 1)
Topolog´ıa de una red neuronal m´ ultiples capas: n0 , . . . , nL ; n0 indica el n´ umero de neuronas en la capa de entrada, ni es el n´ umero de neuronas en la capa i, nL es el n´ umero de salidas de la red neuronal. Tabla 1.1:
L n0 ni nL
{
}
En la figura 1.7 se observan a: Γli , sli y xli que representan la funci´on de activaci´on, la combinaci´on lineal de las entradas y la salida del nodo i en la capa l, respectivamente. Las entradas de compensaci´ on: x0 y xl0 se hacen igual a l 1. Notar que para la capa de salida xL i = yi ; i = 1, . . . , n L . Donde W = [wij ]; i = 1, . . . , n l ; j = 1, . . . , n l−1 es la matriz de pesos de la capa l ´esima, en donde cada fila i contiene los par´ ametros que ponderan a las entradas del nodo (neurona) i que pertenece la capa l.
−
El flujo de informaci´on se transmite en un s´olo sentido. De manera que una red neuronal de m´ultiples capas es un mapeo no lineal entre el espacio de entrada, , al espacio de salida, ; es decir: . El flujo de la informaci´on se describe por las ecuaciones:
X
Y
X → Y
x0 = [1, x1 , . . . , xno ]T ;
(1.14)
sl = W l xl−1 ; Γl = [Γl1 , . . . , Γlnl ]T ,
(1.15) (1.16)
xl = Γl sl ;
1
≤ L;
xL = y = [y1 , . . . , ynL ]T , – JMFA –
(1.17) (1.18) 7
1.2. Redes Neuronales Artificiales
Cap´ıtulo 1. Introducci´on: Redes Neuronales
x 2o= 1 x o= 1
x
1 o =
W
1
s
1
1 1
Γ
x 2
s
W s
1 2
Γ
1 2
s 13
Γ
1 3
W
2 1
Γ
2 1
1
1 1
x 1
2
x 1
s
2 2
Γ
2 2
x 12
s
2 3
Γ
2 3
x 13
s
2 4
Γ
2 4
Capa de Entrada
1er Capa Oculta
2da Capa Oculta
x 21
3
s 31
Γ
3 1
x 22 s 32
Γ
3 2
x 23 s 33
Γ
3 3
x 24
x 31 = y 1 x 32 = y 2 x 33 = y 3
Red neuronal de m´ ultiples capas. Esta red neuronal tiene dos entradas; una capa oculta con tres neuronas; una segunda capa oculta con cuatro neuronas y una capa de salida con tres neuronas. Topolog´ıa 2, 3, 4, 3 .................................. Figura 1.7:
{
}
3er Capa Oculta (salida)
en donde sl , xl son vectores y sus componentes son la suma ponderada y salidas de los nodos en la capa l, respectivamente.
Redes de Funciones Radiales B´ asicas Un inconveniente de las redes neuronales de m´ultiples capas es que su entrenamiento (ajuste de pesos) es lento; la minimizaci´ on del ´ındice cuadr´atico del error de salida requiere de comparar en varias ocasiones del conjunto de datos de entrenamiento con la respuesta de la red neuronal. Las redes neuronales de funciones radiales b´asicas son una alternativa a las redes neuronales de m´ultiples capas. En partes de la corteza celebral y visual se encuentran campos receptivos que se interceptan y que son localmente sintonizados. Las funciones radiales b´asicas se basan en estos sistemas biol´ogicos. En la figura 1.8 se presenta este tipo de red neuronal.
R1 x 1
W
1
y
x 2 x 3
Red neuronal de funciones radiales b´ asicas. Este tipo de red neuronal tiene un entrenamiento r´apido, debido a que el valor de los pesos se actualiza fuera de l´ınea. ........................................................ Figura 1.8:
Rn
En la figura 1.8 xi , i = 1, 2, . . . , n; la salida es y = F f r (x); Ri son funciones radiales; por ejemplo: la funci´on de Gauss. Si se supone que la red neuronal tiene nR nodos, entonces de la figura 1.8 se deduce que la salida de este tipo de red neuronal se expresa de la forma: nr
y = F fr (x, θ) =
wi Ri (x).
(1.19)
i=1
en donde θ est´a integrada por los par´ametros wi . Hay varias opciones para las funciones radiales b´asicas, Ri (x), siendo lo m´as com´un utilizar la funci´on de Gauss: Ri (x) = e
−
|x
2
ci | σ2 i
−
en donde ci represent´ a los centros de la funci´on; σi es un escalar y define el radio de la funci´on de activaci´on. 8
– JMFA –
(1.20)
Cap´ıtulo 1. Introducci´on: Redes Neuronales
1.2. Redes Neuronales Artificiales
Redes Neuronales Est´ aticas–Aplicaciones Las principales tareas para las cuales se aplican las redes neuronales est´aticas son aquellas en donde es necesario construir una relaci´on funcional entre la entrada y la salida, como ejemplos de aplicaciones se tienen las listadas a continuaci´ on: 1. Clasificaci´on de Patrones. 2. Aproximaci´on de Funciones. 3. Memoria Asociativa. 1.- Clasificaci´ on de Patrones: Sea p una muestra que pertenece a un conjunto Se dice que p es de clase c, si existe una funci´on f , tal que: f : p
P , y c es un designador de clase. (1.21)
→ c.
A todas las muestras p en que cumplen (1.21) forman la clase
2.- Aproximaci´ on de Funciones: una f ˆ tal que:
C: C = { p ∈ P|f : p → c} . (1.22) Dada una funci´on f : x → y, en donde x ∈ X ⊆ Rn , y ∈ Y ⊆ Rm . Encontrar
f (x)
−
ˆ f (x) < ǫ;
∀x ∈ X .
en donde ǫ es un entero positivo peque˜no. Se dice que f ˆ es una aproximaci´on en
(1.23)
X de f .
3.- Memoria Asociativa: En la actualidad las computadoras tienen memorias direccionadas, es decir memorias que necesitan como informaci´on de entrada una direcci´on para recuperar un dato, esto las hace que tengan una estructura r´ıgida; en consecuencia tienen un tiempo de escritura y lectura grande. Una memoria asociativa, por el contrario, no requiere de una direcci´on espec´ıfica para recuperar un dato guardado en ella, lo que necesita es otro dato; es decir, que en este tipo de memorias se recupera la informaci´on por la asociaci´on impuesta sobre su contenido. Este modo de operar hace a una memoria asociativa m´as r´apida en la recuperaci´on de la informaci´on. En las anteriores tareas las redes neuronales est´aticas han tenido ´exito para su soluci´on. Pero como se ha visto, las neuronas biol´ogicas de forma natural son modeladas como sistemas din´amicos. En las siguientes secciones se dar´ an algunos ejemplos de redes neuronales artificiales modeladas como sistemas din´amicos.
1.2.3.
Redes Neuronales Artificiales Din´ amicas (Recurrentes)
En las redes neuronales est´ aticas su respuesta es independiente del tiempo. En consecuencia, una vez que se han ajustado sus par´ametros, la respuesta a una entrada determinada ser´a la misma, no importando en que instante la entrada se presente. Las redes neuronales est´aticas son muy ´utiles en los problemas de clasificaci´on de patrones y aproximaci´on de funciones porque construyen aplicaciones no lineales entre el espacio de entradas al espacio de salidas de las variables involucradas. En teor´ıa, se tiene la certeza de que una red neuronal de conexiones hac´ıa adelante con una capa oculta no lineal y una capa de salida lineal puede aproximar cualquier funci´on con el grado de precisi´on que se desee, ver las referencias [3, 4, 5]. Hay problemas que necesitan de un sistema que tenga una respuesta dependiente de su estado anterior. Y por tanto, requieren de estructuras que tengan una din´amica interna propia. Si la respuesta de una red neuronal depende de su pasado se dice que es una red neuronal din´ amica. Algunas de las tareas para este tipo de redes neuronales son: la predici´ on de series , la identificaci´ on y el control de sistemas din´amicos . Existen diversos modelos de redes neuronales din´amicas. Algunos de ellos se basan en los modelos est´aticos que por medio de l´ıneas de retardo retroalimentan alguna de las se˜nales generadas por la red, ver las referencias [8, 9, 10]. Otros modelos tienen l´ıneas de retroalimentaci´on en cada una de las neuronas y que act´uan como memorias de corto plazo, [6]. Las redes neuronales recurrentes se han usado para mejorar el desempe˜no en problemas de clasificaci´on que habian sido resueltos por medio de redes neuronales est´aticas. Dos modelos de redes neuronales que se han ocupado con este objetivo son: – JMFA –
9
1.2. Redes Neuronales Artificiales
Cap´ıtulo 1. Introducci´on: Redes Neuronales
Red de Hopfield. M´ aquina de Boltzmann. Red de Hopfield La red de Hopfiel es una de las redes neuronales din´amicas que m´as han sido estudiadas. Consiste en nodos ordenados en una s´ola capa, con lazos de retroalimentaci´on interiores y exteriores. El modelo de la neurona de Hopfield en su forma discreta est´a definida por la expresi´on: n
xi (k + 1) = pixi (k) +
wij σj (xj (k)) + ui (k),
(1.24)
j=1
en donde pi < 1 es el coeficiente de retroalimentaci´on interna; xi es el estado interno del nodo i; σ( ) es la funci´on de activaci´ on; wij son los pesos sinapticos de la neurona, ver figura 1.9
·
σ1
wi,1
ui
z
+ σn
x(k)
x(k+1)
wi, n
-1
σ
(*)
Neurona de Hopfield. La salida de la red neuronal se retroalimenta hacia la entrada de cada neurona. ........................................................ Figura 1.9:
pi
Algunas de las aplicaciones de esta red est´an en los problemas de clasificaci´on, an´alisis de im´agenes y como memoria asociativa (memoria que almacena y recupera la informaci´on por medio de un an´alisis del contexto de la informaci´on). En la figura 1.10 se presenta una red de Hopfield con tres neuronas.
u1
x(k+1) 1
+
z -1
x(k) 1 σ
(* )
y1
p1 u2
x(k+1) 2
+
z -1
Red de Hopfield con tres neuronas. En una red de Hopfield se retroalimentan las se˜nales internas y externas. ........................................................ Figura 1.10:
x(k) 2 σ
(* )
σ
(* )
y2
p2 u3
x(k+1) 3
+
z -1
x(k) 3
y2
p3
M´ aquina de Boltzmann La m´aquina de Boltzmann es una extensi´on de la red de Hopfield que incluye nodos o cultos y con una regla estoc´astica de ajuste de los pesos. Los pesos en esta red son sim´etricos y su actualizaci´on est´a basado en el principio de templado simulado (annealing), en donde un material es calentado y enseguida es enfriado de forma lenta, como resultado el material presenta una estructura crist´alina ordenada sin impurezas de manera que el sistema se encuentra en un estado de muy baja energ´ıa, figura 1.11. 10
– JMFA –
Cap´ıtulo 1. Introducci´on: Redes Neuronales
1
2
3
L
1.2. Redes Neuronales Artificiales
Neuronas Ocultas
M´ aquina de Boltzmann. Esta es una red neuronal con una t´ecnica de aprendizaje de tipo estoc´astico. ........................................................ Figura 1.11:
1
2
3
K
Neuronas Visibles
La m´aquina de Boltzmann es una m´aquina estoc´astica formada por neuronas estoc´asticas. Una neurona estoc´astica est´a en uno de dos estados posibles de manera probabil´ıstica. Las neuronas de la m´aquina de Boltzmann se dividen en dos grupos: las visibles y las ocultas. Las neuronas visibles son una interface entre la red y el ambiente en el cual ´esta opera. Durante la fase de entrenamiento las neuronas visibles son obligadas a permanecer en un estado que es determinado por el ambiente. Las neuronas ocultas, por el contrario, son libres de tomar cualquiera de los estados. Redes Neuronales Localmente Recurrrentes En el art´ıculo [7] se analizan diversas estructuras de redes neuronales recurrentes, en particular, una clase de redes que tienen retrolimentaciones locales o internas, pero cuya estructura global es la de una red de conexiones directas (local-recurrent-global-feedforward ). En la figura 1.12 se presentan cuatro estructuras que en [7] se citan. En la figura 1.12.a se presenta el modelo de Lapedes-Farber . En este modelo una neurona est´a descrita por medio de la expresi´on: n
y(t) = f [a(t)] ;
a(t) =
wi xi ,
(1.25)
i=1
en donde xi , i = 1, 2, . . . , n son las entradas a la neurona y wi , i = 1, 2, . . . , n son pesos constantes. En este modelo la se˜nal de activaci´on de la neurona, a(t), es la suma ponderada de las entradas. A partir de modelo se derivan tres m´etodos para incorporar alg´un tipo de retroalimentaci´on: 1.- Retroalimentaci´ on local de la activaci´ on neuronal: figura 1.12.b . En este tipo las entradas son una versi´on retardada de la se˜nal de activaci´on local; es decir, xi = a(t i), i = 1, 2 . . . , n, o una combinaci´on de una versi´ on retardada de la se˜nal de activaci´on local y de la se˜nal de entrada.
−
2.- Retroalimentaci´ on local de la sinapsis: figura 1.12.c . En este tipo de red neuronal cada sinapsis incorpora una estructura de retroalimentaci´on. Notar que la retroalimentaci´on local de la activaci´on neuronal, es un caso especial de esta estructura. En esta estructura cada sinapsis se considera como si fuera una retroalimentaci´on local, y la activaci´on local de cada sinapsis es a˜nadida antes de entrar a la funci´on no lineal f ( ).
·
3.- Retroalimentaci´ on local de la salida: figura 1.12.d . En este tipo las entradas de la red son de la forma: xi = y(t i), i = 1, 2, . . . , n; es decir, que ahora las entradas son las versiones retardadas de la se˜nal de salida o que hay una retroalimentaci´on alrededor de la funci´on no lineal.
−
En la secci´on que sigue se presenta un grupo de modelos de red neuronal recurrente que son ´utiles para los problemas de identificaci´ on y control de sistemas din´amicos. Se basan en la representaci´on de los sistemas din´amicos como dependientes de sus condiciones en el pasado, ver [9, 8]. Modelo NARMA de una Red Neuronal Din´ amica Sea un sistema din´amico no lineal discreto con una entrada, u( ) y una salida, y( ). Su comportamiento din´amico se describe por la expresi´ on: y(k + 1) = F [y(k), . . . , y(k n); u(k), . . . , u(k m)] , (1.26)
·
−
– JMFA –
·
−
11
1.2. Redes Neuronales Artificiales
x 1 x 2
w1 w2
x n
wn
Cap´ıtulo 1. Introducci´on: Redes Neuronales
x(t)
a(t)
Σ
f(.)
y(t)
Sistema dinámico lineal
Σ
(a) x 1
x(t)
G2
x n
Gn
f(. )
y(t)
(b)
G1
x 2
a(t)
a(t)
Σ
f(.)
y(t)
Sistema dinámico lineal
Σ
(c)
a(t)
f(. )
y(t)
(d)
Estructuras de redes neuronales recurrentes (local-recurrent-global-feedforward). a) La se˜ nal de activaci´on es una combinaci´on lineal de las entradas. La funci´on de activaci´on, f ( ) , es no lineal. b) Retroalimentaci´ on local de la se˜ nal de activaci´on. c) Retroalimentaci´ on local de la sinapsis. d) Retroalimentaci´ on local de la salida. ................................................................................................................. Figura 1.12:
·
en donde F ( ; ) es una funci´on no lineal suave; k es el ´ındice de iteraci´on; n y m son enteros positivos y y(k i) representa el i-´esimo valor pasado de la variable y. La entrada u(k) afecta a la salida y(k + 1); esto es, que el sistema tiene grado relativo igual a uno.
··
−
De la ecuaci´on (1.26) se derivan cuatro modelos de identificaci´on para el sistema no lineal. En el primero modelo se hace la suposici´on de que la funci´on no lineal F ( ; ) se desconoce por completo. As´ı que la tarea consiste en proponer una red neuronal, N N , que aproxime a F ( ; ), ver la figura 1.13.a.
··
··
En el segundo modelo, la hip´otesis que utiliza considera que la funci´on no lineal F ( ; ) se divide en otras dos funciones no lineales desconocidas: F 1 ( ) y F 2 ( ); en donde la primera funci´on depende solamente de los retardos de la entrada y la segunda funci´on depende de la se˜nal de entrada y sus retardos. Como se observa en la figura 1.13.b, este modelo usa dos redes neuronales para sustituir las funciones no lineales F 1 y F 2 .
·
··
·
En el tercer y cuarto modelos suponen que la planta tiene una parte que es una funci´on lineal de la entrada, o de la salida, respectivamente, ver la figura 1.13.c, d. Entonces se propone sustituir la parte no lineal por una red neuronal. De esta forma, el modelo de la planta est´a integrado por dos bloques, uno con la funci´on lineal conocida. y el otro con una red neuronal que aproxima la no linealidad de la planta. Redes de Jordan y Helman Las redes de Jordan y Elman son b´asicamente redes de conexiones hacia adelante ( FeedForward ) en las cuales existe retroalimentaci´ on de la capa de salida en una red de Jordan, o la capa oculta en una red de Elman, ver la figura 1.14. Estas redes a˜naden un elemento de recurrencia sin necesidad de nuevos algoritmos de aprendizaje. Los pesos en los caminos de recurrencia no son ajustables, estos pesos se ponen igual a uno cuando se desea como entrada una copia de la se˜nal de activaci´on de la neurona, o igual a 0.5 para obtener un enlace que decrece exponencialmente. La mayor ventaja de este tipo de red neuronal recurrente es su simplicidad. La red de Jordan sea ha usado en algunas tareas de control de sistemas. La red de Elman se utiliza en problemas de predicci´on de secuencias; por ejemplo: en la entrada de una red de Elman se presenta una secuencia de vectores, y obtenemos como salida una predicci´on del siguiente s´ımbolo. Una vez que se ha seleccionado una topolog´ıa de red neuronal se debe establecer la forma en que se ajustan sus pesos, en otras palabras, se necesita definir el criterio y la ley para actualizar los pesos de la red neuronal. En la siguiente secci´ on se aborda este tema. 12
– JMFA –
Cap´ıtulo 1. Introducci´on: Redes Neuronales
y(k)
y(k-1) y(k-2) z-1
z-1
1.2. Redes Neuronales Artificiales y(k)
y(k-n) z-1
y(k-1) y(k-2) y(k-n) z-1
u(k)
z-1
z-1
u(k) z-1
u(k-1)
u(k-1) ^
y(k)
u(k-2)
(NN)
u(k-2)
F2 (.) z-1
F(.)
z-1
z-1
(NN2)
F1 (.) (NN1)
^
Σ
z-1
z-1
y(k)
u(k-p)
u(k-p) ^
y(k)=F[ y(k-1),..., y(k-n); u(k-1),...,u(k-p)]
^
y(k)=F ]+ F2[ y(k-1),..., y(k-n)] 1 [ u(k-1),...,u(k-p)
(a) y(k)
u(k) u(k-1)
y(k-1) y(k-2) z-1
z-1
z-1
u(k)
y(k-1) y(k-2) y(k-n) z-1
z-1
z-1
u(k-2) z-1
z-1
^
b p
Σ
Σ
y(k)
z-1
p
i=1
a2
an
F1 (.) (NN1)
^
y(k)
Σ
u(k-p)
y(k)=Σ bi u(k-i)+ F2[ y(k-1),..., y(k-n)]
z-1
a1
z-1
(NN2) F2 (.)
b2
^
y(k)
F2 (.)
z-1
u(k-p)
y(k-n)
u(k-1) b1
u(k-2)
(b)
n
y(k)= F1[ u(k-1),...,u(k-p)]+Σ ai y(k-i) ^
(c)
i=1
(d)
Cuatro Modelos para un sistema desconocido no lineal discreto de una entrada y una salida. a) La parte no lineal se concentra en una sola funci´on F ( ). b) La no linealidad se divide en dos funciones en la que una de ellas depende de los retardos de la entrada, F 1 , y la otra funci´on de la salida actual y sus retardos F 2 . c) Este modelo es lineal con respecto a los retardos de la entrada, y no lineal con respecto a su salida y sus retardos, F 2 . d) En este modelo, la no linealidad es funci´on de los retardos de la entrada, F 1 , y lineal con respecto a su salidas y sus retardos. ................................................................................................................. Figura 1.13:
·
1.2.4.
Proceso de Aprendizaje
En esta secci´on se da un resumen de los paradigmas y algoritmos de aprendizaje m´as importantes en el campo de las redes neuronales, ver [15]. Definici´ on de aprendizaje: El aprendizaje es el proceso a trav´es del cual los par´ametros de una red neuronal se modifican. Es un proceso continuo de estimulaci´on y de reducci´on de un criterio de error. El tipo de aprendizaje depende de la tarea y tiene consecuencias en la manera en que los pesos son actualizados. El proceso general del aprendizaje se puede sintetizar en tres pasos: 1. La red neuronal es estimulada por el ambiente. 2. En consecuencia, la red realiza cambios internos (actualizaci´on de los par´ametros). 3. Y debido a los cambios internos en su estructura la red neuronal responde de forma diferente. Con el fin de analizar el proceso de aprendizaje se divide en dos categor´ıas: los paradigmas, o modelos, y los algoritmos de aprendizaje, ver la figura 1.15. – JMFA –
13
1.2. Redes Neuronales Artificiales
Cap´ıtulo 1. Introducci´on: Redes Neuronales
Nodos de salida
Nodos de salida
Nodos Ocultos
Nodos de entrada
Nodos Ocultos
Nodos de Contexto
Red de tipo Jordan
Nodos de entrada
Nodos de Contexto
Red de tipo Helman
Estructura de la red de Jordan y de Elman. En la red de neuronal de Jordan la retroalimentaci´on es entre la salida y los nodos de la capa de contexto (capa oculta). En la red neuronal de Elman la retroalimentaci´on se realiza entre la capa oculta y la de contexto. ................................................................................................................. Figura 1.14:
Proceso de Aprendizaje
Algoritmos de Aprendizaje
Paradigmas de Aprendizaje
Supervisado
Corrección por Error Boltzmann
Reforzado
Ley de los Efectos (Thorndike) Ley Hebiana
No Supervisado (Auto-Organizado)
Competitivo
Divisi´ on del Aprendizaje. El concepto de aprendizaje se divide en dos categor´ıas: Los paradigmas de aprendizaje que son modelos que describen los componentes y la forma en que interact´uan en los procesos de aprendizaje y los algoritmos de aprendizaje que son las herramientas con que se realiza. ................................................................................................................. Figura 1.15:
14
– JMFA –
Cap´ıtulo 1. Introducci´on: Redes Neuronales
1.2. Redes Neuronales Artificiales
Paradigmas de Aprendizaje Es un modelo del agente de aprendizaje y del ambiente en el que opera, describe la forma en que interactuan con la informaci´on disponible, ver la figura 1.16. Los tres principales paradigmas de aprendizaje son los siguientes: 1.- Aprendizaje Supervisado: Este modelo de aprendizaje supone la existencia de un maestro que tiene como funci´ on orientar el aprendizaje de la red neuronal. El maestro proporciona a la red neuronal ejemplos de lo que desea que sea aprendido, la red asume que estas muestras est´an libres de error. En el modelo supervisado se desea que una vez que el agente ha asimilado las muestras proporcionadas por el maestro, la red neuronal debe ser capaz de reproducir la relaci´on causa-efecto aprendida sin error, y con alg´un grado aceptable de error cuando se utilicen muestras distintas a las usadas durante la fase de aprendizaje, a esto ´ultimo se le conoce como generalizaci´ on. 2.- Aprendizaje Reforzado: En el modelo de aprendizaje reforzado no existe un maestro que coordine el aprendizaje durante cada paso, p ero la red neuronal tiene la oportunidad de saber, despu´es de un conjunto de acciones causaefecto, si se ha logrado cumplir, o no, con los objetivos; es decir, existe un elemento de cr´ıtica. La informaci´on recibida por la red neuronal es de menor calidad que en el caso supervisado porque hasta el final del proceso se eval´ua si se cumple con el objetivo. De este modelo de aprendizaje se deriva el llamado problema de asignaci´ on de cr´edito . El problema de asignaci´on de cr´edito consiste en c´omo propagar la consecuencia ´ultima del proceso de aprendizaje hacia todo el conjunto de decisiones que fueron necesarias para llegar al resultado actual. 3.- Aprendizaje No Supervisado: En el modelo no supervisado se carece de un elemento externo que indique lo que debe ser aprendido, o su calidad. Aqu´ı se considera que la red neuronal es capaz de extraer caracter´ısticas de la misma informaci´on, y a˜nade ´estas a su comportamiento.
Error
Acciones
Estado Ambiente
Estado
Estado -
RN
Ambiente
Respuesta Real Maestro
Ambiente
RN
Señal de Refuerzo Crítica
Respuesta deseada
Aprendizaje Supervisado
RN
Aprendizaje Reforzado
Aprendizaje No Supervisado
Paradigmas de Aprendizaje. Los paradigmas de aprendizaje se dividen entres tipos: el aprendizaje supervisado, reforzado y el no supervisado. ................................................................................................................. Figura 1.16:
En estos tres paradigmas o modelos del aprendizaje se basan los algoritmos encargados de ejecutar la tarea de ajuste de los pesos de red neuronal. A continuaci´on se describen algunos de los m´ as importantes. Algoritmos de Aprendizaje Los principales algoritmos de aprendizaje para redes neuronales son: correcci´ on por error , la ley Hebbiana y el algoritmo de tipo competitivo , en seguida una breve explicaci´on de ellos. 1.- Correcci´ on por Error: Este algoritmo de aprendizaje est´ a basado en el modelo supervisado, ya que existe una se˜nal deseada para las salidas de la red. La funci´on del error se define como: ei (k) = yid (k) – JMFA –
− yi(k);
(1.27) 15
1.2. Redes Neuronales Artificiales
Cap´ıtulo 1. Introducci´on: Redes Neuronales
en donde ei (k) es la se˜nal de error; yid (k) es la se˜nal deseada; yi (k) es la se˜nal de salida de la red neuronal, todos en el instante k. El algoritmo se basa en la minimizaci´on de la funci´on de costo a trav´es del m´etodo del gradiente descendente. En aplicaciones que requieran que el ajuste de los pesos se realize en cada iteraci´on, se utiliza el valor instant´ aneo de la suma de los cuadrados de los errores como criterio, o funci´on de costo: E (k) =
1 2
e2r (k).
(1.28)
r
La funci´on de costo debe ser minimizada en t´erminos de los pesos sin´apticos de la red neuronal. Para esto se utiliza la siguiente regla, llamada regla delta: ∆wij (k) = wij (k + 1)
− wij (k) = ηei (k)xj (k)
(1.29)
en donde η es el ´ındice de aprendizaje. La regla de correcci´on por error se comporta como un sistema de lazo cerrado y el ´ındice de aprendizaje asegura la estabilidad del algoritmo. Si la red neuronal consiste de unidades de procesamiento (nodos) lineales, la superficie del error es una funci´on cuadr´ atica de los pesos con un s´olo m´ınimo global. Pero si la red neuronal consiste en unidades de procesamiento no lineales, la supercifie del error tiene un m´ınimo global y posiblemente varios m´ınimos locales. Debido a que el algoritmo de aprendizaje inicia en un punto arbitrario de la superficie y va paso a paso en busca de un m´ınimo, la regla delta puede caer en un m´ınimo local y esto ocasionar´ıa que nunca alcance el m´ınimo global. Este es uno de los problemas de actualizar los pesos usando la ecuaci´on (1.29) pero, por otra parte, su sencillez y f´acil implementaci´on la hacen muy popular. Uno de los algoritmos de aprendizaje por correcci´on del error para redes con conexiones hacia adelante es el de retropropagaci´ on del error que a continuaci´on se desarrolla.
Algoritmo de Retropropagaci´on del Error: En esta secci´on se presenta el algoritmo conocido como de Retropropagaci´ on del Error este algoritmo se utiliza para ajustar las redes neuronales del tipo de conexiones hacia adelante ( FeedForward ), que es una red est´ atica. Este algoritmo tiene dos presentaciones: Por lote (Bach) y el iterativo (en l´ınea). En el algoritmo por lote el ajuste de los pesos de la red se lleva al final de cada ´epoca, es decir, una vez que se ha comparado la respuesta actual de la red para todo el conjunto de datos de entrenamiento. Para este caso el ´ındice de desempe˜no est´a descrito por la expresi´on:
N
E
1 = 2 n=1
P
e2i (n) ,
(1.30)
i=1
en donde N es un entero que define el n´umero de ´epocas . Una ´epoca es el conjunto completo de los patrones o datos de entrenamiento. Se utiliza a P para indicar el n´umero de patrones de entrenamiento; ei para indicar el error de la salida i de la red neuronal. El ajuste de los pesos se realiza al final de cada ´epoca. Para los problemas de control, se necesita de otro tipo de algoritmo debido a que la actualizaci´on de los pesos se debe hacer en cada iteraci´on del proceso. En el caso iterativo se considera que para cada elemento del conjunto de entrenamiento se realiza un ajuste de los pesos de la red. Este tipo de algoritmo es el que nos interesa ya que permite que se use en aplicaciones que requieren de un ajuste continuo de los par´ ametros la red neuronal. Para desarrollar el algoritmo de retropropagaci´on del error se utiliza un caso particular de una red neuronal con una configuraci´on de dos entradas, dos nodos ocultos en la primer capa oculta, tres nodos en la segunda capa oculta, y dos nodos de salida o, de forma resumida, tiene una configuraci´on 2, 2, 3, 2 , figura 1.17. El algoritmo de retropropagaci´on del error se basa en la minimizaci´on del valor medio de la suma de los errores de salida al cuadrado:
{
nL
E (k) =
i=1
yid (k)
nL
− yi (k) 2 =
}
ei (k)2 ,
(1.31)
i=1
en donde yid (k) valor deseado en la salida i de la red neuronal; E (k) es el ´ındice de desempe˜no, ambos en el instante k. 16
– JMFA –
Cap´ıtulo ıtulo 1. Introduc Introducci´ ci´on: Redes Neuronales
1.2. Redes Neuronales Artificiales
x 2o= 1 1 o =
x o= 1
x W
1
s
1 1
x 2
W s
Γ s 12
Γ
1 2
x 1 x
W
2 1
Γ
2 1
1
1 1
x 1
2
1
s
2 2
Γ
2 2
1 2
s
2 3
Γ
2 3
1
3
e
x 21 s
3 1
Γ
3 1
x
2 2
s 32
Γ
3 2
x 23
1
x 31 = y 1 x 32 = y 2
e
Capa de Entrada
1er Capa Oculta
+-
+
d 1 d 2
2
3er Capa Oculta (salida)
2da Capa Oculta
Red Neuronal con tres capas. El entrenamiento por retropropagaci´on on del error consiste en transladar el error de salida hacia las capas internas de la red neuronal. ................................................................................................................. Figura 1.17:
La actualizaci´on on de los pesos de la red se realiza por medio de la expresi´on: l ∆wij (k ) =
∂E ((k ) ∂E −η ∂w , l (k )
(1.32)
ij
l en donde η es el ´ındice de aprendizaje; wij es el peso de la capa l que conecta a la salida de la neurona j de l l l la capa l 1 con la entrada de la neurona i en la capa l y ∆wij (k ) = wij (k + 1) wij (k ). Ahora se divide el proceso en dos casos, el primero cuando el peso a ajustar pertenece a la capa de salida de la red; y el otro caso cuando el peso a actualizar pertenece a alguna de las capas ocultas de la red. Esta separaci´ on se debe a que los pesos que est´ on an en la capa de salid an salidaa la deriv derivada ada del ´ındice de desem desempe˜ pe˜no es funci´ on directa del error, ei (k ). Por el contrario, no est´a claro el efecto de los pesos de las capas ocultas sobre on el error de salida. Para ambos procesos se hace uso de la regla de la cadena para la derivaci´on derivaci´on de funciones.
−
−
Pesos en la capa de salida: 3 Sea wij (k ) un peso que pertenece a la capa 3 (cap (capaa de salida). Usando (1.32) y deriv derivando ando tiene: 3 ∆wij (k ) = 3 ∆wij (k )
∂E ((k ) ∂E −η ∂w , 3 (k )
(1.33)
ij
∂E (k ) ∂s 3i (k ) ∂E ( η 3 3 , ∂s i (k) ∂w ij
=
−
=
∂E ((k ) 2 ∂E −η ∂s 3 (k) xj (k ),
(1.34) (1.35)
i
en donde los ´ındices i = 1, . . . , 2 y j = 0, . . . , 3. De aqu´ aqu´ı se define el gradiente local de la capa de salida como: δi3 (k ) =
∂E (k ) ∂E ( . ∂s 3i (k )
(1.36) (1.37)
As´ı que para hallar el valor del gradiente de la funci´on de costo con respecto al valor del peso es necesario As´ determinar el valor del gradiente local: δi3 (k) =
∂E (k ) ∂x 3i (k ) ∂E ( , ∂x 3i (k ) ∂s 3i (k )
– JMFA –
(1.38) 17
1.2. Redes Neuronales Artificiales
Cap´ıtulo 1. Introducci´on: Redes Neuronales ∂E (k ) 3 3 ∂E ( ′ Γi si (k ) , 3 ∂x i (k )
=
−ei(k)Γ3i δi3 (k) = −ei (k)Γ3i =
(1.39)
′
s3i (k ) ,
(1.40)
′
s3i (k ) ,
(1.41)
para i = 1, 1 , 2. Entonces los pesos de la capa de entrada se actualizan con la regla:
′
3 ∆wij (k ) = ηe i (k )Γ3i s3i (k ) x2j (k ),
en donde los ´ındices i = 1, 2, y j = 0, 0 , . . . , 3.
(1.42)
Pesos en las capas ocultas: 2 Para la primera capa oculta. Sea wij (k ) un peso que pertenece a esta capa. La expresi´on para la actualizaci´on de estos pesos se obtiene a trav´ es del desarollo: es 2 ∆wij (k ) =
∂E ((k ) ∂E −η ∂w 2 (k ) ,
(1.43)
ij
2
=
∂E (k) ∂s i (k ) −η ∂s , 2 (k ) ∂w 2 (k )
(1.44)
∂E (k) 1 −η ∂s x (k ), 2 (k ) j
(1.45)
i
=
ij
i
para los ´ındices ındices:: i = 1, . . . , 3 y j = 0, 0 , . . . , 2. El gradiente local de esta capa oculta es: ∂E (k ) ∂E ( , ∂s 2i (k ) ∂E ((k ) ∂x 2i (k ) ∂E = , ∂x 2i (k ) ∂s 2i (k ) ∂E ((k ) 2 2 ∂E ′ = Γi si (k) . 2 ∂x i (k )
δi2 (k ) =
Se desarrolla
∂E (k) ∂E( ∂x 2j
(1.46) (1.47)
de la forma siguiente: ∂E (k ) ∂E ( = ∂x 2i (k ) =
2
∂E (k ) ∂s 3r (k) ∂E ( , ∂s 3r (k) ∂x 2i (k )
(1.49)
∂E (k ) 2 ∂E ( w (k ), ∂s 3r (k) ri
(1.50)
3 δr3 (k )wri (k).
(1.51)
r=1 2 r=1 2
=
(1.48)
r=1
El gradiente local de esta capa est´a expresado como se muestra a continuaci´on: δi2 (k ) =
Γ2i
2
s2i (k )
′
3 δr3 (k )wri (k ),
(1.52)
r=1
para i = 1, 1 , 2, 3. Finalmente los pesos de la capa oculta 2 se actualizan por medio de la expresi´on: 2 ∆wij (k ) =
−ηδi2(k)x1j (k), 2 3 = −η δr3 (k )wri (k )
r=1
18
– JMFA –
′
Γ2i s2i (k) x1j (k ),
(1.53)
Cap´ıtulo ıtulo 1. Introduc Introducci´ ci´on: Redes Neuronales
1.2. Redes Neuronales Artificiales
en donde i = 1, 1 , 2, 3; j = 0, . . . , 2. Para la capa de entrada, el procedimiento es similar, de manera que la expresi´on expresi´on para el ajuste de sus pesos es la siguiente: 1 ∆wij (k ) =
−ηδi1(k)x1j (k), 3 2 = −η δr2 (k )wri (k )
r=1
′
Γ1i s1i (k) x0j (k ),
(1.54)
para i = 1, 1 , 2; j = 0, . . . , 2. La ecuaciones para obtener los gradientes de la red neuronal definen un modelo adjunto o modelo de sensibilidad de la red. Esta red de sensibilidad define el paso hacia atr´ as durante el cual se determinan los gradientes as locales de los nodos de la red original, figura 1.2.4.
δ21 δ11
w 11 Π 2
1 1
w 12
Γ
2
w 12 2
w 13
Γ
3 1
3 2
δ
3
2 2
w 22
2 2
δ23
Γ
3 2
3
3 1
-e2
Π
w 31
1 2
-e1
Π
3
Π
Π
δ31
w 21
2
1 2
2 1
δ22
w 13 w 11
Γ
3
Γ
2
1 1
δ
w 11 2 1
w 12
Γ 1 2
3
Π
2
3 2
Modelo Mo delo de sensi sensibili bili-dad. El modelo de sensibilidad es una estructu estructura ra par parale alela la a la red que genera los gradientes locales. Figura Figur a 1.18:
3
Π
w 32
Γ
2 2
2 3
Retropropagaci´ on a Trav´ on es del Tiempo —Backpropagation Through Time: B´asicamente es asicament e es una red neuronal recurrente que se desdobla en una red neuronal de conexiones hacia adelante ( FeedForward FeedForward )) y se aplica el algoritmo de entrenamiento de retropropagaci´on din´amico amico del error para ajustar los pesos de la red recurrente, figura 1.19.
1
w11
w21 w12
w11
w22 1
w21 2
3
3
w23
2
3
o(t+ o( t+∆t) o(t)
w23
1
w21 w12
2
w22 1
2
w13
3
Retropropagaci´ on a trav´ es del es tiempo. Este algoritmo incorpora la informaci´ on an on anter terior ior con consid sidera erando ndo que en cad cadaa iteraci´on on se agrega una nueva capa a la red neuronal. Figur Fig ura a 1.1 1.19 9:
o(t)
w11 w22
w13
w13
1
w12
2
o(∆t)
w23 3
Para cada instante de tiempo, la red neuronal recurrente duplica una capa de una red neuronal de conexiones hacia adelante. Cada nodo i de cada capa de la red feedforward representa la misma neurona de la red recurrente pero en distinto tiempo. Cada peso wij en la red original se duplica como el peso que va de la neurona i en el tiempo t a la neurona j en la capa correspondiente al tiempo t + ∆t; Todos los pesos wij est´an restringidos al mismo valor. Cuando los valores deseados son dados en el tiempo t1 , el error es propagado hacia todas las neuronas anteriores hasta la capa primera (tiempo inicial, t0 ) de la red desdoblada utilizando el algoritmo de retropropagaci´on on din´amico. amico. El gradi gradiente ente de erro errorr de los pesos es justo la suma de todos los gradientes para todos los pesos de cada capa. Esta red neuronal tiene el problema que para secuencias muy grandes de tiempo los requerimientos de memoria aumentan grandemente.
– JMFA –
19
1.3. Conclusi´on
Cap´ıtulo 1. Introducci´on: on: Redes Neuronales
2.- Ley Hebbiana: La ley hebbiana corresponde al modelo de aprendizaje no supervisado. En esta ley, si dos neuronas conectada conec tadass en cualq cualquier uier lado de una sinap sinapsis sis est´ an acti an activas vas de for forma ma repeti repetida, da, enton entonces ces el valo valorr de la sinaps sinapsis is es selectivamente incrementado. Por el contrario, si las dos neuronas son asincr´onicamente activadas, entonces el peso sin´aptico aptico es disminu disminuido. ido. Algunas propiedades de este algoritmo son las siguientes: Es un mecanismo dependiente del tiempo: La modificaci´on on del valor de los pesos en la ley Hebbiana depende del tiempo en que ocurre la actividad neuronal. Es un mecanismo local: El algoritmo act´ua ua de manera independiente sobre cada neurona. Mecanismo iterativo: El cambio en cada sinapsis depende de los nodos colocados en ambos lados de ella. Mecanismo de correlaci´ on: La ocur on: ocurren rencia cia de act activi ividad dad en amb ambos os lad lados, os, de la sin sinaps apsis, is, es sufic suficien iente te para producir la modificaci´on on de los pesos. La correlaci´on on positiva obliga su refuerzo, la correlaci´on negativa su reducci´ on. on. 3.- Algoritmo Competitivo: Aqu Aqu´ ´ı las salidas de la red neuronal compiten entre ellas para ser activadas. La diferencia con la ley Hebbiana se encuentra en que pueden haber varias neuronas activas, pero en el algoritmo competitivo s´ olo una est´ olo a activa. Las tareas para las cuales este algoritmo suele utilizarse son en la clasificaci´on, agrupamiento y la categorizaci´on on de los datos de entrada. ..............................................................................................................
1.3. 1. 3.
Conc Co nclu lusi si´ ´ on on
Por lo visto en este cap´ cap´ıtulo se puede pueden n cita citarr alguna algunass de las desventajas desventajas de los modelos de redes neuro neuronales nales que se acaban de presentar. Dichas desventajas son las siguientes: La gran variedad de modelos hace que se dificulte la busqueda de un modelo general de red neuronal, al menos para algunas tareas. Los modelos de redes neuronales que utili utilizan zan l´ l´ıneas de reta retardos rdos a la entra entrada da son de natur naturaleza aleza secuencial, secuencial, esto hace que su entre entrenami namiento ento sea lento lento.. Algunos Algun os de estos modelos, los lazos de retro retroalim alimentac entaci´ i´on on no son entrenables. Algunos modelos de redes neuronales ´unicamente unicamente consideran el caso de sistemas de una entrada y una salida. En algunos casos la estabilidad de la red no se considera, especialmente para el entrenamiento. En la l a mayor´ mayor´ıa de los model modelos os los lo s par´ametros no pueden ser directamente utilizados en los problemas de identificaci´on y control de sistemas. Estos modelos no reali realizan zan la ident identifica ificaci´ ci´on on de estados ni de d e par´ametros. ametros. Como conclusi´on on de este cap´ cap´ıtulo se puede decir que el campo de las redes neuronales artificiales ha estado madurando ya que en cada a˜no no que pasa se va enriqueciendo con nuevas topolog´ topolog´ıas y algoritmos de entrenamiento. Las tareas van desde la aproximaci´on on de funciones hasta modelos capaces de ser entrenados para reproducir el comportamiento de complejos sistemas din´amicos. amicos. En los siguientes cap´ cap´ıtulos se presenta una arquitectura de red neuronal recurrente que por su topolog topolog´´ıa y ley de entrenamiento est´a orientada para las aplicaciones de identificaci´on y control de sistemas din´ di n´amic amicos os..
20
– JMFA –
Cap´ıtulo 2
Red Neuronal Recurrente Entrenable En este cap´ cap´ıtulo se pres presenta enta la estru estructura ctura de la red neuron neuronal al recurrente recurrente usada en este trabajo con algun algunas as de sus posibles modificaciones. La estructura de esta red neuronal se basa en un modelo en variables de estado de un sistema no lineal discreto. Todos los par´ametros ametros de la red son entrenables a trav´ es de un algoritmo de tipo retropropagaci´on del es error.
2.1.
Estructu Estr uctura ra de la Red Red Neurona Neuronall Recurren Recurrente te Entre Entrenabl nable e (RNRE) (RNRE)
En los trabajos [12, 11] se presenta una Red Neuronal Recurrente Entrenable ( RNRE) con algunos resultados de su aplicaci´ on en los problemas de identificaci´on on on de sistemas no lineales. Esta red neuronal recurrente est´a descrita por las siguientes ecuaciones, ver la figura 2.1. Caso continuo: x˙ (t) = z (t) = y (t) = . J = Re σ(J )
J x(t) + Bu Bu((t), Γ[x(t)] )],, Γ[Cz (t)] )],, block diag( diag (J i ), <0
{
}
X (k + 1) Z (k ) Y ((k ) Y J
= = = . = σ(J )
(2.1) (2.2) (2.3) (2.4) (2.5)
Caso discreto:
J X (k) + BU BU ((k ), Γ[X (k )] )],, Γ[CZ CZ ((k )] )],, block diag( diag (J i), <1
(2.6) (2.7) (2.8) (2.9) (2.10)
en donde x( )[ )[X X ] es el vector de estados de la red; u( )[ )[U U ]] es el vector de entrada; y ( )[ )[Y Y ]] es el vector de salida; z ( )[ )[Z Z ] es un vector auxiliar. Las dimensiones de estos vectores son n, m, p y n, respectivamente. Γ( ) es un vector de funciones de activaci´on on (en la deducci´on on del algoritmo de entrenamiento es preferible considerar a Γ como una matriz diagonal):
·
·
Γ(x Γ( x) : R
n
→R
·
n
:
→ x1 .. .
Γ(x Γ( x1 ) .. .
xn
Γ(x Γ( xn )
.
·
·
(2.11)
Entre las posibles opciones para estas funciones se tienen la funci´on sigmoide y la funci´on on tanh tanh.. La dimensi´on on de este vector es la apropiada seg´un sea para la capa interna de la red, o bien, para la capa de salida; J es una matriz 21
2.2. Propiedades de Observabilidad y Controlabilidad
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
diagonal por bloques. Los bloques corresponden a las formas de Jordan de dimensi´on (1 1) y (2 2); J i es el bloque i-´esimo de J . La propiedad (2.5) es la condici´on de estabilidad de la RNRE que implica que todos los valores propios de J (el espectro de J ) deben tener parte real negativa. En el caso discreto la condici´on de estabilidad es (2.10) indica que los elementos del espectro de J deben estar en el interior del c´ırculo unitario. Estas dos condiciones garantizan la estabilidad en la fase de operaci´on de la red neuronal. Las matrices B y C son los pesos de entrada y salida de la RNRE, respectivamente. Notar que este modelo de RNRE es param´etrico de manera que es ´util para tareas de identificaci´on y control de sistemas. Los par´ ametros de la red son las matrices B, J y C .
×
.x(t)
u(t)
z(t)
Γ
Σ
B
Γ
C
y(t)
U(k)
X(k+1)
B
J
x(t) Capa Dinámica
×
Σ
z
-1
Z(k)
Γ
C
Γ
Y(k)
J
Capa Estática
X(k) Capa Dinámica
(a)
Capa Estática
(b)
Estructura general de una red neuronal hibr´ıda. a) Caso continuo. b) Caso discreto. En una red neuronal recurrente se identifican dos capas: una capa din´amica y la otra es una capa est´atica. ................................................................................................................. Figura 2.1:
En la figura 2.2 se muestra un ejemplo de una red neuronal recurrente entrenable con cuatro entradas, tres estados internos y dos salidas. En este ejemplo se considera que la matriz J es una matriz diagonal, esto ayuda a simplificar la obtenci´ on de las ecuaciones de ajuste de los pesos.
u1
b11 b14
u2
b21
u3
b24
u4
b31 b34
Σ Σ Σ
1 x +
x 2+ + 3
x
z -1 j 1 -1
z j 2
z -1 j 3
x 1 Γ(.) z 1 x 2 Γ(.) z 2 x 3 Γ(.) z 3
c11 c13 c21 c23
Σ
y 1 Γ(.)
Σ
Γ(.)
y 2
Ejemplo de una red neuronal recurrente entrenable. Topolog´ıa (2, 3 , 2). En donde: x+ = x(k+1). Se selecciona a la matriz J como una matriz diagonal para simplificar las ecuaciones de entrenamiento de la red. ............................................. Figura 2.2:
En la secci´on 2.2 se citan resultados sobre las propiedades de controlabilidad y observabilidad de un modelo de red neuronal recurrente similar al de una RNRE.
2.2.
Propiedades de Observabilidad y Controlabilidad
En [13, 14] se presentan resultados sobre las propiedades de observabilidad y controlabilidad del siguiente modelo de red neuronal recurrente: x+ = Γ(Ax + Bu), y = Cx,
(2.12) (2.13)
en donde x es el vector de estados; u es el vector de entrada; y es el vector de salida con dimensiones n, m y p, respectivamente. x+ simboliza a x(k + 1). Las literales A, b y C representan matrices de entradas reales y de dimensiones n n, n m y p n, correspondientemente; Γ( ) es la funci´on de activaci´on que opera de la forma: Γ(x1 , . . . , xn ) = [(Γ(x1 ), . . . , Γ(xn )]T . Ver la figura 2.3 que presenta la estructura a bloques de esta red neuronal.
×
22
×
×
·
– JMFA –
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
( ,+)
u
B
Σ
´x
Y(k)
Γ A
2.2.1.
2.2. Propiedades de Observabilidad y Controlabilidad
∆
Diagrama a bloques de una red neuronal recurrente. ∆ puede ser el operador z −1 , o . ........................................................ Figura 2.3:
C
x
Observabilidad
El resultado principal en [13] sobre la observabilidad del modelo de red neuronal (2.12-2.13) se resumen en el teorema 2.1, pero antes unas definiciones que son parte del teorema.
Nota 2.1 (Propiedad de Independencia:) Se dice que Γ satisface la propiedad de independencia, si para un entero positivo dado l ; un grupo de n´ umeros reales diferentes de cero: b1 , . . . , bl y otro grupo de n´ umeros reales: β 1 , . . . , βl que est´an relacionados de la forma: (bi , β i ) = (b j , β j ) i = j.
±
∀
Las funciones: Γ(bi u + β i ), . . . , Γ(bl u + β l ), son linealmente independientes si se corresponden de la forma: l
c0 +
ci Γ(bi , β i) = 0
∀u ∈ R ⇒ c0 = c1 = · · · = c
i=1
l
= 0.
La propiedad de independencia asegura que la funci´on de activaci´on Γ se conserva linealmente independiente bajo distintas translaciones y dilataciones. La siguiente nota define una clase de matrices.
Nota 2.2 Se dice que la matriz B pertenece a la clase
Bn,m =
en donde Bj indica la fila j de la matriz B.
B
∈R
B si:
n×m
Bi = 0 Bi = Bj
∀i = 1, . . . , n , ± ∀i = j.
Observar el caso de que m = 1; es decir, cuando b es un vector, entonces b pertenece a elementos de b son diferentes de cero y de distinto valor absoluto.
B si y s´olo si todos los
Nota 2.3 Se dice que un sistema del tipo (2.12, 2.13) es de clase , si la matriz B pertenece a la clase la propiedad de independencia.
S
B y Γ satisface
Teorema 2.1 (Observabilidad:) Sea un sistema (2.12, 2.13)
∈ S . Este sistema es observable si y s´ olo si ker {A} ∩ ker {C } = Oc (A, C ) = 0.
La condici´ on c (A, C ) = 0 es equivalente a decir que no existe un subespacio coordenado A-invariante diferente de cero que este incluido en el Ker C .
O
{ }
– JMFA –
23
2.2. Propiedades de Observabilidad y Controlabilidad
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
Para el caso de sistemas lineales, si el par (A, C ) es observable entonces el subespacio A-invariante m´as grande contenido en el Ker C , denotado como: O(A, C ) es el espacio cero. Como c (A, C ) y ker A ker C son subespacios de O(A, C ), por lo que el corolario (2.1.1) se genera:
{ }
O
Corolario 2.1.1 Si (2.12, 2.13)
{ }∩ { }
∈ S y el par de matrices (A, C ) es observable entonces (2.12, 2.13) es observable.
En el caso de que A sea invertible, se cumple que ker A
{ } ∩ ker{C } = 0, se tiene el siguiente corolario:
Corolario 2.1.2 Si (2.12, 2.13) y el par de matrices (A, C ) es observable entonces (2.12, 2.13) y det(A) = 0, entonces (2.12, 2.13) es observable si y s´ olo si c (A, C ) = 0.
∈ S
O
Un subespacio coordenado est´a definido de la forma que sigue. Si ei , i = 1, . . . , n es la base can´onica para Rn . Por T ejemplo, si R2 la base can´onica es: eT 1 = [1, 0], e2 = [0, 1]. Se le llama subespacio coordenado a un subespacio V , de la forma V = 0, o V = lin ei1 , . . . , e il , l > 0. Un subespacio coordenado es invariante bajo cualquier proyecci´on, es decir: πi : Rn Rn , πi ej = δij ei .
{
}
→
en donde πi es la proyecci´on sobre la componente ei , δij es la funci´on delta de Dirac tal que i = j i=j δ = 0.
→
→ δ = 1 y si
Un subespacio coordenado tiene la forma V = j πij (Rn ) para algunos ´ındices ii , . . . , i l . En este caso CV = 0 implica que Cπ ij = 0 para todo j. En otras palabras, si todas las columnas de C son diferentes de cero, entonces c = 0. De esta observaci´on se deriva el siguiente corolario:
Corolario 2.1.3 Si un sistema (2.12, 2.13) el sistema es observable.
O
∈ S , ker A∩ ker C =0 y cada columna de C es diferente de cero, entonces
El ´ultimo corolario se da una propiedad de la matriz C para que la red neuronal recurrente sea observable. En la secci´on 2.2.2 se expone otro teorema para la propiedad de controlabilidad.
2.2.2.
Controlabilidad
En [14] se extiende la comprobaci´on de la propiedad de accesibilidad hacia adelante de la red neuronal recurrente (2.12, 2.13) para probar su propiedad de controlabilidad. Accesibilidad hacia adelante ( Forward accessibility ): Se dice que el sistema tiene accesibilidad hacia adelante si desde cualquier estado inicial es posible alcanzar a cualquier punto en un conjunto abierto de estados en Rn por medio de una entrada adecuada u( ).
·
La propiedades para que el sistema (2.12, 2.13) tenga Accesibilidad hacia adelante son las siguientes: Propiedad de independencia para la funci´on de activaci´on Γ, B pertenezca a la clase
B.
Controlabilidad: Se dice que el sistema es controlable si desde cualquier estado inicial es posible alcanzar a cualquier otro punto en el espacio de estados completo por medio de una entrada adecuada u( ).
·
24
– JMFA –
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.2. Propiedades de Observabilidad y Controlabilidad
Nota 2.4 Sea 1.
G la clase de funciones que son localmente Lipschitz que tiene las propiedades siguientes : Γ es una funci´ on impar; es decir, Γ(−r) = −Γ(r) para toda r,
2. Γ∞ = l´ıms→+∞ Γ existe y es mayor que 0, 3. Γ < Γ∞ para toda r 4. para cada a, b
∈ R,
∈ R y b > 1,
Γ∞ Γ(a + bs) = 0. s→+∞ Γ∞ Γ(s)
−
l´ım
(2.14)
−
Como ejemplo de un tipo de funci´on de activaci´on que cumple con estas propiedades se tiene la funci´on tangente hiperb´olica: tanh(x). Las primeras tres propiedades que se dan en la nota anterior son cumplidas por la funci´on tanh. Para comprobar la ultima propiedad necesitamos del hecho que sigue: ´ Prop.1 Si, Γ(x) =
1 , (1 + e−x )−1
entonces,
Γ(r) = Γ(r) + er−t Γ( r). Γ(t)
−
Prop.2 1
− tanh(x) = 2Γ(−2x).
Es sencillo probar que la funci´on tangente hiporb´olica satisface la propiedad (2.14): 1
− tanh(a + bs) . 1 − tanh(s)
Usando la Prop.2 :
θ( 2a 2bs) . θ( 2s)
− − −
(2.15)
Ahora usando la Prop.1 y sustituyendo en (2.15), se tiene: θ( 2a 2bs) = θ( 2a θ( 2s)
− − −
− − 2bs) + e−2ae2(1−b)sθ(2a + 2bs).
(2.16)
Al aplicar el l´ımite a (2.16):
− − 2bs) → 0 + s→∞ l´ım e−2a e2(1−b)s θ(2a + 2bs) → 0.
l´ım θ( 2a
s→∞
Es decir que la funci´on tangente hiperb´olica tanh(x) cumple con las condiciones la de la nota 2.4 El teorema 2.2 define las condiciones de controlabilidad del sistema (2.12-2.13).
Teorema 2.2 (Controlabilidad:) Si se asume que Γ (2.12-2.13) es controlable.
∈ G y que B ∈ (B) y la matriz A es arbitraria entonces el sistema
En el teorema 2.2 se nota algo muy interesante: en el caso de que Γ sea la funci´on identidad la controlabilidad est´ a determinada por el par (A, B), pero en el caso no lineal la controlabilidad est´ a determinada por la estructura de la matriz B. En la secci´on que sigue se presenta la ley de aprendizaje para la red neuronal recurrente entrenable y para algunas de sus variaciones.
– JMFA –
25
2.3. Red Neuronal Recurrente Entrenable
2.3.
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
Red Neuronal Recurrente Entrenable
La ley de aprendizaje o regla ajuste de los pesos para la red neuronal recurrente, que se describe por las ecuaciones (2.6-2.9), se obtiene por medio del m´etodo de retropropagaci´on del error de la salida (ver secci´on 1.2.4 y el ap´endice F). El procedimiento consiste en obtener los gradientes de cada nodo de la red y despu´es aplicar el algoritmo optimizaci´on por gradiente descendente para actualizar los pesos. Con el objetivo de disminuir la complejidad del algoritmo se construye a la matriz J con una estructura diagonal. En la figura 2.4 se muestra la estructura de una RNRE con m entradas, n estados (o nodos ocultos) y p salidas. La RNRE tiene una estructura formada por un grupo filtros digitales de primer orden conectados en paralelo y con acoplamiento en las entradas y en las salidas.
1
1
b 1m
u1(k) u2(k)
b21
x
1 2
s (k)
um(k)
b n-1,1 b n-1,m b n,1 b n,m
J 2,2 z-1
1
b 2m
Γ ( *)
1
+ 2
1
u m-1(k)
J 1,1 x1(k) z-1
x1+
s11 (k)
b 11
x 2(k )
Γ ( *)
1
z1(k) 1
z 2(k )
s21 (k)
c 11 c 1n c 21
1 c 2n
1 n-1
s
(k)
1
c p-1,1
J n-1,n-1 xn-1(k) z-1
+
xn-1 1
Γ ( *)
1
zn-1(k) 1
c p-1,n c p,1
s1n (k) 1
J n,n
xn+
z-1
1
xn(k)
Γ ( *)
1
zn(k)
c p,n
1
s22 (k) 1
Γ ( *) Γ ( *)
s2p-1(k ) 1
s2p (k) 1
Γ ( *) Γ ( *)
y1(k) 1
y2(k) 1
y p-1 (k ) 1
y p (k ) 1
1
Red neuronal recurrente entrenable. Esta red neuronal se compone de una capa oculta recurrente y de una capa est´atica de salida. x+ i = x(k + 1). ................................................................................................................. Figura 2.4:
Desarrollando un poco m´as las ecuaciones (2.6-2.9) que describen la RNRE se tienen las expresiones: m
s1i (k)
=
bij uj (k);
i = 1, . . . , n ,
(2.17)
i = 1, . . . , n , i = 1, . . . , n ,
(2.18) (2.19)
i = 1, . . . , p ,
(2.20)
i = 1, . . . , p ,
(2.21)
j=1
xi (k + 1) = J ii xi (k) + s1i (k); zi(k) = Γ1 [xi (k)] ; n
s2i (k)
=
cij zj (k);
j=1
yi (k) = Γ2 s2i (k) ;
en donde n es el n´umero de nodos internos de la capa con retroalimentaci´on y p es el n´umero de nodos en la capa de salida de la red. El objetivo de la ley de aprendizaje es minimizar la suma de los cuadrados del error de salida: 1 E (k) = 2 en donde ei (k) = yid (k)
p
e2i (k),
(2.22)
i=1
− yi (k), yid(k) es el valor deseado en la i-´esima salida de la RNRE.
La actualizaci´on de los pesos de la RNRE se lleva a cabo por medio de la ecuaci´on: ∆wij (k) = wij (k + 1) 26
∂E (k) − wij (k) = −η ∂w , ij (k)
– JMFA –
(2.23)
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.3. Red Neuronal Recurrente Entrenable
∂E(k) en donde wij (k) representa un peso en la RNRE; ∂w es el gradiente del ´ındice desempe˜no de la red con respecto al ij (k) peso wij que se va ajustar; η es la tasa de ajuste.
Para el caso continuo la ecuaci´on (2.23), toma la forma: w˙ ij (t) =
∂E (t) −η ∂w , ij (t)
(2.24)
en donde t es la variable del tiempo. La ley de ajuste de los pesos de la red (2.23) actualiza el valor del peso en la direcci´on del mayor descenso de la funci´ on costo, esperando que al seguir este camino se alcance el punto en donde el peso define un m´ınimo global para esta funci´ on. Sin embargo, este algoritmo tiene algunos problemas: durante la actualizacin del peso puede caer en un m´ınimo local y estacionarse all´ı y, por tanto, no alcanzar el punto m´ınimo global de la funci´on; la lentitud de este algoritmo es otro problema, ocasionado porque el peso puede estar en una zona plana del gradiente, aqu´ı las iteraciones del algoritmo implican s´olo un cambio peque˜no del peso; otro defecto se produce en sistemas con poco amortiguamiento, al llegar a un punto m´ınimo (global o local) el algoritmo tiende a oscilar alrededor de ´este. Una forma sencilla para reducir estos efectos se logra con la ayuda de un t´ermino adicional a la ecuaci´on (2.23) que le a˜nade amortiguamiento, se le llama t´ermino momento . La regla de ajuste de los pesos con este t´ermino es: ∆wij (k) = wij (k + 1)
∂E (k) − wij (k) = −η ∂w + α∆wij (k − 1), ij (k)
(2.25)
en donde α es la tasa para el t´ermino momento. A la ecuaci´on (2.25) se le conoce como regla delta generalizada. En [15] se da la siguiente explicaci´on para el t´ermino momento. Si la regla delta generalizada se desarrolla como una serie para k = 0, . . . , n, se obtiene una ecuaci´on de diferencias de primer orden para ∆wij (k), esto es:
k = 0; ∆wij (0) = k = 1; ∆wij (1) = k = 2; ∆wij (2) =
∂E (0) −η ∂w , ij (0)
− −
∂E (1) η + α∆wij (0) = ∂w ij (1) ∂E (2) η + α∆wij (1) = ∂w ij (2)
.. . k = n; ∆wij (n) =
− η
− − η η
∂E (1) ∂E (0) +α , ∂w ij (1) ∂w ij (0) ∂E (2) ∂E (1) ∂E (0) +α + α2 ∂w ij (2) ∂w ij (1) ∂w ij (0)
∂E (n) ∂E (n 1) +α + ∂w ij (n) ∂w ij (n 1)
− −
· ··
∂E (0) +α ∂w ij (0) n
n
− =
η
r=0
αn−r
,
∂E (r) , ∂w ij (r)
(2.26)
entonces la expresi´on para el cambio del peso , ∆wij (n) es una serie exponencial. Un requisito para la convergencia es que el par´ametro α est´e entre los l´ımites: 0 α < 1, (2.27)
≤| |
si α se le da un valor entre los l´ımites (2.27), entonces se considera a la ecuaci´on (2.25) como un algoritmo de ajuste ∂E (r) con tasa, o coeficiente, de aprendizaje variable. Si se toma a ∂w = 1 para toda r, la ganancia final del algoritmo es: ij (r) l´ım ∆wij (r) =
r→∞
− 1 −η α ,
(2.28)
∂E(r) entonces, si el algoritmo (2.25) est´ a en una zona en donde ∂w tiene un valor peque˜no durante varias iteraciones, la ij (r) ganancia del algoritmo se incrementa exponencialmente hasta la ganancia l´ımite (2.28), esto acelera la variaci´on de la ganancia para salir de esta situaci´on, aumentado as´ı su velocidad. Sobre el l´ımite de la ganancia, notar que si el valor de η se toma de la forma: η = 1 α, (2.29)
−
la ganancia final ser´a 1, por esta raz´on se da a la condici´on (2.29) como una regla para definir el valor de α. – JMFA –
27
2.3. Red Neuronal Recurrente Entrenable
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
∂E (r) El t´ermino momento tambi´ en ayuda para reducir el efecto que ocurre cuando ∂w cambia de signo de manera ij (r) ∂E(k) . alternada. Si se define a: ∂w = ∆J (k), y se obtiene la transformada de la ecuaci´on (2.25), se tiene: ij (k)
Z
∆W ij (z) = ∆J (z)
− z ηz − α,
(2.30)
es decir, que la relaci´on entre la variaci´on del peso, ∆W ij (z) y el gradiente de la funci´on de costo, ∆J (z), presenta el comportamiento de un filtro pasa-bajos, esto significa que si el gradiente de la funci´on de costo cambia de forma alternada de signo, entre m´as r´ apido sea este cambio, menor es el efecto sobre la variaci´on del peso, amortiguando de esta forma las oscilaciones alrededor del punto m´ınimo. De lo anterior se concluye que el t´ermino momento (2.25) es ´util para acelerar el aprendizaje y estabilizar el comportamiento de la regla delta (2.25). De la ecuaci´on (2.30) se puede generalizar y establecer que la relaci´on entre ∆W ij (z) y ∆J (z) est´ a dado por una 1 funci´ on de transferencia G(z) , esto es: ∆W ij (z) = G(z), (2.31) ∆J (z) lo anterior abre otras posibilidades para seleccionar la regla de actualizaci´on de los pesos al considerar que el cambio en el peso, ∆W ij (z), es la versi´on filtrada de ∆J (z). En la pr´oxima secci´on se desarrolla el algoritmo de retropropagaci´on del error para una red neuronal recurrente y algunas de sus variaciones.
2.3.1.
Ley de Aprendizaje
Tomando como base a la funci´on (2.22) se comienza por obtener los gradientes locales de cada uno de los nodos en los distintos niveles de la red neuronal, una vez encontrados estos gradientes, se aplica la regla delta (delta generalizada) para calcular el nuevo valor del peso. El gradiente lo cal est´a definido de la forma: δil (k) =
∂E (k) , ∂s li (k)
(2.32)
en donde δil (k) es el gradiente local y sli (k) es la se˜nal de activaci´on de la neurona i que se localiza en el nivel l de la red. Se divide en dos ´etapas el proceso para determinar el valor de los gradientes locales de la red. Estas dos ´etapas dependen de si se est´ a en la capa est´ atica de la red, o en la capa din´ amica. En la siguiente secci´on se detalla el procedimiento. Gradiente local de la Capa de Salida Se necesita encontrar la expresi´on para el valor del gradiente de la funci´on de costo con respecto a los pesos de la capa de salida de la RNRE. En la figura 2.4, notar que la capa de salida de la red neuronal puede considerarse como una red est´atica de un nivel. El gradiente local que se necesita es el que corresponde a la capa dos y al nodo i, esto es: δi2 (k) =
∂E (k) . ∂s 2i (k)
(2.33)
El gradiente de la funci´on de costo (2.22) con respecto al peso cij queda definido como sigue: ∂E (k) ∂E (k) ∂s 2i (k) ∂s 2 (k) = 2 = δi2 (k) i . ∂c ij ∂s i (k) ∂c ij ∂c ij 1 Comentario
28
sugerido por el Dr. R´ uben Garrido Moctezuma.
– JMFA –
(2.34)
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.3. Red Neuronal Recurrente Entrenable
Se utiliza la ecuaci´on (2.20) para transformar la expresi´on del gradiente de la manera siguiente: ∂E (k) = δi2 (k)zj (k). ∂c ij
(2.35)
en donde δi2 (k) es el gradiente local de la capa de salida. Para el c´alculo del gradiente local δi2 (k), se contin´ua con la regla de la cadena. La expansi´on de las derivadas inicia en la capa de salida hasta llegar a s2i (k). El procedimiento es el siguiente: δi2 (k) = = = = =
∂E (k) , ∂s 2i (k) ∂E (k) ∂e i (k) , ∂e i(k) ∂s 2i (k) ∂e i (k) ei (k) 2 , ∂s i (k) ∂e i (k) ∂y i (k) ei (k) , ∂y i (k) ∂s 2i (k) ∂y i (k) ( 1)ei(k) 2 , ∂s i (k) ei(k)Γ˙ 2 (s2i (k) ,
− δi2 (k) = −
(2.36)
en donde Γ˙ 2 es la derivada de la funci´on de activaci´on de la capa de salida (nivel 2). Reuniendo las expresiones (2.35-2.36), entonces los pesos de la capa de salida se actualizan a trav´es de la ley:
∆cij (k) = ηe i (k)Γ˙ 2 s2i (k) zj (k);
i = 1, . . . , p j = 1, . . . , n
(2.37)
La ley de actualizaci´on de los pesos de la capa de salida de una RNRE (2.37) es la que se obtendr´ıa para una red neuronal est´atica de una s´ola capa con entrada z(k) y salida y(k) por medio del algoritmo de retropropagaci´on del error. Desarrollo de los Pesos de la Capa de Retroalimentaci´ on Los pesos de capa interior est´an en los lazos de retroalimentaci´on de la red. Para encontrar la ley que actualiza estos pesos se debe evaluar la derivada de la funci´on de costo con respecto al peso J ii (k) en t´ermino de los gradientes locales de la capa de salida. El gradiente local de esta capa se define como: δix (k) =
∂E (k) . ∂x(k + 1)
(2.38)
el gradiente local en la capa de retroalimentaci´on se denota por δix (k). La derivada parcial de la funci´on de costo (2.22) con respecto al peso J ii (la matriz J se considera diagonal) se desarrolla de la manera siguiente: ∂E (k) ∂E (k) ∂x i (k + 1) ∂x i (k + 1) = = δix (k) . ∂J ii (k) ∂x i (k + 1) ∂J ii (k) ∂J ii (k) El valor de
∂x i (k+1) ∂J ii (k)
(2.39)
se obtiene al considerar la expresi´on (2.18) para xi (k + 1): xi (k + 1) = J ii xi (k) + s1i (k),
luego: ∂x i (k + 1) ∂ = xi (k + 1) = J ii xi (k) + s1i (k) = xi (k), ∂J ii(k) ∂J ii (k)
– JMFA –
(2.40) 29
2.3. Red Neuronal Recurrente Entrenable
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
por tanto la ecuaci´on (2.39) es igual a: ∂E (k) = δix (k)xi (k). ∂J ii (k)
(2.41)
Ahora lo que falta es encontrar la expresi´on para el gradiente local δix (k) en funci´on de los gradientes locales δ2 (k), para esto se procede de la manera siguiente: δix (k) = = = = =
∂E (k) , ∂x i (k + 1) ∂E (k) ∂x i (k) , ∂x i (k) ∂x i (k + 1) ∂E (k) −1 q , ∂x i (k) ∂E (k) ∂z i(k) −1 q , ∂z i (k) ∂x i (k) ∂E (k) ˙ 1 Γ [xi (k)] q−1 , ∂z i (k)
p
=
r=1 p
=
r=1 p
=
∂E (k) ∂s 2r (k) ∂s 2r (k) ∂z i(k)
∂E (k) cri (k) Γ˙ 1 [xi (k)] q−1 , ∂s 2r (k)
δr2 (k)cri (k) Γ˙ 1 [xi (k)] q−1 ,
r=1
en donde x(k)q−1 = x(k
Γ˙ 1 [xi (k)] q−1 ,
(2.42)
− 1) y p es el n´umero de salidas de la red neuronal.
Los pesos en las trayectorias de retroalimentaci´on se actualizan a trav´ es de la expresi´on:
−
p
∆J ii (k) =
η
δrx (k)cri (k) Γ˙ 1 [xi (k)] xi (k
r=1
− 1);
i = 1, . . . , n .
(2.43)
Pesos de la Capa de Entrada Finalmente para los pesos de la capa de entrada se sigue un procedimiento similar. La ley de ajuste de los pesos de la capa dependen de los gradientes locales de las capas posteriores. El gradiente local en este nivel es: δi1 =
∂E (k) . ∂s 1i (k)
(2.44)
Tomando en cuenta la expresi´on (2.17) el gradiente de la funci´on de costo (2.22) con respecto al gradiente local es igual a: ∂E (k) ∂E (k) ∂s 1i (k) = , ∂b ij (k) ∂s 1i (k) ∂b ij (k) ∂E (k) = uj (k), ∂s 1i (k) = δi1 (k)uj (k). El gradiente local δi1 en funci´on del gradiente δx es: ∂E (k) ∂E (k) ∂x i (k + 1) = , 1 ∂s i (k) ∂x i (k + 1) ∂s 1i (k) 30
– JMFA –
(2.45)
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.4. Red Neuronal Recurrente de Tres Capas
∂E (k) (1) ∂x i (k + 1) = δix (k). =
(2.46)
Los pesos en la capa de entrada se actualizan de forma: ∆bij (k) =
i = 1, . . . , n j = 1, . . . , m .
−ηδix(k)uj (k);
(2.47)
Estas reglas de actualizaci´on result´an en la pr´actica f´aciles de programar. Una RNRE es un sistema din´amico, lo que se propone aqu´ı es utilizar este mo delo de RNRE en tareas de identificaci´on y control. Esperando que la inclusi´on de este modelo din´ amico resulte es esquemas que aprovechen, en alguna medida, la capacidad de adaptaci´on de la red.
2.4.
Red Neuronal Recurrente de Tres Capas
Es posible obtener algunas variaciones interesantes del modelo de Red Neuronal Recurrente propuesto. En primer lugar se presenta el caso en el que la capa de entrada tiene funciones de activaci´on no lineales derivables. Al modelo resultante de RNRE se le llama Red Neuronal Recurrente Entrenable de tres capas . En la figura 2.5 se muestra una RNRE de tres capas con m entradas, n estados y p salidas. La estructura de este modelo de red neuronal se puede dividir en tres capas; la primera capa es est´atica y su funci´on es la de hacer un mapeo no lineal de las entradas; la siguiente capa es din´amica en donde la se˜nal de activaci´on de cada nodo depende del mapeo no lineal de las entradas y de su valor anterior; la ´ultima capa es la salida de la red neuronal y realiza una mapeo no lineal de los estados de la red. s11 (k)
b 11
1
b1m
u1(k)
1 2
s (k)
u2(k)
1
Γ ( *) Γ ( *)
J 1,1 x1(k) z-1
x1(k+1)
r1 (k) 1
1
1
J 2,2
x 2(k+1)
r2 (k) 1
z-1
1
x 2(k ) 1
Γ ( *) Γ ( *)
z1(k) 1
z 2(k )
s21 (k)
c 11
1
c 1n c 21
1
s22 (k) 1
c 2n
um-1(k)
b n-1,1
um(k)
1 n-1
s
1
b n-1,m bn,1 b n,m
(k)
1 n
s (k) 1
Γ ( *) Γ ( *)
rn-1(k)
xn-1(k+1)
1
1
J n-1,n-1 xn-1(k) z-1 1
rn (k)
xn(k+1)
1
1
J n,n
z-1
xn(k) 1
Γ ( *) Γ ( *)
c p-1,1
Γ ( *) Γ ( *)
s2p-1 (k)
zn-1(k) 1
c p-1,n c p,1
zn(k)
c p,n
1
s2p (k) 1
Γ ( *) Γ ( *)
y1(k) 1
y2(k) 1
yp-1 (k ) 1
yp (k ) 1
1
Red neuronal recurrente de tres capas. Al poner en los nodos de entrada una funci´on de activaci´on, la estructura de la red neuronal se divide en tres capas: una capa de entrada y salida est´aticas; y una capa oculta recurrente. ...................................................................................................... Figura 2.5:
Las ecuaciones de la red neuronal para este caso son: m
s1i (k)
=
bij uj (k);
i = 1, . . . , n ,
(2.48)
i = 1, . . . , n , i = 1, . . . , n , i = 1, . . . , n ,
(2.49) (2.50) (2.51)
i = 1, . . . , p ,
(2.52)
i = 1, . . . , p ,
(2.53)
j=1
ri (k) = Γ0 s1i (k) ; xi (k + 1) = J ii xi (k) + ri (k); zi (k) = Γ1 [xi (k)] ; n
s2i (k)
=
cij zj (k);
j=1
yi (k) = Γ2 s2i (k) ;
el componente nuevo de este modelo es s´olo la funci´on de activaci´on Γ0 . – JMFA –
31
2.4. Red Neuronal Recurrente de Tres Capas
2.4.1.
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
Ley de Aprendizaje
El procedimiento nuevamente consiste en derivar la ecuaci´on del gradiente de la funci´on de costo (2.22): 1 E (k) = 2
p
e2i (k),
i=1
y despu´es usar como ley de ajuste de los pesos una regla tipo gradiente descendente, (2.23): ∆wij (k) = wij (k + 1)
∂E (k) − wij (k) = −η ∂w , ij (k)
en donde wij (k) es alguno de los pesos de la red que van a ser actualizados. Deducci´ on de la ley de aprendizaje para la capa de los pesos de la salida El gradiente de la funci´on de costo con respecto a los pesos en este nivel depende directamente del error de la salida, por lo que es el mismo que el obtenido en el modelo de RNRE anterior (2.36):
∆cij (k) = ηei (k)Γ˙ 2 s2i (k) zj (k);
i = 1, . . . , p , j = 1, . . . , n .
Γ˙ s2i (k) es la derivada de la funci´on de activaci´on usada en la salida de la red. Desarrollo de los Pesos de la Capa de Retroalimentaci´ on En la capa intermedia, o de retroalimentaci´on, el efecto de haber puesto la funci´on de activaci´on en la capa de entrada no afecta el c´alculo del gradiente, as´ı pues, esta es la misma que se expresa en (2.42). Los pesos en las trayectorias de retroalimentaci´ on se actualizan a trav´ es de la expresi´on:
−
p
∆J ii (k) =
η
δr2 (k)cri (k) Γ˙ 1 [xi (k)] xi (k
r=1
− 1);
i = 1, . . . , n .
Pesos de la Capa de Entrada En esta capa donde se agrega la funci´on de activaci´on. Esto no cambia el procedimiento que debe seguirse: derivar y poner el gradiente en funci´on del gradiente local de la capa siguiente. El gradiente de la funci´on de costo con respecto al peso bij es: ∂E (k) ∂E (k) ∂s 1i (k) = , ∂b ij (k) ∂s 1i (k) ∂b ij (k) = δi1 (k)uj (k).
(2.54)
El gradiente local δi1 (k) en funci´on del gradiente δx (k) es: ∂E (k) ∂r i (k) , ∂r i (k) ∂s 1i (k) ∂E (k) ˙ 0 1 = Γ si (k) , ∂r i (k) ∂E (k) ∂x i (k + 1) ˙ 0 1 = Γ si (k) . ∂x i (k + 1) ∂r i (k)
δi1 (k) =
El t´ermino x(k + 1) est´a definido por (2.50): xi (k + 1) = J ii xi (k) + ri (k), 32
– JMFA –
(2.55)
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.5. RNRE con Predicci´on de la Salida
luego: ∂x i (k + 1) = 1. ∂r i (k)
(2.56)
El gradiente δi1 es igual a la ecuaci´on: ∂E (k) ˙ 0 1 Γ si (k) , ∂x i (k + 1) = δix (k)Γ˙ 0 s1i (k) .
δi1 (k) =
(2.57)
Los pesos en la capa de entrada se actualizan por medio de la expresi´on: ∆bij (k) =
−η
δix (k)Γ˙ 0 s1i (k)
uj (k);
i = 1, . . . , n , j = 1, . . . , m .
(2.58)
Este modelo de RNRE (2.17-2.21) corresponde a un caso especial de (2.48-2.53).
2.5.
RNRE con Predicci´ on de la Salida
Se presenta otra versi´on de la red neuronal recurrente. El cambio r´adica en que la entrada a la capa de salida es ahora el estado siguiente generado por la capa intermedia recurrente, ver figura 2.6 J 1,1
x1+
x1(k) z
-1
s11 (k)
b 11
1
1
1
Γ ( *)
z 1+ 1
s21 (k+1)
c 11
b 1m
J 2,2
u1(k) u2(k)
z
x2+
1
1
b n-1,1
um(k) b n-1,m
Γ ( *)
z 2+
2
c 21 s 2
1 c 2n
xn-1+
z-1
s1n-1 (k) 1
1
J n, n b n,1
1
c 1n
1
J n-1,n-1 xn-1(k)
b n,m
-1
s12 (k)
b 21 b 2m
um-1(k)
x2(k)
1
xn(k)
s2p-1 (k+1)
Γ ( *)
zn-1+ 1
c p-1,n
1
Γ ( *)
s2p (k+1)
s (k) 1
1
Γ ( *)
1
y2(k+1) 1
y p-1 (k+1) 1
c p,1
1 n
1
(k+1)
y1(k+1)
c p-1,1
xn+
z-1
Γ ( *)
1
Γ ( *)
z n+
c p,n
1
Γ ( *)
y p (k+1) 1
1
Red neuronal recurrente con predicci´ on de la salida. Al cambiar la posici´ on del operador retardo y haciendo que la entrada a la capa de salida es el estado siguiente se obtiene esta varianci´on para una RNRE. ................................................................................................................. Figura 2.6:
De la figura 2.6, se obtienen las ecuaciones para la red neuronal: m
s1i (k)
=
bij uj (k);
i = 1, . . . , n ,
(2.59)
i = 1, . . . , n , i = 1, . . . , n ,
(2.60) (2.61)
i = 1, . . . , p ,
(2.62)
i = 1, . . . , p .
(2.63)
j=1
xi (k + 1) = J ii xi (k) + s1i (k); zi (k + 1) = Γ1 [xi (k + 1)] ; n
s2i (k + 1) =
cij zj (k + 1);
j=1
yi (k + 1) = Γ2 s2i k + 1)]; – JMFA –
33
2.5. RNRE con Predicci´on de la Salida
2.5.1.
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
Ley de Aprendizaje
Deducci´ on de la ley de aprendizaje para la capa los pesos de la capa de salida En este nivel el gradiente δi2 (k + 1) es (2.36) adelantado:
δi2 (k + 1) = ei (k + 1)Γ˙ s2i (k + 1) , as´ı que la ley de ajuste de los pesos de la capa de salida es:
∆cij (k) = ηe i (k + 1)Γ˙ 2 s2i (k + 1) zj (k + 1);
(2.64)
i = 1, . . . , p , j = 1, . . . , n .
(2.65)
Desarrollo de los Pesos de la Capa de Retroalimentaci´ on El gradiente de la funci´on de costo con respecto al peso de la capa de retroalimentaci´on J ii es: ∂E (k + 1) ∂E (k + 1) ∂x i (k + 1) = , ∂J ii (k) ∂x i (k + 1) ∂J ii (k) ∂x i (k + 1) = δix (k + 1) . ∂J ii (k)
(2.66)
La ecuaci´on que define la relaci´on de los componentes en la capa de retroalimentaci´on es (2.60): xi (k + 1) = J ii xi (k) + s1i (k). Por tanto:
∂x i (k + 1) ∂ = xi (k + 1) = J ii xi (k) + s1i (k) = xi (k); ∂J ii(k) ∂J ii (k)
luego:
i = 1, . . . , n .
∂E (k + 1) ∂E (k + 1) ∂x i (k + 1) = , ∂J ii (k) ∂x i (k + 1) ∂J ii (k) = δix (k + 1)xi (k), en donde
∂E(k+1) ∂x i (k+1)
(2.67)
(2.68)
es el gradiente local, δix (x + 1), de esta capa. El c´alculo de este gradiente se lleva a cabo de la forma: ∂E (k + 1) , ∂x i (k + 1) ∂E (k + 1) ∂z i(k + 1) = , ∂z i (k + 1) ∂x i (k + 1) ∂E (k + 1) ˙ 1 = Γ (zi (k + 1)), ∂z i (k + 1)
δix (k + 1) =
p
=
r=1 p
∂E (k + 1) ∂s 2r (k + 1) ˙ 1 Γ (zi (k + 1)), ∂s 2r (k + 1) ∂z i (k + 1)
∂E (k + 1) = c Γ˙ 1 [zi (k + 1)] , 2 (k + 1) ri ∂s r r=1
p
=
δr2 (k
+ 1)cri Γ˙ 1 [zi (k + 1)] .
r=1
(2.69)
Los pesos en las trayectorias de retroalimentaci´on se actualizan a trav´ es de la expresi´on:
− p
∆J ii (k) =
η
r=1
34
δr2 (k + 1)cri Γ˙ 1 [xi (k + 1)] xi (k);
– JMFA –
i = 1, . . . , n .
(2.70)
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.6. RNRE con Retardo en la Retroalimentaci´on
Pesos de la Capa de Entrada En los pesos de la capa de entrada se actualizan a trav´es de la ecuaci´on (2.47), s´olo es necesario sustituir el gradiente local δix (k) por δix (k + 1). Los pesos bij se modifican por la expresi´on: ∆bij (k) =
2.6.
−ηδix(k + 1)uj (k);
i = 1, . . . , n , j = 1, . . . , m .
(2.71)
RNRE con Retardo en la Retroalimentaci´ on
Este caso consiste en considerar que la salida de la red neuronal de la figura 2.6 es el vector y(k) en lugar de y(k +1). En la figura 2.7 se indican estos cambios en la estructura de la red. J 1,1 1 1
s (k)
b 11
x1(k-1)
z-1
x1(k) 1
1
Γ ( *)
1
z1(k) 1
s21 (k)
c 11
b 1m
J 2,2
u1(k) u2(k)
u m-1(k)
1
1
b 2m
um(k) b n-1,m
bn,m
z2(k)
c 21
1 c 2n
s1n-1 (k)
z-1
c p-1,1
xn-1(k) 1
1
J n, n b n,1
Γ ( *)
1
J n-1,n-1 xn-1(k-1) b n-1,1
z
c 1n
-1
x2(k)
s12 (k)
b 21
x2(k-1)
1 n
s (k)
1
xn(k-1)
1
c p-1,n c p,1
z-1
xn(k) 1
1
Γ ( *)
zn-1(k)
1
Γ ( *)
zn(k)
c p,n
1
s22 (k) 1
Γ ( *)
Γ ( *)
s2p-1 (k) 1
Γ ( *)
s2p (k) 1
Γ ( *)
y1(k) 1
y2(k) 1
y p-1 (k ) 1
y p (k ) 1
1
Red neuronal con retardo en la retroalimentaci´ on. Un simple cambio se produce al suponer que el estado actual es igual a la suma: s(k) + x(k 1) = x(k). ................................................................................................................. Figura 2.7:
−
De la figura 2.7 se obtienen las ecuaciones para la red neuronal: m
s1i (k)
=
bij uj (k);
i = 1, . . . , n ,
(2.72)
−
i = 1, . . . , n , i = 1, . . . , n ,
(2.73) (2.74)
cij zj (k);
i = 1, . . . , p ,
(2.75)
i = 1, . . . , p .
(2.76)
j=1
xi (k) = J ii xi (k 1) + s1i (k); zi (k) = Γ1 [xi (k)] ; n
s2i (k)
=
j=1
yi (k) = Γ2 s2i k)];
2.6.1.
Ley de Aprendizaje
Deducci´ on de la ley de aprendizaje para los pesos de la capa de salida La capa de salida de esta red neuronal es igual a la ecuaci´on (2.17). La regla de ajuste de los pesos es igual a la expresi´ on (2.37): i = 1, . . . , p , ∆cij (k) = ηei (k)Γ˙ 2 s2i (k) zj (k); j = 1, . . . , n .
– JMFA –
35
2.6. RNRE con Retardo en la Retroalimentaci´on
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
Desarrollo de los pesos de la Capa de Retroalimentaci´ on El gradiente de la funci´on de costo con respecto a los pesos de la capa de retroalimentaci´on, J ii , es: ∂E (k) ∂E (k) ∂x i (k) = , ∂J ii (k) ∂x i (k) ∂J ii (k) ∂x i (k) = δix (k) . ∂J ii (k)
(2.77)
La ecuaci´on que define la relaci´on de los componentes en la capa de retroalimentaci´on es (2.73): xi (k) = J ii xi (k Por tanto:
∂x i (k) ∂ = xi (k) = J ii xi (k ∂J ii (k) ∂J ii (k)
luego:
− 1) + s1i (k).
− 1) + s1i (k)
= xi (k
− 1);
i = 1, . . . , n ,
∂E (k) ∂E (k) ∂x i (k) = , ∂J ii (k) ∂x i (k) ∂J ii (k) = δix (x)xi (k 1),
(2.79)
−
en donde manera:
∂E(k) ∂x i (k)
(2.78)
es el gradiente local, δix (x), de esta capa. El c´ alculo de este gradiente se lleva a cabo de la siguiente ∂E (k) , ∂x i (k) ∂E (k) ∂z i(k) = , ∂z i (k) ∂x i (k) ∂E (k) ˙ 1 = Γ (zi (k)), ∂z i (k)
δix (k) =
p
=
r=1 p
∂E (k) ∂s 2r (k) ˙ 1 Γ (zi (k)), ∂s 2r (k) ∂z i (k)
∂E (k) = c Γ˙ 1 [zi (k)] , 2 (k) ri ∂s r r=1
p
=
δr2 (k)cri Γ˙ 1 [zi (k)] .
r=1
(2.80)
Los pesos en las trayectorias de retroalimentaci´on se actualizan a trav´ es de la expresi´on:
p
∆J ii (k) =
−η
δr2 (k)cri Γ˙ 1 [xi (k)] xi (k
r=1
− 1);
i = 1, . . . , n .
(2.81)
Pesos de la Capa de Entrada La ecuaci´on para esta capa (2.72) es la misma que en el primer caso de la red neuronal recurrente (2.17). Se usa la ecuaci´ on (2.47) para actualizar los pesos: ∆bij (k) =
−ηδix(k)uj (k);
en donde δix (k) es (2.80). 36
– JMFA –
i = 1, . . . , n , j = 1, . . . , m .
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.7.
2.7. RNRE con Estados Acotados
RNRE con Estados Acotados
En la red Neuronal recurrente de la figura 2.8 los estados de la capa interna est´an acotados por la funci´on no lineal de activaci´on Γ [ ]. Esto asegura que los estados de la Red Neuronal est´an limitados.
·
s11 (k) b 1,1
1
um-1(k)
s12 (k)
x 2( k+1)
1
1
1 n-1
s
um(k)
(k)
1
b n,m
Γ ( *)
1
u1(k) u2(k)
J 1,1
x1(k+1)
J 2,2
Γ ( *)
z1(k+1)
z1(k)
z-1
1
1
s1n (k)
xn(k+1)
1
1
Γ ( *)
s21 (k) 1
z 2(k+1)
z 2(k )
z-1
1
1
zn(k+1)
1
Γ ( *)
s2p-1 (k)
zn-1(k)
1
1
zn(k)
z-1
1
c 2,1 s2 (k) 2
Γ ( *)
c p-1,1
J n-1,n-1 xn-1(k+1) zn-1(k+1) z-1 ( ) Γ * 1 1 J n,n
c 1,1
c p,1
c p,n
s2p (k) 1
Γ ( *) Γ ( *)
y1(k) 1
y2(k) 1
y p-1 (k ) 1
y p (k ) 1
1
Red neuronal recurrente con estados acotados. Al poner la funci´on de activaci´on en la salida de la capa oculta se acotan los estados generados por la red. ................................................................................................................. Figura 2.8:
De la figura 2.8 se obtienen las expresiones que describen su estructura: m
s1i (k)
=
bij uj (k);
i = 1, . . . , n ,
(2.82)
i = 1, . . . , n , i = 1, . . . , n ,
(2.83) (2.84)
i = 1, . . . , n ,
(2.85)
i = 1, . . . , p .
(2.86)
j=1
xi (k + 1) = J ii zi(k) + s1i (k); zi (k + 1) = Γ1 [xi (k + 1)] ; n
s2i (k)
=
cij zj (k);
j=1
yi (k) = Γ2 s2i (k + 1) ;
2.7.1.
Ley de Aprendizaje
Deducci´ on de la ley de Aprendizaje para la Capa de Salida La descripci´on de la capa de salida es la misma a la utilizada en el primer caso de la red neuronal (2.20-2.21). El c´alculo del gradiente con resp ecto a los pesos de la entrada es el mismo, (2.36): δi2 (k) =
−ei(k)Γ˙ 2
Los pesos cij se actualizan por medio de la expresi´on (2.37):
(s2i (k) .
∆cij (k) = ηei (k)Γ˙ 2 s2i (k) zj (k);
i = 1, . . . , p , j = 1, . . . , n .
Desarrollo para los Pesos de la Capa de Retroalimentaci´on El gradiente de los pesos de la capa intermedia en funci´on del gradiente local de esta capa es igual: ∂E (k) ∂E (k) ∂x i (k + 1) = , ∂J ii (k) ∂x i (k + 1) ∂J ii (k) – JMFA –
37
2.7. RNRE con Estados Acotados
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable = δix (k)
∂x i (k + 1) , ∂J ii (k)
(2.87)
en donde gradiente local es: δix (k) =
∂E (k) . ∂x i(k + 1)
(2.88)
Si considera la expresi´on: xi (k + 1) = J ii zi (k) + s1i (k); entonces, el gradiente
∂x i (k+1) ∂J ii (k)
i = 1, . . . , n ,
(2.89)
es igual a:
∂x i (k + 1) ∂ = xi (k + 1) = J ii zi (k) + s1i (k) = zi (k); ∂J ii (k) ∂J ii (k)
i = 1, . . . , n .
(2.90)
El gradiente local δix (k) es: δix (k) = = = = = ∂E (k) = ∂z i (k) δix (k) =
∂E (k) , ∂x i (k + 1) ∂E (k) ∂z i (k + 1) , ∂z i (k + 1) ∂x i (k + 1) ∂E (k) ˙ 1 Γ [xi (k + 1)] , ∂z i (k + 1) ∂E (k) ∂z i(k) ˙ 1 Γ [xi (k + 1)] , ∂z i (k) ∂z i (k + 1) ∂E (k) −1 ˙ 1 q Γ [xi (k + 1)] , ∂z i (k) p
p
∂E (k) ∂s 2r (k) ∂E (k) = c (k), 2 2 (k) ri ∂s r (k) ∂z i(k) ∂s r r=1
r=1 p
(2.92)
∂E (k) c (k) q−1 Γ˙ 1 [xi (k + 1)] , 2 (k) ri ∂s r r=1
p
=
(2.91)
δr2 (k)cri (k) q−1 Γ˙ 1 [xi (k + 1)] .
r=1
(2.93)
Los pesos en las trayectorias de retroalimentaci´on se actualizan con la ecuaci´on:
p
∆J ii (k) =
−η
r=1
δr2 (k)cri (k) Γ˙ 1 [xi (k)] zi (k
− 1);
i = 1, . . . , n .
(2.94)
Pesos de la Capa de Entrada El c´alculo del gradiente de los pesos de la capa de entrada se lleva de la siguiente manera: ∂E (k) ∂E (k) ∂s 1i (k) = . ∂b ij (k) ∂s 1i (k) ∂b ij (k) ∂s 1 (k) = δi1 (k) i , ∂b ij (k) = δi1 (k)uj , ∂E (k) ∂x i (k + 1) δi1 (k) = ∂x i (k + 1) ∂s 1i (k) 38
– JMFA –
(2.95)
(2.96) (2.97)
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.8. Condici´on de Estabilidad para los Pesos J
∂E (k) (1), ∂x i (k + 1) = δix (k), =
∂E (k) = δix (k)uj . ∂b ij (k)
(2.98)
Los pesos en la capa de entrada se actualizan por medio de la ecuaci´on: ∆bij (k) =
2.8.
i = 1, . . . , n , j = 1, . . . , m .
−ηδixuj (k);
Condici´ on de Estabilidad para los Pesos
(2.99)
J
Las condici´ ones de estabilidad para la red neuronal recurrente en su versi´on continua y discreta son (2.5) y (2.10), respectivamente. En ambas se supone que la matriz de pesos de la capa de retroalimentaci´on es diagonal. Para el caso continuo la red neuronal ser´a estable si los elementos de la matriz diagonal J : J ii ; i = 1, . . . , n, son tales que: (J ii ) < 0. En el caso discreto la red neuronal ser´a estable si los elementos de la matriz diagonal J son tales que: J ii < 1; es decir, que est´en en el interior de un c´ırculo de radio 1 con centro en el origen del plano complejo.
ℜ
Para incorporar la condici´on de estabilidad en las expresiones para la actualizaci´on de los pesos J ii se propone la siguiente modificaci´on de la regla delta: ¯ii (k) J ii (k + 1) = J
− η ∂E (k) + α∆J ii (k − 1) ∂J ii
¯ii (k) = sat[J ii (k)] , J
(2.100) (2.101)
la funci´on sat( ) que se usa en el caso discreto es:
·
− − 1
sat(x) =
ǫ
en donde ǫ es un n´umero positivo peque˜no.
ǫ; x x; x < 1; x
≥ 1, | | 1, ≤ − 1,
(2.102)
¯ii en la red neuronal recurrente y de esta forma asegurar que el De esta forma se propone sustituir el peso J ii por J peso satisface las condiciones de estabilidad.
2.9.
Pesos de Compensaci´ on
ci0 , bi0
Como se mencion´o en la secci´on 1.2 las neuronas en una red pueden tener un componente ponderado por un peso que no depende de ninguna entrada. Este componente se llama de compensaci´on cuando se le asocia con una entrada constante de valor 1, o de umbral cuando es 1. En el modelo de red neuronal recurrente se a˜nade este t´ermino independiente. En cada uno de los puntos suma que pertenecen a la capa de salida de la red neuronal. Estos pesos son los representados por: ci0 , uno por cada salida de la red. La entrada asociada a los pesos de compensaci´on es z0(k) = 1. Los pesos de compensaci´on ci0 se actualizan por medio de la regla:
−
∆ci0 = ηei (k)Γ˙ s2i (k)
i = 1, . . . , p .
(2.103)
De una forma similar pueden asignar pesos de compensaci´on a los nodos que est´an en la capa de entrada de la red neuronal. Una entrada constante a lo pesos bi0 , hay el mismo n´umero de pesos bi0 como nodos internos de la red. Los pesos bi0 se actualizan con la regla: ∆bi0 = ηδix (k) i = 1, . . . , n . (2.104) – JMFA –
39
2.10. Escalamiento de la Funci´on de Activaci´on, Γ(x)
2.10.
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
Escalamiento de la Funci´ on de Activaci´ on, Γ(x)
La funci´on de activaci´on que se usa en las simulaciones es la funci´on tangente hiperb´olico, tanh(x): tanh(x) =
ex e−x e2x 1 sinh(x) = = . ex + e−x e2x + 1 cosh(x)
−
−
(2.105)
Para poder modificar la ganancia (el valor l´ımite cuando x ) y la pendiente de esta funci´on de activaci´on (cuando la derivada de esta funci´on es cero en x = 0) se modifican los par´ametros k1 y k2 de la expresi´on:
→ ±∞
Γ(x) = k1 tanh
x k2
.
(2.106)
La derivada de la funci´on (2.106) es: d k1 Γ(x) = 1 dx k2
−
Γ(x/k2 )2
La ganancia de la funci´on de activaci´on (2.106) est´a dado por el l´ımite cuando x l´ım Γ(x)
x→±∞
(2.107)
→ ±∞. Para este caso, el l´ımite es:
→ ±k1,
(2.108)
la pendiente de la funci´on de activaci´on (2.106) es el valor de la derivada (2.107) en x = 0: Dx [Γ(x)] =
k1 . k2
(2.109)
En la figura 2.9, se muestran los cambios en la forma de la funci´on de activaci´on al modificar los par´ametros k1 y k2 . En figura 2.9. a, se presenta la gr´ afica cuando hay un cambio en la ganancia de la funci´on de activaci´on, pero sin cambio en la pendiente. Los par´ametros dede tener la misma magnitud: k = k1 = k2 . Las gr´aficas son para los par´ametros k = 1,1.2 y 1.4. En figura 2.9. b, se grafican las derivadas de estas funciones. En figura 2.9. c, es el caso cuando hay cambio en la pendiente de la funci´on de activaci´on, pero sin cambio de la ganancia. Las gr´aficas tienen las pendientes: 30◦ , 45◦ y 60◦ , en figura 2.9. d, est´an sus derivadas.
40
– JMFA –
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
2.10. Escalamiento de la Funci´on de Activaci´on, Γ(x)
Función de Activación: Variación de ganancia
1.5
Función de Activación, derivada: Variación de ganancia
k=1.4 k=1.2
1
k=1
1
0.8
] ) k / x ( h 0.6 n a T * k [ x d / 0.4 d
0.5 ) k / x ( h n a T * k
0 −0.5
k=1.2
0.2
−1 −1.5 −4
−3
−2
−1
0 (a)
1
2
3 x
4
Función de Activación: Variación de pendiente
1.8
1
0.6
−2
−1
0 (b)
1
2
3 x
4
Función de Activación, derivada: Variación de pendiente
1.4
k1/k2 =Tan(30º)
] ) 1.2 2 k / x ( h 1 n a T * 1 0.8 k [ x d / d 0.6
0.4
) 2 k 0.2 / x ( h 0 n a T * −0.2 1 k
k1/k2=Tan(45º)
−0.4 −0.6
k1/k2=Tan(60º)
k1/k2=Tan(45º)
0.4
k1/k2=Tan(60º)
−0.8
k1/k2 =Tan(30º)
0.2
−1
Figura 2.9:
−3
k=1
1.6
0.8
−4
0 −4
k=1.4
−3
−2
−1
0 (c)
1
2
3 x
4
0 −4
−3
−2
−1
0 (d)
1
2
3 x
4
Funci´ on de Activaci´ on. tanh(x): a) funci´ on k tanh( xk ), casos: k = 1, 1.2, 1.4. b) funci´ on Dx k tanh( xk ) .
√
c) funci´ on k1 tanh( kx2 ), en los casos kk12 = 0.5, 1, 3. d) funci´ on Dx k1 tanh( kx2 ) . .................................................................................................................
– JMFA –
41
2.11. Conclusi´on
2.11.
Cap´ıtulo 2. Red Neuronal Recurrente Entrenable
Conclusi´ on
El modelo de una red neuronal recurrente y su algoritmo de entrenamiento se han presentado como una propuesta de un sistema din´amico ajustable y se muestran algunas variaciones de su estructura. La red neuronal propuesta tiene las siguientes caracter´ısticas: 1. Es un modelo de red neuronal recurrente que puede tener varias entradas y varias salidas, as´ı que no esta limitado en cuanto al n´umero de se˜nales externas. 2. Es un modelo param´etrico: el conjunto de los pesos define la estructura de un sistema din´amico. Es posible utilizar la informaci´on de los estados en las aplicaciones. 3. Se garantiza la estabilidad de la red por la restricci´on de los pesos de la capa de retroalimentaci´on. 4. Los algortimos de entrenamiento de la red neuronal son simples y de f´acil implementaci´on. Las leyes de ajuste de los pesos utilizan un algoritmo de optimizaci´on de tipo gradiente. Se usa un algoritmo de tipo retropropagaci´ on para calcular los gradientes locales de cada nodo de la red y se realiza la actulizaci´on a trav´es de una regla delta. En los cap´ıtulos que siguen se mostraran algunas de las implementaciones de este modelo de red neuronal en problemas de identificaci´on y control de sistemas din´amicos.
42
– JMFA –
Cap´ıtulo 3
Identificaci´ on de Sistemas En el estudio de los sistemas una de las primeras necesidades es la de obtener modelos. Un mo delo sintetiza el an´alisis de las principales caracter´ısticas del sistema y de su precisi´on depende de la profundidad con la que se realiza. Para esto se deben detectar y determinar cuales son las variables del sistema m´as relevantes y el tipo de interacciones de tipo causa-efecto que entre ellas se producen. Los modelos de identificaci´on son estructuras conocidas en las cuales se ajustan sus par´ ametros con el fin de reproducir la respuesta del sistema en estudio dentro de cierta zona de operaci´on. En este cap´ıtulo se presentan algunos conceptos b´asicos sobre la identificaci´on de sistemas, despu´es algunos resultados de identificaci´on usando el modelo de red neuronal recurrente presentado en el cap´ıtulo anterior y para terminar una propuesta de un modelo de identificaci´on m´ultimodelo.
3.1.
Aproximaci´ on de Funciones
Se puede considerar el problema de aproximaci´on de funciones como antecedente al de identificaci´on de sistemas. Por esto se inicia con el tema de aproximaci´on de funciones. Este problema se puede dividir en dos tipos. 1. En el primero, se supone que se conoce la expresi´on expl´ıcita de la funci´on, y lo que se busca es una estructura param´etrica que apr´oxime a la funci´on con el grado de precisi´on deseado. 2. En el otro caso, el problema consiste en obtener una funci´on que se ajuste a la relaci´on entrada-salida existente en un conjunto finito de datos. En el primer caso se b´usca representar cierto clase de funciones como una suma de potencias a trav´ es de manipular series geom´etricas. Como ejemplo de este tipo de aproximaci´on est´an las series de Mclaurin y de Taylor. Este enfoque permite obtener versiones simplificadas de funciones, esto ayuda al an´alisis de los problemas y tambi´ en se utilizan para simplificar c´alculos. En el segundo caso es m´ as experimental debido a que no se cuenta de una expresi´on expl´ıcita de la funci´on de la cual se desea obtener una aproximaci´on. Pero se tiene la posibilidad de aprender sobre su forma por la realizaci´on de experimentos y la recolecci´on de datos. Este tipo aproximaci´ on es en la que nos concentraremos. En [16] definen el problema de aproximaci´on de funciones de la manera siguiente. Sea F (x, θ) una funci´ on de T aproximaci´ on no lineal ajustable . El vector: x = [x1 , x2 , . . . , xn ] es la entrada del aproximador y el vector: θ = [θ1 , θ2 , . . . , θ p ]T define sus par´ametros y p la dimensi´on de la funci´on de aproximaci´on. Sea G(x, z) una funci´on donde x = [x1 , x2 , . . . , xn ]T y z = [z1 , z2 , . . . , znz ]T son la entrada y una entrada auxiliar para G. El problema de aproximaci´on de funciones se divide en dos etapas, en la primera se debe proponer una estructura para la funci´on F , en la segunda etapa se debe definir la forma para ajustar el vector de par´ametros, θ. En caso de que no se tenga la funci´on G de forma expl´ıcita se define el problema de aproximaci´on de funciones de la manera siguiente: 43
3.1. Aproximaci´on de Funciones
Cap´ıtulo 3. Identificaci´on de Sistemas
Sup´ ongase que para el i-´esimo experimento se tiene el vector de entrada: x(i) = [x1 (i), x2 (i), . . . , xn (i)]T , con el vector de auxiliar:
z(i) = [z1 (i), z2 (i), . . . , znz (i)]T ,
entonces, la salida es: y(i) = G(x(i), z(i)), debido a que no se conoce de forma expl´ıcita a G se puede aprender de ella experimentando y recolectando un conjunto de datos de entrada y salida. En la pr´ actica se restringen estos experimentos a un subconjunto X del espacio de entradas, es decir: x(i) X Rn ,
∈ ⊂
y de forma similar para la entrada auxiliar: z(i)
∈ Z ⊂ R
n
.
Se llama al par (x(i), y(i)) un dato de entrenamiento. Al conjunto de datos de entrenamiento, de la forma:
G = {x(i), y(i), . . . , x(M ), y(M )} en donde M denota el n´umero de pares de entrenamiento contenidos en G (´epoca de entrenamiento ).
El problema de aproximaci´on de funciones consiste en hallar la forma de calcular el valor del vector de par´ ametros θ en F (x, θ) de manera que: G(x, z) = F (x, θ) + e(x, z), en donde e(x, z) es tan peque˜no como se desee, para todo x
∈ Rn , a´un para x, tales que (x, y) ∈/ G (Generalizaci´ on). z
Este problema es muy dif´ıcil si no se sabe nada sobre G, ´unicamente se tiene del conjunto de entrenamiento como informaci´on de la funci´on. La funci´on F puede ser representada por alguna de las siguientes opciones: un sistema difuso estandar, F f s (x, θ), un sistema difuso del tipo Takagi-Sugeno, F ts (x, θ), una red neuronal del tipo perceptr´on m´ulticapa, F mlp (x, θ), una red neuronal del tipo funciones radiales b´asicas, F rbf (x, θ), una funci´on polinomial, F poli (x, θ), entre otras.
3.1.1.
Redes Neuronales Est´ aticas en la Aproximaci´ on de Funciones
Las redes neuronales de m´ultiples capas y de funciones radiales b´ asicas (FRB) tienen la capacidad de aproximar funciones no lineales con el nivel de precisi´on deseado. Esta caracter´ıstica se aprovecha en las aplicaciones de modelado y control de sistemas. Se utiliza la informaci´on de tipo entrada-salida para entrenar a la red neuronal ajustando sus pesos para reducir la diferencia entre el valor deseado y el valor de salida de la red. Una vez hecho esto se utiliza la red neuronal para construir un modelo del sistema o un controlador. En [17], utiliza el Teorema de Weistrass para probar que estructuras como las redes neuronales de m´ultiples capas y por funciones radiales b´asicas, tienen la capacidad para aproximar funciones no lineales con el grado de precisi´on deseado. En este teorema se muestra que una funci´on continua arbitraria puede ser uniformemente aproximada por una secuencia de polinomios, pn (x), dentro de cierta regi´on; adem´ as, este teorema demuestra algunas propiedades generales para las funciones de aproximaci´on. De acuerdo con el teorema de Stone-Weistrass, es sufienciente demostrar que el conjunto de todas las combinaciones lineales de funciones sigmoidales (para el caso de redes de m´ultiples capas) y de FRB forman una ´algebra no desvaneciente que separa los puntos de un conjunto compacto definido por las variables de entrada de la red neuronal para garantizar sus propiedades para aproximar funciones no lineales continuas. 44
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.1. Aproximaci´on de Funciones
Desde otro punto de vista te´orico, el Teorema de Kolmogorov contradice el 13◦ problema de Hilbert donde se afirma que existen funciones an´aliticas de tres variables que no pueden ser representadas por una superposici´on de funciones continuas de dos variables. En el teorema de Kolmogorov se prueba que cualquier funci´ on continua de n-dimensional dentro del cubo E n puede ser representada por n(2n + 1) funciones de una variable. Entonces se tiene que es posible la representaci´on exacta de una funci´on an´alitica con una superposici´on finita de funciones continuas de una variable. En el trabajo de Hornik [3], se prueba que las redes neuronales de conexiones hacia adelante (feedforward) y con una capa oculta puede considerarse como una aproximador universal de funciones, lo anterior responde afirmativamente a la pregunta sobre si una red neuronal puede aproximar con el grado deseado a una funci´on no lineal y responsabiliza el mal desempe˜no a los problemas de selecci´on de los datos; la determinaci´on del n´umero de nodos en la capa oculta y a la falta de una relaci´on determin´ıstica entre los datos de entrada y salida. En [5] se prueba que cualquier mapeo continuo puede ser realizado (aproximado) por una red neuronal de m´ultiples capas de al menos una capa oculta con funci´on de activaci´on tipo sigmoide. En ese trabajo prueba el teorema que sigue:
Teorema 3.1 Ver [5]. Identifique a Γ(x) como una funci´ on continua, no constante, uniformemente creciente y acotada; K como un subconjunto compacto (subconjunto acotado y cerrado) de Rn y f (x1 , . . . , xn ) es una funci´ on de valor real sobre K . Entonces para un ǫ > 0 arbitrario, existe un entero N y constantes reales ci , θi , wij ( i = 1, . . . , N ; j = 1, . . . , n) tales que:
N
˜ 1 , . . . , x n) = f (x
n
ci Γ
i=1
y que satisface m´ axx∈K f (x1 , . . . , xn )
j=1
− f ˜(x1 , . . . , xn) < ǫ.
wij xj
− θi
,
Este teorema permite asegurar que una red neuronal de una capa oculta con funci´on de activaci´on tipo sigmoide y una capa de salida lineal, tiene la capacidad de aproximar una funci´on de valor real con el grado de precisi´on deseado. M´ as adelante en [5] se generaliza el teorema 3.1:
Teorema 3.2 Ver [5]. Identifique a Γ(x) como una funci´ on continua, no constante, uniformemente creciente y acotada; K como un subconjunto compacto (subconjunto acotado y cerrado) de Rn y k es un n´ umero entero de modo que m R definido por x = (x1 , . . . , xn ) k 3. Entonces cualquier mapeo continuo f : K [f 1 (x), . . . , fm (x)] puede aproximarse en el sentido de una topolog´ıa uniforme sobre K por un mapeo de entrada-salida, por una red neuronal de k capas ( k 3, se cuentan las capas de entrada y salida) en donde Γ(x) es la funci´ on de salida de las k 2 capas ocultas y las capas de entrada salida lineales.
≥
→
→
≥
−
El teorema 3.2 generaliza a las funciones de vectoriales de valor real para poder ser realizadas por una red neuronal con k 2 niveles ocultos, sin restricci´on sobre el n´umero de nodos que integran cada uno de los niveles, o capas, de la red neuronal.
−
En [3] se generaliza aun m´ as, permitiendo que la funci´on de activaci´on Γ(x) sea cualquier funci´ on continua no constante y acotada, esto elimina la necesidad que la funci´on de activaci´on sea del tipo sigmoide . M´ as tarde en [4] se aborda la pregunta acerca de la precisi´on de red neuronal para aproximar una funci´on. Se prueba que una red neuronal es un aproximador universal con respecto al critero L p(µ), disponiendo del n´umero suficiente de niveles ocultos en la red, y que si la funci´on de activaci´on es una funci´on continua, acotada y no constante, entonces cualquier mapeo continuo puede ser aproximado con suavidad; es decir, que la red neuronal aproxima tambi´en las derivadas del mapeo. En el ejemplo 3.1 ilustra el desempe˜no de una red neuronal de m´ultiples capas para la aproximaci´on de una funci´on no lineal.
– JMFA –
45
3.1. Aproximaci´on de Funciones
Cap´ıtulo 3. Identificaci´on de Sistemas
Ejemplo 3.1 La red neuronal tiene una capa de entrada, dos capas ocultas y una de salida, la configuraci´ on de la red es 1, 4, 4, 1 , todas las neuronas tienen una entrada independiente ( bias), utilizan como funci´ on de activaci´ on: tanh( ). El 2π objetivo es aproximar la funci´ on no lineal: f (k) = sen( 2 k), en donde k = 1.0, 0.9, . . . , 0, . . . , 0.9, 1 , que suman veinti´ un puntos para el entrenamiento de la red neuronal. El algoritmo de ajuste de pesos es de tipo retropropagaci´ on del error, ver sec. 1.2.4. La tasa de entrenamiento es: η = 0.15, esta constante va decreciendo de forma exponencial en funci´ on de la ´epoca de entrenamiento: e−ep/800 .
{
}
{−
−
}
·
Se puede utilizar el teorema de muestreo de Shannon para determinar el n´ umero de puntos necesarios para reconstruir esta se˜ nal. Si f r es la frecuencia del arm´ onico m´ as alto que se desea reconstruir, el teorema de Shannon indica que la frecuencia de muestreo debe ser de al menos 2f r. Para este ejemplo se selecciona una frecuencia de muestreo de 20f r, as´ı que es suficiente para garantizar la reconstrucci´ on de la funci´ on no lineal. Durante el proceso de entrenamiento de la red neuronal se va tomando un dato de entrada y se propaga en la red para determinar el resultado de salida de la red con el conjunto de pesos actuales; entonces, se compara este valor con el deseado, este es el error instant´aneo; el error instant´aneo se retropropaga en la red para calcular los gradientes de cada nodo de la red, este gradiente es la medida de la contribuci´ on del nodo en el error de salida de la red; este valor se utiliza como el factor de correcci´ on en una regla delta que actualiza el peso de la red en un porcentaje del gradiente determinado por el ´ındice de aprendizaje η. Este proceso se realiza con cada dato de entrada y en cada nodo de la red neuronal, este es un ejemplo de aproximaci´ on en l´ınea de una funci´ on, figura 3.1. z(k) x(k)
G(x, z)
y(k)
^
F[x(k),θ(k)]
Proceso de proximaci´ on en l´ınea de una funci´ on. La funci´ on G se aproxima ajustando los par´ametros de la funci´on F para cada iteraci´on k del proceso. ........................................................ Figura 3.1:
θ(k) y(k)
-
Método de ajuste para
θ(k)
El programa para el entrenamiento de la red neuronal esta escrito en Matlab 5.0. El programa se localiza en el ap´endice B.1, p´agina 153.
Los resultados del entrenamiento se pueden observar en la figura 3.2. En figura 3.2.a se puede ver el inicio del entrenamiento, aqu´ı los pesos de la red son asignados de forma aleatoria por medio de una distribuci´on uniforme [0.0, 1.0] de n´umeros peque˜nos. En figura 3.2.b se presenta la condici´on de la RN en la ´epoca 100 de entrenamiento, ya se nota que algunos puntos se han alcanzado y que la red comienza a asimilar el comportamiento de la funci´on deseada. En figura 3.2.c se muestra la ´epoca 800, aqu´ı la funci´on de costo ha alcanzado el valor de 5 10−4 con el cual la red muestra un error aceptable y se detiene el entrenamiento; se toman a los ´ultimos pesos calculados como los finales. En figura 3.2.d se presenta la historia de la minimizaci´on de la funci´on de costo.
×
El final del proceso de entrenamiento de la red neuronal significa que con los datos utilizados en esta fase se han obtenidos un conjunto de pesos con los cuales la funci´on de desempe˜no alcanza el valor m´ınimo deseado. Ahora es necesario evaluar la respuesta de la red neuronal en la etapa de generalizaci´ on, que consiste en utilizar otro conjuntos de datos de entrada-salida diferentes a los usados en el entrenamiento. En la tabla 3.1 se resume la respuesta de la red para este nuevo conjuntos de datos. En la primera columna est´an los datos utilizados para probar la red neuronal; en la segunda columna se anotan los valores deseados; la respuesta de salida de la red neuronal para la entrada correspondiente y utilizando los pesos obtenidos en la etapa de entrenamiento se resumen en la tercera columna; en la cuarta columna se indica el error de salida de la red neuronal y por ´ultimo se anota el porcentaje de error de salida. Una desventaja de este tipo de red es su relativamente largo tiempo de entrenamiento. En el ejemplo 3.2 se presenta una alterativa para este problema. Se utiliza una red neuronal con funciones radiales b´asicas.
46
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.1. Aproximaci´on de Funciones
Aprox. de Función (RNMC) 1
Aprox. de Función (RNMC) 1
época=0
0.8
0.8
0.6
0.6
0.4
0.4
) 0.2 k ( Y , ) 0 k ( d Y −0.2
) 0.2 k ( Y , ) 0 k ( d Y −0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8
−1
−1
−1
−0.8
−0.6
−0.4
−0.2
0 (c)
0.2
0.4
0.6
0.8 X(k)
1
−1
Aprox. de Función (RNMC) 1
−0.8
−0.6
época=800
−0.4
−0.2
0 (c)
0.2
0.4
0.6
0.8 X(k)
1
700 época
800
Aprox. de Función (RNMC): Error cuadrático
5 4.5
0.8
ec=0.00074005
4
0.6
3.5
0.4
] k ( e [ m u s * 2 / 1
) 0.2 k ( Y , ) 0 k ( d Y −0.2
2 )
−0.4
3 2.5 2 1.5 1
−0.6
0.5
−0.8
0
−1 −1
época=100
−0.8
−0.6
−0.4
−0.2
0 (c)
0.2
0.4
0.6
0.8 X(k)
1
−0.5
0
100
200
300
400 (d)
500
600
Aproximaci´ on de una funci´ on a trav´ es de una red neuronal m´ ulticapa. a) en la ´epoca cero de entrenamiento. b) muestra el progreso de la RN en la ´epoca n´umero 100, c) ´epoca n´umero 800, el error cuadr´atico medio (EMC) ha alcanzado el valor de 7 10−4. d) minimizaci´ on del error cuadr´atico medio por ´epoca de entrenamiento. ................................................................................................................. Figura 3.2:
×
– JMFA –
47
Cap´ıtulo 3. Identificaci´on de Sistemas
3.1. Aproximaci´on de Funciones
Ejemplo 3.2 Se repite el ejemplo 3.1, pero en lugar de utilizar una red neuronal m´ ulticapa, ahora se utiliza una red neuronal de funciones radiales b´ asicas. La funcion no lineal utilizada en cada uno de los nodos ocultos es la funci´ on − 12 x−xci 2 2σi Gauss: r(x, xci ) = e , donde los puntos xci son tomados del conjunto de entrenamiento para servir como los centros de las funciones radiales b´asicas, ´este conjunto para el ejemplo es: xc = 1, 0.8, . . . , 0, . . . , 0.8, 1 .
{− −
} La red neuronal de funciones radiales b´asicas tiene una entrada, once nodos en la capa oculta y una salida, {1,11,1}.
El par´ ametro σi determina el ancho o dispersi´ on de las funciones gaussianas, en este ejemplo, se le asign´ o el mismo valor a todas las funciones, σi = 0.5. El proceso para determinar el valor de los pesos en una red neuronal de FRB se realiza en un s´ olo paso y considerando todo el conjunto de lo datos de entrenamiento, este procedimiento se lleva fuera de l´ınea. La relaci´ on entre los datos de entrenamiento y el valor de salida deseado es:
f (x1 ) .. .
=
f (xn )
que minimiza la norma:
r(x1 , xc1 ) . . . r(x1 , xcm ) .. .. .. . . . r(xn , xc1 ) r(xn , xcm ) m´ın F (x)
w1 .. .
,
F (X ) = RW.
(3.1)
wm
− RW
(3.2)
Para obtener los pesos de la red neuronal se realiza la operaci´ on: W = (RT R)−1 RT F (X ).
(3.3)
El programa utilizado se localiza en el ap´endice B.2, p´agina 155.
En la figura. 3.3 se presenta el desempe˜no de la red neuronal con los pesos obtenidos por la soluci´on en (3.3). En figura. 3.3.a se muestra la estructura general de la red usada. En figura. 3.3.b se presenta la operaci´on de la red neuronal, en donde se puede observar que la red neuronal realiza la transformaci´on entre los valores de entrada y el valor deseado a la salida. Aprox. de Función (RNFRB)
Aprox. de Función (RNFRB): generalización
1
1
0.8
0.8
0.6
0.6
0.4
0.4
) 0.2 k ( Y , ) 0 k ( d Y −0.2
) 0.2 k ( Y , ) 0 k ( d Y −0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8
−1
−1
−1
−0.8
−0.6
−0.4
−0.2
0 (a)
0.2
0.4
0.6
0.8 X(k)
1
−1
−0.8
−0.6
−0.4
−0.2
0 (b)
0.2
0.4
0.6
0.8 X(k)
1
Aproximaci´ on de una funci´ on no lineal utilizando una red neuronal de funciones radiales b´ asicas. a) . . valor deseado, Y d (k) = ; valor de salida de la red, Y (k) = . Los centros de las FR est´an indicados por . b) . . Mapeo de la red en generalizaci´on. Valor deseado, Y d(k) = ; valor de salida de la red, Y (k) = ................................................................................................................. Figura 3.3:
◦
◦
×
×
∗
En la tabla.3.2 se list´an los datos, y los errores de la red en una prueba de la propiedad de generalizaci´on la red neuronal. Los campos que se anotan son los mismos que los mostrados en el ejemplo.3.1. En este par de ejemplos se pueden notar algunas caracter´ısticas de las redes neuronales usadas. En la red neuronal de m´ultiples capas el entrenamiento puede realizarse en l´ınea; es decir, que los pesos de la red se van actualizando en – JMFA –
49
Cap´ıtulo 3. Identificaci´on de Sistemas
3.2.
3.2. Identificaci´on
Identificaci´ on
El problema de identificaci´on de sistemas puede considerarse como una extensi´on del caso de aproximaci´on de funciones en donde la relaci´on entre las variables de entrada y salida es m´ as compleja que un mapeo entre ambas. En los sistemas en los cuales se observa que el efecto de una misma se˜nal de entrada en diferentes instantes de tiempo produce respuestas diferentes se les conoce como sistemas din´amicos. En estos sistemas su evoluci´on no depende exclusivamente de la se˜nal de entrada, sino tambi´ en depende de su estado anterior. En muchos sistemas f´ısicos es posible obtener expresiones matem´aticas que describen su modo de evolucionar, por lo general, se parte de leyes f´ısicas, que explican los efectos entre los elementos m´as simples del sistema, despu´es se coordinan las interacciones hasta llegar a describir el sistema completo. De esta manera se logra modelar sistemas de tipo el´ectrico, mac´anicos, electromec´anicos, cinem´aticos, qu´ımicos, etc. Esta t´ecnica permite el an´alisis de sistemas complejos; sin embargo, el proceso inductivo que se sigue para hallar estos modelos se basan en leyes, pero a´un ´estas s´ olo son aproximaciones que no pretenden describir todas las interacciones que se producen, se limita a los efectos m´as evidentes dentro de una zona espec´ıfica de operaci´on. Si estos modelos se mantienen en la zona de operaci´on, en la mayor´ıa de los casos, el modelo ser´a de utilidad para el an´ alisis del sistema, pero al salir de esta zona los efectos antes despreciados haran que se vaya incrementado la diferencia entre la respuesta del modelo y del sistema bajo estudio, llegando a ser in´util el modelo. Obligando lo anterior a modificar el modelo para que contemple los efectos que antes fueron descartados. Dependiendo de la complejidad del sistema este proceso puede hacerce muy laborioso. Una opci´on para este problema es proponer un modelo de identificaci´on. Un modelo de identificaci´on es una estructura fija cuyos par´ ametros son ajustables. Con la informaci´on disponible del sistema se ajustan los par´ametros del modelo de identificaci´ on con el objetivo de que la respuesta del modelo se aproxime a la respuesta del sistema. u
Planta
θ Modelo de Identificación
y p
Problema de identificaci´ on de sistemas. Los par´ametros del modelo de identificaci´on son ajustados con el fin de que su respuesta se aproxime a la del sistema analizado. ........................................................ Figura 3.4:
ym
-
Método de ajuste para
θ
Con este enfoque el problema del modelado de un sistema tiene dos etapas: 1. Selecci´ on del modelo de identificaci´on que m´as se adapte a las caracter´ısticas del sistema y del an´alisis a realizar. 2. Elegir el m´etodo de ajuste de los par´ ametros del modelo de identificaci´on, a partir de la informaci´on disponible del sistema. En el primer paso se define el problema de caracterizaci´on de sistemas, que consiste en seleccionar la estructura que mejor se adapte al sistema en estudio. En esta fase se determina si el modelo debe ser lineal, no lineal, continuo, discreto, variante o invariante el tiempo con base a los criterios de precisi´on y complejidad del modelo de identificaci´on, de tal forma, que la selecci´on del modelo tenga la estructura m´as sencilla posible, pero que cumpla con los requisitos de precisi´ on solicitados. El problema de identificaci´on se puede definir de la siguiente forma: Problema de identificaci´ on: Sea u la entrada y y p la salida de un sistema estable, u es acotada y uniforme. Se propone un modelo de identificaci´ on con salida ym y una estructura param´etrica conocida. Se requiere que con la informaci´ on disponible del sistema se ajusten los par´ ametros del modelo de identificaci´ on de tal forma que ym se aproxime asint´ oticamente a la salida y p . En la definici´on anterior se supone que la informaci´on del sistema en estudio est´a libre de ruido. A continuaci´on se presentan algunos m´etodos para la identificaci´on de sistemas, con el prop´osito de que sirv´an como antecedentes a la utilizaci´on de las redes neuronales para el problema de identificaci´on. – JMFA –
51
3.3. M´etodos de Identificaci´on
3.3.
Cap´ıtulo 3. Identificaci´on de Sistemas
M´ etodos de Identificaci´ on
Ver [38]. Los m´etodos de identificaci´on que se presentan en esta secci´on modelan la salida del sistema como una combinaci´ on lineal de sus salidas y entradas anteriores ( auto-regressive moving average ): n1
Ao y(k) =
−
n2
Aj y(k
j=1
− j) +
Bj u(k
j=0
− j)
k
≥0
(3.4)
en donde y es la salida del sistema de dimensi´on n; u es la variable de entrada de dimensi´on m; Ai , Bi son matrices de par´ametros donde Ao es cuadrada y no singular. El modelo se normaliza agrupando las salidas y entradas anteriores en un vector φ de dimensi´on p, y una matriz de par´ametros θ de dimensi´on p m donde las columnas est´an formadas por los par´ametros para cada salida:
×
y(k) = θ T φ(k
− 1).
k
≥1
(3.5)
el vector φ se le nombra como regresor . Notar que la ecuaci´on (3.5) tiene la forma de un sistema de ecuaciones algebraicas: y = Ax, donde x es el regresor φ(k 1) y A es θT ; el problema es hallar una θˆT tal que minimize y(k) θˆT φ(k 1) para todo k.
−
−
−
Ejemplo 3.3 Para el caso del modelo discreto de la velocidad motor de cc. dado en el ap´endice C.53, se puede expresar de la forma (3.5), es decir: ω(k) = θT φ(k 1), t 1 φ(k 1)T = [ω(k 1), ω(k 2), ea (k 1), ea (k 2), T L (k 1), T L (k 2)] , θT = [ 295.803 10−3 , 703.648−3, 10607.511 10−3 , 10607.511 10−3 . . . 1548.755, 1548.329].
−
− −
−
−
×
≥ −
−
−
−
−
×
− ×
(3.6) (3.7) (3.8)
Entonces el problema de identificaci´on se inicia considerando que el sistema bajo an´alisis se puede modelar de la forma (3.5), ahora se debe proponer un algoritmo de ajuste de la matriz de pesos θ, el ajuste se realiza con la informaci´on disponible del sistema. Los algoritmos se dividen en aquellos que son adecuados para trabajar fuera de l´ınea, y otros que lo hacen en l´ınea. La diferencia entre ambos enfoques radica en si se tienen, o no, restricciones en el tiempo para realizar las operaciones necesarias para la actualizaci´on de los par´ ametros. En este trabajo se est´a interesado en los algoritmos en l´ınea. Estos algoritmos ajust´an los par´ametros de forma progresiva, utilizando la informaci´on disponible. El primer algoritmo se identificaci´on que se trata es el de proyecci´on.
3.3.1.
Algoritmo de Proyecci´ on
Este algoritmo de identificaci´on en l´ınea. Sup´ongase que el sistema a identificar tiene una estructura definida por la ecuaci´ on (3.5) y, por tanto, existe una matriz de par´ametros θ∗ . El algoritmo de proyecci´on propone que en el instante k la matriz de param´etros estimados θˆ se actualice en la direcci´on del regresor φ(k 1) y en proporci´on al error de salida ˆ e(k) = y(k) φ(k 1)T θ(k 1), es decir:
−
−
−
−
ˆ = θ(k ˆ θ(k)
−
φ(k 1) 1) + φ(k 1)T φ(k
−
−
− 1)
y(k)
T ˆ
− φ(k − 1)
θ(k
− 1)
k
≥ 1,
(3.9)
ˆ en donde θ(0) es la estimaci´on inicial para θ∗ . ˆ ˆ El algoritmo de proyecci´on minimiza la distancia entre los valores estimados θ(k) y θ(k J = 52
1 ˆ θ(k) 2
ˆ − 1)2 , − θ(k
– JMFA –
− 1): (3.10)
Cap´ıtulo 3. Identificaci´on de Sistemas sujeto a la restricci´on: y(k) = φ(k
3.3. M´etodos de Identificaci´on
ˆ − 1)θ(k). Ver [38].
Con el prop´osito destacar el principio geom´etrico de este algoritmo sup´ongase que θ ∗ es un vector bidimensional. ver figura 3.5. En el instante k se conoce un estimado para el vector de par´ ametros θ(k 1); el regresor: φ(k 1) y la salida y(k). Con esta informaci´on se debe proponer un valor para θ(k), esperando que se aproxime a θ∗ .
−
−
b
a
T ^
y(k) - Á (k-1) µ (k-1)
c
^
µ(k-1) ^
µ(k)
Algoritmo de proyecci´ on- Interpretaci´ on geom´ etrica. El algoritmo de proyecci´on actualiza el vector de par´ametros estimados en una magnitud igual a la de su proyecci´on sobre el regresor actual, y en una direcci´on paralela a ´este u ´ ltimo. Notar que cuando el vector de par´ametros estimados es perpendicular al regresor (caso entre los pasos E a F ) el vector de par´ametros estimados puede alcanzar en menos iteraciones (repeticiones) su valor verdadero. .............................................................. Figura 3.5:
^
µ(k+1) d
f e
µ* F
A
E D
Á(k-1) B C
Á(k)
El algoritmo de proyecci´ on puede interpretarse de la forma siguiente: sup´ongase que la r´ apidez de un barco es proporcional al producto escalar de la corriente, φ(k 1) por su rumbo, θ(k 1). Se desea otro valor de r´apidez indicado por y(k). Para cumplir esto se debe calcular un cambio en el rumbo. La r´ apidez en las condiciones actuales es: φ(k T 1) θ(k 1), el cambio del rumbo debe reducir la diferencia entre la r´apidez deseada y la actual: y(k) φ(k 1)T θ(k 1), este valor da la magnitud y la orientaci´on del cambio de rumbo, pero falta decidir en que direcci´on se debe realizar. El algoritmo de proyecci´on propone que el cambio de rumbo se realice paralelo a la corriente. En la figura. 3.6.a se presenta el barco en su estado inicial. Si la r´apidez deseada es menor a la actual: y(k) φ(k 1)T θ(k 1) < 0, esto indica que la correcci´on del rumbo debe ser en direcci´on contraria a la corriente, como se ve en figura.3.6.b. Si lo que se desea es aumentar la r´apidez del barco: y(k) φ(k 1)T θ(k 1) > 0, la correcci´on en el rumbo debe de darse en la direcci´on de la corriente, esto se observa en figura.3.6.c.
−
−
−
− −
−
−
−
Á(k-1)
Á(k-1)
(a)
(b) µ(k-1)
−
−
µ(k)
µ(k-1)
−
−
−
µ(k-1)
Interpretaci´ on del algoritmo de proyecci´ on. En el algoritmo se proyecci´o n la correcci´on del vector de par´ametros se realiza en la direcci´on del regresor (direcci´on de la corriente). ............................................. Figura 3.6:
µ(k)
Á(k-1)
(c)
– JMFA –
53
3.3. M´etodos de Identificaci´on
Cap´ıtulo 3. Identificaci´on de Sistemas
Algoritmo de proyecci´ on: La ecuaci´on (3.9) tiene el posible problema de que el denomidador se haga cero, para evitar esto, el algoritmo de proyecci´on se modifica de la forma siguiente: ˆ = θ(k ˆ θ(k)
− 1) − 1) + a c + φ(kφ(k − 1)T φ(k − 1)
y(k)
ˆ − 1) − φ(k − 1)T θ(k
k
≥ 1,
(3.11)
en donde 0 < a < 2, c > 0.
Las propiedades del algoritmo de proyecci´on se resumen en [38]. Se garantiza que el error de estimaci´on de los par´ ametros no ser´an mayor al inicial, pero esto no implica que eventualmente se haga cero. En el ejemplo 3.4 se presenta el caso de identificaci´on del modelo lineal de un motor de cc. usando el algoritmo de proyecci´on.
Ejemplo 3.4 Se presenta la operaci´ endice on del algoritmo de proyecci´ on para la identificaci´ on de un motor de cc. Ver Ap´ C. Se utilizan las ecuaciones que describen la velocidad del motor, ecuaci´ on C.53 y el resultado del ejemplo 3.3. En este ejemplo se supone que el par de carga, T L , es igual a cero: ω(k) = θT φ(k
− 1), k ≥ 1 φ(k − 1) = [ω(k − 1), ω(k − 2), ea(k − 1), ea (k − 2)] , θT = [−295.803 × 10−3 , 703.648−3, 10607.511 × 10−3 , 10607.511 × 10−3 ].
(3.12)
T
(3.13) (3.14)
El algoritmo utiliza; a = 1, c = 0.001; el tiempo de muestreo es: T s = 0.005s. La se˜ nal de entrada es u(k) = sen(2π(k 1)T s ) + sen(20π(k 1)T s ). El algoritmo opera durante 2 segundos.
−
−
El programa para el algoritmo de proyecci´ on se localiza en el ap´endice B.3. Los resultados se resumen en la figura 3.7. Algoritmo de Proyección: Parámetros
12
Algoritmo de Proyección: Errores 10 0 −10
10.5985 10
e=−0.036992
0
8 6
0.4
0.6
0.8
1
1.2
1.4
0
2 0.70122 −0.2922
0
0
0.2
0.4
0.6
0.8
1 (a)
1.2
1.4
1.6
0.2
0.4
0.6
0.8
1
1.2
1.4
2
1.8
2
1.6
1.8
2
ep2=−0.0034485
0
0.2
0.4
0.6
0.8
1
1.2
1.4
0
0.2
0.4
0.6
0.8
1 (b)
1.2
1.4
1 0 −1
1.8 s
1.6
ep1=−0.012184
1 0 −1
4
−2
0.2
1 0 −1
1.6 1.8 2 ep34=−0.00085352
1.6
1.8 s
2
Operaci´ on del algoritmo de proyecci´ on. a) Evoluci´ on de los par´ametros. b) Errores. Error de salida: 3 T ˆ φ(k 1) θ(k 1); error relativo del par´ametro 1: ep1 = θ1 (k)+295.803×10 ; error relativo del par´ametro −295.803×10 3
Figura 3.7:
e = ω(k)
−
−
−
−
−
3
−
θ
(k)−10607.511×10
3
−
2: ep2 = θ1 (k)−703.648×10 ; error relativo del par´ametro 3 y 4: ep3,4 = 3,4 10607.511×10 3 703.648×10 3 ................................................................................................................. −
−
En la figura 3.7.a se observa el valor de los par´ ametros en cada repetici´on. En el ejemplo, se alcanzan r´ apidamente valores muy pr´oximos a los verdaderos; pero no hay que olvidar que en una aplicaci´on real no se conocen el valor preciso de estos par´ametros, por lo cual no se tendr´a una forma exacta de reconocer cuando el algoritmo de proyecci´on ha logrado hallar una aproximaci´on aceptable de los par´ ametros del sistema y, p or tanto, se debe definir una t´ecnica de validaci´on. 54
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.3. M´etodos de Identificaci´on
Inicializaci´ on : ˆ - Vector de par´ametros estimados: θ(0). - Tasa de ajuste : 0 < a < 2.. - Constante para evitar divisi´on entre cero : c > 0. - N´ umero de iteraciones : N . k=1 Proceso: - Actualizaci´on del vector de par´ametros estimados: φ(0) ˆ = θ(0) ˆ + ˆ θ(1) φ(0)T θ(0) . c+φ(0)T φ(0) y(1) - Incremento de ´ındice: k = k + 1 Si k < N repetir Proceso. Si k = N Fin.
Tabla 3.3:
−
Resumen del algoritmo de identificaci´ on de proyecci´ on.
En la figura 3.5 se destaca el hecho que cuando el vector de par´ ametros estimados y el regresor son perpendiculares, la velocidad del algoritmo de proyecci´on aumenta. Al algoritmo de identificaci´on que aprovecha la observaci´on anterior se le conoce como algoritmo de proyecci´on ortogonal. A esto se refiere la pr´oxima secci´on.
3.3.2.
Algoritmo de Proyecci´ on Ortogonal
Auxili´ andose de la interpretaci´ on geom´etrica del algoritmo de proyecci´on, figura 3.5 se puede notar que en la actualizaci´ on del vector de par´ ametros que se realiza de E a F se acelera la convergencia del vector de par´ ametros estimados, lo anterior debido a que el regresor F es casi perpendicular al regresor en E . Esto indica que puede obtenerse un algoritmo m´ as r´apido si en vez de utilizar el regresor actual, se utiliza el componente del regresor que es perpendicular al regresor del momento anterior. Para aprovechar la observaci´on anterior se procede de la manera siguiente. Se inicia el algoritmo de igual forma que en el caso normal, esto es: ˆ = θ(0) ˆ + θ(1)
φ(0) y(1) φ(0)T φ(0)
ˆ − φ(0)T θ(0)
k = 1,
(3.15)
En la iteraci´on que sigue no se utiliza φ(1), en vez de esto se calcula el componente de φ(1) que es perpendicular a φ(0): φ(0) φ(0)φ(0)T T φ(1) φ(0) φ(1) = I φ(1) = P (0)φ(1) (3.16) φ(0)T φ(0) φ(0)T φ(0)
−
−
aqu´ı lo que se hace es eliminar de φ(1) la proyecci´on de φ(1) sobre φ(0). Notar que P (0) es una matriz sim´etrica y nilpotente (P (0)2 = P (0)). Aplicando otra vez el algoritmo se proyecci´on se obtiene: ˆ = θ(1) ˆ + θ(2)
P (0)φ(1) y(2) φ(1)T P (0)φ(1)
ˆ − φ(1)T θ(1)
k = 2,
(3.17)
Ahora se debe determinar la componente de φ(2) que es perpendicular a P (0)φ(1), para esto basta con tomar la matriz P (0) que es una matriz de cambio de base, y en este nuevo marco de referencia, la componente de φ(2) que se necesita es: P (0)φ(2)
−
P (0)φ(1) φ(1)T P (0)φ(2) = P (0) φ(1)T P (0)φ(1)
−
(3.18)
k = 3,
(3.19)
P (0)φ(1)φ(1)T P (0) φ(2) = P (1)φ(2) φ(1)T P (0)φ(1)
Se aplica el algoritmo se proyecci´on: ˆ = θ(2) ˆ + θ(3)
P (1)φ(2) y(3) φ(2)T P (1)φ(2) – JMFA –
ˆ − φ(2)T θ(2)
55
3.3. M´etodos de Identificaci´on
Cap´ıtulo 3. Identificaci´on de Sistemas
La direcci´on para la actualizaci´on del vector de par´ ametros en la nueva base P (2) es:
P (1)
−
P (1)φ(2)φ(2)T P (1) φ(3) = P (2)φ(3) φ(2)T P (1)φ(2)
(3.20)
ˆ y con P (2)φ(3) se vuelve a aplicar el algoritmo de proyecci´on para calcular θ(4) En resumen: Algoritmo de proyecci´ on ortogonal: De lo anterior, el algoritmo de proyecci´on ortogonal se puede generalizar de la forma: ˆ ˆ θ(k) = θ(k
− 2)φ(k − 1) − 1) + c + φ(kP (k − 1)T P (k − 2)φ(k − 1)
en donde: P (k
− 1) =
P (k
− 2) −
y(k)
ˆ − 1) − φ(k − 1)T θ(k
P (k 2)φ(k 1)φ(k 1)T P (k 2) φ(k c + φ(k 1)T P (k 2)φ(k 1)
−
−
−
− −
−
−
k
≥ 1,
(3.21)
− 1),
(3.22)
siendo la matriz P ( 1) = I y la constante c > 0 es para evitar que la expresi´on en el denominador sea igual acero.
−
En el ejemplo 3.5 se aplica el algoritmo de proyecci´on ortogonal para la identificaci´on de la velocidad de un motor de cc.
Ejemplo 3.5 Los utilizados en el algoritmo son: tiempo de muestreo T s = 0.005s; c = 0.001, la se˜ nal de entrada es: u(k) = sen(2π(k 1)T s ) + sen(20π(k 1)T s ). El entrenamiento se realiza durante 2 seg. En la figura 3.8 se resumen los resultados de este algoritmo.
−
−
Algoritmo de Proyección Ortogonal: Parámetros
12
Algoritmo de Ortogonal: Errores 20
10.6074 10
−20
8
0
0.2
0.4
0.6
0.8
1
1.2
1.4 1.6 1.8 ep1=6.0887e−006
2
0
0.2
0.4
0.6
0.8
1
1.2
1.4 1.6 1.8 ep2=−2.5517e−006
2
0
0.2
0.4
0.6
0.8
1
1.2
1.4 1.6 1.8 2 ep34=−7.2727e−005
0
0.2
0.4
0.6
0.8
1 (b)
1.2
1.4
1 0 −1
6
1 0 −1
4 2 0.70365 −0.2958
0 −2
e=−3.9865e−005
0
0
0.2
0.4
0.6
0.8
1 (a)
1.2
1.4
1.6
1 0 −1
1.8 s
2
1.6
1.8 s
2
Operaci´ on del algoritmo de proyecci´ on ortogonal. a) Evoluci´ on de los par´ametros. b) Errores. Error de 3 T ˆ salida: e = ω(k) φ(k 1) θ(k 1); error relativo del par´ametro 1: ep1 = θ1 (k)+295.803×10 ; error relativo del −295.803×10 3 Figura 3.8:
−
−
−
−
−
3
−
θ
3
−
(k)−10607.511×10
par´ametro 2: ep2 = θ1 (k)−703.648×10 ; error relativo del par´ametro 3 y 4: ep3,4 = 3,4 10607.511×10 3 703.648×10 3 ................................................................................................................. −
−
En el ejemplo 3.5 se nota que el algoritmo de proyecci´on ortogonal tiene una velocidad de convergencia mayor a la mostrada por el algoritmo de proyecci´on, pero esto tiene la desventaja de que lo hace m´as sensible al ruido en los datos. Un caso intermedio entre estos dos algoritmos de identificaci´on es el m´etodo por m´ınimos cuadrados. A esto se refiere la pr´oxima secci´on. 56
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.3. M´etodos de Identificaci´on
Inicializaci´ on : ˆ - Vector de par´ametros estimados: θ(0). - Matriz : P ( 1) = I Matriz Identidad. - Constante para evitar divisi´on entre cero : c > 0. - N´ umero de iteraciones : N .
−
k=1 Proceso: - Actualizaci´on del vector de par´ametros estimados: P (−1)φ(0) ˆ = θ(0) ˆ + ˆ θ(1) φ(0)T θ(0) . c+φ(0)T P (−1)φ(0) y(1) - Actualizaci´on de la matriz P : T P (−1) P (0) = P ( 1) P (−1)φ(0)φ(0) T c+φ(0) P (−1)φ(0) - Incremento de ´ındice: k = k + 1 Si k < N repetir Proceso. Si k = N Fin.
−
− −
Resumen del algoritmo de identificaci´ on de proyecci´ on ortogonal.
Tabla 3.4:
3.3.3.
Algoritmo de M´ınimos Cuadrados
Este algoritmo considera a y(k) = φ(k 1)T θˆ como una ecuaci´on l´ıneal donde la variable a determinar es el vector ˆ a medida que k se va incrementado se forma un sistema de 1, 2, . . ., N ecuaciones, y en cada paso de par´ametros θ, ˆ Cada uno de estos sistemas de ecuaciones se resuelven se va calculando una actualizaci´on del vector de par´ametros θ. ˆ encontrando el valor de θ que minimiza la funci´on escalar:
−
k
1 J (k) = y(r) 2 r=1
T ˆ
− φ(r − 1)
θ(k)
2
ˆ + θ(k)
−
ˆ θ(0)
T
ˆ θ(k)
P o−1
−
ˆ θ(0) ,
(3.23)
ˆ ˆ es el estimado inicial de este en donde θ(k) es el vector de par´ ametros que es soluci´on del sistema de k ecuaciones; θ(0) ˆ vector; P o es una matriz que pondera la calidad de la estimaci´on inical θ(0). El procedimiento que se seguira para deducir la ecuaci´on recurrente de la actualizaci´on de los pesos inicia encontrando la soluci´on para k = 1, 2, 3 para despu´es generalizar para toda k. Si k = 1: J (1) =
1 y(1) 2
ˆ − φ(0)T θ(1)
2
ˆ + θ(1)
ˆ − θ(0)
T
ˆ P o−1 θ(1)
ˆ − θ(0)
ˆ para minimizar se calcula la derivada con respecto a θ(1) y se hace igual a cero: 0 =
−φ(0)
ˆ despejando θ(1):
y(1)
ˆ − φ(0)T θ(1)
ˆ θ(1) = P o−1 + φ(0)φ(0)T
−1
ˆ + P o−1 θ(1)
ˆ + P o−1 θ(0)
(3.24)
,
(3.25)
φ(0)y(1) ,
(3.26)
ˆ ˆ + φ(0)y(1) , θ(1) = P (0) P o−1 θ(0) en donde:
ˆ − θ(0)
,
P (0)−1 = P o−1 + φ(0)φ(0)T ,
(3.27)
(3.28)
de lo anterio se prueba que: ˆ = P −1 θ(0) ˆ + φ(0)φ(0)T θ(0), ˆ P (0)−1 θ(0) o – JMFA –
(3.29) 57
3.3. M´etodos de Identificaci´on
Cap´ıtulo 3. Identificaci´on de Sistemas
sustituyendo (3.29) en (3.27) y reordenando:
ˆ ˆ θ(1) = P (0) P (0)−1 θ(0)
T ˆ
φ(0)φ(0) θ(0) + φ(0)y(1) ,
(3.30)
(3.31)
− −
ˆ ˆ + P (0)φ(0) y(1) θ(1) = θ(0)
ˆ φ(0)T θ(0) .
Para el caso k = 2: J (2) =
1 2
2
y(r)
r=1
ˆ − φ(r − 1)T θ(2)
2
ˆ + θ(2)
ˆ − θ(0)
T
ˆ P o−1 θ(2)
ˆ − θ(0)
,
(3.32)
ˆ se calcula la derivada con respecto a θ(1) y se hace igual a cero: 2
0=
−
φ(r
r=1
− 1)
y(r)
ˆ − φ(r − 1)T θ(2)
ˆ + P o−1 θ(2)
ˆ − θ(0)
,
(3.33)
ˆ despejando θ(2):
−1
2
ˆ θ(2) = P o−1 +
φ(r
r=1
ˆ θ(2) = P (1) en donde:
− 1)φ(r − 1)T
ˆ + P o−1 θ(0)
ˆ + φ(0)y(1) + φ(1)y(2) , P o−1 θ(0)
φ(0)y(1) + φ(1)y(2) ,
(3.34) (3.35)
2
−1
P (1)
=
P o−1
+
φ(r
r=1
− 1)φ(r − 1)T ,
(3.36)
= P (0)−1 + φ(1)φ(1)T ,
(3.37)
se puede probar que: ˆ + φ(0)y(1) = P (1)−1 θ(1) ˆ ˆ P o−1 θ(0) φ(1)φ(1)T θ(1), ˆ ˆ agrupando para θ(1) = P (1)−1 φ(1)φ(1)T θ(1) ˆ usando (3.37) = P (0)−1 θ(1)
−
−
ˆ + φ(0) y(1) = P (0)−1 θ(0)
multiplicando (3.31) por P (0)−1
(3.38)
(3.39) (3.40)
ˆ − φ(0)T θ(0)
ˆ + φ(0)y(1), sustituyendo P (0)−1 seg´ un (3.29) = P o−1 θ(0)
(3.41) (3.42)
sustituyendo (3.38) en (3.35) y reordenando:
ˆ ˆ θ(2) = P (1) P (1)−1 θ(1) ˆ ˆ + P (1)φ(1) θ(2) = θ(1)
ˆ + φ(1)y(2) − φ(1)φ(1)T θ(1) ˆ y(2) − φ(1)T θ(1) .
,
(3.43) (3.44)
Para el caso k = 3: 1 J (3) = 2
3
y(r)
r=1
− φ(r − 1)
T ˆ
θ(3)
2
ˆ + θ(3)
−
ˆ θ(0)
T
P o−1
ˆ θ(3)
ˆ θ(0) ,
(3.45)
(3.46)
−
ˆ se calcula la derivada con respecto a θ(1) y se hace igual a cero: 3
0=
58
−
r=1
φ(r
− 1)
y(r)
ˆ − φ(r − 1)T θ(3) – JMFA –
ˆ + P o−1 θ(3)
ˆ − θ(0)
,
Cap´ıtulo 3. Identificaci´on de Sistemas
3.3. M´etodos de Identificaci´on
ˆ despejando θ(3):
−
−1
3
ˆ θ(3) = P o−1 +
φ(r
1)φ(r
r=1
φ(r
r=1
ˆ + φ(0)y(1) + φ(1)y(2) + φ(2)y(3) , P o−1 θ(0)
(3.47)
− 1)y(r)
,
(3.48)
P o−1
− 1)T
3
ˆ ˆ + θ(3) = P (2) P o−1 θ(0)
en donde: 3
−1
P (2)
=
+
φ(r
r=1
−1
− 1)φ(r − 1)T ,
(3.49)
+ φ(2)φ(2)T ,
(3.50)
ˆ − φ(2)φ(2)T θ(2), ˆ − 1)y(r) = P (2)−1θ(2)
(3.51)
= P (1) se prueba la expresi´on: 2
ˆ + P o−1 θ(0)
r=1
φ(r
ˆ agrupando θ(2) usando (3.50)
multiplicando (3.44) P (1)−1 ˆ agrupando θ(1) usando (3.38)
−
ˆ = P (2)−1 φ(2)φ(2)T θ(2), ˆ = P (1)−1 θ(2),
(3.52)
ˆ + φ(1)y(2) = P (1)−1 θ(1)
(3.54)
−
(3.53)
ˆ φ(1)φ(1)T θ(1),
ˆ + φ(1)y(2), = P (1)−1 + φ(1)φ(1)T θ(1) =
2
ˆ + P o−1 θ(0)
φ(r
r=1
− 1)y(r),
(3.55) (3.56)
sustituyendo (3.51) en (3.48) y reordenando:
ˆ ˆ θ(3) = P (2) P (2)−1 θ(2) ˆ ˆ + P (2)φ(2) θ(3) = θ(2)
ˆ + φ(2)y(3) − φ(2)φ(2)T θ(2) ˆ y(3) − φ(2)T θ(2) .
,
(3.57) (3.58)
A partir de (3.31), (3.44) y (3.58) se puede generalizar esta para toda k, esto es: ˆ ˆ θ(k) = θ(k en donde P (k
− 1) + P (k − 1)φ(k − 1)
− 1) es: P (k
para todo k
y(k)
ˆ − 1) − φ(k − 1)T θ(k
− 1)−1 = P (k − 2)−1 + φ(k − 1)φ(k − 1)T
.
(3.59)
(3.60)
≥ 1, y donde P (−1) = P o es una matriz definida positiva.
El algoritmo de m´ınimos cuadrados est´ a definido por las ecuaciones (3.59) y (3.60). Pero en esta forma resulta computacionalmente dif´ıcil, debido a que para calcular la matriz P (k 1) hay que invertir dos matrices (una de P (k 2) y otra de P (k 1)). Afortunadamente con la ayuda del Lema 3.2.1 de inversi´on de matrices se elimina la necesidad de invertir matrices. El Lema 3.2.1 es el siguiente:
−
−
−
Lema 3.2.1 Inversi´ on de Matrices: sea A, B matrices de dimensi´ on n n no singulares; c es un vector de dimensi´ on n y k > 0 es una constante positiva. Si las inversas de B y A se relacionan de la forma:
×
B −1 = A−1 + kccT ,
(3.61)
entonces se cumple lo siguiente: T
B=A
− k 1 +AcckcT AAc , – JMFA –
(3.62) 59
3.3. M´etodos de Identificaci´on
Cap´ıtulo 3. Identificaci´on de Sistemas
adem´as: Ac , 1 + kcT Ac Bc Ac = . 1 kcT Bc
Bc =
(3.63) (3.64)
−
Identificando a P (k de:
− 1) = B, P (k − 2) = A, φ(k − 1) = c y k = 1, se tiene que la matriz P (k − 1) puede obtenerse P (k − 2)φ(k − 1)φT (k − 1)P (k − 2) − − − P (k 1) = P (k 2) 1 + φ(k − 1)T P (k − 1)φ(k − 1)
(3.65)
esto elimina la necesidad de invertir matrices lo que hace al algoritmo computacionalmente m´as econ´omico. En la forma actual se debe primero calcular la matriz P (k 1) por medio de (3.65) y despu´es usar (3.59) para actualizar el vector de par´ ametros. Para cambiar este orden se utiliza la propiedad (3.63).
−
Algoritmo de m´ınimos cuadrados: Sea un sistema modelado de la forma: y(k) = φ(k 1)θ ∗ en donde θ∗ es el ˆ ˆ vector de par´ ametros del sistema. Se propone un modelo de identifiaci´on: yˆ(k) = φ(k 1)θ(k) en donde θ(k) es ∗ ˆ una aproximaci´on de θ . El algoritmo de identificaci´on por m´ınimos cuadrados actualiza el vector de pesos θ(k) por medio de:
− −
ˆ ˆ θ(k) = θ(k
− 2)φ(k − 1) − 1) + 1 + φ(kP (k − 1)T P (k − 2)φ(k − 1)
donde: P (k
− 1) = P (k − 2) −
P (k 2)φ(k 1)φ(k 1 + φ(k 1)T P (k
−
−
−
y(k)
ˆ − 1) − φ(k − 1)θ(k
− 1)T P (k − 2) − 2)φ(k − 1)
(3.66)
(3.67)
P ( 1) = P o es una matriz definida positiva.
−
Se aplica el algoritmo de m´ınimos cuadrados para obtener un modelo de la velocidad del motor de cc. (ap´endice C).
Ejemplo 3.6 El par´ametro P o es la matriz identidad de 4 4; el tiempo de muestreo es T s = 0.005. El algoritmo opera durante 2s. El programa utilizado se puede ver en ap´endice B.5. Las gr´aficas de los resultados se presentan en la figura 3.9.
×
En la figura 3.9.a se nota que la trayectoria de actualizaci´on de los par´ametros es m´as suave, y requiere un tiempo m´ as grande para converger, pero este algoritmo es menos sensible a las perturbaciones.
3.3.4.
Exitaci´ on Persistente
En los algoritmos de identificaci´on anteriores se basan en la suposici´on que la respuesta del sistema puede modelarse, dentro de cierta zona de operaci´on, por una combinaci´on l´ıneal de las respuestas y entradas pasadas, y de esta forma, el problema de identificaci´on se restringe a encontrar, con esta informaci´on, los par´ametros de la combinaci´on l´ıneal, es decir, se convierte en un problema de naturaleza din´amico en uno est´atico. Si se considera que la estructura y el orden del sistema son dos caracter´ısticas que sobre ´el se pueden suponer, la posibilidad de que en los algoritmos de identificaci´on anteriores los par´ ametros converjan a sus valores verdaderos depende de la calidad de la informaci´on de entrada y de la respuesta del sistema que se dispongan. A la propiedad sobre la informaci´on de entrada (y de manera indirecta sobre la informaci´on de salida) que garantiza la convergencia de los par´ ametros en los algoritmos de identificaci´on se le conoce como: Exitaci´ on Persistente . 60
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.3. M´etodos de Identificaci´on
Algoritmo de LMS: Parámetros
12
Algoritmo de LMS: Errores 10 0 −10
10.5224 10 8
0
0.2
0.4
0.6
0.8
1
1.2
1.4 1.6 1.8 ep1=0.010223
2
0
0.2
0.4
0.6
0.8
1
1.2
1.4 1.6 1.8 ep2=−0.0057524
2
0
0.2
0.4
0.6
0.8
1
1.2
1.4 1.6 1.8 ep34=−0.085073
2
0
0.2
0.4
0.6
0.8
1 (b)
1.2
1.4
2
2 0 −2
6
1 0 −1
4 2 0.6979 −0.28558
0 −2
e=−0.0010918
0
0.2
0.4
0.6
0.8
1 (a)
1.2
1.4
1.6
1.8 s
1 0 −1 2
1.6
1.8 s
Operaci´ on del algoritmo de m´ınimos cuadrados. a) evoluci´ on de los par´ametros. b) Errores. Error de 3 T ˆ salida: e = ω(k) φ(k 1) θ(k 1); error relativo del par´ametro 1: ep1 = θ1 (k)+295.803×10 ; error relativo del −295.803×10 3 Figura 3.9:
−
−
−
−
−
3
−
θ
3
−
(k)−10607.511×10
par´ametro 2: ep2 = θ1 (k)−703.648×10 ; error relativo del par´ametro 3 y 4: ep3,4 = 3,4 10607.511×10 3 703.648×10 3 ................................................................................................................. −
−
Inicializaci´ on : ˆ - Vector de par´ametros estimados: θ(0). - Matriz : P ( 1) cualquier matriz definida positiva. - N´umero de iteraciones : N .
−
k=1 Proceso: - Actualizaci´on del vector de par´ametros estimados: P (−1)φ(0) ˆ = θ(0) ˆ + ˆ θ(1) φ(0)T θ(0) . 1+φ(0)T P (−1)φ(0) y(1) - Actualizaci´on de la matriz P : T P (−1) P (0) = P ( 1) P (−1)φ(0)φ(0) 1+φ(0)T P (−1)φ(0) - Incremento de ´ındice: k = k + 1 Si k < N repetir Proceso. Si k = N Fin.
−
− −
Tabla 3.5:
Resumen del algoritmo de identificaci´ on de m´ınimos cuadrados.
Por ejemplo, para el algoritmo de proyecci´on ortogonal si n es el n´umero de par´ ametros en el modelo, es posible probar que el algoritmo de proyecci´on ortogonal converge en m pasos si se garantiza la siguiente condici´on de rango: rango[φ(1), . . . , φ(m)] = n, donde n = dim θo .
{ }
(3.68) (3.69)
Lo anterior se interpreta como una condici´on para que el algoritmo de proyecci´on ortogonal converja en sus par´ametros. Esta propiedad indica que el regresor debe expandir el espacio de param´ etros. La propiedad de convergencia anterior impone la condiciones sobre el vector de regresi´on, que incluye a se˜nales entrada y de salida del sistema. Las condiciones de exitaci´on persistente se suelen atribuir ´unicamente a la se˜nal de entrada. Aqu´ı no se extiende m´as este tema, remitirse a la referenicia [38] para mayores detalles. Es suficiente para este trabajo hacer conciente al lector de esta caracter´ıstica en los algortimos de identificaci´on.
– JMFA –
61
3.3. M´etodos de Identificaci´on
3.3.5.
Cap´ıtulo 3. Identificaci´on de Sistemas
Algoritmos de Identificaci´ on Cl´ asicos y Redes Neuronales
No es dif´ıcil hallar una relaci´on entre las redes neuronales y los algoritmos de identificaci´on presentados. En los modelos de identificaci´on anteriores, el problema se reduce a determinar un algoritmo que permita ir paso a paso actualizando los par´ametros del modelo con base al error entre la salida del sistema y la respuesta del modelo. La estrutura del modelo es lineal en los par´ametros, de forma que la salida del modelo es la combinaci´on lineal de la entrada del modelo ponderada por los par´ ametros estimados, ver figura 3.10. Si se considera que el regresor del sistema, φ(k 1), como la entrada de una red neuronal, donde los par´ ametros son pesos, y su combinaci´on es salida estimada del modelo donde el algoritmo de ajuste de los pesos es alguno de los presentados para los problemas de identificaci´on, se tiene una equivalencia entre las estructuras de los algoritmos de identificaci´ on y las redes neuronales. As´ı que la estructura de los modelos de identificaci´on son una versi´on simplificada de una red neuronal, ya que estos modelos se l´ımitan a los problemas que son lineales en los par´ametros.
−
En figura 3.10 se ilustra el esquema de identificaci´on. El flujo de informaci´on durante la operaci´on del algoritmo es en serie-paralelo , debido a que el modelo de identificaci´on recibe como informaci´on la salida y la entrada del sistema.
q-1
y(k-1) y(k-n1) u(k)
Sistema q-1
Redes neuronales en los algoritmos de identificaci´ on. Para los algoritmos de identificaci´on cl´asicos, si se considera que el regresor del sistema, φ(k 1) como la entrada de una red neuronal, donde los par´ametros son los pesos que los ponderan; sumando al final para obtener la salida estimada y el algoritmo de correcci´on de los pesos es alguno de los presentados, se tiene una equivalencia entre los algoritmos de identificaci´on y redes neuronales. .................................. Figura 3.10:
y(k) Modelo de Identificación ^
a1
−
-1
q
^
an1
-1
q u(k-n2 -1)
y(k)
^ ^ µ
y(k)
Σ
-Σ
e(k)
^
b1
Á(k-1) ^
bn2
e(k) Algoritmo de Identificación Á(k-1)
A diferencia de los objetivos de los algoritmos de identificaci´on presentados, que son modelos de identificaci´on param´etricos; los algoritmos con redes neuronales suelen utilizarse como cajas negras que ajust´an sus pesos para aproximar funciones, o relaciones entre variables desde el punto de vista entrada-salida, de manera que en los esquemas de identificaci´ on las redes neuronales sustituyen mapeos no lineales entre las variables del sistema [8]. En la pr´oxima secci´on se presenta la aplicaci´on de las redes neuronales en la identificaci´on de sistemas
62
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.4.
3.4. Identificaci´on de Sistema Usando Redes Neuronales Est´aticas
Identificaci´ on de Sistema Usando Redes Neuronales Est´ aticas
En esta secci´on se presentan algunos modelos de identificaci´on de sistemas din´amicos que utilizan redes neuronales. Como se ha visto en la secci´on 3.1. Las redes neronales est´aticas son capaces de aproximar mapeos no lineales. Se utiliza esta caracter´ıstica para modelar sistemas din´amicos.
3.4.1.
Sistemas Lineales
Los algoritmos de identificaci´on vistos proponen modelos lineales en los par´ametros. Estos par´ametros son desconocidos por lo que resulta dif´ıcil saber cuando el algoritmo ha logrado evaluarlos con precisi´on. En la figura 3.11 se propone sustituir el modelo de identificaci´on por una red neuronal, aqu´ı los par´ ametros son los pesos de la red. Los pesos de la red ya no tendr´an una relaci´on directa con los par´ ametros del sistema. Lo que se requiere es que el algoritmo de ajuste de los pesos permita que la red neuronal encuentre la relaci´on entre la entrada y salida del sistema. Lo anterior se basa en la proposici´on 3.1:
Proposici´ on 3.1 Sea un mapeo y(k) = F (x(k)); donde x W 1 y W 2 para una la red neuronal:
∈ X y y ∈ Y . Siempre es posible hallar un juego de pesos
yˆ(k) = W 2 Γ(W 1 x(k)),
(3.70)
de forma tal: 1 2 [y(k) yˆ(k)] < ǫ, 2 en donde ǫ es tan peque˜ no como se desee; Γ es una funci´ on no lineal.
(3.71)
−
Para abreviar se trata el caso para sistemas de una sola entrada-una sola salida ; pero todos los resultados pueden extenderse para el caso de m´ ultiples entradas y salidas .
q-1
y(k-1)
Sistema Lineal a1 Σ
y(k-n1) u(k)
y(k)
Red Neuronal
q-1
an1
y(k)
Σ
-1
q
bd
-
Σ
e(k)
W2 q-1 u(k-n 2-1)
W1
b-n2-1
Identificaci´ on de un sistema lineal. Se utiliza una red neuronal como modelo de identificaci´on. ............................................. Figura 3.11:
y(k)
^
e(k) Algoritmo de Entrenamiento
Un sistema lineal discreto de una entrada una salida puede siempre representarse como una combinacin lineal de las entradas y salidas del pasado, esto es: y(k) = a1 y(k
− 1) + . . . + any(k − n) + b1u(k − 1) + . . . + b1+mu(k − 1 − m),
(3.72)
en donde n, m son constantes enteras fijas. Al usar una red neuronal para identificar al anterior sistema lineal, se utiliza la siguiente red neuronal: yˆ(k) = W 2 Γ(W 1 ; y(k
− 1), . . . , y(k − n), u(k − 1), . . . , u(k − 1 − m)),
(3.73)
en donde W 1 y W 2 son los pesos de la red y que deben ajustarse para reducir la diferencia entre las salidas del sistema y la red neuronal. En el ejemplo (3.7) se utiliza una red neuronal para identificar el sistema lineal que representa la velocidad de un motor de corriente continua, ver secci´on C. – JMFA –
63
3.4. Identificaci´on de Sistema Usando Redes Neuronales Est´a ticas
Cap´ıtulo 3. Identificaci´ on de Sistemas
Ejemplo 3.7 Se utiliza una red neuronal de la forma (3.70) para la identificaci´ on del modelo de velocidad de un motor de corriente continua. La arquitectura de la red es: cuatro entradas, diez nodos ocultos y una salida 4, 10, 1 . Los ´ındices de aprendizaje son: η = 7 10−5 ; α = 10−5 . La se˜ nal de entrada durante la fase de entrenamiento es:
{
×
}
u(k) = cos(πkT s ) + 2cos(4πkT s) + 0.5sin(20πkT s).
(3.74)
La red neuronal se entrena durante 350 ´epocas donde cada una de ´estas consiste en los datos de la simulaci´ on de la planta durante cinco segundos, con un tiempo de muestreo de: T s = 0.005 s. En la secci´ on B.6 se puede ver el programa utilizado. Identificación RN: Principio del entrenamiento
150
c e s / d a r
100
100
50
50 c e s / d a r
0
0
−50
−50
−100
−100
−150
0
0.5
1
1.5
2
2.5 (a)
3
3.5
4
Identificación RN: Segunda época
150
4.5 s
5
−150
0
0.5
1
1.5
2
2.5 (b)
3
3.5
4
4.5 s
5
Identificación RN: Fin de entrenamiento−época 350
150 100 50 c e s / d a r
0 −50 −100 −150
0
0.5
1
1.5
2
2.5 (c)
3
3.5
4
4.5
5 s
Identificaci´ on de un sistema lineal (entrenamiento). a) Comparaci´ on de la respuesta del sistema y la RN el principio del entrenamiento. b) Comportamiento en la segunda ´epoca. c) Comportamiento en la ´ultima ´epoca de entrenamiento ................................................................................................................. Figura 3.12:
En la figura 3.12 se presentan algunas gr´aficas del proceso de entrenamiento de la red neuronal. En las primeras tres gr´aficas se observa la evoluci´ on del sistema en la fase de entrenamiento. En la figura 3.13 est´a la operaci´ on de la red neuronal en la fase de generalizaci´ on, esto es, una vez terminado el entrenamiento se prueba si la red neuronal ha asimilado la relaci´ on que hay entre las variables de entrada y salida. Para esto se utiliza como se˜ nal de prueba:
u(k) =
64
0.1 sen(4πkT s ) 0.05 0 0.1 cos(2πkT s )
para 0< para 0.5 < para 0.75 < para 1<
– JMFA –
kT s kT s kT s kT s
≤ 0.5, ≤ 0.75, ≤ 1, ≤ 2.
Cap´ıtulo 3. Identificaci´on de Sistemas
3.4. Identificaci´on de Sistema Usando Redes Neuronales Est´aticas
Identificación RN: Generalización (Lazo abierto)
5 4
4
3
3
2
2
1
c e s / d a r
c e s / d a r
0
1 0
−1
−1
−2
−2
−3
−3
−4
−4
−5
0
0.2
0.4
0.6
0.8
1 (a)
1.2
1.4
1.6
Identificación RN: Generalización (Lazo cerrado)
5
1.8
2
−5
0
0.2
0.4
0.6
0.8
s
1 (b)
1.2
1.4
1.6
1.8
2 s
Identificaci´ on de un sistema lineal (generalizaci´ on). a) Comparaci´ on de las respuestas en la fase de generalizaci´on entre el sistema (l´ınea a trazos) y la RN en lazo abierto (l´ınea continua). b) Lo mismo, pero la RN operando en lazo cerrado. ................................................................................................................. Figura 3.13:
En la figura 3.13.a se muestra el comportamiento de la red en la fase de generalizaci´on en lazo abierto, esto es, se utilizan los retardos de la salida del modelo del motor, y(k i) , en la entrada de la red neuronal. En lazo abierto, la red neuronal, yˆ, muestra un seguimiento muy cercano a la respuesta del modelo, y.–Identificaci´ on serie-paralelo [10].
−
En la figura 3.13.b se muestra la respuesta de la red en lazo cerrado, es decir, cuando se utilizan los retardos de la salida de la red, yˆ, en la entrada de la red, de esta forma, no se depende del modelo del motor. Para que la red neuronal muestre un seguimiento aceptable son necesarias las 350 ´epocas de entrenamiento. Notar que la red neuronal operando en lazo cerrado se transforma en una red neuronal recurrente, ya que su salida depende de su respuesta en el pasado –Identificaci´ on paralela [10]. Debido a que una red neuronal puede aproximar la relaci´on no lineal entre variables se extiende su aplicaci´on a los casos de identificaci´on de sistemas no lineales de forma directa.
3.4.2.
Sistemas No Lineales
En los algoritmos de identificaci´on cl´ asicos se supone que el sistema a identificar es l´ıneal, o al menos l´ıneal en los par´ ametros. Por lo que dejan de ser aplicables en problemas donde el sistema se representa en forma general como un sistema no lineal: y(k) = F [y(k
− 1), . . . , y(k − n); u(k), . . . , u(k − m)] .
(3.75)
Por el contrario, las redes neuronales se pueden aun seguir aplicando, debido a que la proposici´on (3.1) no se l´ımita al caso lineal. Con el fin de utilizar las redes neuronales para la identificaci´on de sistemas en la referencia [10] se clasifican los sistemas en cuatro modelos. Estos cuatro modelos de identificaci´on dividen a los sistemas no lineales para utilizar la informaci´on estructural que se tenga de ellos. Los modelos son los siguientes: Modelo I:
n−1
y(k + 1) =
i=0
αi y(k
− i) + G [u(k), . . . , u(k − m)] , – JMFA –
(3.76)
65
3.4. Identificaci´on de Sistema Usando Redes Neuronales Est´a ticas Modelo II:
Cap´ıtulo 3. Identificaci´ on de Sistemas
m
y(k + 1) = F [y(k), . . . , y(k
− n + 1)] +
β i u(k
i=0
− i),
(3.77)
Modelo III: y(k + 1) = F [y(k), . . . , y(k
− n + 1)] + G [u(k), . . . , u(k − m)] ,
(3.78)
y(k + 1) = F [y(k), . . . , y(k
− n + 1); u(k), . . . , u(k − m)] ,
(3.79)
Modelo IV: en donde las funciones no lineales F y G se suponen desconocidas pero suaves (que tiene al menos primera derivada continua); los enteros n, m y los coeficientes αi , β i se presumen conocidos. [10] se propone remplazar las funciones no lineales desconocidas por redes neuronales est´aticas, ver figura 1.13. La red neuronal se entrena utilizando el algoritmo de retropropagaci´on est´atico. La configuraci´on del esquema de identificaci´on es serie-palalelo. En los modelos I y II, con una configuraci´on de entrenamiento en paralelo, la red neuronal se entrena con el algoritmo de retropropagaci´on din´amico, que consiste en retropropagar los gradientes a trav´ es de las funciones de transferencia de la parte lineal que es conocida.
Ejemplo 3.8 Este ejemplo corresponde al modelo de identificaci´ on del tipo IV, ver referencia [10], es decir, que se propone que una sola red neuronal para identificar el mapeo entre las variables del sistema no lineal, este sistema no lineal es el siguiente: y p(k)y p(k
y p (k + 1) =
− 1)y p(k − 2)u(k − 1) [y p(k − 2) − 1] , 1 + y p (k − 2)2 + y p(k − 1)2
(3.80)
la se˜ nal de entrada utilizada en la fase de entrenamiento es:
u(k) = 0.80 sen(2πk/250) + 0.3 cos(2πk/25). El entrenamiento consiste en simular el sistema durante 1000 iteraciones, repetido 30 veces (´epocas). La red neuronal tiene la siguiente configuraci´ on: 5, 10, 1 , los ´ındices de aprendizaje son: η, α = 0.04. En la figura 3.14 puede observarse la evoluci´ on del entrenamiento.
{
}
Identificación no lineal RN: Principio del entrenamiento
1.5 1
1
0.5
0.5
0
0
−0.5
−0.5
−1
−1
−1.5
0
100
200
300
400
500 (a)
600
700
800
900
Identificación no lineal RN: Fin del entrenamiento−época 30
1.5
1000
−1.5
0
100
200
300
400
500 (b)
600
700
800
900
1000
Identificaci´ on no lineal usando una RN Est´ atica. a) Principio de entrenamiento. b) Al final de 30 ´epocas de entrenamiento. (- -) Planta; (–) RN. ................................................................................................................. Figura 3.14:
Para probar la generalizaci´ on de la red neuronal se utiliza como se˜ nal de entrada:
u(k) =
66
−
0.5 sen(2πk/50) 0.5 0.5 0.4 cos(2πk/200)
para 0< k para 150 < k para 200 < k para 250 < k
– JMFA –
≤ 150, ≤ 200, ≤ 250, ≤ 600.
Cap´ıtulo 3. Identificaci´on de Sistemas
3.5. Identificaci´ on de Sistemas Usando Redes Neuronales Din´amicas
En la figura 3.15 se presenta la respuesta de la red neuronal en lazo cerrado.
Identificación no lineal RN: Generalización (Lazo cerrado)
1 0.8 0.6 0.4 0.2
Identificaci´ on no lineal usando una RN Est´ atica-Fase de generalizaci´ on. (- -) Planta; (—) RN. ........................................................ Figura 3.15:
0 −0.2 −0.4 −0.6 −0.8 −1
0
100
200
300
400
500
600
Los dos u ´ltimos ejemplos nuestran que una red neuronal de m´ultiples capas con el algoritmo de entrenamiento de retropropagaci´ on del error puede servir como modelo de identificaci´on para sistemas lineales y no lineales. El entrenamiento de la red neuronal se realiza en lazo abierto de manera que si el sistema identificado es estable, la operaci´on de la red no afecta su estabilidad. Al t´ermino del entrenamiento se utiliza la salida de la red para formar su entrada, es decir, que la red opera en lazo cerrado, en los ejemplos, la operaci´on de la red en lazo cerrado y con una se˜nal distinta a la usada en el entrenamiento, proporciona una buena aproximaci´on de la respuesta del sistema.
3.5.
Identificaci´ on de Sistemas Usando Redes Neuronales Din´ amicas
En la secci´on anterior las redes neuronales est´aticas se utilizaron para la identificaci´on de sistemas din´amicos. En estos esquemas de identificaci´on se utiliza la red neuronal para aproximar el mapeo no lineal entre las variables del sistema; la red neuronal se entrena en una configuraci´on serie-paralelo, esto significa que no se utilizan los retardos de la salida de la red como entradas; se usan los retardos de la salida de la planta, esto hace que la red neuronal ´unicamente necesite aproximar la relaci´on entre las variables. Al terminar el entrenamiento se prueba el modelo de identificaci´on con la red neuronal; para esto se utilizan los retardos de la salida de la red como parte de sus entradas —ya no tiene sentido utilizar la salida del sistema. —a esto se defini´o como operaci´ on en lazo cerrado, ver figura 3.16. Al operar la red neuronal en lazo cerrado se obtiene una red neuronal din´amica, debido a que la respuesta de la red ya no depende s´olo de las se˜nal de entrada, sino tambi´ en de la respuesta en el pasado. La red neuronal din´amica anterior, las l´ıneas de retroalimentaci´on se construyen externas a la red. Una de las primeras redes neuronales din´amicas que incluyen alg´un tipo de retroalimentaci´on interna es la red de Hopfield, en esta red neuronal se retroalimetan todas las se˜nales de la red, por esto se clasifica como un red neuronal completamente recurrente . Otro modelo de red neuronal din´amica que se utiliza para tareas de identificaci´on de sistemas es la red de Elman, esta red neuronal contiene nodos que realimentan las se˜nales de salida de una capa oculta, estos nodos son llamados de contexto, debido a que estos tienen la funci´on de que la red tome encuenta las salidas anteriores para evaluar la salida actual de los nodos en la capa oculta. De la estructura de una red neuronal est´atica y de su configuraci´on en lazo cerrado se puede obtener la estructura modelo para redes neuronales din´amicas. Una red neuronal est´atica est´a expresada de la siguiente forma: x(k) = W 2 Γ(W 1 u(k)), – JMFA –
(3.81) 67
3.5. Identificaci´on de Sistemas Usando Redes Neuronales Din´amicas
Cap´ıtulo 3. Identificaci´on de Sistemas
-1
z
-1
z
Red neuronal est´ atica en lazo cerrado. Al final del entrenamiento, se toma la salida de la red para generar los retardos de la entrada y la red opera en lazo cerrado. ........................................................ Figura 3.16:
^
u(k)
Σ
z-1
y(k)
W2
-1
z
W1
si se pone a esta red en lazo cerrado, y se divide el vector de entrada, u, en dos partes, una para las entradas independientes, y la otra para los retardos de las se˜nales de salida de la red, esto es: x(k) = W 2 Γ(W 1ii x(k
− 1) + W 1iu′(k)), (3.82) en donde u′ es un vector que integra a las se˜nales independientes; x(k − 1) es el vector que agrupa los retardos en la respuesta de la red neuronal; W 1 se divide en W 1i y W 1ii para separar los pesos que ponderan a u′ y x(k − 1). Pero para simplificar la notaci´on de (3.82) se propone:
x(k) = W 3 Γ [W 2 x(k
− 1) + W 1u(k)] ,
(3.83)
se pueden hallar semejanzas entre la ecuaci´on (3.83) y los modelos de red neuronal recurrente de Hopfield y Elman. Se propone aqu´ı agregar una capa m´as a la red neuronal (3.83), esto con el objetivo de que la soluci´on considere el caso de que la dimensi´on del vector x no corresponda a la salida requerida por el problema, o que hay un mapeo entre la variable x de salida y. Esta nueva capa en la red neuronal es: y(x) = W 5 Γ(W 4 x(k)),
(3.84)
entonces la red neuronal recurrente est´a representada por las expresiones: x(k) = W 3 Γ [W 2 x(k 1) + W 1 u(k)] , y(x) = W 5 Γ [W 4 x(k)] .
−
(3.85) (3.86)
El esquema general de esta red neuronal se presenta en la figura 3.17. Modelo general de una red neuronal recurrente. Al dividir el vector de entrada de la red neuronal en aquellos que dependen de los valores pasados de salida de la capa intermedia y de los que son independientes se puede obtener un modelo can´onico de una red neuronal recurrente. ............................................. Figura 3.17:
W1
+
Γ
W3
z-1
W4
Γ
W5
W2
Por lo visto en el cap´ıtulo 2 se puede obtener la ley de actualizaci´on de pesos de esta red, pero aqu´ı se proponen algunas simplificaciones para obtener una red neuronal que adem´ as de ser sencilla, su forma est´a muy relacionada con un sistema representado en variables de estado. La simplificaciones son: la funci´on de activaci´on dentro del lazo de interno de retroalimentaci´on de la red se sustituye por la funci´on identidad; a la matriz de pesos W 3 (notar que esta matriz es cuadrada) se le remplaza por una matriz unitaria. Para la segunda capa de la red se simplifica sustituyendo a la matriz de pesos W 4 por una matriz diagonal con 1 en sus componentes. La red neuronal queda de la forma: x(k) = Γ [W 2 x(k 1) + W 1 u(k)] , y(k) = Γ [W 5 z(k)] ,
−
68
– JMFA –
(3.87) (3.88)
Cap´ıtulo 3. Identificaci´on de Sistemas
3.5. Identificaci´ on de Sistemas Usando Redes Neuronales Din´amicas
esta red neuronal recurrente que se presenta en la figura 3.18. En la figura se pone agregar una funci´on de activaci´ on a la salida de la red. Modelo de red neuronal recurrente simplificada. Para hacer simplificar la obtenci´ o n del algoritmo de aprendizaje se proponen algunas simplificaciones del modelo con´onico de la red neuronal recurrente. ............................................. Figura 3.18:
W1
+
z-1
Γ
W5
Γ
W2
Las ecuaciones (3.87-3.87) realizando un cambio en la variable x, considerando la propiedad de linealidad del operador z y sustituyendo las literales de los pesos, se tiene la expresi´on: x(k + 1) z(k) s2 (k) y(k)
= = = =
Jx(k) + Bu(k), Γ [x(k)] , Cz (k), Γ s2 (k) ,
(3.89) (3.90) (3.91) (3.92)
que corresponde al modelo de red neuronal que se estudio en el cap´ıtulo 2. Al principio de este cap´ıtulo se establece que una red neuronal recurrente puede utilizarse para aproximar un map eo entre las variables. Ahora con la red neuronal recurrente se prueba que es capaz de aproximar un cierto tipo de sistemas din´amicos. La proposici´on 3.2 establece este hecho:
Proposici´ on 3.2 Considere un sistema no lineal estable definido por las ecuaciones: x(k + 1) = F [x(k); u(k)] , y(k) = H [x(k)] , en donde x Rn es el vector de estado; u vectores; F y G son mapeos suaves.
∈
∈ Rm; y ∈ R p; m,
(3.93) (3.94)
n, y p son enteros que definen la dimensi´ on de los
Es posible aproximar el sistema (3.93-3.94) a trav´es de una red neuronal de la forma: x ˆ(k + 1) = Γ [W 2 x ˆ(k) + W 1 u(k)] , yˆ(k) = W 5 Γ [W 4 x ˆ(k)] .
(3.95) (3.96)
Prueba: Por la propiedad de aproximaci´ on de funciones, teorema 3.1, el mapeo F se puede aproximar por: F [x(k), u(k)]
≃ W 3Γ [W 2 x(k) + W 1u(k)] ,
(3.97)
utilizando esta aproximaci´ on se tiene: x(k + 1) = W 3 Γ [W 2 x(k) + W 1 u(k)] ,
(3.98)
x ˆ(k) = Γ[W 2 x(k) + W 1 u(k)] ,
(3.99)
x(k + 1) = W 3 x ˆ(k),
(3.100)
se define:
por tanto:
sustituyendo (3.100) en (3.99), se tiene: x ˆ(k) = Γ[W 2 W 3 xˆ(k
− 1) + W 1u(k)] ,
(3.101)
el producto entre las matrices de pesos W 2 W 3 puede ser representado por una sola matriz, esta es, W 2 : x ˆ(k) = Γ[W 2 xˆ(k
− 1) + W 1u(k)] ,
– JMFA –
(3.102) 69
3.6. Identificaci´on de Sistemas Utilizando RNRE
Cap´ıtulo 3. Identificaci´on de Sistemas
Hasta aqu´ı se tiene la primera ecuaci´ on del sistema din´amico, esto es (3.95). Para la ecuaci´ on de salida (3.96), ´ unicamente se debe utilizar el teorema 3.1 para la sustituir el mapeo H por una aproximaci´ on l´ıneal: yˆ(k) = W 5 Γ [W 4 x ˆ(k)] .
(3.103)
Algo interesante en el modelo neuronal del sistema no lineal (3.93-3.94), es que el estado del sistema , x, y el estado de la red , x ˆ, no tiene que ser el mismo y, por supuesto, no es necesario que tengan la misma dimensi´on.
3.6.
Identificaci´ on de Sistemas Utilizando RNRE
La estructura de una Red Neuronal Recurrente Entrenable es un caso especial de la red neuronal din´amica que se utiliza en la propiedad 3.2. En esta secci´on se present´ an una serie de ejemplos de Identificaci´on utilizando RNRE. Los ejemplos ilustr´ an que el modelo de red y su ley de entrenamiento son adecuados para las tareas de identificaci´on de sistemas din´amicos.
3.6.1.
Identificaci´ on del Modelo de Velocidad de un Motor de cc. usando una Red Neuronal Recurrente Entrenable
En esta secci´on se presenta los resultados de identificaci´on del modelo discreto de velocidad de un motor de cc. El modelo ya ha sido usado para otros esquemas de identificaci´on, y; no obstante de su sencilles, se utiliza para tener diferentes algoritmos de identificaci´on con el mismo problema. El modelo del motor es el siguiente: ωm (k + 1) =
−295.803 × 10−3ωm(k) + 703.648 × 10−3ωm(k − 1) +10607.511 × 10−3 [ea (k) + ea (k − 1)] − [1548.755T L(k) + 1548.329T L(k − 1)] . [rad/s]
(3.104)
La red neuronal recurrente propuesta permite que la identificaci´on se ejecute en paralelo; es decir, que la informaci´on que la red neuronal utiliza es la entrada y la salida actuales al sistema. Por supuesto queda la pregunta sobre la estabilidad del sistema resultante, se cuida este aspecto por la restricci´on en los pesos de la matriz J , que por ser diagonal, esto implica que los valores propios deben estar en el intervalo ( 1, 1).
−
La RNRE que se utiliza en la identificaci´on tiene la arquitectura 1, 5, 1 ; es decir, una entrada, cinco nodos ocultos en la capa de retroalimentaci´on y una salida. El valor de los par´ametros del entrenamiento son: para la capa de salida (pesos C ) η1 = 5 10−4 , α1 = 5 10−3 ; para los pesos ocultos (pesos J ) η2 = 1 10−5 , α2 = 1 10−4 ; para los pesos de entrada (pesos B) η3 = 1 10−4 , α3 = 1 10−3 .
×
× ×
{
}
×
×
×
La fase de aprendizaje se realiza en cuatro ´epocas en donde cada una consiste en cinco segundos de simulaci´on del modelo de la velocidad del motor, la se˜nal de entrada para exitar al modelo es: u(k) = cos(πkT s ) + 2 cos(4πkT s ) + 0.5 sen(20πkT s ). En la figura 3.19.a se presenta la comparaci´on entre la salida del modelo del motor (l´ınea discontinua) y la respuesta de la RNRE (l´ınea continua), esta gr´afica es para la cuarta ´epoca de entrenamiento. En la figura 3.19.b se ve el error cuadr´ atico medio durante la ´ultima ´epoca de entrenamiento. Para este ejemplo particular, n´otese que una RNRE, y arquitectura relativamente simple, se logra que la red siga al modelo del motor. Una vez cancelado el ajuste de los pesos de la RNRE, se prueba la capacidad de esta red para reproducir el comportamiento del modelo para una se˜nal de entrada diferente a la usada en la fase de entrenamiento, esta nueva se˜nal es: 0.1 sen(4πkT s ) para 0 < kT s 0.5, 0.05 para 0.5 < kT s 0.75, u(k) = , 0 para 0.75 < kT s 1, 0.1 cos(2πkT s ) para 1 < kT s 2. 70
≤ ≤ ≤ ≤
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.6. Identificaci´on de Sistemas Utilizando RNRE
la comparaci´on entre la respuesta del modelo (l´ınea discontinua) y la RNRE (l´ınea continua) figura 3.19.c. Esta fase tiene una duraci´on de dos segundos. A diferencia entre el uso de una red neuronal est´atica, la op eraci´on de la RNRE es en paralelo. En figura 3.19.d se observa el comportamiento de error cuadr´atico medio en esta fase. Identificación RN: Entrenamiento
150
Identificación RN: Entrenamiento−MSE
400 350
100
300 50 g e s / d a r
250 200
0
150 −50 100 −100 −150
0 0
0.5
1
1.5
2
2.5 (a)
3
3.5
4
4.5
5
0
0.5
1
1.5
2
s
Identificación RN: Generalización
5
2.5 (b)
3
3.5
4
4.5
5 s
Identificación RN: Generalización−MSE
4
0.09
3
0.08 0.07
2 g e s / d a r
MSE=44.9275
50
0.06
1
0.05
0
MSE=0.036976
0.04
−1
0.03
−2
0.02
−3
0.01
−4
0
−5
−0.01
0
0.5
1
1.5
2 (c)
2.5
3
3.5
4
0
s
0.5
1
1.5
2 (d)
2.5
3
3.5
4 s
Identificaci´ on de la velocidad de un Motor de cc. usando una RNRE a) Comparaci´ on de la respuesta del sistema (- -) y la salida de la RNRE (–) durante el entrenamiento. b) Erro medio cuadr´atico. c) Comparaci´ on de la respuesta del sistema (- -) y la salida de la RNRE (–) durante la prueba de generalizaci´on. d) Error medio cuadr´ atico. ................................................................................................................. Figura 3.19:
– JMFA –
71
3.6. Identificaci´on de Sistemas Utilizando RNRE
3.6.2.
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificaci´ on no Lineal Usando RNRE
En la siguiente simulaci´on se presenta la identificaci´on del sistema no lineal (3.80) usando una RNRE. El modelo utilizado se toma de [6]: y p(k)y p (k
y p (k + 1) =
− 1)y p(k − 2)u(k − 1) [y p(k − 2) − 1] . 1 + y p (k − 2)2 + y p(k − 1)2
En el ejemplo 3.8 se utiliz´o este sistema para ser identificado por una red neuronal est´atica. Para ese caso fue necesario una red con una arquitectura 5, 10, 1 , con un entrenamiento de 30 ´epocas, y cada ´epoca con 1000 iteraciones del sistema no lineal.
{
}
La RNRE tiene una arquitectura de 1, 5, 1 . Los coeficientes de entrenamiento son: para la capa de salida y de entrada (C y B) η1,3 y α1,3 = 0.05; para la capa oculta (J ) η y α = 0.005.
{
}
La fase de entrenamiento consiste en tres ´epocas, cada una con mil iteraciones del sistema no lineal. La se˜nal de entrada es: u(k) = 0.80 sen(2πk/250) + 0.3 cos(2πk/25). En la figura 3.20.a Se puede observar la comparaci´on de la evoluci´on del sistema no lineal (l´ınea discontinua) y la respuesta de la RNRE (l´ınea continua) en la fase de entrenamiento. En figura 3.20.b esta la gr´afica de error cuadr´atico medio. Para la fase de generalizaci´on se utiliza como se˜nal de entrada:
u(k) =
−
0.5 sen(2πk/50) 0.5 0.5 0.4 cos(2πk/200)
para 0
≤ 150, ≤ 200, ≤ 250, ≤ 600,
esta etapa consiste en 600 iteraciones. En figura 3.20.c se puede comparar el resultado de las salidas de la planta (l´ınea discontinua) y de la RNRE (l´ınea continua).
72
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.6. Identificaci´on de Sistemas Utilizando RNRE
Identificación RN: Entrenamiento
1.5
Identificación RN: Entrenamiento−MSE
0.01 0.009
1
0.008 0.007
0.5
0.006 0
0.005 0.004
−0.5
0.003
MSE=0.0019961
0.002
−1
0.001 −1.5
0
100
200
300
400
500 (a)
600
700
800
900
1000
Identificación RN: Generalización
1
0
5
0.8
4.5
0.6
4
0.4
3.5
0.2
3
0
2.5
−0.2
2
−0.4
1.5
−0.6
1
−0.8
0.5
−1
0
100
200
300 (c)
400
500
600
0
0
x 10
100
200
−3
300
400
500 (b)
600
700
800
900
1000
Identificación RN: Generalización−MSE
MSE=0.00018824
0
100
200
300 (d)
400
500
600
Identificaci´ on de un sistema no lineal usando RNRE. a) Comparaci´on de la respuesta del sistema (- -) y la salida de la RNRE (–) durante el entrenamiento. b) Erro medio cuadr´atico. c) Comparaci´on de la respuesta del sistema (- -) y la salida de la RNRE (–) durante la prueba de generalizaci´on. d) Error medio cuadr´atico. ................................................................................................................. Figura 3.20:
– JMFA –
73
3.6. Identificaci´on de Sistemas Utilizando RNRE
3.6.3.
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificaci´ on de un Sistema no Lineal de dos Entradas dos Salidas
Una de las caracter´ısticas importantes del modelo de RNRE es que de forma natural puede trabajar en sistemas con m´ultiples entradas y m´ultiples salidas. Ahora se presenta la identificaci´on de un sistema no lineal con dos entradas y dos salidas, en [6] aparece este modelo:
y1 (k) y1 (k + 1) = 0.5 + u1 (k) , 1 + y2 (k)2 y1 (k)y2 (k) y2 (k + 1) = 0.5 + u2 (k) . 1 + y2 (k)2
(3.105) (3.106)
Para identificar este sistema se utiliza una RNRE con una configuraci´on 2, 10, 2 . Los coeficientes de entrenamiento son: para la capa de salida y de entrada ( C y B) α1,3 y η1,3 = 0.01; para la capa oculta (J ) η2 y α2 = 0.001.
{
}
La fase de entrenamiento consiste en veinte ´epocas, cada una con quini´entas iteraciones del sistema no lineal. Las se˜nales de entradas son: u1 (k) = 0.8 sen(2πk/100) + 0.3 cos(2πk/10), u2 (k) = 1.5 cos(2πk/200) + 0.3 sen(2πk/20). En la figura 3.21.a se observa la comparaci´on entre la salida del subsistema 1 del modelo no lineal (l´ınea discontinua) y de la salida 1 de la RNRE (l´ınea continua), en la gr´afica figura 3.21.b est´ a lo correspondiente para la salida 2. En figura 3.21.c se presenta el error cuadr´atico medio para la salida 1 (l´ınea discontinua) y 2 (l´ınea continua). Para la fase de generalizaci´on se utiliza como se˜nal de entrada:
u1,2 (k) =
−
0.5 sen(2πk/50) 0.7 0.7 0.7 cos(2πk/100)
para 0< k para 150 < k para 270 < k para 400 < k
≤ 150, ≤ 275, ≤ 400, ≤ 500,
(3.107)
esta etapa consiste en 500 iteraciones. En las figuras figura 3.21.d, e, f se pueden ver las respuestas de las salidas 1 y 2, as´ı como el error cuadr´atico medio de las salidas.
74
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificación RN: Entrenamiento
1
1 n y / 1 p y
0.8
0.6
0.6
0.4
0.4
0.2
1 n y / 1 p y
0 −0.2
0.2 0 −0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8 0
50
100
150
200
250 (a)
300
350
400
450
−1
500
Identificación RN: Entrenamiento
1
0.8
0.6
0.6
0.4
0.4
0.2
2 n y / 2 p y
0 −0.2
−0.6
−0.8
−0.8
−3
4
150
200
250 (b)
300
350
400
450
−1
500
200
250 (d)
300
350
400
450
500
400
450
500
Identificación RN: Generalización
0
50
100
−3
Identificación RN: Entrenamiento−MSE
x 10
150
−0.2
−0.6
100
100
0
−0.4
50
50
0.2
−0.4
0
0
1
0.8
−1
Identificación RN: Generalización
1
0.8
−1
2 n y / 2 p y
3.6. Identificaci´on de Sistemas Utilizando RNRE
2.5
150
200
250 (e)
300
350
Identificación RN: Generalización−MSE
x 10
3.5 2
3 2.5
1.5
2
MSE1=0.0030255
1.5 1
MSE2=0.0013004
1
MSE1=0.0010879
0.5
MSE2=0.0002745
0.5 0
0
50
100
150
200
250 (c)
300
350
400
450
500
0
0
50
100
150
200
250 (f)
300
350
400
450
500
Identificaci´ on de un sistema no lineal MIMO usando RNRE. a) Comparaci´ on de la respuesta de la salida y1 del sistema (- -) y la salida yn1 RN (–) durante el entrenamiento. b) Comparaci´ on de la respuesta de la salida y2 del sistema (- -) y la salida yn2 RN (–) durante el entrenamiento. c) Error medio cuadr´atico, MSE1 (- -), MSE2 (–), entrenamiento. d) Comparaci´on de la respuesta de la salida y1 del sistema (- -) y la salida yn1 RN (–) durante la fase de generalizaci´on. e) Comparaci´ on de la respuesta de la salida y2 del sistema (- -) y la salida yn2 RN (–) durante la fase de generalizaci´on. f ) Error medio cuadr´ atico, MSE1 (- -), MSE2 (–), generalizaci´on. ................................................................................................................. Figura 3.21:
– JMFA –
75
3.6. Identificaci´on de Sistemas Utilizando RNRE
3.6.4.
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificaci´ o n M´ ultimodelo con RNRE
En las referencias [11] y [9] se propone utilizar un arreglo m´ultimodelo para la identificaci´on de sistemas din´amicos. Consid´erese el sistema desconocido y = f (x), por medio de mediciones se obtienen los datos y(k), x(k), en los tiempos k, k 1, . . . . El objetivo es que a trav´ es de estos datos se construya una funci´on y = F (x) que sea una T aproximaci´on razonable de y = f (x), donde x = [x1 , . . . , x p ] R p y y R. La variable x se conoce como variable antecedente, y como variable consecuente. En el modelado de sistemas difusos la funci´on F (x) se presenta por una colecci´ on de reglas IF-THEN del tipo:
−
∈
∈
IF antecedente THEN consecuente
El modelo de Takagi Sugeno, es una mezcla de modelos ling¨u´ısticos y num´ericos. El antecedente, en la regla, describe las regiones difusas en las cuales est´a dividido el espacio de estados, el consecuente es una funci´on de las entradas. Esta funci´ on puede ser tambi´en una funci´on din´amica dada por un modelo descrito en el espacio de estados en la forma: Ri:IF x(k) IS Ji AND u(k) IS Bi THEN xi(k+1)= Ji x(k) + Bi u(k) yi(k)= Ci x(k)
Se propone que la funci´on consecuente sea una RNRE de manera que el sistema difuso tenga la forma: IF x IS Ji AND u IS Bi THEN yi = Ni(x),i =1,2,...L
La funci´on yi = N i (x) representa la RNRE. Donde i es el n´umero de la funci´on de activaci´on y L es el n´umero total de estas funciones de aproximaci´on. Los t´erminos de umbral que se obtienen durante el proceso de aprendizaje, pueden usarse para formar los centros de las funciones de pertenencia. El n´umero de reglas se puede optimizar usando el error medio cuadr´ atico de la RNRE, que es la medida natural de la precisi´on de aproximaci´on del submodelo no lineal. La estructura del sistema de identificaci´on completo contiene un sistema de coordinaci´ on difuso y un conjunto de RNRE. Se utiliza el sistema no lineal (3.105-3.106) para probar el m´ etodo de identificaci´on m´ultimodelo. Se utilizan dos RNRE, una para identificar la parte positiva, y otra RNRE para la parte negativa de las respuesta del sistema no lineal. As´ı que las reglas que designan la zona de operaci´on de cada una de las redes son: ---------------Regla 1 ---------------R1:IF yp(k) IS >0 AND u(k) Is >0 THEN x1(k+1)=G1[J1*x(k)+B1*u(k)]; y1(k)C1*G2(x1(k)). ---------------------------------------
| | | | |
---------------Regla 2 ----------------% R2: IF yp(k) IS <0 AND u(k) Is <0 THEN % x2(k+1)=G1[J2*x2(k)+B2*u(k)]; % y2(k)C2*G2(x(k)), % ---------------------------------------%
Las RNRE’s tienen la arquitectura: 2, 10, 2 . Los coeficientes de entrenamiento son los mismos para ambas redes: η1,3 y α1, 3 = 0.01, η2 y α2 = 0.01.
{
}
La fase de entrenamiento esta formada p or 40 ´epocas de 500 iteraciones. La se˜nal de entrada al sistema es: u1 (k) = 0.8 sen(2πk/100) + 0.3 cos(2πk/10), u2 (k) = 1.5 cos(2πk/200) + 0.3 sen(2πk/20).
(3.108) (3.109)
En las figuras. 3.22, 3.23, 3.24 se puede observar el comportamiento del esquema m´ultimodelo para la etapas de entrenamiento y generalizaci´on. En la etapa de generalizaci´on la se˜nal es (3.107). Se simula este sistema durante 500 iteraciones. En figuras. 3.24 se suman las respuestas de las dos RNRE que se usaron para identificar la parte positiva y negativa del sistema con el fin de reconstruir la respuesta del esquema de identificaci´on m´ultimodelo. Una de las ventajas que tiene el modelo de RNRE es que sus ecuaciones de entrenamiento pueden ser implementadas para trabajar en l´ınea. En la pr´oxima secci´on se utiliza el modelo de red neuronal recurrente para identificar un prototipo de control —Ver ape´ndice E. —de un motor de cc. en tiempo real. 76
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificación RN: Entrenamiento−RNRE1
1
1 n y , 1 p y
0.8
0.6
0.6
0.4
0.4
0.2
0.2
1 n y , 1 p y
0
0
−0.2
−0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8 0
50
100
150
200
250 (a)
300
350
400
450
−1
500
Identificación RN: Entrenamiento−RNRE1
1
0.8
0.6
0.6
0.4
0.4
0.2 0
−0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8
−3
4
100
150
200
250 (b)
300
350
400
450
−1
500
150
200
250 (d)
300
350
400
450
500
450
500
Identificación RN: Generalización−RNRE1
0
50
−3
Identificación RN: Entrenamiento−MSE,RNRE1
x 10
100
0
−0.2
50
50
0.2
2 n y , 2 p y
0
0
1
0.8
−1
Identificación RN: Generalización−RNRE1
1
0.8
−1
2 n y , 2 p y
3.6. Identificaci´on de Sistemas Utilizando RNRE
2.5
100
150
200
250 (e)
300
350
400
Identificación RN: Generalización−MSE,RNRE1
x 10
3.5 2
3 2.5
1.5
2
MSE1=0.0012572
1.5 1
MSE2=0.001253
1
MSE1=0.00038358
0.5
MSE2=0.00018524
0.5 0
0
50
100
150
200
250 (c)
300
350
400
450
500
0
0
50
100
150
200
250 (f)
300
350
400
450
500
Identificaci´ on M´ ultimodelo Usando de un sistema no lineal MIMO usando RNRE + . a) Comparaci´ on + de la respuesta de la salida y1 del sistema (- -) y la salida yn1 RNRE (–) durante el entrenamiento. b) Comparaci´ on + de la respuesta de la salida y2 del sistema (- -) y la salida yn2 RNRE (–) durante el entrenamiento. c) Error medio cuadr´ atico, MSE1 (- -), MSE2 (–), entrenamiento. d) Comparaci´on de la respuesta de la salida y1 del sistema (- -) y la salida yn1 RNRE+ (–) durante la fase de generalizaci´on. e) Comparaci´on de la respuesta de la salida y2 del sistema (- -) y la salida yn2 RNRE+ (–) durante la fase de generalizaci´on. f ) Error medio cuadr´atico, MSE1 (- -), MSE2 (–), generalizaci´on. ................................................................................................................. Figura 3.22:
– JMFA –
77
3.6. Identificaci´on de Sistemas Utilizando RNRE
Identificación RN: Entrenamiento−RNRE2
1
1 n y , 1 p y
0.8
0.6
0.6
0.4
0.4
0.2
0.2
1 n y , 1 p y
0
0
−0.2
−0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8 0
50
100
150
200
250 (a)
300
350
400
450
−1
500
Identificación RN: Entrenamiento−RNRE2
1
0.8
0.6
0.6
0.4
0.4
0.2 0
−0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8
−3
4
100
150
200
250 (b)
300
350
400
450
−1
500
150
200
250 (d)
300
350
400
450
500
450
500
Identificación RN: Generalización−RNRE2
0
50
−3
Identificación RN: Entrenamiento−MSE,RNRE2
x 10
100
0
−0.2
50
50
0.2
2 n y , 2 p y
0
0
1
0.8
−1
Identificación RN: Generalización−RNRE2
1
0.8
−1
2 n y , 2 p y
Cap´ıtulo 3. Identificaci´on de Sistemas
2.5
100
150
200
250 (e)
300
350
400
Identificación RN: Generalización−MSE,RNRE2
x 10
3.5 2
3 2.5
1.5
2
MSE1=0.001493
1.5 1
MSE2=0.00075558
1
MSE1=0.00067194
0.5
MSE2=0.00012367
0.5 0
0
50
100
150
200
250 (c)
300
350
400
450
500
0
0
50
100
150
200
250 (f)
300
350
400
450
500
Identificaci´ on M´ ultimodelo Usando de un sistema no lineal MIMO usando RNRE − . a) Comparaci´ on − de la respuesta de la salida y1 del sistema (- -) y la salida yn1 RNRE (–) durante el entrenamiento. b) Comparaci´ on − de la respuesta de la salida y2 del sistema (- -) y la salida yn2 RNRE (–) durante el entrenamiento. c) Error medio cuadr´ atico, MSE1 (- -), MSE2 (–), entrenamiento. d) Comparaci´on de la respuesta de la salida y1 del sistema (- -) y la salida yn1 RNRE− (–) durante la fase de generalizaci´on. e) Comparaci´on de la respuesta de la salida y2 del sistema (- -) y la salida yn2 RNRE− (–) durante la fase de generalizaci´on. f ) Error medio cuadr´atico, MSE1 (- -), MSE2 (–), generalizaci´on. ................................................................................................................. Figura 3.23:
78
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificación RN: Entrenamiento−RNRE1+RNRE2
1
1 n y , 1 p y
0.8
0.6
0.6
0.4
0.4
0.2
0.2
1 n y , 1 p y
0
0
−0.2
−0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8 0
50
100
150
200
250 (a)
300
350
400
450
−1
500
Identificación RN: Entrenamiento−RNRE1+RNRE2
1
0.8
0.6
0.6
0.4
0.4
0.2 0
−0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8
−3
4
x 10
100
150
200
250 (b)
300
350
400
450
−1
500
150
200
250 (d)
300
350
400
450
500
450
500
Identificación RN: Generalización−RNRE1+RNRE2
0 −3
Identificación RN: Entrenamiento−MSE,RNRE1+RNRE2
100
0
−0.2
50
50
0.2
2 n y , 2 p y
0
0
1
0.8
−1
Identificación RN: Generalización−RNRE1+RNRE2
1
0.8
−1
2 n y , 2 p y
3.6. Identificaci´on de Sistemas Utilizando RNRE
2.5
x 10
50
100
150
200
250 (e)
300
350
400
Identificación RN: Generalización−MSE,RNRE1+RNRE2
3.5 2
3 2.5
1.5
2
MSE1=0.0027401 1
1.5 1
MSE2=0.0028881
MSE1=0.0010266
0.5
MSE2=0.00024382
0.5 0
0
50
100
150
200
250 (c)
300
350
400
450
500
0
0
50
100
150
200
250 (f)
300
350
400
450
500
Identificaci´ on M´ ultimodelo Usando de un sistema no lineal MIMO usando RNRE ± . a) Comparaci´ on ± de la respuesta de la salida y1 del sistema (- -) y la salida yn1 RNRE (–) durante el entrenamiento. b) Comparaci´ on ± de la respuesta de la salida y2 del sistema (- -) y la salida yn2 RNRE (–) durante el entrenamiento. c) Error medio cuadr´ atico, MSE1 (- -), MSE2 (–), entrenamiento. d) Comparaci´on de la respuesta de la salida y1 del sistema (- -) y la salida yn1 RNRE± (–) durante la fase de generalizaci´on. e) Comparaci´on de la respuesta de la salida y2 del sistema (- -) y la salida yn2 RNRE± (–) durante la fase de generalizaci´on. f ) Error medio cuadr´atico, MSE1 (- -), MSE2 (–), generalizaci´on. ................................................................................................................. Figura 3.24:
– JMFA –
79
3.6. Identificaci´on de Sistemas Utilizando RNRE
3.6.5.
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificaci´ on en Tiempo Real de un Motor de cc.
En esta secci´on se describe el uso de una RNRE para la construcci´on en tiempo real del modelo de identificaci´on de posici´on de un motor de cc. El prototipo utilizado se describe en el ap´endice E. Por lo establecido en la proposici´on 3.2, se requiere que el modelo no lineal sea estable para poder ser identificado. Al modelar la descripci´on entrada salida de la posici´on de un motor cc., se obtiene un sistema no compensado; es decir, un sistema que al aplicar como entrada una se˜nal constante, la respuesta de salida es una se˜nal que se va incrementando con el tiempo a una tasa proporcional a la magnitud de la se˜nal de entrada, ver figura E.2.a. Con el objetivo de compensar la respuesta del motor de cc., se retroalimenta la salida del motor. Utilizando el modelo matem´atico de la posici´on de un motor de cc. que se encuentra en el ap´endice C se puede evaluar el efecto de esta retroalimentaci´ on de la posici´on del motor. La funci´on de transferencia es: Θ(z) N (z) = , E (z) D(z) = 53.03810−3
z3
−
703.92210−3z 2
−
z +1 . 999.72510−3z + 703.64810−3
(3.110)
Al retroalimentar la salida en posici´on del motor a trav´ es de una ganancia constante kr , la entrada al sistema es igual: E (z) = V (z) kr Θ(z) y la funci´on de transferencia en lazo cerrado es:
−
Θ(z) N (z) = . V (z) D(z) + kr N (z)
(3.111)
Al ir aumentado el valor de la ganacia kr los polos de la funci´on de transferencia (3.111) se desplazan en las direcciones que se muestra en la figura 3.25. Lugar de Raíces: Sistema Realimentado 1
Lugar de las ra´ıces sistema retroalimentado. Los polos en lazo abierto son: 1, 1, 0.7038 . El sistema tiene un cero finito en 1. En el sistema retroalimentado, al ir aumentado la ganacia kr , el polo en 1 se aleja de la fontera de estabilidad marginal hasta que el valor real los dos polos no cancelados coinciden en un punto equidistante, si kr continua aumentado la parte imaginaria de estos polos crece, hasta que la magnitud de ambos polos revaza la zona de estabilidad marginal. ........................................................ Figura 3.25:
0.8 0.6
−
0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 −1
−0.5
0
0.5
{ −
}
1
1, 0.7038 . El cero La funci´on de transferencia de lazo cerrado (3.111) tiene un cero finito en 1; polos en: 1, finito cancela el polo inestable -1. El efecto de la ganancia de retroalimentaci´on es atrer a los polos localizados en 1 y 0.7038, hasta que ambos toman el valor de 0.8519, al seguir aumentado el valor de kr la parte imaginaria de estos polos crecen de forma sim´etrica, hasta que su magnitud llega a la zona de estabilidad marginal (fontera del c´ırculo unitario). De lo anterior se concluye que retroalimentado la salida de posici´on del motor se puede compensar el sistema.
−
{ −
}
El sistema es identificado en lazo cerrado. El valor de constante de retroalimentaci´on es: kr = 1. La red neuronal utilizada es una RNRE con una entrada, una salida y cinco nodos ocultos ( 1, 5, 1). La funci´on de activaci´on en la capa oculta es la funci´on tanh, con una ganancia k1 = 10, y una pendiente k1 /k2 = 1, ver secci´on 2.10 . La funci´o n de activaci´ on en la capa de salida es la funci´on identidad. Los par´ ametros de aprendizaje de la red neuronal se divide en dos grupos. Para la capa de salida las tasas de aprendizaje son: α y η = 0.1. Para la capa de entrada y la capa oculta estos par´ ametros son: α y η = 0.01. 80
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.6. Identificaci´on de Sistemas Utilizando RNRE
Para l´ımitar el tiempo de entrenamiento de la red neuronal, se van decreciendo en forma exponencial los par´ ametros de aprendizaje. El entrenamiento se limita a 60 segundos, para esto, el factor de decrecimiento exponencial es: e−1/8kT s . El experimento se realiza con un tiempo de muestreo de T s = 0.001s. En la fase de entrenamiento se utiliza como se˜nal de entrada al sistema retroalimentado una combinaci´on de funciones senoidales de diferentes frecuencias: v(k) = π sen(πkT s ) + 1/3π sen(0.5πkT s) + 1/6π sen(0.25πkT s).
(3.112)
En la figura 3.26 est´ an las gr´aficas del proceso de identificaci´on. En figura 3.26.a se muestra la comparaci´on de la respuesta en posici´on del sistema en lazo cerrado del motor (l´ınea discontinua) y la salida de la RNRE (l´ınea continua), notar que la respuesta de la RNRE se ajusta desde el principio del entrenamiento a la respuesta del sistema. En figura 3.26.c est´an los par´ametros de la capa de retroalimentaci´on, J , de la RNRE, la variaci´on que se nota en ellos es por la operaci´on de la ley de ajuste. Para probar la operaci´on de la red neuronal, al final la fase de entrenamiento, se cambio la se˜nal de entrada al sistema despu´es de terminados los 60 segundos que dura el entrenamiento. De poca utilidad ser´ıa la red neuronal si el algoritmo de entrenamiento no pudiese hallar un conjunto de pesos en la red que reprodujera con cierto grado de precisi´on a la respuesta del sistema. La se˜nal usada en la fase de generalizaci´on es:
v(k) =
− −
9/5 +2π sen(1/4πkT s) +9/5 9/5 +9/5
60 65 80 85 90
< kT s < kT s < kT s < kT s < kT s
≤ 65 ≤ 80 ≤ 85 ≤ 90 ≤ 95
(3.113)
En la figura 3.26.b,d se presentan los resultados de la prueba de generalizaci´o n del modelo del motor de cc. Comparando la respuesta de la red y de la posici´on del motor de cc., ver figura 3.26.b, la respuesta de la RNRE es una buena aproximaci´on del sistema. Notar en la figura 3.26.b, que en la fase de generalizaci´on los pesos de la red se mantienen constantes. El valor de todos los pesos al final del algoritmo de ajuste se listan en la tabla 3.6.5 B 0.207594 -0.195513 -0.292083 0.031599 -0.385518
J 0.0171 0.0161 0.0343 0.0007 0.0629
C 0.627222 -0.590573 -0.888135 0.094925 -1.185807
Par´ ametros de una RNREIdentificaci´ on de un Motor en tiempo real. ............................................. Tabla
– JMFA –
3.6:
81
3.6. Identificaci´on de Sistemas Utilizando RNRE
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificación tiempo real Motor de cc (Entrenamiento)
8 6
6
4
4
) 2 d a R ( n ó 0 i c i s o P −2
) 2 d a R ( n ó 0 i c i s o P −2
−4
−4
−6
−6
−8
0
5
10 (a)
15
−8 60
0.09
0.08
0.08
0.07
0.07
0.06
0.06
0.05
0.05
0.04
0.04
0.03
0.03
0.02
0.02
0.01
0.01
0
0 5
10 (c)
70
75
80
85 (b)
90
95
100
105 s
110
Identificación tiempo real Motor de cc: Parámetros J (Generalización)
0.09
0
65
s
Identificación tiempo real Motor de cc: Parámetros J (Entrenamiento)
−0.01
Identificación tiempo real Motor de cc (Generalización)
8
15
−0.01 60
s
65
70
75
80
85 (d)
90
95
100
105 s
110
Identificaci´ on en tiempo real de un motor de cc. a) Comparaci´on de las respuestas en la fase de generalizaci´on entre el sistema (l´ınea discontinua) y la RN en lazo abierto (l´ınea continua). b) Lo mismo, pero la RN operando en lazo cerrado. c) Par´ ametros J en la fase de entrenamiento. d) Par´ ametros J en la fase de generalizaci´on. ................................................................................................................. Figura 3.26:
En esta secci´on se utiliz´o el prototipo de control de tiempo real del ap´endice E, este es un ejemplo del uso de una RNRE para la identificaci´on en l´ınea. El algoritmo de entrenamiento de la RNRE, presentado en el cap´ıtulo 2, no necesita de demasidos recursos de computo, as´ı que es posible utilizarlo en procesos donde hay una continua actualizaci´on de los datos.
82
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.6. Identificaci´on de Sistemas Utilizando RNRE
Identificaci´ o n M´ ultimodelo en Tiempo Real de un motor de cc. El esquema de identificaci´on m´ultimodelo consiste en separar regiones de operaci´on del sistema y en cada una de ´estas utilizar una RNRE para reproducir la respuesta del sistema identificado. En esta secci´on se aplica este esquema m´ultimodelo para el prototipo experimental. La operaci´on del sistema se divide en dos regiones: una para las se˜nales positivas; y la otra para las negativas. ---------------Regla 1 ---------------R1:IF Theta1(k) IS >0 AND v(k) Is >0 THEN x1(k+1)=G1[J1*x(k)+B1*v(k)]; Theta1(k)=C1*G2(x1(k)). ---------------------------------------
| | | | |
---------------Regla 2 ---------------R2: IF Theta2(k) IS <0 AND v(k) Is <0 THEN x2(k+1)=G1[J2*x2(k)+B2*v(k)]; Theta2(k)=C2*G2(x(k)), ---------------------------------------
% % % % %
El sistema es identificado en lazo cerrado. La estructura de ambas redes es la misma. Las redes neuronales tienen una entrada, una salida y cuatro nodos ocultos: 1, 4, 1 .
{
}
La funci´on de activaci´on en la capa oculta es tanh; para la salida se usa la funci´on identidad. Los par´ametros de aprendizaje para la capa oculta son α y η = 0.01; y para la capa de salida son α y η = 0.1. El valor de estos par´ ametros van decreciendo de forma exponencial con el factor e1/8kT s . T s = 0.001 es el tiempo de muestreo. La fase de entrenamiento tiene una duraci´on de 60 segundos. En las figuras 3.27-3.28. Se presentan los resultados del proceso de identificaci´on del esquema m´ultimodelo. La se˜nal de entrada es (3.112) Al terminar el entrenamiento los pesos de las RNRE se mantiene constantes. En la tabla 3.7 se listan los valores de los pesos para estas redes. B1 0.057693 0.299623 -0.046639 -0.056593 Tabla 3.7:
J 1 0.001541 0.042646 0.000764 0.001891
C1 0.566252 2.976411 -0.457629 -0.555556
B2 -0.060084 -0.176761 -0.190323 -0.163603
J 2 0.002091 0.015958 0.019237 0.012665
C2 -0.596148 -1.761057 -1.898322 -1.628012
Par´ ametros de una RNRE-Identificaci´ on de un Motor en
tiempo real. ....................................................................... En la prueba en la fase de generalizaci´on de las redes usan la se˜nal (3.113) En los experimentos realizados con una y dos RNRE’s se observa que en la fase de generalizaci´on la respuesta de las redes neuronales no reproduce los efectos de alta frecuencia que se generan cuando hay una variaci´on r´apida de la entrada. Esto es de esperarse porque en la fase de generalizaci´on estos modos de alta frecuencia no fueron exitados. De esto se puede concluir que la selecci´on de la se˜nal de entrenamiento es importante debido a que de esta depende la informaci´on que se pueda extraer del sistema y; por tanto, del rango de utilidad del modelo de identificaci´on (recordar el concepto de exitaci´on persistente).
– JMFA –
83
3.6. Identificaci´on de Sistemas Utilizando RNRE
Cap´ıtulo 3. Identificaci´on de Sistemas
Identificación Multi−Modelo tiempo real (Entrenamiento +)
8 6
6
4
4
) 2 d a R ( n ó 0 i c i s o P −2
) 2 d a R ( n ó 0 i c i s o P −2
−4
−4
−6
−6
−8
0
5
10 (a)
15
−8 60
0.06
0.05
0.05
0.04
0.04
0.03
0.03
0.02
0.02
0.01
0.01
0
0
−0.01
0
5
10 (c)
65
70
75
80
s
Identificación tiempo real Motor de cc: Parámetros J (Entrenamiento +)
0.06
Identificación Multi−Modelo tiempo real (Generalización +)
8
15
90
95
100
105 s
110
Identificación tiempo real Motor de cc: Parámetros J (Generalización +)
−0.01 60
s
85 (b)
65
70
75
80
85 (d)
90
95
100
105 s
110
Identificaci´ on en tiempo real de un motor de cc. a) Comparaci´on de las respuestas en la fase de generalizaci´on entre el sistema (l´ınea a trazos) y la RNRE + en lazo abierto (l´ınea continua). b) Lo mismo, pero la RNRE+ operando en lazo cerrado. c) Par´ ametros J en la fase de entrenamiento. d) Par´ ametros J en la fase de generalizaci´on. ................................................................................................................. Figura 3.27:
84
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.6. Identificaci´on de Sistemas Utilizando RNRE
Identificación Multi−Modelo tiempo real (Entrenamiento −)
8 6
6
4
4
) 2 d a R ( n ó 0 i c i s o P −2
) 2 d a R ( n ó 0 i c i s o P −2
−4
−4
−6
−6
−8
0
5
10 (a)
15
−8 60
0.03
0.025
0.025
0.02
0.02
0.015
0.015
0.01
0.01
0.005
0.005
0
0
−0.005
−0.005
−0.01
0
5
10 (c)
65
70
75
80
s
Identificación tiempo real Motor de cc: Parámetros J (Entrenamiento −)
0.03
Identificación Multi−Modelo tiempo real (Generalización −)
8
15
90
95
100
105 s
110
Identificación tiempo real Motor de cc: Parámetros J (Generalización −)
−0.01 60
s
85 (b)
65
70
75
80
85 (d)
90
95
100
105 s
110
Identificaci´ on en tiempo real de un motor de cc. a) Comparaci´on de las respuestas en la fase de generalizaci´on entre el sistema (l´ınea a trazos) y la RN− en lazo abierto (l´ınea continua). b) Lo mismo, pero la RNRE− operando en lazo cerrado. c) Par´ ametros J en la fase de entrenamiento. d) Par´ ametros J en la fase de generalizaci´on. ................................................................................................................. Figura 3.28:
– JMFA –
85
3.7. Complejidad Computacional
3.7.
Cap´ıtulo 3. Identificaci´on de Sistemas
Complejidad Computacional
Las redes neuronales est´an construidas por arreglos de elementos de c´alculo simples. La capacidad de representaci´on de relaciones entre variables depende de los pesos que interconectan a estos elementos de c´alculo, as´ı como de la organizaci´on de la transferencia de la informaci´on interna en la red. La estructura de las redes neuronales tienen como caracter´ıstica importante de ser estructuras de transferencia de informaci´ on paralela, esto significa que la operaci´on de cada uno de los nodos en la red es independiente de todos los dem´ as, en cada instante de tiempo cada nodo o neurona, responde al grupo de se˜nales de su entrada, produciendo, en consecuencia, una respuesta. Esta transferencia paralela de informaci´on permite pensar en la implementaci´on de las redes neuronales por medio de dispositivos de procesamiento individuales, cada uno siendo un nodo de la red, con sus terminales de entrada y salida. Estos dispositivos no necesitan de una gran cantidad de memoria, ni de realizar operaciones complejas; es suficiente que puedan calcular la suma ponderada de sus entradas y realizar una transformaci´on no lineal sobre esta suma. Esta implementaci´on se beneficiar´ıa de la transferencia paralela de informaci´on en la red. Sin embargo, todav´ıa se utilizan computadoras digitales de un sol´o procesador y con una estructura de memoria de tipo Von Neumann (memoria unificada) o Harvard (memoria de datos e instrucciones independientes). As´ı hay un l´ımite en la cantidad de operaciones de punto flotante ( flop: flotating operation) se realizan por unidad de tiempo (Notar una m´ aquina de procesamiento distribuido no tendr´ıa este problema). La cantidad de operaciones para la ejecuci´on de una red neuronal ser´a importante para determinar si la tarea puede resolverse en l´ınea, o si es mejor que sea un proceso por lote. Para una red neuronal de capas m´ultiples con n0 entradas, n1 nodos en la capa oculta, y n2 nodos en la salida, es decir: y = W 2 Γ [W 1 x] ,
(3.114)
en donde W 1 Rn1 ×n0 , W 2 Rn2 ×n1 , y Rn2 , x Rn0 y Γ es la funci´on de activaci´on. Si se desprecia el tiempo para hacer el mapeo Γ, la cantidad de operaciones de punto flotante se debe a los productos matriz vector, el n´umero de operaciones es igual a 2n2 n1 + 2n1 n0 .
∈
∈
∈
∈
Y en el caso de una RNRE con m entradas, n nodos ocultos y p salidas. Sus ecuaciones son: x(k + 1) = Jx(k) + Bu(k); z(k) = Γ [x(k)] ; y(k) = Cx(k), en donde B Rn×m , J Rn , C R p×n , u Rm , x Rn , y operaciones de punto flotante es igual a: 2 pn + n + 2nm.
∈
∈
∈
∈
∈
(3.115) (3.116) (3.117)
∈ R p y Γ es la funci´on de activaci´on. La cantidad de
Si se supone que la dimensi´on de la entrada, la capa oculta y la salida en ambas redes es la misma, es claro que el n´umero de operaciones de punto flotante para la RNRE es n veces mayor que para el caso de una red neuronal de m´ultiples capas, n´umero, que para la mayor´ıa de los casos, es despreciable. Pero como se ha notado en los ejemplos presentados. La redes neuronales de m´ultiples capas en tareas de identificaci´on de sistemas se entrenan en una configuraci´on serie-paralelo, esto hace que la dimensi´on de entrada es mayor que el requerido por una RNRE en un esquema de entrenamiento paralelo. Por cada entrada adicional en una red neuronal recurrente de m´ultiples capas el n´umero de operaciones de punto flotante aumenta en n(2i 1) donde i es la cantidad de entradas adicionales (no m), y n es el n´umero de nodos en las capas ocultas en las dos redes.
−
−
Por lo general , el n´umero de nodos en la capa oculta es mayor en una red de m´ultiples capas que en una RNRE. En el caso de que la dimensi´on de entrada y salida sea el mismo. Por cada incremento de un nodo en la capa oculta en una red neuronal de m´ultiples capas, la cantidad de operaciones de punto flotante es 2 pi + 2im n mayor al utilizado por una RNRE.
−
Por lo anterior, una RNRE utiliza un menor n´umero de recursos en comparaci´on de una red neuronal de m´ultiples capas. 86
– JMFA –
Cap´ıtulo 3. Identificaci´on de Sistemas
3.8.
3.8. Conclusiones
Conclusiones
Los algoritmos de identificaci´on de tipo proyecci´on o m´ınimos cuadrados se basan en la suposi´on de que el sistema puede representarse como una estructura l´ıneal en los par´ ametros. Por medio de ciertas condiciones sobre la entrada del sistema se prueba que los par´ ametros estimados por el algoritmo convergen a los reales. Para el caso de sistemas que no son de par´ ametros lineales este tipo de algoritmos no son adecuados. Las redes neuronales son una alternativa para la identificaci´on de sistema. Aprovechando la informaci´on que sobre la estructura del sistema se tenga, se puede hacer que una red neuronal apr´oxime la relaciones no lineales de un sistema y que forme parte de un esquema de identificaci´on. Las redes neuronales se les divide en dos clases: en redes est´aticas y din´amicas. Las redes est´aticas aproximan relaciones no lineales entre variables. Las redes neuronales din´amicas son estructuras en donde su respuesta depende de la evoluci´on en el tiempo de variables de estado. De modo que las redes neuronales din´ amicas se consideran sistemas din´amicos con par´ ametros ajustables, y por tanto se utilizan como modelos de identificaci´on de sistemas. En este cap´ıtulo se ha presentado el modelo de RNRE como una alternativa para la identificaci´on de sistemas no lineales. En los ejemplos de identificaci´on dados se han usado RNRE con estructuras m´as sencillas en comparaci´on a las que se han necesitado con redes est´ aticas. La RNRE es una red din´amica esto permite que pueda usarse como un modelo de identificaci´on por si mismo, es decir, que no requiere estar incluido dentro de una estructura. En la tabla 3.8 se comparan las estructuras y desempe˜nos de una red neuronal est´atica y una del tipo RNRE. Mod. lineal * *
Mod. No lineal
* *
Red Neuronal Est´atica RNRE Est´atica RNRE
Arquitectura 4, 10, 1 1, 5, 1 5, 10, 1 1, 5, 1
{ { { {
} } } }
´ No. Epocas 350 4 30 3
EMC-Ent 0.6 44.9275 0.0002 0.0020
EMC-Gen 0.0140 0.0369 0.0008 0.0002
Desempe˜ no entre una RN est´ atica y una RNRE. Se comparan los desempe˜n os de una red neuronal est´atica y una RNRE en los ejemplos de identificaci´on. Con una estructura y un n´umero de ´epocas de entrenamiento menor la RNRE logran rendimientos similares a los de una red neuronal est´atica. ....................................................................................................... Tabla 3.8:
De esta tabla se puede observar que para el mismo problema de identificaci´on la RNRE tiene una estructura m´as sencilla y menor n´umero de ´epocas de entrenamiento para obtener un desempe˜no similar a los alcanzados por la red neuronal est´atica. El modelo de RNRE es una estructura cuasi lineal, en variables de estado. Este modelo de red neuronal es naturalmente un sistema que puede trabajar con varias entradas y varias salidas. Estas caracter´ısticas l´ımitan el tipo de sistemas en donde pueden ser usadas. Por eso se present´o un esquema de identificaci´on m´ultimodelo, en donde se propone dividir la respuesta de un sistema complejo en zonas, y en cada una de ellas utilizar una RNRE, estas zonas deberan poder ser representadas como sistemas cuasi lineales. La respuesta final del sistema consiste en una coordinaci´on de los submodelos generados. En los ejemplos de identificaci´on que se presentaron se not´o que en los casos donde se utilizaron redes neuronales, durante la fase de entrenamiento de la red, se puede lograr que la salida de la red siga a la salida de la planta, pero a´un sucediendo esto, no es suficiente para que la red haya asimilado la respuesta del sistema. Se requiere que el entrenamiento se realize durante m´as tiempo para lograr que la red reproduzca la relaci´on entre las variables del sistema, adem´as se debe tener precauci´on con el sobreentrenamiento porque esto provoca una deterioro del desempe˜no de la red neuronal. Es importante seleccionar los datos de entrenamiento en funci´on del rango de operaci´on que se desee, debido a que de este conjunto de datos depende la informaci´on que sobre el sistema se le proporcione al modelo de identificaci´on. El modelo de RNRE que se ha presentado muestra que es capaz de servir como modelo de identificaci´on de sistemas no lineales, y con este antecedente en el cap´ıtulo 4 se mostraran algunos esquemas en donde se puede usar para el control de sistemas.
– JMFA –
87
3.8. Conclusiones
88
Cap´ıtulo 3. Identificaci´on de Sistemas
– JMFA –
Cap´ıtulo 4
Control de Sistemas Un rasgo que se puede observar en la naturaleza es la tendencia de preservar y dispersar entre las especies aquellas estructuras que les han sido ´utiles para conservarlas vivas en su ambiente. Es por esto que desde los insectos hasta la especie humana la naturaleza se ha encargado de conservar a las neuronas como los elementos b´asicos que forman al sistema de procesamiento de la informaci´on (sistema nervioso central y perif´erico); por supuesto, que en las especies menos evolucionadas se utilizan otros tipo de mecanismos para la transmisi´on de informaci´on, pero ´estos son menos eficientes y l´ımitados; por ejemplo, en los girasoles hay sensores de luz y temperatura que accionan las fibras en sus tallos haci´endolas girar en la direcci´on de la fuente de calor (Heliotropismo ), pero este mecanismo dif´ıcilmente ser´ıa de utilidad para organismos m´as complejos. Al ser vistas individualmente, las neuronas son elementos simples que resuelven la necesidad que tienen los organismos de reaccionar a eventos externos por medio de un proceso de transmisi´on de informaci´on. Las neuronas son el v´ınculo entre los elementos sensores y efectores de los organismos. Pero a´un m´ as, las neuronas pueden procesar las se˜nales y transformarlas de manera que el efecto de una se˜nal sobre un sensor produzca una respuesta muy compleja en los efectores asociados al sistema, por medio de la integraci´on de otras condiciones para determinar la respuesta m´as adecuada al est´ımulo. La forma en que las redes de neuronas responden se puede dividir en dos tipos. En el primero la respuesta est´a predeterminada, esto es debido a miles de a˜nos de evoluci´on, una condici´on exterior dispara una bien definida reacci´on; por ejemplo, los actos reflejos en los organismos. El otro tipo de reacciones son aquellas que se adquieren por condicionamiento o aprendizaje; por ejemplo, en los experimentos del fisi´ologo ruso, Ivan Petrovich Pavlov (1849-1936, premio Novel de Medicina en 1904) describi´o el reflejo condicionado , donde en uno de sus experimentos la acci´on de salivaci´ on de un perro se condiciona al ta˜nir de una campana. Es interesante notar que entre m´as evolucionado es un organismo, la naturaleza se ha ido hacia aumentar la capacidad de ´estos de aprender p or ellos mismos las acciones que le son de beneficio; dejando las tareas mon´otonas de mantenimiento de la vida (home´ostasis) a las acciones aut´onomas. Es sorprendente las capacidades que muestran los seres vivos con sistema nervioso central. Como ejemplo est´a la locomoci´on (habilidad para transladarse en busca de condiciones adecuadas para la supervivencia). La coordinaci´on de movimiento de las extremidades y su forma de interacci´on con el trayecto implica la existencia de un sistema de mando (control) que supervice la relaci´on entre la posici´on de las extremidades, la condici´on del camino y el lugar de destino. Y todo lo anterior est´ a concentrado en redes de neuronas. En los insectos esta tarea es realizada por un relativamente reducido n´umero de neuronas, no obstante, resulta una tarea complicada de comprender y de reproducir. As´ı que las redes neuronales son un medio para generar o resolver los problemas de coordinaci´on y control de se˜nales. Pero a diferencia de los problemas de identificaci´on, en donde se tiene al menos un conjunto de datos de entrada y salida para ajustar a la red neuronal; en los problemas de control, por lo general, se desconoce el valor de la se˜nal de control por anticipado, s´olo se tiene el valor de referencia y la condici´on actual del sistema, y el problema consiste en utilizar la informaci´on disponible para generar la se˜nal de control que modifique el comportamiento de la planta de la forma deseada. Las redes neuronales artificiales, como se ha visto, se inspiran en las estructuras biol´ogicas. As´ı que resulta un tema interesante estudiar la utilizaci´on de las redes neuronales artificiales para los problemas de control. Se busca con esto dar 89
4.1. Redes Neuronales en el Control de Sistemas
Cap´ıtulo 4. Control de Sistemas
a los sistemas cierta capacidad de adaptaci´on y robustes en su operaci´on. Por supuesto, que muchos de los esquemas de control tienen como origen la adaptaci´on de la teor´ıa de control a la utilizaci´on de las redes neuronales artificiales, proceso que puede cuestionar su aplicaci´on, pero como en toda tecnolog´ıa en progreso, a medida que vaya madurando ira tomando su lugar en el repertorio de herramientas de los tecn´ologos.
4.1.
Redes Neuronales en el Control de Sistemas
En los problemas de control de sistemas se buscan formas de alterar su comportamiento natural, de manera que su respuesta cumpla con criterios de desempe˜no deseados. Por lo general, la soluci´on de un problema de control sigue un proceso de s´ıntesis. Este proceso consiste en el dise˜no de un subsistema (controlador) que utiliza la informaci´on disponible del sistema controlado (planta) con el objetivo de que el sistema controlador-planta se comporte de la forma deseada. El proceso de s´ıntesis principia con el an´alisis de la planta. El objetivo del an´ alisis de la planta es la de obtener un modelo. Es muy importante este paso debido a que de este modelo del sistema depende el tipo de herramientas de s´ıntesis que se van a usar para dise˜nar el controlador. Por lo presentado en el cap´ıtulo 3, las redes neuronales son una opci´on para generar modelos de sistemas. Desde el punto de vista termodin´amico, un sistema es una colecci´ on de elementos l´ ogicamente interrelacionados por alg´ un principio o ley , ver referencia [50]. Los sistemas de inter´es son los denominados abiertos , es decir, que son aquellos donde se identifica una entrada y una salida, relacionada una a la otra por una ley. En los problemas de control se considera que el sistema a controlar existe, y se requiere hacer un modelo de ´el; este modelo debe reflejar la relaci´on que hay entre sus variables m´as significativas. Haciendo uso de las estructuras de redes neuronales que se han presentado, se dividen en tres tipos los modelos que se obtienen por medio de redes neuronales. El primer modelo considera que la relaci´on entre las variables de entrada y salida puede ser interpretada por un mapeo lineal, o no lineal, este es un modelo funcional del sistema. Por lo visto anteriormente, las redes neuronales de m´ultiples capas o por funciones radiales b´asicas son adecuadas para este tipo de representaci´ on. En el segundo tipo de modelo, la respuesta est´a definida por una funci´on que depende de los valores pasados de entrada y de salida (auto-regressive moving average). En las referencias [8, 10] se utiliza la red neuronal de m´ultiples capas para el modelado de sistemas din´amicos, en donde se propone utilizar a las redes neuronales para aproximar las relaciones no lineales de las variables, separando as´ı la parte lineal que se supone conocida. Para ajustar los pesos de la red neuronal se utiliza el algoritmo de retropropagaci´on del error, que en el caso de que exista una din´amica lineal que siga a la red neuronal, el algoritmo retropropaga el error de modelado a trav´es de la funci´on de transferencia de la din´amica lineal, esto generaliza el algoritmo de aprendizaje llam´andolo de retropropagaci´ on din´amico . El tercer modelo utiliza la representaci´on en variables de estado del sistema. En los dos primeros modelos el objetivo de la red neuronal fue la aproximaci´on de la relaci´on funcional entre las variables; pero en la representaci´on en variables de estado, las redes neuronales requieren que se incluya un lazo de retroalimentaci´on de las variables de estado. Como se ha sugerido, la red neuronal recurrente entrenable (RNRE) es adecuada para este tipo de tareas, ver cap´ıtulo 2. Otra opci´on se presenta en la referencia [52], en donde se propone utilizar dos redes neuronales de m´ultiples capas para el modelado de un sistema en una representaci´on de variables de estado, se utiliza una red para modelar la funci´on de salida del sistema que recibe como se˜nal de entrada la respuesta de otra red que genera los estados del modelo, los estados son retardados para que en la siguiente iteraci´on ´estos formen parte de la entrada de la red de estados, junto con las se˜nales externas de entrada. Una vez que se ha obtenido el modelo de la planta, va a depender de este modelo y de los requerimientos de desempe˜no, el tipo de esquema que se dise˜ne para manejar al sistema. Pero en el caso de la aplicaci´on de las redes neuronales tambi´en tiene importancia la manera en que se utiliza la informaci´on disponible para modificar los pesos de la red, es decir, del modelo de aprendizaje usado (ver cap´ıtulo 1, secci´on 1.2.4). As´ı que hay esquemas de control que utilizan el modelo de aprendizaje supervisado, en el que se supone que hay un conjunto de datos para entrenar a la red; en otros, se utiliza el modelo no supervisado, en donde de forma indirecta se obtiene la informaci´on y para el caso del modelo reforzado, la red neuronal no tiene informaci´on de su efecto sobre la planta durante varios per´ıodos, por lo general, s´olo se cuenta de una retroalimentaci´on de tipo ´existo/falla, as´ı que es necesario evaluar el efecto retardado de cierta acci´on para cada estado transcurrido del sistema, y reforzar aquellas acciones que representan una mejora en el desempe˜no del sistema, dilatando progresivamente la ocurrencia de falla en el sistema. En las siguientes secciones se describen algunos esquemas de control basados en redes neuronales y particularmente la aplicaci´on del modelo de RNRE para este tipo de tareas. 90
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.2.
4.2. Modelado de controlador
Modelado de controlador
Este esquema de control utiliza el modelo de aprendizaje supervisado. La informaci´on para el ajuste de los pesos de la red neuronal se obtiene de un controlador que se supone disponible. El controlador puede ser uno calculado por m´etodos cl´ asicos o de un operador humano. Notar que es posible utilizar informaci´on no convencional en la operaci´on de la red neuronal. En la figura 4.1 puede observarse un esquema de la fase de entrenamiento y de operaci´on de la red neuronal. La funci´on de la red neuronal es modelar el sistema de control original para sustituirlo.
r e f e r e n c i a
Controlador interface
e n t r a d a s
RN pesos Ajuste
Algoritmo de ajuste
s a l i d a s
i n t e r f a c e
e n t r a d a s
Planta Datos
e n t r a d a s
s a l i d a s
RN
e n t r a d a s
s a l i d a s
Planta Datos
s a l i d a s
-+
e r r o r
(a)
(b)
Esquema de control por modelado de controlador. (a) Fase de entrenamiento de la red neuronal por medio de la informaci´on obtenida por el control existente. (b) Fase de operaci´on de la red neuronal como controlador. ................................................................................................................. Figura 4.1:
Para elegir el tipo de red neuronal (est´ atica o din´amica) se debe estudiar la estructura del controlador existente. Y tambi´ en es recomendable entrenar a la red con datos del controlador en la zona de operaci´on en el que vaya a funcionar la red neuronal.
Ejemplo 4.1 En este ejemplo se utiliza una red neuronal de m´ ultiples capas para modelar un control de tipo Proporcional Integral Derivativo (E.4): u(k) = K p [e(k)
d − e(k − 1)] + K iT se(k) + K [e(k) − 2e(k − 1) + e(k − 2)] + u(k − 1), T s
usado para controlar el modelo discreto de un motor de corriente directa (C.54): θm (k + 1) = 703.922 10−3 θm (k) + 999.725 10−3 θm (k 1) +53.038 10−3 [ea (k 1) + ea (k 2)] [rad].
× ×
−
× −
− − 703.648 × 10−3θm(k − 2)
El programa para el entrenamiento de la red se encuentra en el ap´endice B, p´agina 180 . La red utilizada tiene una configuraci´ on de cinco entradas, seis nodos ocultos no lineales ( tanh) y una salida, 5, 6, 1 . La capa de salida y oculta tienen entradas independientes, o bias. El algoritmo para ajustar los pesos es de tipo retropropagaci´ on del error. Los ´ındices de aprendizaje son: α y η = 0.0001. Ver el programa B.12.
{
}
En este primer esquema de control. Se utiliza la informaci´ on proveniente de un controlador existente para generar la informaci´ on de entrenamiento de la red neuronal. En la figura 4.2, se observa que para este ejemplo el flujo se informaci´ on entre el controlador PID y la red neuronal es de tipo serie-paralelo. El vector de entrada est´a formardo por: p(k) = [u(k 1), u(k 2), e(k), e(k 1), e(k 2)]T , este vector se selecciona porque se integra de los elementos que el control PID utiliza (excepto por u(k 2) que no es utilizado en (E.4), pero que bien puede incorporarse como otro elemento de entrada a la RN). Notar que la entrada a la red neuronal se compone de dos sucesiones dependientes: e
−
−
−
−
−
– JMFA –
91
4.2. Modelado de controlador
Cap´ıtulo 4. Control de Sistemas
y u. De manera que la tarea del algoritmo de aprendizaje es la de ajustar los pesos de la red para que con base en la informaci´ on de estas dos secesiones se aproxime la salida de la red neuronal al valor siguiente de control u(k). El entrenamiento debe realizarse expandiendo los datos del controlador PID en el rango de operaci´ on que se desea para la red neuronal. En la figura 4.2 se debe notar que durante el entrenamiento la red neuronal opera en lazo abierto, es decir, que no hay retroalimentaci´ on de la salida de red hacia las capas interiores. Sin embargo, cuando se sustituye al control PID por la red neuronal, se cierra el lazo en la red neuronal al momento de retroalimentar los dos primeros retardos del valor estimado del control actual producido por la red neuronal para completar el vector de entrada. As´ı que la red neuronal se ha entrenado como un sistema est´atico, pero se hace trabajar como un sistema din´amico.
r(k )
-
+
e(k )
Modelo Motor
Controlador PID
Θ(k )
u(k)
u(k)
-1
z
1
Σ
-1
z
tanh
1
Σ
1
-1
z
Σ Σ
e(k)
tanh
1
Σ
1
Σ
-1
z
z
u(k)
1
tanh
^
u(k)
-+
Σ
-1
r(k )
+
-
Σ
e(k) -1
Σ
-1
Σ
z
Σ W1
Backpropagation
(a)
1
Σ
u(k)
Modelo Motor Θ(k )
tanh tanh
1
tanh W2
tanh
1
tanh
W1
tanh
1
z
1
Σ
Σ 1
1
z
tanh
1
-1
tanh
tanh W2
(b)
Ejemplo del esquema por modelado de controlador. (a) Entrenamiento de la red neuronal (configuraci´on serie-paralelo). (b) Sustituci´ on del control convencional por la red neuronal. ................................................................................................................. Figura 4.2:
En la figura 4.3, se presentan los resultados del entrenamiento de la red neuronal. Para este ejemplo las constantes del controlador PID son: Kp = 0.4, Kd = 0, y Ki = 0.05. El tiempo de muestreo es T s = 0.005 Seg. La se˜ nal de entrenamiento se genera al aplicar como referencia al sistema controlado por el PID una se˜ nal cuadrada con amplitud variable, que se simula durante 10 segundos, y en cien ´epocas. Terminado el entrenamiento se sustituye el control PID por la red neuronal y se cierra el lazo. En la gr´ afica de la figura 4.3. a se compara el comportamiento en posici´ on del motor controlado por el PID, y por la red neuronal, se observa que en este ejemplo, la red neuronal tiene pr´ acticamente el mismo tiempo de alcance que el obtenido por el controlador PID, s´ olo hay un retardo de la red neuronal durante el transitorio. En la figura 4.3. b se comparan los errores de control resultantes del uso de estos dos controladores, su comportamiento es muy parecido, pero se nota que el error de la red neuronal en la etapa estacionaria es de menor magnitud. En figura 4.3. c est´an las se˜ nales de control generadas por ambos controladores, aqu´ı algo interesante es que la magnitud del control en el estado transitorio es menos demandante comparada con la del PID. En la figura 4.3. d, e, f se observa el caso para una referencia sinusoidal.
92
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.2. Modelado de controlador
Seguimiento (a)
1.2
Referencia − − PID −−
Referencia − −
1
RN .−.
1 PID −− RN .−.
0.8
0.5
. 0.6 d a R
. d a 0 R
0.4
−0.5
0.2
−1
0 −0.2
Seguimiento (d)
1.5
0
1
2
3
4
5
−1.5
6
Se . Error de Control (b)
0
1
2
3
4
5
6
5
6
5
6
Se . Error de Control (e)
0.15
PID −−
1
RN − −
PID −−
0.8
0.1 RN − −
0.6 0.4
0.05
. 0.2 d 0 a R
. d a R
−0.2 −0.4
0
−0.05
−0.6 −0.8
−0.1
−1 0
1
2
3
4
5
6
0
Se . Señal de Control (c)
0.5
1
2
3
4
Se . Señal de Control (f)
0.06 PID − −
PID − −
0.4
RN −−
RN −−
0.04
0.3 0.2
0.02
0.1
. t l 0 o V
. t l o V
0
−0.1 −0.02
−0.2 −0.3
−0.04
−0.4 −0.5
0
1
2
3
4
5
6
−0.06
Se .
0
1
2
3
4
Se .
Resultados del esquema de modelado de controlador. a) Comparaci´on de la respuesta en posici´on del motor controlado por el PID y por la red neuronal (referencia cuadrada). b) Comparaci´ on entre las se˜nales de error. c) Comparaci´ on entre las se˜nales de control. d) Comparaci´ on de la respuesta en posici´on del motor controlado por el PID y por la red neuronal (referencia sinusoidal). e) Comparaci´on entre las se˜nales de error. f ) Comparaci´ on entre las se˜ nales de control. ................................................................................................................. Figura 4.3:
– JMFA –
93
4.3. Control por modelo inverso
Cap´ıtulo 4. Control de Sistemas
La pregunta obvia sobre este esquema de control es: ¿Por qu´e sustituir al controlador por una red neuronal? Repuesta: 1. Porque durante el entrenamiento de la red neuronal se puede incorporar informaci´on no convencional que en los modelos anal´ıticos no es f´acil de considerar. 2. Porque dado un apropiado conjunto de datos de entrenamiento, la red entrenada no s´olo ser´a capaz de producir las respuestas adecuadas para los datos de entrenamiento, sino que a´un para lo datos fuera del conjunto de entrenamiento, las procesar´a correctamente (generalizaci´on). 3. La red neuronal es tolerante a las perturbaciones, es decir, que si las se˜nales de la red est´ an afectadas por perturbaciones, la respuesta no se ve alterada de forma catastr´ofica. 4. Una vez entrenada la red neuronal, su operaci´on es muy r´apida (estructura paralela), y existen circuitos integrados disponibles en el mercado; por ejemplo: Siemens MA-16, Hughes M1718, ZISC36, etc´ etera.
4.3.
Control por modelo inverso
Este esquema de control consiste en ajustar los par´ametros de la red neuronal para que reproduzca el modelo inverso de la planta, y despu´es utilizarlo como un precompensador de la misma. De esta forma la relaci´on funcional entre la entrada a la red y la salida de la planta es aproximadamente de uno a uno. Pero antes de abordar el uso de las redes neuronales con este esquema de control se presenta sus bases en general. Sea el caso de un sistema discreto de entrada y salida escalar. Se modela su comportamiento de la forma siguiente: y(k) = F (1) [y(k
− 1), . . . , y(k − n); u(k − 1), . . . , u(k − m)],
(4.1)
en donde F (1) es una funci´on suave y n y m son enteros positivos distintos de cero. Por lo general, n m. Entonces (4.1) considera que el comportamiento actual del sistema depende de la respuesta y entrada en instantes anteriores.
≥
La ventaja de usar la representaci´on discreta (4.1), es que permite ver la respuesta como una sucesi´on de datos. Por lo que es sencillo modificar a (4.1) y obtener su forma predictor (ver la referencia [38], cap.4). La forma predictor de (4.1) es: y(k + 1) = F (2) [y(k), . . . , y(k
− n + 1); u(k), . . . , u(k − m + 1)],
(4.2)
as´ı que puede evaluarse la respuesta del sistema 1 paso adelante . En (4.2) notar que u(k) est´a como argumento. Identif´ıquese a G como la funci´on inversa de F (2) con respecto a u(k), es decir: u(k) = G[y(k + 1), y(k), . . . , y(k
− n + 1); u(k − 1), . . . , u(k − m + 1)].
(4.3)
El objetivo de control solicita que en el tiempo 1 , la respuesta del sistema sea igual a: y ∗ (k + 1), manteni´endose y = y ∗ en lo sucesivo. Esto es posible si en (4.3) se sustituye a y(k + 1) por y ∗ (k + 1), y se utiliza como se˜nal de control para el sistema (4.2). Pero antes de resumir el control inverso...
94
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.3. Control por modelo inverso ¿Qu´e significa la invertibilidad del sistema (4.2)?
(Ver referencia [56]). Consid´erese un sistema gobernado por (4.2): y(k + 1) = F (2) [y(k), . . . , y(k
− n + 1); u(k), . . . , u(k − m + 1)], el sistema se dice que es invertible si para la funci´on F 2 en [y(k), . . . , y(k − n +1); u(k − 1), . . . , u(k − m +1)]T , existe su funci´on inversa con respecto a u(k).
La funci´on inversa de F 2 en [y(k), . . . , y(k n + 1); u(k 1), . . . , u(k m + 1)]T con respecto a u(k) existe si hay un conjunto A Rn+m+1 tal que para todo [y(k),...,y(k n + 1); u(k 1), . . . , u(k m + 1)]T A se cumple que para cualquier par de entradas diferentes u(1) (k) y u(2) (k):
−
∈
− −
− −
−
∈
F (2) [y(k), . . . , y(k
− n + 1); u(1)(k), . . . , u(k − m + 1)] = (4.4) (2) (2) F [y(k), . . . , y(k − n + 1); u (k), . . . , u(k − m + 1)]. Se dice que el sistema (4.2) es singular en [y(k), . . . , y(k − n + 1); u(k − 1), . . . , u(k − m + 1)]T ∈ A si existe al 1 2 (2)
menos un par de entradas diferentes u (k) y u (k), de modo que la salida resultante de F
es la misma:
F (2) [y(k), . . . , y(k
− n + 1); u(1)(k), . . . , u(k − m + 1)] = (2) F [y(k), . . . , y(k − n + 1); u(2) (k), . . . , u(k − m + 1)].
(4.5)
La proposici´on 4.1 es de utilidad para determinar la invertibilidad de una funci´on.
Proposici´ on 4.1 [56]. Si la funci´ on f [y(k), . . . , y(k n +1); u(k), . . . , u(k m +1)] es mon´ otona con respecto a u(k) T entonces el sistema es invertible en [y(k), . . . , y(k n + 1); u(k 1), . . . , u(k m + 1)] .
−
−
−
− − Prueba: Si la funci´ on f [y(k), . . . , y(k − n +1); u(k), . . . , u(k − m +1)] es mon´ otona con respecto a u(k), y u(1) (k) > u(2) (k) entonces para el mismo punto [y(k), . . . , y(k − n + 1); u(k − 1), . . . , u(k − m + 1)]T , se cumple: f [y(k), . . . , y(k − n + 1); u(1) (k), . . . , u(k − m + 1)] > f [y(k), . . . , y(k − n + 1); u(2)(k), . . . , u(k − m + 1)]. Y de forma similiar, si u(1) (k) < u (2) (k)
− n + 1); u(1)(k), . . . , u(k − m + 1)] < f [y(k), . . . , y(k − n + 1); u(2)(k), . . . , u(k − m + 1)]. f [y(k), . . . , y(k
Por tanto el sistema es invertible.
El control inverso queda definido en la proposici´on 4.2.
Proposici´ on 4.2 (Control Inverso –One-Step Ahead) Sea el sistema (4.2): y(k + 1) = F (2) [y(k), . . . , y(k en donde F (2) es una funci´ on suave.
− n + 1); u(k), . . . , u(k − m + 1)],
Si la funci´ on F (2) tiene la inversa G con respecto a u(k). La ley de control: u(k) = G[y ∗ (k + 1), y(k), . . . , y(k
− n + 1); u(k − 1), . . . , u(k − m + 1)],
(4.6)
es tal que: y(k) = y ∗ (k)
∀ k ≥ 1.
(4.7)
La ley de control (4.6) hace que en 1 pasos se cumpla con el objetivo de control (4.7). – JMFA –
95
4.3. Control por modelo inverso
Cap´ıtulo 4. Control de Sistemas
Prueba: Si F 2 tiene inversa G con respecto a u(k), entonces se sustituye a (4.6) en F 2 : y(k + 1) = y ∗ (k + 1), as´ı, que y(k) = y ∗ (k) cuando k
(4.8)
≥1
De esta forma el esquema de control por modelo inverso requiere de la transformaci´on inversa con respecto a la se˜nal de control. Como se ha visto es posible usar a las redes neuronales para sustituir a dicha transformaci´on. Para este objetivo se han propuesto dos m´etodos para obtener los datos de entrenamiento de la red neuronal. Referencia
* y(k-1 )
u(k)
y(k-n+1)
z-1
-1
z
F(.)
G(.) z-1
z-1
u(k -m ) y(k)
y(k -1)
u(k)
y(k)
y(k-n+1)
u(k -m ) -1
z-1
z
z-1
z-1 y(k)
u(k)
Figura 4.4:
z-1
Control por modelo inverso. Esquema general del control por modelo inverso.
M´ etodo directo: [2]. En este esquema se aplica una se˜nal de exitaci´on a la planta. La salida de la planta se usa como entrada a la red neuronal. La respuesta generada por la red neuronal se compara con la se˜nal de exitaci´o n y por medio del algoritmo de entrenamiento se ajustan los pesos de la red para reducir la diferencia entre estas dos se˜nales. Ver figura 4.5. a El m´etodo directo tiene algunos inconvenientes: 1. Si la planta es un sistema no causal, o no est´a bien definido (que distintas entradas produzcan la misma respuesta), la mayor´ıa de las redes neuronales y algoritmos de entrenamiento generan modelos inversos incorrectos. 2. El esquema directo necesita que la se˜ nal de exitaci´on de la planta expanda su respuesta en la zona de operaci´on deseada, pero si no se tiene informaci´on sobre la forma de responder de la planta, es muy dif´ıcil determinar la se˜nal adecuada de exitaci´on para los objetivos de control. A lo anterior se dice que el esquema directo no es orientado al objetivo . 3. El esquema de control no tiene retroalimentaci´on, debido a esto, los efectos no contemplados durante el entrenamiento afectaran en su desempe˜no. El primero de los puntos anteriores se relaciona a la existencia del modelo inverso de la planta. Es decir, que la relaci´ on entre las variables de salida con respecto a las variables de entrada de la planta no tenga ambig¨uedades. El segundo punto tiene que ver con el concepto de exitaci´ on persistente (ver secci´on 3.3.4). Al no tener informaci´on previa sobre como exitar a la planta para obtener datos de entrenamiento que correspondan a la zona de operaci´on de inter´es, es necesario probar distintos tipos de se˜nales con el fin de extraer suficiente informaci´on de la planta para hallar la relaci´on entre la entrada y salida. 96
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.3. Control por modelo inverso
M´ etodo especializado: [2]. La desventaja del m´etodo directo para obtener el modelo inverso del sistema es que no puede ser entrenado de forma selectiva para que responda correctamente en la regi´on de salida del sistema que es de inter´es, debido a que normalmente no se sabe cual se˜nal de entrada corresponde a la salida deseada. El m´ etodo especializado genera los datos de entrenamiento de la red para la regi´on de operaci´on deseada, esto porque la red neuronal es alimentada directamente por la se˜nal de referencia. Ver figura 4.5. d. Entonces el error se forma por la diferencia entre la se˜nal deseada y la respuesta de la planta (error de control) y con este se entrena a la red neuronal para reducir su discrepancia. Por esto el m´etodo especializado se dice que es orientado al objetivo . En el m´etodo especializado opcionalmente se puede utilizar otra red neuronal previamente entrenada para obtener un modelo de la planta. As´ı que en lugar de utilizar la salida de la planta para calcular el error del modelo inverso, se utiliza la salida del modelo neuronal para medir este error. Se pueden citar dos razones para optar por usar un modelo neuronal de la planta: 1. Si no se dispone del modelo matem´atico de la planta. Se puede utilizar un modelo neuronal y utilizarlo para retropropagar el error de seguimiento a trav´es de esta red; y de esta forma, evaluar los gradientes de salida. Recordar que una caracter´ıstica de las redes neuronales es que son invertibles . Es decir, que dado un determinado estado de la red (para un est´ımulo particular) es posible evaluar la sensibilidad entrada/salida, o lo que es lo mismo hacer un an´alisis de sensibilidad (ver ap´endice F). 2. En el caso de que la salida de la planta sea ruidosa, es preferible utilizar la respuesta del modelo directo de la planta en lugar de su salida real.
s e n t r a d a s
RN pesos Ajuste
Algoritmo de ajuste
s a l i d a s
-
+
e n t r a d a s
Planta Datos
s a l i d a s
yp
yd
e n t r a d a s
RN pesos
s a l i d a s
e n t r a d a s
e n t r a
e r r o r
Ajuste
Algoritmo de ajuste
(a)
d a s e r r o r
Planta Datos
M RN pesos
s a l i d a s
yp +
-
ym s a l i d a s
(b)
Esquemas para la obtenci´ on del modelo inverso de un sistema. (a) M´etodo directo. (b) M´etodo especializado. ................................................................................................................. Figura 4.5:
Ya que se tiene una buena aproximaci´on del modelo inverso de la planta, se puede utilizar este modelo neuronal como controlador. En el m´etodo directo para la obtenci´on del modelo inverso se propone usar a la red neuronal como un precompensador de la planta, as´ı se obtiene un control en lazo abierto ( feedforward ). De tal forma que si la planta es un sistema estable, el modelo inverso tambi´ en lo es, as´ı como el sistema de control compuesto por la red neuronal y la planta. Pero este esquema de control no compensa los cambios externos que afecten a la planta que no hayan sido contemplados durante el entrenamiento del modelo inverso. En el caso del m´etodo especializado se puede utilizar el mismo esquema de la figura 4.5. b para controlar a la planta. Si se tiene un modelo de la planta se utiliza esta informaci´on para calcular la derivada de la salida de la red neuronal de control con respecto el error de control y utilizar el algoritmo de ajuste para evaluar la correcci´on de los pesos de la red neuronal. Si no se tiene el modelo matem´atico de la planta se utiliza otra red neuronal para modelar su comportamiento, y durante el entrenamiento de la red de control se retropropaga el error de control a trav´es de este modelo directo de la planta hasta la salida de la red de control, y con esta informaci´on se utiliza el algoritmo de entrenamiento de los pesos de la red de control. Se puede obtener una versi´on adaptable de este esquema de control si se permite que el algortimo de ajuste se mantenga en operaci´on, de esta forma se logra un sistema de lazo cerrado, o retroalimentado, a trav´es del algoritmo de aprendizaje. – JMFA –
97
4.3. Control por modelo inverso
Cap´ıtulo 4. Control de Sistemas
Ejemplo 4.2 (M´ etodo directo) En el siguiente ejemplo se muestra el uso del m´etodo directo para la generar del modelo inverso de un sistema. Como se ha explicado, el modelo inverso puede utilizarse como un precompensador, de tal forma que cancela el efecto de la planta obteniendo una relaci´ on aproximada de uno a uno entre la se˜ nal de entrada del precompensador y la respuesta de la planta. Este esquema carece de retroalimentaci´ on, esto lo hace sensible a las perturbaciones no consideradas. Una aplicaci´ on para este esquema se halla en el campo de la rob´ otica. En una cadena cinem´ atica abierta la relaci´ on que existe entre la posici´ on relativa de los eslabones y la posici´ on del punto final en el espacio de trabajo se le conoce como cinem´atica directa. En este tipo de cadenas se puede obtener la relaci´ on entre las variables de articulaci´ on y las del punto final en el espacio de trabajo por medio de la geometr´ıa del mecanismo. Para la cadena que se muestra en la figura 4.6 la relaci´ on entre estas variables es la siguiente:
x cos(α1 ) + cos(α1 + α2 ) = . y sen(α1 ) + sen(α1 + α2 )
(4.9)
Es evidente que la relaci´ on entre la posici´ on de las articulaciones y la posici´ on del punto final es no lineal. Generalmente el objetivo de control de este tipo de mecanismos est´ a expresado en funci´ on de la posici´ on del punto final. De tal manera que es necesario determinar las posiciones de las articulaciones que corresponden a un punto en el espacio de trabajo, es decir, se debe hallar la relaci´ on inversa de (4.9). Puede encontrarse la forma an´alitica de este mecanismo en [51]. Aqu´ı se presenta la forma de entrenar una red neuronal de m´ ultiples capas para modelar la relaci´ on inversa de (4.9).
-
α2
Espacio de Trabajo
α1 α2 -
1
α1
2
Descripci´ on de un mecanismo de dos eslabones. Izquierda: geometr´ıa del mecanismo. Derecha: ´area de trabajo del mecanismo. ................................................................................................................. Figura 4.6:
Para entrenar a la red neuronal primero se generan los datos para tal prop´ osito. El rango de las variables de articulaci´ on 2 es: α1 = 0, ..., 3 π y α2 = π, ..., 0 , cada uno de estos conjuntos con 20 elementos. Del producto cartesiano, α1 α2 se crean los argumentos de (4.9) y de esta forma se obtienen 400 pares (x, y). Entonces se tienen como datos de entrenamiento: (α1 (k), α2 (k)) (x(k), y(k)); k = 1, . . . , 400.
×
{
}
{− →
}
Se selecciona como rango de las posiciones de las articulaciones entre: α1 = 0,..., 23 π y α2 = π, ..., 0 , porque de esta manera se evita que para una misma posici´ on (x, y) corresponda m´ as de un par (α1 , α2 ), eliminando ambig¨ uedades. (aun quedan las correspondientes a la posici´ on (0, 0)x,y ).
{
}
{−
}
La red usada tiene dos entradas, un primer nivel oculto con 25 nodos (neuronas), una segunda capa oculta de 25 nodos, y la capa de salida con 2 nodos. La configuraci´ on es: 2, 25, 25, 2 . Las tres capas tienen una entrada independiente. La funci´ on de activaci´ on de las capas ocultas es logsig, y en la capa de salida es la funci´ on identidad.
{
}
La relaci´ on inversa entre las variables est´a definida por: (x(k), y(k)) (α1 (k), α2 (k)). La red neuronal se entrena con el algoritmo de retropropagaci´ on del error. El error es igual a la diferencia: e(k) = ([α1 (k) α2 (k)]T [ynn1 (k) ynn2 (k)]T ). La funci´ on de desempe˜ no es : E (k) = 12 e(k)T e(k). Los par´ametros de entrenamiento son: α y β = 0.01. Ver el programa B.13, p´agina 183.
→
98
– JMFA –
−
Cap´ıtulo 4. Control de Sistemas
4.3. Control por modelo inverso
Cinemática Directa: x
Cinemática Directa: y
2
2
1
1
x 0
y 0
−1
−1
−2 0
−2 0
0 2
0
−1 4
2
−2 6
−3
4
−2 6
α2
α1
−1
−3
α2
α1
Cinem´ atica directa del mecanismo. Izquierda: coordenada x en funci´on de los ´angulos α1 , α2 . Derecha: coordenada y en funci´on de los ´angulos α1 , α2 . ................................................................................................................. Figura 4.7:
En la figura 4.8. Se presenta las gr´aficas del resultado del entrenamiento de la red neuronal. Se presenta la respuesta de la red neuronal para las posiciones: x y, donde x e y = 0.5, . . . , 0.5. El ´angulo α2 est´a relacionado de forma cuadratica con respecto a (x, y). En tanto que α1 tiene un cambio brusco en donde es ambigua para (x, y).
×
−
Cinemática Inversa: α1
Cinemática Inversa: α2
10 1
α
2
5
2
0
α−2
0
−5 −1
−1 −0.5
−4 −1
−0.5 0
−0.5
0 0.5
y
1
−0.5 0
0.5 1
−1
0 0.5
x
y
0.5 1
x
1
Cinem´ atica inversa del mecanismo. Izquierda: ´angulo α1 en funci´on de las coordenadas x e y. Derecha: ´angulo α2 en funci´on de las coordenadas x e y. ................................................................................................................. Figura 4.8:
Para evaluar la precisi´ on del modelo inverso obtenido, en la tabla.4.1, se comparan los resultados producidos por la red neuronal con sus valores verdaderos para once puntos de prueba. De la tabla, el error m´aximo de (x, y) es de (2.6, 1.1) cm; el error promedio en (x, y) es (0.9, 0.5) mm; la desviaci´ on del error es de (1.1, 0.8) cm, respectivamente. En la figura 4.9, se presenta la trayectoria de calculada por la red neuronal compar´andola con la trayectoria deseada. En la primera, se observan las posiciones de las articulaciones calculadas por la red neuronal para seguir la trayectoria circular de r = 0.7 m. En la otra gr´afica la trayectoria a seguir es la l´ınea recta: (0.5, 0.5) m (0.5, 0.5) m.
−
– JMFA –
−
99
4.3. Control por modelo inverso (x, y) (0.5,-0.5) (1.0, 0.0) (0.5, 0.0) (0.5, 0.5) (0.0, 0.5) (0.0, 0.0) (0.0, 1.0) (-0.5, 0.5) (-0.5, 0.0) (-1.0, 0.0) (-0.5,-0.5)
Cap´ıtulo 4. Control de Sistemas (α1 , α2 ) <◦ > ( -0.4070, -89.8975) ( 3.0857, -7.4251) ( 59.0749,-119.2062) ( 91.6786, -90.7152) (149.9147,-120.9133) (136.8866,-179.6424) ( 94.4242, -10.4733) (181.1163, -88.1315) (241.1180,-121.1180) (182.8110, -4.3217) (269.8826, -88.6224)
(ˆ x, yˆ) (0.4973,-0.5035) (0.9978,-0.0109) (0.5060,-0.0047) (0.4853, 0.5082) (0.0047, 0.4931) (0.0021, 0.0023) (0.0141, 0.9957) (-0.5259, 0.4896) (-0.4915,-0.0071) (-0.9992,-0.0113) (-0.5009,-0.5110)
m´ ax(ex , ey ) ave(ex , ey ) σrms (ex , ey )
(0.0259, 0.0113) (0.0009, 0.0054) (0.0111, 0.0084)
(ex , ey ) (0.0027, 0.0035) (0.0022, 0.0109) (-0.0060, 0.0047) (0.0147,-0.0082) (-0.0047, 0.0069) (-0.0021,-0.0023) (-0.0141, 0.0043) (0.0259, 0.0104) (-0.0085, 0.0071) (-0.0008, 0.0113) (0.0009, 0.0110)
Resultados del modelo neuronal inverso. Los puntos de prueba (x, y) son aplicados por la red neuronal, y se obtienen los ´angulos (α1 , α2 ). Con estos ´angulos se calculan las posiciones de los eslabones (ˆ x, yˆ). Los errores en el espacio de las articulaciones son (ex , ey ). ave() es el valor promedio de los errores, y σrms () es la desviaci´on del error. .......................................................................................................... Tabla 4.1:
Posición de los eslabones
Posición de los eslabones
1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
m 0
m 0
−0.2
−0.2
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8
−1
−1 −1
−0.5
0
0.5
1
−1
m
−0.5
0
0.5
1
m
Posici´ on de los eslabones. Izquierda: Utilizando la red neuronal con la din´amica inversa se determinan los a´ngulos: α1 y α2 de los eslabones para seguir una trayectoria circular, r = 0.7 m. Derecha: seguimiento de una trayectoria recta, (0.5, 0.5) m-(0.5, 0.5) m. ................................................................................................................. Figura 4.9:
−
Ejemplo 4.3 (M´ etodo Especializado) En este ejemplo se presenta el control de una planta no lineal usando el m´etodo especializado. El sistema a controlar es un sistema de una entrada y una salida, [8, 56]: y(k + 1) =
y(k) + u(k)3 , 2 1 + y(k)
(4.10)
y(k) 3 (2) En donde d = 1, F (2) (y(k), u(k)) = 1+y(k) 2 + u(k) . Notar que el sistema es invertible con respecto a u(k) porque F es mon´ otona —funci´ on c´ ubica de u(k).
En este ejemplo se va a suponer que no se tiene informaci´ on de la estructura de F 2 . As´ı, el primer paso para implementar el esquema de control por medio del m´etodo especializado se necesita calcular el modelo directo del sistema (4.10). En [8] se supone que se conoce que la estructura de F 2 es: F 2 = F 2 (y) + F 2 (u), teniendo esto como conocido, 100
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.3. Control por modelo inverso
en [8] se entrenan dos redes neuronales de m´ ultiples capas de estructura 1,20,10,1 , cada una de estas redes neuronales se entrenan para identificar las funciones desconocidas F 2 (y) y F 2 (u). Pero en este ejemplo se va a entrenar una sola red neuronal para identificar el modelo directo de la planta. La red que se propone tiene una estructura 2, 50, 50, 1 . El vector de entrada de esta red neuronal es [y, u]. El proceso de entrenamiento se detiene cuando el error medio cuadr´ atico −3 es menor de 10 . El programa para el entrenamiento de la red neuronal se localiza en ap´endice B.15, p´agina 189.
{
}
{
}
Por medio del modelo neuronal de la planta se puede retropropagar el error de control, ec (k) = y d (k) y(k), a trav´es de esta red hasta la entrada de control, u(k) y se obtiene el valor de sensibilidad de la respuesta del modelo neuronal, ∂ ˆ y(k) ∂y(k) yˆ(k) con respecto a la entrada de control, ∂u(k) . Este valor de sensibilidad se utiliza en lugar de ∂u(k) porque se hace la suposici´ on de que no se conoce su descripci´ on matem´atica.
−
e n t r a d a s
RN pesos
s a l i d a s
∂ ∂ Ajuste
Algoritmo de ajuste
e r r o r
e n t r a
Planta
d a s
Datos
e n t r a d a s
RN pesos
∂ ∂
s a l i d a s
∂ ∂ s a l i d a s
Error Medio Cuadrático
+
-
=
^
∂ ∂
=
∂ ∂
= ∂∂
∂ ∂
^
∂ ∂
∂ ∂
Por retropropagación del error
^
Control inverso especializado. Al suponer que no se cuenta con la descripci´on matem´atica de la planta se utiliza un modelo neuronal para retropropagar ec (k) a trav´es del modelo neuronal. ................................................................................................................. Figura 4.10:
−
Observando la estructura del esquema de control por el m´etodo especializado que se muestra en la figura 4.10, el objetivo de control es minimizar el error medio cuadr´ atico entre el valor de referencia, y d (k), y la respuesta de la planta, y(k). Si w es un peso de la red neuronal de control, se puede utilizar algoritmo de retropropagaci´ on del error para evaluar el gradiente de la funci´ on de desempe˜ no con respecto al peso w. La cadena de derivadas parciales es la siguiente: ∂J (k) ∂u(k) ∂y(k) ∂e c (k) ∂J (k) = , ∂w(k) ∂w(k) ∂u(k) ∂y(k) ∂e c (k)
(4.11)
en donde: ∂J (k) = ec (k) ∂e c (k) ∂e c (k) = 1 ∂y(k) ∂y (k) No es posible calcular. ∂u(k) ∂u(k) Se puede evaluar a trav´ es de retropropagaci´ on. ∂w(k)
−
(4.12) (4.13) (4.14) (4.15)
As´ı que si no se cuenta con la descripci´ on matem´ atica de la planta la derivada parcial (4.14). Para resolver este problema se propone utilizar el modelo neuronal de la planta y, sobre este retropropagar las derivadas parciales que le anteceden. De esta forma, la derivada parcial de la funci´ on de desempe˜ no con respecto al peso de la red de control (modelo inverso) est´a expresado por: ∂J (k) ∂u(k) ∂ ˆ y(k) ∂e c (k) ∂J (k) = , ∂w(k) ∂w(k) ∂u(k) ∂y(k) ∂e c (k)
(4.16)
en donde: ∂ ˆ y(k) Se puede evaluar a trav´ es de retropropagaci´ on. ∂u(k) – JMFA –
(4.17) 101
4.4. Control Adaptable
Cap´ıtulo 4. Control de Sistemas ∂u(k) Se puede evaluar a trav´ es de retropropagaci´ on, ∂w(k)
(4.18)
yˆ(k) es la salida de la red de identificaci´ on, que debido a que se conoce su estructura y se ha entrenado para ser una ∂y(k) aproximaci´ on de y(k) se utiliza para sustituir la derivada parcial ∂u(k) . As´ı que se utiliza el gradiente (4.16) para actualizar los pesos de la red neuronal de control. La estructura de la red de control es: 2, 50, 50, 1 . El vector de entrada est´ a formado por: [y d (k + 1); y p (k)] y su salida es el valor estimado para la se˜ nal de control, u(k).
{
}
En la figura 4.11 se presentan las gr´aficas donde se muestra la evoluci´ on del entrenamiento de la red neuronal de control. En este ejemplo la red neuronal usada para modelar a la planta se entrena antes de la red usada como controlador, as´ı que el proceso de entrenamiento de la red de control se lleva independientemente de la red de identidicaci´ on. Si la zona de operaci´ on de la planta se aleja del usado durante el entrenamiento de la red de identificaci´ on, se puede activar el entrenamiento para que realize los ajustes para disminuir la diferencia con respecto a la respuesta de la planta. En las figura 4.11, a y b se presenta el comportamiento del sistema en la primera ´epoca de entrenamiento de la red de control. Se observa que la red de control no ha sido a´ un ajustada para que el sistema (l´ınea continua) siga la referencia deseada (lnea por trazos), y en la gr´afica del error cuadr´ atico medio todav´ıa es grande. En las figura 4.11, c y d se presenta la respuesta del sistema una vez completadas 50 ´epocas de entrenamiento. Notar como el sistema ya p uede seguir a la se˜ nal de reerencia y que el error medio cuadr´atico ha disminuido. Y en las figuras 4.11, e y f est´an las gr´aficas de las se˜ nales para el error y el control.
4.4.
Control Adaptable
Los sistemas de control tiene como objetivo alterar el comportamiento de los sistemas para manejar algunas de sus variables y satisfacer alg´un criterio. Los m´ etodos de control se han basado en el an´alisis del modelo del sistema para determinar cual debe ser la estructura de control que permita cumplir con las especificaciones requeridas. El controlador as´ı dise˜nado tiene un grupo de par´ametros que deben saleccionarse durante la etapa de dise˜no. Una vez realizado lo anterior, resta implementar la estructura del controlador con los par´ ametros obtenidos. El m´ etodo anterior resulta suficiente si los sistemas operan en ambientes estables, en donde las condiciones son constantes, es decir, que no se espera que vayan a ser afectados de forma brusca o paulatina por cambios no contemplados durante la fase de dise˜no del control. Pero como se puede imaginar, es muy dif´ıcil asegurar condiciones de operaci´on semejantes para la mayor´ıa de los sistemas. Tambi´en es muy complicado modelar todos los fen´omenos que afectan a los sistemas, debido a que es necesario hacer simplificaciones que permitan obtener modelos que sean manipulables (por lo general representado por ecuaciones lineales). De lo anterior, se plantea la necesidad de generar controles que tengan la capacidad de actualizarse en funci´on de los cambios ambientales y de modelado que los sistemas experimentan. Dentro de este tipo de sistemas de control est´an los llamados robusto y adapatable. Los sistemas de control robusto tienen el enfoque de producir reguladores que operan satisfactoriamente mientras que un grupo de par´ametros de la planta est´en dentro de un intervalo de condiciones extremas, garantizando un grado de rechazo de perturbaciones y de desempe˜no. Un ejemplo de este tipo de t´ecnicas es el control multivariable o H-infinito . Se conoce como control multivariable porque sigue un m´etodo de an´alisis de frecuencia, pero a diferencia de los cl´asicos que opera para sistemas escalares, ´este se aplica a sistemas con m´as de una entrada y m´as de una salida, y se denomina como H-infinito debido a que se basa en la minimizaci´on de la norma H-infinito de la funci´on de transferencia de lazo cerrado. El control robusto garantiza la estabilidad del sistema dentro de todo el rango de variaci´on de los par´ametros. Otras t´ecnicas de control robusto son las llamadas: Ganancias programadas (Gain Schedule) y Desigualdades Matriciales Lineales (Linear Matrix Inequalities). El control adaptable es otra t´ecnica que maneja el cambio de las condiciones de operaci´on y de par´ ametros del sistema controlado. Pero sigue un camino diferente al del control robusto. El control adaptable aborda el problema buscando estructuras que modifiquen sus variables. As´ı que en los esquemas de control adaptable existen estructuras que con base en la informaci´on disponible actualizan un conjunto de par´ ametros.
102
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.4. Control Adaptable
Control Inverso (Especializado) −−Seguimiento
4
Época=2
Época=2
1.8
3
1.6
2
1.4
1
1.2
0
1
−1
0.8 0.6
−2
0.4
−3 −4
Control Inverso (Especializado) −−ECM
2
0.2 0
500
1000
1500 (a)
2000
2500
3000
Control Inverso (Especializado) −−Seguimiento
4
0
0
1500 (b)
2000
2500
3000
0.18
3
0.16
2
0.14
1
0.12
0
0.1
−1
0.08 0.06
−2
0.04
−3 −4
1000
Control Inverso (Especializado) −−ECM
0.2
Época=50
500
0.02 0
500
1000
1500 (c)
2000
2500
3000
Control Inverso (Especializado) −−ec(k)
2
0.5
1
0
0
−0.5
−1
−1
−2
−1.5
−3 500
1000
1500 (d)
2000
2500
3000
Control Inverso (Especializado) −−u(k) Época=50
2
0
500
3
1
−2
0
4
Época=50
1.5
0
1000
1500 (e)
2000
2500
3000
−4
0
500
1000
1500 (f)
2000
2500
3000
Control por modelo inverso (M´etodo especializado). Se presenta el comportamiento del control inverso por medio del m´etodo especializado, el proceso de actualizaci´on de los pesos de la red neuronal de control se realiza de forma iterativa. La l´ınea discontinua (- - -) representa el valor de referencia deseado y la l´ınea continua (—-) es la salida del sistema no lineal. En (c) y (d) se est´an los resultados de seguimiento completadas 50 ´epocas de entrenamiento. En (e) est´ a el error de control, y en (f) la se˜ nal de control. ................................................................................................................. Figura 4.11:
– JMFA –
103
4.4. Control Adaptable
Cap´ıtulo 4. Control de Sistemas
Son dos las estructuras de control adaptable que m´ as se utilizan. En primer lugar est´a el control adaptable indirecto , que considera que los cambios del sistema controlado pueden ser evaluados a trav´es de un modelo del sistema o identificador. Este modelo recibe la misma informaci´on de entrada que el sistema controlado y tiene un conjunto de par´ ametros que deben ser ajustados para hacer que la respuesta del modelo y de la planta sea el mismo. Una vez alcanzado el empate de ambos modelos, el controlador utiliza los par´ ametros del modelo para calcular la se˜nal de control. En este esquema hay un mecanismo de ajuste de los par´ ametros del modelo. La otra estructura de control adaptable se conoce como control adaptable directo . En esta estructura los par´ametros ajustables son los del controlador. El mecanismo de ajuste utiliza la informaci´on disponible para calcular la desviaci´on del sistema controlado del desempe˜ no deseado con el prop´osito de determinar el grado de correcci´on de los par´ametros del controlador. Notar que el control adaptable indirecto los par´ ametros ajustables son los del modelo de identificaci´on, por otro lado, en el control adaptable directo los par´ ametros ajustables son los del controlador, as´ı que no es necesario tener un modelo de identificaci´on. En la figura 4.12 se presentan los esquemas a bloques del control adaptable indirecto y directo. Parámetros del Controlador
Parámetros del Sistema
Mecanismo de adaptación
Diseñador de control
Identificador
Parámetros del Controlador
r
Controlador
u
Planta
y
r
Controlador
(a)
+
-
u
Planta
ei y
(b)
Control Adaptable. En los sistemas de control adaptable hay dos estructuras que han dominado. (a) En el control adaptable directo los par´ametros del controlador se obtienen sin necesidad de un sistema de identificaci´on de la planta. (b) El control adaptable indirecto tiene un sistema de identifici´on de la estructura de la planta. ................................................................................................................. Figura 4.12:
4.4.1.
Control Adaptable Indirecto
En la referencia [16] se dan detalles sobre el control adaptable directo e indirecto. En esta secci´on se presenta este material para reunir toda la informaci´on. Los sistemas de inter´es est´an descritos por la siguiente expresi´on: y(k + 1) = f [v(k), u(k)] ,
(4.19)
en donde f () es una funci´on suave pero desconocida. Los argumentos de la funci´on son la entrada u() y la salida y() que son valores escalares y medibles. . El vector v() es funci´on de los valores pasados de u y y: v(k) = [y(k), y(k
− 1), . . . , y(k − n + 1); u(k − 1), u(k − 2), . . . , u(k − m + 1)]T ,
(4.20)
en donde las constantes n > 0, m > 0, y por lo general n > m. En lo sigue se supone que las constantes n y m son conocidas. En la pr´ actica algunos elementos del vector v() pueden no estar presentes. Para el control adaptable indirecto se utiliza la siguiente subclase de sistemas: y(k + 1) = α [v(k)] + β [v(k)] u(k),
(4.21)
en donde α() y β () son funciones suaves desconocidas del vector v(). As´ı que se descartan los sistemas no lineales con respecto a u(k), no obstante, el sistema puede ser no lineal con respecto a los valores pasados de u(). 104
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.4. Control Adaptable
Hay otra restricci´on que se impone sobre los sistemas del tipo (4.21). Se pide que la funci´on β () este acotada por abajo por una constante positiva y lejana de cero. Esta condici´on evita que la funci´on sea cero para alg´un valor del vector v() y que tenga cambios de signo.
El objetivo de control: Desarrollar un sistema controlador que siga la refencia r(k); en donde r(k) est´a acotada por una constante finita.
|
|
El error de control es la diferencia entre el valor de referencia y la salida del sistema: e(k) = r(k)
− y(k).
(4.22)
En el control adaptable se aplica en sistemas en los que existe un cierto grado de desconocimiento de su representaci´on. En el sistema (4.21), las funciones α() y β () se dividen en una parte conocida y en otra desconocida. En la pr´actica, la parte conocida de estas funciones representa la informaci´on disponible del sistema, pero puede no existir en el caso de que se carezca totalmante de informaci´on. La estructura de estas funciones es la que sigue: desconocido α [v(k)] = β [v(k)] =
conocido
αd [v(k)] + αc [v(k)] , β d [v(k)] + β c [v(k)] ,
(4.23) (4.24)
en donde el sub´ındice “d ” indica la parte desconocida y “ c ” la parte conocida. La funci´on β () se supone acotada: 0 < β 0
≤ β [v(k)] ,
(4.25)
para alg´un β 0 > 0 y para todo v(k). Pero de igual modo se permite definir una cota por arriba de la funci´on β () en el caso de que sea definida negativa.
Controlador por cancelaci´on ideal: Debido a que la referencia es conocida, el valor de r(k + 1) est´a disponible. Utilizando la expresi´on de la planta (4.21). El control ideal u∗ para este sistema es: u∗ (k) =
r(k + 1) α [v(k)] , β [v(k)]
−
(4.26)
usando a u∗ (k) como se˜nal de control linealiza la din´amica de (4.21): y(k + 1) = α [v(k)] + β [v(k)] u∗ (k), r(k + 1) α [v(k)] = α [v(k)] + β [v(k)] , β [v(k)] y(k + 1) = r(k + 1).
−
(4.27) (4.28) (4.29)
De manera que y(k) = r(k) despu´es de 1 pasos. El problema es que para utilizar la ley de control (4.26) se necesita conocer las expresiones exactas de las funciones α() y β (). En el control adaptable indirecto se propone construir un sistema de identificaci´on de la planta que permita obtener una aproximaci´on de la estructura y utilizar esta informaci´on en la ley de control. Por lo visto en la secci´on 3.3, cap´ıtulo 3, se puede utilizar la ecuaci´on (3.5): y(k) = θT φ(k
− 1),
es decir, se puede utilizar un aproximador lineal en los par´ametros. As´ı que usando una estructura similar para estimar las funciones desconocidas de α [v(k)] y β [v(k)]: ∗ T αd [v(k)] = θα φα [v(k)] + ωα (k + 1), ∗ T β d [v(k)] = θβ φβ [v(k)] + ωβ (k + 1),
– JMFA –
(4.30) (4.31) 105
4.4. Control Adaptable
Cap´ıtulo 4. Control de Sistemas
en donde ωα y ωβ son los errores debidos a utilizar un aproximador finito. ∗ T Los vectores de par´ametros θα y θβ∗ T son los ideales para las funciones αd [v(k)] y β d [v(k)], tales que:
θα∗
= arg m´ın
θα ∈Ωα
θβ∗ = arg m´ın
θβ ∈Ωβ
sup
∗ T θα φα
| |
[v(k)]
− αd (v)
,
(4.32)
sup θβ∗ T φβ [v(k)]
− β d (v)
,
(4.33)
v∈Sv
v∈Sv
| |
en donde Ωα y Ωβ son conjuntos acotados y conexos que contienen la familia de vectores de par´ametros θα y θβ , respectivamente. El conjunto S v es cerrado y acotado; representa el rango en donde las aproximaciones de las funciones α() y β () son v´ alidas.
Controlador por cancelaci´on aproximada: Usando como ley de control para el sistema (4.21) a la expresi´on: u(k) =
r(k + 1) α ˆ [v(k)] , ˆ β [v(k)]
−
(4.34)
ˆ() son estimaciones de las funciones α() y β (), respectivamente, y definidas como sigue: en donde α ˆ () y β T α ˆ [v(k)] = θα (k)φα (v) + αc (k), T ˆ β [v(k)] = θβ (k)φβ (v) + β c (k).
(4.35) (4.36)
Se pueden utilizar m´etodos de optimizaci´on para seleccionar los vectores de par´ametros θα (k) y θβ (k) para tratar de minimizar los errores de identificaci´on (ver las secciones 3.3.1-3.3.3 del cap´ıtulo 3). Con los algoritmos de proyecci´on se puede garantizar que los vectores de par´ametros θα y θβ hallados pertenecen a los conjuntos Ωα y Ωβ , respectivamente; ˆ tambi´en aseguran que β [v(k)] > β 0 y por tanto la se˜nal de control est´a bien definida.
El error de seguimiento es: e(k) = rˆ(k)
− y(k). Y si se avanzan d pasos, de la forma siguiente: e(k + 1) = r(k + 1) − y(k + 1),
(4.37)
sustituyendo a y(k + 1) en la expresi´on anterior se obtiene: e(k + 1) = r(k + 1)
− α [v(k)] − β [v(k)] u(k),
(4.38)
y despejando a r(k + 1) de (4.34), para sutituir la en (4.38), se tiene: e(k + 1) = α ˆ [v(k)]
{
− α [v(k)]} +
ˆ β [v(k)]
− β [v(k)]
u(k).
(4.39)
Es interesante notar que al definir como modelo de identificaci´on a : ˆ yˆ(k + 1) = α ˆ [v(k)] + β [v(k)] u(k),
(4.40)
y haciendo uso de la ley de control (4.34) en la planta (4.21), se obtiene la ecuaci´on del error de seguimiento. e(k + 1) = yˆ(k + 1)
− y(k + 1),
(4.41)
que puede interprestarse como el error de identificaci´ on de la planta, es decir, que representa la calidad en que el modelo se sintoniza para representar la planta. Los errores en los vectores de par´ ametros quedan definidos como: θ˜α = θα θ˜β = θβ 106
− θα∗ , − θβ∗ .
– JMFA –
(4.42) (4.43)
Cap´ıtulo 4. Control de Sistemas
4.4. Control Adaptable
De lo anterior, el error de seguimiento se convierte en la ecuaci´on: T ˜T (k)φβ [v(k)] u(k) e(k + 1) = θ˜α (k)φα [v(k)] + β β
− ωα(k + 1) − ωβ (k + 1)u(k),
(4.44)
y con esto se puede notar que el error de identificaci´on afecta al error de seguimiento de la referencia. Es posible obtener una ecuaci´on lineal del error de seguimiento, y ´esta es la que el m´etodo de optimizaci´on minimiza. Entonces, al considerar los siguientes vectores:
˜T θ˜ = θ˜αT , β β
T
,
θ(k) = θαT (k), β βT (k)
(4.45) T
,
T φ [v(k), u(k)] = φT α [v(k)] , φβ [v(k)] u(k)
(4.46) T
.
(4.47)
El vector que contiene los errores en la aproximaci´on de las funciones α() y β () es: ω(k) = ωα (k) + ωβ (k)u(k).
(4.48)
Finalmente, la ecuaci´on lineal del error de seguimiento queda de la forma siguiente: e(k + 1) = θ˜T (k)φ [v(k), u(k)]
− ω(k + 1).
(4.49)
Y sobre esta ecuaci´on se aplica alg´un m´etodo de optimizaci´on. En la ecuaci´on (4.48) se pueden definir cotas para los errores de aproximaci´on de las funciones de la manera siguiente: 0 0
≤ | ωα(k)| < W α , ≤ |ωβ (k)| < W β .
(4.50) (4.51)
Y con estas cotas en los errores se obtiene la cota del error de la ecuaci´on (4.49):
|ω(k)| = |ωα(k) + ωβ (k)u(k − 1)| ≤ W α + W β |u(k − 1)|.
(4.52)
Notar que es una ecuaci´on variante en el tiempo. En lo anterior se hace la suposi´on de que se conocen las cotas W α y W β , que son las que corresponden a la aproximaci´on ideal de las funciones α() y β (), pero en la pr´actica resulta dif´ıcil evaluar el grado se sintonizaci´on del identificador.
Ejemplo 4.4 (Control Adaptable Indirecto) En este ejemplo se utiliza un par de redes neuronales de multiples capas para identificar los componentes de un sistema no lineal y con esta informaci´ on se calcula la ley de control para que siga la se˜ nal de referencia. El sistema no lineal es el siguiente: y(k + 1) = 0.5
y(k) + [1 + y(k)] u(k), 1 + y(k)2
(4.53)
notar que el sistema (4.53) corresponde a la forma (4.21), en donde: y(k) , 1 + y(k)2 β [v(k)] = 1 + y(k),
α [v(k)] = 0.5
(4.54) (4.55)
son las funciones α() y β () que describen a la planta. De manera que este sistema es lineal con respecto a la entrada de control u(k). La condici´ on (4.25) para la funci´ on β [v(k)] se cumple si:
−1 < y (k),
(4.56)
– JMFA –
107
4.4. Control Adaptable
Cap´ıtulo 4. Control de Sistemas
esta restricci´ on debe conservarse durante el dise˜ no. La cancelaci´ on de la din´amica del sistema se logra con la ley de control ideal: u∗ (k) =
r(k + 1) α [v(k)]) , β [v(k)]
−
1 = r(k + 1) 1 + y(k)
(4.57) 0.5(k)
− 1 + y(k)2
.
(4.58)
Se supone que no se conocen las funciones α() y β () por lo que no se puede calcular la ley de control u∗ (4.58). De manera que se propone usar dos redes neuronales para aproximar las funciones α y β . Los dos aproximadores son los siguientes: α ˆ [v(k)] = θαT (k)φα (v), ˆ β [v(k)] = θβT (k)φβ (v),
(4.59) (4.60)
entonces se pueden utilizar dos redes neuronales de multiples capas para aproximar a estas funciones. Se puede interpretar al producto: θ T (k)φ(v) como la ´ ultima capa de la red. Y una vez obtenida las aproximaciones, o modelo de identificaci´ on de la planta (4.53), se puede construir la ley de control aproximada (4.34). Antes de calcular la ley de control se realiza una identificaci´ on, en donde se alimenta al sistema con la se˜ nal de entrada descrita por: u(k) = 0.5 + 0.25 sen(2kπ/10) + 0.5 cos(2kπ/2.5),
(4.61)
la identificaci´ on se realiza en cien ´epocas, constando cada una de cien iteraciones ( k = 0, ..., 100). Las dos redes usadas tienen una entrada, dos capas ocultas de diez neuronas y una capa de salida ( 1, 10, 10, 1 ), las constantes de aprendizaje son: η y α = 0.1. El programa se encuentra en el ap´endice B, p´agina 194.
{
}
Los resultados de la identificaci´ on de la planta est´an en la figura1 4.13. En la gr´afica del inciso (a), se muestra la comparaci´ on de la respuesta de la planta (4.53) marcada por la l´ınea por trazos, y con una l´ınea continua la del modelo de identificaci´ on: ˆ yˆ(k + 1) = α ˆ [v(k)] + β [v(k)] ,
(4.62)
en la ´epoca cien de entrenamiento de las redes. En figura1 4.13. b est´ a el valor medio cuadratico del error de idenˆ tificaci´ on. Las funciones α ˆ() y β () est´an representadas p or una red neuronal de multiples capas, y en figura1 4.13. c y d se muestra la comparaci´ on entre las funciones α() y β () con la respuesta de las redes neuronales entrenadas para aproximarlas, en estas gr´aficas las l´ıneas por trazos son las funciones que se desean aproximar y las l´ıneas continuas son la respuesta de las redes neuronales, se puede observar que en el rango presentado las redes han logrado aproximarse al comportamiento de las funciones α() y β (). Una vez identificado el sistema, y por tanto obtenidas las aproximaciones de las funciones α() y β (). Se utilizan para construir la se˜ nal de control, siendo esta la siguiente: u(k) =
r(k + 1) α ˆ [v(k)] , ˆ β [v(k)]
−
(4.63)
en donde las aproximaciones son las redes neuronales entrenadas. La se˜ nal de referencia, r(), es una se˜ nal cuadrada que va de cero a uno, con un per´ıodo de 40 iteraciones. Notar que no es problema obtener a r(k + 1) debido a que la se˜ nal de referencia es conocida. En la figura 4.14 se presentan los resultados de control. En la gr´afica 4.14. a est´an las curvas de la referencia ( l´ınea por trazos) y la respuesta del sistema controlado (l´ınea continua) se puede observar que hay seguimiento de la se˜ nal de referencia. En la gr´afica 4.14. b, se muestra el error de control. En la gr´afica 4.14. b se presenta la se˜ nal de control aplicada a la planta, u(). Y en la gr´afica 4.14. d se encuentra el valor medio cuadratico del error de control. En el esquema de control adaptable indirecto se utiliza un par de aproximadores para las funciones: α() y β (). Obteni´endose el modelo de identificaci´ on: ˆ yˆ(k + 1) = α ˆ [v(k)] + β [v(k)] , 108
– JMFA –
(4.64)
Cap´ıtulo 4. Control de Sistemas
4.4. Control Adaptable
Control Adaptable Indirecto
3
Control Adaptable Indirecto
1.4
Época=100
1.2
2.5
1
2
0.8 1.5 0.6 1
0.4
0.5 0
0.2
0
10
20
30
40
50 (a)
60
70
80
90
Control Adaptable Indirecto
0.35
100
0
0
10
20
30
40
50 (b)
60
70
80
90
100
Control Adaptable Indirecto
2
0.3 1.8 0.25 0.2
1.6
0.15 1.4 0.1 0.05
1.2
0 1 −0.05 −0.1
0
0.1
0.2
0.3
0.4
0.5 (c)
0.6
0.7
0.8
0.9
1
0.8
0
0.1
0.2
0.3
0.4
0.5 (d)
0.6
0.7
0.8
0.9
1
Control Adaptable Indirecto –Identificaci´ on . Se presenta los resultados de identificaci´on del sistema (4.53) de la ´epoca cien de entrenamiento. En la gr´afica (a) est´ an las respuestas de la planta (l´ınea por trazos) y del modelo de identificaci´on (l´ınea continua ). En (c) se muestra el valor medio cuadratico del error de identificaci´on. La gr´afica (c) presenta la comparaci´on entre la fuci´on α [y(k)] = y(k)/ 1 + y(k)2 , (l´ınea a trazos)y la aproximaci´on a trav´es de la red neuronal (l´ınea continua). Y en (d) est´ a la proximaci´on para β [y(k)] = 1 + y(k), siendo la l´ınea por trazos la funci´on y la l´ınea continua la proximaci´ on por medio de la red neuronal. ................................................................................................................. Figura 4.13:
ˆ() son las aproximaciones de las funciones. Notar que el modelo de identificaci´ on es de tipo serie-paralelo, en donde; α() ˆ y β ya que el vector : v(k) tiene los retardos producidos por la planta, que para el ejemplo es: y(k). Los resultados de control mostrados en la figura 4.14 son aceptables para el rango de operaci´ on impuesto a la planta, pero si se requiere modificar la zona de operaci´ on del sistema controlado se debe volver a entrenar a las redes neuronales para ajustar a los aproximadores de las funciones α() y β (). Esto puede realizarse sacando de operaci´ on al sistema y volviendo a correr una rutina de identificaci´ on. Otra opci´ on para reentrenar a los aproximadores es dejando la rutina de ajuste de los pesos operando constantemente, esto har´ a que el sistema logre ajustarse a los cambios de operaci´ on o de din´amica. En la figura 4.15 se presenta el caso en el que el ajuste de los pesos se mantiene operando mientras que se sigue controlando del sistema. El programa se puede ver en el ap´endice B.18, p´ agina 198. En la primera ´etapa se identifica al sistema durante veinte ´epocas, despu´es se aplica la se˜ nal de control y se deja operando el algoritmo de ajuste de los pesos. La se˜ nal de referencia utilizada es: r(k + 1) = 0.5 + 0.25 sen( – JMFA –
2πk ). 50
(4.65) 109
4.4. Control Adaptable
Cap´ıtulo 4. Control de Sistemas
Control Adaptable Indirecto
1.2
8
1
x 10
Control Adaptable Indirecto
−3
6
0.8
4
0.6 2 0.4 0
0.2
−2
0 −0.2
0
10
20
30
40
50 (a)
60
70
80
90
100
Control Adaptable Indirecto
1.2
−4
0
10
20
40
50 (b)
60
70
80
90
100
80
90
100
Control Adaptable Indirecto
−5
2
30
x 10
1.8
1
1.6 0.8
1.4
0.6
1.2
0.4
1 0.8
0.2
0.6 0 −0.2
0.4 0
10
20
30
40
50 (c)
60
70
80
90
100
0.2
0
10
20
30
40
50 (d)
60
70
Control Adaptable Indirecto –Control . Se presenta el comportamiento del control . En (a), la l´ınea por trazos es la referencia, r(k) y la l´ınea continua es la respuesta del sistema controlado, y(k). En (b) es el error de control, ec(k). En (c) se presenta la se˜nal de control, uc(k) y en (d) se presenta el valor medio cuadratico del error de control. ................................................................................................................. Figura 4.14:
y se simula durante quinientas iteraciones. En la figura 4.15. a est´an las gr´aficas del seguimiento de la referencia, en donde la l´ınea por trazos es la referencia, r(k), y la l´ınea continua es la respuesta de la planta. La figura 4.15. b es el error de control. En figura 4.15. c se muestra la se˜ nal de control aplicada al sistema, y en figura 4.15. d es el valor medio cuadratico del error de control.
110
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.4. Control Adaptable
Control Adaptable Indirecto
1.4 1.2
0.1
1
0
0.8
−0.1
0.6
−0.2
0.4
−0.3
0.2
−0.4
0
0
50
100
1 50
2 00
250 (a)
30 0
350
4 00
450
500
Control Adaptable Indirecto
0.7
Control Adaptable Indirecto
0.2
−0.5
0
50
10 0
150
200
25 0 (b)
30 0
35 0
400
4 50
500
400
45 0
500
Control Adaptable Indirecto
0.025
0.6 0.02 0.5 0.015
0.4 0.3
0.01
0.2 0.005 0.1 0
0
50
100
15 0
200
2 50 (c)
300
35 0
40 0
450
50 0
0
0
50
100
150
200
25 0 (d)
300
3 50
Control Adaptable Indirecto –En l´ınea ınea . Se presenta el comportamiento del control . En (a) Se observa como la respuesta de la planta, y (k ), converge con la se˜nal nal de referencia, r(k), En (b) est´ a el error de control, ec ec((k ). En (c) se prese presenta nta el con control trol aplicado al sistem sistema, a, uc uc((k), y en (d) es el valor medio cuadratico del error de control. ................................................................................................................. Figura 4.15:
– JMFA –
111
4.4. Control Adaptable
4.4.2. 4.4. 2.
Cap´ıtulo 4. Control de Sistemas
Control Con trol Adapt Adaptable able Dire Directo, cto, [16]
El control adaptable directo no hace una estimaci´on de la l a din´amica amica de la planta. planta . En vez ve z de esto, e sto, se dise˜na un algoritmo que busque un controlador que force a un error de seguimiento peque˜no. no. En el disen˜o se considera un tipo de sistemas m´as as general que el usado para el control adaptable indirecto. Se conserva la suposici suposici´´on on de que se conoce a r(k + 1). 1). Y en lugar de suponer que existe de forma explicita un modelo del sistema no lineal se requiere que exista una se˜nal se˜nal de control: u∗ [v(k ), r(k + 1)] tal que la din´amica amica del error: e(k + d) = r(k + 1) y (k + 1) pueda expresarse como:
−
e(k + 1) =
−ψ [v(k)] [u(k) − u∗(k)] + ν (k),
(4.66)
en donde ψ () es tal que: 0 < ψ0
≤ |ψ [v(k)] ≤ ψ1 ,
(4.67)
en donde ψ0 y ψ1 son constantes conocidas relacionandas a la din´amica amica de la planta. Y ν () () es una funci´on on a cotada por la constante :
V
sup ν (k ) k
(4.68)
| ≤ V .
|
Entonces los sistemas en los cuales su ecuaci´on de error cumpla con (4.66) entra en los sistemas donde se puede aplicar el control adaptable directo. Usando el mismo vector v() (4.20) (4.20),, y el siste sistema ma (4.21): y (k + 1) = α [v(k )] + β β [[v(k)] u(k ). Y con la suposici´on on que la funci´on on β () () satisface: 0 < β 0
≤ β β [[v(k)] ≤ β 1 < ∞,
(4.69)
se usa: β 0 β [[v(k )] para asegurar la existencia de una ley de control por abajo de la funci´on β (), β (), y el par´ametro amet ro β 1 especifica una restricci´on on sobre el algoritmo de actualizaci´on de la ganancia de control.
≤
Para esta clase de plantas, la ley de control: u∗ [v(k), r(k + 1)] =
r(k + 1) α [v(k )] , β [[v(k )] β
−
(4.70)
existe si la funci´on on β () () es acotada y diferente de cero. Con esta elecci´on on para el control y usando u∗ en la planta: e(k + 1) 1) = r(k + 1) y (k + 1) = r(k + 1) α [v(k )] β β [[v(k )] u(k ), = β β [[v(k )] u∗ (k ) β β [[v(k)] u∗(k), = β β [[v(k)] [u(k ) u∗ (k )] ,
− −
−
− −
(4.71) (4.72) (4.73) (4.74)
−
de la ecuaci´on on anterior, y considerando la expresi´on on (4.66), en donde: ψ [v(k )] = β β [[v(k)] )],, ψ0 = β 0 ,ψ1 = β 1 y ν (k) = 0; de lo anterior se concluye que este tipo de plantas admiten un control adaptable directo. La ecuaci´on on de error e(k + 1) adem´as as de ser una u na medida med ida del error de seguime seguimento; nto; tambi´ tamb i´en en lo es de la diferencia dife rencia entre el control control utili utilizado zado del ideal ideal:: u∗ . Para obtener la din´amica amica del error se expresa el control ideal u∗ de la siguiente forma: u∗ [v(k), r(k + 1)] = ud [v(k ), r(k + 1)] + uc (k ),
(4.75)
en donde uc () y ud () representan la parte conocida y desconocida, respectivamente, de la se˜nal de control ideal. El componente uc () no es indispensable, as as´ ´ı que puede prescindirse de ´el, el, es decir: uc (k ) = 0, para todo k 0. Pero en
≥
112
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.4. Control Adaptable
Señal de Control Nominal
Componentes del control directo. directo. En el control adaptable directo se puede aprovechar la se˜nal nal de control nominal de un controlador existente y agregar ´unicamente el componente adaptable. ........................................................ Figura 4.16:
uc(k)
Señal de Control Adaptable ud(k) +
u*(k)
+
algunas aplicaciones es conveniente incluir el termino uc . De forma que si se conoce que existe un controlador que trabaja razonablemente bien en la zona de operaci´on nominal n ominal del sistema ´este este puede incluirse como el termino uc () y la otra parte del control puede ser una red neural que se vaya sintonizando para corregir las deficiencias del control. Se puede representar el control u∗ () como: u∗ (k ) = θd∗ T φd [v(k), r(k + 1)] + uc (k ) + ωd (k ).
(4.76)
Donde: θd∗
= arg m´ın
θ ∈Ωd
sup v∈Sx ,r ,r∈S ∈Sr
θdT φd
|
[v(k ), r(k + 1)]
|
− uc(v, r)
,
(4.77)
en donde Ωd es el conjunto conexo de los controladores aceptables, v es el espacio en el cual los estados del sistema est´ an, y r es el espacio en el cual la se˜nal de referencia se desenvuelve (se hace la suposici´on que la se˜nal an, nal de referencia r() es acotada).
S
S
El contr control ol estim estimado ado varia del contro controll ideal (4.49), (4.49), este se repr represent esentar ar por la exp expresi´ resi´on: on: u(k) = θdT (k )φd [v(k ), r(k + 1)] + uc (k ),
(4.78)
en donde el vector de par´ametros ametros θd () es actualizado por el algoritmo y de manera que θd (k ) Si se define el vector de error en los par´ametros ametros como: θ˜d (k ) = θd (k)
∈ Ωd.
− θd∗,
(4.79)
entoncess la din´amica entonce amica del error: e(k + 1) = r(k + 1)
− y(k + 1) se expresa como: e(k + 1) 1) = −ψ [v(k)] [u(k ) − u∗ (k )] + ν (k ), T = −ψ [v(l)] [θd (k) − θd∗ ] φd [v(k ), r(k + 1)] , −ωd (k ) + ν (k) e(k + 1) 1) = −ψ [v(k)] θ˜dT (k)φd [v(k), r(k + 1)] + ψ [v(k )] ωd (k) + ν (k ), ≤ |ωd(k)| < W d. Se su supon ponee qu quee se pu pued edee de defin finir ir a W d , tal que si |θ˜d |2 es aco acotad tada, a, y
en donde donde 0 0 ωd (k ) < W d para toda k .
≤|
|
– JMFA –
(4.80) (4.81) (4.82) entonc ent onces es
113
4.4. Control Adaptable
Cap´ıtulo 4. Control de Sistemas
Ejemplo 4.5 (Control Adaptable Directo) En este ejemplo se utiliza en control adaptable directo para manejar el sistema no lineal (4.53): y (k + 1) = 0. 0.5
y (k ) + [1 + y (k )] u(k ). 1 + y (k )2
(4.83)
por lo visto en este secci´ on, este sistema puede ser manejado por una ley de control del tipo (4.75): u(k ) = ud [v(k ), r(k + 1)] + uc (k ),
(4.84)
en don donde de uc (k ) pu pued edee te tene ners rse, e, o no no.. Y lo qu quee se pr propo opone ne es us usar ar un unaa re red d ne neur uron onal al mu mult ltic icap apaa pa para ra el te term rmin ino: o: ud [v(k ), r(k + d)] )].. De forma que la ley de control tiene la forma: u(k ) = θdT φd [y (k ), r(k + 1)] + uc (k ) + ωd (k ),
(4.85)
en el primer caso se considera que el termino uc (k) es cero cero.. El E l progr pr ograma ama est´a en e n el p´endice end ice B.19 B.19,, p´ p ´agina agin a 203. 2 03. Para este caso se pide que el sistema siga la siguiente se˜ nal de referencia: r(k + 1) = 0. 0.5 + 0. 0 .25 sen sen(2 (2kπ/ kπ/50) 50)..
(4.86)
La red neuronal es de tipo multicapa y con dos entradas, diez nodos ocultos en una segunda capa, otros diez en otra capa y un nodo se salida de la red, 2, 10 10,, 10 10,, 1 . El vector de entrada es: [y (k ), r(k + 1)]. 1)]. La costantes de aprendizaje son: α = 0.005 y η = 0.05 05.. El algoritmo de ajuste de los pesos utiliza la se˜ nal de error: e(k + 1) = r(k + 1) y (k + 1). 1).
{
}
−
El sistem sistemaa se simul simulaa duran durante te 250 repeti repeticione cioness y 100 ´epocas. epocas. En la figura 4.17 se presentan los resultados en la primera ´epoca epo ca de d e entrenami entrenamiento. ento. Los result resultados ados en la prim primera era ´epoca de entre entrenamie namiento nto sirve sirven n para resaltar resaltar el compo comportam rtamiento iento inicial del contr control, ol, observando la forma progresiva en la que trabaja. En la figura 4.17. a se grafica la referencia r() (l (l´ ´ınea por trazos) y la respuesta de la planta y () (l (l´´ınea continua), notar que la planta inicia a seguir a la referencia. En la figura 4.17. b est´ a el error de control, en figura 4.17. c esta la se˜ nal de control y la figura 4.17. d muestra el valor medio cuadratico del error de seguimiento. Y en la figura 4.18 se muestran los resultados en la ´epoca epoca cien de entrenamiento. En donde se puede observar como la red neuronal ha podido controlar al sistema. En la figura 4.18. a est´a la gr´afica afica del seguimi seguimiento, ento, se observ observaa que el sistema se asemeja mucho a su comportamiento deseado. En la figura 4.18. b est´a el error de seg seguime uimento, nto, la gr´afica afica de la se˜ nal de contro controll est´a en figura 4.18. c, y su valor medio cuadratico est´a en la figura 4.18. d.
114
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.4. Control Adaptable
Control Adaptable Directo
0.8
Control Adaptable Directo
1
Época=1
Época=1
0.7
0.8
0.6 0.6
0.5 0.4
0.4
0.3
0.2
0.2
0
0.1 −0.2
0 −0.1
0
50
100
150
200
250
−0.4
0
50
10 0
(a)
Control Adaptable Directo
0.25
150
2 00
250
200
2 50
(b)
Control Adaptable Directo
0.25
Época=1
Época=1
0.2 0.2 0.15 0.15
0.1 0.05
0.1
0 0.05 −0.05 −0.1
0
50
10 0
150
2 00
250
0
0
(c)
50
100
15 0 (d)
´ Control Adaptable Indirecto – Epoca 1. Se presenta el comportamiento del Control Adaptable Directo 1. al inicio del ent entrenam renamient iento. o. En (a) Se observa la respuesta de la planta, y (k ) comparada con la referencia r, en la primera ´epoca epoca de entrenamien entrenamiento to de la red de control, En (b) est´ a el error de control, e(k ). En (c) se presenta el control aplicado al sistema, u(k), y en (d) es el valor medio cuadratico del error de control. ................................................................................................................. Figura 4.17:
– JMFA –
115
4.4. Control Adaptable
Cap´ıtulo 4. Control de Sistemas
Control Adaptable Directo
0.8
Control Adaptable Directo
0.3
Época=100
Época=100
0.7
0.25
0.6
0.2
0.5 0.15 0.4 0.1 0.3 0.05
0.2
0
0.1 0
0
50
100
150
200
250
−0.05
0
50
100
(a)
Control Adaptable Directo
0.35
150
200
250
(b)
Control Adaptable Directo
35 Época=100
Época=100
30
0.3 25 0.25
20 15
0.2
10 0.15 5 0.1
0
50
100
150
200
250
0
0
(c)
50
100
150
200
250
(d)
´ Control Adaptable Indirecto – Epoca 100 . Se presenta el comportamiento del Control Adaptable Directo al final del entrenamiento. En (a) Se observa como la respuesta de la planta, y(k), converge con la se˜nal de referencia, r(k), En (b) est´ a el error de control, e(k). En (c) se presenta el control aplicado al sistema, u(k), y en (d) es el valor medio cuadratico del error de control. ................................................................................................................. Figura 4.18:
116
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.5.
4.5. Control por Modelo de Referencia
Control por Modelo de Referencia
El esquema de control por modelo de referencia utiliza la salida de un sistema din´ amico en vez de una sucesi´on de valores: y ∗ (0), y ∗(1),... para establecer el comportamiento que se requiere para el sistema controlado. El sistema de control tiene el objetivo de hacer que la salida del sistema controlado converja a los valores deseados, pero el control por modelo de referencia elimina la relativa arbitrariedad de la selecci´on de la sucesi´on de valores y ∗ al establecer que se produce como respuesta de otro sistema ( figura 4.19). Se puede interpretar al modelo de referencia como un prefiltro de la se˜nal de mando y ∗ . Durante el dise˜no se aprovecha la estructura del modelo de referencia para construir el sistema de control.
{
}
r(k)
y*(k)
y*(k)
G(k)
Valores deseados
Sistema de Referencia
Control por modelo de Referencia. En el control por modelo de referencia se sustituye la sucesi´on de valores deseados por la respuesta de un sistema din´amico conocido. ................................................................................................................. Figura 4.19:
El modelo de referencia es un sistema de estructura conocida, al dise˜narse se toman en cuenta las especificaciones de comportamiento que se desean para el sistema controlado. Adem´as este sistema se considera estable y no debe ser m´as r´apido que el sistema controlado, es decir, el modelo de referencia debe a lo m´as tener el mismo retardo del sistema controlado (tener grado relativo igual o mayor).
4.5.1.
Control por modelo de referencia: Enfoque neuronal [28]
El tipo de sistemas que se consideran son los representados en variables de estado y de una entrada una salida: x(k + 1) = f [x(k), u(k)] , y(k) = h [x(k)] , en donde x Rn es el vector de variables de estado, u R es la entrada al sistema y y funciones f : Rn R Rn y h : Rn Rn son an´aliticas.
∈
× →
→
∈
(4.87) (4.88)
∈ R es la variable de salida. Las
Un concepto importante en los sistemas de tipo (4.87-4.88) es el llamado grado relativo [41]. En forma b´asica corresponde al retardo de la variable de entrada u(k) para que afecte a la salida del sistema. A modo de ejemplo consid´erese el sistema (4.87-4.88), entonces al incrementar el ´ındice de tiempo k, se generan las siguientes funciones hl [x(k)]: y(k) = h [x(k)] = h0 [x(k)] , y(k + 1) = h0 [x(k + 1)] = h1 [x(k)] , .. . y(k + l) = hl−1 [x(k + 1)] = hl [x(k)] .
(4.89) (4.90) (4.91) (4.92)
entonces si tiene el sistema grado relativo r las funciones anteriores cumplen lo siguiente: ∂h 0 [x(k)] ∂u(k) ∂h 1 [x(k)] ∂u(k)
– JMFA –
≡ 0,
(4.93)
≡ 0,
(4.94)
.. .
(4.95) 117
4.5. Control por Modelo de Referencia
Cap´ıtulo 4. Control de Sistemas ∂h t−1 [f (x, u)] = 0. ∂u(k)
(4.96)
(4.97) As´ı que t es el n´umero m´as peque˜no de per´ıodos de muestreo despu´es de cual la variable manipulable afecta a la salida y. Entonces es posible hallar la relaci´on entre las salidas en el futuro y el estado actual por medio de las expresiones: y(k) = h0 [x(k)] , y(k + 1) = h1 [x(k)] , .. . y(k + t 1) = ht−1 [x(k)] .
(4.98) (4.99) (4.100) (4.101)
−
Y en particular, la relaci´on entre la salida y(k + t), el estado y entrada actuales es: y(k + t) = ht−1 [f (x(k), u(k))]
≡ g [x(k), u(k)] .
(4.102)
es decir que existe una funci´on g que relaciona al estado actual x(k) y la entrada u(k) para obtener la salida futura y(k + t). Se define la siguiente variable v(k) como: v(k) = g [x(k), u(k)] .
(4.103)
y(k + t) = v(k)
(4.104)
entonces:
es decir, que se obtiene una transformaci´on lineal del sistema original.
u(k)
x(k+1) f(x, u)
y(k)
x(k) z
-1
h(x)
x(k) u(k)
g(x,u)
v(k)
(a)
y(k+r)
1' z
-1
t '
y(k)
-1
z
(b) u(k)
α(x,v)
x(k) v(k)
(c)
Grado relativo: linealizaci´ on . a) Sistema en representaci´on en variables de estado. b) Transformaci´ on lineal del sistema. c) A trav´es del teorema de la funci´ on implic´ıta se obtiene una soluci´on para el sistema (Controlador). ................................................................................................................. Figura 4.20:
Adem´as ya que ∂g(x,u) = 0 para todo punto (x, u) en un conjunto abierto y denso del espacio Rn u del la funci´on implicita, existe una ´unica soluci´on de la ecuacuaci´on (4.103):
u(k) = α [x(k), v(k)] , n en donde ∂α ∂v = 0 para todo punto (x, v) del espacio R sistema original.
× R. Por el teorema (4.105)
× R. Notar que esta funcin α es el control que se aplica al
La implementaci´on del control por modelo de referencia se basa en un sistema usado como patr´on de referencia: X m (k + 1) = Axm (k) + br(k) ym (k) = cT xm (k) 118
– JMFA –
(4.106) (4.107)
Cap´ıtulo 4. Control de Sistemas en donde xm
∈ Rn
m
,r
4.5. Control por Modelo de Referencia
∈ R y y ∈ R son los estados, la entrada y la salida del modelo.
Ahora bien, el objetivo del control es encontrar una se˜nal de retroalimentaci´on que haga que la salida del sistema y(k) siga de forma asint´otica a la del modelo ym (k) generada por la entrada r(k). En la figura 4.20 se pueden ver que es posible transformar al sistema (4.87-4.88) a uno lineal por medio de la funci´on v(k) = g [x(k), u(k)]: el sistema lineal que se obtiene es: w1 (k) = y(k) w2 (k) = y(k + 1) .. .
(4.108) (4.109)
wt (k) = y(k + t 1) v(k) = y(k + t)
(4.111) (4.112)
(4.110)
−
Desde este sistema lineal es ya muy sencillo hallar el control para el modelo de referencia, basta con construir la siguiente funci´on de error: t−1
ym (k + t) +
β i [ym (k
− i) − y(k − i)] = y(k + t) e(k + t) + β t−1 e(k + t − 1) + · · · + β 0 e(k) = 0,
(4.113)
i=0
(4.114)
en donde los coeficientes β se seleccionan con tal que las ra´ıces de (4.113) est´en dentro del c´ırculo unitario, es decir que sea estable. Y por lo tanto e(k)k→∞ 0,
→
Notar que v(k):
t−1
v(k) = ym (k + t) +
β i [ym (k
i=0
− i) − y(k − i)] ,
(4.115)
de manera que lo que falta es hallar a la funci´on de transformaci´on α [x(k), v(k)] que es la que genera la se˜nal de control u(k) que es la que se usa para el sistema (4.87-4.88). Controlador
r(k)
v(k)
α(x,v)
g(x,v)
u(k)
y(k) Planta
e(k) xm(k)
+
x(k)
Modelo de Referencia
Diagrama a bloques del Control por Modelo de Referencia. En esta figura se muestran los bloques componentes del control por modelo d referencia. La funci´on g() es la que construye la se˜nal de control v(k) para el sistema linealizado. La funci´on α transforma a la se˜ nal de control para ser aplicada a la Planta. ............................................. Figura 4.21:
-
ym(k)
En vez de buscar la expresi´on para la funci´on α(), es tambi´ en posible obtener a v(k) en t´erminos de la planta (4.87-4.88) y del modelo de referencia (4.106-4.106) Para lo anterior consid´erese que el grado relativo del modelo de referencia es el mismo que el de la planta. De forma que al hallar las expresiones para la respuesta en funci´on de los estados xx (k) y la entrada r(k), est´as son: ym (k + i) = cT Ai xm (k), para todo 0 ym (k + t) = cT At xm (k) + cT At−1 br(k)
≤ i ≤t−1
(4.116) (4.117)
Entonces al sustituir los los valores para y(k + i) y ym (k +i) en (4.115). De modo que la ley de control es la siguiente: t−1
v(k) = ym (k + t) +
β i ym (k
i=0
− i) − hi [f (x, u)]
– JMFA –
(4.118)
119
4.5. Control por Modelo de Referencia
Cap´ıtulo 4. Control de Sistemas t−1
T
t−1
=c A
T
t
br(k) + c A xm (k) +
β i cT Ai xm (k)
i=0
− hi [f (x, u)]
,
(4.119)
La tranformaci´on en la representaci´on del sistema en la forma adecuada para utilizar lo antes expuesto se explica en el ap´endice G. Por lo visto anteriormente, las funciones g() y α() son la base del control por modelo de referencia. Lo siguiente es establecer el esquema de control utilizando redes neuronales. La capacidad de las redes neuronales para aproximar funciones ya ha sido comentada. As´ı que las funciones g() y α() se sustituyen por las siguienres redes neuronales: u ˆ(k) = α ˆ (x(k), v(k), ω1 )
(4.120)
yˆ(k + t) = gˆ (x(k), u ˆ(k), ω2 )
(4.121)
en donde ω1 y ω2 son los pesos de las redes neuronales. La primer red neuronal aproxima a la funci´on α y esta aproximaci´on se llama α ˆ ; la segunda red neuronal aproxima la funci´on g y se le llama gˆ.
x(k) r(k)
Control e n t r a d a s
RN pesos
x(k)
s a l i d a s
u(k)
xm(k)
x(k)
p e s o s
y(k)
Planta
Ajuste
s a d a r t n e
Identificador e n t r a d a s
e1(k) +
RN pesos
s a l i d a s
y*(k)
y*(k)
p e s o s
e (k)
Ajuste
ym(k) Modelo de Referencia
s 2 a d a r t n e
+
-
y(k)
Diagrama a bloques del Control por Modelo de Referencia -Redes Neuronales. . ................................................................................................................. Figura 4.22:
Las variables de entrada a la redes neuronales se pueden obtener al observar la ecuaci´on 4.119. De manera que las redes neuronales usan los siguientes argumentos: u ˆ(k) = α ˆ (x(k), xm (k), r(k), ω1 ) yˆ(k) = gˆ (x(k t), u ˆ(k t), ω2 ) ,
−
−
(4.122) (4.123)
notar que la primera red neuronal es quien genera la se˜nal de control, mientras que la segunda red es un modelo de indentificaci´ on. Los errores usados para el ajuste de la red neuronal son: e1 (k) = y ∗ (k) e2 (k) = y ∗ (k)
− ym(k) − y(k)
Error de Control Error de Identificaci´ on
(4.124) (4.125)
La convergencia de entre las variables de salida de planta y(k) y del modelo de referencia ym (s) se obtiene cuando: l´ım e1 (k) = 0 y l´ım e2 (k) = 0,
k−→∞
k−→∞
120
– JMFA –
(4.126) (4.127)
Cap´ıtulo 4. Control de Sistemas
4.5. Control por Modelo de Referencia
y al considerar la siguiente desigualdad:
|y(k) − ym(k)| ≤ |y∗(k) − ym(k)| + |y∗(k) − y(k)| = |e1(k)| + |e2(k)|, cuando se cumplen (4.124) y (4.125), entonces l´ımk→∞ (y(k) − ym (k)) = 0. 4.5.2.
(4.128)
Control por modelo de referencia: Sistemas lineales
El control por modelo de referencia para sistemas discretos lineales de una entrada y una salida se detalla en [38]. Sea el sistema lineal discreto a controlar: A(q−1 )y(k) = B(q−1 )u(k),
(4.129)
en donde las funciones A(q −1 ) y B(q −1 ) est´an definidas como los polinomios: A(q −1 ) = 1 + a1 q −1 + a2 q −2 + + an q −n B(q −1 ) = q −t (b0 + b1 q−1 + b2 q−2 + + bn q−n1 ) = q −t B ′ (q−1 ).
·· ·
(4.130) (4.131) (4.132)
···
El sistema (4.129) puede expresarse en su forma predictor, es decir, con la estructura: y(k + t) = α(q−1 )y(k) + β (q−1 )u(k),
(4.133)
en donde: α(q −1 ) = α0 + α1 q−1 + β (q −1 ) = β 0 + β 1 q −1 +
· · · + αn−1q−(n−1) ·· · + β n +t−1q−(n +t−1).
(4.134) (4.135)
1
1
Para pasar de la forma (4.129) a la forma predictor (4.133), se debe hallar un polinomio F (q−1 ) tal que permita factorizar el operador retardo q−t . Para factorizar el retardo se necesita que el producto: F (q −1 )A(q−1 ) = I q−t G(q−1 ), en donde G(q −1 ) es otro polinomio. De la forma siguiente:
−
F (q −1 )A(q−1 )y(k) = q−t F (q−1 )B ′ (q−1 )u(k), I q−t G(q−1 )y(k) = q−t F (q−1 )B ′ (q−1 )u(k)
−
(4.136) (4.137)
y(k) = q −t G(q −1 )y(k) + F (q−1 )B ′ (q−1 )u(k) y(k + t) = G(q−1 )y(k) + F (q −1 )B ′ (q −1 )u(k) y(k + t) = α(q −1 )y(k) + β (q −1 )u(k).
(4.138) (4.139) (4.140)
Es claro que el producto F (q −1 )A(q−1 ) es de orden
−(n + t − 1), as´ı que el polinomio F (q−1) debe tener orden −t + 1: F (q−1 ) = I + f 1 q−1 + · ·· + f t−1 q−t+1 . (4.141)
Y el polinomio G(q−1 ) es de orden
−n + 1: G(q−1 ) = G0 + G1 q−1 +
· · · + Gn−1q−n+1.
(4.142)
Ejemplo 4.6 (Llevar el sistema a su forma predictor) Considere el sistema lineal discreto:
1 + 0.9q −1 + 0.8q−2 + 0.7q−3 + y(k) = q−2 1 + 0.9q−1 u(k),
es decir, es un sistema lineal de orden n = 3 y con un retardo en la entrada t = 2.
(4.143)
Para llevarlo a su forma predictor se necesitan hallar los polinomios: F (q−1 ) = 1 + f 1 q −1 , G(q−1 ) = g0 + g1 q −1 + g2 q−2 . – JMFA –
(4.144) (4.145) 121
4.5. Control por Modelo de Referencia
Cap´ıtulo 4. Control de Sistemas
Multiplicando a (4.143) por F (q−1 ):
1 + f 1 q−1
1 + 0.9q−1 + 0.8q−2 + 0.7q−3 + y(k) = q −2 F (q −1 ) 1 + 0.9q−1 u(k) (4.146)
1 + (0.9 + f 1 )q−1 + (0.8 + 0.9f 1 )q−2 + (0.7 + 0.8f 1 )q−3 + 0.7f 1 q−1 =
(4.147)
La forma factorizada de (4.147) debe ser:
1 + q −2 g0 + g1 q−1 + g2 q −2
y(k) = q −2 F (q−1 ) 1 + 0.9q −1 u(k)
Basta ahora igualar los coeficientes de las potencias para encontrar su valor:
(4.148)
0.9 + f 1 = 0
(4.149)
0.8 + 0.9f 1 = g0 0.7 + 0.8f 1 = g1 0.7f 1 = g2 .
(4.150) (4.151) (4.152)
Por lo tanto: f 1 g0 g1 g2
= 0.9 = 0.8 + 0.9f 1 = 0.01 = 0.7 + 0.8f 1 = 0.02 = 0.7f 1 = 0.63.
−
−
(4.153) (4.154) (4.155) (4.156)
− −
Entonces el sistema (4.147) en su forma predictor es:
−
y(k) = q−2 G(q−1 )y(k) + F (q −1 )B ′ (q−1 )u(k) , y(k + 2) =
0.01
− 0.02q−1 − 0.63q−2
y(k) + (1
(4.157)
− 0.81q−1)u(k).
(4.158)
Para deducir el control para seguir el modelo de referencia se utiliza el hecho de que el sistema puede expresarse en su forma predictor. Se define primero la forma del modelo de referencia. La funci´on de transferencia del modelo de referencia es conocida, su estructura general es la siguiente: E (q −1 )y ∗ (k) = q−tm gH (q−1 )r(k),
(4.159)
la funci´on de transferencia del sistema es: G(z) = z −tm gH (z −1 )/E (z −1 ), donde g es una ganancia y las funciones H (z −1 ) y E (z −1 ) son: H (z −1 ) = h0 + h1 z −1 + E (z −1 ) = e0 + e1 z −1 +
· · · + hlz−l; h0 = 1, · · · + elz−l; e0 = 1.
(4.160) (4.161)
Se imponen las siguientes restricciones sobre el modelo de referencia (4.159): 1. E (z −1 ) es estable (sin ceros en z
| | ≥ 1)
2. El retardo del modelo de referencia tm debe ser mayor o igual al retardo del sistema (para simplificar se pueden considerar iguales). El control por modelo de referencia en principio puede verse como un sistema que es manejado con el fin de seguir el comportamiento de un sistema modelo. La informaci´on disponible para realizar el control es la se˜nal externa r(k) y una secuencia hist´orica de valores de salida del sistema y(k), y(k 1), . . . . En este punto el problema se reduce a hallar el control que lleve a la salida del sistema y(k) a ser igual a y(k)∗ que es la salida del modelo de referencia. (ver figura 4.23. Izq.) Visto as´ı, se puede usar el valor de la se˜nal del modelo y ∗ (k) para evaluar el error se seguimiento del on 4.3). Sin embargo, esto no aprovecha la funci´on modelo e(k) = y(k) y ∗ (k), y utilizar el control inverso (ver secci´
{
−
122
– JMFA –
−
}
Cap´ıtulo 4. Control de Sistemas
4.5. Control por Modelo de Referencia
u(k) Controlador
y(k)
Planta
u(k) Controlador
y(k)
Planta
y*(k+d) ei(k)
y*(k)
r(k)
r(k)
+
G(k)
z
G'(k)
-
Modelo de Referencia
-d
i e(k)
y*(k) +
-
Modelo de Referencia
(a)
(b)
Control por modelo de Referencia. Dos esquemas de control por modelo de referencia. (a) Modelo de referencia en paralelo al sistema de control. (b) Modelo de referencia en serie al sistema de control. ................................................................................................................. Figura 4.23:
de transferencia del modelo en el dise˜no del controlador. Para ello se toma la se˜nal y ∗(k + t) del modelo en su forma predictor para alimentar al controlador (ver figura 4.23. Der.) Notar que ahora el modelo queda en serie con el sistema de control. Partiendo de que es posible expresar el sistema (4.129) a su forma predictor (4.133), se puede modificar un poco y establecer que el sistema se transforma de la siguiente forma: E (q −1 )y(k + t) = α(q−1 )y(t) + β (q−1 )u(k),
(4.162)
en donde: α(q−1 ) = G(q −1 ), Siendo F (q−1 ) y G(q−1 ) son polinomios de orden t E (q−1 )
β (q−1 ) = F (q−1 )B ′ (q−1 ).
(4.163)
− 1, n − 1, respectivamente que satisfacen:
− q−tG(q−1) = F (q−1)A(q−1 ).
(4.164)
Al transformar el sistema (4.129) a la forma (4.162). Esposible hallar el control por modelo de referencia:
Proposici´ on 4.3 (Control por modelo de referencia) Sea el sistema: A(q−1 )y(k) = B(q−1 )u(k).
(4.165)
E (q −1 )y ∗ (k) = q−tm gH (q−1 )r(k).
(4.166)
Y el modelo de referencia:
El sistema (4.165) puede transformarse en la forma: E (q −1 )y(k + t) = α(q−1 )y(k) + β (q−1 )u(k).
(4.167)
α(q−1 )y(k) + β (q−1 )u(k) = gH (q −1 )r(k)
(4.168)
E (q −1 )y(k + t) = gH (q −1 )r(k)
(4.169)
Entonces con la ley de control:
el sistema de lazo cerrado es:
– JMFA –
123
4.5. Control por Modelo de Referencia
Cap´ıtulo 4. Control de Sistemas
Ejemplo 4.7 (Control por modelo de referencia de un motor de CD.) Considere que el motor est´ a regido por la siguiente expresi´ on: ωm (k + 1) =
−295.803 × 10−3ωm(k) + 703.648 × 10−3ωm(k − 1) +10607.511 × 10−3 [ea (k) + ea (k − 1)] . [rad/s]
(4.170)
Reacomodando:
1 + 295.803
× 10−3q−1 − 703.648 × 10−3q−2
ωm (k) = q
−1
10607.511
(4.171)
× 10
−3
1+q
−1
ea (k),
[rad/s]
(4.172)
es decir, es un sistema lineal discreto de orden n = 2 y con un retardo en la entrada t = 1.
El objetivo de control es que el sistema (4.172) siga el comportamiento del siguiente modelo de referencia: y ∗ (z) =
H (z) 0.9754 = . E (z) z 0.9512
(4.173)
0.9754q −1 )= 1 0.9512q−1
(4.174)
−
reacomodando y usando el operador retardo q−1 : ∗
y (q
−1
−
as´ı que el modelo de referencia es de orden nm = 1, y retardo tm = 1. El modelo es estable y tiene el mismo retardo que el sistema a controlar ( t = tm = 1) de modo que cumple las dos condiciones solicitadas para el dise˜ no del control por modelo de referencia. Entonces se necesita hallar el polinomio F (q−1 ) tal que:
F (q −1 ) 1 + 295.803 f 0
× 10−3q−1 − 703.648 × 10−3q−2 1 + 295.803 × 10−3 q−1 − 703.648 × 10−3 q −2 E (q −1 ) − q−1 G(q −1 ) (1 − 0.9512q−1) − q−1 (g0 + g1q −1 ) (1 − (0.9512 + g0 )q −1 − g1 q−2
ωm = q−1 F (q−1 )10607.511 ωm =
× 10−3
1 + q−1 ea (k)
ωm = ωm = ωm = (4.175)
Por lo tanto: f 0 = 1, 0.9512 + g0 = 295.803 103 f 0 , g1 = 703.648 10−3 f 0 ,
−
de modo que: f 0 = 1, g0 =
×
(4.176) (4.177) (4.178)
×
−1.2470,g1 = 703.648 × 10−3.
Usando lo dicho en la Propocisi´ on.4.3, la ley de control por modelo de referencia es: G(q −1 )ω(k) + F (q−1 )B ′ (q−1 )ea (k) = E (q−1 )r(q−1 )
(4.179)
es decir: ea(k) =
0.9754 r(k) 10607.511 10−3 [1 + q−1 ]
×
−3 −1
1.2470 + 703.648 × 10 q − −10607.511 × 10−3 [1 + q−1]
ω(k)
(4.180)
En la figura 4.24, pueden verse las respuestas del motor sin control, con el control (4.180) compar´ andolo con el modelo de referencia (Programa B.20, p´ gina 205) .
124
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.5. Control por Modelo de Referencia
Comportamiento libre del Motor
40
40
35
Comportamiento del Modelo de Referencia
35
ω(k) [rad/seg] 30
30
25
25
20
20
15
15
10
10 e(k)=1 [Volt]
5
r(k)
u(k)=1
5
0
0 Seg.
−5 −0.1
0
0.1
0.2
0.3
0.4
0.5
Seg. 0.6
−5 −0.1
0
0.1
0.2
(a)
Control por Modelo de Referencia
40
0.7
30
0.6
25
0.5 r(k),ω(k)
0.5
0.6
u(k)
0.4
15
0.3
10
0.2
5
0.1 0
0 Seg. −5 −0.1
0.4
Señal de Control
0.8
35
20
0.3 (b)
0
0.1
0.2
0.3
0.4
0.5
0.6
−0.1 −0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
(c)
(c)
Control por Modelo de Referencia –Motor de CC.. Se presenta el comportamiento del Control por Modelo de Referencia para un motor de CC. En (a) se presenta el comportamiento del modelo del motor para una entrada constante. En (b) Se presenta el comportamiento deseado o modelo de referencia. En (c) es la gr´afica de comparaci´on entre la respuesta del modelo y la del motor de CC. controlado. (d) Es la se˜nal de control aplicada al motor. ................................................................................................................. Figura 4.24:
– JMFA –
125
4.6. Control por Modelo Interno, [58]
4.6.
Cap´ıtulo 4. Control de Sistemas
Control por Modelo Interno, [58]
El control por modelo interno se ha convertido en una alternativa en los sistemas de control de procesos debido a su relativamente f´acil dise˜no, su capacidad para el rechazo de perturbaciones y sus caracter´ısticas de robustes. Al obtener un modelo del sistema a controlar se puede aprovechar e´ste para incluirlo dentro del sistema de control. Es decir: que el control puede lograrse al incluir dentro del sistema de control la representaci´ on del sistema a ser controlado , lo anterior se conoce como el principio del modelo interno En principio si se tiene un sistema y p (z) = P (z)u(z) que se desea controlar, se considera que puede existir un controlador de la forma u(z) = C (z)r(z) tal que la respuesta del sistema y(z) siga a la se˜nal de referencia r(z): y p(z) = P (z)u(z) u(z) = C (z)r(z) y p(z) = P (z)C (z)r(z)
Planta Controlador Sistema de Control
(4.181) (4.182) (4.183)
Para que el sistema de control cumpla con el objetivo bastar´ıa que el Controlador sea igual al modelo inverso de la planta, esto es: C (z) = P −1 (z). Sin embargo, para que esto funcione requiere de dos condiciones: que el modelo del sistema y p (z) = P (z)u(z) sea tan exacto como la precisi´on solicitada y que contemple todos los efectos que intervienen durante su operaci´on. Y la otra, es que el modelo inverso del sistema P −1 (z) sea un sistema estable , propio y causal , para que sea realizable su dise˜no como controlador. Estas dos condiciones muchas veces se oponen, ya que al hacer el modelo del sistema m´as complejo, har´ıa al mismo tiempo a su modelo inverso mucho m´ as complicado y con gran posibilidad de que no sea realizable. Notar tambi´en que el sistema de control (4.183) es de lazo abierto, esto significa que se conf´ıa en la precisi´on del modelo, y por lo tanto no se necesita de una se˜nal de retroalimentaci´on. La dificultad de cumplir con las condiciones para que un sistema de lazo abierto pueda ser realizable o que tenga el grado de desempe˜no solicitado hace que un esquema retroalimentado sea una alternativa. Para esto se lleva la respuesta del sistema hacia el controlador, de manera que se forma una se˜nal de error que es igual a la diferencia entre el valor de referencia y la respuesta del sistema. yd (z) = y p (z) + d(z) y p(z) = P (z)u(z) e(z) = r(z) yd (z)
Planta m´as perturbaci´ on Planta Error
(4.184) (4.185) (4.186)
u(z) = C (z)e(z) P (z)C (z) 1 yd (z) = r(z) + d(z) 1 + P (z)C (z) 1 + P (z)C (z)
Controlador
(4.187)
Sistema de Control
(4.188)
−
en donde d(z) es una entrada de perturbaci´on en la salida del sistema. En el sistema de control (4.188) se incluye la entrada de perturbaci´on d(z) debido a que ahora ya no se exige que el modelo de la planta y p (z) = P (z)u(z) sea exacto. Notar que en el sistema (4.188) la condici´on para obtener un grado adecuado de rechazo de la perturbaci´on d(z) es que la magnitud de P (z)C (z) sea mucho mayor que uno ( P (z)C (z) >> 1) y la misma condici´on ayuda a que la salida del sistema yd siga la referencia r(k). Las t´ecnicas para calcular el controlador u(z) = C (z)e(z) son diversas y entre las m´ as usadas en la industria son el control Proporcional (P), Proporcional e Integral (PI), Proporcional Derivativo (PD) y Proporcional Integral Derivativo (PID), as´ı como compensadores de adelanto-retrazo.
|
|
Sin embargo, en este tipo de controladores, aunque es muy ´util el modelo del sistema P (z) para sintonizar , el modelo no se integra en el dise˜no del controlador. Esto es precisamente lo que el control por modelo interno aprovecha. Utiliza la informaci´on del modelo de la planta, ll´ amese a este: ym(z) = M (z)u(z) en el dise˜no del controlador. Pero antes, considere que el sistema de control por modelo interno como una transformaci´on del sistema de control retroalimentado (ver figura 4.25.a). Como primer cambio al sistema retroalimentado convencional se alimentan un par de modelos ym(z) = M (z)u(z) de la planta y p(z) = P (z)u(z) y se restan sus respuestas antes de insertarlas en el lazo de retroalimentaci´on (ver figura 4.25.b), lo anterior no implica ninguna alteraci´on en el comportamiento del sistema de control. El siguiente paso es llevar la respuestas de uno de los modelos de la planta hasta la posici´on de la se˜nal de error. (ver figura 4.25.c). En el ´ultimo paso se combinan los bloques del lazo formado por C (z) y M (z) llam´andole Q(z). El esquema del control por modelo interno es el de la figura 4.25.d. 126
– JMFA –
Cap´ıtulo 4. Control de Sistemas
r(z)
+-
e(z)
Controlador C(z)
u(z)
4.6. Control por Modelo Interno, [58]
Planta P(z)
d(z) y(z) p +
y(z) d
+
r(z)
+-
e(z)
Controlador C(z)
u(z)
Planta P(z)
d(z) y(z) d
y(z) p +
+
y(z) d
y(z) d
Modelo M(z)
Modelo M(z)
ym (z) -
+
+
+
ym(z)
(a)
r(z)
+-
+-
e(z) Controlador C(z)
u(z)
(b)
Planta P(z)
y(z) p
Modelo M(z)
ym(z)
d(z) y(z) d
+
r(z)
+
+-
Compensador u(z) Q(z)
Planta P(z)
d(z) y(z) d
y(z) p +
+
ym (z) Modelo M(z)
-
Modelo M(z)
+
-
+
^
d(z)
(c)
(d)
Control por Modelo Interno. Transformaci´on de un sistema de control retroalimentado convencional a un sistema de control por Modelo Interno. (a) Sistema de control retroalimentado convencional. (b) Inserci´on del modelo de la Planta M (z) en el lazo de retroalimentaci´on. (c) La respuesta de uno de los modelos de la planta M (z) se lleva a la entrada del controlador C(z). (d) Simplificaci´on del Controlador y del Modelo para formar el controlador Q(z), este es el esquema del control por modelo interno. ................................................................................................................. Figura 4.25:
De modo que las se˜nales que forman al control por modelo interno son: y p(z) = P (z)u(z) ym (z) = M (z)u(z) u(z) = Q(z)e(z) ˆ e(z) = r(z) d(z)
− ˆ d(z) = yd(z) − ym (z)
yd(z) = y p(z) + d(z)
Planta Modelo de Planta Controlador
(4.189) (4.190) (4.191)
Error
(4.192)
Error2 Salida del Sistema
(4.193) (4.194)
Para hallar la funci´on de transferencia del control por modelo interno primero se toma la ecuaci´on (4.194) y se sustituye en la ecuaci´on (4.189): yd (z) = P (z)u(z) + d(z).
(4.195)
Entonces es necesario hallar la relaci´on para u(z) en funci´on de r(z) y d(z). Para esto se usa la ecuaci´on (4.191) y en ella se sustituyen las ecuaciones (4.192) , (4.193) y (4.190)
ˆ − d(z) , u(z) = Q(z) [r(z) − yd (z) + M (z)u(z)] , u(z) = Q(z) r(z)
(4.196) (4.197)
ahora se utiliza la ecuaci´on (4.195) en la ecuaci´on (4.197): u(z) = Q(z) [r(z)
− P (z)u(z) − d(z) + M (z)u(z)] ,
(4.198)
al factorizar y despejar con respecto a u(z): u(z) =
Q(z) 1 + Q(z) [P (z)
− M (z)]
r(z)
Q(z) − 1 + Q(z) [P (z) − M (z)] d(z).
– JMFA –
(4.199) 127
4.6. Control por Modelo Interno, [58]
Cap´ıtulo 4. Control de Sistemas
Finalmente se utiliza la ecuaci´on (4.199) en la ecuaci´on (4.195) y reduciendo: P (z)Q(z) 1 Q(z)M (z) r(z) + d(z), 1 + Q(z) [P (z) M (z)] 1 + Q(z) [P (z) M (z)] yd (z) = η r(z) + ǫ d(z). yd (z) =
−
−
−
(4.200)
Se suelen llamar a los t´erminos ǫ y η como sensitividad y sensitividad complementaria. Analizando la ecuaci´on (4.200) cuando ocurre que el modelo impl´ıcito es identico a la Planta, es decir: M (z) = P (z)
(4.201)
Entonces la funci´on de transferencia (4.200) es la siguiente: yd (z) = P (z)Q(z)r(z) + [1
− Q(z)M (z)] d(z),
(4.202)
y basta con tomar al control Q(z) como igual al inverso del modelo interno M (z) para que el sistema siga a la referencia y rechace las pertubaciones ( Q(z) = M −1 (z)). (Notar que para eliminar las perturbaci´on s´ olo se necesita que Q(z) = M −1 (z)) De aqu´ı que el control por modelo interno puede considerarse un caso intermedio con el control de lazo abierto (4.183) y el control en lazo cerrado (4.188), ya que en el control por lazo abierto requiere que el controlador sea el modelo inverso de la planta P (z) con las dificultades que esto implica y que ya se han comentado; y en el caso del control en lazo cerrado, el controlador debe ser tal que la magnitud de P (z)C (z) sea mucho mayor que uno para las frecuencias de operaci´on del sistema de control, pero ya no tiene que estar necesariamente relacionado con el modelo de la planta. Es posible hallar el equivalente en lazo cerrado del control por modelo interno. (ver figura 4.26). El controlador equivalente se obtiene a juntar los bloques que corresponden al controlador Q(z) y del modelo interno M (z). Haciendo esto es f´ acil obtener el control equivalente: u(z) = Q(z) [r(z) + ym (z)] , = Q(z) [r(z) + M (z)u(z)] , = Q(z) [r(z) + M (z)u(z)] , Q(z) u(z) = r(z). 1 Q(z)M (z)
−
(4.203) (4.204) (4.205) (4.206)
De modo que el control equivalente en lazo cerrado es: C eq (z) =
1
−
Q(z) . C (z)M (z)
(4.207)
as´ı mismo de la ecuaci´on (4.207) se puede hallar la relaci´on entre C eq (z) Q(z) =
C eq (z) . 1 + M (z)C eq (z)
(4.208)
Cuando se cumple la condici´on del modelado perfecto de la planta ( M (z) = P (z)). Se pueden establecer dos condiciones para la estabilidad del control por modelo interno: 1. El sistema (4.202) es estable si y s´olo si la planta P (z) y el Controlador Q(z) son tambi´en estables. 2. Si P (z) es estable y Q(z) = P (z). Entonces el sistema retroalimentado convencional equivalente (4.207) es tambi´en estable. El control por modelo interno ofrece los siguientes beneficios con respecto a la retroalimentaci´on cl´asica. 1. No se necesita resolver las ra´ıces del polinomio caracter´ıstico 1 + P (z)Q(z), s´olo es necesario examinar los polos de Q(z). 2. Durante el dise˜no del control por modelo interno es ´unicamente necesario hallar el controlador Q(z) en vez de C (z). 128
– JMFA –
Cap´ıtulo 4. Control de Sistemas
r(z)
+-
Compensador u(z) Q(z)
4.6. Control por Modelo Interno, [58]
Planta P(z)
d(z) y(z) d
y(z) p +
+
r(z)
+-
e(z)
Controlador Ceq(z)
u(z)
Planta P(z)
d(z) y(z) p +
+
y(z) d
y(z) d Modelo M(z)
-
+
^
d(z)
(a)
(b)
Control por Modelo Interno –Eq. Lazo cerrado Es posible deducir el equivalente entre un sistema de control por modelo interno y el sistema convencional de lazo cerrado. a) Se marca los bloques que integran al control por modelo interno. b) Es el sistema de lazo cerrado equivalente. ................................................................................................................. Figura 4.26:
La condici´on de que Q(z) = M −1 (z) significa que el controlador utiliza la informaci´on disponible como modelo de la planta P (z). La condici´on para el seguimiento perfecto de la referencia es que el modelo de la planta M (z) sea igual a la planta P (z); pero garantizar esto para todo el rango de operaci´on de la planta es por lo general muy dif´ıcil de alcanzar, esto se acent´ua en las frecuencias altas de operaci´on. Una forma para contrarestar el efecto de la din´amica no modelada de alta frecuencia es usar un filtro pasa bajas en serie con el controlador Q(z) esto ayuda a aumentar el grado de robustes del sistema de control. As´ı que el controlador por modelo interno suele integrarse de la forma: Q(z)F (z) donde F (z) es un filtro pasa bajas. El dise˜no de Q(z) se realiza en tres pasos: 1. El modelo del sistema M (z) se factoriza en dos componentes M (z) = M + (z)M − (z)
(4.209)
en donde M + (z) reune los componentes de M (z) que no son invertibles, o que causar´ıan problemas al incluirlos en el control, y M − (z) contiene los componentes restantes de M (z). 2. Se usa como parte del controlador Q− (z) = (M − (z))−1 . 3. Y finalmente se utiliza como control por modelo interno a: Q(z) = Q− (z)F (z)
(4.210)
siendo F (z) un filtro pasa bajos.
4.6.1.
Control por Modelo Interno –Redes Neuronales
Por sus caracter´ısticas de robustes el control por modelo interno es muy atractivo de implementar por medio de redes neuronales. La capacidad de una red neuronal para representar funciones ya ha sido comentada, de modo que se pueden utilizar redes neuronales en los componentes del control por modelo interno. En la figura 4.27. a se presenta el esquema de control por modelo interno. En primer lugar el control por modelo interno aprovecha el conocimiento de la planta para incorporarlo en el control. En el caso de que el modelo empate con el comportamiento de la planta, el control por modelo interno asegura un seguimiento exacto de la referencia por la planta. Y para el rechazo de perturbaciones, es suficiente que el controlador sea el modelo inverso de la planta para asegurar su cancelaci´ on a la salida. En la figura 4.27. b esta el esquema de control por modelo interno usando redes neuronales, en el esquema se propone usar dos redes neuronales, una que se entrena para reproducir el modelo de la planta, y la segunda para generar la se˜nal de control. El filtro que se pone es para aumentar la robustes del sistema de control al atenuar la acci´on de control cuando el sistema trabaja a altas frecuencias donde se presentan diferencias de modelado. Algo importante que destacar es que al utilizar redes neuronales posibilita que el sistema a controlar sea no lineal, debido a que las redes pueden reproducir las relaciones no lineales que en los sistemas se presentan. – JMFA –
129
4.6. Control por Modelo Interno, [58]
Cap´ıtulo 4. Control de Sistemas
De manera que se requiere entrenar las redes para sustituir el modelo del sistema y el controlador. En la figura 4.28. a esta el esquema general para el entrenamiento del modelo de la planta, se utiliza el error de modelado y se retropropaga atrav´ es de la red para ajustar sus pesos y minimizar el error. La red que hace de controlador se entrena utilizando la red del modelo de la planta (ver figura 4.28. a) y se obtiene su modelo inverso. Notar que en realidad el controlador es el modelo inverso de la red de identificaci´on.
r(z)
+-
Control
u(z)
Filtro
Planta
d(z) y(z) d
y(z) p +
+
ym(z) Modelo
-
r(z)
e n t r a d a s
+-
RN Control
s a l i d a s
u(z)
Filtro
Planta
e n t r a d a s
+
d(z) y(z) d
y(z) p +
RN Modelo
s a l i d a s
+
ym(z) -
+
^
^
d(z)
d(z)
(a)
(b)
Control por Modelo Interno –Redes Neuronales. El esquema de control por modelo interno puede ser implementado por medio de redes neuronales. En a) Se presenta el esquema general del control por modelo interno. b) Se usan dos redes neuronales, una para identificar el modelo inverso de la planta, y la otra es el controlador. ................................................................................................................. Figura 4.27:
Planta
e n t r a d a s
RN pesos
+
s a l i d a s
+
ym(z) -
Control
r(z)
e n t r a d a s
RN pesos
Ajuste
s a l i d a s
u(z)
e n t r a d a s p e s o s
s a d a r t n e
Ajuste
s a d a r t n e
RN Modelo
d(z) y(z) d
y(z) p
Planta
+
em(z)
Modelo p e s o s
d(z) y(z) d
y(z) p
+
s a l i d a s
+
ym(z)
ec(z)
-
+
(a)
(b)
Control por Modelo Interno –Entrenamiento. Las redes neuronales para el control por modelo interno se entrenan fuera de l´ınea. En a) Se entrena a la red neuronal para reproducir el comportamiento de la plata a controlar, el error em (k) se retropropaga a trav´es de la red. b) El controlador es en principio el modelo inverso de la planta, el error ec (k). ................................................................................................................. Figura 4.28:
130
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.7.
4.7. Control de Sistemas por medio de RNRE.
Control de Sistemas por medio de RNRE.
Una RNRE es una red neuronal din´amica (ver secci´on 2) su ley de aprendizaje se obtiene a trav´ es del algoritmo de retropropagaci´ on del error. Adem´as se ha demostrado que tiene la capacidad identificar sistemas no lineales (ver secci´on 3.4.1). Ahora se presenta el caso del uso de una RNRE para el control de sistemas no lineales. El problema que se presenta es como hallar un esquema en donde se aproveche las estructura de la RNRE y su algoritmo de aprendizaje con el objetivo de modificar el comportamiento de un sistema din´amico.
4.7.1.
Sistemas de Control Adaptable Indirecto Usando los Par´ ametros Obtenidos por la RNRE
Esta fue la primera soluci´on en la que se experiment´o. La idea se basa en utilizar los par´ ametros generados por una RNRE que identifica el comportamiento del sistema a controlar, y dado que estos par´ ametros sintetizan la din´amica aproximada del sistema se usan para construir un control de tipo indirecto.
r(z)
r e f e r e n c i a
Planta
Control
d(z) y(z) d
y(z) p +
+
Parámetros
Control Adaptable Indirecto –RNRE. Se puede utilizar una Red Neuronal Recurrente Entrenable para identificar a un sistema o planta y luego usar los par´ametros de la RNRE para calcular la ley de control. ....................................... Figura 4.29:
Parámetros e n t r a d a s
RNRE
pesos
s a l i d a s
ym(z) -
em(z)
Modelo p e s o s
+
Ajuste
s a d a r t n e
Control Proporcional: Consid´erese el modelo linealizado de una RNRE de la forma: x(k + 1) = Jx(k) + Bu(k), y(k) = Cx(k), en donde J
(4.211) (4.212)
∈ Rn×n, B ∈ Rn×m y C ∈ R p×n, es posible hallar matrices de transformaci´on T y H , tales que: J ′ = T −1 JT, B ′ = T −1 BH, C ′ = CT ,
(4.213) (4.214) (4.215)
que llevan al sistema (4.211-4.212) a la forma can´onica de Luenberger: v(k + 1) = J ′ v(k) + B ′ w(k) y(k) = C ′ v(k)
– JMFA –
(4.216) (4.217) (4.218) 131
4.7. Control de Sistemas por medio de RNRE.
Cap´ıtulo 4. Control de Sistemas
T es una matriz de transformaci´on, las matrices J ′ , B ′ , y C ′ , son las siguientes:
′
J =
B′ =
′ ′ ′ J 11 J 12 J 1m ′ ′ ′ J 21 J 22 J 2m .. .. . . . . .. . . ′ ′ ′ J m1 J m2 J mm
·· · ·· · ·· ·
′ B11 ′ B12 .. .
′ B1m
en donde αii = ασi
1 +1
−
J ii′
;
′ Bii =
;
, . . . , α σi ; αij ασj
1 +1
−
=
0 Iσ αii
i
0 b′i
;
, . . . , α j ; b′i = 0
′ J ij
;
H =
=
1 0 .. .
0 αij
b12 b1m 1 b2m .. . . .. . . . 0 0 1
··· ··· ···
··· 0 1 0 ··· 0
Las matrices por bloques que se usan tiene las dimensiones siguientes: J ii′
;
(4.219)
;
, es decir, un 1 en al posici´on i.
∈ Rσ ×σ ; J ij′ ∈ Rσ ×σ ; Bij′ ∈ Rσ ×m αii ∈ R1×σ ; αij ∈ Rσ ×σ ; b′i ∈ R1×m ; H ∈ Rm×m . i
i
i
i
i
j
(4.220)
i
j
(4.221) (4.222)
Los ´ındices de controlabilidad σi est´an determinados a partir del n´umero de columnas linealmente independientes de la matriz de controlabilidad Γ = B, JB, J 2 B , . . . , J n B .
Es posible dise˜nar una retroalimentaci´on de los estados usando los m´etodos explicados en [59]. De forma que la ley de control es: w(k) =
−Gv(k);
(4.223)
en donde G es una matriz de ganancia m
× n. Aplicando esta retroalimentaci´on el sistema en lazo cerrado es: v(k + 1) = (J ′ − B ′ G)v(k) = Ac v(k),
(4.224)
en donde Ac es una matriz de transici´on de estados en lazo cerrado. Por la estructura de la matriz B ′ , se puede escribir una expresi´on para la matriz de ganancia G: G=α
− β ;
gii = αii
− βii;
gij = αij .
(4.225)
Usando las matrices de transformaci´on se puede obtener la ley de control expresada en coordenadas originales del sistema: u(k) =
−Kx(k) =;
K = H −1 GT,
(4.226)
en particular en el caso del control dead-beat (Polos controlables en el origen) se requiere que: β = 0, de manera que G = α. Control Proporcional-Integral: Otro m´etodo de dise˜no es la sintesis de controladores de tipo P, PD, PI y PID. Ahora se trata el caso del dise˜no de un controlador tipo PI. Se utiliza el mismo m´etodo de retroalimentaci´on que para el caso proporcional, s´olo se agrega otro termino a la ecuaci´on (4.211). Esta ecuaci´on es la integral de la salida del sistema (4.212), esto es: xI (k + 1) = T s y(k) + x ˆ(k)
(4.227)
en donde xI (k) es un vector de terminos integrales, y T s es el per´ıodo de discretizaci´on. Al sustituir (4.212) en (4.227), produce: xI (k + 1) = T s Cy(k) + xI (k) 132
– JMFA –
(4.228)
Cap´ıtulo 4. Control de Sistemas
4.7. Control de Sistemas por medio de RNRE.
Combinado la ecuaci´on (4.227) con (4.228) obtenemos el sistema aumentado: xa (k + 1) = J I xa (k) + BI u(k),
(4.229)
en donde xa (k) es un vector de estados aumentado. El sistema se transforma en el siguiente:
J 0 J I = ; T s C I I
BI =
B 0I
(4.230)
en donde I I es una matriz unitaria y 0I es una matriz de componentes cero. Y sobre este sistema se aplica la retroalimentaci´ on de estados. Es interesante hablar del caso de un sistema de una entrada y una salida; el sistema tiene la siguientes matrices:
B = b1 , b2 ,
J = Diag ( jii ) ;
· ·· bm
T
;
C = c1 , c2 ,
· · · c p
;
(4.231)
Las matrices del estado y del control del sistema transformado, se representa en la forma can´onica: A=
0 I n−1 α
′
;
B =
0n−1 ; 1
H = b,
(4.232)
en donde α es un vector fila de coeficientes; I n−1 es una matriz unitaria (n 1) (n 1); 0n−1 es una matriz de componentes cero (n 1) (n 1). La transformaci´on T puede obtenerse a partir de las siguientes relaciones:
− × −
− × −
T B ′ = B;
T A = JT,
(4.233)
Entonces es posible dise˜nar un control usando las ecuaciones (4.223) y (4.225).
Ejemplo 4.8 (Control Adaptable Indirecto —Control Proporcional, Proporcional-Integral.) Considere que el sistema est´ a regido por la siguientes expresiones: x1 (k + 1) x2 (k + 1) x3 (k + 1) x4 (k + 1) y(k)
= = = = =
g (x(k), u(k)) ; x1 (k) x2 (k) u(k) x1 (k); x1 x2 x3 g (x(k), u(k)) = + 0.5x4 + 2u, 1 + x21 + x22 + x23
(4.234) (4.235) (4.236) (4.237) (4.238) (4.239)
Los resultados obtenidos utilizando una retroalimentaci´ on de estados de tipo proporcional y proporcional-Integral se presentan el las figuras 4.27. a-d. Los estados y los par´ ametros de la planta se obtienen usando una identificaci´ on en l´ınea a trav´ es de una RNRE. Notar que existe un sobre impulso al principio del proceso, esto es provocado por el tiempo que necesita la RNRE para ajustar sus par´ ametros y mejorar su identificaci´ on.
En el ejemplo 4.8 se utiza una RNRE para identificar el sistema y se usan sus par´ametros para calcular la ley de control, este esquema de control es de tipo indirecto. La dificultad que presenta es la necesidad de ejecutar una fase de identificaci´ on antes de iniciar con el control, a´unque en este ejemplo se calcula la se˜nal de control al mismo tiempo que se identifica, esto provoca se produzcan fallas al inicio y que no se pueda controlar al sistema. As´ı que es recomendable que exista una fase previa de identicaci´on del sistema. Los resultados de la figura 4.30, dan prueba de que una RNRE es lo suficientemente r´apida para lograr buenos resultados durante su operaci´on. – JMFA –
133
4.7. Control de Sistemas por medio de RNRE.
Cap´ıtulo 4. Control de Sistemas
4
12
3 10 2 1
8
0 6
-1 -2
4
-3 2 -4 -5
(a) 0
2
4
6
8
10
(b) 12
14
16
18
20
0
160
1000
140
900
120
800
100
700
80
600
60
500
40
400
20
300
0
200
-20 -40
5
10
2
4
6
8
15
20
25
0
10
12
14
16
18
20
(d)
100
(c) 0
0
0
5
10
15
20
25
Control Adaptable Indirecto –P, PI. Control Proporcional: Par´ ametros de la red: η = 0.1, α = 0.1, Orden de la Red Neuronal n = 2, Periodo de muestreo T s = 0.01 seg. La referencia es un tren de pulsos de frecuencia 1/5 Hz, amplitud=3 y ciclo de trabajo de 50. a) L´ınea por puntos es la salida del la RNRE, l´ınea continua es la salida del sistema; b) Es el error cuadratico medio (MSE). Control Proporcional Integral: Par´emetros de la red: η = 0.5, α = 0.5, Orden de la red neuronal n = 1, per´ıodo de muestreo T o = 0.01 seg., La referencia es un tren de pulsos de frecuencia 1 /8 Hz, amplitud=100 y ciclo de trabajo de 50. c) L´ınea por puntos es la salida de la RNRE, l´ınea continua es la salida del sistema; d) Es el error cuadratico medio. ................................................................................................................. Figura 4.30:
Control Adaptivo para Seguimiento de Trayectoria –Caso escalar: El problema de seguimiento consiste en el dise˜no de un controlador que de manera asint´otica reduce el error entre la salida de la planta y la se˜nal de referencia. Aqu´ı se trata el caso escalar. Con una RNRE se logra identificar a sistemas y produce un modelo lineal y controlable del mismo. Este modelo es mejorado continuamente durante el entrenamiento y este mismo puede ser usado en el dise˜no del sistema de control. En esta secci´on se propone utilizar el m´etodo presentado en [41]. Entre una de las caracter´ısticas de una RNRE es que presenta un comportamiento no lineal global, p ero localmente puede aproximarse por una red lineal. Aprovechando esta estructura se aplican algunos de los m´etodos conocidos para los sistemas representados en variables de estado. Aqu´ı se propone utilizar los par´ametros de la red para aplicar un control adaptable de seguimiento de trayectoria. Durante el proceso de aprendizaje la red ajusta sus pesos J , B, y C . La aproximaci´on lineal que la red forma del sistema queda expresado como: x(k + 1) = Jx(k) + Bu(k); 134
– JMFA –
(4.240)
Cap´ıtulo 4. Control de Sistemas
4.7. Control de Sistemas por medio de RNRE. y(k) = Cx(k);
(4.241)
Arreglando la ecuaci´on de la salida (4.241) para k + 1 sustituyendo en esta ecuaci´on para el estado siguiente (4.240), se tiene: y(k + 1) = Cx(k + 1); y(k + 1) = CJ x(k + 1) + CB u(k),
(4.242) (4.243)
al sacar la derivada de (4.242) y (4.243) con respecto a u(k): ∂y (k) ∂x(k) = C ; ∂u(k) ∂u(k) ∂y(k + 1) ∂ (Jx(k + 1) + Bu(k)) = C , ∂u(k) ∂u(k)
(4.244) (4.245)
recordar el concepto de grado relativo. Si se supone que el sistema tiene grado relativo igual a uno las expresiones (4.246) y (4.247) son tales que: ∂y(k) ∂x(k) = C 0; ∂u(k) ∂u(k) ∂y(k + 1) ∂ (Jx(k + 1) + Bu(k)) = C = 0, ∂u(k) ∂u(k)
(4.246)
≡
(4.247)
es decir que la salida del sistema y(k) no se ve afectada por la entrada u(k), mientras que y(k + 1) s´ı. De modo que de la ecuaci´on (4.243) se obtiene la ley de control: CJ x(k + 1) + CBu(k) = y ∗ (k + 1),
(4.248)
en donde y ∗ () es la referencia deseada (Notar que por ser una se˜nal conocida no hay problema para obtener cualquiera de sus adelantos) con esta ley de control se obliga que el sistema alcance la referencia en un s´olo paso, es decir que el control (4.249) es de tipo dead-beat . De este modo la ley de control (4.249) es muy demandante, para darle un comportamiento asint´ otico se propone construir la siguiente funci´on de error, en donde: e(k) = y ∗ (k) y(k):
−
CJ x(k + 1) + CBu(k) = y ∗ (k + 1) + γ [y(k)∗
− y(k)] ,
(4.249)
y γ es un par´ ametro contante y que tiene como requisito que γ < 1 para no perder estabilidad.
||
Ejemplo 4.9 (Control Adaptable Indirecto —Seguimiento de Trayectoria.) Considere que el sistema est´ a regido por la siguientes expresiones: x(k + 2) = 0.8x(k + 1) y(k) = f (x(k)) ;
− 0.15x(k) + h(u(k));
(4.250) (4.251)
3
h (u(k)) =
[1.9u(k)] ; 2 1 [1.9u(k)] + 1
f (x(k)) =
x(k + 2) + 0.3x(k + 1) 3.5
(4.252)
3
.
(4.253)
La se˜ nal de referencia se selecciona como: r(k) = sen(2πT s k) + 2 sen(2 πT s k).
∗
Los datos de la red son: α = 0.001, η = 0.04, n´ umero de estados de la red n = 10, Periodo de muestreo T s = 0.01Seg.. El valor del par´ametro de control es γ = 0.1. Ver los resultados de la simulaci´ on en la figura 4.9.
– JMFA –
135
4.7. Control de Sistemas por medio de RNRE.
Cap´ıtulo 4. Control de Sistemas
5 4 3 2
Control Adaptable Indirecto – Seguimiento de Trayectoria. Comparaci´ on entre la respuesta del sistema y la referencia deseada. La l´ınea continua es la salida del sistema y(k) y la l´ınea por trazos es la referencia. Figura 4.31:
1 0 -1 -2 -3 -4 -5
0
1
2
3
4
5
6
7
8
9 Seg..10
5 4 3 2
Comparaci´ on entre la salida del modelo no lineal, –l´ınea continua. –y la respuesta del la RNRE, –l´ınea por trazos. –que se entrena como identificador.
1 0 -1 -2 -3 -4 -5 0
1
2
3
4
5
6
7
8
9 Seg .10
5 4 3 2 1
Se muestra el error de seguimiento que se obtiene al usar los par´ametros de una RNRE y el control (4.249) .............................................
0 -1 -2 -3 -4 -5 0
4.7.2.
1
2
3
4
5
6
7
8
. 9 Seg 10
Sistemas de Control Adaptable Directo Usando RNRE
Ya que las redes tienen la capacidad de generar modelos que se ajustan a las relaciones entre las variables de entrada y salida, uno de los esquemas b´asicos para el control que se han propuesto es el llamado por modelo inverso. En ´este lo que se busca es que la red neuronal aprenda la relaci´on inversa que existe entre las variables de entrada y salida del sistema a controlar. Y despu´es usar esta red como un precompensador del sistema. Al hacer esto la relaci´on referencia-salida tiene ganancia unitaria. Lo anterior implica que la salida del sistema y() sigue a la se˜nal de comando r(). Control por modelo Inverso Ya en la secci´on 4.3 se comenta el problema del control por modelo inverso. Ahora se utiliza una RNRE para controlar el modelo de un sistema. El objetivo es obtener un esquema adaptable que usa una RNRE para identificar el modelo 136
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.7. Control de Sistemas por medio de RNRE.
inverso del sistema a controlar. El m´ etodo de entrenamiento es el de tipo especializado, debido a que permite concentrarse la zona de operaci´on o de trabajo.
Controlador
r(z)
e n t r a d a s
RNRE
pesos
∂ u(k) ∂ w(k)
e n t r a d a s
u(z)
s a l i d a s
p e s o s
Ajuste
Planta Datos
s a l i d a s
y(z) p
ec(z)
+
∂ ec(k) ∂ y(k)
∂ y(k) ∂ u(k)
s a d a r t n e
-
-1
=
Error J(k) Medio Cuadrático
∂ J(k) = ec(k) ∂ec(k)
(a) Controlador
r(z)
e n t r a d a s
RNRE
pesos
e n t r a d a s
u(z)
s a l i d a s
Planta Datos
s a l i d a s
y(z) p
e n t r a d a s
RN pesos
s a l i d a s
ec(z)
+
∂ ec(k) ∂ y(k)
Identificador
∂ u(k) ∂ w(k)
-
-1
=
^
y(k)
Error J(k) Medio Cuadrático
∂ J(k) = ec(k) ∂ec(k)
^
p e s o s
Ajuste
s a d a r t n e
∂ y(k) ∂ u(k)
(b)
Control Adaptable Directo –Modelo Inverso. Por medio de una RNRE que se entrena para reproducir el modelo inverso de un sistema se puede construir un sistema de control. a) El error debe retropropagarse en por el modelo de sensibilidad de la planta para generar los gradientes para ajustar los pesos. d) Si no se dispone de un modelo de la planta, se puede sustituir por una RNRE y retropropagar la se˜nal por ella. ................................................................................................................. Figura 4.32:
Si se representa a la red neuronal y el sistema a controlar por las relaciones: u(k) = R (r(k)) y(k) = P (u(k))
(4.254) (4.255)
en donde u(k) es la se˜nal de control; y(k) es la respuesta del sistema. Adem´ as el objetivo de control es la minimizaci´on del error medio cuadr´atico: J (k) =
eT c (k)ec (k) 2
(4.256)
Los gradientes que para el entrenamiento de la red neuronal se obtienen del modelo de sensitividad de la red y del sistema, quedando expresados como: ∂J (k) ∂u(k) ∂y(k) ∂e c (k) ∂J (k) = ∂ω(k) ∂ω(k) ∂u(k) ∂y(k) ∂e c (k) ∂u(k) ∂y(k) = ( 1) ec (k). ∂ω(k) ∂u(k)
−
– JMFA –
(4.257) (4.258) 137
4.7. Control de Sistemas por medio de RNRE.
Cap´ıtulo 4. Control de Sistemas
∂u(k) De la ecuaci´on (4.258) notar lo siguiente. El gradiente ∂ω(k) se puede obtener atrav´ es de retropropagaci´ on y corresponde al modelo de sensibilidad de la planta, si se tiene el modelo puede usarse y calcularse.
∂y(k) ∂u(k)
Sin embargo, en los casos que no se tenga un modelo preciso de la planta se puede usar una RNRE para identificar al sistema y a trav´ es de este retropropagar la se˜nal de error. Si la salida de la red es: yˆ(k) entonces la expresi´on (4.258) quedar´ıa: ∂J (k) ∂u(k) ∂ ˆ y(k) = ( 1) ec (k). ∂ω(k) ∂ω(k) ∂u(k)
(4.259)
−
En la figura 4.32. Se muestra los casos de como retropropagar la se˜nal de error, esto depende de si se tiene un modelo del sistema bajo control, o si se usa un red neuronal para identificarlo.
Ejemplo 4.10 (Control Adaptable Directo —Modelo Inverso.) Considere que el sistema est´ a regido por la siguientes expresiones: x1 (k + 1) = x2 (k) x2 (k + 1) = x3 (k) x3 (k + 1) = 0.6x1 (k) + 0.3x2 (k) + h (u(k)) h (u(k)) =
(4.260) (4.261) (4.262)
−0.4u(k) + 0.3u2(k) + u3(k)
(4.263)
La se˜ nal de referencia se selecciona como: r(k) = 0.5 sen(π). Los datos de la red son: α = 0.001, η = 0.05, n´ umero de estados de la red n = 5, Periodo de muestreo T s = 0.01Seg. Ver los resultados de la simulaci´ on en la figura 4.33.
138
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.7. Control de Sistemas por medio de RNRE.
Control por Modelo Inverso
1
Control por Modelo Inverso 0.2 0.18
0.8
0.16
0.6
0.14
0.4
0.12
0.2
0.1
0
0.08 0.06
−0.2
0.04
−0.4
0.02
−0.6
0 0
5
10
(a)
15
5
Control por Modelo Inverso
1
0
t (seg)
10
(b)
15
t (seg)
t (seg)
Control por Modelo Inverso
0.8 0.7
0.8
0.6 0.6
0.5
0.4
0.4
0.2
0.3 0.2
0
0.1 −0.2
0
−0.4
−0.1 0
5
10
(c)
15
t (seg)
0
5
10
(d)
15
Control Adaptable Directo –Modelo Inverso. (a) Comparaci´ on entre la respuesta del sistema y la referencia deseada. La l´ınea continua es la salida del sistema y(k) y la l´ınea por trazos es la referencia. (b) Criterio a minimizar J (k) –Error medio cuadr´atico. (c) Error de seguimiento ec (k). (d) Se˜ nal de control u(k). ................................................................................................................. Figura 4.33:
– JMFA –
139
4.7. Control de Sistemas por medio de RNRE.
4.7.3.
Cap´ıtulo 4. Control de Sistemas
Control en Tiempo Real de un Motor de Corriente Continua
Debido a las pruebas en simulaci´on mostraron que los esquemas de control que se idearon entregaban buenos resultados se realizaron experimentos en la plataforma descrita en el ap´endice E. Se usa un motor de 24 voltios, y de aproximadamente de 8 amperes de corriente m´ axima. El motor esta conectado a un amplificardor de potencia que es controlado por una tarjeta de acquisici´on de datos. La programaci´on se realiza en Matlab-Simulink . En los experimentos de control se llevaron asignando una referencia para la posici´on y velocidad de motor. Debido a que la informaci´on de retroalimentaci´on es la posici´on del motor dada en las cuentas de un codificador ´optico, la velocidad se estima por medio del uso de un filtro.
Plataforma experimental El motor de corriente continua es impulsado por un amplificador de potencia que esta conectado a una tarjeta electr´onica de acquisici´on de datos. Dos computadoras se hacen cargo de la programaci´on y la supervici´on del sistema. ............................................. Figura 4.34:
El esquema de control consiste tres redes neuronales. Una de ellas opera como control, se entrena para reproducir el modelo inverso del sistema, para ello utiliza el error formado por la diferencia entre la se˜nal de referencia y la respuesta del motor, ec = r(k) y(k). Otra de las redes neuronales es un identificador del motor, se entrena con la diferencia entre la respuesta del motor y su salida, ei = yn2 (k) y(k). Los estados de la red de identificaci´on se usan para formar una retroalimentaci´ on, de manera que se llevan los estados de la red de identificaci´on a la tercera red que se entrena con el error de control.
−
−
Los datos de las redes son los siguientes: α = 0.005 y η = 0.005, el per´ıodo de muestreo es T s = 0.001 Seg. La redes uno y dos tienen una entrada, cuatro nodos internos y una salida. La tercera red neuronal tiene tres entradas, y la misma configuraci´on interna. La se˜nal de referencia es la siguiente:
π r(k) = G1 Sat G2 sen(2 ) . P
(4.264)
en donde Sat() es la funci´on de saturaci´on. Se realizan dos experimentos de control, uno para controlar la posici´on del motor y el otro para controlar la velocidad. Para el experimento de posici´ on la referencia es:
π r(k) = 1.5Sat 3 sen(2 ) . 4
(4.265)
En la figura 4.7.3. En la primera gr´afica se muestran la respuesta del motor comparada con la referencia deseada, notar como al inicio hay una gran diferencia que se va reduciendo conforme se entrena la red neuronal. La gr´ afica del error traza la forma en que se va disminuyendo. Y en la tercera gr´afica esta el control producido por la red y que se aplica al motor. 140
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.7. Control de Sistemas por medio de RNRE.
Para el experimento de posici´ on la referencia es:
r(k) = 15Sat 20 sen(2 y
r(k) = 10sen 2 En la figura 4.7.3. se presentan sus resultados.
π ) , 10
π 2
(4.266) (4.267) (4.268)
Esquema de control en tiempo real de un Motor CC. El esquema de control usa tres redes neuronales. Una de control, se entrena para reproducir el modelo inverso del sistema. Otra red neuronal es un identificador del motor. Los estados de la red de identificaci´on se usan para formar una retroalimentaci´on, se llevan a la tercera red que se entrena con el error de control. ............................................... Figura 4.35:
Señal de Referencia
ec
ec u ff +
RNRE-1
yp
+
Planta
+ +
ec u fb
x nn
ei RNRE-2 RNRE-3
x nn
– JMFA –
141
4.7. Control de Sistemas por medio de RNRE.
Cap´ıtulo 4. Control de Sistemas
Control Tiempo Real de un Motor de CC
2 1.5 1 ) d a r (
0.5
Control en Tiempo Real de un Motor de CC – Posici´ on. Figura 4.36:
0
θ −0.5
−1 −1.5 −2 0
2
4
6
8
10
12
(a)
14
16
18
t (seg)
Control Tiempo Real de un Motor de CC
2
(a) Comparaci´on entre la respuesta del Motor y la referencia deseada. La l´ınea continua es la salida de posici´ on del Motor θ(k) y la l´ınea por trazos es la referencia.
1.5
) d a r ( ) k (
1 0.5
c
e
(b) Error de seguimiento ec (k).
0
−0.5 −1 0
2
4
6
8
10
12
(b)
14
16
18
t (seg)
Control Tiempo Real de un Motor de CC
0.1 0.08 0.06 0.04 ) k ( u
0.02
(c) Se˜ nal de control u(k). .......................................
0
−0.02 −0.04 −0.06 −0.08 −0.1 0
2
4
6
142
8
(c)
10
12
14
16
18
t (seg)
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.7. Control de Sistemas por medio de RNRE.
Control Tiempo Real de un Motor de CC
20 15 10 5 ) k (
Control en Tiempo Real de un Motor de CC – Velocidad. Figura 4.37:
0
ω
−5 −10 −15 −20 0
10
20
30
40
(c)
50
60
t (seg)
Control Tiempo Real de un Motor de CC
20
(a) Comparaci´on entre la respuesta del Motor y la referencia deseada. La l´ınea continua es la salida de velocidad del Motor θ(k) y la l´ınea por trazos es la referencia.
15 10 5 ) k (
c
0
e
−5
(b) Error de seguimiento ec (k).
−10 −15 −20 0
10
20
30
40
(b)
50
60
t (seg)
Control Tiempo Real de un Motor de CC
0.1 0.08 0.06 0.04 ) k ( u
0.02
(c) Se˜ nal de control u(k). .......................................
0
−0.02 −0.04 −0.06 −0.08 −0.1 0
10
20
30 (c)
40
50
60
t (seg)
– JMFA –
143
4.8. Conclusiones
4.8.
Cap´ıtulo 4. Control de Sistemas
Conclusiones
El objetivo de este cap´ıtulo es reflexionar de la necesidad del control, o lo que es lo mismo, del manejo de las variables de inter´es de los sistemas, tambi´en se resumen algunas de las metodolog´ıas usadas para controlar sistemas a trav´es de redes neuronales y, finalmente, se presentas los resultados en simulaci´on y en tiempo real de las aplicaciones de control por medio de una Red Neuronal Recurrente Entrenable (RNRE). Los casos de control por medio de redes neuronales est´aticas han mostrado cierto grado de efectividad. La caracter´ıstica m´as ´util es que una red neuronal es que puede aproximar funciones no lineales. Generalmente se utilizan para reproducir la relaci´on funcional entre variables, una vez alcanzada la precisi´on necesaria se utiliza la red neuronal como parte del sistema de control. As´ı hay esquemas que utilizan una red neuronal para reproducir la relaci´on funcional entre las variables de un controlador convencional para que se sustituya a este control por la red. Otro enfoque es el control inverso, que ajusta los pesos de la red neuronal para reproducir la relaci´on inversa del sistema, de modo que al poner a la red como precompensador cancele la din´amica de la planta. Pero por en los ejemplos que se realizaron se encuentra que la dificultad principal de las redes neuronales est´ aticas es la relativa lentitud para su entrenamiento. Por lo general, los esquemas que utilizan redes neuronales se entrenan primero con una serie de datos y s´olo despu´es de lograr la precisi´on establecida, se utiliza dentro del sistema de control. Por ello el inter´ es de aplicar una Red Neuronal Recurrente y Entrenable. Por el contrario de una red est´ atica, una red din´amica es un sistema que responde a la se˜nal de entrada y a su estado interno. De manera que se espera que una red din´amica no requiera gran n´umero nodos ocultos (estados) y que esto permita que el ajuste de sus pesos sea m´as r´apido comparado con una red est´atica. En los ejemplos de la aplicaci´on de la Red Neronal Recurrente pudieron comprobarse los beneficios de usar una de este tipo. Una RNRE no requiere de un gran n´umero de nodos ocultos para lograr sus objetivos. Lo anterior hace menos demandante de p oder de c´alculo al sistema para entrenar la red. En los ejemplos de simulaci´on s´ olo el control Proporcional y el Proporcional-Integral necesitan de que la red tenga un per´ıodo de entrenamiento antes de iniciar a general la se˜nal de control. El control por modelo inverso mostro mejores caracter´ısticas, ya se podia iniciarse al c´ alculo del control junto con el entrenamiento de la red recurrente. En los problemas de tiempo real se concluye que una RNRE puede controlar sistemas din´amicos sin requerir de un per´ıodo previo de entrenamiento, la red neuronal de manera progresiva iba mejorando su desempe˜no. Pero quedan algunas cosas por resolver. Por ejemplo, si la red debe estar contantemente actualizando sus pesos. En algunos experimentos se noto que una vez alcanzada la referencia se produce un ciclo l´ımite, es decir una oscilaci´on alrededor del la referencia, esta oscilaci´on es producida por la alta ganancia que la red tiene. La manera en la que se redujo esta oscilaci´on es poniendo un l´ımite a los pesos de la red, principalmente a los pesos de la capa de retroalimentaci´on de la red. Al parecer es necesario poder ajustar los par´ ametros de la red con el fin de atenuarlos y reducir as´ı su ganancia. Otra interrogante es como evitar sobreentrenamiento de la red, ya que causa que en ciertas condiciones el sistema se inestabilice. Todas estas cuestiones deberan irse resolviendo en el futuro.
144
– JMFA –
Conclusiones Generales y Perspectivas Conclusiones Generales El objetivo de todas estas p´aginas es dar un panorama general del uso de las redes neuronales en las tareas de identificaci´ on y control de sistemas. Desde el primer c´ apitulo se presentaron los conceptos fundamentales, dando sus modelos y principios de operaci´on, destacando los terminos de entrenamiento y generalizaci´ on y de su capacidad de aproximaci´on. El trabajo de investigaci´on se enfoc´o en el uso de una estructura de red neuronal di´namica que se llam´o Red Neuronal Recuerrente Entrenable , o por sus siglas RNRE. Esta red tiene una estructura que resulta interesante explotar. Es una red neuronal din´amica, es decir que su respuesta depende de la se˜nal de entrada y de su variables internas. Es una red que globalmente es un sistema no lineal, pero en su aproximaci´on, es una red localmente lineal. Su estructura es muy semejante a una representaci´on de un sistema en variables de estado. El algoritmo de entrenamiento se deduce a partir del algortimo de retropropagaci´on del error, para simplificar este algoritmo se restringen los pesos internos a formar una matriz diagonal, durante el desarrollo de las ecuaciones de aprendizaje se supone que la relaci´on entre las variables es est´ atica. Ambas consideraciones simplifican y hacen que el entrenamiento se realice con poca complejidad. La identificaci´on se entiende como la capacidad de construir modelo de los sistemas a partir de la informaci´on disponible. Se presentan algunos de los m´etodos convencionales para realizar identificaci´on. Se ver´a que la mayor´ıa de estos m´etodos son aplicables a sistemas que se modelan como lineales en sus par´ ametros. Antes de tratar la identificaci´on usando la RNRE, se presenta el porque una red neuronal de este tipo podr´ıa ser adecuada para esta tarea. A diferencia de una red neuronal est´atica, una RNRE es un sistema din´amico en si, de manera que no requiere de otros componentes para servir como un modelo de identificaci´on. En esta secci´on se presentan varios ejemplos se identificaci´on con la RNRE. El control es otro aspecto que se trat´o. Pero este representa un reto de mayor complejidad. El algoritmo de entrenamiento que se desarrollo es de tipo aprendizaje supervizado , y como los problemas de control requieren que se genere la se˜nal de control correcta para que el sistema cumpla con lo que se le demanda, y como en principo no se conoce cu´al es esta se˜nal correcta, esto hace d´ıficil reconocer como utilizar una red neuronal como controlador. La RNRE puede actuar como controlador situ´andola como un controlador por mo delo inverso, para entrenarla se utiliza es esquema especializado de entrenamiento. Esta fue la forma m´as exitosa de usar a la RNRE como controlador. Los otros esquemas de control, por ejemplo el control adaptable indirecto que utiliza los par´ametros de una RNRE usada para identificar al sistema, requiere de un per´ıodo de entrenamiento antes de que sean ´utiles los par´ ametros para calcular la ley de control. El m´etodo por modelo inverso sustituye la retroalimentaci´on del sistema al controlador, por la retropropagaci´on de la se˜nal de error a trav´es de la red. Finalmente, en los experimentos con el motor de cc. se confirma que una RNRE puede ser usada para controlar sistemas. Anotando que una de las condiciones para que esto sea posible es que el sistema sea estable, o que tenga un buen grado de amortiguamiento, en caso contrario se produce un ciclo l´ımite en las cercanias de la referencia.
145
4.8. Conclusiones
Cap´ıtulo 4. Control de Sistemas
Perspectivas Por supuesto que hay temas que no se han tratado con la profundida debida, pero que podr´ an irse resolviendo en con trabajo futuro: En el trabajo se han utilizado ecuaciones de entrenamiento est´aticas, se debe considerar el caso din´amico. Lo anterior abre la posibilidad de modificar la leyes de ajuste de los pesos, por lo visto en los experimentos, ser´ıa interesante hacer que la ley de entrenamiento dependa tambi´ en de la se˜nal de entrada. Estos cambios deben analizarse para ver su efecto con la estabilidad del entrenamiento mismo y de la red. Se debe buscar la posibilidad de aplicar a la RNRE en problemas de control en tiempo real de sistemas m´as complejos para evaluar con mayor r´ıgidez su capacidad. En algunos experimentos realizados ha resultado interesante hacer que el control neuronal colabore con un control convencional, lo anterior hace m´ as confiable al sistema.
146
– JMFA –
Bibliograf´ıa [1] Philippe De Wilde. Neural Networks Models . Lecture Notes in Control and Information Science 210, Springer. [2] K. J. Hunt, D. Barbaro, R. Zbikowski and P. J. Gawthrop. Neural Networks for Control Systems—A Survey . Automatica, Vol. 28, No. 6, pp. 1083-1112, 1992 [3] Kurkt Hornik. Multilayer Feedforward Networks are Universal Approximators . Neural Networks, Vol. 2, pp. 359-366, 1989 [4] Kurkt Hornik. Approximation Capabilities of Multilayer Feedforward Networks . Neural Networks, Vol. 4, pp. 251257, 1991 [5] Ken-Ichi Funahashi. On the Approximate realization of Continuos Mappings by Neural Networks . Neural Networks, Vol. 2, pp. 183-192, 1989 [6] P. S. Sastry, G. Santharam, K. P. Unnikrishnan Memory Neuron networks for Identification and Control of Dynamical Systems . IEEE Trans. on Neural Networks, Vol. 5, No. 2, March, 1994. [7] Ah Chung Tsoi, S. Andrew D. Back. Locally Recurrent Globally Feedforward Networks: A Critical Review of Architectures . IEEE Trans. on Neural Networks, Vol. 5, No. 2, pp . 229-239 March, 1994 [8] K. S. Narendra and K. Parthasarathy. Identification and Control of Dynamical Systems Using Neural Networks. , IEEE Trans. on Neural Networks, Vol. 1, No. 1, March, 1990 [9] K. S. Narendra. Neural Network for Control Theory and Practice. Proceedings of the IEEE, vol. 84, No. 10, October, 1996 [10] Kumpati S. Narendra, Kannan Parthasarathy. Gradient Methods for the Optimization of Dynamical Systems Containing Neural Networks. IEEE Trans. on Neural Networks, Vol. 2, No. 2, March, 1991 [11] I. Baruch, E. Gorcheva, F. Thomas, R. Garrido. A neuro-fuzzy model for nonlinear for nonlinear plants identification. Proc. of IASTED Int. Conf. of Modelling and Simulation, May 5-8, 1999, Philadelphia, PA, USA, pp. 219-221 [12] I. Baruch, R. Garrido, A. Mitev and B. Nenkova. A Neural Network Approach for Stick-Slip Friction Model Identification. Proc. of the 5th Int. conf. On Enginnering Applications of NN’s (EANN’99), Sept. 13-15, 1999, Warsaw, Poland. [13] Francesca Albertini, Eduado D. Sontag. State Observability in Recurrente neural Networks . Systems & Control Letters, Vol. 22, pp. 235-244, 1994 [14] Eduardo D. Sontag, H´ector Sussman. Complete Controllability of Continuous-time Recurrent Networks . Systems & Control Letters, Vol. 30, pp. 177-183, 1997 [15] Simon Hayking. Neural Networks, A comprehensive Foundation, prentice Hall, second edition, 1999 [16] Kevin M. Passino. Intelligent Control: A Tutorial. IEEE Joint Int. Conf. on Control Applications & Int. Symp. on Intelligent Control (CCAISIC’2001), Sept. 5-7, 2001, M´exico, D.F, M´exico. [17] K. J Hunt, G. R Irwin, K. Warwick. Neural Network Engineering in Dynamic Control Systems. Advanced In Industrial Control, Springer, 1995. 147
4.8. Conclusiones
Cap´ıtulo 4. Control de Sistemas
[18] Patrick K. Simpson. Fundation of Neural Networks [19] P. J. Werbos. Backpropagation Through Time: What It Does and How to do it .Proc. of the IEEE, Vol. 78, No. 10, Oct, 1990. [20] S. Mark Halpin, Reuben F. Burch. Applicability of Neural Networks to Industrial and Commercial Power Systems: A Tutorial Overview . IEEE Trans. on Industrial Applications, Vol. 33, No. 5, September/October, 1997 [21] D. H. Rao, H. C. Wood, M. M. Gupta. Control of Nonlinear Multivariable Systems Using a Dynamic Neural Network. [22] M. S. Ahmed, M. A. Al-Dajani. Neural Regulator Desing. Neural Networks . Vol.11,pp. 1695-1709, 1998 [23] Kumpati S. Narendra, Snehasis Murkhopadhyay. Adaptive Control of Nonlinear Multivariable Systems Using Neural Networks . Neural Networks, Vol. 7, No. 5, pp. 735-752, 1994 [24] Gitaras V. Puskorius, Lee A. Feldkamp. Neuro Control of Nonlinear Dynamic Systems with Kalman Filter Trained Recurrent Networks . IEEE trans, on Neural Networks, vol. 5, No. 2, March, 1994 [25] Pramod Gupta, Naresh K. Sinka. Intelligent Control of RObotics Manipulator: Experimental Study using Neural Networks . Mechatronics, vol. 10, pp. 289-305, 2000 [26] M. S. Ahmed, Block Partial Derivative and Its Applications to Neural-Net-based Direct-Model-Reference Adaptive Control . IEE Proc. Control Theory Appl. Vol. 141, No. 5, September, 1994 [27] George A. Rubithakis, Manolis A. Chirstodoulou. Direct Adaptive Regulator of Unknow Nonlinear Dynamic Systems Via Dynamic Neural Networks . IEEE Trans. on Systems, Man and Cybernetics, vol. 25, No. 12, December 1995 [28] L. Jin, P. N. Nikiforuk, M. M. Gupta. Adaptive Model Reference Control of Discrete-Time Nonlinear Systems Using Neural Networks . Control-Theory and Advanced Tecnology, Vol. 10, No. 4, Part 3, pp. 1379-1399, September, 1995 [29] O. Nerrand, P. Roussel-Ragot, D. Urbani, L. Personnaz, G. Dreyfus. Training Recurrent Neural Networks: Why and How? An Illustrative in Dynamical Process Modelling . IEEE Trans. on Neural Networks, Vol. 5, No. 2, March, 1994 [30] Lotfi A. Zadeh. Fuzzy Logic . IEEE Computer Magazine, pp. 83-93. April, 1988 [31] Charles W. Anderson. Learning to Control and Inverted Pendulum Using Neural Networks . IEEE Control Systems Magazine, April, 1989 [32] Andrew G. Barto, Richard S. Sutton, Charles W. Anderson. Neuronlike Adaptive Elements That Can Solve Difficult Learning Control Probles. IEEE Trans. on Syst. Man and Cibernetics, Vol. SMC-13, No.5, Sep./Oct. 1983. [33] Richard S. Sutton, and Paul J. Werbos. Neural Networks for Control. W. The MIT Press, Cambridge Massachussetts, London, England edition, 1990 [34] F. L. Lewis, S. Jagannathan, A. Yesildirek. Neural Network Control of Robot Manipulators and Nonlinear Systems . Taylor and Francis Ltd. 1999 [35] F. Chen. Backpropagation Neural Networks for Nonlinear Self-Tuning Adaptive Control. IEEE control System Magazine, April, 1990 [36] Bernard Widrow, Michael A. Lehr. 30 Years of Adaptive Neural Networks: Perceptron, Madaline, and Backpropagation. [37] I. D. Landau, R. Lozano and M. M. Saud. Adaptive Control. Springer, 1998. [38] Graham C. Goodwin and Kwai Sang Sin Adaptive Filtering Prediction and Control. Prentice-Hall, 1984. ˜ [39] Kumpati S.Narendra and Anaradha M. Annaswamy Stable Adaptive Systems Prentice-Hall, 1989. [40] W. Murray Wonham Linear Multivariable Control-A Geometric Approach. Springer-Verlag, 1985. 148
– JMFA –
Cap´ıtulo 4. Control de Sistemas
4.8. Conclusiones
[41] Arberto Isidori Nonlinear Control Systems. Springer-Verlag, 1995. [42] Neural Networks for Optimization and Signal Processing. John Wiley & Sons, 1992. [43] Benjamin C. Kuo Automatic Control Systems. Prentice Hall, 1995. [44] D. P. Kwok, P. Wang and K. Zhou. Process Identification Using a Modified Elman Neural Net. Int. Symposium on Speach, Image Processing and NN, Hong Kong, 13-16 April, 1994. [45] Roland E. Thomas, Albert J. Rosa. The Analisys and Design of Linear Circuits. Prentice Hall, 1998 [46] http://www.mathworks.com [47] http://www.quanser.com [48] http://www.miktex.org [49] http://www.winedt.org [50] Mauricio Russek, Michael Cabanac. Regulaci´ on y Control en Biolog´ıa. Ed. Instituto Polit´ecnico Nacional. 1990. [51] Mark W. Spong, M. Vidyasagar. Robot Dynamics and Control. Ed. John Wiley & Sons. 1989. [52] Julio Tanumaru, Yoshizo Takahashi. A General Structure for Neurocontrol of Dynamical Systems. Proc. of the IECON’93, International Conference on Industrial Electronics and Instrumentation, pp.304-309, Vol.1, IEE, New York, USA 1993. [53] Tariq Samad. Neurocontrol: Concepts and Applications. ISA/91, Advances in Instrumentation and Control, Vol.46, Instrument Society of America, 1991. [54] Oceano Uno Color Diccionario Enciclop´edico , 1995 [55] Eric A. Wan, Fran¸coise Beaufays. Diagrammatic Methods for Deriving and Relating Temporal Neural Network Algorithms. Neural Computation, pp. 182-201. Vol.8, No.1, 1996 [56] K.J. Hunt, D.Sbarbaro. Neural Networks for Nonlinear Internal Model. IEE Proceedings-D, Vol.138, No.5, September, 1991 [57] K.J. ˚ Astr¨ om. Theory and Applications of Adaptive Control–A Survey. Automatica, Vol.19, No.5, pp.471-486, 1983 [58] Ming T. Tham. Internal Model Control. Parts of a set of lecture notes on Introduction to Robust Control, 2002 http://lorien.ncl.ac.uk/ming/ [59] I.Baruch Use of the Luenberguer Canonical Form in the Synthesis of Multivariable Control Sistems. Problems of Engineering Cybernetics,Bas, Sofia, Vol.6, 1977, pp.35-39.
– JMFA –
149
4.8. Conclusiones
150
Cap´ıtulo 4. Control de Sistemas
– JMFA –
Ap´ endice A
Art´ıculos Publicados A.1.
Congresos Nacionales
[a.i]
I. Baruch, J. Marti´n Flores, Implementaci´ on de un Multi-Modelo Neuronal para la Identificaci´ on de Sistemas No lineales , CIE’99, 8-10 Sept. 1999, CINVESTAV-IPN, M´exico D.F.
[a.ii]
J. Mart´ın Flores, I. Baruch, Aplicaci´ on de Una Red Neuronal Recurrente para el Control de Sistemas Discretos , Memorias del Congreso de Ingenier´ıa El´ectrica CIE’2000, 8-10 Sept. 2000, CINVESTAV-IPN, M´exico D.F.
[a.ii]
I. Baruch, J. Mart´ın Flores, Real-Time Identification and Control of Mechanical Systems by Neural Networks , AAPR’2000 Taller en Avances en la Percepci´on Artificial y Rob´otica, 23-25 de Oct. 2000, CIMAT, Guanajuato, M´exico, pp. 107-114
A.2.
Congresos Internacionales
[b.i]
Baruch, J. Mart´ın Flores, Adaptive Control of Nonlinear Systems , (M.H. Hamza) Proc. of the IASTED Int. Conference Control and Applications (CA’2000), 24-27 May 2000, Canc´un, M´exico, pp. 230-236.
[b.ii]
I. Baruch, J. Mart´ın Flores Albino, R. Garrido, E. Gortcheva, An Indirect Adaptive Neural Control of Nonlinear Plants , Proc. of the International Joint Conference on Neural Networks, IJCNN’2000, 24-27 July 2000, Como, Italy.
[b.iii] I. Barouh, J. Mart´ın Flores, J. C. Mart´ınez, B. Nenkova, Fuzzy-Neural Models for Real-Time Identification and Control of Mechanical Systems , (St. Cerri, D. Dochev-Eds) Proc. of the ECCAI International Conference AIMSA’2000, 27-30 September 2000, Varna, Bulgaria, Lectures Notes in Artificial Intelligence 1904, Springer, Berling, pp.292-300 [b.iv] I. Baruch, J. Mart´ın Flores, J. C. Mart´ınez, R. Garrido, A Multi-Model Parameter and State Estimation of Mechanical Systems , Proc. of the IEEE International Symposium ISIE’2000, 4-8 December 2000, Puebla, M´exico, vol.2, pp. 700-705 [b.v]
I. Baruch, J. Mart´ın Flores, Boyka Nenkova, A Neural Network Composite Model for Nonlinear System Identification and Control , Proc. Os the Intern. Conf. On Automation and Informatics (Symposium on Intelligent Control), 24-26 October, Sofia, Bulgaria, pp. 115-119
[b.vi] I. Baruch, J. Mart´ın Flores, R. Garrido, A Fuzzy-Neural Recurrent Multi-model for Systems Identification and Control , Proc. of the European Control Conference, ECC’2001, Portugal, Sept, 4-7, 2001, pp. 3540-3545. [b.vii] I. Baruch, J. M. Flores, F. Thomas, E. Gorcheva, A Multimodel Recurrent Neural Network for Systems Identification and Control , Proc. of the International Joint Conference on Neural Networks, IJCNN’2001, Washington, USA, July 14-19, 2001, pp. 1291-1296 151
A.3. Revistas Nacionales
Cap´ıtulo A. Art´ıculos Publicados
[b.viii] M. M. Goire, J. M. Flores, M. Bonilla, I. Baruch, Model Reference Neural Control of a Variable Structure System by Output Feedback , Proc. of the International Joint Conference on Neural Networks, IJCNN’2001, Washington, USA, July 14-19, 2001, pp.532-537 [b.ix] I. Baruch, J. Mart´ın Flores, R. Garido, A. Del Pozo, Red Neuronal Recurrente para Identificaci´ on y Control de Sistemas No Lineales , Memorias del III Simposio de Control Autom´atico, CIMAF’2001, La Habana, Cuba, Marzo 19-23, 2001, p´ags. 175-182 [b.x]
Ieroham Baruch, Jos´e Mart´ın Flores, R´uben Garrido, J. C. Mart´ınez G. An Adaptive Neural Control of a DC Motor , Proceedings of the IEEE Joint International Conference on Control Applications and Int. Symp. On Intelligent Control, CCA/ISIC’2001, M´exico D. F., M´exico, Sept. 5-7, 2001, pp.121-126
[b.xi] Ieroham Baruch, Jos´e Mart´ın Flores, Boyka Nenkova, Application of the RTNN Model for a System Identification, Prediction and Control , 2nd IFAC DECOM-TT, Ohrid, Macedonia, 24-30 May, 2001, pp. 351-357
A.3.
Revistas Nacionales
[c.i]
I. Baruch, J. Mart´ın Flores, R. Garrido, E. Gortcheva, Identificaci´ on de Sistemas No Lineales Complejos Usando Multi-Modelo Neuronal , Revista Cient´ıfica, ESIME-IPN, No.19, enero-febrero, 2000, M´exico D.F, pp. 29-38
[c.ii]
Jos´e Mart´ın Flores Albino, Ieroham Baruch, R´uben Garrido. Red Neuronal Recurrente para Identificaci´ on y Control de Sistemas No lineales . Revista Cient´ıfica, ESIME-IPN, Vol.5, No.1, enero-marzo, 2001, pp. 11-20, 2001
[c.iii] M. Margarita Goire C., Jos´e Mart´ın Flores A., Mois´es Bonilla, Ieroham S. Baruch. Control Neuronal por Modelo de Referencia para un Sistema de Estructura Variable . Revista: Computaci´on y Sistemas, CIC-IPN, Vol.6, No.4, 2003, pp. 284-292, ISSN 1405-5546
A.4. [d.i]
Anexos en Libros
Ierohan Baruch, Jos´e Mart´ın Flores, Federico Thomas, R´uben Garrido, Adaptive Neural Control of Nonlinear Systems , (Georg Dorffner, Horst Bischof, Kurt Hornik-Eds) Artificial Neural Networks-ICANN 2001, Lecture Notes in Computer Sciencien 2130, Springer, Berling, 2001, ISBN 3-540-42486-5, pp. 930-936
[d.ii] I. Baruch, J. M. Flores, R. Garrido, B. Nenkova, Real-Time Identification and Control of a DC Motor Using Recurrent Neural Networks , (vara Kurkova, Nigel Steele, Roman Neruda, Miroslav Karny-Eds.) Artificial Neural Networks and genetic Algorithms, Springer-Verlag, Wien, New York, 2001, ISBN 3-211-83651-9, pp. 165-169
152
– JMFA –
Ap´ endice B
Programas de C´ omputo B.1. % % % % % % % % %
Aproximaci´ on de una Funci´on No Lineal por Medio de una RNMC
DICIEMBRE,2001 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB VER.5.0 IMPLEMENTA UNA RED NEURONAL(RN) MULTI-CAPA PARA LA APROXIMACION DE UNA FUNCION NO LINEAL SE UTILIZA EL ALGORITMO DE ENTRENAMIENTO DEL TIPO RETRO-PROPAGACION DEL ERROR LA RN TIENE UNA ENTRADA, DOS CAPAS OCULTAS Y UNA SALIDA
% INICIO PROGRAMA: MLNN2P%%%%%%%%%%% clear all close all step=100; % Paso de graficacion num_ep=800; % Numero de epocas no=1; n1=4; n2=4; n3=1;
% % % %
No. No. No. No.
etha=0.15;
de de de de
entradas. Nodos, primer capa oculta. Nodos, Segunda capa oculta. Nodos, Salidas
%Constante de aprendizaje
% Pesos iniciales(incluye bias) W1=0.1*rand(n1,no+1); W2=0.1*rand(n2,n1+1); W3=0.1*rand(n3,n2+1); X=(-1:0.1:1)’; % Entradas X_max=max(X); num_data=size(X,1); %Numero de datos Yd=1*sin((pi/1)*X); % Valor deseado (Funcion) Yd_max=max(Yd); % Inicializaciones
153
B.1. Aproximaci´on de una Funci´on No Lineal por Medio de una RNMC
Cap´ıtulo B. Programas de C´omputo
Ec=0; MSE=[]; hfig1=figure(1); set(hfig1,’position’, [0
460
672
504]);
figure(hfig1); plot(X,Yd,’o’); axis([min(X)*1.1 max(X)*1.1 min(Yd)*1.1 max(Yd)*1.1]); drawnow; hold on; for data=1:num_data %Paso hacia adelante S1=W1*[1;X(data)]; O1=tanh(S1); S2=W2*[1;O1]; O2=tanh(S2); S3=W3*[1;O2]; Y(data)=S3; end figure(hfig1); if (exist(’id’) & exist(’idplot’)), delete(id);delete(idplot);end id=text(X_max*0.5,Yd_max*0.8,0,num2str(0)); set(id,’FontWeight’,’bold’,’color’,’black’) idplot=plot(X,Y,’-’); drawnow; for ep=1:num_ep; for data=1:num_data;
% Por cada epoca % Para cada dato
% Paso hacia adelante S1=W1*[1; X(data)]; O1=tanh(S1); % Salida de la primera capa S2=W2*[1; O1]; O2=tanh(S2);
% Salida de la segunda capa
S3=W3*[1; O2]; Y=S3;
% Salida (lineal) de la RN
E=Yd(data)-Y; Ec=Ec+(E^2);
% Error % Suma de E^2
% paso hacia atras grad1_local=-E; grad1=grad1_local*([1; O2])’;
% Gradiente local de salida. % Gradiente de salida.
grad2_local=(1-O2.^2).*((W3(:,2:n2+1)’)*(grad1_local)); % Gradiente local capa oculta 2 grad2=grad2_local*([1; O1])’; % Gradiente capa oculta 2 grad3_local=(1-O1.^2).*((W2(:,2:n1+1)’)*(grad2_local)); % Gradiente local capa oculta 1 grad3=grad3_local*([1; X(data)])’; % Gradiente capa oculta 1 % Actualizacion de Pesos W3=W3-etha*exp(-ep/num_ep)*grad1; W2=W2-etha*exp(-ep/num_ep)*grad2; W1=W1-etha*exp(-ep/num_ep)*grad3;
154
– JMFA –
Cap´ıtulo B. Programas de C´o mputo
B.2. Aproximaci´on de una Funci´on No Lineal por Medio de una RNFRB
end MSE=[MSE Ec/2]; Ec=0; if rem(ep,step)==0 for data=1:num_data %Paso hacia adelante S1=W1*[1;X(data)]; O1=tanh(S1); S2=W2*[1;O1]; O2=tanh(S2); S3=W3*[1;O2]; Y(data)=S3; end figure(hfig1); if (exist(’id’) & exist(’idplot’)), delete(id);delete(idplot);end id=text(X_max*0.5,Yd_max*0.1,0,[’Ep=’ num2str(ep)]); hold on set(id,’FontWeight’,’bold’,’color’,’black’) idplot=plot(X,Y,’-’); plot(X,Yd,’o’) axis([min(X)*1.1 max(X)*1.1 min(Yd)*1.1 max(Yd)*1.1]); drawnow; end end hfig2=figure(2); set(hfig2,’position’, [620 460 672 504]); figure(hfig2); plot(1:num_ep,MSE); id2=text(num_ep*0.5,max(MSE)*0.5,0,[’MSE=’,num2str(MSE(max(size(MSE,2))))]); set(id2,’FontWeight’,’bold’,’color’,’black’) % FIN PROGRAMA: MLNN2P%%%%%%%%%%%
B.2. % % % % % % %
Aproximaci´ on de una Funci´on No Lineal por Medio de una RNFRB
ENERO,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.0 IMPLEMENTA UNA RED NEURONAL(RN) DE FRB PARA LA APROXIMACION DE UNA FUNCION NO LINEAL
% INICIO PROGRAMA: RBF2.m%%%%%%%%%%%
X=(-1:0.1:1)’; num_data=size(X,1); Yd=1*sin((pi/1)*X);
%Datos de entrenamiento(entradas) %numero de datos de entrenamiento %Datos de entrenamiento(Salidas)
– JMFA –
155
B.3. Algoritmo de Proyecci´on
Cap´ıtulo B. Programas de C´omputo
Xc=(-1:0.2:1)’; %Centros de las FRB num_data1=size(Xc,1); Yc=1*sin((pi/1)*Xc); s=0.5; R1=[]; for i=1:num_data; for j=1:num_data1; R1(i,j)=gaus(X(i)-Xc(j),s); end end W=(inv(R1’*R1)*(R1’))*Yd; %Calculo de Pesos Yp=R1*W; figure(1); plot(X,Yd,’-’) hold on plot(X,Yp,’x’) hold on plot(Xc,Yc,’+’) hold off axis([-1.1 1.1 -1.1 1.1])
% FIN PROGRAMA: RBF2.m %%%%%%%%%%% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Funcion gaussiana % r expansion % Inicia Funcion gaus
%%%%%%%%%%%
function y=gaus(x,r) y=exp(-0.5*(x/r)^2);
%
% Termina funcion gaus %%%%%%%%%%% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
B.3. % % % % % % % % %
Algoritmo de Proyecci´ on
MAYO,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.0 ALGORITMO DE PROYECCION INICIO PROGRAMA: proyec.m%%%%%%%%%%%
clear close all %TIEMPOS Tf=2; Ts=0.01; t=0:Ts:Tf;
156
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.3. Algoritmo de Proyecci´on
%FRECUENCIAS f1=1/1; f2=10; %CONSTANTES a=0.1; c=0.001; %PARAMETROS par=[-295.803E-3; 703.648E-3; 10607.511E-3; 10607.511E-3]; %ESTIMADO INICIAL pe(:,1:2)=[0 0;0 0;0 0;0 0]; %SALIDA INICIAL y(1:2)=[0;0]; %ENTRADA INICIAL u(1:2)=[0;0];
for k=3:(Tf/Ts)+1; %REGRESOR reg=[y(k-1);y(k-2);u(k-1);u(k-1)]; %SALIDA DEL SISTEMA y(k)=(reg’)*par; %MODELO ye(k)=(reg’)*pe(:,k-1); %ERROR DE SALIDA e(k)=y(k)-ye(k); %ALGORITMO DE PROYECCION g=reg/(reg’*reg+ c); %ACTUALIZACION DE LA ESTIMACION pe(:,k)=pe(:,k-1)+a*g*e(k); %ENTRADA u(k)=1*sin(2*pi*f1*(k-1)*Ts)+1*sin(2*pi*f2*(k-1)*Ts); end Tf2=(1/2)*Tf; t2=0:Ts:Tf2; r=size(t2,2); plot(t2,[y(1:r); ye(1:r)]); figure line([0 0 0 0;Tf Tf Tf Tf],[par’; par’]); hold on plot(t,pe) hold off figure subplot(4,1,1) plot(t,e)% subplot(4,1,2) plot(t,pe(1,:)-par(1))% subplot(4,1,3) plot(t,pe(2,:)-par(2))% subplot(4,1,4) plot(t,pe(3,:)-par(3))% % TERMINA PROGRAMA: proyec.m%%%%%%%%%%%
– JMFA –
157
B.4. Algoritmo de Proyecci´on Ortogonal
Cap´ıtulo B. Programas de C´omputo
----------------------------------------
B.4. % % % % % % % % %
Algoritmo de Proyecci´ on Ortogonal
MAYO,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.0 ALGORITMO DE PROYECCION ORTOGONAL INICIO PROGRAMA: porto.m%%%%%%%%%%%
clear close all %TIEMPOS Tf=2; Ts=0.005; t=0:Ts:Tf %FRECUENCIAS f1=1; f2=10; %CONSTANTES c=0.001; par=[-295.803E-3; 703.648E-3; 10607.511E-3; 10607.511E-3]; %ESTIMADO INICIAL pe(:,1:2)=[0 0;0 0;0 0;0 0]; %SALIDA INICIAL y(1:2)=[0;0]; %ENTRADA INICIAL u(1:2)=0;
P=eye(4); for k=3:(Tf/Ts)+1; %REGRESOR reg=[y(k-1);y(k-2);u(k-1);u(k-1)]; y(k)=(reg’)*par; %MODELO ye(k)=(reg’)*pe(:,k-1); %ERROR DE SALIDA e(k)=y(k)-ye(k); %ALGORITMO DE PROYECCION ORTOGONAL g=P*reg/(c+reg’*P*reg);
158
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.5. Algoritmo de M´ınimos Cuadrados
pe(:,k)=pe(:,k-1)+g*e(k); P=P-P*reg*reg’*P/(c+reg’*P*reg); %ENTRADA u(k)=1*sin(2*pi*f1*(k-1)*Ts)+1*sin(2*pi*f2*(k-1)*Ts); end Tf2=1; t2=0:Ts:Tf2; r=size(t2,2); plot(t2,[y(1:r); ye(1:r)]); figure line([0 0 0 0;Tf Tf Tf Tf],[par’; par’]); hold on plot(t,pe) hold off figure subplot(4,1,1) plot(t,e) subplot(4,1,2) plot(t,pe(1,:)-par(1)) subplot(4,1,3) plot(t,pe(2,:)-par(2)) subplot(4,1,4) plot(t,pe(3,:)-par(3)) % FIN PROGRAMA: porto.m%%%%%%%%%%% ----------------------------------------
B.5. % % % % % % % % %
Algoritmo de M´ınimos Cuadrados
MAYO,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.0 ALGORITMO MINIMOS CUADRADOS INICIO PROGRAMA: lms.m%%%%%%%%%%%
clear close all %TIEMPOS Tf=2; Ts=0.01; t=0:Ts:Tf; %FRECUENCIAS f1=1; f2=10; %CONSTANTES c=1; par=[-295.803E-3; 703.648E-3; 10607.511E-3; 10607.511E-3]; %ESTIMADO INICIAL pe(:,1:2)=[0 0;0 0;0 0;0 0]; %SALIDA INICIAL y(1:2)=[0;0];
– JMFA –
159
B.6. Ident. Vel. Motor cc. con RN Est´atica
Cap´ıtulo B. Programas de C´omputo
%ENTRADA INICIAL u(1:2)=0;
P=1*eye(4); for k=3:(Tf/Ts)+1; %REGRESOR reg=[y(k-1);y(k-2);u(k-1);u(k-1)]; y(k)=(reg’)*par; %MODELO ye(k)=(reg’)*pe(:,k-1); %ERROR DE SALIDA e(k)=y(k)-ye(k); %ALGORITMO MINIMOS CUADRADOS g=P*reg/(1+reg’*P*reg); pe(:,k)=pe(:,k-1)+g*e(k); P=P-P*reg*reg’*P/(1+reg’*P*reg); %ENTRADA u(k)=1*sin(2*pi*f1*(k-1)*Ts)+1*sin(2*pi*f2*(k-1)*Ts); end Tf2=1; t2=0:Ts:Tf2; r=size(t2,2); plot(t2,[y(1:r); ye(1:r)]); figure line([0 0 0 0;Tf Tf Tf Tf],[par’; par’]); hold on plot(t,pe) hold off figure subplot(4,1,1) plot(t,e) subplot(4,1,2) plot(t,pe(1,:)-par(1)) subplot(4,1,3) plot(t,pe(2,:)-par(2)) subplot(4,1,4) plot(t,pe(3,:)-par(3)) % FIN PROGRAMA: lms.m%%%%%%%%%%% ----------------------------------------
B.6.
Identificaci´ on de la velocidad de un Motor de cc. usando una RN Est´ atica
% JUNIO,2002 % CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN % DEPTO. DE CONTROL AUTOMATICO
160
– JMFA –
Cap´ıtulo B. Programas de C´omputo % % % % % % %
B.6. Ident. Vel. Motor cc. con RN Est´atica
PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 IDENTIFICACION DEL MODELO DE VELOCIDAD DE UN MOTOR DE CD USANDO UNA RED NEURONAL ESTATICA INICIO PROGRAMA: nn_mot.m%%%%%%%%%%%
clear all close all %TIEMPOS Tf=5; Ts=0.005; t=0:Ts:Tf; % # Numero de Epocas epf=350; % Parametros de entrenamiento eta=0.00007; alfa=0.00001; %# de entradas;# nodos ocultos;# salidas no=4;n1=10; n2=1; %g escala para Tanh g=200; %Bias bias1=0; bias2=0; %Pesos iniciales W1=0.001*rand(n1,1+no); DW1=zeros(n1,1+no); W2=0.001*rand(n2,n1+1); DW2=zeros(n2,n1+1); %Parametros del Motor (velocidad) par=[-295.803E-3; 703.648E-3; 10607.511E-3; 10607.511E-3]; %SALIDA INICIAL y(1:2)=zeros(1,2); yg(1:2)=zeros(1,2); ynng(1:2)=zeros(1,2); %ENTRADA INICIAL u(1:2)=zeros(1,2); ug(1:2)=zeros(1,2); %FRECUENCIAS f1=0.5; f2=2; f3=10; %Inicializaciones Ec=0; Tf2=2; t1=0:Ts:Tf; t2=0:Ts:Tf2; for ep=1:epf, % EPOCAS for k=3:(Tf/Ts)+1, %SIMULACION %REGRESOR
– JMFA –
161
B.6. Ident. Vel. Motor cc. con RN Est´atica
Cap´ıtulo B. Programas de C´omputo
reg=[y(k-1);y(k-2);u(k-1);u(k-2)]; %Velocidad Motor y(k)=(reg’)*par; % Paso hacia adelante S1=W1*[bias1;reg]; O1=g*tanh(S1/g); S2=W2*[bias2;O1]; ynn(k)=S2; % Salida de la RN % paso hacia atras e=y(k)-ynn(k); % Error Ec=Ec+(e^2); % Suma de e^2 E1(k)=(0.5/k)*Ec; grad1=-e; % Gradiente de salida. grad2=(1-(O1/g).^2).*W2(1,2:n1+1)’*grad1; % Gradiente2. % Actualizacion de Pesos tmp2=W2; W2=W2-eta*grad1*[bias2;O1]’+alfa*DW2;%*exp(-k*Ts/1); DW2=W2-tmp2; tmp1=W1; W1=W1-eta*grad2*[bias1;reg]’+alfa*DW1;%*exp(-k*Ts/1); DW1=W1-tmp1; %ENTRADA u(k)=1*cos(2*pi*f1*k*Ts)+2*cos(2*pi*f2*k*Ts)... +0.5*sin(2*pi*f3*k*Ts); end ep figure(1) subplot(2,1,1) plot(t1,[y; ynn]) subplot(2,1,2) plot(t1,E1) drawnow Ec=0; % Generalizacion for k=3:(Tf2/Ts)+1, %REGRESOR reg=[yg(k-1);yg(k-2);ug(k-1);ug(k-2)]; %Velocidad Motor yg(k)=(reg’)*par; reg2=[ynng(k-1);ynng(k-2);ug(k-1);ug(k-2)]; % Paso hacia adelante S1=W1*[bias1;reg2];
162
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.7. Ident. No lineal con RN Est´atica
O1=g*tanh(S1/g); S2=W2*[bias2;O1]; ynng(k)=S2; % Salida de la RN %Error e=yg(k)-ynng(k); % Error Ec=Ec+(e^2); % Suma de e^2 E2(k)=(0.5/k)*Ec; %ENTRADA if k*Ts<0.5 ug(k)=0.1*sin(2*pi*2*k*Ts); elseif k*Ts<0.75 ug(k)=0.05; elseif k*Ts<1 ug(k)=0; elseif k*Ts<=2 ug(k)=0.1*cos(2*pi*1*k*Ts); end end figure(2) subplot(2,1,1); plot(t2,[yg; ynng]) subplot(2,1,2); plot(t2,E2) drawnow Ec=0; end % FIN PROGRAMA: nn_mot.m%%%%%%%%%%%
B.7. % % % % % % % % % %
Identificaci´ on de un Sistema No Lineal Usando una RN Est´ atica
JUNIO,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 IDENTIFICACION DEL MODELO DE UN SISTEMA NO LINEAL USANDO UNA RED NEURONAL ESTATICA INICIO PROGRAMA: nn_id.m%%%%%%%%%%%
clear all close all % # Numero de Epocas epf=30; % Parametros de entrenamiento eta=0.04; alfa=0.04;
– JMFA –
163
B.7. Ident. No lineal con RN Est´atica
Cap´ıtulo B. Programas de C´omputo
%# de entradas;# nodos ocultos;# salidas no=5;n1=10; n2=1; %g escala para Tanh g=0.5; %Bias bias1=0; bias2=0; %Pesos iniciales W1=0.001*rand(n1,1+no); DW1=zeros(n1,1+no); W2=0.001*rand(n2,n1+1); DW2=zeros(n2,n1+1); %SALIDA INICIAL yp(1:3)=zeros(1,3); yn(1:3)=zeros(1,3); ypg(1:3)=zeros(1,3); yng(1:3)=zeros(1,3); %ENTRADA INICIAL u(1:2)=zeros(1,2); ug(1:2)=zeros(1,2); %Inicializaciones Ec=0; for ep=1:epf, % EPOCAS for k=3:999, %SIMULACION %ENTRADA u(k)=0.80*sin(2*pi*k/250)+0.3*cos(2*pi*k/25); %MODELO NO LINEAL Num=yp(k)*yp(k-1)*yp(k-2)*u(k-1)*(yp(k-2)-1)+u(k); Den=1+yp(k-2)^2+yp(k-1)^2; yp(k+1)=Num/Den; in1=[yp(k);yp(k-1);yp(k-2);u(k);u(k-1)]; % Paso hacia adelante S1=W1*[bias1;in1]; O1=g*tanh(S1/g); S2=W2*[bias2;O1]; yn(k+1)=S2; % Salida de la RN % paso hacia atras e=yp(k+1)-yn(k+1); % Error Ec=Ec+(e^2); % Suma de e^2 E1(k)=(0.5/k)*Ec; grad1=-e; % Gradiente de salida. grad2=(1-(O1/g).^2).*W2(1,2:n1+1)’*grad1; % Gradiente2. % Actualizacion de Pesos tmp2=W2; W2=W2-eta*grad1*[bias2;O1]’+alfa*DW2;%*exp(-k*Ts/1); DW2=W2-tmp2;
164
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.7. Ident. No lineal con RN Est´atica
tmp1=W1; W1=W1-eta*grad2*[bias1;in1]’+alfa*DW1;%*exp(-k*Ts/1); DW1=W1-tmp1; end ep figure(1) subplot(2,1,1) plot(0:999,[yp; yn]) subplot(2,1,2) plot(0:998,E1) drawnow Ec=0; % Generalizacion for k=3:599, %ENTRADA if k<150, ug(k)=0.5*sin(2*pi*k/50); elseif k<200 ug(k)=0.5; elseif k<250 ug(k)=-0.5; elseif k<=600 ug(k)=0.4*cos(2*pi*k/200); end %MODELO NO LINEAL Num=ypg(k)*ypg(k-1)*ypg(k-2)*ug(k-1)*(ypg(k-2)-1)+ug(k); Den=1+ypg(k-2)^2+ypg(k-1)^2; ypg(k+1)=Num/Den; in2=[yng(k);yng(k-1);yng(k-2);ug(k);ug(k-1)]; % Paso hacia adelante S1=W1*[bias1;in2]; O1=g*tanh(S1/g); S2=W2*[bias2;O1]; yng(k+1)=S2; % Salida de la RN %Error e=ypg(k+1)-yng(k+1); % Error Ec=Ec+(e^2); % Suma de e^2 E2(k)=(0.5/k)*Ec; end figure(2) subplot(2,1,1); plot(0:599,[ypg; yng]) subplot(2,1,2);
– JMFA –
165
B.8. Ident. Vel. Motor cc. con RNRE
Cap´ıtulo B. Programas de C´omputo
plot(0:598,E2) drawnow Ec=0; end % FIN PROGRAMA: nn_id.m%%%%%%%%%%%
B.8. % % % % % % % % % %
Identificaci´ on de la Velocidad de un Motor de CC. Usando una Red Neuronal Recurrente Entrenable
JUNIO,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 IDENTIFICACION DEL MODELO DE VELOCIDAD DE UN MOTOR DE CD USANDO UNA RED NEURONAL RECURRENTE ENTRENABLE INICIO PROGRAMA: rnre_id1.m%%%%%%%%%%%
clear all clc clear %Tiempos Ts=0.005; % Tiempo de muestreo Tf=5; % Tiempo de Entrenamiento Tf2=4; % Tiempo de Generalizacin %epoca epf=5; %Razon de aprendizaje eta1=0.0005; alfa1=0.005; eta2=0.00001; alfa2=0.0001; eta3=0.0001; alfa3=0.001; %escala para tanh Sc1=20; %Definicion de bias biasc=0; %biasc=0; biasb=0; %biasb=0;
%Dimensiones de la RN ni=1; %# Entradas n=5; %# Nodos no=1; %# Salidas
%Inicializacion de pesos B=0.001*randn(n,ni+1); DB=zeros(n,ni+1);
166
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.8. Ident. Vel. Motor cc. con RNRE
J=0.001*randn(n,3); DJ=zeros(n,1); C=0.001*randn(no,n+1); DC=zeros(no,n+1); x=0.001*randn(n,3); %Inicializacion sistema w=zeros(1:2); wg=zeros(1:2); u=zeros(1:2); ug=zeros(1:2);
for ep=1:epf for k=3:(Tf/Ts)+3, %Referencia de entrada u(k)=0.5*cos(pi*k*Ts)+... 1*cos(4*pi*k*Ts);%+... %0.25*sin(20*pi*k*Ts); %Sistema a identificar %"Modelo de la Velocidad de un Motor de CD" w(k)=-295.803E-3*w(k-1)+... 703.648E-3*w(k-2)+... 10607.511E-3*(u(k-1)+u(k-2)); %Paso hacia adelante s1=B*[biasb; u(:,k)]; x(:,k+1)=J(:,k).*x(:,k)+s1; z=Sc1*tanh(x(:,k)/Sc1); s2=C*[biasc; z]; y(:,k)=1*(s2); %Error yd(:,k)=w(k); e=yd(:,k)-y(:,k); %Paso Hacia atras %Entrenamiento lgrad1=e*1; lgradx=(((lgrad1’)*C(:,2:n+1))’).*(1-(z/Sc1).^2); %Actualizacion de pesos Ctemp=C; C=C+eta1*(lgrad1*[biasc; z]’)+alfa1*DC; DC=C-Ctemp; Jtemp=J(:,k); J(:,k+1)=J(:,k)+eta2*(lgradx.*x(:,k-1))+alfa2*DJ; ji=find(abs(J(:,k+1))>0.9); if ~isempty(ji), J(ji,k+1)=0.8*sign(J(ji,k+1)); end DJ=J(:,k+1)-Jtemp;
– JMFA –
167
B.8. Ident. Vel. Motor cc. con RNRE
Cap´ıtulo B. Programas de C´omputo
Btemp=B; B=B+eta3*(lgradx*[biasb; u(:,k-1)]’)+alfa3*DB; DB=B-Btemp; end t=0:Ts:Tf; figure(1) plot(t,[yd(3:size(yd,2));y(3:size(y,2))]); title(’Identificacin-Entrenamiento’) drawnow t2=0:Ts:Tf2;% JJ=J(:,k); % Generalizacion for k=3:(Tf2/Ts)+3, %ENTRADA if k*Ts<1, ug(k)=0.1*sin(4*pi*k*Ts); elseif k*Ts<1.5 ug(k)=0.05; elseif k*Ts<2 ug(k)=0; elseif k*Ts<=(Tf2/Ts)+3 ug(k)=0.1*cos(2*pi*k*Ts); end %Sistema a identificar %"Modelo de la Velocidad de un Motor de CD" wg(k)=-295.803E-3*wg(k-1)+... 703.648E-3*wg(k-2)+... 10607.511E-3*(ug(k-1)+ug(k-2));
%Paso hacia adelante s1=B*[biasb; ug(:,k)]; x(:,k+1)=JJ.*x(:,k)+s1; z=Sc1*tanh(x(:,k)/Sc1); s2=C*[biasc; z]; yng(:,k)=1*(s2);
ydg(:,k)=wg(k); end ep figure(2) plot(t2,[ydg(3:size(ydg,2)); yng(3:size(yng,2))]) title(’Identificacin-Generalizacin’) drawnow end % FIN PROGRAMA: rnre_id1.m%%%%%%%%%%%
168
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.9.
% % % % % % % % % %
B.9. Ident. No Lineal con RNRE
Identificaci´ on de un Sistema No Lineal Usando una Red Neuronal Recurrente Entrenable
JUNIO,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 IDENTIFICACION DE UN SISTEMA NO LINEAL USANDO UNA RED NEURONAL RECURRENTE ENTRENABLE INICIO PROGRAMA: rnre_id2.m%%%%%%%%%%%
clear all clc clear
%epoca epf=3; %Razon de aprendizaje eta1=0.05; alfa1=0.05; eta2=0.005; alfa2=0.005; eta3=0.05; alfa3=0.05; %escala para tanh Sc1=0.5; %Definicion de bias biasc=-1; %biasc=0; biasb=-1; %biasb=0; %Dimensiones de la RN ni=1; %# Entradas n=5; %# Nodos no=1; %# Salidas %Inicializacion de pesos B=0.001*randn(n,ni+1); DB=zeros(n,ni+1); J=0.001*randn(n,3); DJ=zeros(n,1); C=0.001*randn(no,n+1); DC=zeros(no,n+1); x=0.001*randn(n,3); %Inicializacion sistema yp(1:3)=zeros(1,3); yn(1:3)=zeros(1,3); ypg(1:3)=zeros(1,3); yng(1:3)=zeros(1,3); u=zeros(1:2); ug=zeros(1:2);
for ep=1:epf
– JMFA –
169
B.9. Ident. No Lineal con RNRE
Cap´ıtulo B. Programas de C´omputo
EC1=0; for k=3:999, %Referencia de entrada u(k)=0.80*sin(2*pi*k/250)+... 0.3*cos(2*pi*k/25); %MODELO NO LINEAL Num=yp(k)*yp(k-1)*yp(k-2)*u(k-1)*(yp(k-2)-1)+u(k); Den=1+yp(k-2)^2+yp(k-1)^2; yp(k+1)=Num/Den;
%Paso hacia adelante s1=B*[biasb; u(:,k)]; x(:,k+1)=J(:,k).*x(:,k)+s1; z=Sc1*tanh(x(:,k)/Sc1); s2=C*[biasc; z]; yn(:,k)=1*(s2); %Error e=yp(:,k)-yn(:,k); EC1=EC1+e^2; MSE1(k)=(0.5/k)*EC1; %Paso Hacia atras %Entrenamiento lgrad1=e*1; lgradx=(((lgrad1’)*C(:,2:n+1))’).*(1-(z/Sc1).^2); %Actualizacion de pesos Ctemp=C; C=C+eta1*(lgrad1*[biasc; z]’)+alfa1*DC; DC=C-Ctemp; Jtemp=J(:,k); J(:,k+1)=J(:,k)+eta2*(lgradx.*x(:,k-1))+alfa2*DJ; ji=find(abs(J(:,k+1))>0.9); if ~isempty(ji), J(ji,k+1)=0.8*sign(J(ji,k+1)); end DJ=J(:,k+1)-Jtemp; Btemp=B; B=B+eta3*(lgradx*[biasb; u(:,k-1)]’)+alfa3*DB; DB=B-Btemp; end figure(1) subplot(2,1,1) plot(0:998,[yp(2:size(yp,2)); yn]);
170
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.10. Ident. No Lineal MIMO con RNRE
title(’Identificacin-Entrenamiento’) subplot(2,1,2) plot(0:998,MSE1) drawnow EC2=0; JJ=J(:,k); % Generalizacion for k=3:599, %ENTRADA if k<150, ug(k)=0.5*sin(2*pi*k/50); elseif k<200 ug(k)=0.5; elseif k<250 ug(k)=-0.5; elseif k<=600 ug(k)=0.4*cos(2*pi*k/200); end %MODELO NO LINEAL Num=ypg(k)*ypg(k-1)*ypg(k-2)*ug(k-1)*(ypg(k-2)-1)+ug(k); Den=1+ypg(k-2)^2+ypg(k-1)^2; ypg(k+1)=Num/Den;
%Paso hacia adelante s1=B*[biasb; ug(:,k)]; x(:,k+1)=JJ.*x(:,k)+s1; z=Sc1*tanh(x(:,k)/Sc1); s2=C*[biasc; z]; yng(:,k)=1*(s2); %Error e=ypg(:,k)-yng(:,k); EC2=EC2+e^2; MSE2(k)=(0.5/k)*EC2; end ep figure(2) subplot(2,1,1); plot(0:598,[ypg(2:size(ypg,2)); yng]) title(’Identificacin-Generalizacin’) subplot(2,1,2); plot(0:598,MSE2) drawnow end % FIN PROGRAMA: rnre_id2.m%%%%%%%%%%%
B.10. % % % %
Identificaci´ on de un Sistema No Lineal MIMO Usando una Red Neuronal Recurrente Entrenable
JUNIO,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO
– JMFA –
171
B.10. Ident. No Lineal MIMO con RNRE
Cap´ıtulo B. Programas de C´omputo
% COMPILADOR: MATLAB 5.2 % % IDENTIFICACION DE UN SISTEMA NO LINEAL MIMO % USANDO UNA RED NEURONAL RECURRENTE ENTRENABLE % % INICIO PROGRAMA: rnre_id3.m%%%%%%%%%%% clear all clc close %epoca epf=20; %Razon de aprendizaje eta1=0.01; alfa1=0.01; eta2=0.001; alfa2=0.001; eta3=0.01; alfa3=0.01; %escala para tanh Sc1=0.5; %Definicion de bias biasc=-1; %biasc=0; biasb=-1; %biasb=0; %Dimensiones de la RN ni=2; %# Entradas n=10; %# Nodos no=2; %# Salidas %Inicializacion de pesos B=0.001*randn(n,ni+1); DB=zeros(n,ni+1); J=0.001*randn(n,3); DJ=zeros(n,1); C=0.001*randn(no,n+1); DC=zeros(no,n+1); x=0.001*randn(n,3); %Inicializacion sistema yp=zeros(2,3); yn=zeros(2,3); ypg=zeros(2,3); yng=zeros(2,3); u=zeros(2,3); ug=zeros(2,3);
for ep=1:epf EC1=0; for k=2:500, %Referencia de entrada u(1,k)=0.8*sin(2*pi*k/100)+0.3*cos(2*pi*k/10); u(2,k)=1.5*cos(2*pi*k/200)+0.3*sin(2*pi*k/20); %MODELO NO LINEAL %subsistema 1 yp(1,k+1)=0.5*(yp(1,k)/(1+yp(2,k)^2)+u(1,k));
172
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.10. Ident. No Lineal MIMO con RNRE
yp(2,k+1)=0.5*(yp(1,k)*yp(2,k)/(1+yp(2,k)^2)+u(2,k)); %Paso hacia adelante s1=B*[biasb; u(:,k)]; x(:,k+1)=J(:,k).*x(:,k)+s1; z=Sc1*tanh(x(:,k)/Sc1); s2=C*[biasc; z]; yn(:,k)=1*(s2); %Error e=yp(:,k)-yn(:,k); EC1=EC1+e.^2; MSE1(:,k)=(0.5/k)*EC1; %Paso Hacia atras %Entrenamiento lgrad1=e*1; lgradx=(((lgrad1’)*C(:,2:n+1))’).*(1-(z/Sc1).^2); %Actualizacion de pesos Ctemp=C; C=C+eta1*(lgrad1*[biasc; z]’)+alfa1*DC; DC=C-Ctemp; Jtemp=J(:,k); J(:,k+1)=J(:,k)+eta2*(lgradx.*x(:,k-1))+alfa2*DJ; ji=find(abs(J(:,k+1))>0.9); if ~isempty(ji), J(ji,k+1)=0.8*sign(J(ji,k+1)); end DJ=J(:,k+1)-Jtemp; Btemp=B; B=B+eta3*(lgradx*[biasb; u(:,k-1)]’)+alfa3*DB; DB=B-Btemp; end figure(1) subplot(2,1,1) plot(0:499,[yp(:,2:size(yp,2));yn]) title(’Identificacin-Entrenamiento’) subplot(2,1,2) plot(0:499,MSE1) drawnow EC2=0; % Generalizacion JJ=J(:,k); for k=2:500,
– JMFA –
173
B.11. Ident. M´ultimodelo No Lineal MIMO con RNRE
Cap´ıtulo B. Programas de C´omputo
%Referencia de entrada if k<=150, ug(1,k)=0.5*sin(2*pi*k/50); elseif k<=275 ug(1,k)=0.7; elseif k<=400 ug(1,k)=-0.7; elseif k<=500 ug(1,k)=0.7*sin(2*pi*k/100); end if k<=150, ug(2,k)=0.5*sin(2*pi*k/50); elseif k<=275 ug(2,k)=0.7; elseif k<=400 ug(2,k)=-0.7; elseif k<=500 ug(2,k)=0.7*sin(2*pi*k/100); end %SISTEMA ypg(1,k+1)=0.5*(ypg(1,k)/(1+ypg(2,k)^2)+ug(1,k)); ypg(2,k+1)=0.5*(ypg(1,k)*ypg(2,k)/(1+ypg(2,k)^2)+ug(2,k)); %Paso hacia adelante s1=B*[biasb; ug(:,k)]; x(:,k+1)=JJ.*x(:,k)+s1; z=Sc1*tanh(x(:,k)/Sc1); s2=C*[biasc; z]; yng(:,k)=1*(s2); %Error e=ypg(:,k)-yng(:,k); EC2=EC2+e.^2; MSE2(:,k)=(0.5/k)*EC2; end ep figure(2) subplot(2,1,1); plot(0:499,[ypg(:,2:size(ypg,2)); yng]) title(’Identificacin-Generalizacin’) subplot(2,1,2); plot(0:499,MSE2) drawnow end %% FIN PROGRAMA: rnre_id3.m%%%%%%%%%%%
B.11.
Identificaci´ on M´ ultimodelo de un Sistema No Lineal MIMO Usando una Red Neuronal Recurrente Entrenable
% JUNIO,2002
174
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.11. Ident. M´ultimodelo No Lineal MIMO con RNRE
% CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN % DEPTO. DE CONTROL AUTOMATICO % PROGRAMADOR:JOSE MARTIN FLORES ALBINO % COMPILADOR: MATLAB 5.2 % % IDENTIFICACION MULTI-MODELO DE UN SISTEMA NO LINEAL MIMO % USANDO UNA RED NEURONAL RECURRENTE ENTRENABLE % % INICIO PROGRAMA: rnre_id4.m%%%%%%%%%%% clear all clc close %epoca epf=40; %Razon de aprendizaje eta1=0.01; alfa1=0.01; eta2=0.001; alfa2=0.001; eta3=0.01; alfa3=0.01; %escala para tanh Sc1=0.5; %Definicion de bias biasc1=-1; %biasc=0; biasb1=-1; %biasb=0; biasc2=-1; biasb2=-1;
%biasc=0; %biasb=0;
%Dimensiones de la RN ni=2; %# Entradas n=10; %# Nodos no=2; %# Salidas %Inicializacion de pesos RNRE1 B1=0.001*randn(n,ni+1); DB1=zeros(n,ni+1); J1=0.001*randn(n,3); DJ1=zeros(n,1); C1=0.001*randn(no,n+1); DC1=zeros(no,n+1); x1=0.001*randn(n,3); %Inicializacion de pesos RNRE1 B2=0.001*randn(n,ni+1); DB2=zeros(n,ni+1); J2=0.001*randn(n,3); DJ2=zeros(n,1); C2=0.001*randn(no,n+1); DC2=zeros(no,n+1); x2=0.001*randn(n,3); %Inicializacion sistema
– JMFA –
175
B.11. Ident. M´ultimodelo No Lineal MIMO con RNRE yp=zeros(2,3); ypg=zeros(2,3); u=zeros(2,3); ug=zeros(2,3); for ep=1:epf EC1=0;EC2=EC1;EC3=EC2; for k=2:500, %Referencia de entrada u(1,k)=0.8*sin(2*pi*k/100)+0.3*cos(2*pi*k/10); u(2,k)=1.5*cos(2*pi*k/200)+0.3*sin(2*pi*k/20); nn=find(u(:,k)<0); up=u; if ~isempty(nn) up(nn,k)=zeros(size(nn,1),1); end pp=find(u(:,k)>0); un=u; if ~isempty(pp) un(pp,k)=zeros(size(pp,1),1); end %MODELO NO LINEAL %subsistema 1 yp(1,k+1)=0.5*(yp(1,k)/(1+yp(2,k)^2)+u(1,k)); yp(2,k+1)=0.5*(yp(1,k)*yp(2,k)/(1+yp(2,k)^2)+u(2,k)); nn=find(yp(:,k)<0); ypp=yp; if ~isempty(nn) ypp(nn,k)=zeros(size(nn,1),1); end pp=find(yp(:,k)>0); ynp=yp; if ~isempty(pp) ynp(pp,k)=zeros(size(pp,1),1); end %Paso hacia adelante RNRE1 s11=B1*[biasb1; up(:,k)]; x1(:,k+1)=J1(:,k).*x1(:,k)+s11; z1=Sc1*tanh(x1(:,k)/Sc1); s21=C1*[biasc1; z1]; ypn(:,k)=1*(s21); %Paso hacia adelante RNRE2 s12=B2*[biasb2; un(:,k)]; x2(:,k+1)=J2(:,k).*x2(:,k)+s12; z2=Sc1*tanh(x2(:,k)/Sc1); s22=C2*[biasc2; z2]; ynn(:,k)=1*(s22);
176
– JMFA –
Cap´ıtulo B. Programas de C´omputo
Cap´ıtulo B. Programas de C´omputo
B.11. Ident. M´ultimodelo No Lineal MIMO con RNRE
%Error 1 e1=ypp(:,k)-ypn(:,k); %Error 2 e2=ynp(:,k)-ynn(:,k); e3=e1+e2; EC1=EC1+e1.^2; MSE1(:,k)=(0.5/k)*EC1; EC2=EC2+e2.^2; MSE2(:,k)=(0.5/k)*EC2; EC3=EC3+e3.^2; MSE3(:,k)=(0.5/k)*EC3;
%Paso Hacia atras 1 %Entrenamiento 1 lgrad1=e1*1; lgradx=(((lgrad1’)*C1(:,2:n+1))’).*(1-(z1/Sc1).^2); %Actualizacion de pesos 1 Ctemp1=C1; C1=C1+eta1*(lgrad1*[biasc1; z1]’)+alfa1*DC1; DC1=C1-Ctemp1; Jtemp1=J1(:,k); J1(:,k+1)=J1(:,k)+eta2*(lgradx.*x1(:,k-1))+alfa2*DJ1; ji=find(abs(J1(:,k+1))>0.9); if ~isempty(ji), J1(ji,k+1)=0.8*sign(J1(ji,k+1)); end DJ1=J1(:,k+1)-Jtemp1; Btemp1=B1; B1=B1+eta3*(lgradx*[biasb1; up(:,k-1)]’)+alfa3*DB1; DB1=B1-Btemp1; %Paso Hacia atras 2 %Entrenamiento 2 lgrad1=e2*1; lgradx=(((lgrad1’)*C2(:,2:n+1))’).*(1-(z2/Sc1).^2); %Actualizacion de pesos 1 Ctemp2=C2; C2=C2+eta1*(lgrad1*[biasc2; z2]’)+alfa1*DC2; DC2=C2-Ctemp2; Jtemp2=J2(:,k); J2(:,k+1)=J2(:,k)+eta2*(lgradx.*x2(:,k-1))+alfa2*DJ2; ji=find(abs(J2(:,k+1))>0.9);
– JMFA –
177
B.11. Ident. M´ultimodelo No Lineal MIMO con RNRE if ~isempty(ji), J2(ji,k+1)=0.8*sign(J2(ji,k+1)); end DJ2=J2(:,k+1)-Jtemp2; Btemp2=B2; B2=B2+eta3*(lgradx*[biasb2; un(:,k-1)]’)+alfa3*DB2; DB2=B2-Btemp2; end figure(1) subplot(2,1,1) plot(0:499,[yp(:,2:size(yp,2));ypn]) title(’Identificacin-Entrenamiento RNRE1’) subplot(2,1,2) plot(0:499,[yp(:,2:size(yp,2));ynn]) title(’Identificacin-Entrenamiento RNR2’) drawnow EC1=0;EC2=EC1;EC3=EC2; %Generalizacion JJ1=J1(:,k); JJ2=J2(:,k); for k=2:500, %Referencia de entrada if k<=150, ug(1,k)=0.5*sin(2*pi*k/50); elseif k<=275 ug(1,k)=0.7; elseif k<=400 ug(1,k)=-0.7; elseif k<=500 ug(1,k)=0.7*sin(2*pi*k/100); end if k<=150, ug(2,k)=0.5*sin(2*pi*k/50); elseif k<=275 ug(2,k)=0.7; elseif k<=400 ug(2,k)=-0.7; elseif k<=500 ug(2,k)=0.7*sin(2*pi*k/100); end nn=find(ug(:,k)<0); upg=ug; if ~isempty(nn) upg(nn,k)=zeros(size(nn,1),1); end pp=find(ug(:,k)>0); ung=ug; if ~isempty(pp)
178
– JMFA –
Cap´ıtulo B. Programas de C´omputo
Cap´ıtulo B. Programas de C´omputo
B.11. Ident. M´ultimodelo No Lineal MIMO con RNRE
ung(pp,k)=zeros(size(pp,1),1); end %SISTEMA ypg(1,k+1)=0.5*(ypg(1,k)/(1+ypg(2,k)^2)+ug(1,k)); ypg(2,k+1)=0.5*(ypg(1,k)*ypg(2,k)/(1+ypg(2,k)^2)+ug(2,k)); nn=find(ypg(:,k)<0); yppg=ypg; if ~isempty(nn) yppg(nn,k)=zeros(size(nn,1),1); end pp=find(ypg(:,k)>0); ynpg=ypg; if ~isempty(pp) ynpg(pp,k)=zeros(size(pp,1),1); end %Paso hacia adelante RNRE1 s1=B1*[biasb1; upg(:,k)]; x1(:,k+1)=JJ1.*x1(:,k)+s1; z=Sc1*tanh(x1(:,k)/Sc1); s2=C1*[biasc1; z]; ypng(:,k)=1*(s2); %Paso hacia adelante RNRE2 s1=B2*[biasb2; ung(:,k)]; x2(:,k+1)=JJ2.*x2(:,k)+s1; z=Sc1*tanh(x2(:,k)/Sc1); s2=C2*[biasc1; z]; ynng(:,k)=1*(s2); %Error %Error e1=yppg(:,k)-ypng(:,k); e2=ynpg(:,k)-ynng(:,k); e3=e1+e2; EC1=EC1+e1.^2; MSE4(:,k)=(0.5/k)*EC1; EC2=EC2+e2.^2; MSE5(:,k)=(0.5/k)*EC2; EC3=EC3+e3.^2; MSE6(:,k)=(0.5/k)*EC3;
end ep figure(2) subplot(2,1,1);
– JMFA –
179
B.12. Modelado de Controlador
Cap´ıtulo B. Programas de C´omputo
plot(0:499,[ypg(:,2:size(ypg,2)); ypng]) title(’Identificacin-Generalizacin RNRE1’) subplot(2,1,2); plot(0:499,[ypg(:,2:size(ypg,2)); ynng]) title(’Identificacin-Generalizacin RNRE2’) drawnow figure(3) subplot(2,1,1); plot(0:499, MSE1) title(’Identificacin-Entrenamiento MSE-RNRE1’) subplot(2,1,2); plot(0:499,MSE4) title(’Identificacin-Generalizacin MSE-RNRE1’) drawnow figure(4) subplot(2,1,1); plot(0:499, MSE3) title(’Identificacin-Entrenamiento MSE-RNRE2’) subplot(2,1,2); plot(0:499,MSE5) title(’Identificacin-Generalizacin MSE-RNRE2’) drawnow end figure(5) subplot(2,1,1); plot(0:499,[yp(:,2:size(yp,2)); ypn+ynn]) title(’Identificacin-Entrenamiento RNRE1+RNR2’) subplot(2,1,2); plot(0:499,[ypg(:,2:size(ypg,2)); ypng+ynng]) title(’Identificacin-Generalizacin RNRE1+RNRE2’) figure(6) subplot(2,1,1); plot(0:499, MSE3) title(’Identificacin-Entrenamiento MSE-RNRE1+RNRE2’) subplot(2,1,2); plot(0:499,MSE6) title(’Identificacin-Generalizacin MSE-RNRE1+RNRE2’)
%% FIN PROGRAMA: rnre_id4.m%%%%%%%%%%%
B.12. % % % % % % % % % %
Modelado de Controlador
SEPTIEMBRE,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 ENTRENAMIENTO DE UNA RN FF PARA EL CONTROL DEL MODELO DE UN MOTOR DE CD INICIO PROGRAMA: modctrl1.m%%%%%%%%%%%
clear all
180
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.12. Modelado de Controlador
disp(’>>>> Programa en ejecucion !!!’); tfinal=10; Ts=0.005; nsamples=tfinal/Ts; t=0:Ts:tfinal; %PID PARAMETROS Kp=0.4; Kd=0; Ki=0.05; %%%%%%%%%%%%%%%%%%%%%%% %PARAMETROS DE RED eta=0.0001; alfa=0.0001; g2=nsamples; g3=50;g4=2;g5=5; %Dimensiones de la red no=5; n1=6; n2=1; %Pesos iniciales W1=0.1*randn(n1,1+no); DW1=zeros(n1,1+no); tmp1=DW1; W2=0.1*randn(n2,n1+1); DW2=zeros(n2,n1+1); tmp2=DW2; bias1=1; bias2=1; p=zeros(no,nsamples); ynn=zeros(1,nsamples); e=zeros(1,nsamples); ref=zeros(1,nsamples); ep=100; for i=1:ep, theta=(1E-3)*randn(1,3); u=(1E-3)*randn(1,3); ind1=0; for k=3:nsamples+2, % PLANTA theta(k+1)=(703.922E-3)*theta(k)... +(999.725E-3)*theta(k-1)... -(703.648E-3)*theta(k-2)... +(53.038E-3)*(u(k-1)+u(k-2)); if mod(k,nsamples/g5)==0 ref(k)=not(ref(k-1))+(1E-1)*randn; else ref(k)=ref(k-1); end % ERROR DE CONTROL e(k)=ref(k)-theta(k); % CONTROLADOR PID u(k)=Kp*(e(k)-e(k-1))+Ki*Ts*e(k)...
– JMFA –
181
B.12. Modelado de Controlador
Cap´ıtulo B. Programas de C´omputo
+(Kd/Ts)*(e(k)-2*e(k-1)+e(k-2))... +u(k-1); % RED NEURONAL % Paso hacia adelante p=g3*[u(k-1); u(k-2); e(k);e(k-1);e(k-2)]; S1=W1*[bias1;p]; O1=tanh(S1);% S2=W2*[bias2;O1]; ynn(k)=S2;% Salida de la RN E=g3*u(k)-ynn(k); % Error de la RN % AJUSTE DE PESOS (BACKPROPAGATION) % paso hacia atras grad1=-E; % Gradiente de salida. grad2=((1-O1.^2)).*(W2(:,2:n1+1)’*grad1); % Gradiente2 % Actualizacion de Pesos tmp2=W2; W2=W2-eta*exp(-i*g4/ep)*grad1*[bias2;O1]’+... alfa*exp(-i*g4/ep)*DW2;% DW2=W2-tmp2; tmp1=W1; W1=W1-eta*exp(-i*g4/ep)*grad2*[bias1;p]’+... alfa*exp(-i*g4/ep)*DW1;% DW1=W1-tmp1; end %%%%%%%%%%%%%%%%%%%%% if mod(i,10)==0, theta=zeros(1,nsamples); u=zeros(1,3); for k=3:nsamples+2, % PLANTA theta(k+1)=(703.922E-3)*theta(k)... +(999.725E-3)*theta(k-1)... -(703.648E-3)*theta(k-2)... +(53.038E-3)*(u(k-1)+u(k-2)); if mod(k,nsamples/g5)==0 ref(k)=not(ref(k-1)); else ref(k)=ref(k-1); end % ERROR DE CONTROL e(k)=ref(k)-theta(k); % RED NEURONAL % Paso hacia adelante p=g3*[u(k-1); u(k-2);e(k);e(k-1);e(k-2)];
182
– JMFA –
Cap´ Cap ´ıtulo B. Programas de C´ C ´omputo
B.13. Cinem´atica atica Inversa de dos Eslabones
S1=W1*[bias1;p]; S1=W1*[bias 1;p]; O1=ta O1=tanh(S1) nh(S1);% ;% S2=W2*[bias S2=W2* [bias2;O1]; 2;O1]; u(k)=S2/g3; u(k)=S2/g3;% % Salida de la RN end
plot(t,theta(3:nsamples+3),t(1:nsamples),ref(3:end plot(t,theta(3:nsamples+3),t(1:nsamp les),ref(3:end),’--k’); ),’--k’); title(’Mode title (’Modelado lado de Contr Controlador olador’) ’) xlab xl abel el(’ (’Re Refe fere renc ncia ia - -; -;Re Resp spue uest sta a -. Seg. Se g.’) ’); ; ylabel(’Rad ylabe l(’Rad.’); .’); axis( axis([0 [0 10-0. 10-0.5 5 1.5]) drawnow end %%%%%%%%%%%%%%%%%%%%% end disp(’>>>> disp( ’>>>> Progra Programa ma termin terminado ado !!!’) !!!’); ; % FIN PROGR PROGRAMA: AMA: modctr modctrl1.m% l1.m%%%%%% %%%%%%%%%% %%%%%
B.13. % % % % % % % % % %
Cinem´ atica Inversa atica Inversa de dos Eslabones
AGOSTO,2002 AGOSTO,2002 CENTRO CEN TRO DE INV INVEST ESTIGA IGACIO CION N Y EST ESTUDI UDIOS OS AVA AVANZA NZADOS DOS DEL IPN DEPTO. DEP TO. DE CON CONTRO TROL L AUT AUTOMA OMATIC TICO O PROGRAMADOR PROGR AMADOR:JOS :JOSE E MARTIN FLORES ALBINO COMPIL COM PILADO ADOR: R: MAT MATLAB LAB 5.2 CINEMATIC CINEMA TICA A INV INVERS ERSA A DE DOS ESL ESLABO ABONES NES RED NEU NEURON RONAL AL DE MUL MULTIP TIPLES LES CAPAS INICIO INICI O PROGRA PROGRAMA: MA: CINV1. CINV1.m%%%%% m%%%%%%%%%% %%%%%% %
clear cle ar all all; ; clo close se all all; ; %Numero %Numer o de dat datos os t=19; nep=4000; nep=4 000; %Numero de Epoca Epocas s eg=1 eg =10; 0; %Rep %R epet etic icio ion n de Gr Graf afic icas as g2=(1)*nep; g2=(1 )*nep; t1=1; g1=0.8 g1=0.8; ; Emax= Emax=0.9E-4 0.9E-4; ; eta=0.01; alfa=0 eta=0.01; alfa=0.01; .01; %etha %etha;alfa ;alfa %# de ent entrad radas; as;# # nod nodos os ocu oculto ltos;# s;# sal salida idas s no=2 no =2; ; n1 n1=2 =25; 5; n2=2 n2 =25; 5; n3 n3=2 =2; ; bi bias as1= 1=1; 1; bi bias as2= 2=1; 1; bi bias as3= 3=1; 1;
alfa1=0:(3/2)*pi/t:(3/2)*pi; alfa1=0:(3/2)*pi/t:(3/2)* pi; alfa2=-pi:pi/t:0; alfa12=[]; for i=1:t+ alfa12=[]; i=1:t+1, 1, tmp=[alfa1;alfa2(i)*ones(size(alfa1))]; alfa12=[alfa12 tmp]; end %longitudes l1=0.5;l2=0.5;
– JMFA –
183
B.13. Cinem´atica Inversa de dos Eslabones
Cap´ıtulo B. Programas de C´omputo omputo
X=[];Y=[];XY=[]; X=l1*cos(alfa12(1,:))+l2 X=l1*cos(alfa12(1,:))+l2*cos(sum(alfa12 *cos(sum(alfa12)); )); Y=l1*sin(alfa12(1,:))+l2*sin(sum(alfa1 Y=l1*sin(alfa12(1,:))+l2* sin(sum(alfa12)); 2)); XY=[X;Y]; %%%%%%%%%%%%%%%%%% x=-0.7:1.4/ x=-0. 7:1.4/t:0.7 t:0.7; ; y=x; xy=[] xy=[]; ; for i=1:t+ i=1:t+1, 1, tmp=[x;y(i)*ones(size(x))]; xy=[xy xy=[x y tmp]; end xyp= xy p=[0 [0.5 .5 1. 1.0 0 0. 0.5 5 0. 0.5 5 0. 0.0 0 0. 0.0 0 -0 -0.5 .5 -0 -0.5 .5 -0 -0.5 .5 0. 0.0 0 -1.0 -1.0 -0.5 -0 .5 0.0 0.0 0.0 0.0 0.5 0.5 0.5 0.5 1.0 1.0 0.5 0. 0.0 0 -0.5 -0.5 0.0 0.0 0. 0.0 0]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Pesos %Peso s inicia iniciales les W1=randn(n1,1+no); tmp1=zeros(n1,1+no); W2=randn(n2,n1+1); tmp2=zeros(n2,n1+1); W3=randn(n3,n2+1); tmp3=zeros(n3,n2+1); figure(1) figure (1) gri grid d vie view([ w([135 135 60] 60]) ) col colorm ormap( ap([0 [0 0 0]) xlabel(’x’);ylabel(’y’);zlabel(’\alpha xlabel(’x’);ylabel(’y’);z label(’\alpha_{1}’); _{1}’); title(’Cinemtica Inversa: Inver sa: \alpha \alpha_{1}’ _{1}’) ) hold on h2=[] h2=[]; ; figure(2) figure (2) gri grid d vie view([ w([135 135 60] 60]) ) col colorm ormap( ap([0 [0 0 0]) xlabel(’x’);ylabel(’y’);zlabel(’\alpha xlabel(’x’);ylabel(’y’);z label(’\alpha_{2}’); _{2}’); title(’Cinemtica Inversa: Inver sa: \alpha \alpha_{2}’ _{2}’) ) hold on h3=[] h3=[]; ; disp(’Presi disp( ’Presione one una tecla para conti continuar’) nuar’); ; pause Err=1; ep= Err=1; ep=1; 1; whi while le (ep (ep<=n <=nep ep & Err Err>Em >Emax) ax), , Ec=0; for k=1:(t k=1:(t+1)^2, +1)^2, % Pas Paso o hac hacia ia ade adelan lante te S1=W1*[bias1;XY(:,k)]; O1=g1./(1+exp(-S1/t1)); S2=W2*[bias2;O1]; O2=g1./(1+exp(-S2/t1)); ynn=W3*[bias3;O2]; E=alfa12(:,k)-ynn; % pas paso o hac hacia ia atr atras as grad1=-(40-39*exp(-ep/500))*E; grad1=-(40-39*exp(-ep/5 00))*E; % Gradiente1 grad2=((g1/t1)*(1-O2).*O2).*(W3(:,2: grad2=((g1/t1)*(1-O2).* O2).*(W3(:,2:n2+1)’*grad1); n2+1)’*grad1); % Gradiente2 grad3=((g1/t1)*(1-O1).*O1).*(W2(:,2: grad3=((g1/t1)*(1-O1).* O1).*(W2(:,2:n1+1)’*grad2); n1+1)’*grad2); % Gradiente3 % Actual Actualiza izacio cion n de Pes Pesos os DW3=W3-tmp3; tmp3=W3; W3=W3-eta*exp(-ep/g2)*grad1*[bias3;O W3=W3-eta*exp(-ep/g2)*g rad1*[bias3;O2]’+alfa*exp(2]’+alfa*exp(-ep/g2)*DW3; ep/g2)*DW3; DW2=W2-tmp2; tmp2=W2; W2=W2-eta*exp(-ep/g2)*grad2*[bias2;O W2=W2-eta*exp(-ep/g2)*g rad2*[bias2;O1]’+alfa*exp(1]’+alfa*exp(-ep/g2)*DW2; ep/g2)*DW2;
184
– JMFA –
Cap´ Cap ´ıtulo B. Programas de C´ C ´omputo
B.13. Cinem´atica atica Inversa de dos Eslabones
DW1=W1-tmp1; tmp1=W1; W1=W1-eta*exp(-ep/g2)*grad3*[bias1;X W1=W1-eta*exp(-ep/g2)*g rad3*[bias1;XY(:,k)]’+alfa* Y(:,k)]’+alfa*exp(-ep/g2)* exp(-ep/g2)*DW1; DW1; end XYp=[]; ynn=[] XYp=[]; ynn=[]; ; for i=1:11 i=1:11, , S1=W1*[bias1;xyp(:,i)]; O1=g1./(1+exp(-S1/t1)); S2=W2*[bias2;O1]; O2=g1./(1+exp(-S2/t1)); ynn=W3*[bias3;O2]; Xp(i)=l1*cos(ynn(1))+l2*cos(sum(ynn)); Yp(i)=l1*sin(ynn(1))+l2*sin(sum(ynn)); end XYp=[Xp;Yp]; err=(xyp-XYp); err2=err.^2; errs=0.5*sum(sum(err2)); Err=errs/11; if (rem(ep,eg) (rem(ep,eg)==0), ==0), ynn=[]; for i=1:(t i=1:(t+1)^2 +1)^2, , S1=W1*[bias1;xy(:,i)]; O1=g1./(1+exp(-S1/t1)); S2=W2*[bias2;O1]; O2=g1./(1+exp(-S2/t1)); ynn(:,i)=W3*[bias3;O2]; end Ynn1=[];Ynn2=[]; for i=1:(t i=1:(t+1), +1), tmp11=ynn(1,1+(i-1)*(t+1):i*(t+1)); Ynn1=[Ynn1;tmp11]; tmp22=ynn(2,1+(i-1)*(t+1):i*(t+1)); Ynn2=[Ynn2;tmp22]; end if isempty(h2) isempty(h2)~=1, ~=1, delete(h2); delete(h3); end figure(1) h2=mesh(x,y,Ynn1); drawnow
– JMFA –
185
B.14. Cinem´atica Directa de dos Eslabones
Cap´ıtulo B. Programas de C´omputo omputo
figure(2) h3=mesh(x,y,Ynn2); drawnow figure(3) plot(xyp(1,:),xyp(2,:),’o’,XYp(1,:) plot(xyp(1,:),xyp(2,:), ’o’,XYp(1,:),XYp(2,:),’+’) ,XYp(2,:),’+’) axis([-1.1 axis( [-1.1 1.1 -1.1 1.1]) axis(’square’); grid drawnow ep Err end ind=randperm(size(XY,2)); XY=XY(:,ind); alfa12=alfa12(:,ind); ep=ep+1; end figure(3) plot(xyp(1,:),xyp(2,:),’o’, plot(xyp(1,:),xyp(2,:),’o’,XYp(1,:),XYp XYp(1,:),XYp(2,:),’+’) (2,:),’+’) axis([ axi s([-1. -1.1 1 1.1 -1. -1.1 1 1.1 1.1]) ]) axi axis(’ s(’squ square are’); ’); grid ep, Err save c:\te c:\temp\W1. mp\W1.mat mat W1; save c:\temp\W2.mat c:\temp\W2.mat W2; save c:\temp\W3. c:\te mp\W3.mat mat W3; % FIN PROGR PROGRAMA: AMA: CINV1.m%%%%%%%%% CINV1.m%%%%%%%%%%% %%
B.14. % % % % % % % % % %
Cinem´ atica Directa atica Directa de dos Eslabones
AGOSTO,2002 AGOSTO,2002 CENTRO CEN TRO DE INV INVEST ESTIGA IGACIO CION N Y EST ESTUDI UDIOS OS AVA AVANZA NZADOS DOS DEL IPN DEPTO. DEP TO. DE CON CONTRO TROL L AUT AUTOMA OMATIC TICO O PROGRAMADOR PROGR AMADOR:JOS :JOSE E MARTIN FLORES ALBINO COMPIL COM PILADO ADOR: R: MAT MATLAB LAB 5.2 DINAMICA DINAMI CA DIR DIRECT ECTA A DE DOS ESL ESLABO ABONES NES RED NEU NEURON RONAL AL DE MUL MULTIP TIPLES LES CAPAS INICIO INICI O PROGRA PROGRAMA: MA: DDIREC DDIREC1.m%%% 1.m%%%%%%%% %%%%%%%% %%%
clear cle ar all all; ; clo close se all all; ; %Numero %Numer o de dat datos os t=15; alfa1=0:2*pi/t:2*pi; alfa2=-pi:pi/t:0; alfa12=[]; for i=1:t+ alfa12=[]; i=1:t+1, 1, for j=1:t+ j=1:t+1, 1, tmp=[alfa1(j);alfa2(i)]; alfa12=[alfa12 tmp]; end
186
– JMFA –
Cap´ Cap ´ıtulo B. Programas de C´ C ´omputo
B.14. Cinem´atica atica Directa de dos Eslabones
end %longitudes l1=0.50;l2=0.50; X=[];Y=[];XY=[]; X=[];Y=[];X Y=[]; for i=1:( i=1:(t+1)^2 t+1)^2; ; X(i)=l1*cos(alfa12(1,i))+l2*cos(sum(a X(i)=l1*cos(alfa12(1,i)) +l2*cos(sum(alfa12(:,i))); lfa12(:,i))); Y(i)=l1*sin(alfa12(1,i))+l2*sin(sum(a Y(i)=l1*sin(alfa12(1,i)) +l2*sin(sum(alfa12(:,i))); lfa12(:,i))); end XY=[X XY=[X;Y]; ;Y]; X=[];Y=[]; for i=1:t+ X=[];Y=[]; i=1:t+1, 1, tmp1=XY(1,1+(i-1)*(t+1):i*(t+1)); X=[X; tmp1]; tmp2=XY(2,1+(i-1)*(t+1):i*(t+1)); Y=[Y; tmp2]; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Numer %Nu mero o de Epo Epocas cas nep=2500; %Repeticion %Repe ticion de Grafic Graficas as eg=10; %etha;alfa eta=0.1; eta=0 .1; alfa=0 alfa=0.0; .0; g=0.5; %# de ent entrad radas; as;# # nod nodos os ocu oculto ltos;# s;# sal salida idas s no=2; no= 2; n1= n1=20; 20; n2= n2=20; 20; n3= n3=2; 2; %Pesos inicia %Pesos iniciales les W1=0.1*randn(n1,1+no); DW1=zeros(n1,1+no); W2=0.1*randn(n2,n1+1); DW2=zeros(n2,n1+1); W3=0.1*randn(n3,n2+1); DW3=zeros(n3,n2+1); bias1=1; bias1 =1; bias2= bias2=1; 1; bias3= bias3=0; 0; figure(1) mesh(alfa1,alfa2,X) %grid colormap([0 color map([0 0 0]) title( title(’Cine ’Cinemtica mtica directa:x’) directa:x’) xlabel(’\alpha_{1}’) ylabel(’\alpha_{2}’) zlabel(’x’) view([45 45]) 45] ) axi axis([ s([0 0 2*p 2*pi i -pi 0 -2. -2.1 1 2.1 2.1]); ]); drawnow drawnow hold on h2= h2=[]; [];
figure(2) mesh(alfa1,alfa2,Y) %grid colormap([0 color map([0 0 0]) title( title(’Cine ’Cinemtica mtica directa:y’) directa:y’) xlabel(’\alpha_{1}’) ylabel(’\alpha_{2}’) zlabel(’y’) view([45 45]) 45] ) axi axis([ s([0 0 2*p 2*pi i -pi 0 -2. -2.1 1 2.1 2.1]); ]); drawnow drawnow hol hold d on h3= h3=[]; []; h4=[]; h4=[]; Ec=0;MSE=[]; Ec=0;MSE=[] ; for ep=1:n ep=1:nep, ep, Ec=0; for k=1:(t k=1:(t+1)^2, +1)^2, % Pas Paso o hac hacia ia ade adelan lante te S1=W1*[bias1;alfa12(:,k)];
– JMFA –
187
B.14. Cinem´atica Directa de dos Eslabones
Cap´ıtulo B. Programas de C´omputo
O1=1./(1+exp(-(1/g)*S1));% S2=W2*[bias2;O1]; O2=1./(1+exp(-(1/g)*S2));%(1/(1+exp(-S2))) S3=W3*[bias3;O2]; ynn=S3; % Salida de la RN E=XY(:,k)-ynn; % Error %Ec=Ec+sum(E.^2); % Suma de E^2 %MSE(k)=0.5*Ec/k; % paso hacia atras grad1=-E; % Gradiente de salida. grad2=((1/g)*(1-O2).*O2).*(W3(:,2:n2+1)’*grad1); % Gradiente2. grad3=((1/g)*(1-O1).*O1).*(W2(:,2:n1+1)’*grad2); % Gradiente3. % Actualizacion de Pesos tmp3=W3; W3=W3-eta*exp(-k/500)*grad1*[bias3;O2]’+alfa*exp(-k/500)*DW3;%*exp(-k/100); DW3=W3-tmp3; tmp2=W2; W2=W2-eta*grad2*exp(-k/500)*[bias2;O1]’+alfa*exp(-k/500)*DW2;%*exp(-k/100); DW2=W2-tmp2; tmp1=W1; W1=W1-eta*exp(-k/500)*grad3*[bias1;alfa12(:,k)]’+alfa*exp(-k/500)*DW1;%*exp(-k/100); DW1=W1-tmp1; end if rem(ep,eg)==0, ynn2=[]; for i=1:(t+1)^2, S1=W1*[bias1;alfa12(:,i)]; O1=1./(1+exp(-(1/g)*S1));% S2=W2*[bias2;O1]; O2=1./(1+exp(-(1/g)*S2));%(1/(1+exp(-S2))) S3=W3*[bias3;O2]; ynn2(:,i)=S3; % Salida de la RN end E=XY-ynn2; Ynn1=[];Ynn2=[];E2=[];E3=[]; for i=1:(t+1), tmp1=ynn2(1,1+(i-1)*(t+1):i*(t+1)); Ynn1=[Ynn1;tmp1]; tmp2=ynn2(2,1+(i-1)*(t+1):i*(t+1)); Ynn2=[Ynn2;tmp2];
188
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.15. Ctrl. Inverso: Ident. Mod. Directo
tmp3=E(1,1+(i-1)*(t+1):i*(t+1)); E2=[E2;tmp3]; tmp4=E(2,1+(i-1)*(t+1):i*(t+1)); E3=[E3;tmp4]; end if isempty(h2)~=1, delete(h2); delete(h3); delete(h4); delete(h5); end figure(1) h2=mesh(alfa1,alfa2,Ynn1); drawnow figure(2) h3=mesh(alfa1,alfa2,Ynn2); figure(3) h4=mesh(alfa1,alfa2,E2); axis([0 2*pi -3.5 0 -0.1 1]); view([45 60]) figure(4) h5=mesh(alfa1,alfa2,E3); axis([0 2*pi -3.5 0 -0.1 1]); view([30 60]) %figure(3) %plot(MSE); drawnow end ep end % FIN PROGRAMA: DDIREC1.m%%%%%%%%%%%
B.15.
Control inverso: Identificaci´ on del Modelo Directo
% SEPTIEMBRE,2002 % CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN % DEPTO. DE CONTROL AUTOMATICO % PROGRAMADOR:JOSE MARTIN FLORES ALBINO % COMPILADOR: MATLAB 5.2 % % Ident. Modelo Directo de un sistema no lineal % para el control inveso especializado. % % INICIO PROGRAMA: %%%%%%%%%%% clear all; close all;
– JMFA –
189
B.15. Ctrl. Inverso: Ident. Mod. Directo
Cap´ıtulo B. Programas de C´omputo
%Numero de datos nep=400; t1=1.2; g1=1.2; Emax=1E-3; eta=0.01; alfa=0.01; %etha;alfa %# de entradas;# nodos ocultos;# salidas no=2; n1=50; n2=50; n3=1; bias1=0; bias2=1; bias3=0; nsamples=1000; g2=(1/2)*nep; eg=5; % Entrada Planta up=1*sin(2*pi*(0:nsamples)/50)+... 0.5*cos(2*pi*(0:nsamples)/(50+10)); upp=1*sin(2*pi*(0:nsamples)/50)+... 0.5*cos(2*pi*(0:nsamples)/(50+10)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Pesos iniciales W1=0.5*randn(n1,1+no); tmp1=zeros(n1,1+no); W2=0.5*randn(n2,n1+1); tmp2=zeros(n2,n1+1); W3=0.5*randn(n3,n2+1); tmp3=zeros(n3,n2+1); % Funciones de Activacion acflogsig=... inline(’x1./(1+exp(-x2/x3))’,’x1’,’x2’,’x3’); der_acflogsig=... inline(’(x1/x3)*(1-x2).*x2’,’x1’,’x2’,’x3’); acftanh=... inline(’x1*tanh(x2/x3)’,’x1’,’x2’,’x3’); der_acftanh=... inline(’(x1/x3)*(1-x2.^2)’,’x1’,’x2’,’x3’); % Graficas figure(1) figure(2) disp(’Presione una tecla para continuar’); pause disp(’Inicia Programa’); Err=1; ep=1; yp=zeros(1,nsamples); ynn=zeros(1,nsamples); ypp=zeros(1,nsamples); ynnp=zeros(1,nsamples); while (ep<=nep & Err>Emax), ep yp(1:2)=0.5*randn; for k=1:nsamples, %Planta; yp(k+1)=(yp(k)/(1+yp(k)^2))+up(k)^3; % Paso hacia adelante unn=[up(k);yp(k);]; S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1);; ynn(k+1)=W3*[bias3;O2]; %Error e=yp(k+1)-ynn(k+1); % paso hacia atras % Gradiente1 grad1=-e; % Gradiente2
190
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.15. Ctrl. Inverso: Ident. Mod. Directo
grad2=der_acftanh(g1,O2,t1).*(W3(:,2:n2+1)’*grad1); % Gradiente3 grad3=der_acftanh(g1,O1,t1).*(W2(:,2:n1+1)’*grad2); % Actualizacion de Pesos DW3=W3-tmp3; tmp3=W3; W3=W3-eta*exp(-ep/g2)*grad1*[bias3;O2]’+... alfa*exp(-ep/g2)*DW3; DW2=W2-tmp2; tmp2=W2; W2=W2-eta*exp(-ep/g2)*grad2*[bias2;O1]’+... alfa*exp(-ep/g2)*DW2; DW1=W1-tmp1; tmp1=W1; W1=W1-eta*exp(-ep/g2)*grad3*[bias1;unn]’+... alfa*exp(-ep/g2)*DW1; end if (rem(ep,eg)==0), ypp(1:2)=0; ynnp(1:2)=0; for j=1:nsamples %Planta; ypp(j+1)=(ypp(j)/(1+ypp(j)^2))+upp(j)^3; % Paso hacia adelante unn=[upp(j);ynnp(j)]; S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); ynnp(j+1)=W3*[bias3;O2]; end err=(ypp-ynnp); err2=err.^2; errs=0.5*sum(err2); Err=errs/size(err2,2); figure(1) plot(0:nsamples-1,ynn(1:nsamples),’k’,... 0:nsamples-1,yp(1:nsamples)) title(’Entrenamiento’) grid drawnow figure(2) plot(0:nsamples-1,ynnp(1:nsamples),’k’,... 0:nsamples-1,ypp(1:nsamples)) title(’Generalizacion’) grid drawnow Err end %%%%%%%%%%%%%%%% ep=ep+1; end %save c:\tmp\W W1 W2 W4 disp(’>>> Termina Programa !!!’);
– JMFA –
191
B.16. Ctrl. Inverso: M´etodo especializado
Cap´ıtulo B. Programas de C´omputo
% FIN PROGRAMA: %%%%%%%%%%%
B.16. % % % % % % % % % %
Control inverso: M´ etodo especializado
OCTUBRE,2002 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 CONTROL INVERSO (METODO ESPECIALIZADO) SISTEMA NO LINEAL INVERTIBLE INICIO PROGRAMA: %%%%%%%%%%%
clear all; close all; load c:\tmp\pesos\Wd1 W1d=W1; W2d=W2; W3d=W3; %Parametros nsamples=1000*3; nep=50; t1=1; g1=1; eta=0.005; alfa=0.005; %etha;alfa %# de entradas;# nodos ocultos;# salidas no=2; n1=50; n2=50; n3=1; bias1=0; bias2=0; bias3=0; g2=(nep/20); % Entrada Planta p=200; uref=[]; for pp=1:nsamples/(5*p), uref_tmp=[2*ones(1,p) 0.1*ones(1,p) ... -2*ones(1,p) -0.1*ones(1,p) 2*ones(1,p+1)]; uref=[uref uref_tmp]; end t=5; ref=zeros(1,nsamples); for i=1:nsamples ref(i+1)=(1/t)*((t-1)*ref(i)+uref(i)); end %ref=1*sin(2*pi*(0:nsamples)/50)+... % 0.5*cos(2*pi*(0:nsamples)/(50+10)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Pesos iniciales W1=0.01*randn(n1,1+no); tmp1=zeros(n1,1+no); W2=0.01*randn(n2,n1+1); tmp2=zeros(n2,n1+1); W3=0.01*randn(n3,n2+1); tmp3=zeros(n3,n2+1); % Funciones de Activacion acflogsig=... inline(’x1./(1+exp(-x2/x3))’,’x1’,’x2’,’x3’); der_acflogsig=... inline(’(x1/x3)*(1-x2).*x2’,’x1’,’x2’,’x3’); acftanh=... inline(’x1*tanh(x2/x3)’,’x1’,’x2’,’x3’); der_acftanh=... inline(’(x1/x3)*(1-x2.^2)’,’x1’,’x2’,’x3’); % Graficas figure(1) disp(’Presione una tecla para continuar’); pause; disp(’Inicia Programa’); ep=1;
192
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.16. Ctrl. Inverso: M´etodo especializado
yp=zeros(1,nsamples); ynn=zeros(1,nsamples); ypp=zeros(1,nsamples); ynnp=zeros(1,nsamples); while (ep<=nep), ep yp(1:2)=0.5*randn; for k=1:nsamples, % Paso hacia adelante unn=[ref(k+1);yp(k)]; S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); up(k)=W3*[bias3;O2]; %Planta yp(k+1)=(yp(k)/(1+yp(k)^2))+up(k)^3; unnp=[up(k);ynnp(k)]; S1d=W1d*[0;unnp]; O1d=acftanh(1.2,S1d,1.2); S2d=W2d*[1;O1d]; O2d=acftanh(1.2,S2d,1.2); ynnp(k+1)=W3d*[0;O2d]; %Error ec=ref(k)-ynnp(k); % Retro propagacion del error de control grad1d=-ec; grad2d=der_acftanh(1.2,O2d,1.2).*(W3d(:,2:51)’*grad1d); grad3d=der_acftanh(1.2,O1d,1.2).*(W2d(:,2:51)’*grad2d); r=W1d(:,2:3)’*grad3d; % paso hacia atras % Entrenamiento de la Red de Control grad1=r(2); % Gradiente1 % Gradiente2 grad2=der_acftanh(g1,O2,t1).*(W3(:,2:n2+1)’*grad1); % Gradiente3 grad3=der_acftanh(g1,O1,t1).*(W2(:,2:n1+1)’*grad2); % Actualizacion de Pesos DW3=W3-tmp3; tmp3=W3; W3=W3-eta*exp(-ep/g2)*grad1*[bias3;O2]’+... alfa*exp(-ep/g2)*DW3; DW2=W2-tmp2; tmp2=W2; W2=W2-eta*exp(-ep/g2)*grad2*[bias2;O1]’+... alfa*exp(-ep/g2)*DW2; DW1=W1-tmp1; tmp1=W1; W1=W1-eta*exp(-ep/g2)*grad3*[bias1;unn]’+... alfa*exp(-ep/g2)*DW1; end
– JMFA –
193
B.17. Ctrl. Adaptable Indirecto
Cap´ıtulo B. Programas de C´omputo
plot(0:nsamples,ref,’k’,0:nsamples,yp) axis([0 nsamples -4 4]) grid drawnow %%%%%%%%%%%%%%%% ep=ep+1; pause; end disp(’>>> Termina Programa !!!’); % FIN PROGRAMA: %%%%%%%%%%%
B.17. % % % % % % % % % %
Control Adaptable Indirecto
Abril, 2004 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 CONTROL ADAPTABLE INDIRECTO
INICIO PROGRAMA: %%%%%%%%%%%
close all; clear all; nep=100; %Numero de epocas nsamples=100; %Numero de muestras t1=1;g1=1; %etha alfa alfa=0.1;eta=0.1; % # de entradas, nodos ocultos y salidas no=1;n1=10;n2=10; n3=1; %bias bias1=0; bias2=1; bias3=0; g2=(1/2)*nep;eg=5; %PESOS INICIALES %Red AlFA W1=0.5*randn(n1,1+no); tmp1=zeros(n1,1+no); W2=0.5*randn(n2,1+n1); tmp2=zeros(n1,1+n1); W3=0.5*randn(n3,1+n2); tmp3=zeros(n3,1+n2); %Red BETA W12=0.5*randn(n1,1+no); tmp12=zeros(n1,1+no); W22=0.5*randn(n2,1+n1); tmp22=zeros(n1,1+n1); W32=0.5*randn(n3,1+n2); tmp32=zeros(n3,1+n2); %Funciones de activacion acftanh=... inline(’x1*tanh(x2/x3)’,’x1’,’x2’,’x3’); der_acftanh=... inline(’(x1/x3)*(1-x2.^2)’,’x1’,’x2’,’x3’); %Valores Iniciales y(1)=randn;
194
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.17. Ctrl. Adaptable Indirecto
t=0:0.1:1; ft1=0.5*t./(1+t.^2); ft2=(1+t); figure(1); figure(2); figure(3); clc disp(’Presione alguna techa para continuar’) pause ep=1; Ec1=0;MSE1=[]; Ec2=0;MSE2=[]; while (ep<=nep) ep for k=1:nsamples; %ENTRADA u(k)=0.5+0.25*sin(2*(k)*pi/10)+0.5*cos(2*k*pi/2.5); %PLANTA alpha=0.5*y(k)/(1+y(k)^2); beta=1+y(k); y(k+1)=alpha+beta*u(k); %RED ALPHA unn=y(k); S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); ynn1=W3*[bias3;O2]; %Error alpha e1=alpha-ynn1; Ec1=Ec1+e1^2; MSE1(k)=0.5*Ec1/k; %AJUSTE RED ALPHA %Gradiente1 grad1=-e1; %Gradiente2 grad2=der_acftanh(g1,O2,t1).*(W3(:,2:n2+1)’*grad1); %Gradiente3 grad3=der_acftanh(g1,O1,t1).*(W2(:,2:n1+1)’*grad2); %AJUSTE DE PESOS DE RED ALPHA DW3=W3-tmp3; tmp3=W3; W3=W3-eta*exp(-ep/g2)*grad1*[bias3;O2]’+... alfa*exp(-ep/g2)*DW3; DW2=W2-tmp2; tmp2=W2; W2=W2-eta*exp(-ep/g2)*grad2*[bias2;O1]’+... alfa*exp(-ep/g2)*DW2; DW1=W1-tmp1; tmp1=W1; W1=W1-eta*exp(-ep/g2)*grad3*[bias1;unn]’+... alfa*exp(-ep/g2)*DW1;
%RED BETA
– JMFA –
195
B.17. Ctrl. Adaptable Indirecto
Cap´ıtulo B. Programas de C´omputo
S1=W12*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W22*[bias2;O1]; O2=acftanh(g1,S2,t1); ynn2=W32*[bias3;O2]; %Error beta e2=beta-ynn2; %AJUSTE RED ALPHA %Gradiente1 grad1=-e2; %Gradiente2 grad2=der_acftanh(g1,O2,t1).*(W32(:,2:n2+1)’*grad1); %Gradiente3 grad3=der_acftanh(g1,O1,t1).*(W22(:,2:n1+1)’*grad2); %AJUSTE DE PESOS DE RED ALPHA DW32=W32-tmp32; tmp32=W32; W32=W32-eta*exp(-ep/g2)*grad1*[bias3;O2]’+... alfa*exp(-ep/g2)*DW32; DW22=W22-tmp22; tmp22=W22; W22=W22-eta*exp(-ep/g2)*grad2*[bias2;O1]’+... alfa*exp(-ep/g2)*DW22; DW12=W12-tmp12; tmp12=W12; W12=W12-eta*exp(-ep/g2)*grad3*[bias1;unn]’+... alfa*exp(-ep/g2)*DW12; %%%%%%%%%%% %%%%%%%%%%% S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); ALFA=W3*[bias3;O2]; S1=W12*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W22*[bias2;O1]; O2=acftanh(g1,S2,t1); BETA=W32*[bias3;O2]; ynn(k+1)=ALFA +BETA*u(k); end ep=ep+1; figure(1) plot(0:nsamples,y,’k’,0:nsamples,ynn,’b’); grid ALFA=[];
196
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.17. Ctrl. Adaptable Indirecto
for(i=0:0.1:1) unn=i; S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); ALFA1=W3*[bias3;O2]; ALFA=[ALFA ALFA1]; end figure(2) plot(t,ft1,’k’,t,ALFA,’b’); grid BETA=[]; for(i=0:0.1:1) unn=i; S1=W12*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W22*[bias2;O1]; O2=acftanh(g1,S2,t1); BETA1=W32*[bias3;O2]; BETA=[BETA BETA1]; end figure(3) plot(t,ft2,’k’,t,BETA,’b’); grid figure(4) plot(0:nsamples-1,MSE1,’k’); grid drawnow end y1=[]; y1(1)=0.5; r(1:2)=zeros(1,2); for k=1:nsamples; %Referencia r(k+1)=r(k); if mod(k,20)==0, r(k+1)=~r(k+1); end %RED ALPHA unn=y1(k); S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); ALFA1=W3*[bias3;O2]; %RED BETA unn=y1(k); S1=W12*[bias1;unn]; O1=acftanh(g1,S1,t1);
– JMFA –
197
B.18. Ctrl. Adaptable Indirecto 2
Cap´ıtulo B. Programas de C´omputo
S2=W22*[bias2;O1]; O2=acftanh(g1,S2,t1); BETA1=W32*[bias3;O2]; %Control uc(k)=(-ALFA1+r(k+1))/BETA1; %PLANTA alpha=0.5*y1(k)/(1+y1(k)^2); beta=1+y1(k); y1(k+1)=alpha+beta*uc(k); %Error control ec(k+1)=r(k+1)-y1(k+1); Ec2=Ec2+ec(k+1)^2; MSE2(k)=0.5*Ec2/k; end figure(5) plot(0:nsamples,r,’k’,0:nsamples,y1,’b’); grid figure(6) plot(0:nsamples,ec,’k’); grid figure(7) plot(0:nsamples-1,uc,’k’); grid figure(8) plot(0:nsamples-1,MSE2,’k’); grid % FIN PROGRAMA: %%%%%%%%%%%
B.18. % % % % % % % % % %
Control Adaptable Indirecto 2
Abril, 2004 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 CONTROL ADAPTABLE INDIRECTO 2
INICIO PROGRAMA: %%%%%%%%%%%
close all; clear all; nep=20; %Numero de epocas nsamples=100; %Numero de muestras t1=1;g1=1; %etha alfa alfa=0.1;eta=0.1; % # de entradas, nodos ocultos y salidas no=1;n1=10;n2=10; n3=1; %bias bias1=0; bias2=1; bias3=0; g2=(1/2)*nep;eg=5;
198
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.18. Ctrl. Adaptable Indirecto 2
%PESOS INICIALES %Red AlFA W1=0.01*randn(n1,1+no); tmp1=zeros(n1,1+no); W2=0.01*randn(n2,1+n1); tmp2=zeros(n1,1+n1); W3=0.01*randn(n3,1+n2); tmp3=zeros(n3,1+n2); %Red BETA W12=0.01*randn(n1,1+no); tmp12=zeros(n1,1+no); W22=0.01*randn(n2,1+n1); tmp22=zeros(n1,1+n1); W32=0.01*randn(n3,1+n2); tmp32=zeros(n3,1+n2); %Funciones de activacion acftanh=... inline(’x1*tanh(x2/x3)’,’x1’,’x2’,’x3’); der_acftanh=... inline(’(x1/x3)*(1-x2.^2)’,’x1’,’x2’,’x3’); %Valores Iniciales y(1)=1; t=0:0.1:1; ft1=0.5*t./(1+t.^2); ft2=(1+t); clc disp(’Presione alguna techa para continuar’) pause ep=1; Ec1=0;MSE1=[]; Ec2=0;MSE2=[]; while (ep<=nep) ep for k=1:nsamples; %ENTRADA u(k)=0.5+0.25*sin(2*(k)*pi/10)+0.5*cos(2*k*pi/2.5); %PLANTA alpha=0.5*y(k)/(1+y(k)^2); beta=1+y(k); y(k+1)=alpha+beta*u(k); %RED ALPHA unn=y(k); S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); ynn1=W3*[bias3;O2]; %Error alpha e1=alpha-ynn1; Ec1=Ec1+e1^2; MSE1(k)=0.5*Ec1/k; %AJUSTE RED ALPHA %Gradiente1 grad1=-e1;
– JMFA –
199
B.18. Ctrl. Adaptable Indirecto 2
Cap´ıtulo B. Programas de C´omputo
%Gradiente2 grad2=der_acftanh(g1,O2,t1).*(W3(:,2:n2+1)’*grad1); %Gradiente3 grad3=der_acftanh(g1,O1,t1).*(W2(:,2:n1+1)’*grad2); %AJUSTE DE PESOS DE RED ALPHA DW3=W3-tmp3; tmp3=W3; W3=W3-eta*exp(-ep/g2)*grad1*[bias3;O2]’+... alfa*exp(-ep/g2)*DW3; DW2=W2-tmp2; tmp2=W2; W2=W2-eta*exp(-ep/g2)*grad2*[bias2;O1]’+... alfa*exp(-ep/g2)*DW2; DW1=W1-tmp1; tmp1=W1; W1=W1-eta*exp(-ep/g2)*grad3*[bias1;unn]’+... alfa*exp(-ep/g2)*DW1;
%RED BETA S1=W12*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W22*[bias2;O1]; O2=acftanh(g1,S2,t1); ynn2=W32*[bias3;O2]; %Error beta e2=beta-ynn2; %AJUSTE RED ALPHA %Gradiente1 grad1=-e2; %Gradiente2 grad2=der_acftanh(g1,O2,t1).*(W32(:,2:n2+1)’*grad1); %Gradiente3 grad3=der_acftanh(g1,O1,t1).*(W22(:,2:n1+1)’*grad2); %AJUSTE DE PESOS DE RED ALPHA DW32=W32-tmp32; tmp32=W32; W32=W32-eta*exp(-ep/g2)*grad1*[bias3;O2]’+... alfa*exp(-ep/g2)*DW32; DW22=W22-tmp22; tmp22=W22; W22=W22-eta*exp(-ep/g2)*grad2*[bias2;O1]’+... alfa*exp(-ep/g2)*DW22; DW12=W12-tmp12; tmp12=W12; W12=W12-eta*exp(-ep/g2)*grad3*[bias1;unn]’+... alfa*exp(-ep/g2)*DW12; %%%%%%%%%%% %%%%%%%%%%% S1=W1*[bias1;unn];
200
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.18. Ctrl. Adaptable Indirecto 2
O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); ALFA=W3*[bias3;O2]; S1=W12*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W22*[bias2;O1]; O2=acftanh(g1,S2,t1); BETA=W32*[bias3;O2]; ynn(k+1)=ALFA +BETA*u(k); end ep=ep+1; end
y1=[]; y1(1)=0; r(1:2)=[0.5,0.5]; nsamples=500; alfa=0.4;eta=0.4; for k=1:nsamples; %Referencia r(k+1)= 0.5+0.25*sin(2*pi*k/50); %r(k+1)=r(k); %if mod(k,20)==0, %r(k+1)=~r(k+1); %end %RED ALPHA unn=y1(k); S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); ALFA1=W3*[bias3;O2]; %RED BETA unn=y1(k); S12=W12*[bias1;unn]; O12=acftanh(g1,S12,t1); S22=W22*[bias2;O12]; O22=acftanh(g1,S22,t1); BETA1=W32*[bias3;O22]; %Control uc(k)=(-ALFA1+r(k+1))/BETA1; %PLANTA alpha=0.5*y1(k)/(1+y1(k)^2); beta=1+y1(k); y1(k+1)=alpha+beta*uc(k); %Error control ec(k+1)=r(k+1)-y1(k+1); Ec2=Ec2+ec(k+1)^2;
– JMFA –
201
B.18. Ctrl. Adaptable Indirecto 2
Cap´ıtulo B. Programas de C´omputo
MSE2(k)=0.5*Ec2/k; %Error alpha e1=alpha-ALFA1; %AJUSTE RED ALPHA %Gradiente1 grad1=-e1; %Gradiente2 grad2=der_acftanh(g1,O2,t1).*(W3(:,2:n2+1)’*grad1); %Gradiente3 grad3=der_acftanh(g1,O1,t1).*(W2(:,2:n1+1)’*grad2); %AJUSTE DE PESOS DE RED ALPHA DW3=W3-tmp3; tmp3=W3; W3=W3-eta*grad1*[bias3;O2]’+... alfa*DW3; DW2=W2-tmp2; tmp2=W2; W2=W2-eta*grad2*[bias2;O1]’+... alfa*DW2; DW1=W1-tmp1; tmp1=W1; W1=W1-eta*grad3*[bias1;unn]’+... alfa*DW1; %Error beta e2=beta-BETA1; %AJUSTE RED BETA %Gradiente1 grad1=-e2; %Gradiente2 grad2=der_acftanh(g1,O22,t1).*(W32(:,2:n2+1)’*grad1); %Gradiente3 grad3=der_acftanh(g1,O12,t1).*(W22(:,2:n1+1)’*grad2); %AJUSTE DE PESOS DE RED BETA DW32=W32-tmp32; tmp32=W32; W32=W32-eta*grad1*[bias3;O22]’+... alfa*DW32; DW22=W22-tmp22; tmp22=W22; W22=W22-eta*grad2*[bias2;O12]’+... alfa*DW22; DW12=W12-tmp12; tmp12=W12; W12=W12-eta*grad3*[bias1;unn]’+... alfa*DW12; end figure(1)
202
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.19. Ctrl. Adaptable Directo
plot(0:nsamples,r,’k’,0:nsamples,y1,’b’); grid figure(2) plot(0:nsamples,ec,’k’); grid figure(3) plot(0:nsamples-1,uc,’k’); grid figure(4) plot(0:nsamples-1,MSE2,’k’); grid % FIN PROGRAMA: %%%%%%%%%%%
B.19. % % % % % % % % % %
Control Adaptable Directo
Abril, 2004 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 CONTROL ADAPTABLE DIRECTO
INICIO PROGRAMA: %%%%%%%%%%%
close all; clear all; nep=100; %Numero de epocas nsamples=250; %Numero de muestras t1=1;g1=1; %etha alfa alfa=0.005;eta=0.05; % # de entradas, nodos ocultos y salidas no=2;n1=10;n2=10; n3=1; %bias bias1=0; bias2=1; bias3=0; g2=(1/2)*nep;eg=5; %PESOS INICIALES %Red AlFA W1=0.1*randn(n1,1+no); tmp1=zeros(n1,1+no); W2=0.1*randn(n2,1+n1); tmp2=zeros(n1,1+n1); W3=0.1*randn(n3,1+n2); tmp3=zeros(n3,1+n2); %Funciones de activacion acftanh=... inline(’x1*tanh(x2/x3)’,’x1’,’x2’,’x3’); der_acftanh=... inline(’(x1/x3)*(1-x2.^2)’,’x1’,’x2’,’x3’);
– JMFA –
203
B.19. Ctrl. Adaptable Directo
Cap´ıtulo B. Programas de C´omputo
%Valores Iniciales y(1)=0; r(1)=0.5; u(1)=0; figure(1);figure(2);figure(3);figure(4); clc disp(’Presione alguna techa para continuar’) pause ep=1; Ec1=0;MSE1=[]; while (ep<=nep) ep for k=1:nsamples; %REFERENCIA r(k+1)=0.5+0.25*sin(2*k*pi/50); %RED ALPHA unn=[r(k+1); y(k)]; S1=W1*[bias1;unn]; O1=acftanh(g1,S1,t1); S2=W2*[bias2;O1]; O2=acftanh(g1,S2,t1); u(k)=W3*[bias3;O2]; %PLANTA alpha=0.5*y(k)/(1+y(k)^2); beta=1+y(k); y(k+1)=alpha+beta*u(k);
%Error alpha ec(k+1)=r(k+1)-y(k+1); Ec1=Ec1+ec(k+1)^2; MSE1(k+1)=0.5*Ec1/k; %AJUSTE RED ALPHA %Gradiente1 grad1=-ec(k+1); %Gradiente2 grad2=der_acftanh(g1,O2,t1).*(W3(:,2:n2+1)’*grad1); %Gradiente3 grad3=der_acftanh(g1,O1,t1).*(W2(:,2:n1+1)’*grad2); %AJUSTE DE PESOS DE RED ALPHA DW3=W3-tmp3; tmp3=W3; W3=W3-eta*exp(-ep/g2)*grad1*[bias3;O2]’+... alfa*exp(-ep/g2)*DW3; DW2=W2-tmp2; tmp2=W2; W2=W2-eta*exp(-ep/g2)*grad2*[bias2;O1]’+... alfa*exp(-ep/g2)*DW2; DW1=W1-tmp1; tmp1=W1; W1=W1-eta*exp(-ep/g2)*grad3*[bias1;unn]’+... alfa*exp(-ep/g2)*DW1; end ep=ep+1;
204
– JMFA –
Cap´ıtulo B. Programas de C´omputo
B.20. Ctrl. por Modelo de Referencia: Motor de CD
figure(1) plot(0:nsamples,r,’k’,0:nsamples,y,’b’); grid figure(2) plot(0:nsamples,ec); grid figure(3) plot(0:nsamples-1,u); grid figure(4) plot(0:nsamples,MSE1); grid drawnow %disp(’Presione alguna techa para continuar’) %pause end
% FIN PROGRAMA: %%%%%%%%%%%
B.20. % % % % % % % % % %
Ctrl. por Modelo de Referencia: Motor de CD
OCTUBRE,2003 CENTRO DE INVESTIGACION Y ESTUDIOS AVANZADOS DEL IPN DEPTO. DE CONTROL AUTOMATICO PROGRAMADOR:JOSE MARTIN FLORES ALBINO COMPILADOR: MATLAB 5.2 EL CONTROL DEL MODELO DE UN MOTOR DE CD POR MODELO DE REFERENCIA INICIO PROGRAMA: MRCD.m%%%%%%%%%%%
clear all %Modelo de Referencia k1=20,k2=1/10, sist1=tf([k1],[k2 1]) %Modelo de Referencia Discreto Ts=0.005 sist2=c2d(sist1,Ts) % Condiciones iniciales w(1:2)=0; wc(1:2)=0; e(1:2)=0; y(1:2)=0; r(1:2)=0; u(1:2)=0; Tf=0.5; Mf=Tf/Ts; fact1=1/(10607.511*10^(-3)); for k=2:Mf+1 e(k)=1;
– JMFA –
205
B.20. Ctrl. por Modelo de Referencia: Motor de CD
Cap´ıtulo B. Programas de C´omputo
w(k+1)=-295.803*10^(-3)*w(k)+703.648*10^(-3)*w(k-1)+... 10607.511*10^(-3)*(e(k)+e(k-1)); r(k)=1; y(k+1)=0.9512*y(k)+0.9754*r(k); %%%%%%%%%%%%%%% % Ley de Control por Modelo de Referncia u(k)=fact1*(-10607.511*10^(-3)*u(k-1)+0.9754*r(k)+... 1.2470*wc(k)-703.648*10^(-3)*wc(k-1)); % Sistema (Motor de CD) wc(k+1)=-295.803*10^(-3)*wc(k)+703.648*10^(-3)*wc(k-1)+... 10607.511*10^(-3)*(u(k)+u(k-1)); end tt=-1:Mf; T=Ts*tt; T2=[]; y2=[]; wc2=[]; for j=1:size(T,2) if mod(j,4)==0 T2=[T2 T(j)]; y2=[y2 y(j)]; wc2=[wc2 wc(j)]; end end plot(T,w,’k’ ,T, y,’:k’,T2,wc2,’xk’) grid on % FIN PROGRAMA: MRCD.m%%%%%%%%%%%
206
– JMFA –
Ap´ endice C
Motor de Corriente Continua Ver la referencia [43]. El motor de corriente continua (cc) es una m´ aquina que transforma una corriente continua de energ´ıa el´ectrica a movimiento de rotaci´on de un eje mec´anico (fecha) por la interacci´on de dos campos magn´eticos: un campo magn´etico fijo localizado en el cuerpo de motor llamado estator y un campo m´ovil unido a la armadura del motor. Hay dos formas para generar los campos magn´eticos: al hacer circular una corriente por un alambre enrollado en forma de una bobina, y por un im´an permanente, de aqu´ı la primera clasificaci´on de este tipo de motores en base al medio para generar el campo magn´etico del estator: Motor de cc con inductor: Este tipo de motores el campo magn´etico del estator se genera por el paso de una corriente el´ectrica a trav´es de bobinas fijas en ´el (campo del inductor). Hay cuatro formas en las cuales puede tomarse la corriente del inductor: por una fuente independiente, por una configuraci´on en serie, paralelo o serieparalelo con la fuente del inducido de la armadura. Motor de cc de im´ an permamente: El campo magn´etico del estator se genera por un im´an permanente. El circuito de armadura de un motor de corriente continua se modela como un circuito serie entre la tensi´on del inducido, la resistencia el´ectrica, la inductancia del inducido y la tensi´on que se opone al paso de la corriente del inducido como respuesta al movimiento relativo del campo magn´etico del inducido con respecto al campo magn´etico del estator. figura. C.1
La
R a
θ (t), ω (t) m
ea (t)
m
φ(t)
+
ia (t)
J
m
ea (t)
+
eb(t)
M
θ (t) m
ω (t) m
-
T m
T L
Figura C.1:
C.1.
Motor de corriente continua. Modelo el´ectrico de un motor de CC.
Modelo Matem´ atico
El par generado por el motor, T m [N -m], es proporcional a flujo magn´etico del estator, φ[webers], y la corriente a trav´es de inducido, ia [ampere]; esto es: T m (t) = K b φia (t) [N -m], (C.1) 207
C.2. Motor de cc de Im´an Permanente
Cap´ıtulo C. Motor de Corriente Continua
en donde K b es una constante de proporcionalidad. Como respuesta a la velocidad de giro de la armadura [rad/s] se genera una fuerza contra-electromotriz, eb [volt], ´esta es una tensi´on que se opone a la tensi´on aplicada al inducido y por tanto al movimiento del motor mejorando su estabilidad, esta tensi´on es definida de la forma: eb (t) = K r φωm (t) [volt],
(C.2)
en donde K r es una constante de proporcionalidad. Las ecuaciones (C.1) y (C.2) son importantes porque relacionan una variable el´ectrica con una variable mec´anica y permiten determinar el efecto que existe entre ellos. La parte el´ectrica est´a dominada por el circuito del inducido y la variable de inter´es es la corriente, ia , que est´a descrita por la ecuaci´on: La
dia (t) = ea (t) dt
− Raia(t) − eb(t)
[volt],
(C.3)
en donde La[henry], Ra [ohm] son la inductancia y resistencia del inducido; ea y eb son las tensiones aplicadas al inducido y la fuerza contra-electromotriz, respectivamente. Al ponerse a girar el inducido el cuerpo que lo sostiene y la fecha del motor tambi´en lo hace. La velocidad de giro de este conjunto es: ωm (t). La la din´amica de este cuerpo s´olido est´a gobernado por la expresi´on: J m
dωm (t) = T m (t) dt
− T L(t) − Bm dθ(t) dt
[N -m],
(C.4)
en donde J m [Kg -m2 ] es el momento de inercia del rotor y de la fecha; T L y T m [N -m] es el par de carga y el generado por el motor, respectivamente. Se considera un par de fricci´on que es funci´on de la velocidad de rotaci´on de la flecha del N -m motor, Bm [ rad/s ]. Las ecuaciones (C.1-C.4) modelan la din´amica de un motor de cc.
C.2.
Motor de cc de Im´ an Permanente
El flujo magn´etico del estator, φ, es constante para los casos de un motor de cc de im´ an permanente, en este caso en las ecuaciones (C.1) y (C.2) el valor del flujo se incorpora a las constantes respectivas. T m (t) = K b ia (t) [N -m], eb (t) = K r ωm (t) [volt].
(C.5) (C.6)
La potencia generada por el motor se expresa en funci´on de las variables el´ectricas: P = ia ea
[watt],
(C.7)
o bien, por medio de las variables mec´anicas: P = T m ωm
[watt].
(C.8)
Al tomar unas de las expresiones anteriores y utilizar las ecuaciones (C.5) y (C.5) para sustituir las variales el´ectricas por mec´anicas, o viceversa. Se concluye que K b = K r , por tanto: T m(t) = Ki a(t) [N -m], eb (t) = Kω m (t) [volt]. 208
– JMFA –
(C.9) (C.10)
Cap´ıtulo C. Motor de Corriente Continua
C.3.
C.3. Control de Velocidad en R´e gimen Estacionario
Control de Velocidad en R´ egimen Estacionario
El flujo magn´etico, φ, generado por los embobinados del inductor es proporcional a la corriente que circula por ´el. Considerando lo anterior, las ecuaciones del par generado por el motor y la fuerza contra-electromotriz son: T m (t) = K b iind (t)ia (t) [N -m], eb (t) = K r iind (t)ωm (t) [volt],
(C.11) (C.12)
en donde iind (t) es la corriente en el inductor. En r´egimen estacionario el t´ermino dia /dt es igual a cero. Entonces la ecuaci´on (C.3) queda de la forma: 0 = E a (t)
− RaI a (t) − E b (t).
(C.13)
Al usar (C.12) en la ecuaci´on (C.13) y resolver para ωm se obtiene: Ωm =
E a Ra I a , KI ind
−
[rad/s]
(C.14)
en donde W m , I a e I ind son la velocidad angular, la corriente del inducido y la corriente del inductor en r´ egimen estacionario, respectivamente. Si el la tensi´on Ra I a se considera peque˜na, la velocidad en r´egimen estacionario es: Ωm
≈ KI E iand ,
[rad/s]
(C.15)
de la ecuaci´on anterior se concluye que hay dos formas para el control de la velocidad del motor de c.c, a trav´es de la tensi´on aplicada al inducido, y por la corriente aplicada al inductor (cambio del flujo magn´etico). Por lo general se mantiene la corriente del inductor constante y se varia el voltaje del inducido, cuando se desea trabajar en sobre velocidad (velocidades superiores a la nominal) se mantiene la tensi´on constante y para aumentar la velocidad se reduce la corriente del inductor, disminuyendo en proporci´on el par disponible (C.9).
C.4.
Modelo Discreto de un Motor de cc
El modelo matem´ atico de un motor de cc. est´a dado por las ecuaciones: dia (t) dt eb (t) T m (t) dωm (t) J m dt La
= ea(t)
− Ra ia(t) − eb (t),
= Kω m (t), = Ki a(t), = T m (t)
− T L(t) − Bm dθ(t) , dt
[volt]
(C.16)
[volt] [N -m]
(C.17) (C.18)
[N -m]
(C.19)
Combinando (C.17) en (C.16), y (C.18) en (C.19) se obtienen el par de ecuaciones diferenciales de primer orden: dia (t) = ea (t) Ra ia(t) dt dωm (t) J m = Ki a (t) T L (t) dt La
−
−
− Kωm(t), − Bm dθ(t) , dt
[volt]
(C.20)
[N -m]
(C.21)
en la figura C.2 est´ a el diagrama de bloques de estas ecuaciones. Al aplicar la transformada de Laplace de (C.17) en (C.16) se tienen las ecuaciones algebraicas: (La s + Ra ) ia(s) = ea (s) Kω m (s), (J m s + Bm ) ωm(s) = Ki a(s) T L (s).
−
−
– JMFA –
[volt] [N -m]
(C.22) (C.23) 209
C.4. Modelo Discreto de un Motor de cc
ea(t) -
T L(t)
ia(t)
1 -
Cap´ıtulo C. Motor de Corriente Continua
∫
La
-
wm(t)
1
K
-
∫
J m
µm(t)
∫
T m(t)
eb(t)
Bm
Ra K Figura C.2:
Modelo matem´ atico de un motor de CC. Diagrama a bloques del modelo matem´atico de un motor de
CC. .................................................................................................................
ea(s)
1 -
Las+Ra
T L(s)
T m(s)
ia(s)
-
1
K
wm(s)
Jms+Bm
1
µm(s)
s
eb(s)
K Transformada de Laplace de un motor de cc. Notar que el motor tiene una retroalimentaci´on interna de la velocidad esto ayuda a agregar amortiguamiento. ................................................................................................................. Figura C.3:
Aplicando el teorema de superposici´on y ´algebra de bloques la funci´on de transferencia de motor de cc., est´a descrita por: 1 K, ωm(s) = 2 LaJ m s + (La Bm + Ra J m )s + (Ra Bm + K 2 )
−(Las + Ra )
la posici´on de la fecha del motor se obtiene por medio de la siguiente expresi´on: 1 K, θm (s) = La J m s3 + (La Bm + Ra J m )s2 + (Ra Bm + K 2 )s
−(Las + Ra)
e(s) , T L (s)
[rad/s]
(C.24)
[rad]
(C.25)
e(s) . T L (s)
El modelo en el tiempo discreto de un sistema continuo se obtiene usando: G(z) = (1
−z
−1
Z
)
G(s) , s
(C.26)
en donde G(s) es la funci´on de transferencia del sistema, al cual le antecede un retenedor de orden cero; z es una variable de valor complejo y [H (s)] indica la transformada z de la funci´on de transferencia H (s). Utilizar C.26 requiere que la fuci´ on de transferencia del sistema continuo, multiplicar la funci´on de transferencia por 1s , dividir la ´ultima expresi´on en fracciones parciales, aplicar la transformada z de estos t´erminos y simplificar.
Z
Como m´etodo alternativo se puede utilizar una aproximaci´on discreta de la integral y sustituir ´esta en el modelo matem´ atico del sistema. A pesar de que este m´etodo genera una aproximaci´on, para muchos casos ser´a suficiente con ella, y acambio est´a su sencilles para evaluar. Entonces la propuesta es sustituir el operador integral por una aproximaci´on 210
– JMFA –
Cap´ıtulo C. Motor de Corriente Continua
C.4. Modelo Discreto de un Motor de cc
discreta. Suponiendo que y(k) es la aproximaci´on de la integral en el instante k y x(k) es el valor de la funci´on que se integra. Las dos aproximaciones de la integral que se utilizan son:
T
y(t) =
x(t)dt
≈
y(k) = y(k
− 1) + T 2s [x(k) + x(k − 1)] ,
k = 0, . . . ,
T T s
(C.27)
x(t)dt
≈
y(k) = y(k
− 1) + T sx(k − 1),
k = 0, . . . ,
T T s
(C.28)
0
T
y(t) =
0
(C.29)
en donde T s es el tiempo de muestreo. Con el operador retardo, q −1 (q−1 x(k) = x(k 1)), se puede factorizar y reordenar las ecuaci´ones (C.27, C.28 ):
−
T s y(k) = 2 y(k) = T s
− q+1 q 1 1 q 1
−
x(k).
(C.30)
x(k).
(C.31)
la primera aproximaci´on (C.30) es m´ as precisa que la indicada por (C.31). Para aplicar la aproximaci´on de la integral se modifica la presentaci´on de las ecuaciones (C.20) y (C.21) de la forma: La ia(t) = J m ωm (t) =
[ea (t)
− Raia(t) − Kω m(t)] dt,
[Ki a(t)
(C.32)
− T L(t) − Bmωm(t)] dt,
(C.33)
sustituyendo (C.30) en (C.32) y (C.31) en (C.33) se tiene: T s La ia (t) = 2 J m ωm (t) = T s
−
q+1 [ea (t) Ra ia (t) Kω m (t)] dt, q 1 1 [Ki a (t) T L (t) Bm ωm (t)] dt, q 1
−
−
(C.34)
−
−
(C.35)
−
se resuelve (C.34) para ia y se sustituye en (C.35), en resumen: (α0 q 2 + α1 q + α2 )ωm (k) = (β 0 q + β 1 )ea (k)
− (γ 0q + γ 1)T L(k)
[rad/s]
(C.36)
en donde: α0 α1 α2 β 0 β 1 γ 0 γ 1
= = = = = = =
J m (T s Ra + La ), (T s Bm J a )(T s Ra + La ) + J m (T s Ra (T s Bm J a )(T s Ra La ) + (T s K )2 , T s2 K, T s2 K, T s (T s Ra + La ), T s (T s Ra La ),
− −
−
(C.37) (C.38) (C.39) (C.40) (C.41) (C.42) (C.43)
− La) + (T s K )2,
−
Para la descripci´on de posici´ on, θ, de la flecha del motor se obtiene al integrar la velocidad, es decir, al aplicar (C.30): ¯0 q + β ¯1 )ea (k) (¯ α0 q3 + α ¯1 q 2 + α ¯2q + α ¯3 )θm (k) = (β
− (¯γ0 q + ¯γ1 )T L(k)
[rad]
(C.44)
en donde: α ¯ 0 = J m (T s Ra + La), α ¯ 1 = (T s Bm J m )(T s Ra + La ) + (T K )2 ,
−
– JMFA –
(C.45) (C.46) 211
C.4. Modelo Discreto de un Motor de cc
Cap´ıtulo C. Motor de Corriente Continua
α ¯2 =
−J m(T s Ra − La), α ¯ 3 = −[(T sBm − J m )(T s Ra − La) + (T s K )2 ], ¯0 β ¯1 β γ¯0 γ¯1
= = = =
T s3 K, T s3 K, T s2 (T sRa + T s2 (T a Ra
−
(C.47) (C.48) (C.49) (C.50) (C.51) (C.52)
La ), La ).
Consid´erese el motor de cc. cuyos par´ametros se list´an en la tabla C.1. Par´ ametros Resistencia, Ra Inductancia, La Amortiguamiento, Bm Inercia, J m Costante elect-mec, K
Valor 4 ohm 2.751 10−6 h 3.5077 10−6 N ms 3.2284 10−6 Kg m2 /s2 0.0274 Nm/Amp
× × ×
Tabla C.1:
Par´ ametros de un motor de cc.
Con los datos del motor listados en la tabla C.1 se simula el comportamiento del motor y se comparan los modelos continuo y dicreto. El per´ıodo de muestreo para la simulaci´on discreta es T s = 0.005 segundos, el par de carga es, T L = 0.001. La respuesta que se muestra en figure.C.4 es para un valor de tensi´on constante, ea = 1, el modelo en velocidad para el motor es: ωm (k + 1) =
−295.803 × 10−3ωm(k) + 703.648 × 10−3ωm(k − 1) +10607.511 × 10−3 [ea (k) + ea (k − 1)] − [1548.755T L(k) + 1548.329T L(k − 1)] . [rad/s]
(C.53)
Para posici´on el modelo es: θm (k + 1) = 703.922 10−3 θm (k) + 999.725 10−3 θm (k 1) 703.648 10−3 θm (k +53.038 10−3 [ea (k 1) + ea (k 2)] 7743.774 10−3 T L (k 1) + 7741.644 10−3T L (k 2) . [rad]
× ×
−
×
−
× −
−
Velocidad Motor de c.c.
35
− −
×
×
−
− 2)
(C.54)
Posición Motor de c.c.
4.5 4
30
3.5
25
3
20
2.5
s / d 15 a r
d a r
2 1.5
10
1
5
0.5
0
0
−5
−0.5 0
0.05
0.1
(a)
Figura C.4:
0.15
0
s
0.05
0.1
(b)
0.15
s
Respuesta al escal´ on Motor de cc. a) velocidad. b) posici´on. - - respuesta continua; — respuesta
discreta. .................................................................................................................
212
– JMFA –
Ap´ endice D
Ecuaciones de Entrenamiento para Redes Neuronales Recurrentes Recordar que las ecuaciones de entrenamiento son para el trabajo en l´ l´ınea, es decir, que en cada iteraci´on se actualizan todos los pesos de la red. Como las ecuaciones se derivan a partir del algoritmo de retropropagaci´on del error, los primeros pesos que se actualizan son los de salida, se sigue con los de la capa oculta y se termina con los pesos de entrada. La operaci´on on de la red se divide en dos fases: una hacia adelante, que es donde se determina la respuesta de la red a una entrada dada en el instante k y considerando que los pesos son fijos; la otra fase es de entrenamiento: en esta fase se utiliza la informaci´on on de las se˜nales nales de entrada y salida de la red para calcular la actualizaci´on de los pesos. En esta secci´on on se detallan las ecuaciones de entrenamiento para las redes neronales que se proponen en el cap´ cap´ıtulo 2. El ejemplo es para una red con arquitectura de dos entradas, tres elementos ocultos y dos salidas.
D.1.. D.1
Red Re d Ne Neuro urona nall Recu Recurre rren nte
La red neuronal para la cual se expresan sus ecuaciones de entrenamiento se presenta en la figura D.1. -1
Σ
Σ
z -1
Γ 11(.) Γ ( -1
-1
Σ
Σ
z -1
Σ
Σ
Γ 22(.) Γ (
Σ
-
-1
Σ
z -1
Γ 31(.) Γ (
Figura D.1:
D.1. D. 1.1. 1.
Γ 12(.) Γ (
Γ 21(.) Γ (
-1
Σ
-
Σ
Red neuronal recurrente 2, 3, 2
{
}
Peso Pe soss de la Cap Capa a de Sali Salida da
Como son dos las salidas de la RNR existen dos gradientes asociados a cada una de ´estas: δ12 (k ) = e1 (k )Γ˙ 21 s21 (k ) ,
− 2 δ2 (k ) = −e2 (k )Γ˙ 22
s22 (k )
.
(D.1) (D.2) 213
D.1. Red Red Neuronal Neuronal Recurren Recurrente te
Cap´ Cap ´ıtul ıtulo o D. Ecuac Ecuaciones iones de Entrenam Entrenamien iento to para para Redes Neurona Neuronales les Recurren Recurrentes tes
Si la funci´on on de activaci´on on de salida es tanh tanh,, entonces
δ12 (k ) =
−e1(k) 1 − y1(k)2 δ22 (k ) = −e2 (k ) 1 − y2 (k )2 La correcci´on on de los pesos es:
,
(D.3)
.
(D.4)
∆c10 (k ) = δ12 (k )( 1) 1),, 2 ∆c11 (k ) = δ1 (k )z1 (k ), ∆c12 (k ) = δ12 (k )z2 (k ),
(D.5) (D.6) (D.7)
∆c13 (k ) = δ12 (k )z3 (k), ∆c20 (k ) = δ22 (k )( 1) 1),,
(D.8) (D.9)
∆c21 (k ) = δ22 (k )z2 (k), ∆c22 (k ) = δ22 (k )z2 (k),
(D.10) (D.11)
∆c23 (k ) = δ22 (k )z3 (k).
(D.12)
− −
Para actualizar los pesos se utiliza: cij (k + 1) = cij (k )
D.1. D. 1.2. 2.
− η∆cij (k).
(D.13)
Peso Pe soss de la la Capa Capa Ocu Ocult lta a
Son tres nodos ocultos y cada uno de ellos tiene un gradiente local asociado δ1x,2,3 (k ):
δ1x (k ) = Σ2r=1 δr2 cr1 Γ˙ 11 [x1 (k )] , δ x (k ) = Σ2 δ 2 cr2 Γ˙ 1 [x2 (k )] , 2 δ3x (k )
La correcci´on on de los pesos es la siguiente:
=
r=1 r Σ2r=1 δr2 cr3
2 ˙Γ1 [x3 (k )] . 3
∆ j11 (k ) = δ1x (k)x1 (k ∆ j22 (k ) = δ2x (k)x2 (k ∆ j33 (k ) = δ3x (k)x3 (k
− 1) 1),, − 1) 1),, − 1) 1)..
(D.14) (D.15) (D.16)
(D.17) (D.18) (D.19)
Para actualizar los pesos se utiliza: jii (k + 1) = jii (k)
D.1.3 D. 1.3..
− η∆ jii (k).
(D.20)
Pesos Pe sos de la la Capa Capa de Ent Entrad rada a
Los pesos de la capa de salida se utilizan el mismo gradiente de la capa oculta, entonces la corecci´on corecci´on de los pesos es la siguiente: ∆b10 (k ) ∆b11 (k ) ∆b12 (k ) ∆b20 (k ) ∆b21 (k ) ∆b22 (k ) ∆b30 (k ) ∆b31 (k ) ∆b32 (k ) 214
= = = = = = = = =
δ1x (k)( 1) 1),, x δ1 (k)u1 (k δ1x (k)u2 (k δ2x (k)( 1) 1),, x δ2 (k)u( 1)( 1)(k k δ2x (k)u2 (k δ3x (k)( 1) 1),, x δ3 (k)u1 (k δ3x (k)u2 (k
− − −
– JMFA –
− 1) 1),, − 1) 1),, − 1) 1),,
− 1)
− 1) 1),, − 1) 1)..
(D.21) (D.22) (D.23) (D.24) (D.25) (D.26) (D.27) (D.28) (D.29)
Cap´ Cap ´ıt ıtulo ulo D. Ecu Ecuaci acione oness de En Entre trenam namien iento to par para a Red Redes es Ne Neuron uronale aless Rec Recurr urren entes tes
D.2.. RNR con Tres Cap D.2 Capas as
Para actualizar los pesos se utiliza: bij (k + 1) = bij (k )
D.2.. D.2
− η∆bij (k).
(D.30)
Red Re d Neuron Neuronal al Recurr Recurren ente te con Tre Tress Capas Capas
Esta red neuronal tiene con modificaci´on on la de contar con una funci´on on de activaci´on on a la salida de la capa de entrada. El la figura D.2 se presenta a arquitectura de la red para la que se presentas sus ecuaciones de entrenamiento. -1
Σ
Γ 10(.) Γ (
Γ 11(.) Γ (
z -1
Σ
-1
-1
Σ
Γ 20(.) Γ (
-1
Σ
Σ
Γ 22(.) Γ (
Σ
-
-1
Σ
Γ 30(.) Γ (
Figura D.2:
D.2. D. 2.1. 1.
Γ 12(.) Γ (
Γ 21(.) Γ (
z -1
Σ
-
Σ
Γ 31(.) Γ (
z -1
Σ
Red neuronal recurrente con tres capas 2, 3, 2
{
}
Peso Pe soss de la Cap Capa a de Sali Salida da
Quedan definidos por (D.1-D.13)
D.2. D. 2.2. 2.
Peso Pe soss de la la Capa Capa Ocu Ocult lta a
Quedan definidos por (D.14-D.20)
D.2.3 D. 2.3..
Pesos Pe sos de En Entra trada da
El gradiente para cada nodo de la entrada δ12,2,3 (k) es igual a:
δ11 (k ) = δ1x Γ˙ 01 s11 (k ) , δ21 (k ) = δ2x Γ˙ 02 s12 (k ) , δ31 (k ) = δ3x Γ˙ 03 s13 (k ) .
(D.31) (D.32) (D.33)
Si la funci´on on de activaci´on on la tanh este gradiente local es:
− −−
δ11 (k ) = δ1x 1
r1 (k )2 ,
(D.34)
δ21 (k ) = δ2x 1
r2 (k )2 ,
(D.35)
δ31 (k )
=
δ3x
1
2
r3 (k )
– JMFA –
.
(D.36) 215
D.3. Predicci´on on de la Sali Salida da
Cap´ Cap ´ıtul ıtulo o D. Ecuac Ecuaciones iones de Ent Entrenam renamien iento to para Redes Neuro Neuronales nales Recur Recurrent rentes es
la capa oculta oculta,, entonc entonces es la core corecci´ cci´on on de los pesos es la siguiente:
− − − −− −− −− −− − −− −− − −− −−
∆b10 (k ) = δ1x 1
r1 (k
1)2 (k)( 1) 1),,
(D.37)
∆b11 (k ) = δ1x 1
r1 (k
1)2 (k)u1 (k
(D.38)
∆b12 (k ) = δ1x 1
r1 (k
1)2
(D.39)
∆b20 (k ) = δ2x (k) 1
r2 (k
1)2 ( 1) 1),,
(D.40)
∆b21 (k ) = δ2x (k) 1
r2 (k
1)2 u1 (k
− 1) 1),, u2 (k − 1) 1),,
(D.41)
( 1) 1),,
(D.43)
u1 (k
(D.44)
∆b22 (k ) = ∆b30 (k ) = ∆b31 (k ) = ∆b32 (k ) =
δ2x (k) δ3x (k) δ3x (k) δ3x (k)
Los pesos se actualizan usando D.30.
D.3. D. 3.
− 1) 1),, (k)u2 (k − 1) 1),,
1 1 1 1
2
r2 (k
1)
2
r3 (k
1)
2
r3 (k
1)
− 1) 1),, u2 (k − 1) 1)..
2
r3 (k
(D.42)
1)
(D.45)
RNRE RN RE co con n Pr Pred edic icci ci´ ´ on de la Salida on
En este modelo de red nueronal recurrente el lazo de retroalimentaci´on interno contiene el ratardo pudiendo expresarse la salida para el tiempo (k + 1), 1), ver la figura D.3 -1
Σ
Γ 11(.) Γ (
Σ
-1
z -1 -1
Σ
Γ 12(.) Γ (
Σ
Σ
Γ 22(.) Γ (
Σ
Γ 21(.) Γ (
Σ
z -1 -1
Σ
-
Σ
-
-1
Γ 31(.) Γ (
Σ
z -1 Figura D.3:
D.3. D. 3.1. 1.
Red neuronal recurrente con predicci´ on a la salida 2, 3, 2
{
}
Peso Pe soss de la Cap Capa a de Sali Salida da
Para las dos salidas de la RNR existen dos gradientes asociados a cada una de ´estas: estas:
−e1(k + 1)Γ˙ 21 δ22 (k + 1) 1) = −e2 (k + 1)Γ˙ 22 δ12 (k + 1) 1) =
(D.46)
s22 (k + 1) .
(D.47)
En el caso de que la funci´on on de activaci´on on de salida es tanh tanh,, entonces δ12 (k + 1) 1) =
s21 (k + 1) ,
−e1(k + 1) 1 − y1(k + 1)2 δ22 (k + 1) 1) = −e2 (k + 1) 1 − y2 (k + 1)2 La correcci´on on de los pesos es:
∆c10 (k ) = δ12 (k + 1)( 1) 1),, 2 ∆c11 (k ) = δ1 (k + 1)z 1)z1 (k + 1), 1),
−
216
– JMFA –
,
(D.48)
.
(D.49)
(D.50) (D.51)
Cap´ Cap ´ıt ıtulo ulo D. Ecu Ecuaci acione oness de En Entre trenam namien iento to par para a Red Redes es Ne Neuron uronale aless Rec Recurr urren entes tes
D.4.. Est D.4 Estado adoss Ac Acota otados dos
∆c12 (k ) = δ12 (k + 1)z 1)z2 (k + 1), 1),
(D.52)
δ12 (k + 1)z 1)z3 (k + 1), 1), 2 δ2 (k + 1)( 1) 1),, 2 δ2 (k + 1)z 1)z2 (k + 1), 1), 2 1)z2 (k + 1), 1), δ2 (k + 1)z 2 δ2 (k + 1)z 1)z3 (k + 1). 1).
(D.53) (D.54) (D.55) (D.56) (D.57)
∆c13 (k ) ∆c20 (k ) ∆c21 (k ) ∆c22 (k ) ∆c23 (k )
= = = = =
−
Para actualizar los pesos se utiliza (D.13)
D.3. D. 3.2. 2.
Peso Pe soss de la la Capa Capa Ocu Ocult lta a
Son tres nodos ocultos y cada uno de ellos tiene un gradiente local asociado δ1x,2,3 (k ):
δ1x (k + 1) 1) = Σ2r=1 δr2 (k + 1)c 1)cr1 Γ˙ 11 [x1 (k + 1)] , δ2x (k + 1) 1) = Σ2r=1 δr2 (k + 1)c 1)cr2 Γ˙ 12 [x2 (k + 1)] ,
(D.58)
δ3x (k + 1) 1) = Σ2r=1 δr2 (k + 1)c 1)cr 3 Γ˙ 13 [x3 (k + 1)] .
(D.60)
La correcci´on on de los pesos es la siguiente:
(D.59)
∆ j11 (k ) = δ1x (k + 1)x 1)x1 (k),
(D.61)
∆ j22 (k ) = δ2x (k + 1)x 1)x2 (k), x ∆ j33 (k ) = δ3 (k + 1)x 1)x3 (k).
(D.62) (D.63)
Para actualizar los pesos se utiliza D.20:
D.3.3 D. 3.3..
Pesos Pe sos de la la Capa Capa de Ent Entrad rada a
Los pesos de la capa de salida se utilizan el mismo gradiente de la capa oculta, entonces la corecci´on corecci´on de los pesos es la siguiente: ∆b10 (k ) ∆b11 (k ) ∆b12 (k ) ∆b20 (k ) ∆b21 (k ) ∆b22 (k ) ∆b30 (k ) ∆b31 (k ) ∆b32 (k )
= = = = = = = = =
δ1x (k + 1)( 1) 1),, x δ1 (k + 1)u 1)u1 (k), x δ1 (k + 1)u 1)u2 (k), x δ2 (k + 1)( 1) 1),, x δ2 (k + 1)u 1)u1 (k), δ2x (k + 1)u 1)u2 (k) x δ3 (k + 1)( 1) 1),, δ3x (k + 1)u 1)u1 (k), x δ3 (k + 1)u 1)u2 (k).
− − −
(D.64) (D.65) (D.66) (D.67) (D.68) (D.69) (D.70) (D.71) (D.72)
Para Pa ra actualizar actualizar los pesos p esos se utili utiliza za D.30
D.4. D. 4.
RNRE RN RE con con Est Estad ados os Acot Acotad ados os
En esta red los estados quedan acotados por medio de la funci´on de activaci´on. on. Vea la figura D.4.
D.4. D. 4.1. 1.
Peso Pe soss de la Cap Capa a de Sali Salida da
Quedan definidos por (D.1-D.13) – JMFA –
217
D.4. Estados Acotados
Cap´ıtulo D. Ecuaciones de Entrenamiento para Redes Neuronales Recurrentes -1
Σ
1 Γ ( 1 .)
Σ
z -1 -1
-1
Σ
1 Γ ( 2 .)
Σ
Σ
Σ
2 Γ ( 2 .)
Σ
-
-1
Σ
1 Γ ( 3 .)
Σ
Figura D.4:
D.4.2.
2 Γ ( 1 .)
z -1
-1
-
Σ
z -1
Estados acotados 2, 3, 2
{
}
Pesos de la Capa Oculta
x Los gradientes locales de esta capa son: δ1,2,3 (k):
δ1x (k) = Σ2r=1 δr2 (k)cr1 Γ˙ 11 [x1 (k)] , δx (k) = Σ2 δ2 (k)cr2 Γ˙ 1 [x2 (k)] , 2 δ3x (k)
La correcci´on de los pesos es la siguiente:
=
r=1 r Σ2r=1 δr2 (k)cr3
2 Γ23 [x3 (k)] .
∆ j11 (k) = δ1x (k)z1 (k
− 1), ∆ j22 (k) = δ2x (k)z2 (k − 1), ∆ j33 (k) = δ3x (k)z3 (k − 1).
(D.73) (D.74) (D.75)
(D.76) (D.77) (D.78)
Para actualizar los pesos se utiliza D.20:
D.4.3.
Pesos de la Capa de Entrada
Los pesos de la capa de salida se utilizan el mismo gradiente de la capa oculta, entonces la correcci´on de los pesos es la siguiente: ∆b10 (k) ∆b11 (k) ∆b12 (k) ∆b20 (k) ∆b21 (k) ∆b22 (k) ∆b30 (k) ∆b31 (k) ∆b32 (k)
= = = = = = = = =
δ1x (k)( 1), δ1x (k)u1 (k δ1x (k)u2 (k δ2x (k)( 1), δ2x (k)u1 (k δ2x (k)u2 (k δ3x (k)( 1), δ3x (k)u1 (k δ3x (k)u2 (k
− − −
Para actualizar los pesos se utiliza D.30
218
– JMFA –
− 1), − 1), − 1), − 1), − 1), − 1).
(D.79) (D.80) (D.81) (D.82) (D.83) (D.84) (D.85) (D.86) (D.87)
Ap´ endice E
Prototipo Experimental En el laboratorio de rob´otica del Departamento de Control Autom´atico se tienen diversos prototipos para implementar algoritmos de control en tiempo real. Esto permite redondear el proceso de dise˜no y obtener resultados experimentales, y con ellos juzgar si estos concuerdan con lo obtenido en la teor´ıa y en simulaci´on. En particular en este trabajo se utiliza el un sistema para el control de un motor de corriente continua. figura E.1. ..............................................................................................................
IEEE 802 WinCon Server
WinCon Client
MatLab Simulink Visual C++
Data and Acquisition Control Board
Amplificador de Potencia
Codificador Digital de Posición
Sistema Embrague/Carga
Motor de CC
Figura E.1:
E.1.
Brazo Acoplable
Prototipo experimental de laboratorio.
Descripci´ on General
En este prototipo de control se trabaja con la interacci´on de dos programas comerciales MatLab c y WinCon c . El proceso para implementar los algoritmos de control inicia programando en Matlab-Simulink el algoritmo de control por
219
E.1. Descripci´on General
Cap´ıtulo E. Prototipo Experimental
medio de los bloques que vienen en las librer´ıas que integra a este programa. Una vez que se ha programado el algoritmo de control se env´ıa a compilar por medio de Real-Time Workshop que traduce el programa en Simulink a lenguaje de programaci´ on C++ optimizado para trabajar en tiempo real. El algoritmo codificado es tomado por WinCon para ser cargado y ejecutado en la tarjeta de adquisici´on y control. WinCon trabaja en una configuraci´on cliente-servidor, en una computadora opera el programa servidor, que junto con Matlab-Simulink , el programa se compila y se capturan datos. Por medio de una red local la computadora con el programa servidor se comunica con el programa cliente. La computadora con el programa cliente es la que se encarga de supervisar la operaci´on del algoritmo en la tarjeta de adquisici´on y control, as´ı como la transferencia de datos a la computadora con el programa servidor en donde se pueden graficar y guardar los datos del proceso. La tarjeta de adquisici´on y control es una MultiQ c dise˜nada por la compa˜n´ıa Quanser Consulting Inc . Esta tarjeta tiene ocho entradas anal´ogicas, ocho salidas anal´ogicas, ocho salidas digitales, tres temporizadores y seis entradas para codificadores digitales de posicisi´on en cuadratura.
Para suministar la energ´ıa al motor de corriente continua se utiliza un amplificador de potencia entre la salida anal´ogica de la tarjeta (de 5 a +5 Volt, a trav´es de un registro de 12 bits) y las terminales del motor. Este amplificador incluye una retroalimentaci´on de la corriente que pasa por el inducido del motor para mejorar el amortiguamiento del sistema.
−
El motor de corriente directa es de 24 volts, en la flecha del motor se pone un codificador digital de posici´on. Este codificador tiene una resoluci´on 2000 ciclos por revoluci´on. El codificador digital es de tipo incremental y en cuadratura, es decir, que internamente se generan dos se˜nales desfasadas 90◦ el´ectricos; en cada ciclo se generan cuatro transiciones de forma que la resoluci´on en la lectura de la posici´on es de 8000 transiciones por cada 360◦ grados de rotaci´on del eje. El contador interno de la tarjeta es de 24 bits, de forma que el n´umero de transiciones m´aximo que se pueden acumular es de 16, 777, 216; es decir, que hay 2, 097 revoluciones antes de que el contador se reinicie. En la fecha del motor se acopla un sistema mec´ anico embrague-carga que posibilita conectar al eje de motor una carga a trav´ es de una banda dentada. La relaci´on entre los engranes es de 1:3.6 Otro accesorio es un brazo r´ıgido que se puede ser montado sobre el eje de carga. En la figura E.2 se presenta la respuesta al escal´on del motor de cc., para la posici´on y velocidad del eje del motor. Estas curvas son el resultado de aplicar a la entrada del motor u(k) = 0.2, 0.3, . . . , 1.0. El tiempo de muestreo es de T s = 0.001 s.
Respuesta al Escalón, Motor CC: Posición
Respuesta al Escalón, Motor CC: Velocidad
500
100 u(k)=1
u(k)=1
450
90
400
80
350
70
300 d a 250 R
60 s / d 50 a R
200
40
150
+0.1
30
+0.1
100
20
50
u(k)=0.2
10
0
u(k)=0.2
0 0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
s
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
s
Respuesta al escal´ on del motor de cc. a) posici´on (Radianes). b) velocidad (Radianes/segundo). La magnitud de entrada al motor de cc., va de 0.2 hasta 1.0 en incrementos de una d´ecima. El per´ıodo de muestreo es T s = 0.001s. ................................................................................................................. Figura E.2:
220
– JMFA –
Cap´ıtulo E. Prototipo Experimental
E.2.
E.2. Control Proporcional Integral Derivativo Discreto
Control Proporcional Integral Derivativo Discreto
En esta secci´on se presenta la discretizaci´on de un control de tipo Proporcional Integral Derivativo (PID) se utiliza para obtener algunos datos del prototipo de control, y de esta forma tener un marco de referencia para los evaluar los resultados. La ecuaci´on continua de un control PID es: U (s) K i = K p + + K d s, E (s) s
(E.1)
en donde K p , K i y K d son los par´ametros del controlador. Para obtener una aproximaci´on discreta de este controlador se reemplazan los integradores por T s /1 T s es el tiempo de muestreo: U (z) = (1
−z
−1
)U (z) =
− z−1, en donde
− z−1) + K iT s2 + K d(1 − z−1)2 E (z), T s (1 − z −1 ) K d K p(1 − z −1 ) + K i T s + (1 − z −1 )2 E (z), T s
K pT s (1
u(k) = K p [e(k)
d − e(k − 1)] + K iT se(k) + K [e(k) − 2e(k − 1) + e(k − 2)] + u(k − 1), T s
(E.2) (E.3) (E.4)
al algoritmo (E.4) se suele llamar PID de velocidad , debido a que el valor del control se c´alcula en referencia al valor del control en la iteraci´ on anterior.
E.3.
Filtrado
La se˜nal de retroalimentaci´on con que cuenta el prototipo experimental es la salida de un codificador digital de posici´on. Para realizar pruebas de control en velocidad se necesita evaluar la velocidad de la flecha del motor con la informaci´on de la posici´on. El codificador digital trabaja en cuadratura, es decir, genera un par de se˜nales desfazadas 90◦ entre si. Esto permite cuadruplicar la resoluci´on del encoder y determinar el sentido de giro de la flecha. Para evaluar la velocidad del motor se puede utilizar una diferenciaci´on num´erica: w(k) =
θ(k)
− θ(k − 1) , T s
(E.5)
´o W (z) =
z 1 Θ(z), zT s
−
(E.6)
en donde T s es el tiempo de muestreo. Sin embargo esta opci´on es muy sensible al ruido; es decir, que para todo incremento grande en la posici´on en un tiempo muy corto el valor de la velocidad tendr´a un valor muy alto, caracter´ıstica que cumplen las perturbaciones. Por lo que en un experimento puede darse el caso de que el ruido se amplifique en tal grado que perjudique el desempe˜no del sistema. Se propone utilizar un filtro para obtener el valor de la velocidad para evitar amplificar el ruido. Un filtro pasa-banda es el indicado para esto. La funci´on de transferencia de la velocidad en tiempo continuo es: V (S ) = sΘ(s).
(E.7)
En la figura E.3 se presentan las gr´aficas de Bode de un derivador (E.7). En figura E.3.a se nota que un derivador tiene la caracter´ıstica de un cambio de ganancia de 20dB por d´ecada, de aqu´ı que un derivador ideal amplifica con mayor medida las se˜nales de alta frecuencia. En la figura E.3.b se aprecia que un derivador produce un adelanto de fase constante de 90◦ . – JMFA –
221
E.3. Filtrado
Cap´ıtulo E. Prototipo Experimental Gráficas de Bode: H(z)=z−1/(Ts*z)
Gráficas de Bode: H(s)=s 80
80
) B 60 d ( d 40 u t i n g 20 a M 0
) B 60 d ( d 40 u t i n g 20 a M 0 −1
10
0
10
1
10
2
3
10
(a)
10
−1
0
10
10
1
2
10
(a)
150 ) s o d a r 100 g ( e s a F 50 0 −1 10
10
Hz
10
3
Hz
150 ) s o d a r 100 g ( e s a F 50 0 0
10
1
10
(b)
2
3
10
10
10
−1
Hz
0
10
10
1
(b)
Diagrama de Bode de un derivador. El rango de graficaci´on es [0.1,1000] Hz. a) Diagrama de ganancia. Notar que un derivador tiene pendiente de 20dB/d´ecada. b) Diagrama de fase. Un derivador tiene 90◦ de adelanto de fase.
2
10
10
3
Hz
Diagrama de Bode de un diferenciador. El rango de graficaci´on es [0.1,1000] Hz. con un tiempo de muestreo de T s = 0.001s La frecuencia de Nyquis es de 500Hz. a) Diagrama de ganancia. El diferenciador tiene una pendiente de 20dB/decada en la zona de operaci´on. b) Diagrama de fase. Un diferenciador mantiene un desfasamiento 90 ◦ ; pero a partir de 100Hz este va disminuyendo hasta alcanzar 0◦ en la frecuencia de Nyquist. ................................................................................................................. Figura E.3:
Figura E.4:
En la figura E.4 pueden verse las gr´ aficas de Bode de la diferencia finita (E.6). figura E.4.a se observa que un diferenciador mantiene una ganancia de 20dB por d´ecada, la misma caracter´ıstica de un deivador, hasta poco antes de 1 alcanzar la frecuencia de Nyquist; es decir, a la frecuencia f N = 2∗T . Si T s = 0.001s entonces f N = 500Hz, a esta s frecuencia la salida del diferenciador es cero, debido a que la toma de cada una de las muestras de la se˜nal coincide con el cruce por cero de la misma, y para frecuencias mayores a f N , se produce el efecto de alias. La frecuencia de Nyquist no debe considerarse como el l´ımite superior del rango de trabajo, por el teorema de Shannon se conoce que para reproducir una se˜nal digitalizada se debe utilizar un per´ıodo de la mitad del per´ıodo del componente de frecuencia m´as alto que se desea recuperar. Para una frecuencia de muestreo de T s = 0.001s, se utiliza un diferenciador para obtener la derivada de la se˜nal, esto implica que el rango de trabajo tiene un l´ımite impuesto por la frecuencia de Nyquist, para este caso es: f N = 500Hz, es decir, que el per´ıodo de muestreo se reduce a T N = 0.002s. Por el teorema de Shannon la frecuencia de la se˜nal m´ as grande que se puede recuperar con una per´ıodo de muestreo T N es del doble; es decir T Sh = 0.004. Por tanto la frecuencia m´ axima de trabajo es de F M = 1/T Sh = 250Hz. Notar de la figura E.4.b que esta frecuencia de 250Hz corresponde al punto en donde inicia a reducirse la fase. En este punto se determin´o la frecuencia m´axima de trabajo, en funci´on del per´ıodo de muestreo; pero el tipo de sistema con el cual se est´a trabajando impone por si mismo un l´ımite de operaci´on. El prototipo experimental de un motor de corriente directa es un dispositivo electromec´anico, los cambios en velocidad en su operaci´on no son muy grandes, por esto se propone que la frecuencia m´axima del cambio de velocidad sea de 10Hz. Por lo anterior se tiene que para estimar la velocidad del motor a partir de la lecturas de codificador digital de posici´on se necesita de un filtro digital que tenga una caracter´ıstica de una ganancia de 20dB/d´ecada y 90◦ de adelanto de fase en la zona de trabajo, y con el fin de evitar ruido y reducir el efecto de alias se necesita atenuar las se˜nales que correspondan a un cambio de velocidad por mayores de 20Hz. El filtro adecuado para esta funci´on es uno de tipo pasa-banda. Dentro de la frecuencia de trabajo se utiliza un filtro pasa-altos de tipo Butterworth: H pa (s) =
2πf ca s , s + 2πf ca
(E.8)
en donde f ca es la frecuencia de corte alta en Hertz. Este filtro tiene una ganancia 20dB/d´ecada y 90◦ hasta una 222
– JMFA –
Cap´ıtulo E. Prototipo Experimental
E.3. Filtrado Gráficas de Bode: H(s)=2*pi*fca/(s+2*pi*fca)
Gráficas de Bode: H(s)=2*pi*fca*s/(s+2*pi*fca) 80
0
) B 60 d ( d 40 u t i n g 20 a M 0
) B d ( −20 d u t i −40 n g a M−60 −1
10
−80 0
10
1
2
10
3
10
(a)
10
0
1
10
10
2
3
10
(a)
0
150 ) s o d a r 100 g ( e s a F 50 0 −1 10
−1
10
Hz
10
Hz
) s −50 o d a r g ( e −100 s a F
−150
0
10
1
2
10
(b)
−1
3
10
10
10
0
1
10
10
(b)
Hz
Diagrama de Bode de un filtro Butterworth pasa-altos. a) Diagrama de ganancia. b) Diagrama de fase. La l´nea vertical se˜ nala la frecuencia de corte: f ca = 15Hz. Se usa para estimar la velocidad.
2
3
10
10
Hz
Diagrama de Bode de un filtro Butterworth pasa-bajos. a) Diagrama de ganancia. b) Diagrama de fase. La l´ınea vertical se˜nala la frecuencia de corte: f ca = 15Hz. Aten´ ua las se˜ nales superiores a f ca ................................................................................................................. Figura E.5:
Figura E.6:
√
frecuencia poco menor a la de corte, en la frecuencia de corte la ganancia se reduce a 1/ 2 y +45◦ de adelanto de fase. De forma que si la frecuencia de operaci´on m´axima es de 10Hz se sugire que la frecuencia de corte superior sea 50 % mayor a la frecuencia de corte superior. De forma que la frecuencia de corte que se utiliza es f ca = 15Hz. ver figura E.5. Este filtro estima la derivada de la se˜nal. Para atenuar las se˜nales superiores a la frecuencia de corte se puede utilizar un filtro Butterworth pasa-bajos. Un filtro Butterworth pasa-bajos de primer orden est´a descrito por la ecuaci´on: H pb (s) =
2πf cb , s + 2πf cb
(E.9)
este filtro tiene una gancia de 20dB/d´ecada. Ver las gr´aficas de Bode de este filtro en figura E.6. El filtro tiene un desfasamiento de 0◦ grados, cruzando por 45◦ en la frecuencia de corte, f cb ; hasta 90◦.
−
−
−
El filtro pasa banda puede usarse para estimar la velocidad y aten´ua las frecuencias superiores a la de corte es: H (s) = H pa (s)H (s) pb =
2πf ca s , s2 + 4πf ca s + (2πf ca )2
(E.10)
Discretizando este filtro con un per´ıodo de muestreo, T s = 0.001, su funci´on de transferencia es: H (z) =
z2
8.084(z 1) , 1.82z + 0.8282
−
−
(E.11)
En las figuras E.7 y E.8 se muestran las gr´aficas de Bode el un filtro pasa banda (E.10), en su versi´on continua; y (E.11) en discreto. De estas gr´aficas se observa que las se˜nales alrededor de la frecuencia de Nyquist a´un son amplificadas. Para aumentar el grado de atenuaci´on se puede utilizar un filtro Butterworth de tercer orden: H pb (s) =
(2πf cb )3 s3 + 2(2πf cb )s2 + 2(2πf cb)2 s + (2πf cb )3
Este filtro tiene una pendiente de atenuaci´on de filtro para una frecuencia de corte de 50Hz.
(E.12)
−60dB/d´ecada. En la figura E.9 est´an las gr´aficas de Bode de este – JMFA –
223
E.3. Filtrado
Cap´ıtulo E. Prototipo Experimental
2
2
Gráficas de Bode: H(z)
Gráficas de Bode: H(s)=2*pi*fca*s/[s +4*pi*fca*s+(2*pi*fca) ] 80
80
) B 60 d ( d 40 u t i n g 20 a M 0
) B 60 d ( d 40 u t i n g 20 a M 0 −1
10
10
0
1
10
10
2
(a)
−1
3
10
10
0
10
1
10
2
(a)
Hz
3
10
10 Hz
) s 100 o d a r g 0 ( e s a F −100
) s 100 o d a r g 0 ( e s a F −100 −1
10
10
0
1
10
10
2
(b)
−1
3
10
10
0
10
1
10
2
3
10
(b)
Hz
10
Hz
Figura E.8: Diagrama de Bode de un filtro pasaDiagrama de Bode de un filtro pasabanda. a) Diagrama de ganancia. b) Diagrama de banda. a) Diagrama de ganancia. b) Diagrama de fase. Frecuencia de corte f c = 15Hz. fase. Frecuencia de corte f c = 15Hz. ................................................................................................................. Figura E.7:
Gráficas de Bode: H(s)=(2*pi*fca) 3 /[s3+4*pi*fca*s2+2*(2*pi*fca)2*s+(2*pi*fca)3] ) B d ( d u t i n g a M
0
) 50 B d ( d u 0 t i n g a M−50
−50
−100 −1
10
0
10
1
10
2
−1
3
10
(a)
0
10
10
0
10
Hz
1
10
2
3
10
(a)
10 Hz
100 ) s o d 0 a r g ( −100 e s a F −200
) s o d −100 a r g ( e s −200 a F
−300
Gráficas de Bode: H(s)=(2*pi*fca) 3*s/[s4+3*v*s3+4*v3*s2+3*v3*s+v4]
−1
10
−300 0
10
1
10
(b)
2
3
10
10
Hz
−1
10
0
10
1
10
(b)
2
3
10
10
Hz
Figura E.10: Diagrama de Bode de un filtro pasaDiagrama de Bode de un filtro Butterworth pasa-bajos de tercer orden. a) Diagrama banda. a) Diagrama de ganancia.b) Diagrama de de ganancia. La pendiente de esta gr´a fica es de fase. Las frecuencias de corte son: f ca = 15Hz, 60dB/d´ecada. b) Diagrama de fase. Frecuencia de f cb = 50Hz. Las frecuencias por arriba de 500Hz son . . .corte . . . . . 50Hz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .atenuadas. ...................................................... Figura E.9:
−
224
– JMFA –
Cap´ıtulo E. Prototipo Experimental
E.3. Filtrado
Gráficas de Bode: H(z) ) 50 B d ( d u 0 t i n g a M−50
Filtro digital pasa banda .a) Diagrama de ganancia.b) Diagrama de fase. Frecuencia de corte inferior:f ca = 15Hz; Frecuencia de corte superior: f cb = 50Hz. Frecuencia de Nyquist: f N = 500Hz. ........................................................ Figura E.11:
−1
10
0
1
10
2
10
3
10
10
(a)
200
Hz
) s o 0 d a r g ( e s −200 a F
−400 −1 10
0
1
10
2
10
3
10
10
(b)
Hz
El filtro pasa-banda generado por (E.8) y (E.9) est´a representado p or la ecuaci´on: N (s) , D(s) N (s) = (2πf ca )(2πf cb )3 s, D(s) = s4 + [(2πf ca ) + 2(2πf cb )] s3 + 2(2πf ca )(2πf cb ) + 2(2πf cb )2 s2 + H (s) =
·· · +
2(2πf ca )(2πf cb )2 + (2πf cb )3 ) s + (2πf ca )(2πf cb )3 ,
(E.13) (E.14)
···
(E.15)
en donde f c a es la frecuencia de corte el filtro pasa-altos, y f cb es la frecuencia de corte del filtro pasa-bajos. En la figura E.10 est´ an las gr´aficas de Bode para el filtro pasa-banda (E.13), para las frecuencias de corte: f ca = 15Hz; f cb = 50Hz. Notar que este filtro aten´ua las se˜nales por arriba de 500Hz. La versi´on discreta de este filtro para una frecuencia de muestreo T s = 0.001 es: H (z) =
0.4053z 3 + 0.9439z 2 1.067z 0.2824 . z 4 3.287z 3 + 4.096z 2 2.293z + 0.4855
−
− −
−
(E.16)
En la figura E.11 est´an las gr´aficas de magnitud de fase del filtro digital (E.13). Dependiendo del grado de atenuaci´on requerido en las frecuencias superiores se puede seleccionar entre el filtro (E.10, E.11), o (E.13, E.16). ..............................................................................................................
– JMFA –
225
E.3. Filtrado
226
Cap´ıtulo E. Prototipo Experimental
– JMFA –
Ap´ endice F
Algoritmo de Retropropagaci´ on En la secci´on 1.2.4 se presenta el algoritmo de retropropagaci´on para una red neuronal m´ulticapa. El objetivo de esta secci´on es la de mostrar este algoritmo de forma que sea sencillo traducirlo a un lenguaje de computo; por ejemplo Matlab c .
El algoritmo de retropropagaci´on del error tiene como tarea m´ınimizar el error cuadr´atico de la salida de la red: J = 12 eT e. Siendo: e = y d y el vector error, en donde: y d es el vector de valores deseados y y es el vector con los valores de la salida de la red.
−
Los componentes que forman la salida de la capa l de la red neuronal: x(l) , est´a expresado de la forma siguiente: s(l) = W (l) x(l−1) , x(l) = Γ[s(l) ],
(F.1) (F.2)
en donde: l indica el n´umero de capa en la red; Γ[ ] es el vector de funciones de activaci´on; x(l−1) es el vector de salida de la capa l 1; cada componente del vector s(l) es la combinaci´on lineal entre los pesos de una neurona y la salida de (l) (l) (l) la capa anterior, es decir: si = wi x(l−1) , siendo wi la i-´esima fila de la matriz de pesos W (l) . Si las neuronas tienen una entrada independiente, ´esta se agrega como una entrada de valor fijo:
·
−
(l) si
[ w(l) i0
=
.. (l) ] . wi
(l)
· ·· 1
,
(F.3)
(l−1)
x
el t´ermino wi0 es el componente de compensaci´on. Como ejemplo: una red neuronal de tres capas tiene la forma: s(1) x(1) s(2) x(2) s(3) y = x3
= = = = = =
W 1 x(0) , Γ[s(1) ], W 2 x(1) , Γ[s(2) ], W 3 x(2) , Γ[x(3) ].
(F.4) (F.5) (F.6) (F.7) (F.8) (F.9)
El proceso de entrenamiento de la red neuronal principa al incializar las matrices de la red neuronal con valores aleatorios peque˜nos. La actualizaci´on de las matrices de pesos se realiza a trav´es de la regla delta: (l)
wi (l)
en donde: wi vector fila.
←− wi(l) − η
∂J (l)
∂w i
,
es un vector fila con los pesos de la neurona o nodo i de la capa l; el gradiente:
(F.10) ∂J (l) ∂w i
es tambi´en un
227
Cap´ıtulo F. Algoritmo de Retropropagaci´on Al utilizar la regla de la cadena en este gradiente se obtiene: (l)
∂J (l)
∂w i en donde el escalar
∂J (l) ∂s i
(l)
= δi
=
∂J ∂s i (l)
(l)
∂s i ∂w i
∂J
=
(l)
∂s i
x(l−1)
T
,
(F.11)
es el gradiente local del nodo i de la capa l.
Se puede representar la actualizaci´on de todos los pesos de una capa de la red neuronal a trav´es de la forma siguiente:
←− w1 − ηδ1(l)
w1 .. .. . . wnl
x(l−1)
←− wn − ηδn(l) l
l
T
x(l−1)
, (F.12)
T
,
nl indica en n´umero de nodos del nivel l. Agrupando la matriz de los pesos del nivel l se obtiene una representaci´on matricial: W l
←− W l − η[δ(l) ]T
x(l−1)
T
,
(F.13)
en donde: δ(l) es un vector fila, compuesto por gradientes locales de los nodos de la capa l. Hay un gradiente local para cada nodo en la red. Y como se puede observar en la figura F.1, los gradientes locales de la red neuronal se pueden calcular por medio de una red con estructura similar a la original. Se parte de la salida y se propagan los gradientes de una capa para calcular los gradiente de la capa que le antecede. El vector de los gradientes locales una capa l es: tiene:
∂J . ∂s(l)
Al seguir aplicando la regla de la cadena al gradiente local, se
∂J ∂J x(l) ∂J (l) = = Diag Γ′ [s1 ], . . . , Γ′ [s(l) nl ] , (l) (l) (l) (l) ∂s ∂x s ∂x
(F.14)
en donde: nl es el n´umero de nodos en la capa l; Diag a1 ,...,a n representa una matriz cuadrada (n elementos a1 , . . ., anl .
{
}
× n) diagonal con
La soluci´on de la derivada: ∂x∂J (l) depende de si es una capa oculta o la de salida de la red neuronal. En el caso de que sea para la salida de la red (nivel L), esta derivada es: ∂J 1 ∂e T e 1 ∂e T e ∂e = = = 2 ∂x (L) 2 ∂e ∂x L ∂x (L)
−eT .
(F.15)
∂J ∂J ∂s (l+1) = = δ (l+1) W (l+1) , ∂x (l) ∂s (l+1) ∂x (l)
(F.16)
Y para una capa oculta la derivada:
∂J ∂x (l)
es:
Resumiendo: 1. La ecuaci´on para actualizar los pesos del ´ultimo nivel de una red m´ulticapa se utiliza: L
W
L
←− W − ηDiag
nL es el n´umero de salidas de la red.
′
Γ
(L) [s1 ], . . . , Γ′ [s(L) nL ]
e x(L−1)
T
,
(F.17)
2. Y para los niveles ocultos: W l para 0 228
≤ l < L.
←− W l − ηDiag
(l)
Γ′ [s1 ], . . . , Γ′ [s(l) nl ]
– JMFA –
δ(l+1) W (l+1)
T
x(L−1)
T
,
(F.18)
Cap´ıtulo F. Algoritmo de Retropropagaci´on Utilizando el ejemplo de la red neuronal (F.4-F.9) los gradientes de esta red son: δ (3) =
−eT
(3)
Diag Γ′ [s1 ], . . . , Γ′ [s(3) n3 ] ,
(2)
(F.19)
δ (2) = δ (3) W (3) Diag Γ′ [s1 ], . . . , Γ′ [s(2) n2 ] , (1)
(F.20)
δ (1) = δ (2) W (2) Diag Γ′ [s1 ], . . . , Γ′ [s(1) n1 ] , recordar que estos vectores son tipo fila y est´ an formados p or las derivadas parciales: n´umero de nivel o capa en la red y nl el n´umero de nodos en esta capa.
(F.21) ∂J (l) ; ∂s i
i = 1, . . . , nl , siendo l el
El modelo que se forma a partir de los gradientes locales de la red neuronal se conoce como modelo se sensibilidad . Este modelo es en su estructura similar al original, se obtiene al sustituir las entradas x a la red por los gradientes locales δ, los nodos de suma por puntos de bifurcaci´on, y viceversa (ver [55]). Esta estructura es ´util en los problemas de control inverso (ver secci´on 4.3), debido a que permite usar un modelo neuronal del sistema a controlar y retropropagar a trav´es de su modelo de sensibilidad el error de control; y con este valor, determinar los gradientes locales de la red de control para actualizar sus pesos. Para lo anterior se requiere calcular el Jacobiano (para el caso de un sistema con m´as de una entrada y una salida): Como ejemplo sup´ongase un sistema con tres entradas y dos salidas este Jacobiano tiene la siguiente estructura:
∂x (L) . ∂x (0)
∂x (L) = ∂x (0)
(L)
∂x 1
(0)
(L)
∂x 1
(0)
(L)
∂x 1
(0)
∂x 1 ∂x 2 ∂x 3 (L) (L) (L) ∂x 2 ∂x 2 ∂x 2 (0)
∂x 1
(0)
∂x 2
(0)
∂x 3
.
(F.22)
Desarrollando este Jacobiano se obtiene: ∂x (L) ∂x (L) ∂s (L) = ∂x (0) ∂s (L) ∂x (0) ∂x (L) ∂s (L) ∂x (L−1) = , ∂s (L) ∂x (L−1) ∂x (0)
′
= Diag Γ
(F.24)
(L) [s1 ], . . . , Γ′ [s(L) nL ]
al proseguir derivando, el Jacobiano queda definido por: ∂x (L) (L) (L) = Diag Γ′ [s1 ], . . . , Γ′ [s(L) nL ] W ∂x (0)
(F.23)
·· · Diag
W (L)
∂x (L−1) , ∂x (0)
(1)
(F.25)
(1) Γ′ [s1 ], . . . , Γ′ [s(1) n1 ] W ,
(F.26)
se faculta utilizar los gradientes locales para evaluar el Jacobiano (F.26), con tan s´olo suponer que el modelo de sensitividad de la red neuronal tiene a 1 en sus entradas.
−
..............................................................................................................
– JMFA –
229
2 3 0
Γ (* )
Γ (* )
Γ (* )
Γ (* ) Γ ( *) (1)
(2)
=
1
=
1
(1) 1
Γ ( *)
(2) 1
=
=
(3)
(3) 1
=
Γ (* )
Γ (* )
Γ (* )
=
(2)
=
2
(1)
=
2
(2) 2
=
(1) 2
=
– J M F A –
1
Γ (* )
Γ (* )
Γ (* )
Γ (* )
-
Γ (* ) (3) 2
(3)
=
Γ (* )
2
Γ (* )
=
(2) (1) 3
=
3
(1) 3
=
(2) 3
=
=
Figura F.1: [36]. Esquema del m´ etodo de aprendizaje por retropropagaci´ on. Se presenta el caso para una red con una topolog´ıa: {3, 3, 3, 2}; es decir, que esta red neuronal tiene tres nodos en la capa de entrada (nivel cero), tres nodos en la primer y segunda
capas ocultas (nivel 1 y 2) y dos nodos en la capa de salida (nivel 3). En este diagrama se presentan las dos fases del algoritmo de retropropagaci´ on. En la primera, se propaga el vector de entrada: x0 = [x01 , x02 , x03 ]T (si se considera a la entrada independiente −1 dentro del vector entonces: x0 = [ x00 , x01 , x02 , x03 ], en donde: x00 = −1), a trav´ es de cada capa y de cada no do de la red neuronal hasta llegar al tercer nivel, en donde la salida de la red est´a definida por el vector: y = x3 = [ x31 , x32 ]T . Se utiliza el error medio inst´antaneo como funci´ on costo: J = 12 eT e, e = [ y1d − x31 , y2d − x32 ]T . Las l´ıneas discontinuas marcan la segunda fase del proceso de aprendizaje. Este T (l) consiste en calcular los gradientes locales de la red neuronal ( δn = − 12 ∂e (l)e , l = nivel, n = nodo). Por medio de la regla de la cadena ∂s n
T
T
∂s n
∂x n
(l)
T
para la diferenciaci´ on se puede expresar el gradiente local como: δn(l) = − 12 ∂e (le) = − 12 ∂e (le) ∂x(nl) = − 12 ∂e (le) Γ [s(nl) ]. El t´ermino: depende de la topolog´ıa de la red neuronal. Para la nivel 3: l
en donde: l < 3; N es el n´ umero de nodos del nivel l; a xlj 1 . −
l wij
∂e T e (3)
∂x n
∂s n
′
∂x n
= −en ; y en un nivel anterior (oculto):
∂e T e (l)
∂x n
=
N l+1 r=1
∂e T e (l)
∂x n
(l+1)
l+1 wrn δr
,
es el peso que est´ a en el nivel l, pertenece al nodo i y tiene como entrada
C a p ´ ı t u l o F . A l g o r i t m o d e R e t r o p r o p a g a c i o ´ n
Ap´ endice G
Representaci´ on de Sistemas La necesidad de describir el comportamiento de los sistemas din´ amicos ha requerido de obtener representaciones matem´ aticas que permitan su an´ alisis. Ya sea que se describan como sistemas que varian continuamente en el tiempo, o bien considerados como datos que se presentan en per´ıodos de tiempo regulares, estos modelos determinan la forma en que pueden ser manipulados lo sistemas.
G.1.
Modelos Discretos de Sistemas
La representaci´on de un sistema en forma discreta considera que responde por medio de una funci´on de la secuencia de valores pasados de la variable de salida, y, y de entrada, u; es decir: y(k) = F (y(k
− 1), . . . , y(k − n); u(k − t), . . . , u(k − m − t))
(G.1)
en donde la funci´on f () es una funci´on suave, y la variable t es un entero que representa un retardo en la entrada; los escalares n y m son posivitos y mayores de cero.
G.1.1.
Modelo DARMA
En particular un sistema lineal tiene la siguiente forma general: n
A0 y(k) =
−
m
Aj y(k
j=1
− j) +
Bj u(k
j=0
− j − t),
k
≥ 0,
(G.2)
donde en el caso de un sistema multivariable (varias entradas con varias salidas), los coeficientes Aj y Bj son matrices; y en el caso de una entrada y una salida Aj y Bj son escalares; t es un retardo en la variable de salida. En esta representaci´ on, a la parte formada por la secuencia de valores pasados de la variable de salida, y, se conoce como autoregresivo y a los componentes pasados de la entrada, u, se le llaman moving-average . Conoci´endose a los sistemas (G.2) como Deterministic Autoregrssive Moving-Average o bien DARMA. Utilizando el operador retardo q−1 en la ecuaci´on (G.2) se obtiene una representaci´on equivalente: A(q−1 )y(k) = B(q−1 )u(k),
(G.3)
en donde: A(q−1 ) = A0 + A1 q−1 + B(q−1 ) = B0 + B1 q−1 +
· · · + An q−n, · · · + Bnq−m q−t,
(G.4) (G.5)
de esta forma el sistema (G.2) es descrito por un par de polinomios de la variable q. 231
G.1. Modelos Discretos de Sistemas
Cap´ıtulo G. Representaci´on de Sistemas
Si la condiciones iniciales del sistema (G.2) son iguales a cero, se puede tomar a q−i quivalente a la variable compleja z −i . Al hacer este cambio en los polinomios A y B del sistema (G.3), se obtiene: A(z) = A0 + A1 z −1 + B(z) = B0 + B1 z −1 +
· · · + Anz−n, ·· · + Bn z−m z−t,
(G.6) (G.7)
considerando los polinomios en z, la funci´on de transferencia del sistema (G.2) es la siguiente: B(z) U (z), A(z) Y (z) = H (z)U (z). Y (z) =
(G.8) (G.9)
La funci´on de transferencia H (z) es la representaci´on del sistema (G.2) desde el punto de vista entrada-salida y es la respuesta del sistema a un impulso.
G.1.2.
Modelo Regresor
Otra forma para el modelo del sistema (G.2) y que es muy ´util para los algoritmos de estimaci´on de par´ametros, se obtiene al normalizar la ecuaci´on con respecto al par´ametro A0 . As´ı que se puede despejar de (G.2) a la variable y(k) y se agrupan los coeficientes de y(k i), i = 1, . . . , n y u(k l), l = 1, . . . , m en una matriz de par´ametros θ y en un vector se agrupan las variables y(k i) y u(i l), llamado regresor .
− −
−
−
y(k) = θT φ(k
− 1).
(G.10)
La presentaci´on del tipo (G.10) puede usarse para sistemas no lineales, basta con que sea posible separar los par´ametros y reunirlos en θ.
G.1.3.
Modelo en Variables de Estado
La descripci´on en variables de estado de un sistema din´amico considera que existen un conjunto de variables que determinan la historia pasada del sistema y la forma en que se ve afectada por la se˜nal de entrada, est´ as variables se conocen como los estados del sistema. La descripci´ on en general de un sistema en variables de estado es: x(k + 1) = f (x(k); u(k)); y(k) = h(x(k)), x(0) = x0 ,
(G.11) (G.12)
en donde las funciones f () y h() son funciones suaves y x0 , es el vector de condiciones iniciales. La representaci´on en variables de estado de un sistema lineal discreto tiene la siguiente forma: x(k + 1) = Ax(k) + Bu(k); y(k) = Cx(k), x(0) = 0,
(G.13) (G.14)
en donde los vectores: y, u y x son las variables de salida, entrada y estado, respectivamente, del sistema. Si se aplica la transformada
Z al sistema (G.13-G.14) se obtiene: zX (z) = AX (z) + BU (z); Y (z) = CX (z),
(G.15) (G.16)
resolviendo el anterior par de ecuaci´ones anteriores con respecto a Y (z): Y (z) = C (Iz A)−1 BU (z), Adj(Iz A) Y (z) = C B, Iz A
−
−
| − |
232
– JMFA –
(G.17) (G.18)
Cap´ıtulo G. Representaci´on de Sistemas
G.1. Modelos Discretos de Sistemas
en donde Adj() es la adjunta y () el determinante de la matriz Iz
| |
− A.
De la funci´on de transferencia (G.18) se pasa de una representaci´on de estado a una representaci´on entrada-salida en funci´on de la variable compleja z, es decir, de la forma (G.9). Y s´olo basta transformar el sistema en funci´on de la variable compleja z −n por el operador retardo q −n para obtener una representaci´on del tipo (G.2) Grado Relativo En un sistema representado por medio de sus ecuaciones en variables de estado al retardo que hay para que la se˜nal de entrada , u(k), afecte a su salida se le conoce como grado relativo . Utilizando el sistema (G.11,G.12) para hallar el grado relativo se inicia por calcular la derivada parcial de los adelantos de la salida con respecto a la entrada u(k), entonces: y(k) = h(x(k), u(k)) = h0 y(k + 1) = = ∂y (k + 1) = ∂u(k) y(k + 2) = = ∂y (k + 2) = ∂u(k) .. . y(k + l) = ∂y(k + l) = ∂u(k)
h(x(k + 1), u(k)) = h(f (x(k)), u(k)) h1 ∂ 1 h ; ∂u(k) h(f (x + 1)), u(k)) = h(f (f (x(k))), u(k)) h2 ∂ 2 h ; ∂u(k)
(G.19) (G.20) (G.21) (G.22) (G.23) (G.24) (G.25) (G.26) (G.27)
l
h
∂ l h. ∂u(k)
(G.28)
∂y(k+r) ∂u(k)
es diferente de cero, es el grado relativo del sistema (G.11-G.12).
El valor de r para el cual la derivada parcial:
Para un sistema lineal de la forma (G.13-G.14) el grado relativo es corresponde al valor de r para el que la siguiente expresi´ on es diferente de cero: C T Ar−1 B = 0.
(G.29)
El valor del grado relativo en un sistema lineal expresado en ecuaciones de estado (G.11-G.12), es quivalente al retardo, t, en la entrada para el sistema DARMA (G.2).
– JMFA –
233
G.1. Modelos Discretos de Sistemas
234
Cap´ıtulo G. Representaci´on de Sistemas
– JMFA –
´Indice alfab´ etico actos reflejos, 89 aprendizaje, 13 algoritmos, 15 BPTT, 19 competitivo, 20 correcci´ on por error, 15 ley hebbiana, 19 Retropropagaci´ on, 16 No supervisado, 15 reforzado, 15 supervisado, 15 aproximaci´on de funciones, 9, 43 clasificaci´ on de patrones , 9 control modelo inverso, 94 Control Adaptable, 102 Directo, 112 Indirecto, 104 Control PID., 221 control, Def., 90 Epoca de entrenamiento, 16 esquema serie-paralelo, 62 exitaci´ on persistente, 60 Filtrado, 221 filtro Butterworth, 222 filtro pasa-altos, 222 filtro pasa-bajos, 223 filtro pasa-banda, 222 Frecuencia de Nyquis, 222 frecuencia de Nyquist, 222 funci´ on de activaci´on, 4 derivada, 5 tipos, 4 generalizaci´ on, 15, 94 gradiente local, 17, 228 Heliotropismo, 89 home´ ostasis, 89 identificaci´ on, 43, 51 m´etodos m´ınimos cuadrados, 57 proyecci´on, 52
proyecci´on ortogonal, 55 RN din´amicas, 67 RNMC, 63 RNRE, 70 m´ultimodelo, 76 memoria asociativa, 9 modelado de controlador, 91 Modelo de referencia, 117 modelo de sensitividad, 19, 229 Modelo Interno, 126 Modelo inverso, 94 modelo inverso m´etodo directo, 96 modelo inveso m´etodo especializado, 97 modelo NARMA, 11 momento, 27 Motor de CC., 207 modelo discreto, 209 modelo matem´atico, 207 neurona modelo matem´atico, 2 neuronas, 1 ax´ on, 1 dentritas, 1 sinapsis, 1 soma, 1 neurotransmisor, 2 PID, 91 Prob. de Asignaci´on de cr´edito , 15 problema de Hilbert, 45 propiedad de independencia, 23 redes neuronales est´ aticas, 6 aplicaciones, 9 redes neuronales artificiales, 3 din´amicas, 9 Boltzmann, 10 Hopfield, 10 Jordan, Elman, 12 recurrentes localmente, 11 est´ aticas 235