PROYECTO FIN DE CARRPROYECTO FIN DE CARRPROYECTO FIN DE CARRPROYECTO FIN DE CARRERA:ERA:ERA:ERA:
CONTROL INVERSOCONTROL INVERSOCONTROL INVERSOCONTROL INVERSO
ADAPTATIVOADAPTATIVOADAPTATIVOADAPTATIVO
AUTOR:AUTOR:AUTOR:AUTOR:
JOSÉ JULIO HERNÁNDEZJOSÉ JULIO HERNÁNDEZJOSÉ JULIO HERNÁNDEZJOSÉ JULIO HERNÁNDEZ FERNÁNDEZFERNÁNDEZFERNÁNDEZFERNÁNDEZ
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
iii
A Indie y Gin, in memoriam
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
iv
AGRADECIMIENTOSAGRADECIMIENTOSAGRADECIMIENTOSAGRADECIMIENTOS
Llegar hasta este momento no ha resultado fácil... más bien, por momentos, se me antojó
cercano a la utopía...
Muchas cosas han cambiado desde aquel lejano momento en que pisé por primera vez la
Escuela, y muchos son los recuerdos que se acumulan. Ya han quedado atrás los malos ratos, las
horas desperdiciadas o el absurdo de ciertas situaciones... El tiempo es un bálsamo eficaz para el
alma y la memoria... de modo que sólo deseo en este instante rendir un humilde homenaje a
todos los que han hecho posible que llegara hasta aquí, a todos los que a lo largo de estos años
han formado parte del camino y del viaje...
En primer lugar quiero agradecerle a mi familia... pues... simplemente, todo... Mis padres, mi
hermana, saben que de no ser por su apoyo y su cariño nada hubiera sido posible. Fui
afortunado desde el mismo momento en que nací por teneros a mi alrededor... Conoceros y
amaros, y ser amado por vosotros, ha sido el mejor regalo de mi vida...
A Elena tengo que decirle... gracias... infinitas gracias... no por haberme dado el último
empujoncillo de mi carrera (que también :D), sino por haber aceptado unir tu vida a la mía...
En cuanto a los amigos, bueno, ellos saben quienes son y lo que han significado para mí estos
años... aunque debo hacer especial mención a Manuel Ruiz Arahal, amigo antes que profesor,
sin cuya ayuda este proyecto no existiría...
También ha habido compañeros de viaje que se han quedado en el camino, y otros que se han
alejado por avatares de la vida... Añoro a los primeros, y extraño a los segundos... no acabo de
acostumbrarme a tener que conformarme con no poder tener cerca a los seres queridos... Por
ejemplo, me gustaría poder volver a decir: ¡abuelo, mira lo que he inventado hoy!
José Julio Hernández Fernández
Sevilla, Diciembre 2005
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
v
TABLA DE CONTENIDO
PREFACIOPREFACIOPREFACIOPREFACIO............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ XIIXIIXIIXII
CAPÍTULO 1: EL CONCECAPÍTULO 1: EL CONCECAPÍTULO 1: EL CONCECAPÍTULO 1: EL CONCEPTO DE CONTROL INVERPTO DE CONTROL INVERPTO DE CONTROL INVERPTO DE CONTROL INVERSO ADAPTATIVOSO ADAPTATIVOSO ADAPTATIVOSO ADAPTATIVO............................................................................................................................................................................ 1111
1.1.1.1.1.1.1.1. INTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓN........................................................................................................................................................................................................................................................................................................................................................................................................................ 2222
1.2.1.2.1.2.1.2. CONTROL INVERSOCONTROL INVERSOCONTROL INVERSOCONTROL INVERSO.................................................................................................................................................................................................................................................................................................................................................................................................... 4444
1.3.1.3.1.3.1.3. MEMORIA DESCRIPTIVAMEMORIA DESCRIPTIVAMEMORIA DESCRIPTIVAMEMORIA DESCRIPTIVA ........................................................................................................................................................................................................................................................................................................................................................................ 9999
CAPÍTULO 2: FILTROSCAPÍTULO 2: FILTROSCAPÍTULO 2: FILTROSCAPÍTULO 2: FILTROS ADAPTATIVOSADAPTATIVOSADAPTATIVOSADAPTATIVOS ............................................................................................................................................................................................................................................................................................................................................ 11111111
2.1.2.1.2.1.2.1. FILTROS DE WIENERFILTROS DE WIENERFILTROS DE WIENERFILTROS DE WIENER ........................................................................................................................................................................................................................................................................................................................................................................................ 12121212
2.2.2.2.2.2.2.2. FILTROS LMS ADAPTATIVOSFILTROS LMS ADAPTATIVOSFILTROS LMS ADAPTATIVOSFILTROS LMS ADAPTATIVOS ........................................................................................................................................................................................................................................................................................................................................ 15151515
2.3.2.3.2.3.2.3. APLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOSAPLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOSAPLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOSAPLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOS ................................................................................................................................................................................................ 19191919
CAPÍTULO 3: MODELADOCAPÍTULO 3: MODELADOCAPÍTULO 3: MODELADOCAPÍTULO 3: MODELADO ADAPTATIVOADAPTATIVOADAPTATIVOADAPTATIVO ........................................................................................................................................................................................................................................................................................................................ 24242424
3.1.3.1.3.1.3.1. INTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓN................................................................................................................................................................................................................................................................................................................................................................................................................ 25252525
3.2.3.2.3.2.3.2. DESARROLLO DEL MODELO IDEALIZADODESARROLLO DEL MODELO IDEALIZADODESARROLLO DEL MODELO IDEALIZADODESARROLLO DEL MODELO IDEALIZADO ............................................................................................................................................................................................................................................................ 28282828
3.3.3.3.3.3.3.3. DESAJUSTE DEBIDO AL USO DE MODELOS FIRDESAJUSTE DEBIDO AL USO DE MODELOS FIRDESAJUSTE DEBIDO AL USO DE MODELOS FIRDESAJUSTE DEBIDO AL USO DE MODELOS FIR................................................................................................................................................................................................................................ 30303030
3.4.3.4.3.4.3.4. DESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO ADECUADA: USO DE UNA SEÑALDESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO ADECUADA: USO DE UNA SEÑALDESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO ADECUADA: USO DE UNA SEÑALDESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO ADECUADA: USO DE UNA SEÑAL
DE EXCITACIÓNDE EXCITACIÓNDE EXCITACIÓNDE EXCITACIÓN........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 32323232
3.5.3.5.3.5.3.5. SIMULACIONES DE MODELADO ADAPTATIVOSIMULACIONES DE MODELADO ADAPTATIVOSIMULACIONES DE MODELADO ADAPTATIVOSIMULACIONES DE MODELADO ADAPTATIVO................................................................................................................................................................................................................................ 36363636
CAPÍTULO 4: MODELADOCAPÍTULO 4: MODELADOCAPÍTULO 4: MODELADOCAPÍTULO 4: MODELADO DE PLANTAS INVERSASDE PLANTAS INVERSASDE PLANTAS INVERSASDE PLANTAS INVERSAS ................................................................................................................................................................................................................................................................ 53535353
4.1.4.1.4.1.4.1. INTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓN................................................................................................................................................................................................................................................................................................................................................................................................................ 54545454
4.2.4.2.4.2.4.2. INVERSAS DE PLANTAS DE FASE MÍNIMAINVERSAS DE PLANTAS DE FASE MÍNIMAINVERSAS DE PLANTAS DE FASE MÍNIMAINVERSAS DE PLANTAS DE FASE MÍNIMA ............................................................................................................................................................................................................................................................ 55555555
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
vi
4.3.4.3.4.3.4.3. INVERSAS DE PLANTAS DE FASE NO MÍNIMINVERSAS DE PLANTAS DE FASE NO MÍNIMINVERSAS DE PLANTAS DE FASE NO MÍNIMINVERSAS DE PLANTAS DE FASE NO MÍNIMAAAA .................................................................................................................................................................................................................................... 57575757
4.4.4.4.4.4.4.4. INVERSAS DE MODELOS DE REFERENCIAINVERSAS DE MODELOS DE REFERENCIAINVERSAS DE MODELOS DE REFERENCIAINVERSAS DE MODELOS DE REFERENCIA................................................................................................................................................................................................................................................................ 62626262
4.5.4.5.4.5.4.5. INVERSAS DE PLANTAS CON PERTURBACIONESINVERSAS DE PLANTAS CON PERTURBACIONESINVERSAS DE PLANTAS CON PERTURBACIONESINVERSAS DE PLANTAS CON PERTURBACIONES........................................................................................................................................................................................................................ 65656565
CAPÍTULO 5: CONTROLCAPÍTULO 5: CONTROLCAPÍTULO 5: CONTROLCAPÍTULO 5: CONTROL INVERSO ADAPTATIVOINVERSO ADAPTATIVOINVERSO ADAPTATIVOINVERSO ADAPTATIVO................................................................................................................................................................................................................................................................................ 69696969
5.1.5.1.5.1.5.1. INTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓN................................................................................................................................................................................................................................................................................................................................................................................................................ 70707070
5.2.5.2.5.2.5.2. ANÁLISISANÁLISISANÁLISISANÁLISIS ........................................................................................................................................................................................................................................................................................................................................................................................................................................................ 73737373
5.3.5.3.5.3.5.3. SIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO ADAPTATIVO ................................................................................................ 77777777
5.3.1 Simulación sin perturbaciones ...................................................................................77
5.3.2 Simulación con perturbaciones en el entrenamiento ..................................................82
5.3.3 Simulación con perturbaciones en el seguimiento......................................................86
5.3.4 Simulación con perturbaciones tanto en el entrenamiento como en el seguimiento de
referencias ..............................................................................................................................90
CAPÍTULO 6: CONCLUSICAPÍTULO 6: CONCLUSICAPÍTULO 6: CONCLUSICAPÍTULO 6: CONCLUSIONESONESONESONES .................................................................................................................................................................................................................................................................................................................................................................................... 94949494
CAPÍTULO 7: APÉNDICECAPÍTULO 7: APÉNDICECAPÍTULO 7: APÉNDICECAPÍTULO 7: APÉNDICE ........................................................................................................................................................................................................................................................................................................................................................................................................................ 96969696
7.1.7.1.7.1.7.1. LISTADOS DE LOS SCRIPTS DE LAS SIMULACIONES REALIZADASLISTADOS DE LOS SCRIPTS DE LAS SIMULACIONES REALIZADASLISTADOS DE LOS SCRIPTS DE LAS SIMULACIONES REALIZADASLISTADOS DE LOS SCRIPTS DE LAS SIMULACIONES REALIZADAS .................................................................................................................... 97979797
7.1.1 Capítulo 3.................................................................................................................97
7.1.2 Capítulo 4...............................................................................................................112
7.1.3 Capítulo 5...............................................................................................................117
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
vii
LISTA DE TABLAS Y FIGURAS
FIGURA 1: SISTEMA CONVENCIONAL DE CONTROL POR REALIMENTACIÓN HACIA ATRÁS ..................................4
FIGURA 2: CONCEPTO BÁSICO DE CONTROL INVERSO ADAPTATIVO ............................................................5
FIGURA 3: CONTROL INVERSO ADAPTATIVO CON MODELO DE REFERENCIA ...................................................6
FIGURA 4: CANCELACIÓN DEL RUIDO Y LAS PERTURBACIONES DE LA PLANTA ................................................7
FIGURA 5: SISTEMA DE CONTROL INVERSO CON CONTROL DE REFERENCIA Y CANCELACIÓN DEL RUIDO................8
FIGURA 6: FILTRO DE WIENER DIGITAL ..............................................................................................12
FIGURA 7: MODELANDO UN SISTEMA DESCONOCIDO MEDIANTE UN FILTRO DISCRETO ADAPTATIVO..................15
FIGURA 8: COMBINADOR ADAPTATIVO LINEAL ....................................................................................16
FIGURA 9: SEPARACIÓN DE SEÑAL Y RUIDO: (A) CLÁSICA; (B) CON FILTRO ADAPTATIVO ................................20
FIGURA 10: CANCELACIÓN DE LA INTERFERENCIA DE 60 HZ EN ELECTROCARDIOGRAMAS .............................22
FIGURA 11: RESULTADOS DE LA CANCELACIÓN DE RUIDO EN EL EXPERIMENTO: (A) ENTRADA PRIMARIA, (B)
ENTRADA DE REFERENCIA, (C) SALIDA DE LA CANCELACIÓN DE RUIDO.......................................................22
FIGURA 12: CANCELACIÓN DEL LATIDO DE LA MADRE EN EL ELECTROCARDIOGRAMA DEL FETO.......................23
FIGURA 13: RESULTADOS DEL ELECTROCARDIOGRAMA DEL FETO: (A) ENTRADA DE REFERENCIA (CABLE DEL PECHO),
(B) ENTRADA PRIMARIA (CABLE DEL ABDOMEN), (C) SALIDA DEL CANCELADOR DE RUIDO...............................23
FIGURA 14: MODELO ADAPTATIVO DE UNA PLANTA RUIDOSA ................................................................25
FIGURA 15: USO DE UNA SEÑAL DE EXCITACIÓN EN EL PROCESO DE MODELADO (ESQUEMA A).......................33
FIGURA 16: USO DE UNA SEÑAL DE EXCITACIÓN EN EL PROCESO DE MODELADO (ESQUEMA B) .......................33
FIGURA 17: USO DE UNA SEÑAL DE EXCITACIÓN EN EL PROCESO DE MODELADO (ESQUEMA C).......................34
FIGURA 18: USO DE UNA SEÑAL DE EXCITACIÓN EN EL PROCESO DE MODELADO (ESQUEMA C, ALTERNATIVO)....35
FIGURA 19: ESTABILIZACIÓN DE UNA PLANTA INESTABLE DE FASE NO MÍNIMA.............................................36
FIGURA 20: LUGAR DE LAS RAÍCES DEL LAZO DE ESTABILIZACIÓN DE LA PLANTA (K=21)................................37
FIGURA 21: LUGAR DE LAS RAÍCES DEL LAZO DE ESTABILIZACIÓN DE LA PLANTA (K=24)................................37
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
viii
FIGURA 22: MODELADO ADAPTATIVO DE LA PLANTA ESTABILIZADA .........................................................38
FIGURA 23: RESPUESTA IMPULSIVA DE LA PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=21) ..39
FIGURA 24: ENTRENAMIENTO DEL MODELO ADAPTATIVO DE LA PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y
DISCRETIZADA (K=21) ..................................................................................................................40
FIGURA 25: EVOLUCIÓN DEL ERROR (SEMILOGY) EN EL ENTRENAMIENTO DEL MODELO ADAPTATIVO DE LA PLANTA
DE FASE NO MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=21) ..................................................................40
FIGURA 26: EVOLUCIÓN DEL ERROR EN EL ENTRENAMIENTO DEL MODELO ADAPTATIVO DE LA PLANTA DE FASE NO
MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=21)..................................................................................41
FIGURA 27: EVOLUCIÓN DEL CUADRADO DEL ERROR EN EL ENTRENAMIENTO DEL MODELO ADAPTATIVO DE LA
PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=21) .......................................................41
FIGURA 28: RESPUESTA IMPULSIVA DEL MODELO ADAPTATIVO DE LA PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y
DISCRETIZADA (K=21) ..................................................................................................................42
FIGURA 29: DIFERENCIA ENTRE LA RESPUESTA IMPULSIVA DE LA PLANTA Y LA DE SU MODELO ADAPTATIVO (K=21)
...............................................................................................................................................43
FIGURA 30: DIFERENCIA CUADRÁTICA ENTRE LA RESPUESTA IMPULSIVA DE LA PLANTA Y LA DE SU MODELO
ADAPTATIVO (K=21) ....................................................................................................................43
FIGURA 31: RESPUESTA IMPULSIVA DE LA PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=24) ..44
FIGURA 32: ENTRENAMIENTO DEL MODELO ADAPTATIVO DE LA PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y
DISCRETIZADA (K=24) ..................................................................................................................45
FIGURA 33: EVOLUCIÓN DEL ERROR (SEMILOGY) EN EL ENTRENAMIENTO DEL MODELO ADAPTATIVO DE LA PLANTA
DE FASE NO MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=24) ..................................................................45
FIGURA 34: EVOLUCIÓN DEL ERROR EN EL ENTRENAMIENTO DEL MODELO ADAPTATIVO DE LA PLANTA DE FASE NO
MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=24)..................................................................................46
FIGURA 35: EVOLUCIÓN DEL CUADRADO DEL ERROR EN EL ENTRENAMIENTO DEL MODELO ADAPTATIVO DE LA
PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=24) .......................................................46
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
ix
FIGURA 36: RESPUESTA IMPULSIVA DEL MODELO ADAPTATIVO DE LA PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y
DISCRETIZADA (K=24) ..................................................................................................................47
FIGURA 37: DIFERENCIA ENTRE LA RESPUESTA IMPULSIVA DE LA PLANTA Y LA DE SU MODELO ADAPTATIVO (K=24)
...............................................................................................................................................48
FIGURA 38: DIFERENCIA CUADRÁTICA ENTRE LA RESPUESTA IMPULSIVA DE LA PLANTA Y LA DE SU MODELO
ADAPTATIVO (K=24) ....................................................................................................................48
FIGURA 39: RESPUESTA IMPULSIVA DEL MODELO ADAPTATIVO DE LA PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y
DISCRETIZADA, SOMETIDA A PERTURBACIONES (K=24)..........................................................................49
FIGURA 40: MODELADO DE LA PLANTA EMPLEANDO EL ESQUEMA C........................................................50
FIGURA 41: RESPUESTA IMPULSIVA DEL MODELO ADAPTATIVO DE LA PLANTA DE FASE NO MÍNIMA, ESTABILIZADA Y
DISCRETIZADA (K=21), OBTENIDO MEDIANTE EL ESQUEMA C .................................................................51
FIGURA 42: RESPUESTA IMPULSIVA, SOMETIDA A PERTURBACIONES, DEL MODELO ADAPTATIVO DE LA PLANTA DE
FASE NO MÍNIMA, ESTABILIZADA Y DISCRETIZADA (K=21), OBTENIDO MEDIANTE EL ESQUEMA C .....................52
FIGURA 43: FORMANDO LA INVERSA DE UNA PLANTA...........................................................................55
FIGURA 44: EJEMPLO DE DISEÑO DE SHANNON-BODE DE UNA PLANTA INVERSA CAUSAL DE WIENER................58
FIGURA 45: FORMANDO UNA PLANTA INVERSA RETRASADA ...................................................................60
FIGURA 46: BUSCANDO UNA PLANTA INVERSA CON MODELO DE REFERENCIA.............................................62
FIGURA 47: RESPUESTA AL ESCALÓN DE LA PLANTA USADA EN EL CONTROL CON MODELO DE REFERENCIA.........63
FIGURA 48: RESPUESTA DE LA PLANTA CONTROLADA (*), SUPERPUESTA SOBRE LA RESPUESTA AL ESCALÓN
DESEADA DEL MODELO DE REFERENCIA, ILUSTRANDO LA CORRECTA ADAPTACIÓN ........................................63
FIGURA 49: MÉTODO INCORRECTO DE MODELADO INVERSO DE UNA PLANTA CON PERTURBACIONES................65
FIGURA 50: MÉTODO ADECUADO PARA EL MODELADO INVERSO DE UNA PLANTA CON PERTURBACIONES ..........66
FIGURA 51: PROCESO OFFLINE PARA EL MODELADO INVERSO DE UNA PLANTA CON PERTURBACIONES ...............68
FIGURA 52: UN SISTEMA DE CONTROL ADAPTATIVO QUE TRABAJA BIEN, PERO ADAPTA LENTAMENTE ...............70
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
x
FIGURA 53: SISTEMA DE CONTROL INVERSO ADAPTATIVO. TRABAJA BIEN SÓLO CUANDO EL RUIDO DE LA PLANTA ES
BAJO ........................................................................................................................................71
FIGURA 54: SISTEMA DE CONTROL INVERSO CON MODELADO INVERSO ‘OFFLINE’.........................................72
FIGURA 55: SISTEMA DE CONTROL INVERSO ADAPTATIVO CON MODELO DE REFERENCIA................................74
FIGURA 56: SIMULACIÓN #1: PROCESO DE ADAPTACIÓN DEL MODELO DE LA PLANTA ..................................78
FIGURA 57: SIMULACIÓN #1: EVOLUCIÓN DE LOS PESOS DE WIENER DEL MODELO DEL CONTROLADOR INVERSO.79
FIGURA 58: SIMULACIÓN #1: ÚLTIMA ITERACIÓN DEL PROCESO OFFLINE ...................................................79
FIGURA 59: SIMULACIÓN #1: PRUEBA DE SEGUIMIENTO DE REFERENCIAS CON EL CONTROLADOR INVERSO
OBTENIDO..................................................................................................................................80
FIGURA 60: SIMULACIÓN #1: PRUEBA DE SEGUIMIENTO DE REFERENCIAS (DETALLE #1) ................................81
FIGURA 61: SIMULACIÓN #1: PRUEBA DE SEGUIMIENTO DE REFERENCIAS (DETALLE #1) ................................81
FIGURA 62: SIMULACIÓN #2: PROCESO DE ADAPTACIÓN DEL MODELO DE LA PLANTA ..................................82
FIGURA 63: SIMULACIÓN #2: EVOLUCIÓN DE LOS PESOS DE WIENER DEL MODELO DEL CONTROLADOR INVERSO.83
FIGURA 64: SIMULACIÓN #2: ÚLTIMA ITERACIÓN DEL PROCESO OFFLINE ...................................................83
FIGURA 65: SIMULACIÓN #2: PRUEBA DE SEGUIMIENTO DE REFERENCIAS CON EL CONTROLADOR INVERSO
OBTENIDO..................................................................................................................................84
FIGURA 66: SIMULACIÓN #2: PRUEBA DE SEGUIMIENTO DE REFERENCIAS (DETALLE #1) ................................85
FIGURA 67: SIMULACIÓN #2: PRUEBA DE SEGUIMIENTO DE REFERENCIAS (DETALLE #2) ................................85
FIGURA 68: SIMULACIÓN #3: PROCESO DE ADAPTACIÓN DEL MODELO DE LA PLANTA ..................................86
FIGURA 69: SIMULACIÓN #3: EVOLUCIÓN DE LOS PESOS DE WIENER DEL MODELO DEL CONTROLADOR INVERSO.87
FIGURA 70: SIMULACIÓN #3: ÚLTIMA ITERACIÓN DEL PROCESO OFFLINE ...................................................87
FIGURA 71: SIMULACIÓN #3: PRUEBA DE SEGUIMIENTO DE REFERENCIAS CON EL CONTROLADOR INVERSO
OBTENIDO..................................................................................................................................88
FIGURA 72: SIMULACIÓN #3: PRUEBA DE SEGUIMIENTO DE REFERENCIAS (DETALLE #1) ................................89
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
xi
FIGURA 73: SIMULACIÓN #3: PRUEBA DE SEGUIMIENTO DE REFERENCIAS (DETALLE #2) ................................89
FIGURA 74: SIMULACIÓN #4: PROCESO DE ADAPTACIÓN DEL MODELO DE LA PLANTA ..................................90
FIGURA 75: SIMULACIÓN #4: EVOLUCIÓN DE LOS PESOS DE WIENER DEL MODELO DEL CONTROLADOR INVERSO.91
FIGURA 76: SIMULACIÓN #4: ÚLTIMA ITERACIÓN DEL PROCESO OFFLINE ...................................................91
FIGURA 77: SIMULACIÓN #4: PRUEBA DE SEGUIMIENTO DE REFERENCIAS CON EL CONTROLADOR INVERSO
OBTENIDO..................................................................................................................................92
FIGURA 78: SIMULACIÓN #4: PRUEBA DE SEGUIMIENTO DE REFERENCIAS (DETALLE #1) ................................93
FIGURA 79: SIMULACIÓN #4: PRUEBA DE SEGUIMIENTO DE REFERENCIAS (DETALLE #2) ................................93
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
xii
Prefacio
El control inverso adaptativo es una nueva aproximación al diseño de sistemas de control. Tras
un desarrollo de más de veinte años en el laboratorio del Dr. Bernard Widrow en la Universidad
de Stanford, la idea que ha ido evolucionando propone el control en lazo abierto de la dinámica
de un sistema mediante el uso de un controlador en serie cuya función de transferencia sea la
inversa de la planta que se desea controlar. El controlador será adaptativo, y se auto-regulará
para optimizar la dinámica de la respuesta de la planta y su controlador. Se emplea
realimentación, pero sólo en el propio proceso adaptativo. Al contrario de lo que ocurre en el
control tradicional, el control inverso adaptativo no emplea la realimentación para controlar
señales que fluyen por el sistema, sino para controlar parámetros variables del mismo. Sin
embargo, ambos emplean la realimentación para minimizar el error a la salida de la planta.
Dado que los cambios en los parámetros de la planta tienen lugar mucho más lentamente que
los cambios en las señales que circulan por él, la realimentación en un sistema de control inverso
adaptativo puede actuar de forma relativamente lenta, aunque suficientemente rápido como
para manipular los cambios en los parámetros de la planta. El resultado es que la estabilización
de un sistema y su regulación mediante control inverso adaptativo son, en muchos casos, más
sencillos de conseguir que con controles por realimentación convencionales.
La consecución de determinadas respuestas dinámicas es a menudo más fácil de obtener
empleando técnicas de control inverso adaptativo; incluso se pueden conseguir repuestas
extrañas, si se desea. Por ejemplo, una planta estable oscilatoria puede ser controlada de modo
que la respuesta dinámica del sistema ante un escalón de entrada sea un escalón perfecto, con
una subida brusca y sin sobredisparo. Este tipo de respuesta es complicado obtenerlo con
medios convencionales.
El control en lazo abierto de la dinámica de una planta, sin embargo, no ayuda a limitar o a
atenuar los efectos de las perturbaciones internas de la planta. Si la planta está sujeta a
perturbaciones se pueden emplear, para minimizar sus efectos, técnicas de cancelación
adaptativa de ruido. Para este escenario se ha desarrollado un tipo especial de configuración de
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
xiii
realimentación, que cancela las perturbaciones de la planta sin afectar su dinámica. De esta
manera, el control de la respuesta de la planta y el de sus perturbaciones se convierten en dos
procesos separados, y la optimización de uno no compromete la optimización del otro.
El presente proyecto fin de carrera no alcanza, por supuesto, a tratar todos los posibles
problemas de control. Sí que se expondrá la problemática que se debe afrontar al aplicar el
diseño y análisis de sistemas de control adaptativo. El control inverso adaptativo trabaja de forma
natural para proveer un modelo de referencia de control para una amplia variedad de tipos de
planta.
Capítulo 1: EL CONCEPTO DE CONTROL
INVERSO ADAPTATIVO
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
2
1.1. INTRODUCCIÓN
Las técnicas de filtrado adaptativo han sido aplicadas con éxito a los sistemas de antenas
adaptativas, a problemas de comunicaciones como ecualizaciones de canal y cancelaciones de
eco en telefonía a larga distancia, a cancelaciones de interferencias, a estimación espectral, a
análisis y síntesis de voz, y a muchos otros problemas de procesos de señal. El propósito del
presente estudio es mostrar cómo los algoritmos de filtrado adaptativo pueden ser usados para
lograr el control adaptativo de sistemas desconocidos y que posiblemente varíen en el tiempo.
El sistema que va a ser controlado, generalmente llamado la planta, puede ser ruidoso, esto es,
sujeto a perturbaciones, y además de un tipo desconocido. La planta y su perturbación interna
pueden ser variables en el tiempo de un modo desconocido. En algunos casos, la planta podría
ser inestable. El sistema de control adaptativo para dichas plantas podría tener ventajas sobre
sistemas fijos, ya que los parámetros de los sistemas adaptativos pueden ser ajustados a los
requerimientos, desconocidos y variables, de la planta que va a ser controlada. La adaptatividad
encuentra un área natural de aplicación en el campo de control.
En este campo ha habido dos líneas de trabajo, el control adaptativo y el proceso de señal
adaptativa, y se han desarrollado casi independientemente. En la parte de control se ha
estudiado el control adaptativo usando una variable de estado, enganchada por realimentación
a través de parámetros variables de redes para regular plantas desconocidas y controlar su
perturbación. En la de señal han estado trabajando en problemas que implican en su mayoría
pesos adaptativos de filtros transversales mediante el método del gradiente, y empleando el
resultado de los filtros adaptativos a sistemas sin realimentación.
La meta de este trabajo no es acortar la distancia entre las dos líneas de trabajo, sino atacar
ciertos problemas del control adaptativo desde un punto de vista alternativo, usando la
metodología del proceso de señal adaptativo. El resultado es lo que se denomina control inversocontrol inversocontrol inversocontrol inverso
adaptatiadaptatiadaptatiadaptativovovovo.
Se comenzará con una discusión del modelo directo (o identificador) de las características de una
planta desconocida usando los métodos del filtrado adaptativo simple. Luego se mostrará cómo
métodos similares, con algunas modificaciones en una configuración diferente, pueden ser
usados para el modelo inverso (ecualizador o deconvolución). Los modelos inversos de las
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
3
plantas pueden ser usados para controlar plantas dinámicas. Después se podrá ver cómo ambos,
el modelo directo y el inverso pueden ser usados en el mismo proceso adaptativo para minimizar
los efectos de la perturbación de la planta. En este desarrollo se asumirá que la planta es
observable y controlable, que puede ser representada en términos de una función de
transferencia entrada-salida, y que la planta es estable (si es inestable, se habrá estabilizado
previamente usando realimentación). La planta podrá ser de fase mínima o no.
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO CONTROL INVERSO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
4
1.2. CONTROL INVERSO
Un sistema de control convencional, como el de la Figura 1, usa la realimentación, midiendo la
respuesta de la planta que va a ser controlada, comparando esta respuesta con una respuesta
deseada, y usando la diferencia para excitar a un controlador cuya salida, que es la entrada de la
planta, haga que la salida de la planta siga más cerca a la señal deseada.
-
+Controlador Planta
EntradaplantaΣ
Comandode entrada
(señal deseada)Salida plantaError
Figura 1: Sistema convencional de control por realimentación hacia atrás
El objetivo de este sistema es que la salida de la planta siga a la señal de entrada. Cualquier
diferencia entre la salida de la planta y la señal de entrada se recoge en la señal de error, que es
medida por el controlador, y es filtrada y amplificada por éste para conducir a la planta de forma
que minimice este error.
El uso de la realimentación debe ser hecho con mucho cuidado para prevenir la inestabilidad y
lograr una respuesta dinámica satisfactoria. Cuando las características de la planta son variables
en el tiempo o no estacionarias, es a veces necesario diseñar el controlador para que varíe con la
planta. Un objetivo común de hacer esto suele ser minimizar el error cuadrático medio, aunque
alcanzar este objetivo generalmente es difícil.
Una solución podría ser parametrizar el controlador y variar sus parámetros para minimizar
directamente el error cuadrático medio. La dificultad con este enfoque es que, sin tener en
cuenta cómo se parametriza el controlador, el error cuadrático medio en función de los
parámetros podría ser una función que no tuviera un único extremo.
El objetivo del presente trabajo es tomar una alternativa en el tema del control adaptativo. El
enfoque que va a ser desarrollado, el control inverso adaptativo, en algunos sentidos implica un
control en lazo abierto, y es bastante diferente del control por realimentación de la Figura 1. Se
intentará desarrollar una forma del control inverso adaptativo que sea simple, robusta y precisa.
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO CONTROL INVERSO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
5
Con algunos conocimientos de filtros adaptativos, el control inverso adaptativo es fácil de
entender y usar en la práctica.
La idea básica del control adaptativo es conducir a la planta con una señal de un controlador
cuya función de transferencia es la inversa de la planta misma. El objetivo de este sistema es que
la salida de la planta siga al comando de entrada. Como la planta es generalmente desconocida,
es necesario adaptar o ajustar los parámetros del controlador para crear una planta inversa
verdadera. Una señal de error, la diferencia entre la salida de la planta y el comando de entrada,
es usada por el algoritmo adaptativo para ajustar los parámetros del controlador y minimizar el
error cuadrático medio.
Controlador PlantaEntradaplantaComando
de entrada Salida planta
Algoritmoadaptativo
Error
+
-
Σ
Figura 2: Concepto básico de control inverso adaptativo
Haciendo referencia a la Figura 2, el controlador en este diagrama puede ser visto como un filtro
con una entrada y una salida. Este controlador tiene parámetros ajustables. El control de estos
parámetros es hecho por medio de un algoritmo adaptativo, el cual es conducido a través de
una señal de error.
Comparando los dos esquemas mostrados, la minimización del error cuadrático medio se realiza
en el primer caso mediante el empleo de la señal de error directamente en el lazo de
realimentación, para conformar la señal de entrada; mientras que en el segundo caso la señal de
error se emplea en un proceso de realimentación en el que se ajustan los parámetros del
controlador, sin que la señal de error se envíe hacia atrás para modificar directamente la señal de
entrada. En el primer caso tenemos control por realimentación (feedback), y en el segundo caso
control por alimentación hacia delante (feedforward). En ambos casos se emplea la
realimentación para asegurar una correcta respuesta del sistema.
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO CONTROL INVERSO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
6
Si el control adaptativo de la Figura 2 se realiza para minimizar el error, el controlador se
convierte en la inversa de la planta. La cascada del controlador y la planta tendrían, de este
modo, una función de transferencia combinada de una ganancia unidad.
Se asume que la planta es lineal y que varía lentamente, de modo que es estadísticamente
estacionaria. Asimismo se asume que el controlador converge y es también lineal y
estadísticamente estacionario.
A veces, lo que se quiere no es seguir exactamente a la señal de entrada, sino una versión más
relajada de ésta. Para ello se añade el modelo de referencia, así la señal de salida de la planta
debe asemejarse a la señal de salida del modelo de referencia. Un diagrama de bloques de esta
situación se muestra en la Figura 3
Controlador PlantaEntradaplantaComando
de entrada Salida planta
Algoritmoadaptativo
Error
+
-
Σ
Modelo dereferencia
Figura 3: Control inverso adaptativo con modelo de referencia
El ruido y las perturbaciones de la planta son un problema en el desarrollo del control inverso
adaptativo. La falta de realimentación de la salida a la entrada permite que haya un ruido interno
a la salida de la planta. Se han desarrollado varios esquemas para la cancelación de este ruido. El
esquema básico aparece en la Figura 4.
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO CONTROL INVERSO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
7
+PlantaComando
de entrada Salida planta
Modeloplanta
+
-
Σ
Modelo deplantainverso
-
++
Σ
Ruido sensor
Σ
Perturbacionesde la planta
Ruido y perturbaciónde la planta
filtrados para su cancelación
Ruido y perturbacióna la salida
de la planta
Figura 4: Cancelación del ruido y las perturbaciones de la planta
En control, el ruido de la planta se suele representar como un ruido aditivo a la entrada de la
planta. El sensor con el que se mide la salida también podría ser ruidoso, y se representa como
un ruido aditivo a la salida de la planta. En la Figura 4 el ruido de la planta y del sensor están
separados de la respuesta dinámica de la planta. La entrada de la planta conduce a ésta y a su
modelo (que está libre de ruido). La diferencia entre la salida de la planta y la salida de su
modelo es que el ruido aparece sólo a la salida de la planta. La diferencia entre estas dos salidas
da sólo la componente de ruido del sistema, que sirve como entrada al modelo inverso para
poder eliminar este ruido de la señal de entrada.
Un sistema de control inverso que une los conceptos de modelo de referencia de la Figura 3 y
cancelación de ruido de la Figura 4, se muestra en la Figura 5. En la práctica, un sistema de este
estilo necesitará procesos adaptativos separados para obtener el modelo de la planta, el modelo
inverso de la planta y el controlador.
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO CONTROL INVERSO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
8
+ControladorComando
de entrada
Algoritmoadaptativo
+
-
Σ
Modelo dereferencia
Planta Salida planta
Modeloplanta
+
-
Σ
Modelo deplantainverso
-
++
Σ
Ruido sensor
Σ
Ruidode laplanta
Error
Figura 5: Sistema de control inverso con control de referencia y cancelación del ruido
La dinámica de la planta es alterada debido a la realimentación para el control del ruido, por lo
que en general hará falta una solución de compromiso para obtener una buena respuesta
dinámica y un buen control del ruido al mismo tiempo.
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO MEMORIA DESCRIPTIVA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
9
1.3. MEMORIA DESCRIPTIVA
A continuación se describe el contenido del resto de capítulos del proyecto:
• Capítulo 2: Filtros adaptativos.
Dentro de este capítulo se presentan los fundamentos de los filtros de Wiener y los filtros
LMS adaptativos. Los filtros de Wiener constituyen los mejores filtros de mínimos
cuadrados, siendo muy útiles en predicción, interpolación y filtrado de señal y de ruido.
Los filtros LMS adaptativos constituyen la base esencial para el control inverso adaptativo,
por lo que se revisará con cierto detalle su desarrollo teórico.
• Capítulo 3: Modelado adaptativo.
Se analizará el desallorro de métodos para la obtención adaptativa del modelo directo de
una planta, así como sus posibles fuentes de error, tales como los efectos del ruido en los
pesos, el uso de una señal de entrada inadecuada, el ruido de la planta, etc.
• Capítulo 4: Modelado de plantas inversas.
El modelo directo de una planta, obtenido en el capítulo anterior, tiene una función de
transferencia similar a la de la planta que está siendo modelada. El modelo inverso tiene
una función de transferencia similar a la recíproca de la función de transferencia de la
planta. Obtener una función de transferencia inversa estable es fácil cuando se parte de
una planta de fase mínima. Hacerlo desde una planta de fase no mínima requiere que la
inversa sea retrasada para obtener una solución óptima. Se verá la resolución de este
problema, así como de situaciones en las que se empleen modelos de referencia, o
plantas sujetas a perturbaciones.
• Capítulo 5: Control inverso adaptativo.
En este capítulo se presentarán los modelos propuestos para conjugar las piezas
obtenidas en los capítulos anteriores, para diseñar un sistema de control inverso
adaptativo, tanto para plantas libres de ruido como sujetas a perturbaciones. Como
aplicación práctica del sistema de control diseñado, se ofrecen los resultados de las
EL CONCEPTO DE CONTROL INVERSO ADAPTATIVO MEMORIA DESCRIPTIVA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
10
simulación del seguimiento de una señal de referencia en una determinada planta,
sometida a diversas condiciones de contorno.
• Capítulo 6: Conclusiones.
Por último, se presentarán las conclusiones a las que se ha llegado después del estudio de
este método de control.
Adicionalmente, a modo de apéndice, se adjunta al final de este proyecto el listado de todas las
simulaciones empleadas en su desarrollo.
Capítulo 2: FILTROS ADAPTATIVOS
FILTROS ADAPTATIVOS FILTROS DE WIENER
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
12
2.1. FILTROS DE WIENER
Los filtros de Wiener son los mejores filtros lineales de mínimos cuadrados que pueden ser usan
para predicción, estimación, interpolación, filtrado de señal y ruido, etc. Para diseñarlos se
necesita tener un conocimiento previo apropiado de las propiedades estadísticas de la señal de
entrada. El problema reside en que este conocimiento generalmente no se puede obtener. En su
lugar se usan filtros adaptativos, que hacen uso de los datos de entrada para aprender los datos
estadísticos requeridos. En cualquier caso, la teoría de Wiener es importante para el presente
estudio porque los filtros adaptativos que serán empleados convergen asintóticamente (en
media) en las soluciones de Wiener.
Obsérvese el esquema de la Figura 6:
Entrada fk h*k = ?
Filtro digital
Salida gk
+
-ΣError ek
Respuesta deseada dk
Figura 6: Filtro de Wiener digital
El filtro digital tiene una señal de entrada y produce una señal de salida. El filtro será un filtro de
Wiener si su respuesta impulsiva se elige para minimizar el error cuadrático medio. El error se
define como la diferencia entre la salida del filtro y la respuesta deseada:
kkk gde −=
Cuando se trabaja con filtros de Wiener, generalmente la respuesta deseada existe sólo de
forma conceptual. Las propiedades estadísticas de la respuesta deseada y sus relaciones
FILTROS ADAPTATIVOS FILTROS DE WIENER
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
13
estadísticas con la señal de entrada al filtro se asume que son conocidas por el diseñador. La
situación es bastante diferente cuando se trata con filtros adaptativos. En éstos, la respuesta
deseada existe como una señal que puede ser obtenida como entrada en tiempo real al
algoritmo adaptativo, para conseguir aprender y adaptarse. Los filtros de Wiener no aprenden.
Su diseño es fijo, basado en un primer conocimiento estadístico.
La respuesta impulsiva del filtro de Wiener se obtiene encontrando una expresión para el error
cuadrático medio y minimizándola con respecto a la respuesta impulsiva. Elevando al cuadrado
en ambas partes, se obtiene:
kkkkk gdgde 2222 −+=
Sabiendo que:
∑∞
=−=
0lllkk hfg
se puede sustituir:
∑ ∑ ∑∞
−∞=
∞
−∞=
∞
−∞=−−− −+=
l m lklklklklkk dfhffhhde 222
µµ
Si tomamos valor medio en ambos lados, encontramos una expresión para el error cuadrático
medio (MSE, mean square error):
[ ] [ ] [ ] [ ] =−+= ∑ ∑ ∑∞
−∞=
∞
−∞=
∞
−∞=−−−
l m lklklklklkk dfEhffEhhdEeE 222
µµ
∑ ∑ ∑∞
−∞=
∞
−∞=
∞
−∞=−−+=
l m lfdlffldd lhlhh )(2)()0( φµφφ µ
siendo φmm la autocorrelación y φmn la correlación cruzada de dos señales m y n. Si derivamos
respecto a h, que es la respuesta impulsiva del filtro, e igualamos a cero para minimizar el error:
∑∞
−∞=
=−l
fdffl jljh )()(* φφ
FILTROS ADAPTATIVOS FILTROS DE WIENER
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
14
Esta es la ecuación de Wiener-Hopf, que en forma de convolución queda:
)()(** kkh fdffl φφ =
Tomando transformada z en ambas partes:
)()(
)()()()( **
zz
zHózzzHff
fdfdff Φ
Φ=Φ=Φ
Con la solución de Wiener se puede encontrar la función de transferencia del filtro H*(z) a partir
de la transformada z de la función de autocorrelación de la señal de entrada, de la correlación
cruzada de la señal de entrada, y de la respuesta deseada. Si se sustituye esta ecuación en la
expresión del error se obtiene el valor del mínimo MSE:
[ ] )()0( *2 lheE fdl
lddmínk φφ ∑∞
−∞=
−=
FILTROS ADAPTATIVOS FILTROS LMS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
15
2.2. FILTROS LMS ADAPTATIVOS
La teoría de filtrado adaptativo es fundamental para el control inverso adaptativo. Los filtros
adaptativos se usan para modelado de plantas, modelado inverso de plantas, y para hacer
cancelaciones de ruido de la planta. Se va a tratar de presentar el filtro adaptativo como un
bloque, que tiene una señal de entrada, una de salida, y una señal de entrada especial llamada
‘el error’, que se usa en el proceso de aprendizaje. El propósito de este apartado es ofrecer una
introducción a la teoría de filtrado digital adaptativo.
El filtro adaptativo que aquí se va a considerar tiene la siguiente forma:
Filtro adaptativo
Sistema dinámico desconocidoque va a ser modelado
-1Z -1Z -1Z
Σ
Σ-
+
� coeficientes ajustables
Salida del filtroadaptativo yk
Error ek
Respuestadeseada dk
Señal de entrada f(t) Señal de salida d(t)
Figura 7: Modelando un sistema desconocido mediante un filtro discreto adaptativo
La Figura 7 ilustra el filtro adaptativo como sería usado en el modelado de una planta
desconocida. Este filtro es causal y tiene una respuesta impulsiva finita (FIR).
FILTROS ADAPTATIVOS FILTROS LMS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
16
Además de las señales ya comentadas, hay que utilizar una más: la señal deseada, para poder
generar la señal de error. La salida de la planta desconocida nos da el valor de la señal deseada.
El filtro adaptativo de la Figura 7 es un filtro digital. El sistema desconocido que va a ser
modelado es un filtro analógico. Las entradas al filtro adaptativo son, por tanto, versiones
muestreadas de las señales de entrada y salida del sistema desconocido. Los coeficientes del
filtro adaptativo se ajustan automáticamente mediante un algoritmo que minimiza el error
cuadrático medio. Cuando los coeficientes convergen y el error se hace pequeño, la respuesta
impulsiva del filtro adaptativo es muy parecida a la del sistema desconocido.
El análisis del filtro adaptativo puede ser desarrollado considerando primero el combinador lineal
adaptativo de la Figura 8, un subsistema de la Figura 7.
Σ
Σ-
+
señaldeseada dk
Error ek = dk - yk
Señal desalida yk
Coeficientes W
Señal deentrada xk
x1k
x1k
x1k
x1k
w1
w4
w3
w2
Figura 8: Combinador adaptativo lineal
Se tienen las siguientes señales:
• La señal de entrada, que es un conjunto de n señales. La k-ésima señal de entrada es:
[ ]Tnklkkkk xxxxX ,...,,...,, 21=
• El conjunto de coeficientes o pesos se designan con el vector:
FILTROS ADAPTATIVOS FILTROS LMS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
17
[ ]nlT wwwwW ,...,,...,, 21=
• La señal de salida k-ésima será:
∑=
==n
lk
Tlklk XWxwy
1
Si se denota la señal deseada como dk, el error en el instante k-ésimo es:
kT
kkkk XWdyde −=−=
El error cuadrático medio es el valor esperado de ek2:
[ ] [ ] [ ] [ ] [ ] RVWWPdEWXXEWWXdEdEeEMSE TTk
Tkk
TTkkkk +−=+−== 22 222
siendo P la correlación cruzada entre la señal de entrada x y la señal deseada d, y R la
autocorrelación de la señal de entrada E[xkxkT]. Se puede observar que el MSE es una función
cuadrática de los coeficientes, con lo que tendrá la forma de una parábola. El proceso adaptativo
estará continuamente ajustando los coeficientes, buscando la parte más baja de la parábola.
Para obtener los coeficientes óptimos, habrá que derivar el MSE e igualarlo a cero.
El algoritmo LMS utiliza el método del steepest descent para la actualización de los coeficientes
del vector de pesos. Este algoritmo realiza los cambios de forma proporcional al gradiente, tal
como se puede ver en la siguiente ecuación:
∇−+=∧
+ kkk WW µ1
siendo ∇ la estimación del gradiente:
kk N+∇=∇∧
y Nk el ruido del gradiente.
El gradiente se define como la derivada del cuadrado del error respecto a cada uno de los
coeficientes. Si se hace esa derivada, se obtiene como conclusión que el gradiente tiene el valor:
FILTROS ADAPTATIVOS FILTROS LMS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
18
kkk Xe2−=∇∧
Sustituyendo en la ecuación anterior, se obtiene la ecuación que rige al algoritmo LMS:
kkkk XeWW µ21 +=+
FILTROS ADAPTATIVOS APLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
19
2.3. APLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOS
Existen muchas aplicaciones prácticas para el modelo de filtros FIR adaptativos descritos en este
capítulo. Uno de los más interesantes es la cancelación de ruido adaptativa. La idea es sustraer el
ruido de una señal ruidosa. Cuando se hace empleando técnicas de filtrado adaptativo se puede
obtener una mejora sustancial de la tasa de señal a ruido.
La separación de una señal de un ruido aditivo, incluso cuando sus respectivos espectros de
potencia se solapan, es un problema común en proceso de señal. La Figura 9 (a) muestra un
esquema típico para solucionar este problema usando filtros de Wiener o Kalman. El propósito
del filtro óptimo es pasar la señal s sin distorsión. En general esto no se puede hacer
perfectamente; incluso con el mejor de los filtros se distorsiona la señal, y parte del ruido pasa a
la señal de salida.
La Figura 9 (b) muestra otro desarrollo para este problema, usando cancelación de ruido
adaptativa. La señal primaria contiene la señal de interés, s, y un ruido aditivo. Se asume que se
puede obtener un ruido de entrada de referencia, n1, que está correlado con el ruido original n0.
En la Figura 9 (b), el filtro adaptativo recibe la referencia de ruido, la filtra y sustrae el resultado
de la señal primaria. Desde el punto de vista del filtrado adaptativo, la señal primaria actúa como
señal deseada y la salida del sistema como error. La salida del sistema se obtiene sustrayendo el
ruido de referencia filtrado de la señal primaria.
FILTROS ADAPTATIVOS APLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
20
Σ-
+salida delsistema
Filtroóptimo salidas + no
entrada
(a)
Filtroadaptativo
Fuentede ruido
Fuentede señal
error e
entrada dereferencia
entradaprimaria
s + n0
n1
cancelador de ruido adaptativo
(b)
Figura 9: Separación de señal y ruido: (a) clásica; (b) con filtro adaptativo
Para hacer la cancelación de ruido adaptativa se podría esperar que el filtro necesitara algún
conocimiento sobre la señal s o sobre los ruidos n0, n1, antes de que pudiera adaptarse para
producir la señal y. Pero no hace falta. Tan sólo hay que saber que n0 está correlada con n1, y
que y está incorrelada con ambas.
Asumiendo ésto, y que las señales son estadísticamente estacionarias y de media 0, se tiene:
ynse −+= 0
Elevando al cuadrado se obtiene:
( ) ( )ynsynse −+−+= 02
022 2
Tomando el valor esperado y haciendo uso de que la señal s está incorrelada con n0 y con y, se
obtiene que el valor mínimo del error es:
FILTROS ADAPTATIVOS APLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
21
[ ]( ) [ ] [ ]( )mínmín ynEsEeE 20
22 −+=
Cuando el filtro es ajustado de forma que E[e2] es minimizado, E[(n0 - y)2] es también
minimizado. En ese momento, y es la mejor estimación del ruido primario n0. Además, cuando
E[(n0 - y)2] es minimizada, E[(e - s)2] es también minimizada, ya que
( ) ( )ynse −=− 0
Ajustar o adaptar el filtro para minimizar la potencia total de salida es hacer que e sea la mejor
estimación de la señal s.
La cancelación de ruido adaptativa es una técnica muy potente en proceso de señal. La primera
aplicación que tuvo fue la cancelación de la interferencia de 60 Hz (o 50 Hz) en
electrocardiogramas. Las causas de la interferencia son las inducciones magnéticas y las
corrientes desplazadas de la potencia de línea y los lazos de tierra. El filtrado convencional se ha
usado para combatir dicha interferencia, pero la mejor solución parece ser la cancelación de
ruido adaptativa.
La Figura 10 muestra la aplicación de esta cancelación a los electrocardiogramas. La señal
primaria se toma de un preamplificador de electro (ECG); la entrada de referencia de los 60 Hz
se toma de una salida de la pared. El filtro adaptativo contiene dos coeficientes variables, uno
aplicado a la entrada de referencia directamente y el otro a una versión de ésta desfasada 90º.
La salida del filtro se sustrae de la entrada primaria. Un resultado típico del experimento se
muestra en la Figura 11. La Figura 11 (a) muestra la señal primaria, un electro con una cantidad
excesiva de interferencia de 60 Hz, y la Figura 11 (b) muestra la señal de referencia de la salida
de la pared. La Figura 11 (c) es la salida del cancelador de ruido. Se llama la atención del lector
sobre la ausencia de interferencia y la claridad de los detalles una vez que el proceso adaptativo
converge.
FILTROS ADAPTATIVOS APLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
22
Figura 10: Cancelación de la interferencia de 60 Hz en electrocardiogramas
Figura 11: Resultados de la cancelación de ruido en el experimento: (a) entrada primaria, (b) entrada de
referencia, (c) salida de la cancelación de ruido
Otra aplicación útil de la cancelación de ruido adaptativa es la eliminación de interferencia del
corazón de una madre cuando se quiere hacer un electrocardiograma a un feto. La Figura 12
muestra la localización de los corazones del feto y de la madre, y el lugar de los cables de
FILTROS ADAPTATIVOS APLICACIÓN PRÁCTICA DE FILTROS ADAPTATIVOS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
23
entrada. El cable abdominal nos da la señal de entrada (conteniendo el electro del feto con la
interferencia de la madre), y el cable del pecho nos da el electro de la madre puro.
Figura 12: Cancelación del latido de la madre en el electrocardiograma del feto
La configuración del cancelador de ruido adaptativo está basada en el esquema mostrado en la
Figura 8, en el cual la señal deseada será la tomada por el electrodo del abdomen, y la señal de
entrada la tomada por el electrodo del pecho. Esta configuración constituye un cancelador de
ruido de referencia múltiple, que trabaja como un cancelador de un sólo canal. La Figura 13
muestra los resultados. El electro maternal del cable del pecho es filtrado adaptativamente y
sustraído de la señal abdominal, dejando el electro del feto totalmente puro. Esto es un
problema interesante ya que los electros del feto y de la madre tienen espectros superpuestos.
Los dos corazones son eléctricamente aislados y trabajados independientemente. La frecuencia
del segundo armónico del electro materno está cerca del armónico fundamental del ECG del
feto, por lo que las técnicas de filtrado ordinarias tendrían mucha dificultad con este problema.
Figura 13: Resultados del electrocardiograma del feto: (a) entrada de referencia (cable del pecho), (b)
entrada primaria (cable del abdomen), (c) salida del cancelador de ruido.
Capítulo 3: MODELADO ADAPTATIVO
MODELADO ADAPTATIVO INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
25
3.1. INTRODUCCIÓN
El modelado de plantas adaptativas o identificación de plantas es una función importante para
todos los sistemas de control. En el mundo real, la planta que va a ser controlada podría ser
desconocida y posiblemente variable en el tiempo. Si la planta es inestable, primero tiene que ser
estabilizada con realimentación. Esto podría no ser fácil de hacer, especialmente cuando la
dinámica de la planta se conoce poco. Un sistema de modelado adaptativo discreto en el tiempo
muestrea la entrada y salida de la planta, y ajusta automáticamente sus parámetros internos para
producir una salida muestreada que está muy cerca de la salida de la planta cuando las muestras
de la señal de entrada a la planta se usan como entrada al modelo adaptativo. Cuando la planta
y su modelo producen salidas similares, la respuesta impulsiva adaptativa es una buena
representación de la respuesta impulsiva de la planta.
La idea básica se muestra en la Figura 14:
Modeloadaptativo
P’(z)
PlantaP(z)
-
+
++
Ruido de la plantan(k)
Σ
y'(k)
Salida de la plantaz(k)
respuesta deseada
Error e(k)
Entrada de la plantau(k)
y(k)Σ
Figura 14: Modelo adaptativo de una planta ruidosa
El sistema adaptativo descrito sólo trabaja con la entrada y salida de la planta. Para el control
inverso adaptativo, la planta aparece como un sistema discreto en el tiempo de función de
transferencia P(z). P(z) es modelada y controlada.
MODELADO ADAPTATIVO INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
26
El ruido de la planta y del sensor pueden unirse ambos por conveniencia como un ruido único
aditivo a la salida de la planta. La respuesta dinámica de la planta es yk. La salida total zk viene
dada por:
kkk nyz +=
La función de transferencia de la planta es P(z). Su respuesta impulsiva en forma de vector es:
[ ]TlppppP ......321=
La entrada de la planta es uk, así que:
kkk puy *=
Tomando transformada z, se tiene:
)()()( zPzUzY =
Los parámetros del modelo adaptativo de la Figura 14 son generalmente ajustados por un
algoritmo adaptativo, para que así el error ek sea minimizado en el sentido de mínimos
cuadrados. La señal deseada para el modelo adaptativo es zk.
Una forma muy útil y común de modelo adaptativo o filtro adaptativo es el filtro transversal,
cuyos coeficientes son controlados por un algoritmo adaptativo. En la Figura 14 lo que se hace
es converger hasta desarrollar la función de transferencia P’(z), que es una estimación de P(z):
[ ]Tnkkkkk ppppP '...'''' 321=
Hay n pesos (coeficientes) y cada peso es función de k, adaptándose iterativamente. Otras
formas de filtros adaptativos también pueden ser usadas. Se pueden generar modelos
adaptativos que son representaciones muy cercanas de plantas desconocidas. Para cualquier
tiempo k, de todas formas, habrá diferencias entre P’k y P. Estas diferencias se pueden llamar
desajustes. Hay tres fuentes de desajustes:
MODELADO ADAPTATIVO INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
27
1. Una fuente de desajuste viene de la representación de la planta, cuya respuesta impulsiva es
realmente de longitud infinita, en términos de un modelo cuya respuesta impulsiva es de
longitud finita.
2. Otra fuente de desajuste es debida a que la señal de entrada puede ser que no excite a todos
los modos importantes de la planta. Esto se puede subsanar usando una señal oscilante que
sea una “excitación permanente” añadida a la señal de entrada. La oscilación ayuda a hacer
el proceso de modelado seguro y sólido, pero tiene la desventaja de introducir un ruido
adicional en el sistema de control.
3. Una tercera fuente es el ruido en los pesos del modelo debido al proceso adaptativo.
Cantidades finitas de datos son usados por el proceso adaptativo para determinar estos
coeficientes. Sólo si el proceso adaptativo fuera hecho infinitamente lento, usando una
cantidad infinita de datos, no habría ruido. La adaptación rápida causa ruido en los pesos de
P’k.
MODELADO ADAPTATIVO DESARROLLO DEL MODELO IDEALIZADO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
28
3.2. DESARROLLO DEL MODELO IDEALIZADO
El siguiente análisis de modelo adaptativo está idealizado en el sentido de que el modelo
adaptativo se asume que es de longitud infinita como la misma planta, y se asume que todos los
modos de las plantas se excitan con señales estadísticamente estacionarias. El proceso adaptativo
es convergente y no presenta ruido en los coeficientes.
El modelo adaptativo tiene una entrada uk, y una salida y’k que es la estimación de la salida de la
planta yk. Cuando converja, la función de transferencia del modelo adaptativo será P’*(z). Su
respuesta impulsiva en forma de vector será designada por P’*. La fórmula para P’*(z) puede ser
obtenida de la teoría de Wiener como sigue:
)()()'*(
zzzP
uu
uz
ΦΦ=
donde φuz(z) es la transformada z de la correlación cruzada φuz(k),
[ ]kjjuz zuEk +=Φ )(
∑∞
−∞=
−=Φk
kuzuz zkz )()( φ
y donde Φuu(z) es la transformada z de la autocorrelación de la función φuu(k), que se definiría
igual que la anterior, cambiando el sufijo z por u. Asumiendo que el ruido de la planta nk está
incorrelado con la entrada de la planta uk y con la salida de ésta yk, se tiene:
[ ] )()()( kuyuEk uykjkjjuz Φ=+=Φ ++
Transformando ambos lados:
)()( zz uyuz Φ=Φ
Sustituyendo,
)()(
)'*(zz
zPuu
uy
ΦΦ
=
MODELADO ADAPTATIVO DESARROLLO DEL MODELO IDEALIZADO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
29
Además, por definición, Φuy(z) = Φuu(z)P(z), por lo que
)()'*( zPzP =
Se concluye que, a pesar de la presencia del ruido de la planta, el modelo de mínimos cuadrados
desarrollará una función de transferencia igual a la de la planta. Este resultado se puede sostener
mientras que el ruido de la planta no esté correlado con la señal de entrada.
MODELADO ADAPTATIVO DESAJUSTE DEBIDO AL USO DE MODELOS FIR
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
30
3.3. DESAJUSTE DEBIDO AL USO DE MODELOS FIR
En la práctica, la planta P(z) tiene generalmente un comportamiento exponencial transitorio, por
lo que su respuesta impulsiva es infinita (IIR). Por otra parte el filtro adaptativo generalmente
usado tiene una respuesta impulsiva finita (FIR). El resultado es un desajuste, una diferencia entre
P’* y P. La teoría de Wiener se puede usar para estudiar este desajuste.
Sabiendo que:
)()()'*(
zzzP
uu
uz
ΦΦ=
se puede escribir:
[ ] [ ]uzuuP ΦΦ= −1'*
Asumiendo que el ruido de la planta nk es incorrelado con la señal de entrada uk, φuz puede ser
reemplazada por φuy:
[ ] [ ]uyuuP ΦΦ= −1'* (1)
Un caso especial es que la señal de entrada sea blanca. En este caso:
[ ] Iuu
uu )0(11
Φ=Φ − (2)
Teniendo en cuenta que la correlación cruzada entrada-salida de un sistema se puede poner:
)()()( zzHz xxxy Φ=Φ
siendo x la entrada, y la salida, y H la función de transferencia, para este sistema se tiene:
[ ] )0(2
1
uu
n
uy
P
PP
Φ
=Φ (3)
MODELADO ADAPTATIVO DESAJUSTE DEBIDO AL USO DE MODELOS FIR
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
31
Usando las ecuaciones (1), (2) y (3) se concluye que:
=Φ
Φ=
n
uu
n
uu
P
PP
P
PP
P 2
1
2
1
)0()0(
1'*
Por lo tanto, la mejor implementación de un modelo IIR mediante uno FIR se hace cuando la
señal de entrada es blanca. Cuando esta señal es coloreada pero excita permanentemente a la
planta, el proceso trabajará de forma similar.
El desajuste será menor cuanto mayor sea el parámetro n, que es el número de coeficientes del
filtro. Pero cuanto mayor sea n más ruidoso será el vector de pesos, por lo que hay que tener
cuidado a la hora de elegir n.
MODELADO ADAPTATIVODESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO
ADECUADA: USO DE UNA SEÑAL DE EXCITACIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
32
3.4. DESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO
ADECUADA: USO DE UNA SEÑAL DE EXCITACIÓN
Para lograr una realización de filtro adaptativo lo más parecida posible al sistema desconocido
sobre un conjunto de frecuencias, es necesario que la señal de entrada tenga un espectro de
energía que cubra todo este rango de frecuencias. Si no es así habrá un desajuste, una
diferencia entre P’* y P.
Otra dificultad sería que la señal de entrada, uk, no fuera estacionaria, porque el proceso de
modelado adaptativo se desarrolla mejor si la entrada es estacionaria. Por ejemplo, si la señal de
entrada es cero durante un largo periodo de tiempo, el modelo obtenido no sería bueno.
Una posible solución supone añadir a la señal de entrada una señal de excitación. Esta señal
ofrece la ventaja de proveer de una señal de entrada conocida con propiedades estadísticas
fáciles de controlar, pero ofrece la desventaja de añadir más ruido al proceso de control. Será
importante, por tanto, elegir un espectro con un nivel de potencia adecuado de esta señal.
Añadiendo la señal de excitación, la salida del controlador no será tan larga como la entrada de
la planta. Para distinguirlas se continuará designando a la entrada de la planta como uk, y de
ahora en adelante se denotará como u’k a la salida del controlador.
Hay varias formas de usar una señal de excitación en el proceso de modelado, de las que se
mostrarán cuatro. La primera, que se designará como esquema A, es una forma muy sencilla de
hacer modelado de plantas. La señal de excitación δk es añadida simplemente a la salida del
controlador para formar la señal de entrada a la planta uk. Este es un esquema efectivo cuando
la salida del controlador es un proceso estocástico estacionario y la señal de excitación se añade
para lograr una característica espectral deseada para uk.
MODELADO ADAPTATIVODESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO
ADECUADA: USO DE UNA SEÑAL DE EXCITACIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
33
uk
Modeloadaptativo
P’k(z)
PlantaP(z)
-
+
++
Ruido dela planta
nk
Σ
Salidaplanta
Señaldeseada
Error ek
Entradaplanta
++
Señaloscilante
δk
Salidacontrolador
u’kΣ Σ
Figura 15: Uso de una señal de excitación en el proceso de modelado (esquema A)
Como la señal de excitación es una señal aleatoria independiente, su espectro se suma a la salida
del controlador para componer el espectro de uk. Hay aquí una analogía con la técnica
fotográfica que emplea el flash a plena luz del día, para rellenar las sombras.
En oposición a esto, los esquemas B y C usan la señal de excitación exclusivamente para el
efecto del proceso de modelado adaptativo de la planta. El propósito es asegurar propiedades
estadísticamente estacionarias conocidas para la señal de entrada.
uk
Modeloadaptativo
P’k(z)
PlantaP(z)
-
+
++
Ruido dela planta
nk
Σ
Salidaplanta
Señaldeseada
Error ek
Entradaplanta
+
+
Salidacontrolador
u’k
Señal oscilanteδk
Σ Σ
Figura 16: Uso de una señal de excitación en el proceso de modelado (esquema B)
MODELADO ADAPTATIVODESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO
ADECUADA: USO DE UNA SEÑAL DE EXCITACIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
34
Usando el esquema B con una señal de excitación blanca, el error cuadrático medio será
minimizado cuando la respuesta impulsiva del modelo adaptativo iguale exactamente al de la
planta.
En este esquema el error es mayor que en el esquema A, ya que aquí será igual a la potencia del
ruido de la planta más la potencia de la salida del controlador u’k después de propagarse a
través de la planta. Sin embargo, con el esquema A, el error cuadrático medio será igual a la
potencia del ruido de la planta.
Modeloadaptativo
P’k(z)
PlantaP(z)
-
+
++
Ruido dela planta
nk
Salidaplanta
Señal deseada
Error ek
Entradaplanta
uk
+
+
Salidacontrolador
u’k
Señal oscilanteδk
-+
CopiaP’k(z)
Σ Σ
Σ
Σ
Figura 17: Uso de una señal de excitación en el proceso de modelado (esquema C)
La diferencia entre el esquema C y el esquema B es que el primero incorpora una técnica para
eliminar los efectos de la propagación de u’k a través de la planta en la señal de error ek. Se usa
un filtro que es una copia digital exacta de P’k (z). Su entrada es la salida del controlador u’k , y la
salida se sustrae de la salida de la planta obteniendo una señal deseada para la adaptación de
P’k(z), la cual no contiene componentes dinámicas de u’k . La inclusión de esta copia no afecta a
la solución de Wiener, ya que la salida es incorrelada con la señal oscilante δk. Con esta copia de
P’k(z) se reduce el error cuadrático medio. Cuando P’k(z) converge para ser lo más parecida a P(z),
el error ek del proceso adaptativo es casi exactamente igual a la salida del ruido de la planta sólo.
MODELADO ADAPTATIVODESAJUSTE DEBIDO A UNA SEÑAL DE ENTRADA NO
ADECUADA: USO DE UNA SEÑAL DE EXCITACIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
35
El esquema C se puede redibujar de la siguiente forma:
Modeloadaptativo
P’k(z)
PlantaP(z)
++
Ruido dela planta
nk
Salidaplanta
Error ek
Entradaplanta
uk
+
+
Salidacontrolador
u’k
Señal oscilanteδk
-+
CopiaP’k(z)
Σ Σ
Σ
Figura 18: Uso de una señal de excitación en el proceso de modelado (esquema C, alternativo)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
36
3.5. SIMULACIONES DE MODELADO ADAPTATIVO
Para demostrar el proceso de modelado adaptativo de una planta desconocida, se han realizado
experimentos de simulación y los resultados serán descritos aquí. Para el propósito de la
experimentación, la planta será conocida para nosotros, pero desconocida para el algoritmo
adaptativo.
Se empleará una planta inestable de fase no mínima:
)1)(1(5.0)(−+
−=ss
ssH
Conociendo la planta, es fácil estabilizarla. Se utiliza un compensador y una realimentación
negativa. Se muestra en la siguiente figura:
+
-k (s + 1)
(s+7)(s-2)(s - 0.5)
(s+1)(s-1)Σ
Figura 19: Estabilización de una planta inestable de fase no mínima
Trabajamos con dos valores de la ganancia k, uno k=21 y otro k=24. Con ambos valores se
estabiliza el sistema. Para k= 21, la función de transferencia G(s) de todo el sistema viene dada
por:
)9601.01424.0)(9601.01424.0)(7152.3()5.0(21)(
jsjssssG
−++++−=
y para k=24,
)2()1()5.0(24)( 2 ++
−=ss
ssG
El lugar de las raíces de la función de transferencia para k=21 es:
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
37
-6 -4 -2 0 2 4 6-6
-4
-2
0
2
4
6Lugar de las raíces
Eje real
Eje
imag
inar
io
Figura 20: Lugar de las raíces del lazo de estabilización de la planta (k=21)
Y para k=24,
-6 -4 -2 0 2 4 6-6
-4
-2
0
2
4
6Lugar de las raíces
Eje real
Eje
imag
inar
io
Figura 21: Lugar de las raíces del lazo de estabilización de la planta (k=24)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
38
Encontrar un compensador y una ganancia para estabilizar la planta es algo fácil si se sabe cómo
es la planta y dónde tiene los polos y los ceros. Sin este conocimiento, habría que hacer un gran
número de experimentos para estabilizar la planta con éxito.
En un sistema de control inverso adaptativo el controlador será discreto. Será necesario por tanto
un convertidor digital analógico que tome la señal de control y la use para conducir la planta.
Para este experimento se ha escogido un DAC de orden cero. Se modelará la planta estabilizada
incluyendo el DAC. El modelo de la planta estabilizada será discreto, así que se necesitará
muestrear la salida de la planta para el proceso de modelado adaptativo.
La idea básica se ilustra en el esquema siguiente:
+
-
k (s + 1)(s+7)(s-2)
(s - 0.5)(s+1)(s-1)
1 - z-1
s
Modeloadaptativo
G’(z)
-
+Σ
DAC
G(s)
Σ
Figura 22: Modelado adaptativo de la planta estabilizada
La función discretizada para los valores de k son, para k=21:
)6897.0)(0945.09813.0)(0945.09813.0()8609.0)(0513.1(906.0)(
−−−+−+−=
zjzjzzzzG
y para k=24:
)8187.0()9048.0()8608.0)(0513.1(1032.0)( 2 −−
+−=zz
zzzG
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
39
La respuesta impulsiva para G(z) con k=21 se muestra en la Figura 23.
0 50 100 150 200 250 300 350 400-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4Salida del sistema
Tiempo (0.1 s)
Figura 23: Respuesta impulsiva de la planta de fase no mínima, estabilizada y discretizada (k=21)
El modelo adaptativo del sistema se puede hallar empleando como entrada una señal de
excitación. El entrenamiento para hallar dicho modelo, y la evolución de su error, se muestran en
las siguientes figuras:
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
40
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000-10
-8
-6
-4
-2
0
2
4
6
8
10Salida del sistema
Muestras
Sal
ida
real
(rojo
)yes
timad
a(a
zul)
Figura 24: Entrenamiento del modelo adaptativo de la planta de fase no mínima, estabilizada y
discretizada (k=21)
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 1000010-5
10-4
10-3
10-2
10-1
100
101
Evolución del error
Muestras
Val
orde
lerro
r
Figura 25: Evolución del error (semilogy) en el entrenamiento del modelo adaptativo de la planta de fase
no mínima, estabilizada y discretizada (k=21)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
41
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000-6
-4
-2
0
2
4
6Evolución del error
Muestras
Val
orde
lerro
r
Figura 26: Evolución del error en el entrenamiento del modelo adaptativo de la planta de fase no mínima,
estabilizada y discretizada (k=21)
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 100000
5
10
15
20
25
30
35
40Evolución del error cuadrático
Muestras
Val
orde
lerro
r
Figura 27: Evolución del cuadrado del error en el entrenamiento del modelo adaptativo de la planta de
fase no mínima, estabilizada y discretizada (k=21)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
42
El aprendizaje del modelo queda demostrado con estas últimas gráficas mostradas, en la que se
puede observar cómo el error llega a hacerse muy pequeño, de modo que el modelo adaptativo
resultante es capaz de proporcionar una salida muy similar a la ideal (mostrada en la Figura 23).
Esto puede comprobar viendo la respuesta impulsiva del modelo adaptativo, obtenido según el
esquema de la Figura 22, que se muestra en la Figura 28, y el error entre la respuesta impulsiva
del sistema original y de su modelo adaptativo de la Figura 30.
0 50 100 150 200 250 300 350 400-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4Salida del sistema
Tiempo (0.1 s)
Figura 28: Respuesta impulsiva del modelo adaptativo de la planta de fase no mínima, estabilizada y
discretizada (k=21)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
43
0 50 100 150 200 250 300 350 400-0.06
-0.04
-0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14Evolución del error
Muestras
Val
orde
lerro
r
Figura 29: Diferencia entre la respuesta impulsiva de la planta y la de su modelo adaptativo (k=21)
0 50 100 150 200 250 300 350 4000
0.002
0.004
0.006
0.008
0.01
0.012
0.014
0.016
0.018Evolución del error cuadrático
Muestras
Val
orde
lerro
r
Figura 30: Diferencia cuadrática entre la respuesta impulsiva de la planta y la de su modelo adaptativo
(k=21)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
44
El error cometido entre el modelo real y su adaptado es muy pequeño. Lo mismo se puede
calcular para el sistema con k=24. Las figuras se muestran a continuación:
0 50 100 150
-0.2
-0.1
0
0.1
0.2
0.3
Salida del sistema
Tiempo (0.1 s)
Figura 31: Respuesta impulsiva de la planta de fase no mínima, estabilizada y discretizada (k=24)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
45
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000-6
-4
-2
0
2
4
6Salida del sistema
Muestras
Sal
ida
real
(rojo
)yes
timad
a(a
zul)
Figura 32: Entrenamiento del modelo adaptativo de la planta de fase no mínima, estabilizada y
discretizada (k=24)
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 1000010-5
10-4
10-3
10-2
10-1
100
101Evolución del error
Muestras
Val
orde
lerro
r
Figura 33: Evolución del error (semilogy) en el entrenamiento del modelo adaptativo de la planta de fase
no mínima, estabilizada y discretizada (k=24)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
46
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000-4
-3
-2
-1
0
1
2
3Evolución del error
Muestras
Val
orde
lerro
r
Figura 34: Evolución del error en el entrenamiento del modelo adaptativo de la planta de fase no mínima,
estabilizada y discretizada (k=24)
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 100000
2
4
6
8
10
12
14Evolución del error cuadrático
Muestras
Val
orde
lerro
r
Figura 35: Evolución del cuadrado del error en el entrenamiento del modelo adaptativo de la planta de
fase no mínima, estabilizada y discretizada (k=24)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
47
0 50 100 150
-0.2
-0.1
0
0.1
0.2
0.3
Salida del sistema
Tiempo (0.1 s)
Figura 36: Respuesta impulsiva del modelo adaptativo de la planta de fase no mínima, estabilizada y
discretizada (k=24)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
48
0 50 100 150-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5x 10-3 Evolución del error
Muestras
Val
orde
lerro
r
Figura 37: Diferencia entre la respuesta impulsiva de la planta y la de su modelo adaptativo (k=24)
0 50 100 1500
0.2
0.4
0.6
0.8
1
1.2x 10-5 Evolución del error cuadrático
Muestras
Val
orde
lerro
r
Figura 38: Diferencia cuadrática entre la respuesta impulsiva de la planta y la de su modelo adaptativo
(k=24)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
49
Si se añade una señal de ruido a la salida de la planta para testar la habilidad del esquema de la
Figura 22, se observa una perturbación en la respuesta impulsiva del modelo adaptativo, la cual
se puede mejorar disminuyendo el factor µ en un orden de magnitud. La respuesta impulsiva en
este caso para la función de transferencia con k=24 se muestra en la figura siguiente.
0 50 100 150
-0.2
-0.1
0
0.1
0.2
0.3
Salida del sistema con ruido
Tiempo (0.1 s)
Figura 39: Respuesta impulsiva del modelo adaptativo de la planta de fase no mínima, estabilizada y
discretizada, sometida a perturbaciones (k=24)
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
50
El modelo de la Figura 22 confía en que la señal de entrada sea suficientemente buena para
excitar a la planta. Se puede hacer un experimento usando una señal de excitación, como en el
esquema C explicado anteriormente, que se muestra en la Figura 40.
G’(z)-
+Σ
Error
Entrada+
+
Señal oscilanteδk
-+
ΣCopiaG’(z)
+
-
k (s + 1)(s+7)(s-2)
(s - 0.5)(s+1)(s-1)
1 - z-1
s
DAC
G(s)
ΣΣ
Figura 40: Modelado de la planta empleando el esquema C
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
51
La respuesta impulsiva ‘aprendida’ se muestra en la Figura 41. Es muy cercana a la respuesta
impulsiva de la Figura 23.
0 50 100 150 200 250 300 350 400-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4Salida del sistema
Tiempo (0.1 s)
Figura 41: Respuesta impulsiva del modelo adaptativo de la planta de fase no mínima, estabilizada y
discretizada (k=21), obtenido mediante el esquema C
MODELADO ADAPTATIVO SIMULACIONES DE MODELADO ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
52
Como se comentó anteriormente, el esquema C trabaja muy bien en presencia de
perturbaciones en la planta. Como ejemplo se muestra la misma respuesta impulsiva del sistema
anterior, ante la presencia de perturbaciones en la planta:
0 50 100 150 200 250 300 350 400-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4Salida del sistema con ruido
Tiempo (0.1 s)
Figura 42: Respuesta impulsiva, sometida a perturbaciones, del modelo adaptativo de la planta de fase no
mínima, estabilizada y discretizada (k=21), obtenido mediante el esquema C
Estos experimentos muestran cómo las plantas estabilizadas pueden ser modeladas con filtros
adapatativos FIR. Cuando la señal de entrada es suficientemente buena, se puede usar el modelo
de la Figura 22. Si es necesario una señal oscilante se pueden usar los esquemas A, B, o C.
Capítulo 4: MODELADO DE PLANTAS
INVERSAS
MODELADO DE PLANTAS INVERSAS INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
54
4.1. INTRODUCCIÓN
Los conceptos de control mostrados en el primer capítulo implican el uso de plantas inversas
adaptativas como controladores en configuraciones de control por realimentación hacia
adelante. A continuación se van a desarrollar las técnicas generales necesarias para encontrar las
inversas de las plantas que van a ser controladas. Se aplicará sólo a plantas estables. Si la planta
de interés es inestable, se deberá realizar una realimentación hacia atrás convencional para
estabilizarla.
La planta generalmente tiene polos y ceros. La inversa de la planta, por lo tanto, debería tener
ceros y polos. Si la planta es de fase mínima, tiene todos sus ceros dentro del círculo unidad. Si
la planta es de fase no mínima, entonces los polos de la inversa estarán fuera del círculo unidad
y la inversa será inestable. En general, no conociendo si la planta es de fase mínima o no, no se
sabe si se podrá realizar la inversa. Esta incertidumbre puede ser superada y fabricar excelentes
inversas usando las técnicas de modelado inverso adaptativo apropiadas.
Se empezará con una discusión sobre el modelado inverso de plantas de fase mínima, y luego las
de fase no mínima. El modelo de referencia del modelado inverso será descrito después, y los
efectos del ruido de la planta.
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS DE FASE MÍNIMA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
55
4.2. INVERSAS DE PLANTAS DE FASE MÍNIMA
La planta se representa por P(z). La inversa de la planta, que será usada como el controlador, se
designará por C(z) si es ideal, o por C’(z) si se obtiene por un camino práctico, y no es
suficientemente perfecta. Se asume que la planta P(z) es de fase mínima, teniendo todos sus
ceros dentro del círculo unidad en el plano z. Entonces, podría existir una inversa perfecta:
)(1)(zP
zC =
Ésta sería estable y causal.
-
+
Inversa plantaC’(z)
PlantaP(z)
Señal demodelado
u
Σ
Salida plantay
error
Figura 43: Formando la inversa de una planta
Un algoritmo adaptativo como el de la Figura 43 proporciona una inversa C’(z) que se
aproximará a C(z), dando al algoritmo suficiente flexibilidad, esto es, suficiente número de
grados de libertad.
Ajustando C’(z) para minimizar el error cuadrático medio, el error será próximo a cero, y C’(z)
será casi igual a C(z).
Si, por ejemplo, se supone que la planta tiene una función de transferencia:
21
1
431
211
)(−−
−
++
+=
zz
zzP
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS DE FASE MÍNIMA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
56
Esta planta es causal y estable, ya que todos sus polos están dentro del círculo unidad en el
plano z. Es de fase mínima porque sus ceros están también dentro del círculo unidad. La
recíproca de esta planta es una inversa perfecta:
1
21
211
431
)(1)(
−
−−
+
++==
z
zz
zPzC
Esta función de transferencia se puede expandir en fracciones simples:
...83
43
23
231)( 4321 ++−+−= −−−− zzzzzC
Se puede ver que C(z) es causal. Tomando como referencia la Figura 43, si el filtro inverso
adaptativo C’(z) tuviera una respuesta impulsiva infinita, podría perfectamente ser C(z). Si tuviera
una respuesta impulsiva finita pero muy larga, la diferencia entre C(z) y C‘(z) sería insignificante.
Se va a hacer un inciso en este punto demostrar que la solución de Wiener para la función de
transferencia del filtro adaptativo C’(z) será igual a la inversa de P(z). La señal de entrada de la
Figura 43 será blanca, con potencia unidad. La transformada de la autocorrelación de esta señal
es por tanto la unidad. La transformada z de la autocorrelación de la salida de la planta es:
)()()( 1−=Φ zPzPzyy
Esto es también la transformada de la autocorrelación de la entrada del filtro adaptativo C’(z). La
respuesta deseada para C’(z) es la señal de entrada. La transformada z de la correlación cruzada
entre la entrada de C’(z) y la respuesta deseada es:
)()( 1−=Φ zPzyu
La solución de Wiener para este caso es:
)()(
1)()(
)()()(
)(' 1
1
zCzPzPzP
zPzz
zCyy
yd ===ΦΦ
= −
−
Minimizando el error cuadrático medio se encuentra la inversa correcta.
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS DE FASE NO MÍNIMA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
57
4.3. INVERSAS DE PLANTAS DE FASE NO MÍNIMA
Ahora se va a considerar el ejemplo de la planta cuya función de transferencia es:
21
1
431
21)(−−
−
+−
+=zz
zzP
Esta planta es causal y estable, pero no es de fase mínima, ya que su cero cae fuera del círculo
unidad. La inversa de esta planta es:
1
21
21431
)(1)( −
−−
+
+−==
z
zz
zPzC
Es evidente que C(z) es inestable, ya que su polo cae fuera del círculo unidad. Usar C(z) como un
controlador en lazo abierto puede ser desastroso. Pero hay una forma de aliviar esta situación
que está basada en la teoría de la transformada de Laplace por dos lados. C(z) se puede
expandir de dos formas:
...27227
42731)( 4321 ++−+−= −−−− zzzzzC
...12827
6427
3227
1611
83)( 321 ++−+−= − zzzzzC
La primera expansión corresponde a una inversa causal pero inestable. La segunda a una no
causal, pero al menos estable. C(z) en cualquiera de las dos formas podría no resultar de la
optimización de Wiener. La primera forma podría hacer que el error cuadrático medio fuera
infinito. La segunda es no causal, y por tanto no es realizable por un filtro causal C’(z). De todas
formas, los dos primeros términos en esta segunda expansión son causales. Si la repercusión de
los demás términos son muy pequeños, la serie se podría aproximar por estos dos primeros
términos y se podría realizar un filtro causal útil que se aproximara a la inversa. Este no es el caso
del ejemplo actual de todas formas, pero la idea es sugestiva.
Seguidamente se muestra cómo sería la solución de Wiener para este ejemplo particular. Se
empleará la aproximación de Shanon-Bode. La Figura 44 ilustra cómo se hace . La señal de
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS DE FASE NO MÍNIMA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
58
modelado se asume que es blanca, de media cero y varianza unidad. La inversa causal de la
planta es, de acuerdo con Shanon-Bode, un compromiso entre un filtro blanqueador y un filtro
causal optimizado.
Filtro blanqueador
error
-
+
Señal demodelado
u
Σ
( )zz
zz
21431
1
21
+
+−−
−−( )
+−
−
++
1
1
2121
zzz
Planta
21
1
431
21−−
−
+−
+
zz
z
Filtro causal optimizado
Planta causal inversa
Figura 44: Ejemplo de diseño de Shannon-Bode de una planta inversa causal de Wiener
Para este ejemplo, usando una señal de modelado blanca, la transformada z de la
autocorrelación de la salida de la planta es:
( )( )
+−
+−
++=−−
−−
221
11
431
431
2121)()(zzzz
zzzPzP
Tras multiplicar y factorizar, la función de transferencia del filtro blanqueador apropiado resulta:
( )
+
+−=
+
+−
−
−−
−
−−
1
21
1
21
211
83
21
21
21431
z
zz
zz
zz
Sin considerar la causalidad, la función de transferencia del filtro optimizado se puede obtener
como la inversa del producto de la función de transferencia de la planta y el filtro blanqueador,
esto es:
1
1
21)21(
−
−
++z
zz
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS DE FASE NO MÍNIMA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
59
El próximo paso es encontrar una respuesta impulsiva estable correspondiente a esta última
función y luego borrar la porción no causal. Expandiendo:
...163
83
43
21
21)21( 32
1
1
−+−+=+
+−
−
zzzz
zz
La expansión es estable, pero cada término corresponde a una respuesta impulsiva no causal,
excepto el primero. Borrando la parte no causal, queda:
21
21)21(
1
1
=
++
+−
−
zzz
La solución causal de Wiener, finalmente, tiene una función de transferencia:
+
+−
−
−−
1
21
2114
431
z
zz
Con esto, el mínimo error cuadrático medio será H. Esto es un error cuadrático medio muy
grande comparado con la unidad, que es el valor cuadrático medio de la señal modeladora. El
filtro causal de Wiener no constituirá un buen controlador. La dificultad viene de intentar forzar
la planta de fase no mínima a responder instantáneamente a los comandos de entrada. En tales
casos, las respuestas retrasadas pueden ser utilizadas, con un error mucho más bajo.
Las plantas que tienen retraso la propagación de señales, u otras características que caen bajo la
descripción general de fase no mínima, no pueden ser forzadas a responder de forma
instantánea a cambios bruscos en las señales de control. Lo mejor que se puede hacer es adaptar
el controlador para que dé una respuesta impulsiva retrasada ante la señal modeladora. La idea
se ilustra en la Figura 45. La planta inversa retrasada se busca adaptativamente, así que cuando
su función de transferencia se multiplica por la función de transferencia de la planta P(z), el
producto tendrá una función de transferencia retrasada ∆ unidades.
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS DE FASE NO MÍNIMA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
60
-
+
Planta inversaretrasada
C’∆(z)
PlantaP(z)
Señal demodelado
Σ
Retrasoz-∆
Figura 45: Formando una planta inversa retrasada
Se puede reformular el ejemplo anterior, considerando un retraso según el esquema de la Figura
45. La planta es la misma, la entrada de la planta y la salida también, por lo que el filtro
blanqueador será el mismo. Ignorando los requerimientos de causalidad por el momento, la
función de transferencia del filtro optimizado se obtiene como la inversa del producto de la
planta y el filtro blanqueador, multiplicado por z-∆. El resultado es:
−−+−+=+
+ ∆−−
−∆− ...
323
163
83
43
21
21)21( 432
1
1
zzzzzz
zzz
Ahora se puede buscar una solución causal. El número de términos causales será igual a ∆+1. Si,
por ejemplo, se toma ∆=4:
323
163
83
43
21
21)21( 1234
1
5
−+−+=
++ −−−−
+−
−
zzzzz
zz
La función de transferencia para el nuevo filtro de Wiener causal, una planta inversa retrasada,
es:
+−
+∆−
−
−−
++
+
+−1
)1(
1
21
21)21(·
)21(
)431
zzz
zz
zz
El error cuadrático medio para ∆=4 es aproximadamente 0.003. Esto representa un error muy
bajo. Este nuevo filtro de Wiener sí podría ser un controlador muy bueno. Cuanto más grande
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS DE FASE NO MÍNIMA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
61
sea ∆, más términos se podrían incluir y resultaría una inversa retrasada más perfecta. Pero el
retraso en la respuesta de todo el sistema de control podría ser mayor si el filtro inverso se usa
como controlador. Con un retraso infinito, la inversa retrasada podría ser perfecta, pero inútil
desde un punto de vista práctico. Es claro que aumentando ∆ se reduce el error cuadrático
medio. Este será el caso general para cualquier planta de fase no mínima. Si la planta es de fase
mínima, un ∆ igual a 0 será suficiente, excepto cuando la planta tenga más polos que ceros. En
ese caso se utilizará ∆=1.
El análisis anterior se basa en que se asume el hecho de que el filtro inverso adaptativo C’∆(z) es
causal y tiene una respuesta impulsiva infinita (IIR). Si la respuesta impulsiva es finita (FIR),
incrementar ∆ más allá del límite de cualquier necesidad razonable podría llegar a ser dañino,
puesto que se podría llegar a “empujar” la respuesta impulsiva “fuera de la ventana de tiempo”
de C’∆(z).
Del estudio analítico simple del ejemplo anterior, se pueden ver las posibilidades de encontrar
excelentes inversas retrasadas para plantas de fase mínima y no mínima. Se ha usado la
aproximación de Shanon-Bode para determinar la función de transferencia óptima y causal IIR
para C’∆(z) y para determinar los valores del error cuadrático medio. Esta teoría sólo se puede
usar cuando existe una representación de la planta en la forma polo-cero. En el mundo real, P(z)
podría no ser conocida. En lugar de usar la teoría de Shanon-Bode, se podría usar un algoritmo
adaptativo simple para determinar el mejor C’∆(z). La solución adaptativa se podría aproximar al
resultado de Shanon-Bode. Aunque Shanon-Bode trabaja con filtros IIR, el filtro inverso
adaptativo podría ser un filtro FIR. La arquitectura de filtros FIR permite la adaptación con el
algoritmo LMS y, no habiendo polos, no habría problemas de inestabilidad.
MODELADO DE PLANTAS INVERSAS INVERSAS DE MODELOS DE REFERENCIA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
62
4.4. INVERSAS DE MODELOS DE REFERENCIA
En la Figura 46 se ilustra un proceso adaptativo para buscar una planta inversa con modelo de
referencia, C’M(z). El propósito de este proceso es obtener un controlador C’M(z) que cuando se
use para conducir la planta, resulte un sistema de control cuya función de transferencia pueda
seguir de forma muy cerca a la función de transferencia M(z) del modelo de referencia dado. El
esquema de modelado de una inversa retrasada de la Figura 45 es un caso particular, en el que
el modelo de referencia es un retraso simple con una función de transferencia de z-∆.
-
+
Inversa de plantacon modelo de
referenciaC’Μ(z)
PlantaP(z)
Señalmodeladora
ΣModelo dereferencia
M(z)
Figura 46: Buscando una planta inversa con modelo de referencia
Para demostrar como trabaja la inversa del modelo de referencia, se hace el siguiente
experimento: la Figura 47 muestra la respuesta al escalón de una planta P(z). Es estable, tiene un
retraso, y tiene una respuesta oscilatoria amortiguada. La Figura 48 muestra la respuesta del
modelo de referencia M(z), diseñado para tener el mismo retraso y una respuesta
sobreamortiguada. La Figura 48 también muestra la respuesta al escalón de la cascada de la
inversa con modelo de referencia C’M(z) y la planta P(z), mediante asteriscos. Se puede observar
que la respuesta del modelo de la cascada es muy parecida a la respuesta del modelo de
referencia, por lo que se ilustra la efectividad del proceso del modelo de referencia inverso.
MODELADO DE PLANTAS INVERSAS INVERSAS DE MODELOS DE REFERENCIA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
63
0 2 4 6 8 10 12 14 16 18 200
0.5
1
1.5
2
2.5Salida del sistema
Muestras
Am
plitu
d
Figura 47: Respuesta al escalón de la planta usada en el control con modelo de referencia
0 2 4 6 8 10 12 14 16 18 200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1Salida del sistema
Muestras
Am
plitu
d
Figura 48: Respuesta de la planta controlada (*), superpuesta sobre la respuesta al escalón deseada del
modelo de referencia, ilustrando la correcta adaptación
MODELADO DE PLANTAS INVERSAS INVERSAS DE MODELOS DE REFERENCIA
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
64
Para este experimento la función de transferencia era:
)7.01)(6.01()8.01(4.2)( 11
1
−−
−
−+−=
zzzzzP
y el modelo de referencia:
21
1
)5.01(25.0)( −
−
−=
zzzM
Para que la inversa fuera correcta, era necesario que el modelo de referencia tuviera un retraso al
menos tan grande como el de la planta, o que tuviera una respuesta al escalón lenta. Como esta
condición se cumple, la respuesta al escalón del controlador y de la planta siguen de forma muy
cercana a la del modelo de referencia.
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS CON PERTURBACIONES
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
65
4.5. INVERSAS DE PLANTAS CON PERTURBACIONES
El proceso de modelado inverso llega a ser un poco más complicado cuando la planta está sujeta
a alteraciones. El esquema de modelado inverso se muestra en la Figura 49, en su aproximación
más simple:
Error ek
dk
zkyk
-
+
Inversa de plantacon modelo de
referenciaC’Μ(z)
PlantaP(z)uk
Modelo dereferencia
M(z)
++
Ruido dela planta
nk
Σ
Σ
Figura 49: Método incorrecto de modelado inverso de una planta con perturbaciones
Desafortunadamente, esta aproximación no trabaja muy bien con una planta sujeta a
perturbaciones. La razón es que la alteración, yendo directamente a la entrada del filtro inverso
adaptativo C’(z), distorsiona la solución convergente de Wiener e impide la formación apropiada
de la inversa.
Sin perturbaciones en la planta, la solución de Wiener sería:
)()(
)()(
)('zPzM
zz
zCyy
yd =ΦΦ
=
Este es el resultado que se debe buscar. Se hace notar que yk es la salida de la planta sin
alteración (como en la Figura 46) y dk es la salida del modelo de referencia.
La situación es diferente en presencia de la distorsión de la planta. En la Figura 49, la salida de la
planta distorsionada es zk . La solución de Wiener se puede escribir:
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS CON PERTURBACIONES
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
66
)()(
)('zz
zCzz
zd
ΦΦ
=
Teniendo en cuenta que la distorsión de la planta nk no está correlada con dk y zk, la ecuación
anterior se puede escribir como:
)()()(
)('zz
zzC
nnyy
yd
Φ+ΦΦ
=
El segundo término en el denominador hace que C’(z) sea distinta a)()(
zPzM
.
y'k
Error ek
dk
zkyk
-
+
Inversa delmodelo dereferencia
C’(z)
PlantaP(z)uk
Σ
Modelo dereferencia
M(z)
++
Ruido dela planta
nk
ΣModelo de la
plantaP’k(z)
+
-
Σ
Figura 50: Método adecuado para el modelado inverso de una planta con perturbaciones
El esquema de modelado inverso mostrado en la Figura 50 supera el problema anterior haciendo
uso de un modelo adaptativo de la planta. En lugar de encontrar una inversa del modelo de
referencia de la planta P(z), la inversa del modelo de referencia se toma de P’(z). La idea es que
P’(z) tiene esencialmente la misma respuesta dinámica de P(z), pero está libre de alteraciones.
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS CON PERTURBACIONES
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
67
La distorsión de la planta no afecta a la solución de Wiener cuando la planta se modela
directamente para obtener P’(z). Sí afecta en el caso de utilizar el esquema de la Figura 49.
El esquema de la Figura 50 ha sido probado con plantas distorsionadas y trabaja muy bien. Se
debe tener en cuenta, de todos modos, que la existencia de niveles altos de perturbación en la
planta obliga a una adaptación de P’(z) más lenta, para tratar de mantener bajo el nivel de ruido
en los pesos. Y es importante mantener bajo el ruido en los pesos de P’(z) para que los pesos de
C’(z) también permanezcan bajos.
El sistema de la Figura 50 adapta los pesos de C’(z) online. La entrada de P’(z) es uk, la entrada
actual de la planta. La salida de P’(z) guía la entrada de C’(z). El proceso adaptativo para la
obtención de C’(z) siempre vendrá retrasado tras la obtención de P’(z). Ambos procesos
adaptativos trabajan en cascada. Para permitir que el proceso adaptativo de C’(z) siga los
cambios de P’(z) sin retardo, se propone un esquema offline, mostrado en la Figura 51.
Este esquema emplea uno de los métodos vistos en el capítulo anterior para obtener P’(z). Una
copia digital exacta de P’(z) se usa en un proceso offline para obtener C’(z). Una señal
modeladora sirve de entrada a la copia de P’(z), y su salida pasa por C’(z). La misma señal
modeladora sirve como referencia para el modelo de referencia M(z), y su salida se compara con
C’(z) para obtener una señal de error. C’(z) se adapta para minimizar la media cuadrática de este
error.
El proceso de modelado inverso offline puede ser ejecutado de forma mucho más rápida que el
de tiempo real. Tan rápido, en principio, que para valores instantáneos de P’(z) obtenidos por el
proceso directo de modelado, el proceso offline de modelado inverso proporciona los
correspondientes valores de C’(z), básicamente de forma instantánea.
La señal modeladora empleada para dirigir el proceso offline de modelado inverso podría ser
blanco, o mejor aún, podría ser espectralmente ajustado y diseñado para obtener mejores
resultados.
MODELADO DE PLANTAS INVERSAS INVERSAS DE PLANTAS CON PERTURBACIONES
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
68
uk
Error
Error ek
ykPlantaP(z)
++
Ruido dela planta
nk
ΣModelo dereferencia
de la plantaP’k(z)
+
-
Σ Salida dela planta zk
-
+
C’k(z)CopiaP’k(z)
Señalmodeladora
ΣModelo dereferencia
M(z)
Figura 51: Proceso offline para el modelado inverso de una planta con perturbaciones
Capítulo 5: CONTROL INVERSO
ADAPTATIVO
CONTROL INVERSO ADAPTATIVO INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
70
5.1. INTRODUCCIÓN
Un sistema de control inverso adaptativo se muestra en la Figura 52. Si el controlador fuese
ideal, su función de transferencia sería:
)()()(
zPzMzC =
uk
Error ek
yk
-
+
ControladorC’(z)
PlantaP(z)
Entrada dela planta ik
Σ
Modelo dereferencia
M(z)
++
Ruido dela planta
nk
Σ Salida dela planta zk
Algoritmoadaptativo
Figura 52: Un sistema de control adaptativo que trabaja bien, pero adapta lentamente
El controlador adaptativo no será ideal generalmente; su función de transferencia puede ser
formulada como:
)()()(' zCzCzC ∆+=
El vector de coeficientes del controlador se puede expresar por tanto:
CCC ∆+='
El algoritmo LMS no se puede usar para adaptar el controlador de la Figura 52. Se pueden usar
otros muchos algoritmos adaptativos, de todas formas, para ajustar automáticamente los
coeficientes de C’(z). Sin embargo estos algoritmos son muy lentos. Sería deseable usar el LMS
porque es mucho más rápido, pero no se puede usar directamente porque el error ek de la
Figura 52 está referido a la salida de la planta.
CONTROL INVERSO ADAPTATIVO INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
71
El LMS necesita un error referido a la entrada de la planta, es decir, a la salida del controlador
adaptativo. Para obtener un error apropiado para la implementación del LMS, se necesitaría
aplicar ek a la inversa de la planta P(z). El sistema de la Figura 52 no es el apropiado para este
objetivo.
Para poder utilizar el algoritmo LMS, se puede emplear la configuración de la Figura 53. Se
cambia la posición de la planta y su modelo inverso, por lo que el error se puede tomar
directamente de la adaptación de C’(z). Una vez que se obtiene C’(z), una copia digital exacta se
usa como controlador de la planta.
uk
Error ek
yk
-
+
CopiaC’(z)
PlantaP(z)
Entrada dela planta ik
Σ
Modelo dereferencia
M(z)
++
Ruido dela planta
nk
Σ
Salida dela planta zk
C’(z)
Figura 53: Sistema de control inverso adaptativo. Trabaja bien sólo cuando el ruido de la planta es bajo
El sistema de la Figura 53 trabaja bien mientras no haya perturbación en la planta. La
perturbación que aparece en la salida de la planta añade una componente a la varianza de la
señal de entrada del modelo inverso adaptativo, que afecta directamente a la solución de
Wiener. ¿Qué se podría hacer? Existen un cierto número de alternativas, y la aproximación
propuesta en la Figura 54 ofrece la capacidad de rápida adaptación y un control apropiado
incluso en presencia de perturbaciones en la planta.
El sistema de la Figura 54 se basa en el esquema de modelado inverso de Figura 51. Trabaja de
la siguiente forma: se forma un modelo P’k(z) de la planta P(z), usando en este caso una señal de
excitación como en el esquema A. Se utiliza un proceso offline para obtener el controlador
C’k(z), de una copia digital de P’k(z), y el modelo de referencia M(z). El proceso offline adapta
C’k(z), de modo que la salida de la cascada de P’k(z) y C’k(z) es la mejor aproximación de M(z).
CONTROL INVERSO ADAPTATIVO INTRODUCCIÓN
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
72
uk
Error
u'k
Error ek
ykPlantaP(z)
++
Ruido dela planta
nk
ΣModelo dereferencia
de la plantaP’k(z)
+
-
Σ Salida dela planta zk
++ΣCopia
C’(z)Entrada dela planta ik
Señaloscilante
δk
-
+
C’k(z)CopiaP’k(z)
Señalmodeladora
ΣModelo dereferencia
M(z)
Figura 54: Sistema de control inverso con modelado inverso ‘offline’
Hay que observar que en la adaptación de C’k(z) en el proceso offline se utiliza P’k(z). Se ha
empleado P’k(z) y no P(z) porque la salida de la planta real está generalmente corrompida por las
perturbaciones. Como P’(z) no sigue perfectamente a P(z) todo el tiempo, el uso de P’(z) en la
determinación de C’(z) provoca errores en C’(z).
CONTROL INVERSO ADAPTATIVO ANÁLISIS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
73
5.2. ANÁLISIS
La Figura 55 muestra un diagrama de bloques de un sistema de control inverso adaptativo. El
método de modelado de planta que se emplea aquí es el esquema C con señal de excitación.
Un proceso offline se muestra en la Figura 55 para el cálculo del controlador C’k(z) a partir de un
modelo de la planta P’k(z). Como se comentó anteriormente, el proceso offline se puede basar
en un algoritmo adaptativo que use una señal modeladora (puede ser ruido blanco o coloreado).
Una copia de C’k(z) se utiliza como controlador de la planta.
El modelo de referencia M(z) se usa en el proceso de modelado inverso offline. Otra copia de
este modelo de referencia puede ser usada simbólicamente para la monitorización del error del
sistema. La porción punteada del diagrama de bloques mostrado en la figura sugiere esta
posibilidad.
CONTROL INVERSO ADAPTATIVO ANÁLISIS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
74
Modeloadaptativo
P’k(z)
PlantaP(z)
-
+
++
Ruido dela planta
nk
Σ
Salida delsistema de control
+
+
Señal oscilante(ruido blanco)
δk
-+
ΣCopia dela planta
P’k(z)
CopiaC’(z)
Entrada dela planta ik
Modelo dereferencia
M(z)Σ
Error delsistema total
E(z)
+
-
Error
-
+
C’k(z)CopiaP’k(z)
Señalmodeladora
ΣModelo dereferencia
M(z)
Σ Σ
Figura 55: Sistema de control inverso adaptativo con modelo de referencia
El error total del sistema es E(z), y este consiste en la suma de cuatro componentes:
a. Ruido de la planta.
b. Ruido de la señal de excitación, filtrado a través de la planta.
c. Error del sistema debido al truncamiento de P’(z) y/o C’(z).
CONTROL INVERSO ADAPTATIVO ANÁLISIS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
75
d. Error dinámico del sistema.
La componente (a) es el ruido de la salida de la planta, cuyo valor cuadrático medio es:
)( 2knE
plantaladesalidalaaruidodelpotencia
=
La componente (b) es ruido a la salida de la planta debido a la señal de excitación el cual, si es
blanca, vendrá dado por:
∑∞
=
=
=
0
222 )()(
·)(i
ikk pEzPdeimpulsivarespuesta
ladeimpulsoslosdecuadradoslosdesuma
Eplantalade
salidalaaoscilanteseñalladeruido
δδ
La tercera componente es el error del sistema a la salida de la planta debido a los efectos de
truncamiento, y se asume que este error es despreciable, ya que se elige un número apropiado
de coeficientes n para P’k(z) y m pesos para C’k(z), y un modelo de referencia apropiado.
La componente (d) es el error dinámico del sistema, y su potencia viene dada por:
( ))0(··),( BBnmmínsistemadeldinámicoerror
Φ=
β
La potencia del error de todo el sistema es la suma de todos ellos:
( ))0(··),()()(0
222BB
iikk nmmínpEnE
sistemaeltododeerrordelpotencia
Φ++=
∑∞
=
βδ
El primer término es la potencia del ruido de la planta, E(nk2), que es independiente del diseño de
los parámetros del sistema de control. Son de especial interés los dos últimos términos de la
ecuación anterior, que hacen juntos referencia a la potencia del exceso de error debido a las
imperfecciones del sistema de control.
( ))0(··),()(0
22BB
iik nmmínpE
sistemaeltododeerrordelpotencia
Φ+=
∑∞
=
∆βδ
CONTROL INVERSO ADAPTATIVO ANÁLISIS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
76
La minimización de este exceso de error es el próximo objetivo. El sistema de control de la Figura
55 tiene un número pequeño de parámetros ajustables, una vez que se fija la tasa de muestreo y
el número de coeficientes m y n se eligen. Los que quedan por ajustar son el valor de µ en el
algoritmo LMS usado para obtener P‘k(z) y la potencia de la señal de excitación E(δk2).
La constante de tiempo del proceso de modelado adaptativo para P‘k(z), es la de mayor tiempo
para todo el sistema, y supone la constante de tiempo del aprendizaje del sistema. Debe ser tan
grande como sea posible, sin sobrepasar el valor que incapacitaría al proceso adaptativo de
cambiar con las variaciones de las características de la planta. Algunos conocimientos de la tasa
de cambio de las características de la planta podrían ayudar a encontrar el valor de la constante
de tiempo adaptativa τ para P’(z).
Con τ fijada, encontrar un valor específico para la potencia de la señal oscilante es un simple
problema de optimización. Se puede demostrar que:
( ))(2
)(·)0(··),()( 2
2
0
22
k
kBB
iik E
nEnmmínpEsistemaeltodode
errordelpotenciaδτ
βδ Φ+=
∑∞
=
Para encontrar el mejor valor de E(δk2), se deriva la ecuación anterior respecto a E(δk
2) y se iguala
a cero. Entonces:
( )
∑∞
=
Φ=
0
2
22
2
)0(),()()(
ii
BBkoptk
p
nmmínnEEτ
δ
Usando este valor para la potencia de la señal oscilante, el error mínimo queda:
( )∑∞
=Φ=
0
22 )0(),()(2i
iBBkmín
pnmmínnEsistemaeltodode
errordelpotenciaτ
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
77
5.3. SIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Hasta este momento se han ido presentando los diferentes elementos constructivos de un
sistema de control inverso adaptativo. Es ahora cuando se van a poner todos juntos para
elaborar una simulación que demuestre el comportamiento de los controladores en lazo abierto
desarrollados.
Se empleará un esquema como el de la Figura 54, en el que habrá un proceso offline para la
caraterización en cada instante de la inversa de la planta, incluyendo las perturbaciones a que
esté sometida. La planta empleada para todas las simulaciones será de fase mínima, con la
siguiente representación en el plano z:
21
1
431
211
)(−−
−
+−
+=
zz
zzP
Con este montaje se va a obtener un cierto controlador, que será puesto a prueba en un
proceso independiente, en serie con la planta, para comprobar su respuesta mientras se trata de
hacer el seguimiento de unos escalones. En este último montaje podrá existir o no algún tipo de
ruido añadido a la salida de la planta.
5.3.1 SIMULACIÓN SIN PERTURBACIONES
La primera de las simulaciones realizadas está libre de perturbaciones. La planta es sometida a un
proceso de caracterización mediante el uso de una señal de entrada formada en su mayor parte
por ruido blanco, aunque en su parte final se incluyen unos escalones.
En la Figura 56 se puede observar el proceso de adaptación: en color rojo se puede ver la salida
real de la planta, y en color azul la salida del modelo adaptativo de la misma. Se puede apreciar
como tras un entrenamiento de algo menos de 1000 muestras ambas salidas son prácticamente
indistinguibles.
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
78
En la Figura 57 se muestra el proceso de adaptación de los pesos de Wiener del modelo del
controlador inverso adaptativo que se va generando a lo largo del proceso. Se puede apreciar
como a partir de unas 500 muestras aproximadamente los pesos permanecen prácticamente
constantes.
En la Figura 58 se muestra la última iteración del proceso offline de adaptación del controlador
inverso. En verde se muestra la salida tras el controlador inverso, y en negro la señal modeladora
(ruido blanco). Se puede observar el completo solapamiento de ambas gráficas, signo indicativo
de que el controlador constituye una inversa apropiada del modelo de la planta.
0 200 400 600 800 1000 1200 1400 1600 1800 2000-8
-6
-4
-2
0
2
4
6
8
10Salida del sistema
Muestras
Sal
ida
real
(rojo
)yes
timad
a(a
zul)
dela
plan
ta
Figura 56: Simulación #1: proceso de adaptación del modelo de la planta
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
79
0 200 400 600 800 1000 1200 1400 1600 1800 2000-40
-30
-20
-10
0
10
20
30
40Pesos del filtro de Wiener
Muestras
Pes
os
Figura 57: Simulación #1: evolución de los pesos de Wiener del modelo del controlador inverso
0 20 40 60 80 100 120 140 160 180 200-1.5
-1
-0.5
0
0.5
1
1.5Salida del sistema
MuestrasSal
ida
mod
elo
cont
rol(
verd
e)y
seña
lmod
elad
ora
(neg
ro)d
ela
plan
ta
Figura 58: Simulación #1: última iteración del proceso offline
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
80
En las siguientes figuras se muestra el resultado de una simulación realizada para poner a prueba
el controlador obtenido en el paso anterior, realizando el seguimiento de una serie de
referencias en forma de escalón (representadas en color negro). Se puede observar como la
salida del sistema (en color rojo) realiza un seguimiento prácticamente perfecto de las
referencias, con rampas de subida y bajada muy abruptas, y sin sobredisparo en las transiciones.
0 50 100 150 200 250 300 350 400-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5Salida del sistema
Muestras
Sal
ida
plan
ta(ro
jo)y
entra
da(n
egra
)del
sist
ema
Figura 59: Simulación #1: prueba de seguimiento de referencias con el controlador inverso obtenido
Además, se adjuntan dos detalles de esta misma gráfica, para poder observar el error cometido
en el seguimiento de la señal de entrada. Se llama la atención sobre la magnitud de ese error.
Dado que el control se realiza en lazo abierto, en el permanente existen diferencias mínimas con
las referencias debido a los errores acumulados en el proceso (en los pesos de los modelos, los
introducidos por los métodos matemáticos empleados, etc.).
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
81
190 200 210 220 230 240 250 260
1.88
1.9
1.92
1.94
1.96
1.98
2
2.02
2.04
2.06
2.08
Salida del sistema
Muestras
Sal
ida
plan
ta(ro
jo)y
entra
da(n
egra
)del
sist
ema
Figura 60: Simulación #1: prueba de seguimiento de referencias (detalle #1)
350 355 360 365 370 375 380 385 390 395 400
-8
-6
-4
-2
0
2
4
6
8
10x 10-3 Salida del sistema
Muestras
Sal
ida
plan
ta(ro
jo)y
entra
da(n
egra
)del
sist
ema
Figura 61: Simulación #1: prueba de seguimiento de referencias (detalle #1)
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
82
5.3.2 SIMULACIÓN CON PERTURBACIONES EN EL ENTRENAMIENTO
La segunda simulación realizada presenta una variación con respecto a la anterior, que consiste
en la adición de ruido a la salida de la planta, aunque sólo en el proceso de adaptación. Debido
a la presencia de este ruido dicho proceso de adaptación resulta ligeramente más lento, así
como el proceso de convergencia de los pesos de Wiener del controlador inverso (aunque se
consigue alcanzar una inversa apropiada). Estos extremos se pueden apreciar en las siguientes
figuras:
0 200 400 600 800 1000 1200 1400 1600 1800 2000-8
-6
-4
-2
0
2
4
6
8
10Salida del sistema
Muestras
Sal
ida
real
ruid
osa
(rojo
)yes
timad
a(a
zul)
dela
plan
ta
Figura 62: Simulación #2: proceso de adaptación del modelo de la planta
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
83
0 200 400 600 800 1000 1200 1400 1600 1800 2000-40
-30
-20
-10
0
10
20
30
40Pesos del filtro de Wiener
Muestras
Pes
os
Figura 63: Simulación #2: evolución de los pesos de Wiener del modelo del controlador inverso
0 20 40 60 80 100 120 140 160 180 200-1.5
-1
-0.5
0
0.5
1
1.5Salida del sistema
MuestrasSal
ida
mod
elo
cont
rol(
verd
e)y
seña
lmod
elad
ora
(neg
ro)d
ela
plan
ta
Figura 64: Simulación #2: última iteración del proceso offline
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
84
La presencia de ruido provoca la generación de un controlador inverso adaptativo que incorpora
algunas de las características del ruido al que se ha sometido a la planta. Si generamos una
simulación para comprobar el desempeño del controlador inverso en ausencia de este ruido, se
puede apreciar como la salida del sistema sigue realizando un muy buen seguimiento de la
referencia, con rampas abruptas y sin sobredisparo, aunque en los tramos de referencia
constante existe un poco menos de estabilidad en los valores que en la simulación realizada en
ausencia de ruido.
0 50 100 150 200 250 300 350 400-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5Salida del sistema
Muestras
Sal
ida
plan
ta(ro
jo)y
entra
da(n
egra
)del
sist
ema
Figura 65: Simulación #2: prueba de seguimiento de referencias con el controlador inverso obtenido
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
85
200 205 210 215 220 225 230 235 240 245 250
1.92
1.94
1.96
1.98
2
2.02
2.04
2.06
2.08
2.1
Salida del sistema
Muestras
Sal
ida
plan
ta(ro
jo)y
entra
da(n
egra
)del
sist
ema
Figura 66: Simulación #2: prueba de seguimiento de referencias (detalle #1)
350 355 360 365 370 375 380 385 390 395 400
-8
-6
-4
-2
0
2
4
6
8
x 10-3 Salida del sistema
Muestras
Sal
ida
plan
ta(ro
jo)y
entra
da(n
egra
)del
sist
ema
Figura 67: Simulación #2: prueba de seguimiento de referencias (detalle #2)
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
86
5.3.3 SIMULACIÓN CON PERTURBACIONES EN EL SEGUIMIENTO
La tercera simulación realizada también va a presentar ruido a la salida de la planta, aunque sólo
en el momento de poner a prueba el controlador obtenido. De este modo, en la primera parte
de la simulación se obtendrán valores muy similares a los obtenidos y representados en el
apartado 5.3.1. Se muestran a continuación los resultados:
0 200 400 600 800 1000 1200 1400 1600 1800 2000-10
-8
-6
-4
-2
0
2
4
6
8
10Salida del sistema
Muestras
Sal
ida
real
(rojo
)yes
timad
a(a
zul)
dela
plan
ta
Figura 68: Simulación #3: proceso de adaptación del modelo de la planta
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
87
0 200 400 600 800 1000 1200 1400 1600 1800 2000-40
-30
-20
-10
0
10
20
30
40Pesos del filtro de Wiener
Muestras
Pes
os
Figura 69: Simulación #3: evolución de los pesos de Wiener del modelo del controlador inverso
0 20 40 60 80 100 120 140 160 180 200-1.5
-1
-0.5
0
0.5
1
1.5Salida del sistema
MuestrasSal
ida
mod
elo
cont
rol(
verd
e)y
seña
lmod
elad
ora
(neg
ro)d
ela
plan
ta
Figura 70: Simulación #3: última iteración del proceso offline
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
88
Como se ha comentado anteriormente, en esta simulación va a existir un ruido añadido a la
salida de la planta en el proceso de comprobación del controlador inverso adaptativo obtenido
en el entrenamiento previo. En ausencia de ruido (representado en color rojo) la respuesta del
sistema es muy buena. La presencia de dicho ruido (la salida ruidosa del sistema está
representada en color azul) afectará directamente a la salida del sistema, dado que no existe
ningún mecanismo de control ni de compensación en el esquema de control en lazo abierto
empleado. Esto se puede apreciar en las siguientes gráficas:
0 50 100 150 200 250 300 350 400-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5Salida del sistema
MuestrasSal
ida
plan
ta(ro
jo),
plan
taru
idos
a(a
zul)
yen
trada
(neg
ra)d
elsi
stem
a
Figura 71: Simulación #3: prueba de seguimiento de referencias con el controlador inverso obtenido
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
89
205 210 215 220 225 230 235 240 245 250
1.92
1.94
1.96
1.98
2
2.02
2.04
2.06
2.08
2.1Salida del sistema
MuestrasSal
ida
plan
ta(ro
jo),
plan
taru
idos
a(a
zul)
yen
trada
(neg
ra)d
elsi
stem
a
Figura 72: Simulación #3: prueba de seguimiento de referencias (detalle #1)
355 360 365 370 375 380 385 390 395 400
-8
-6
-4
-2
0
2
4
6
8
x 10-3 Salida del sistema
MuestrasSal
ida
plan
ta(ro
jo),
plan
taru
idos
a(a
zul)
yen
trada
(neg
ra)d
elsi
stem
a
Figura 73: Simulación #3: prueba de seguimiento de referencias (detalle #2)
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
90
5.3.4 SIMULACIÓN CON PERTURBACIONES TANTO EN EL ENTRENAMIENTO
COMO EN EL SEGUIMIENTO DE REFERENCIAS
En esta cuarta y última simulación se van a incorporar efectos perturbadores tanto en el proceso
adaptativo de caracterización de la planta y de su controlador inverso, como en la prueba de
seguimiento de referencias del controlador obtenido. Los comentarios realizados en el apartado
5.3.2 tienen completa validez aquí. Seguidamente se muestran las gráficas con los resultados de
la primera parte de esta simulación:
0 200 400 600 800 1000 1200 1400 1600 1800 2000-10
-8
-6
-4
-2
0
2
4
6
8
10Salida del sistema
Muestras
Sal
ida
real
ruid
osa
(rojo
)yes
timad
a(a
zul)
dela
plan
ta
Figura 74: Simulación #4: proceso de adaptación del modelo de la planta
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
91
0 200 400 600 800 1000 1200 1400 1600 1800 2000-40
-30
-20
-10
0
10
20
30
40Pesos del filtro de Wiener
Muestras
Pes
os
Figura 75: Simulación #4: evolución de los pesos de Wiener del modelo del controlador inverso
0 20 40 60 80 100 120 140 160 180 200-1.5
-1
-0.5
0
0.5
1
1.5Salida del sistema
MuestrasSal
ida
mod
elo
cont
rol(
verd
e)y
seña
lmod
elad
ora
(neg
ro)d
ela
plan
ta
Figura 76: Simulación #4: última iteración del proceso offline
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
92
En la simulación de comprobación del desempeño del controlador inverso adaptativo obtenido
se puede observar como la suma de efectos perturbadores no impide que la respuesta dinámica
global del sistema siga siendo muy buena, con las mismas respuestas rápidas y enérgicas ante los
escalones de referencia, y sin sobredisparo, aunque los efectos de los distintos ruidos quedan
claramente reflejados en las gráficas.
0 50 100 150 200 250 300 350 400-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5Salida del sistema
MuestrasSal
ida
plan
ta(ro
jo),
plan
taru
idos
a(a
zul)
yen
trada
(neg
ra)d
elsi
stem
a
Figura 77: Simulación #4: prueba de seguimiento de referencias con el controlador inverso obtenido
CONTROL INVERSO ADAPTATIVOSIMULACIÓN DE UN SISTEMA DE CONTROL INVERSO
ADAPTATIVO
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
93
200 205 210 215 220 225 230 235 240 245 250
1.92
1.94
1.96
1.98
2
2.02
2.04
2.06
2.08
2.1Salida del sistema
MuestrasSal
ida
plan
ta(ro
jo),
plan
taru
idos
a(a
zul)
yen
trada
(neg
ra)d
elsi
stem
a
Figura 78: Simulación #4: prueba de seguimiento de referencias (detalle #1)
350 355 360 365 370 375 380 385 390 395-10
-8
-6
-4
-2
0
2
4
6
8
x 10-3 Salida del sistema
MuestrasSal
ida
plan
ta(ro
jo),
plan
taru
idos
a(a
zul)
yen
trada
(neg
ra)d
elsi
stem
a
Figura 79: Simulación #4: prueba de seguimiento de referencias (detalle #2)
Capítulo 6: CONCLUSIONES
CONCLUSIONES
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
95
A lo largo de este proyecto se han ido presentando una serie de resultados, de los cuales los más
representativos pueden resumirse como:
1) Se pueden desarrollar controladores inversos precisos para plantas de fase mínima y, con
una respuesta retrasada de cierta manera, también para plantas de fase no mínima. Las
respuestas de las plantas empleando estos controladotes pueden ser difíciles de alcanzar
mediante otras técnicas de control, como es el caso del seguimiento de escalones sin
sobredisparo mostrado en las simulaciones.
2) El mismo efecto de una respuesta en bucle cerrado se puede obtener en un sistema de
control en lazo abierto con propagación hacia adelante, empleando la realimentación
inherente del filtrado adaptativo para encontrar el controlador inverso adaptativo.
3) Las variaciones en el tiempo de los parámetros de la planta pueden ser canceladas de
forma óptima mediante mecanismos, offline por ejemplo, que caractericen dichos
cambios.
4) Alcanzar una respuesta global de un sistema que sea una estimación de mínimos
cuadrados de la respuesta de un modelo de referencia es, generalmente, un proceso
directo y natural empleando control inverso adaptativo.
5) Si la planta es inestable, debe ser primero estabilizada mediante realimentación. Después,
tanto la planta como su realimentación pueden ser sometidas a control inverso
adaptativo, siendo el conjunto planta+realimentación tratados como una planta
equivalente. La capacidad de cancelación de la perturbación de la planta no se ve
afectada por la elección de la realimentación estabilizadora. La capacidad de alcanzar una
respuesta dinámica global deseada del sistema tampoco se ve afectada por la elección de
la realimentación estabilizadora. Si la inversa necesita un retardo para su realización, el
retardo requerido no dependerá de la elección de la realimentación estabilizadora.
A partir del punto alcanzado en el presente proyecto se pueden seguir desarrollando escenarios
de aplicación del control inverso adaptativo, como puede ser el caso de la cancelación adaptativa
de ruido en la planta, o la aplicación a sistemas MIMO o a sistemas no lineales.
Capítulo 7: APÉNDICE
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
97
7.1. LISTADOS DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
7.1.1 CAPÍTULO 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Capítulo 3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear all;close all;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% H(s) = (s+0.5) / (s+1)(s-1)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%num1=[1 -0.5]; den1=[1 0 -1];sys1=tf(num1,den1)num2=[1 1]; den2=[1 5 -14];sys2=tf(num2,den2)sys3=tf([1],[1]);series(sys1,sys2)num4=[1 -0.5]; den4=[1 4 -19 14];sys4=tf(num4,den4)sys5=feedback(21*sys4,sys3)num5=[21 -10.5]; den5=[1 4 2 3.5];roots(den5)sys6=feedback(24*sys4,sys3)num6=[24 -12]; den6=[1 4 5 2];roots(den6)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allhold onaxis([-6 6 -6 6])rlocus(sys5)xlabel('Eje real')ylabel('Eje imaginario')title('Lugar de las raíces')pause%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allhold onaxis([-6 6 -6 6])rlocus(sys6)xlabel('Eje real')ylabel('Eje imaginario')title('Lugar de las raíces')pause%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DISCRETIZAMOS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
98
[num5d,den5d]=c2dm(num5,den5,0.1,'zoh')roots(num5d)roots(den5d)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% respuesta al escalón%step(numc5,denc5),grid;%pause;% respuesta al impulso%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close ally5d=dimpulse(num5d,den5d);hold onaxis ([0 400 -0.5 0.4])bar(y5d,0.1)gridtitle('Salida del sistema')xlabel('Tiempo (0.1 s)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Creamos la respuesta del modelo adaptativo% con una señal de entrada aleatoria, de media 0% y la comparamos con la respuesta del sistema original (discretizado)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=10000; L=400; mu=0.1; alpha=0.1;sigma=1;w5=zeros(1,L+1);modeladora=sqrt(12)*(rand(1,N)-0.5);px=0;%if(den5d(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (den5d(1)~=1)
den5d=den5d/den5d(1);num5d=num5d/den5d(1);
endfor k=0:N-1,
sum=0;for n=0:length(num5d)-1,
valor=0;if (k-n)>=0,
valor=modeladora(min([k-n+1,length(modeladora)]));endsum=sum+num5d(n+1)*valor;
endfor n=1:length(den5d)-1,
valor=0;if (k-n)>=0,
valor=y5d_sim(k-n+1);endsum=sum-den5d(n+1)*valor;
endy5d_sim(k+1)=sum;
end%NN=length(modeladora); LL=length(w5)-1;if NN~=length(y5d_sim),
error('SPNLMS: lengths of x and d row vectors not equal.');
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
99
endif (mu<=0)|(mu>=1)|(sigma<=0)|(alpha<0)|(alpha>=1),
error('SPNLMS: mu, sigma, or alpha out of range.');endy5d_adapt=zeros(1,NN);if(length(px)<LL),
px=[px,zeros(1,LL-length(px))];endpx=[0,px];for k=1:NN,
px(1)=modeladora(k);y5d_adapt(k)=w5*px';if abs(y5d_adapt(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y5d_adapt(k+1:NN)=zeros(1,NN-k);return
ende(k)=y5d_sim(k)-y5d_adapt(k);ee=e(k);e2(k)=ee^2;sigma=alpha*(px(1)^2)+(1-alpha)*sigma;tmp=2*mu/((LL+1)*sigma);w5=w5+tmp*ee*px;px(LL+1:-1:2)=px(LL:-1:1);
endpx=px(2:LL+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onplot(y5d_sim,'r')plot(y5d_adapt,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real (rojo) y estimada (azul)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;semilogy(abs(e))gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e)gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot((e2))gridtitle('Evolución del error cuadrático')xlabel('Muestras')ylabel('Valor del error')pause;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
100
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=400;impulso=[0 1 zeros(1,N-2)];e=zeros(1,N);e2=zeros(1,N);for k=length(y5d)+1:N,
y5d(k)=0;endpx=0;if(length(px)<LL),
px=[px,zeros(1,LL-length(px))];endpx=[0,px];for k=1:N,
px(1)=impulso(k);y5d_sim2(k)=w5*px';if abs(y5d_sim2(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y5d_sim2(k+1:N)=zeros(1,N-k);return
ende(k)=y5d(k)-y5d_sim2(k);ee=e(k);e2(k)=ee^2;px(LL+1:-1:2)=px(LL:-1:1);
endpx=px(2:LL+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allhold onaxis ([0 400 -0.5 0.4])bar(y5d_sim2,0.1)gridtitle('Salida del sistema')xlabel('Tiempo (0.1 s)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;semilogy(abs(e))gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e)gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot((e2))gridtitle('Evolución del error cuadrático')xlabel('Muestras')ylabel('Valor del error')pause;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
101
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[num6d,den6d]=c2dm(num6,den6,0.1,'zoh')roots(num6d)roots(den6d)%% respuesta al impulsoclose all%y6d=dimpulse(num6d,den6d);N=150;if(den6d(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (den6d(1)~=1)
den6d=den6d/den6d(1);num6d=num6d/den6d(1);
endfor k=0:N-1,
sum=0;for n=0:length(num6d)-1,
valor=0;if (k-n)>=0,
valor=impulso(min([k-n+1,length(impulso)]));endsum=sum+num6d(n+1)*valor;
endfor n=1:length(den6d)-1,
valor=0;if (k-n)>=0,
valor=y6d(k-n+1);endsum=sum-den6d(n+1)*valor;
endy6d(k+1)=sum;
endhold onaxis ([0 150 -0.3 0.4])bar(y6d,0.1)gridtitle('Salida del sistema')xlabel('Tiempo (0.1 s)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Creamos la respuesta del modelo adaptativo% con una señal de entrada aleatoria, de media 0% y la comparamos con la respuesta del sistema original (discretizado)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=10000; L=400; mu=0.1; alpha=0.1;sigma=1;w6=zeros(1,L+1);modeladora=sqrt(12)*(rand(1,N)-0.5);px=0;%if(den6d(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (den6d(1)~=1)
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
102
den6d=den6d/den6d(1);num6d=num6d/den6d(1);
endfor k=0:N-1,
sum=0;for n=0:length(num6d)-1,
valor=0;if (k-n)>=0,
valor=modeladora(min([k-n+1,length(modeladora)]));endsum=sum+num6d(n+1)*valor;
endfor n=1:length(den6d)-1,
valor=0;if (k-n)>=0,
valor=y6d_sim(k-n+1);endsum=sum-den6d(n+1)*valor;
endy6d_sim(k+1)=sum;
end%NN=length(modeladora); LL=length(w6)-1;if NN~=length(y6d_sim),
error('SPNLMS: lengths of x and d row vectors not equal.');endif (mu<=0)|(mu>=1)|(sigma<=0)|(alpha<0)|(alpha>=1),
error('SPNLMS: mu, sigma, or alpha out of range.');endy6d_adapt=zeros(1,NN);if(length(px)<LL),
px=[px,zeros(1,LL-length(px))];endpx=[0,px];for k=1:NN,
px(1)=modeladora(k);y6d_adapt(k)=w6*px';if abs(y6d_adapt(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y6d_adapt(k+1:NN)=zeros(1,NN-k);return
ende(k)=y6d_sim(k)-y6d_adapt(k);ee=e(k);e2(k)=ee^2;sigma=alpha*(px(1)^2)+(1-alpha)*sigma;tmp=2*mu/((LL+1)*sigma);w6=w6+tmp*ee*px;px(LL+1:-1:2)=px(LL:-1:1);
endpx=px(2:LL+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onplot(y6d_sim,'r')plot(y6d_adapt,'b')gridtitle('Salida del sistema')
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
103
xlabel('Muestras')ylabel('Salida real (rojo) y estimada (azul)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;semilogy(abs(e))gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e)gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e2)gridtitle('Evolución del error cuadrático')xlabel('Muestras')ylabel('Valor del error')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=150;impulso=[0 1 zeros(1,N-2)];e=zeros(1,N);e2=zeros(1,N);%for k=length(y6d)+1:N,% y6d(k)=0;%endpx=0;if(length(px)<LL),
px=[px,zeros(1,LL-length(px))];endpx=[0,px];for k=1:N,
px(1)=impulso(k);y6d_sim2(k)=w6*px';if abs(y6d_sim2(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y6d_sim2(k+1:N)=zeros(1,N-k);return
ende(k)=y6d(k)-y6d_sim2(k);ee=e(k);e2(k)=ee^2;px(LL+1:-1:2)=px(LL:-1:1);
endpx=px(2:LL+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allhold onaxis ([0 150 -0.3 0.4])bar(y6d_sim2,0.1)grid
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
104
title('Salida del sistema')xlabel('Tiempo (0.1 s)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;semilogy(abs(e))gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e)gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e2)gridtitle('Evolución del error cuadrático')xlabel('Muestras')ylabel('Valor del error')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=10000; L=400; mu=0.1; alpha=0.1;sigma=1;w6=zeros(1,L+1);modeladora=sqrt(12)*(rand(1,N)-0.5);perturbacion=sqrt(0.5)*(rand(1,N)-0.5);;px=0;%if(den6d(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (den6d(1)~=1)
den6d=den6d/den6d(1);num6d=num6d/den6d(1);
endfor k=0:N-1,
sum=0;for n=0:length(num6d)-1,
valor=0;if (k-n)>=0,
valor=modeladora(min([k-n+1,length(modeladora)]));endsum=sum+num6d(n+1)*valor;
endfor n=1:length(den6d)-1,
valor=0;if (k-n)>=0,
valor=y6d_sim3(k-n+1);endsum=sum-den6d(n+1)*valor;
end
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
105
y6d_sim3(k+1)=sum;endfor k=1:N,
y6d_sim3(k)=y6d_sim3(k)+perturbacion(k);end%NN=length(modeladora); LL=length(w6)-1;if NN~=length(y6d_sim3),
error('SPNLMS: lengths of x and d row vectors not equal.');endif (mu<=0)|(mu>=1)|(sigma<=0)|(alpha<0)|(alpha>=1),
error('SPNLMS: mu, sigma, or alpha out of range.');endy6d_adapt=zeros(1,NN);if(length(px)<LL),
px=[px,zeros(1,LL-length(px))];endpx=[0,px];for k=1:NN,
px(1)=modeladora(k);y6d_adapt2(k)=w6*px';if abs(y6d_adapt2(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y6d_adapt2(k+1:NN)=zeros(1,NN-k);return
ende(k)=y6d_sim3(k)-y6d_adapt2(k);ee=e(k);e2(k)=ee^2;sigma=alpha*(px(1)^2)+(1-alpha)*sigma;tmp=2*mu/((LL+1)*sigma);w6=w6+tmp*ee*px;px(LL+1:-1:2)=px(LL:-1:1);
endpx=px(2:LL+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onplot(y6d_sim3,'r')plot(y6d_adapt2,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real con ruido (rojo) y estimada (azul)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;semilogy(abs(e))gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e)gridtitle('Evolución del error')xlabel('Muestras')
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
106
ylabel('Valor del error')pause;close all;plot((e2))gridtitle('Evolución del error cuadrático')xlabel('Muestras')ylabel('Valor del error')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=150;impulso=[0 1 zeros(1,N-2)];e=zeros(1,N);e2=zeros(1,N);px=0;if(length(px)<LL),
px=[px,zeros(1,LL-length(px))];endpx=[0,px];for k=1:N,
px(1)=impulso(k);y6d_sim4(k)=w6*px';if abs(y6d_sim4(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y6d_sim4(k+1:N)=zeros(1,N-k);return
endpx(LL+1:-1:2)=px(LL:-1:1);
endpx=px(2:LL+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allhold onaxis ([0 N -0.3 0.4])bar(y6d_sim4,0.1)gridtitle('Salida del sistema con ruido')xlabel('Tiempo (0.1 s)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Comienzo esquema C% Planta con k=21% Entrenamiento previo% 10000 muestras%N1=10000;L1=400;modeladora=sqrt(12)*(rand(1,N1)-0.5);impulso=[zeros(1,9000) 1 zeros(1,N1-9001)];entrada=modeladora+impulso;px1=0;if(length(px1)<L1),
px1=[px1,zeros(1,L1-length(px1))];endpx1=[0,px1];
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
107
%N2=1000;L2=400;mu=0.1; alpha=0.1;sigma=1;px2=0;if(length(px2)<L2),
px2=[px2,zeros(1,L2-length(px2))];endpx2=[0,px2];%for k=1:N1,% planta discretizada
sum=0;for n=0:length(num5d)-1,
valor=0;if (k-n-1)>=0,
valor=entrada(min([k-n,length(entrada)]));endsum=sum+num5d(n+1)*valor;
endfor n=1:length(den5d)-1,
valor=0;if (k-n-1)>=0,
valor=y5d_sim3(k-n);endsum=sum-den5d(n+1)*valor;
endy5d_sim3(k)=sum;
% y5d_sim3(k)=y6d_sim3(k)+perturbacion(k);% salida de la copia del modelo adaptativo de la planta
px1(1)=impulso(k);y5d_sim4(k)=w5*px1';if abs(y5d_sim4(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y5d_sim4(k+1:N)=zeros(1,N-k);return
endpx1(LL+1:-1:2)=px1(LL:-1:1);
% bucle de entrenamiento del modelo adaptativo de la plantasalida_deseada(k)=y5d_sim3(k)-y5d_sim4(k);
% for k=1:NN,px2(1)=modeladora(k);y5d_adapt2(k)=w5*px2';if abs(y5d_adapt2(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y5d_adapt2(k+1:NN)=zeros(1,NN-k);return
ende(k)=salida_deseada(k)-y5d_adapt2(k);ee=e(k);e2(k)=ee^2;sigma=alpha*(px2(1)^2)+(1-alpha)*sigma;tmp=2*mu/((L2+1)*sigma);w5=w5+tmp*ee*px2;px2(L2+1:-1:2)=px2(L2:-1:1);
% end
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
108
%end%px1=px1(2:L1+1);%px2=px2(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onaxis ([8950 9350 -10 10])plot(y5d_adapt2,'g')plot(y5d_sim3,'r')plot(y5d_sim4,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real (rojo), impulsiva de la copia del modelo (azul) y estimada(verde)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Respuesta impulsiva del modelo adaptativo%N=400;LL=400;impulso=[0 1 zeros(1,N-2)];e=zeros(1,N);e2=zeros(1,N);px=0;if(length(px)<LL),
px=[px,zeros(1,LL-length(px))];endpx=[0,px];for k=1:N,
px(1)=impulso(k);y5d_adapt2(k)=w5*px';if abs(y5d_adapt2(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y5d_adapt2(k+1:N)=zeros(1,N-k);return
endpx(LL+1:-1:2)=px(LL:-1:1);
endpx=px(2:LL+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allhold onaxis ([0 N -0.5 0.4])bar(y5d_adapt2,0.1)gridtitle('Salida del sistema')xlabel('Tiempo (0.1 s)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Comienzo esquema C% Planta con k=21, con perturbaciones% Entrenamiento previo
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
109
% 10000 muestras%N1=10000;L1=400;modeladora=sqrt(12)*(rand(1,N1)-0.5);impulso=[zeros(1,9000) 1 zeros(1,N1-9001)];entrada=modeladora+impulso;perturbacion=sqrt(5e-5)*(rand(1,N1)-0.5);px1=0;if(length(px1)<L1),
px1=[px1,zeros(1,L1-length(px1))];endpx1=[0,px1];%N2=N1;L2=L1;mu=0.1; alpha=0.1;sigma=1;w5=zeros(1,L2+1);px2=0;if(length(px2)<L2),
px2=[px2,zeros(1,L2-length(px2))];endpx2=[0,px2];%for k=1:N1,% planta discretizada
sum=0;for n=0:length(num5d)-1,
valor=0;if (k-n-1)>=0,
valor=entrada(min([k-n,length(entrada)]));endsum=sum+num5d(n+1)*valor;
endfor n=1:length(den5d)-1,
valor=0;if (k-n-1)>=0,
valor=y5d_sim5(k-n);endsum=sum-den5d(n+1)*valor;
endy5d_sim5(k)=sum+perturbacion(k);
% salida de la copia del modelo adaptativo de la plantapx1(1)=entrada(k);y5d_sim6(k)=w5*px1';if abs(y5d_sim6(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y5d_sim6(k+1:N1)=zeros(1,N1-k);return
endpx1(L1+1:-1:2)=px1(L1:-1:1);
% bucle de entrenamiento del modelo adaptativo de la plantasalida_deseada(k)=y5d_sim5(k)-y5d_sim6(k);
% for k=1:NN,px2(1)=modeladora(k);y5d_adapt3(k)=w5*px2';if abs(y5d_adapt3(k))>1e10,
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
110
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y5d_adapt3(k+1:N1)=zeros(1,N1-k);return
ende(k)=salida_deseada(k);ee=e(k);e2(k)=ee^2;sigma=alpha*(px2(1)^2)+(1-alpha)*sigma;tmp=2*mu/((L2+1)*sigma);w5=w5+tmp*ee*px2;px2(L2+1:-1:2)=px2(L2:-1:1);
% end%end%px1=px1(2:L1+1);%px2=px2(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold on%axis ([8950 9350 -10 10])plot(y5d_adapt3,'g')plot(y5d_sim5,'r')plot(y5d_sim6,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real (rojo), impulsiva de la copia del modelo (azul) y estimada(verde)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;semilogy(abs(e))gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e)gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e2)gridtitle('Evolución del error cuadrático')xlabel('Muestras')ylabel('Valor del error')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Respuesta impulsiva del modelo adaptativo%N=400;LL=L1;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
111
impulso=[0 1 zeros(1,N-2)];e=zeros(1,N);e2=zeros(1,N);px=0;if(length(px)<LL),
px=[px,zeros(1,LL-length(px))];endpx=[0,px];for k=1:N,
px(1)=impulso(k);y5d_adapt3(k)=w5*px';if abs(y5d_adapt3(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y5d_adapt3(k+1:N)=zeros(1,N-k);return
endpx(LL+1:-1:2)=px(LL:-1:1);
endpx=px(2:LL+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allhold onaxis ([0 N -0.5 0.4])bar(y5d_adapt3,0.1)gridtitle('Salida del sistema con ruido')xlabel('Tiempo (0.1 s)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
112
7.1.2 CAPÍTULO 4
% Se va calcular la inversa de una planta causal y estable, y de fase% mínima. La recíproca es una inversa perfecta.
% Señales:% x= señal de entrada a la planta.% d= respuesta del modelo de referencia y señal deseada.% s= salida de la planta y entrada al lms.% y= salida del algoritmo, será igual a la señal deseada,d% w= coeficientes del filtro hallado% Datos:% a,b= vectores con los coeficientes de la planta% ar,br= coeficientes del modelo de referencia% N= longitud de las señales empleadas% mu,sigma,alpha= parámetros del LMS%%N=3000; L=50; mu=0.05; sigma=1; alpha=0; w=zeros(1,L+1);%x=sqrt(12)*(rand(1,N)-0.5); % entrada a la planta%x=[1 1];%num1d=[0 2.4 -1.92]; den1d=[1 -0.1 -0.42]; % coeficientes de la planta%br=[0 0.25]; ar=[1 -1 0.25]; % coeficientes del modelo de referencia%s=resp(x,N,b,a); % salida de la planta y entrada al lms%d=resp(x,N,br,ar); % señal deseada, salida del modelo de referencia%[y,w,px]=lms(s,d,w,mu,sigma,alpha,0);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;clear all;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=20;num1d=[0 2.4 -1.92]; den1d=[1 -0.1 -0.42];entrada=[ones(1,N)];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(den1d(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (den1d(1)~=1)
den1d=den1d/den1d(1);num1d=num1d/den1d(1);
endfor k=0:N-1,
sum=0;for n=0:length(num1d)-1,
valor=0;if (k-n)>=0,
valor=entrada(min([k-n+1,length(entrada)]));endsum=sum+num1d(n+1)*valor;
endfor n=1:length(den1d)-1,
valor=0;if (k-n)>=0,
valor=y1d(k-n+1);end
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
113
sum=sum-den1d(n+1)*valor;endy1d(k+1)=sum;
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onplot(y1d,'r')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Amplitud')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=20;num2d=[0 0.25]; den2d=[1 -1 0.25];entrada=[ones(1,N)];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(den2d(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (den2d(1)~=1)
den2d=den2d/den2d(1);num2d=num2d/den2d(1);
endfor k=0:N-1,
sum=0;for n=0:length(num2d)-1,
valor=0;if (k-n)>=0,
valor=entrada(min([k-n+1,length(entrada)]));endsum=sum+num2d(n+1)*valor;
endfor n=1:length(den2d)-1,
valor=0;if (k-n)>=0,
valor=y2d(k-n+1);endsum=sum-den2d(n+1)*valor;
endy2d(k+1)=sum;
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onplot(y2d,'r')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Amplitud')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=3000; L=50; mu=0.05; sigma=1; alpha=0; w=zeros(1,L+1);modeladora=sqrt(12)*(rand(1,N)-0.5);%px=0;if(length(px)<L),
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
114
px=[px,zeros(1,L-length(px))];endpx=[0,px];%for k=1:N,% planta discretizada
sum=0;for n=0:length(num1d)-1,
valor=0;if (k-n-1)>=0,
valor=modeladora(min([k-n,length(modeladora)]));endsum=sum+num1d(n+1)*valor;
endfor n=1:length(den1d)-1,
valor=0;if (k-n-1)>=0,
valor=y3d(k-n);endsum=sum-den1d(n+1)*valor;
endy3d(k)=sum;
% modelo de referenciasum=0;for n=0:length(num2d)-1,
valor=0;if (k-n-1)>=0,
valor=modeladora(min([k-n,length(modeladora)]));endsum=sum+num2d(n+1)*valor;
endfor n=1:length(den2d)-1,
valor=0;if (k-n-1)>=0,
valor=y4d(k-n);endsum=sum-den2d(n+1)*valor;
endy4d(k)=sum;
% bucle de entrenamiento del modelo adaptativo de la plantapx(1)=y3d(k);y1d_adapt(k)=w*px';if abs(y1d_adapt(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y1d_adapt(k+1:NN)=zeros(1,NN-k);return
ende(k)=y4d(k)-y1d_adapt(k);ee=e(k);e2(k)=ee^2;sigma=alpha*(px(1)^2)+(1-alpha)*sigma;tmp=2*mu/((L+1)*sigma);w=w+tmp*ee*px;px(L+1:-1:2)=px(L:-1:1);
end%px=px(2:L+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
115
hold onplot(y4d,'r')plot(y1d_adapt,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real (rojo) y estimada (azul)')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;semilogy(abs(e))gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot(e)gridtitle('Evolución del error')xlabel('Muestras')ylabel('Valor del error')pause;close all;plot((e2))gridtitle('Evolución del error cuadrático')xlabel('Muestras')ylabel('Valor del error')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N=20;entrada=[ones(1,N)];e=zeros(1,N);e2=zeros(1,N);px=0;if(length(px)<L),
px=[px,zeros(1,L-length(px))];endpx=[0,px];for k=1:N,%
sum=0;for n=0:length(num1d)-1,
valor=0;if (k-n-1)>=0,
valor=entrada(min([k-n,length(entrada)]));endsum=sum+num1d(n+1)*valor;
endfor n=1:length(den1d)-1,
valor=0;if (k-n-1)>=0,
valor=y5d(k-n);endsum=sum-den1d(n+1)*valor;
endy5d(k)=sum;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
116
%px(1)=y5d(k);y6d(k)=w*px';if abs(y6d(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10.\n');y6d(k+1:N)=zeros(1,N-k);return
endpx(L+1:-1:2)=px(L:-1:1);
end%px=px(2:L+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allhold onplot(y2d,'r')plot(y6d,'r*')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Amplitud')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;clear all;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
117
7.1.3 CAPÍTULO 5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Capítulo 5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sistema de fase no mínima, estabilizado con k=24%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sin ruido añadido%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sistema discretonc=[1 1/2]; dc=[1 -1 3/4];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrenamiento=1700;N2=200;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%base=ones(1,50);usr=[zeros(1,entrenamiento) -base base base*(-2) base*2 base*(-0.5) base*0.5];N1=length(usr);ucr=usr+[(rand(1,entrenamiento)-0.5)*sqrt(12) (rand(1,N1-entrenamiento)-0.5)*0.05];entrada_sistema=ucr;ruido=zeros(1,N1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(dc(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (dc(1)~=1)
dc=dc/dc(1);nc=nc/dc(1);
endsalida_planta=zeros(1,N1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L1=40; mu_planta=0.1; alpha_planta=0.1;sigma_planta=1;w_planta=zeros(1,L1+1);px_planta=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L2=40; mu_control=0.1; alpha_control=0.1;sigma_control=1;w_control=zeros(1,L2+1);px_control=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if N1~=length(entrada_sistema),
error('SPNLMS: lengths of x and d row vectors not equal (entrada_planta).');endif(mu_planta<=0)|(mu_planta>=1)|(sigma_planta<=0)|(alpha_planta<0)|(alpha_planta>=1),
error('SPNLMS: mu, sigma, or alpha out of range (planta).');endsalida_modelo_planta=zeros(1,N1);
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
118
if(length(px_planta)<L1),px_planta=[px_planta,zeros(1,L1-length(px_planta))];
endpx_planta=[0,px_planta];px_planta_copia=px_planta;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrada_modeladora=sqrt(12)*(rand(1,N2)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if N2~=length(entrada_modeladora),
error('SPNLMS: lengths of x and d row vectors not equal(salida_modelo_planta_copia).');endif(mu_control<=0)|(mu_control>=1)|(sigma_control<=0)|(alpha_control<0)|(alpha_control>=1),
error('SPNLMS: mu, sigma, or alpha out of range (control).');end
salida_modelo_control=zeros(1,N2);if(length(px_control)<L1),
px_control=[px_control,zeros(1,L2-length(px_control))];endpx_control=[0,px_control];px_control_copia=px_control;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMIENZO DEL SISTEMA --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for k=1:N1,
k%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum=0;for n=0:length(nc)-1,
valor=0;if (k-1-n)>=0,
valor=entrada_sistema(min([k-n,length(entrada_sistema)]));endsum=sum+nc(n+1)*valor;
endfor n=1:length(dc)-1,
valor=0;if (k-1-n)>=0,
valor=salida_planta(k-n);endsum=sum-dc(n+1)*valor;
endsalida_planta(k)=sum;salida_planta_ruidosa(k)=salida_planta(k)+ruido(k);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% estimación de la planta directa%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta(1)=entrada_sistema(k);salida_modelo_planta(k)=w_planta*px_planta';if abs(salida_modelo_planta(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10 (salida_modelo_planta).\n');salida_modelo_planta(k+1:N1)=zeros(1,N1-k);close all;clear all;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
119
returnende_planta(k)=salida_planta_ruidosa(k)-salida_modelo_planta(k);ee=e_planta(k);sigma_planta=alpha_planta*(px_planta(1)^2)+(1-alpha_planta)*sigma_planta;tmp_planta=2*mu_planta/((L1+1)*sigma_planta);w_planta=w_planta+tmp_planta*ee*px_planta;px_planta(L1+1:-1:2)=px_planta(L1:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrada_modeladora=sqrt(7)*(rand(1,N2)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BUCLE DE ENTRENAMIENTO OFFLINE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta_copia=zeros(1,L1+1);px_control=zeros(1,L2+1);for i=1:N2,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida de la copia del modelo de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta_copia(1)=entrada_modeladora(i);salida_modelo_planta_copia(i)=w_planta*px_planta_copia';px_planta_copia(L1+1:-1:2)=px_planta_copia(L1:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta inversa, en serie con la copia del modelo de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_control(1)=salida_modelo_planta_copia(i);salida_modelo_control(i)=w_control*px_control';if abs(salida_modelo_control(i))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10(salida_modelo_control).\n');
salida_modelo_control(i+1:N2)=zeros(1,N2-i);close all;clear all;return
ende_control(i)=entrada_modeladora(i)-salida_modelo_control(i);ee=e_control(i);sigma_control=alpha_control*(px_control(1)^2)+(1-
alpha_control)*sigma_control;tmp_control=2*mu_control/((L2+1)*sigma_control);w_control=w_control+tmp_control*ee*px_control;for l=1:8
w_ctrl(k,l)=w_control(l);endpx_control(L2+1:-1:2)=px_control(L2:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end
% px_planta_copia=px_planta_copia(2:L1+1);% px_control=px_control(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida de la copia del controlador (=salida del sistema)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% px_control_copia(1)=salida_planta_ruidosa(k);% salida_sistema(k)=w_control*px_control_copia';% px_control_copia(L2+1:-1:2)=px_control_copia(L2:-1:1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end%px_planta=px_planta(2:L1+1);
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
120
%px_control_copia=px_control_copia(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIN DEL SISTEMA --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold on%axis ([4200 4300 -2.2 -1.8])plot(salida_planta_ruidosa,'r')plot(salida_modelo_planta,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real (rojo) y estimada (azul) de la planta')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onaxis([0 N1 -40 40])plot(w_ctrl)gridtitle('Pesos del filtro de Wiener')xlabel('Muestras')ylabel('Pesos')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold on%axis ([0 N2 -2 2])plot(salida_modelo_control,'g')plot(entrada_modeladora,'k')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida modelo control (verde) y señal modeladora (negro) de la planta')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMIENZO DEL SISTEMA 2 --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N3=400;usr2=[zeros(1,50) -base base base*(-2) base*2 base*(-0.5) base*0.5 zeros(1,50)];ruido2=zeros(1,N3);px_control_copia2=zeros(1,L2+1);salida_planta2=zeros(1,N3);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for j=1:N3
j%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle controlador%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_control_copia2(1)=usr2(j);salida_control_copia2(j)=w_control*px_control_copia2';px_control_copia2(L2+1:-1:2)=px_control_copia2(L2:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum=0;for n=0:length(nc)-1,
valor=0;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
121
if (j-1-n)>=0,valor=salida_control_copia2(min([j-n,length(salida_control_copia2)]));
endsum=sum+nc(n+1)*valor;
endfor n=1:length(dc)-1,
valor=0;if (j-1-n)>=0,
valor=salida_planta2(j-n);endsum=sum-dc(n+1)*valor;
endsalida_planta2(j)=sum;salida_planta_ruidosa2(j)=salida_planta2(j)+ruido2(j);
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIN DEL SISTEMA 2 --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;close allhold onplot(salida_planta2,'r')%plot(salida_planta_ruidosa2,'b')plot(usr2,'k')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida planta (rojo) y entrada (negra) del sistema')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
122
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Capítulo 5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sistema de fase no mínima, estabilizado con k=24%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% con ruido a la entrada del sistema%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sistema discretonc=[1 1/2]; dc=[1 -1 3/4];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrenamiento=1700;N2=200;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%base=ones(1,50);usr=[zeros(1,entrenamiento) -base base base*(-2) base*2 base*(-0.5) base*0.5];N1=length(usr);ucr=usr+[(rand(1,entrenamiento)-0.5)*sqrt(12) (rand(1,N1-entrenamiento)-0.5)*0.05];entrada_sistema=ucr;ruido=0.05*(rand(1,N1)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(dc(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (dc(1)~=1)
dc=dc/dc(1);nc=nc/dc(1);
endsalida_planta=zeros(1,N1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L1=40; mu_planta=0.1; alpha_planta=0.1;sigma_planta=1;w_planta=zeros(1,L1+1);px_planta=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L2=40; mu_control=0.1; alpha_control=0.1;sigma_control=1;w_control=zeros(1,L2+1);px_control=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if N1~=length(entrada_sistema),
error('SPNLMS: lengths of x and d row vectors not equal (entrada_planta).');endif(mu_planta<=0)|(mu_planta>=1)|(sigma_planta<=0)|(alpha_planta<0)|(alpha_planta>=1),
error('SPNLMS: mu, sigma, or alpha out of range (planta).');endsalida_modelo_planta=zeros(1,N1);if(length(px_planta)<L1),
px_planta=[px_planta,zeros(1,L1-length(px_planta))];endpx_planta=[0,px_planta];
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
123
px_planta_copia=px_planta;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrada_modeladora=sqrt(12)*(rand(1,N2)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if N2~=length(entrada_modeladora),
error('SPNLMS: lengths of x and d row vectors not equal(salida_modelo_planta_copia).');endif(mu_control<=0)|(mu_control>=1)|(sigma_control<=0)|(alpha_control<0)|(alpha_control>=1),
error('SPNLMS: mu, sigma, or alpha out of range (control).');end
salida_modelo_control=zeros(1,N2);if(length(px_control)<L1),
px_control=[px_control,zeros(1,L2-length(px_control))];endpx_control=[0,px_control];px_control_copia=px_control;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMIENZO DEL SISTEMA --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for k=1:N1,
k%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum=0;for n=0:length(nc)-1,
valor=0;if (k-1-n)>=0,
valor=entrada_sistema(min([k-n,length(entrada_sistema)]));endsum=sum+nc(n+1)*valor;
endfor n=1:length(dc)-1,
valor=0;if (k-1-n)>=0,
valor=salida_planta(k-n);endsum=sum-dc(n+1)*valor;
endsalida_planta(k)=sum;salida_planta_ruidosa(k)=salida_planta(k)+ruido(k);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% estimación de la planta directa%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta(1)=entrada_sistema(k);salida_modelo_planta(k)=w_planta*px_planta';if abs(salida_modelo_planta(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10 (salida_modelo_planta).\n');salida_modelo_planta(k+1:N1)=zeros(1,N1-k);close all;clear all;return
ende_planta(k)=salida_planta_ruidosa(k)-salida_modelo_planta(k);ee=e_planta(k);
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
124
sigma_planta=alpha_planta*(px_planta(1)^2)+(1-alpha_planta)*sigma_planta;tmp_planta=2*mu_planta/((L1+1)*sigma_planta);w_planta=w_planta+tmp_planta*ee*px_planta;px_planta(L1+1:-1:2)=px_planta(L1:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrada_modeladora=sqrt(7)*(rand(1,N2)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BUCLE DE ENTRENAMIENTO OFFLINE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta_copia=zeros(1,L1+1);px_control=zeros(1,L2+1);for i=1:N2,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida de la copia del modelo de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta_copia(1)=entrada_modeladora(i);salida_modelo_planta_copia(i)=w_planta*px_planta_copia';px_planta_copia(L1+1:-1:2)=px_planta_copia(L1:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta inversa, en serie con la copia del modelo de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_control(1)=salida_modelo_planta_copia(i);salida_modelo_control(i)=w_control*px_control';if abs(salida_modelo_control(i))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10(salida_modelo_control).\n');
salida_modelo_control(i+1:N2)=zeros(1,N2-i);close all;clear all;return
ende_control(i)=entrada_modeladora(i)-salida_modelo_control(i);ee=e_control(i);sigma_control=alpha_control*(px_control(1)^2)+(1-
alpha_control)*sigma_control;tmp_control=2*mu_control/((L2+1)*sigma_control);w_control=w_control+tmp_control*ee*px_control;for l=1:8
w_ctrl(k,l)=w_control(l);endpx_control(L2+1:-1:2)=px_control(L2:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end
% px_planta_copia=px_planta_copia(2:L1+1);% px_control=px_control(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida de la copia del controlador (=salida del sistema)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% px_control_copia(1)=salida_planta_ruidosa(k);% salida_sistema(k)=w_control*px_control_copia';% px_control_copia(L2+1:-1:2)=px_control_copia(L2:-1:1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end%px_planta=px_planta(2:L1+1);%px_control_copia=px_control_copia(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIN DEL SISTEMA --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
125
close all;hold on%axis ([4200 4300 -2.2 -1.8])plot(salida_planta_ruidosa,'r')plot(salida_modelo_planta,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real ruidosa (rojo) y estimada (azul) de la planta')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onaxis([0 N1 -40 40])plot(w_ctrl)gridtitle('Pesos del filtro de Wiener')xlabel('Muestras')ylabel('Pesos')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold on%axis ([0 N2 -2 2])plot(salida_modelo_control,'g')plot(entrada_modeladora,'k')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida modelo control (verde) y señal modeladora (negro) de la planta')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMIENZO DEL SISTEMA 2 --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N3=400;usr2=[zeros(1,50) -base base base*(-2) base*2 base*(-0.5) base*0.5 zeros(1,50)];ruido2=zeros(1,N3);px_control_copia2=zeros(1,L2+1);salida_planta2=zeros(1,N3);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for j=1:N3
j%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle controlador%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_control_copia2(1)=usr2(j);salida_control_copia2(j)=w_control*px_control_copia2';px_control_copia2(L2+1:-1:2)=px_control_copia2(L2:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum=0;for n=0:length(nc)-1,
valor=0;if (j-1-n)>=0,
valor=salida_control_copia2(min([j-n,length(salida_control_copia2)]));endsum=sum+nc(n+1)*valor;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
126
endfor n=1:length(dc)-1,
valor=0;if (j-1-n)>=0,
valor=salida_planta2(j-n);endsum=sum-dc(n+1)*valor;
endsalida_planta2(j)=sum;salida_planta_ruidosa2(j)=salida_planta2(j)+ruido2(j);
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIN DEL SISTEMA 2 --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;close allhold onplot(salida_planta2,'r')%plot(salida_planta_ruidosa2,'b')plot(usr2,'k')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida planta (rojo) y entrada (negra) del sistema')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
127
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Capítulo 5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sistema de fase no mínima, estabilizado con k=24%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% con ruido a la salida de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sistema discretonc=[1 1/2]; dc=[1 -1 3/4];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrenamiento=1700;N2=200;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%base=ones(1,50);usr=[zeros(1,entrenamiento) -base base base*(-2) base*2 base*(-0.5) base*0.5];N1=length(usr);ucr=usr+[(rand(1,entrenamiento)-0.5)*sqrt(12) (rand(1,N1-entrenamiento)-0.5)*0.05];entrada_sistema=ucr;ruido=zeros(1,N1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(dc(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (dc(1)~=1)
dc=dc/dc(1);nc=nc/dc(1);
endsalida_planta=zeros(1,N1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L1=40; mu_planta=0.1; alpha_planta=0.1;sigma_planta=1;w_planta=zeros(1,L1+1);px_planta=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L2=40; mu_control=0.1; alpha_control=0.1;sigma_control=1;w_control=zeros(1,L2+1);px_control=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if N1~=length(entrada_sistema),
error('SPNLMS: lengths of x and d row vectors not equal (entrada_planta).');endif(mu_planta<=0)|(mu_planta>=1)|(sigma_planta<=0)|(alpha_planta<0)|(alpha_planta>=1),
error('SPNLMS: mu, sigma, or alpha out of range (planta).');endsalida_modelo_planta=zeros(1,N1);if(length(px_planta)<L1),
px_planta=[px_planta,zeros(1,L1-length(px_planta))];endpx_planta=[0,px_planta];
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
128
px_planta_copia=px_planta;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrada_modeladora=sqrt(12)*(rand(1,N2)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if N2~=length(entrada_modeladora),
error('SPNLMS: lengths of x and d row vectors not equal(salida_modelo_planta_copia).');endif(mu_control<=0)|(mu_control>=1)|(sigma_control<=0)|(alpha_control<0)|(alpha_control>=1),
error('SPNLMS: mu, sigma, or alpha out of range (control).');end
salida_modelo_control=zeros(1,N2);if(length(px_control)<L1),
px_control=[px_control,zeros(1,L2-length(px_control))];endpx_control=[0,px_control];px_control_copia=px_control;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMIENZO DEL SISTEMA --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for k=1:N1,
k%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum=0;for n=0:length(nc)-1,
valor=0;if (k-1-n)>=0,
valor=entrada_sistema(min([k-n,length(entrada_sistema)]));endsum=sum+nc(n+1)*valor;
endfor n=1:length(dc)-1,
valor=0;if (k-1-n)>=0,
valor=salida_planta(k-n);endsum=sum-dc(n+1)*valor;
endsalida_planta(k)=sum;salida_planta_ruidosa(k)=salida_planta(k)+ruido(k);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% estimación de la planta directa%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta(1)=entrada_sistema(k);salida_modelo_planta(k)=w_planta*px_planta';if abs(salida_modelo_planta(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10 (salida_modelo_planta).\n');salida_modelo_planta(k+1:N1)=zeros(1,N1-k);close all;clear all;return
ende_planta(k)=salida_planta_ruidosa(k)-salida_modelo_planta(k);ee=e_planta(k);
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
129
sigma_planta=alpha_planta*(px_planta(1)^2)+(1-alpha_planta)*sigma_planta;tmp_planta=2*mu_planta/((L1+1)*sigma_planta);w_planta=w_planta+tmp_planta*ee*px_planta;px_planta(L1+1:-1:2)=px_planta(L1:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrada_modeladora=sqrt(7)*(rand(1,N2)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BUCLE DE ENTRENAMIENTO OFFLINE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta_copia=zeros(1,L1+1);px_control=zeros(1,L2+1);for i=1:N2,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida de la copia del modelo de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta_copia(1)=entrada_modeladora(i);salida_modelo_planta_copia(i)=w_planta*px_planta_copia';px_planta_copia(L1+1:-1:2)=px_planta_copia(L1:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta inversa, en serie con la copia del modelo de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_control(1)=salida_modelo_planta_copia(i);salida_modelo_control(i)=w_control*px_control';if abs(salida_modelo_control(i))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10(salida_modelo_control).\n');
salida_modelo_control(i+1:N2)=zeros(1,N2-i);close all;clear all;return
ende_control(i)=entrada_modeladora(i)-salida_modelo_control(i);ee=e_control(i);sigma_control=alpha_control*(px_control(1)^2)+(1-
alpha_control)*sigma_control;tmp_control=2*mu_control/((L2+1)*sigma_control);w_control=w_control+tmp_control*ee*px_control;for l=1:8
w_ctrl(k,l)=w_control(l);endpx_control(L2+1:-1:2)=px_control(L2:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end
% px_planta_copia=px_planta_copia(2:L1+1);% px_control=px_control(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida de la copia del controlador (=salida del sistema)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% px_control_copia(1)=salida_planta_ruidosa(k);% salida_sistema(k)=w_control*px_control_copia';% px_control_copia(L2+1:-1:2)=px_control_copia(L2:-1:1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end%px_planta=px_planta(2:L1+1);%px_control_copia=px_control_copia(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIN DEL SISTEMA --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
130
close all;hold on%axis ([4200 4300 -2.2 -1.8])plot(salida_planta_ruidosa,'r')plot(salida_modelo_planta,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real (rojo) y estimada (azul) de la planta')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onaxis([0 N1 -40 40])plot(w_ctrl)gridtitle('Pesos del filtro de Wiener')xlabel('Muestras')ylabel('Pesos')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold on%axis ([0 N2 -2 2])plot(salida_modelo_control,'g')plot(entrada_modeladora,'k')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida modelo control (verde) y señal modeladora (negro) de la planta')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMIENZO DEL SISTEMA 2 --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N3=400;usr2=[zeros(1,50) -base base base*(-2) base*2 base*(-0.5) base*0.5 zeros(1,50)];ruido2=0.01*(rand(1,N3)-0.5); % ruido añadidopx_control_copia2=zeros(1,L2+1);salida_planta2=zeros(1,N3);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for j=1:N3
j%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle controlador%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_control_copia2(1)=usr2(j);salida_control_copia2(j)=w_control*px_control_copia2';px_control_copia2(L2+1:-1:2)=px_control_copia2(L2:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum=0;for n=0:length(nc)-1,
valor=0;if (j-1-n)>=0,
valor=salida_control_copia2(min([j-n,length(salida_control_copia2)]));endsum=sum+nc(n+1)*valor;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
131
endfor n=1:length(dc)-1,
valor=0;if (j-1-n)>=0,
valor=salida_planta2(j-n);endsum=sum-dc(n+1)*valor;
endsalida_planta2(j)=sum;salida_planta_ruidosa2(j)=salida_planta2(j)+ruido2(j);
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIN DEL SISTEMA 2 --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;close allhold onplot(salida_planta2,'r')plot(salida_planta_ruidosa2,'b')plot(usr2,'k')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida planta (rojo), planta ruidosa (azul) y entrada (negra) delsistema')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
132
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Capítulo 5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sistema de fase no mínima, estabilizado con k=24%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% con ruido en la entrada y perturbaciones en la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sistema discretonc=[1 1/2]; dc=[1 -1 3/4];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrenamiento=1700;N2=200;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%base=ones(1,50);usr=[zeros(1,entrenamiento) -base base base*(-2) base*2 base*(-0.5) base*0.5];N1=length(usr);ucr=usr+[(rand(1,entrenamiento)-0.5)*sqrt(12) (rand(1,N1-entrenamiento)-0.5)*0.05];entrada_sistema=ucr;ruido=0.05*(rand(1,N1)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(dc(1)==0),
error('RESP: dc(1) no debe ser cero.');endif (dc(1)~=1)
dc=dc/dc(1);nc=nc/dc(1);
endsalida_planta=zeros(1,N1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L1=40; mu_planta=0.1; alpha_planta=0.1;sigma_planta=1;w_planta=zeros(1,L1+1);px_planta=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L2=40; mu_control=0.1; alpha_control=0.1;sigma_control=1;w_control=zeros(1,L2+1);px_control=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if N1~=length(entrada_sistema),
error('SPNLMS: lengths of x and d row vectors not equal (entrada_planta).');endif(mu_planta<=0)|(mu_planta>=1)|(sigma_planta<=0)|(alpha_planta<0)|(alpha_planta>=1),
error('SPNLMS: mu, sigma, or alpha out of range (planta).');endsalida_modelo_planta=zeros(1,N1);if(length(px_planta)<L1),
px_planta=[px_planta,zeros(1,L1-length(px_planta))];endpx_planta=[0,px_planta];
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
133
px_planta_copia=px_planta;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrada_modeladora=sqrt(12)*(rand(1,N2)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if N2~=length(entrada_modeladora),
error('SPNLMS: lengths of x and d row vectors not equal(salida_modelo_planta_copia).');endif(mu_control<=0)|(mu_control>=1)|(sigma_control<=0)|(alpha_control<0)|(alpha_control>=1),
error('SPNLMS: mu, sigma, or alpha out of range (control).');end
salida_modelo_control=zeros(1,N2);if(length(px_control)<L1),
px_control=[px_control,zeros(1,L2-length(px_control))];endpx_control=[0,px_control];px_control_copia=px_control;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMIENZO DEL SISTEMA --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for k=1:N1,
k%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum=0;for n=0:length(nc)-1,
valor=0;if (k-1-n)>=0,
valor=entrada_sistema(min([k-n,length(entrada_sistema)]));endsum=sum+nc(n+1)*valor;
endfor n=1:length(dc)-1,
valor=0;if (k-1-n)>=0,
valor=salida_planta(k-n);endsum=sum-dc(n+1)*valor;
endsalida_planta(k)=sum;salida_planta_ruidosa(k)=salida_planta(k)+ruido(k);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% estimación de la planta directa%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta(1)=entrada_sistema(k);salida_modelo_planta(k)=w_planta*px_planta';if abs(salida_modelo_planta(k))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10 (salida_modelo_planta).\n');salida_modelo_planta(k+1:N1)=zeros(1,N1-k);close all;clear all;return
ende_planta(k)=salida_planta_ruidosa(k)-salida_modelo_planta(k);ee=e_planta(k);
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
134
sigma_planta=alpha_planta*(px_planta(1)^2)+(1-alpha_planta)*sigma_planta;tmp_planta=2*mu_planta/((L1+1)*sigma_planta);w_planta=w_planta+tmp_planta*ee*px_planta;px_planta(L1+1:-1:2)=px_planta(L1:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%entrada_modeladora=sqrt(7)*(rand(1,N2)-0.5);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BUCLE DE ENTRENAMIENTO OFFLINE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta_copia=zeros(1,L1+1);px_control=zeros(1,L2+1);for i=1:N2,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida de la copia del modelo de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_planta_copia(1)=entrada_modeladora(i);salida_modelo_planta_copia(i)=w_planta*px_planta_copia';px_planta_copia(L1+1:-1:2)=px_planta_copia(L1:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta inversa, en serie con la copia del modelo de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_control(1)=salida_modelo_planta_copia(i);salida_modelo_control(i)=w_control*px_control';if abs(salida_modelo_control(i))>1e10,
fprintf('\nSPNLMS warning: |y| output > 1e10(salida_modelo_control).\n');
salida_modelo_control(i+1:N2)=zeros(1,N2-i);close all;clear all;return
ende_control(i)=entrada_modeladora(i)-salida_modelo_control(i);ee=e_control(i);sigma_control=alpha_control*(px_control(1)^2)+(1-
alpha_control)*sigma_control;tmp_control=2*mu_control/((L2+1)*sigma_control);w_control=w_control+tmp_control*ee*px_control;for l=1:8
w_ctrl(k,l)=w_control(l);endpx_control(L2+1:-1:2)=px_control(L2:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end
% px_planta_copia=px_planta_copia(2:L1+1);% px_control=px_control(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida de la copia del controlador (=salida del sistema)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% px_control_copia(1)=salida_planta_ruidosa(k);% salida_sistema(k)=w_control*px_control_copia';% px_control_copia(L2+1:-1:2)=px_control_copia(L2:-1:1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end%px_planta=px_planta(2:L1+1);%px_control_copia=px_control_copia(2:L2+1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIN DEL SISTEMA --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
135
close all;hold on%axis ([4200 4300 -2.2 -1.8])plot(salida_planta_ruidosa,'r')plot(salida_modelo_planta,'b')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida real ruidosa (rojo) y estimada (azul) de la planta')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold onaxis([0 N1 -40 40])plot(w_ctrl)gridtitle('Pesos del filtro de Wiener')xlabel('Muestras')ylabel('Pesos')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;hold on%axis ([0 N2 -2 2])plot(salida_modelo_control,'g')plot(entrada_modeladora,'k')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida modelo control (verde) y señal modeladora (negro) de la planta')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COMIENZO DEL SISTEMA 2 --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N3=400;usr2=[zeros(1,50) -base base base*(-2) base*2 base*(-0.5) base*0.5 zeros(1,50)];ruido2=0.01*(rand(1,N3)-0.5); % ruido añadidopx_control_copia2=zeros(1,L2+1);salida_planta2=zeros(1,N3);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for j=1:N3
j%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle controlador%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
px_control_copia2(1)=usr2(j);salida_control_copia2(j)=w_control*px_control_copia2';px_control_copia2(L2+1:-1:2)=px_control_copia2(L2:-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bucle de la planta%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum=0;for n=0:length(nc)-1,
valor=0;if (j-1-n)>=0,
valor=salida_control_copia2(min([j-n,length(salida_control_copia2)]));endsum=sum+nc(n+1)*valor;
APÉNDICELISTADO DE LOS SCRIPTS DE LAS SIMULACIONES
REALIZADAS
Proyecto fin de carrera: ControlControlControlControl inversoinversoinversoinverso adaptativoadaptativoadaptativoadaptativo
Autor: JoséJoséJoséJosé JulioJulioJulioJulio HernándezHernándezHernándezHernández FernándezFernándezFernándezFernández
136
endfor n=1:length(dc)-1,
valor=0;if (j-1-n)>=0,
valor=salida_planta2(j-n);endsum=sum-dc(n+1)*valor;
endsalida_planta2(j)=sum;salida_planta_ruidosa2(j)=salida_planta2(j)+ruido2(j);
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIN DEL SISTEMA 2 --------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all;close allhold onplot(salida_planta2,'r')plot(salida_planta_ruidosa2,'b')plot(usr2,'k')gridtitle('Salida del sistema')xlabel('Muestras')ylabel('Salida planta (rojo), planta ruidosa (azul) y entrada (negra) delsistema')pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close allclear all%