Está en la página 1de 473

CONTROL AVANZADO

Dise no y Aplicaciones en Tiempo Real

ARTURO ROJAS-MORENO, Ph.D. Universidad Nacional de Ingenier a, Per u

Control Optimo Control Adaptivo Control Predictivo Control Robusto Control No Lineal Programas en MATLAB y C/C++

II

Control Avanzado
Dise no y Aplicaciones en Tiempo Real
Copyright c 2001 Arturo Rojas-Moreno. Reservados todos los derechos. ISBN 9972931803 Ni todo el libro ni parte de esta publicaci on puede ser reproducida, archivada, transmitida o distribuida en forma alguna o mediante alg un medio electr onico, mec anico, o de otra ndole, sin que exista previamente y por escrito el permiso de autorizaci on del autor.

Dedicatoria

A mi Familia A mi Alma Mater

Indice general
Dedicatoria Prefacio 1. Matem atica Asistida con Computadora 1.1. C alculo Matricial . . . . . . . . . . . . . . . . . . . . . . . 1.1.1. Operaciones y Tipos de Matrices . . . . . . . . . . 1.1.2. Determinantes y Matriz Inversa . . . . . . . . . . . 1.1.3. Derivadas e Integrales con Matrices y Vectores . . 1.2. An alisis Vectorial . . . . . . . . . . . . . . . . . . . . . . . 1.2.1. Independencia, Ortonormalidad y Normas . . . . . 1.2.2. Rango de una Matriz, Eigenvalores y Eigenvectores 1.2.3. Diagonalizaci on de Matrices . . . . . . . . . . . . . 1.2.4. Formas Cuadr aticas y Bilineales . . . . . . . . . . 1.3. La Transformada de Laplace . . . . . . . . . . . . . . . . 2. Sistemas Discretos 2.1. Dise no de Sistemas de Control Digital . . 2.2. Concepto de Estado y Variables de Estado 2.2.1. Linealizaci on de Procesos . . . . . 2.3. Fundamentos de Sistemas Discretos . . . . 2.3.1. Muestreo y Reconstrucci on . . . . 2.3.2. La Transformada Z . . . . . . . . . 2.3.3. La Transformada Z Inversa . . . . 2.3.4. Funci on de Transferencia de Pulso 2.3.5. El Espacio de Estado Discreto . . 2.3.6. Controlabilidad y Observabilidad .
III XI

. . . . . . . . . .

. . . . . . . . . .

1 1 1 5 14 15 15 18 19 20 26 29 29 31 31 38 38 45 49 51 53 64

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

VI

INDICE GENERAL 69 69 70 72 74 75 76 77 77 79 79 80 80 81 81 84 84 86 87 89 90 91 116 123 123 125 127 128 130 136 139 145 145 145 146 147 149

3. Modelado de Procesos 3.1. Modelo del Proceso P endulo Invertido . . . . . . . . . . 3.1.1. Modelo del Subsistema Carro-P endulo . . . . . . 3.1.2. Modelo del Subsistema Motor-Polea . . . . . . . 3.1.3. Representaci on en el Espacio de Estado . . . . . 3.1.4. Obtenci on del Modelo Lineal . . . . . . . . . . . 3.1.5. El Modelo en el Espacio de Estado Discreto . . . 3.2. Modelo del Proceso Gr ua-Puente . . . . . . . . . . . . . 3.2.1. Modelo del Subsistema Carro-Varilla . . . . . . . 3.2.2. Modelo del Subsistema Motor-Polea . . . . . . . 3.2.3. Representaci on en el Espacio de Estado . . . . . 3.2.4. Obtenci on del Modelo Lineal . . . . . . . . . . . 3.2.5. El Modelo en el Espacio de Estado Discreto . . . 3.2.6. Resumen de Variables y Par ametros . . . . . . . 3.2.7. Identicaci on de la Zona Muerta del Servomotor 3.3. Modelo del Servomotor D.C. No Lineal . . . . . . . . . . 3.3.1. El Subsistema Mec anico . . . . . . . . . . . . . . 3.3.2. El Subsistema El ectrico . . . . . . . . . . . . . . 3.3.3. Conversi on de Energ a El ectrica en Mec anica . . 3.3.4. Modelo y Compensaci on de no Linealidades . . . 3.3.5. Linealizaci on y Discretizaci on del Proceso . . . . 3.4. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . 3.5. Problemas Propuestos . . . . . . . . . . . . . . . . . . . 4. Control Optimo 4.1. Introducci on . . . . . . . . . . . . . . . . . . 4.2. Control Optimo Cuadr atico No Estacionario 4.3. Control Optimo Cuadr atico Estacionario . . 4.4. El Regulador Optimo Proporcional . . . . . 4.5. 4.6. 4.7. 4.8. 4.9.

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selecci on de las Matrices de Ponderaci on . . . . . . . . . . Dise no del Observador Optimo Cuadr atico . . . . . . . . . El Regulador Optimo Proporcional Integral . . . . . . . . Procedimiento de Dise no e Implementaci on . . . . . . . . Control Optimo Cuadr atico del P endulo Invertido . . . . 4.9.1. Formulaci on del Problema . . . . . . . . . . . . . . 4.9.2. El Modelo del Proceso a Controlar . . . . . . . . . 4.9.3. C alculo de la Matriz de Ganancia del Controlador 4.9.4. C alculo la Matriz de Ganancia del Observador . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

INDICE GENERAL 4.9.5. Simulaci on del Sistema de Control Optimo . . . . 4.9.6. El Hardware del Sistema de Control . . . . . . . . 4.9.7. Implementaci on del Software de Control . . . . . . 4.9.8. Resultados Experimentales . . . . . . . . . . . . . 4.10. Control Optimo Cuadr atico de la Gr ua-Puente . . . . . . 4.10.1. Formulaci on del Problema . . . . . . . . . . . . . . 4.10.2. Simulaci on del Sistema Controlado . . . . . . . . . 4.10.3. El Hardware y el Software del Sistema de Control 4.10.4. Resultados experimentales . . . . . . . . . . . . . . 4.11. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . 4.12. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . 5. Control Adaptivo 5.1. Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Modelando Procesos No Lineales . . . . . . . . . . . . . 5.3. Procedimientos de Estimaci on . . . . . . . . . . . . . . . 5.3.1. El M etodo de los M nimos Cuadrados Recursivo 5.3.2. M nimos Cuadrados Recursivo Mejorado . . . . . 5.3.3. Estimaci on de Estados . . . . . . . . . . . . . . . 5.4. La Ley de Control . . . . . . . . . . . . . . . . . . . . . 5.5. Procedimiento de Dise no . . . . . . . . . . . . . . . . . . 5.6. Control Adaptivo de un Servomotor No Lineal . . . . . 5.6.1. Formulaci on del Problema . . . . . . . . . . . . . 5.6.2. El Modelo del Proceso . . . . . . . . . . . . . . . 5.6.3. Estimaci on de Par ametros . . . . . . . . . . . . . 5.6.4. Estimaci on de Estados . . . . . . . . . . . . . . . 5.6.5. La Ley de Control . . . . . . . . . . . . . . . . . 5.6.6. La Ley de Control Residual . . . . . . . . . . . . 5.6.7. Simulaci on del Sistema de Control Adaptivo . . . 5.6.8. Implementaci on del Hardware . . . . . . . . . . . 5.6.9. Implementaci on del Software de Control . . . . . 5.6.10. Resultados Experimentales . . . . . . . . . . . . 5.7. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . 5.8. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

VII

150 153 160 177 179 179 180 183 187 187 202

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

205 . 205 . 207 . 208 . 208 . 211 . 219 . 219 . 221 . 222 . 222 . 222 . 223 . 224 . 224 . 225 . 225 . 229 . 235 . 252 . 253 . 279

6. Control Predictivo 283 6.1. Control Predictivo Basado en Modelos . . . . . . . . . . . . . 283 6.2. Principios del Control Predictivo Basado en Modelos . . . . . 284 6.3. El Modelo del Proceso . . . . . . . . . . . . . . . . . . . . . . 287

VIII

INDICE GENERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 290 292 296 296 297 301 303 304 304 305 306 306 306 311 312 321 324 342 347 347 353 353 353 356 357 361 362 363 368 370 372 372 373 374 374 374

6.4. El Modelo del Predictor . . . . . . . . . . . . . . . . 6.4.1. Predicci on de y (t + k/t) . . . . . . . . . . . . 6.4.2. Predicci on de n(t + k/t) . . . . . . . . . . . . 6.5. El Controlador Predictivo . . . . . . . . . . . . . . . 6.5.1. Objetivo del Controlador . . . . . . . . . . . 6.5.2. Respuesta Libre y Respuesta Forzada . . . . 6.5.3. La Ley de Control . . . . . . . . . . . . . . . 6.6. Procedimiento de Dise no . . . . . . . . . . . . . . . . 6.7. Control de Posici on de un Servomotor . . . . . . . . 6.7.1. Formulaci on del Problema . . . . . . . . . . . 6.7.2. Respuesta Libre del Proceso . . . . . . . . . . 6.7.3. Respuesta del Proceso al Escal on . . . . . . . 6.7.4. La Ley de Control . . . . . . . . . . . . . . . 6.7.5. Simulaci on del Sistema de Control Predictivo 6.7.6. Implementaci on del Hardware . . . . . . . . . 6.7.7. El Software de Control . . . . . . . . . . . . . 6.7.8. Resultados Experimentales . . . . . . . . . . 6.8. Problemas Resueltos . . . . . . . . . . . . . . . . . . 6.9. Problemas Propuestos . . . . . . . . . . . . . . . . . 7. Control Robusto 7.1. Estructura del Control con Modelo Interno . . . 7.2. Formulaci on del Problema CMI . . . . . . . . . . 7.2.1. El Modelo del Proceso . . . . . . . . . . . 7.2.2. Descripci on de Incertidumbres del Modelo 7.3. Control Robusto para Procesos Estables . . . . . 7.3.1. Rendimiento Nominal . . . . . . . . . . . 7.3.2. El Filtro Discreto CMI . . . . . . . . . . . 7.3.3. Estabilidad Robusta . . . . . . . . . . . . 7.3.4. Rendimiento Robusto . . . . . . . . . . . 7.4. Control Robusto para Procesos Inestables . . . . 7.4.1. Rendimiento Nominal . . . . . . . . . . . 7.4.2. El Filtro Discreto CMI . . . . . . . . . . . 7.4.3. Estabilidad y Rendimiento Robustos . . . 7.5. Procedimiento de Dise no . . . . . . . . . . . . . . 7.6. Control Robusto de un Servomotor No Lineal . . 7.6.1. Formulaci on del Problema . . . . . . . . . 7.6.2. Dise no del Sistema de Control Robusto .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

INDICE GENERAL 7.6.3. Simulaci on del Sistema de Control Robusto 7.6.4. Implementaci on del Hardware . . . . . . . . 7.6.5. Implementaci on del Software . . . . . . . . 7.6.6. Resultados Experimentales . . . . . . . . . 7.7. Problemas Resueltos . . . . . . . . . . . . . . . . . 7.8. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

IX

374 375 376 380 380 399

8. Control No Lineal 8.1. Herramientas Matem aticas . . . . . . . . . . . . . . 8.1.1. Derivadas y Corchetes de Lie . . . . . . . . . 8.1.2. Difeomorsmo y Transformaci on de Estados . 8.1.3. Transformaci on no Lineal de Estados . . . . . 8.1.4. El Teorema de Frobenius . . . . . . . . . . . 8.2. Grado Relativo . . . . . . . . . . . . . . . . . . . . . 8.3. Forma Normal de Procesos No lineales . . . . . . . . 8.4. Linealizaci on Exacta y la Ley de Control . . . . . . . 8.5. Observadores No Lineales . . . . . . . . . . . . . . . 8.6. Procedimiento de Dise no . . . . . . . . . . . . . . . . 8.7. Control No Lineal de un Servosistema . . . . . . . . 8.7.1. Formulaci on del Problema . . . . . . . . . . . 8.7.2. Modelo del Proceso . . . . . . . . . . . . . . . 8.7.3. Determinaci on del Grado Relativo . . . . . . 8.7.4. Comprobar Linealizaci on Exacta . . . . . . . 8.7.5. La Forma Normal . . . . . . . . . . . . . . . 8.7.6. La ley de Control No Lineal . . . . . . . . . . 8.7.7. Dise no del Observador No Lineal de Estados 8.7.8. Simulaci on del Sistema de Control No Lineal 8.7.9. Implementaci on del Hardware . . . . . . . . . 8.7.10. Implementaci on del Software . . . . . . . . . 8.7.11. Resultados Experimentales . . . . . . . . . . 8.8. Problemas Resueltos . . . . . . . . . . . . . . . . . . 8.9. Problemas Propuestos . . . . . . . . . . . . . . . . . . . Bibliograf a Indice alfab etico

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

405 . 406 . 406 . 408 . 409 . 410 . 412 . 413 . 414 . 418 . 421 . 422 . 422 . 422 . 424 . 424 . 425 . 427 . 430 . 431 . 439 . 439 . 443 . 444 . 451 453 456

Prefacio
Fundamentos A nadie escapa el hecho de que estamos presenciando un dram atico y permanente desarrollo de dispositivos y equipos basados en t ecnica digital, tales como microcontroladores, tarjetas de desarrollo para procesamiento digital de se nales, sistemas encapsulados, computadoras industriales, sistemas de adquisici on de datos, entre otros. Tales dispositivos y equipos, que cada vez son m as peque nos y de menor costo, pero parad ojicamente m as potentes, han provocado que actualmente la gran mayor a de los sistemas de control se dise nen basados en t ecnicas digitales. Con respecto a las t ecnicas empleadas en el dise no de los sistemas de control, podemos observar en la industria que cada vez son m as las aplicaciones basadas en t ecnicas no tradicionales, las cuales denominaremos t ecnicas de control avanzado. En este contexto, las t ecnicas de control avanzado que han logrado mayor aceptaci on son las siguientes: control predictivo, control no lineal, control robusto, control adaptivo, control o ptimo, entre otras. La literatura t ecnica y las publicaciones para cada una de ellas, es de hecho abundante pero lamentablemente esparcida, de modo que el tratamiento aislado de cada t ecnica puede consumir gran cantidad de tiempo y esfuerzo. Esta publicaci on integra en un solo volumen, los fundamentos y los procedimientos encaminados al dise no de sistemas de control avanzado y su correspondiente implementaci on en tiempo real. El material desarrollado basa sus fundamentos en la representaci on de los sistemas de control en el espacio de estado discreto. Sin embargo, no se deja de mencionar y de tratar el punto de vista tradicional, cuando sea necesario. He sido muy cuidadoso en cubrir con amplitud y con la claridad del caso, empleando muchas veces ejemplos explicativos, aquellos conceptos fundamentales requeridos para un mejor entendimiento del material presentado. Las aplicaciones en tiempo real desarrolladas para validar los m etodos de

XII

Prefacio

dise no presentados en los cap tulos del cuatro al ocho, constituyeron proyectos de investigaci on realizados en la Secci on de Postgrado de la Facultad de Ingenier a El ectrica y Electr onica de la Universidad Nacional de Ingenier a (http://ee.uni.edu.pe), casa de estudios de la cual soy docente. Herramientas Computacionales La gran mayor a de los ejercicios y problemas formulados en este libro se desarrollan con el auxilio de la computadora personal. Espec camente, para el desarrollo de los ejemplos y problemas, y para la simulaci on de las aplicaciones, se emplea el software MATLAB (versi on 4.2) con sus herramientas Control Systems, Signal Processing y SIMULINK. El software para las aplicaciones en tiempo real est a escrito en C/C++ de Borland, versi on 4.52. Evidentemente, los programas elaborados tambi en pueden ejecutarse en versiones de software m as actualizadas. Los programas fuente se pueden descargar de mi p agina web: http:/ee.uni.edu.pe/728681F. Antes de emplear tales programas, leer el archivo README.TXT. Sistema de Unidades y Acentuaci on en Programas Fuente Esta publicaci on emplea el Sistema Internacional (SI) de unidades. Para separar la parte entera de la parte decimal de los n umeros decimales, seguiremos usando el punto (.) en lugar de la coma (,), debido a que los paquetes de software MATLAB y Borland C/C++ s olo permiten emplear el punto (.) para expresar n umeros decimales. Como tales paquetes de software no emplean el acento ortogr aco, en los listados de los programas fuente prescindiremos de tal acentuaci on. Sobre el Contenido de los Cap tulos Cap tulo 1: Matem atica Asistida con Computadora. Describe en forma sucinta algunos t opicos de matem aticas aplicadas (b asicamente an alisis matricial y vectorial) necesarios para el desarrollo de los cap tulos posteriores. La mayor a de los ejemplos se desarrollan con el auxilio del software MATLAB. De all la raz on del nombre del cap tulo. Cap tulo 2: Sistemas Discretos. Presenta los conceptos fundamentales acerca de los sistemas de control realimentados operando en el tiempo discreto, y la representaci on de los mismos en el espacio de estado. Cap tulo 3: Modelaci on de Procesos. En este cap tulo se desarrolla la modelaci on de los tres procesos, cuyos sistemas de control avanzado van a

XIII

ser implementados en tiempo real. Tales procesos son: el p endulo invertido, la gr ua-puente y el servomotor D.C. (Direct Current) sujeto a cargas no lineales. En su secci on problemas, el cap tulo presenta la modelaci on de diversos procesos t picos. Cap tulo 4: Control Optimo. Desarrolla los fundamentos del control optimo cuadr atico discreto y dos aplicaciones en tiempo real: control o ptimo de posici on del p endulo invertido y control o ptimo de posici on de la gr uapuente. En su secci on problemas, el cap tulo desarrolla dise nos de sistemas de control o ptimo cuadr atico para varios procesos t picos. Cap tulo 5: Control Adaptivo. Discute brevemente acerca de los principales sistemas de control adaptivo, para luego presentar en detalle el procedimiento de dise no de un sistema de control adaptivo con autosintonizaci on. El procedimiento desarrollado se aplica para implementar en tiempo real el control adaptivo con autosintonizaci on de la posici on de un servomotor D.C. operando con carga no lineal y variable. En su secci on problemas, el cap tulo presenta dise nos de sistemas de control adaptivo con autosintonizaci on para varios procesos t picos. Cap tulo 6: Control Predictivo. Presenta los fundamentos del control predictivo basado en modelos y desarrolla una aplicaci on en tiempo real: control predictivo de la posici on de un servomotor D.C. sujeto a cargas no lineales empleando el algoritmo de la matriz din amica de control. En su secci on problemas, el cap tulo desarrolla dise nos de sistemas de control predictivo para diversos procesos t picos, naturalmente, empleando el algoritmo de la matriz din amica de control. Cap tulo 7: Control Robusto. Trata los fundamentos del control robusto basado en la t ecnica de control con modelo interno. A continuaci on, dicha t ecnica se aplica para el control robusto en tiempo real de la posici on de un servomotor D.C. modelado con incertidumbres. Tambi en, en su secci on problemas, el cap tulo desarrolla dise nos de sistemas de control robusto para diversos procesos t picos, empleando el algoritmo de control con modelo interno. Cap tulo 8: Control No Lineal. Desarrolla los fundamentos relacionados con el control no lineal de procesos empleando la t ecnica denominada linealizaci on por realimentaci on. Para validar los fundamentos de dicha t ecnica, se desarrolla el dise no e implementaci on del sistema de control por linealizaci on de la realimentaci on de la posici on de un servomotor D.C. no lineal. En su secci on problemas, el cap tulo desarrolla dise nos de sistemas de control no lineal para diversos procesos t picos.

XIV

Prefacio

Pre-requisitos y Conguraci on de Cursos Por su contenido y su presentaci on, este volumen puede ser usado como librotexto en las especialidades de Ingenier a El ectrica, Electr onica, Mec anica y/o Mecatr onica, para el dictado de un curso semestral, tanto de antegrado (a llevarse en los u ltimos semestres) como de postgrado. Para un curso de antegrado se sugiere desarrollar los cap tulos 1, 2, 3, 4 y 6, y tratar sucintamente los cap tulos 5, 7 y 8. Para un curso de postgrado se sugiere cubrir los cap tulos 3 al 8, quedando los cap tulos 1 y 2 como medio de consulta. Por su car acter aplicativo, por el tratamiento claro y f acilmente comprensible del material presentado y gracias a la gran cantidad de ejemplos, problemas y aplicaciones desarrollados, este libro puede ser empleado tambi en por la gran audiencia de ingenieros y t ecnicos especializados que ejercen en la industria y por los investigadores de otras a reas (f sicos, matem aticos, entre otros) que deseen familiarizarse con las t ecnicas digitales para dise nar e implementar en tiempo real sistemas de control avanzado. Agradecimientos La publicaci on de este libro fue nanciada en parte por el Instituto General de Investigaci on de la UNI. Mi agradecimiento a su Director, Dr. Guillermo Lira. Mi gratitud especial a mis alumnos que colaboraron con esta publicaci on: Leonardo Gushiken (cap tulos 3 y 4), Omar Tupayachi (cap tulos 3 y 8) y Ra ul Benitez (cap tulos 6 y 7). Luis Lecina (alumno de la Universidad Polit ecnica de Catalu na) colabor o con el cap tulo 5. La revisi on de todo lo escrito estuvo a cargo de mi alumna Claudia C ordova, mientras que Rommel Romero (mi futuro alumno) se encarg o de todo lo relativo a la impresi on del libro. Arturo Rojas Moreno, Ph.D. arojasm@viabcp.com arojas@uni.edu.pe http://ee.uni.edu.pe/728681F

Cap tulo 1

Matem atica Asistida con Computadora


Este cap tulo es una breve exposici on de los fundamentos matem aticos relacionados con el an alisis matricial, el an alisis vectorial y la transformada de Laplace. El material seleccionado est a estrechamente relacionado con el material a desarrollarse en los cap tulos siguientes. Para mayores detalles del material cubierto se recomienda consultar las referencias [18], [19], [20], [21], [22], [14] y el ap endice A de [3]. Los c alculos, en su gran mayor a, se realizan con el auxilio del paquete MATLAB. Todos los archivos correspondientes a los ejercicios desarrolados se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

1.1.
1.1.1.

C alculo Matricial
Operaciones y Tipos de Matrices

Nomenclatura La nomenclatura que se explica a continuaci on no est a libre de excepciones a la regla. Tales excepciones ser an aclaradas conforme aparezcan. Una matriz A de orden (o dimensi on) n m, la cual ser a denotada siempre con letra may uscula, es un arreglo rectangular con sus elementos aij dispuestos en n las y m columnas. Es decir: a11 . . . a1m . . . A = [aij ] = . . . ; i = 1, . . . , n; j = 1, . . . , m an1 . . . anm

Matem atica Asistida con Computadora

Los elementos de una matriz pueden ser n umeros (reales o complejos), funciones, otras matrices, etc. Cuando n = 1, A se convierte en un vector la. Cuando m = 1, A toma la forma de un vector columna. Sin embargo, los vectores ser an denotados en negrita. Por ejemplo, el vector columna x(t) de orden n se representa como: x1 (t) . x(t) = . . xn (t) El vector la correspondiente es: xT (t) = x1 (t) xn (t) ; x(t) = x1 (t) xn (t)
T

donde el super ndice T indica transpuesta. El cambio de dominio (o de argumento) de una matriz o vector debido a una transformaci on s olo afecta al dominio. Por ejemplo, las transformadas de Laplace de A(t), x(t) e Y(t) (subsecci on 1.3) se representan como A(s), x(s) e Y(s) respectivamente. La relaci on entre la salida y(.) y la entrada u(.) de un sistema, dependiendo del argumento, se designa como: y(t) = g(t) u(t); y(k ) = g(k ) u(k ); y(s) = G(s)u(s) y(z ) = G(z )u(z )

donde el asterisco denota la operaci on convoluci on, t y k son los tiempos continuo y discreto, s y z son las variables laplaciana y zeta, G(s) y G(z) son funciones de transferencia y, g (t) y g (k ) son las respuestas del sistema a un impulso unitario. M as adelante veremos que el asterisco tambi en denota la operaci on conjugada en expresiones complejas. Estados de equilibrio de matrices y vectores variantes con el tiempo continuo t o discreto k se denotan con una barra sobre la letra empleada. (k ) (k ) e Y Por ejemplo, los estados de equilibrio de A(k ) e Y(k ) son A respectivamente. En muy contados casos, la barra sobre una variable tiene el signicado de se nal reconstruida por un dispositivo de retenci on. En el caso de vectores variantes con el tiempo (continuo o discreto), y cuando sea necesario, emplearemos variables reducidas (escritas con letra min uscula), las cuales tambi en se denominan variables de desviaci on o perturbacionales. Por ejemplo, la variable reducida de Y(k ) es: (k ) y(k ) = Y(k ) Y

1.1 C alculo Matricial

Las formas estimadas de A(.), x(.) e Y(.) (para cualquier argumento) se (.), respectivamente. (.), x (.) e Y representan como A Operaciones con Matrices Una matriz A con todos sus elementos aij iguales a cero se denomina matriz cero o nula y se denota como A = 0. Dos matrices A = [aij ] y B = [bij ] son iguales si son del mismo orden y adem as [aij ] = [bij ]. La suma de dos matrices, denotada como C = A B , s olo es posible si A y B son del mismo orden: C = [cij ] = A B = [aij bij ] La multiplicaci on de dos matrices, denotada como C = AB , s olo es posible si el n umero de columnas de A es igual al n umero de las de B . Si A es de orden n m y B es de orden m r, entonces C debe ser de orden n r. Los elementos de C se determinan como sigue:
m

cij =
k=1

aik bkj ;

i = 1, 2, . . . , n; j = 1, 2, . . . , m

Por ejemplo: a11 a12 a13 a21 a22 a23

b11 b21 = b31

c11 c21

a11 b11 + a12 b21 + a13 b31 a21 b11 + a22 b21 + a23 b31

Si es un escalar, entonces A resulta una matriz en donde cada elemento queda multiplicado por . Es decir: A = [aij ] = [aij ] La multiplicaci on es asociativa: ABCD = (AB )(CD) = A(BCD) = (ABC )D y distributiva: (A + B )(C + D) = AC + AD + BC + BD Cuando AB = BA, se dice que A y B son matrices que conmutan. Sin embargo, en general, la multiplicaci on no es conmutativa: AB = BA

Matem atica Asistida con Computadora

Si AB = 0, implica que A = 0 o B = 0, o que A y B sean singulares (ecuaci on (1.1)). Si AB = AC , no necesariamente implica que B = C . La matriz transpuesta, denotada como AT , es la matriz A con sus las y columnas intercambiadas. Por consiguiente: (AT )T = A; (A + B )T = AT + B T ; (AB )T = B T AT Un n umero complejo se designa como s = + j , donde j = 1 es la unidad de los n umeros imaginarios y tanto como son n umeros reales. La operaci on conjugada, denotada como A , toma la conjugada a todos los elementos complejos de A. Para la operaci on conjugada se cumple: (A ) = A; (A + B ) = A + B ; (AB ) = A B

La operaci on hermitiana, denotada como AH , toma la conjugada y luego la transpuesta (o toma la transpuesta y luego la conjugada) de la matriz A. Es decir: AH = (A )T = (AT ) Por consiguiente: (AH )H = A; Tipos de Matrices Si el orden de una matriz A es n n, entonces la matriz se denomina cuadrada de orden n. Esta matriz posee una diagonal principal, o simplemente una diagonal con elementos aii . La traza de una matriz cuadrada se dene como: traza(A) = a11 + + ann Una matriz cuadrada se denomina matriz diagonal cuando los elementos que no pertenecen a su diagonal son todos ceros: d11 0 0 . . . 0 0 d22 0 . . . 0 D = [dii ] = . . . . . . . . . . . . 0 0 0 . . . dnn Una matriz cuadrada se denomina triangular superior si los elementos debajo de su diagonal son todos ceros. Si los elementos encima de de su diagonal son todos ceros, entonces la matriz es triangular inferior. (A + B )H = AH + B H ; (AB )H = B H AH

1.1 C alculo Matricial

La matriz identidad I , denotada tambi en como In (n es el orden de la matriz), es una matriz diagonal que s olo posee unos. Si A es cuadrada, AI = IA, y en general se cumple que: A es sim etrica si: A es antisim etrica si: A es ortogonal si: A es peri odica si: A es nilpotente si: A es hermitiana si: A es antihermitiana si: A es unitaria si: A es normal si: A1 es inversa de A si: A es singular si: AT = A AT = A AAT = AT A = I A+1 = A; A = 0;
T

es un entero positivo es un entero positivo

(A ) = (A )T = AH = A AH = A AAH = AH A = I AAH = AH A AA1 = A1 A = I det(A) = 0 (1.1)

donde det(A) denota el determinante de A, punto que se trata en la siguiente subsecci on. Una matriz cuadrada A con elementos complejos puede ser escrita coH mo la suma de una matriz hermitiana B = 1 as una matriz 2 (A + A ) m 1 H antihermitiana C = 2 (A A ). Es decir: 1 1 A = B + C = (A + AH ) + (A AH ) 2 2

1.1.2.

Determinantes y Matriz Inversa

Determinantes El determinante de la matriz A = [aij ] de orden 2 es: det a11 a12 a21 a22 = a11 a22 a12 a21 (1.2)

Para obtener el determinante de una matriz de orden n > 2 podemos emplear el m etodo de la expansi on. Si tomamos como base la primera la, el determinante de una matriz A se obtiene de:
n

det(A) =
j =1

(1)1+j a1j det(A1j ) = (1)1+1 a11 det(A11 ) + (1)1+2 a12 det(A12 ) +

Matem atica Asistida con Computadora

donde A1j , j = 1, . . . , n es la matriz que resulta luego de eliminar la la 1 y la columna j de A. Por ejemplo, el determinante de una matriz de orden n = 3 se calcula como: a11 a12 a13 a22 a23 + det a21 a22 a23 = (1)1+1 a11 det a32 a33 a31 a32 a33 (1)1+2 a12 det a21 a23 a31 a33 + (1)1+3 a13 det a21 a22 a31 a32 (1.3)

Con relaci on a dos matrices cuadradas A y B de orden n: 1. Si cada elemento de una la o columna de A es cero, det(A) = 0. 2. det(A) = det(AT ). 3. Si multiplica una la o columna de A, entonces el det(A) queda multiplicado por . 4. Si B se obtiene intercambiando dos las o columnas de A, entonces det(B ) = det(A). 5. Si dos las o columnas de A son iguales, entonces det(A) = 0. 6. Si sumamos un m ultiplo de una la o columna de A a cualquiera de sus las o columnas, el valor del det(A) no cambia. 7. det(AB ) = det(BA) = det(A)det(B ) 8. Si los eigenvalores de A son 1 , 2 , . . . , n , det(A) = 1 2 . . . n . La determinaci on de eigenvalores se trata en la subsecci on 1.2.2. Matriz Inversa Si A y B son dos matrices no singulares; es decir, si det(A) = 0 y det(B ) = 0, entonces: (AB )1 = B 1 A1 ; ((A )T )1 = ((A1 ) )T ; (AT )1 = (A1 )T det(A1 ) = 1 det(A)

Si A es una matriz no singular de orden 2, vale recordar que: A= a b c d ; A1 = 1 ad bc d b c a (1.4)

1.1 C alculo Matricial Si A es una matriz no singular de orden 3:


a b A= d e g h A1 det 1 det = det(A) det c f i

e h d g d g

f i f i e h

det det det

b h a g a g

c i c i b h

det det det

b e a d a d

c f c f b e

det(A) = aei + gbf + cdh gec ahf idb

(1.5)

Lema de Inversi on de Matrices. Si A, B , C y D son matrices no singulares de orden n n, n m, m n y n n respectivamente, entonces: (A + BDC )1 = A1 A1 B (D1 + CA1 B )1 CA1 (1.6)

Este lema se demuestra pre-multiplicando cada miembro de la ecuaci on (1.6) por (A + BDC ). Luego, efectuar las operaciones matriciales resultantes:
(A + BDC )(A + BDC )1 = I (A + BDC )[A1 A1 B (D1 + CA1 B )1 CA1 ] = I + BDCA1 B (D1 + CA1 B )1 CA1 BDCA1 B (D1 + CA1 B )1 CA1 = I + BDCA1 (BDD1 + BDCA1 B )(D1 + CA1 B )1 CA1 = I + BDCA1 BD(D1 + CA1 B )(D1 + CA1 B )1 CA1 = I + BDCA1 BDCA1 = I

Valor Absoluto. Si g = gr + jgi es un n umero o una funci on real o compleja, su valor absoluto, conocido tambi en como m odulo o magnitud y denotado como |g |, es un n umero real positivo o cero. El a ngulo de g en rad se denota como g . Si e[.] e m[.] son los operadores real e imaginario respectivamente, entonces se cumple que: e[g ] = gr ; |g | = m[g ] = gi ; g = e[g ] + j m[g ] = |g |g g = arctan m[g ] e[g ]

( e[g ])2 + ( m[g ])2 ;

Matem atica Asistida con Computadora

Si G es una matriz compleja con elementos gij , entonces las operaciones anteriores se ejecutan elemento por elemento; es decir: e[G] = e[gij ]; G = |G|G = |gij |gij ; m[G] = m[gij ] |G| = |gij |; G = gij

La tabla 1.1 muestra los comandos para ejecutar operaciones matriciales empleando MATLAB.

Ejemplo 1.1 Dada la matriz cuadrada A, calcular B . 1j 2j 3j 2 3 + 5j A = 4j 6 j 7 j 8 + 3j B= (A + AT 0,7jA3 )A1 AH |A|A e[A] m[A] (2j + 1) traza(A)det(A)

Soluci on: El programa en MATLAB para calcular B es el siguiente:


% ejem1_1.m EJEMPLO SOBRE CALCULO MATRICIAL COMPLEJO clear all A = [1-j 2-j 3- j 4j -2 3+5j 6-j 7-j 8+3j]; B = (conj(A)+conj(A)-0.7j*A^3)*inv(A)*A*abs(A)* ... angle(A)*real(A)*imag(A)/((2*j+1)*trace(A)*det(A)); % B = 1.0e+002 * % 0.2488 - 0.0957i % 0.2952 + 0.3551i % 0.8222 + 0.1991i

0.8007 - 0.3510i 0.9809 + 1.0977i 2.7135 + 0.5050i

-2.1614 + 0.9495i -2.6468 - 2.9592i -7.3267 - 1.3550i

Ejemplo 1.2 Determinar la matriz hermitiana B y la antihermitiana C de la matriz A del ejemplo anterior.

1.1 C alculo Matricial

Cuadro 1.1: Comandos para c omputo matricial Operaci on Suma Resta Multiplicaci on Multiplicaci on Conjugada Transpuesta (A real) Transpuesta (A compleja) Hermitiana Potencia Determinante Inversa Divisi on izquierda Divisi on derecha Valor absoluto Angulo Parte real Parte maginaria Traza Matriz identidad C odigo MATLAB A + B A - B A*B kappa*A conj(A) A conj(A); A. A A^n det(A) inv(A) A*X = B; X = A\B X*A = B; X = B/A abs(A) angle(A) real(A) imag(A) trace(A) eye(n)

A+B AB AB A; : complejo A AT AT AH An det(A) A1

|A| A [A] [A] In


n i=1 aii

10

Matem atica Asistida con Computadora

Soluci on: Las matrices pedidas son: 1 B = (A + AH ); 2


% ejem1_2.m MATRICES HERMITIANAS clear all A = [1-j 2-j 3-j 4j -2 3+5j 6-j 7-j 8+3j]; B = (A + A)/2; C = (A - A)/2; ZB = B - B; % ZB RESULTA LA MATRIZ CERO ZC = C + C; % ZC RESULTA LA MATRIZ CERO

1 C = (A AH ) 2

y se puede comprobar que B = B H y C = C H . Ver programa ejem1 2.m.

Ejemplo 1.3 Multiplicaci on con Partici on de Matrices.- Dos matrices Anm y Bmp (los sub ndices indican las dimensiones) pueden ser particionadas como sigue: An1 m1 An1 mm Bm1 p1 Bm1 pp . . . . . . . . A= B= ; . . . . Ann m1 Ann mm Bmm p1 Bmm pp La condici on necesaria para realizar el producto Cnp = Anm Bmp empleando particiones, es que las columnas de A y las las de B sean particionadas en la misma forma. Por tanto, n = n1 + + nn , m = m1 + + mm y p = p1 + + pp . Determinar si el producto siguiente es v alido y si lo es, obtener C = AB . B22 B23 A22 A23 A21 AB = A32 A33 A31 B32 B33 A42 A43 A41 B12 B13 Soluci on: Podemos notar que para A: n = 2 + 3 + 4 = 9, m = 2 + 3 + 1 = 6, y para B : m = 2 + 3 + 1 = 6 y p = 2 + 3 = 5. Por consiguiente, la partici on es correcta. La multiplicaci on ahora es directa: A22 B22 + A23 B32 + A21 B12 A22 B23 + A23 B33 + A21 B13 C = A32 B22 + A33 B32 + A31 B12 A32 B23 + A33 B33 + A31 B13 A42 B22 + A43 B32 + A41 B12 A42 B23 + A43 B33 + A41 B13 En notaci on MATLAB, conociendo las matrices particionadas, el producto resulta:

1.1 C alculo Matricial


C = [A22*B22+A23*B32+A21*B12 A32*B22+A33*B32+A31*B12 A42*B22+A43*B32+A41*B12 A22*B23+A23*B33+A21*B13 A32*B23+A33*B33+A31*B13 A42*B23+A43*B33+A41*B13];

11

Ejemplo 1.4 Matriz Aumentada.- Si los vectores x, y, v y w son de orden n, m, p y q respectivamente, obtener una ecuaci on que reemplace a las dos ecuaciones diferenciales siguientes: dx = Ax + B v; dt dy = C y + Dw dt

Soluci on: Las matrices A con C y B con D forman matrices aumentadas como sigue:
dx dt dy dt

A 0 0 C

x y

B 0 0 D

v w

Ejemplo 1.5 eriSi los i son los eigenvalores de la matriz A de orden n, comprobar num camente que: i = 1, . . . , n det(A) = 1 2 . . . n ; Soluci on: Ver el programa ejem1 5.m.
% ejem1_5.m COMPRUEBA QUE det(A)=L(1)L(2)L(3)L(4) clear all A = [1-j 2-j 3-j -3+8j 4j -2 3+5j 4-2j 6-j 7-j 8+3j 3+j 2 -1 j 0]; L = eig(A); % DETERMINA LOS EIGENVALORES DE A detA = det(A); P = L(1)*L(2)*L(3)*L(4); % SE DEBE CUMPLIR QUE: P = detA

Ejemplo 1.6 Conocidas las matrices Ann , Bnm , Cmn y Dmm con det(A) = 0 y det(D) = 0, y deniendo: E= A B 0 D ; G= A 0 C D ; H= A B C D

12

Matem atica Asistida con Computadora

demuestre num ericamente que: det(E ) = det(G) = det(A)det(D) det(H ) = det(A)det(D CA1 B ) = det(D)det(A BD1 C ) Soluci on: El siguiente programa demuestra num ericamente lo pedido.
% ejem1_6.m DETERMINANTE DE MATRICES PARTICIONADAS clear all % MATRICES DATOS CON n=2 Y m=3: A = [-3+j 4-2j 5-8j -7-2j]; B = [ j -1+3j 2-5j 4+7j 6 3+8j]; C = [ 2-j j 1+j -5j -3-7j 8]; D = [2+j -3-j 4j 1+3j 0 -7j 1+j -9-2j -5]; % CONDICION: det(A) Y det(D) DISTINTOS DE 0 % zeros(m,n) CREA UNA MATRIZ DE CEROS DE ORDEN (m,n) E = [A B zeros(3,2) D]; G = [A zeros(2,3) C D]; M = det(A)*det(D); % SE DEBE CUMPLIR: det(E) = det(G) = M DISTINTO DE 0 H = [A B C D]; J = det(A)*det(D-C*inv(A)*B); K = det(D)*det(A-B*inv(D)*C); % SE DEBE CUMPLIR: det(H) = det(J) = K

Ejemplo 1.7 Demostrar num ericamente que: A B 0 D A 0 C D


1

=
1

A1 A1 BD1 0 D 1 A1 0 1 1 D CA D 1

Soluci on: Ver el programa ejem1 7.m.

1.1 C alculo Matricial


% ejem1_7.m INVERSION DE MATRICES PARTICIONADAS clear all % MATRICES DATOS CON n=2 Y m=3: A = [-3+j 4-2j 5-8j -7-2j]; B = [ j -1+3j 2-5j 4+7j 6 3+8j]; C = [ 2-j j 1+j -5j -3-7j 8]; D = [2+j -3-j 4j 1+3j 0 -7j 1+j -9-2j -5]; % CONDICION: det(A) y det(D) DISTINTOS DE 0 % LA MATRIZ CERO DEBE SER DE ORDEN (m,n) Z1 = zeros(3,2); E = [A B Z1 D]; G = [inv(A) -inv(A)*B*inv(D) Z1 inv(D)]; % LA MATRIZ CERO DEBE SER DE ORDEN (m,n): Z2 = zeros(2,3); F = [A Z2 C D]; H = [inv(A) Z2 -inv(D)*C*inv(A) inv(D)]; % E*G, G*E, F*H y H*F DEBEN RESULTAR MATRICES IDENTIDAD

13

Ejemplo 1.8 Demostrar num ericamente que:


A C A C B D B D
1

=
1

A1 + A1 B (D CA1 B )1 CA1 (D CA1 B )1 (A BD1 C )1 D C (A BD1 C )1


1 1

A1 B (D CA1 B )1 (D CA1 B )1

(A BD1 C )1 BD1 C (A BD1 C )1 BD1 + D1

Soluci on: Ver en el siguiente programa la demostraci on pedida.


% ejem1_8.m INVERSION DE MATRICES PARTICIONADAS clear all % MATRICES DATOS CON n=2 Y m=3: A = [-3+j 4-2j

14

Matem atica Asistida con Computadora

5-8j -7-2j]; B = [ j -1+3j 2-5j 4+7j 6 3+8j]; C = [ 2-j j 1+j -5j -3-7j 8]; D = [2+j -3-j 4j 1+3j 0 -7j 1+j -9-2j -5]; % CONDICION: det(D) Y det(D-C*inv(A)*B) DISTINTOS DE 0 E = [A B;C D]; G11 = inv(A) + inv(A)*B*inv(D-C*inv(A)*B)*C*inv(A); G12 = -inv(A)*B*inv(D-C*inv(A)*B); G21 = -inv(D-C*inv(A)*B)*C*inv(A); G22 = inv(D-C*inv(A)*B); G = [G11 G12;G21 G22]; % CONDICION: det(D) Y det(A-B*inv(D)*C) DISTINTOS DE 0 H11 = inv(A-B*inv(D)*C); H12 = -inv(A-B*inv(D)*C)*B*inv(D); H21 = -inv(D)*C*inv(A-B*inv(D)*C); H22 = inv(D)*C*inv(A-B*inv(D)*C)*B*inv(D)+inv(D); H = [H11 H12;H21 H22]; % E*G, E*H, G*E y H*E DEBEN RESULTAR MATRICES IDENTIDAD

1.1.3.

Derivadas e Integrales con Matrices y Vectores

d dt a11 (t)

Derivada e integral de una matriz A(t) = [aij (t)] de orden n m:


d A(t) = dt . . .
d dt a1m (t)

. . .

A(t) =

a11 (t) . . .

d dt an1 (t)

d dt anm (t)

an1 (t)

a1m (t) . . . anm (t) (1.7)

Derivada e integral de un vector x(t) = [x1 . . . xn ]T : d x1 (t) dt x1 (t) d . . . . x(t) = x(t) = ; . . dt d xn (t) dt xn (t) d d d [A + B ] = A + B ; dt dt dt dA dk d [Ak ] = k+A ; dt dt dt d dA dB [AB ] = B+A dt dt dt 1 d 1 dA A = A1 dt A

(1.8)

Cuando las matrices A y B y el escalar son funciones de t, se cumple:

(1.9)

1.2 An alisis Vectorial Derivada parcial de una funci on escalar J (x) de variable vectorial: 2J J 2J 2J x 2 x x x x n 1 2 1 x1 1 2J J . . . . . . . = . = ; . . . . 2 x x J 2J 2J 2J xn xn x1 xn x2 x2
n

15

(1.10)

Derivada total de una funci on escalar V (x(t)) de variable vectorial: d V (x(t)) = dt V x


T

dx dt

(1.11)

Jacobiano de una funci on vectorial f(x) de orden m con argumento vectorial de orden n: f f2 fm 1 x1 x1 1 x f1 f2 fm x f x2 x2 2 = (1.12) . . . . . x . . . .
f1 xn f2 xn

fm xn

Si la matriz cuadrada A y los vectores x e y son reales y de orden n se cumple: T x Ax = Ax + AT x x T T (1.13) x Ay = Ay; x Ay = AT x x y Si A es una matriz hermitiana de orden n y x e y son vectores complejos de orden n, se cumple: H x Ax = Ax x H H x Ay = AT x x Ay = Ay; (1.14) x y

1.2.
1.2.1.

An alisis Vectorial
Independencia, Ortonormalidad y Normas

Independencia de Vectores Se dice que los vectores xi , i = 1, . . . , n son linealmente independientes si:
n

ci xi = 0
i=1

16

Matem atica Asistida con Computadora

La ecuaci on anterior implica que las constantes ci = 0, i = 1, . . . , n, o que det([x1 . . . xn ]) = 0. Operaci on con Vectores Complejos y Reales Si x e y son vectores complejos de orden n: xH y = (yH x) = yT x =
n n i=1 n i=1

x i yi

xH x =
i=1

x i xi = x1 x 2

|xi |2

. . xxH = . . . . xn x1 xn x 2 Si x e y son vectores reales de orden n:


n

x1 x 1

. . . x1 x n . . . . . . xn x n

(1.15)

x T y = yT x =
i=1

xi yi ; x1 x2 . . .

xT x =
i=1

x2 i

xxT = . . . xn x1 xn x2 Vectores Ortonormales y xT i xj

x2 1

. . . x1 xn . . . . . . x2 n

(1.16)

Los vectores reales x1 , x2 , . . . son ortonormales si xT i xj = 0 cuando i = j = 0 cuando i = j .

Normas de Vectores y Matrices Norma de un Vector En general, una norma es una medida del tama no de un vector o matriz. La ejecuci on de la norma resulta en un escalar positivo. La norma de un vector denotada como x posee las propiedades siguientes: x 0 para todo x = 0

1.2 An alisis Vectorial x = 0 si y s olo si x = 0 x = Desigualdad triangular: Desigualdad de Schwarz: x+y x |x y| x


H

17

x + y

es un escalar y

La norma m as empleada es la Euclidiana: x


2=

(xH x)1/2 =

|x1 |2 + |x2 |2 + + |xn |2

(1.17)

que es un caso particular de la siguiente norma: x = (P x)H (P x) = xH P H P x = xH Qx)] 0; Q = P H P = QH

Otras normas pueden ser denidas como:


n

x =
i=1

|xi |;

m ax |xi |;
i n 1/p

m n |xi |
i

p= i=1

|xi |

Norma de una Matriz La norma de una matriz A de orden n es el menor valor de tal que: A A

Tal norma cumple las propiedades de la norma de un vector. En adici on, tambi en cumple: A = AH ; A
2

A = AT ; = m ax[xH AH Ax], x

Ax A si xH x = 1

|| A ,

si es un eigenvalor de A 1/2 |aij |2

Otras normas para una matriz A de orden n son:


n n

A =
i=1 j =1

|aij |;

F=

i=1 j =1

18
m

Matem atica Asistida con Computadora |aij | ;


i=1 n j =1

|aij |

1=

m ax
j

m ax
i

2=

m ax
i

i (AH A)

1.2.2.

Rango de una Matriz, Eigenvalores y Eigenvectores

Rango de una Matriz Si A es una matriz de orden n m, su rango, denotado como rango(A), es igual al n umero m aximo r de sus vectores columnas linealmente independientes. Si A es una matriz de orden n m y B es de orden m k : rango(AB ) = rango(AH ) = rango(AH A) = rango(AAH ) rango(AB ) = rango(AT ) = rango(AT A) = rango(AAT ) rango(AB ) rango(A); rango(AB ) = rango(A), rango(AB ) = rango(B ), rango(AB ) rango(B ) si A y B son no singulares si A y B son no singulares

Si A es una matriz de orden n y det(A) = 0, entonces: rango(A) = n Eigenvalores y Eigenvectores Un eigenvalor de una matriz de orden n, conocido tambi en como valor propio, modo, eigenvalue, valor o ra z caracter stica, es un escalar que permite una soluci on no trivial de la ecuaci on: Ax = x x0 (1.18)

Factorizando x obtenemos la ecuaci on caracter stica de A: det(I A) (1.19)

Asociado con cada eigenvalor i existe un eigenvector ei de magnitud arbi, su traria que es soluci on de Aei = ei . Para un eigenvector normalizado e = 1. norma Euclidiana es uno: e

1.2 An alisis Vectorial

19

1.2.3.

Diagonalizaci on de Matrices

Matrices Similares Se dice que dos matrices A y B de orden n son similares si existe una matriz P no singular tal que P 1 AP = B y B = P AP 1 . Sea A una matriz de orden n que posee n eigenvalores distintos. Sea E = [e1 . . . en ] una matriz formada con los eigenvectores de A y sea una matriz diagonal cuyos elementos son los eigenvalores de A. Entonces se dice que A y son similares porque: 1 0 . . . 0 0 2 . . . 0 1 (1.20) E AE = = . E E 1 = A ; . . . . . . . . 0 0 . . . n

Forma Can onica de Jordan Si una matriz A de orden n posee r eigenvectores linealmente independientes, la forma de Jordan es una matriz J que posee n r unos sobre la diagonal, con todos los dem as elementos iguales a cero. Por ejemplo, si los valores propios de A de orden n = 5 son 1 , 1 , 1 , 2 , 3 , entonces son posibles varias formas de J (se muestran cuatro): 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 J1 = J2 = 0 0 1 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 3 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 2 0 0 0 J4 = J3 = 0 0 1 0 0 0 0 1 1 0 0 0 0 2 0 0 0 0 1 1 0 0 0 0 3 0 0 0 0 3 Notar que J1 y J4 deben poseer tres eigenvectores linealmente independienco, la tes, la matriz diagonal J3 cinco y J2 cuatro. Para un problema espec forma correcta de la matriz J se determina de acuerdo a las reglas siguientes: 1. Si una matriz cuadrada A de orden k posee k eigenvalores m ultiples, y si el rango de [I A] es k s, donde 1 s k , entonces exis-

20

Matem atica Asistida con Computadora ten s eigenvectores linealmente independientes asociados con . Por consiguiente, existen s bloques de Jordan.

2. La suma de los ordenes de los bloques de Jordan derivados con la regla anterior debe ser igual a la multiplicidad k (ver ejemplo 1.14).

1.2.4.

Formas Cuadr aticas y Bilineales

Formas Cuadr aticas Una forma cuadr atica es un polinomio real que contiene t erminos de la H es una matriz hermitiana de orden n y x x . Si A = [ a ] = A forma aij x ij i j es un vector complejo de orden n, entonces:
n n

x Ax =
i=1 j =1

aij x i xj ;

aji = a ij

Si A = [aij ] = AT es una matriz real y sim etrica de orden n y x es un vector real de orden n:
n n

xT Ax =
i=1 j =1

aij xi xj ;

aji = aij

Formas Bilineales Una forma bilineal es un polinomio real que contiene t erminos de la forma y . Si A = [ a ] es una matriz compleja de orden n, y si los vectores aij x ij i j complejos x e y son de orden n y m respectivamente, entonces:
n m

xH Ay =
i=1 j =1

aij x i yj

Si A = [aij ] es real de orden n, y si los vectores reales x e y son de orden n y m respectivamente, entonces:
n m

xT Ay =
i=1 j =1

aij xi yj

1.2 An alisis Vectorial Denici on y Semidenici on de Matrices

21

Para una matriz A de orden n, las expresiones A > 0, A 0, A < 0 y A 0 denotan que A es denida positiva, semidenida positiva, denida negativa y semidenida negativa respectivamente. Hemos visto que la forma cuadr atica xH Ax est a asociada con la matriz hermitiana A, as como xT Ax lo est a con la matriz real y sim etrica A. Una matriz A de orden n es denida positiva si su forma cuadr atica asociada es siempre positiva, excepto cuando x = 0. Si todos los eigenvalores de A son positivos, entonces A > 0. Una matriz A de orden n es semidenida positiva si su forma cuadr atica asociada es mayor o igual a cero cuando x = 0. Si los eigenvalores de A son positivos o nulos, entonces A 0. Una matriz A de orden n es denida negativa si su forma cuadr atica asociada es siempre negativa, excepto cuando x = 0. Si todos los eigenvalores de A son negativos, entonces A < 0. Una matriz A de orden n es semidenida negativa si su forma cuadr atica asociada es menor o igual a cero cuando x = 0. Si los eigenvalores de A son negativos o nulos, entonces A 0. Si la matriz A posee eigenvalores positivos y negativos, entonces A es indenida. La tabla 1.2 muestra los comandos para ejecutar otras operaciones matriciales y vectoriales empleando MATLAB.

Ejemplo 1.9 Resolver el siguiente sistema (m as inc ognitas que ecuaciones): (5 j )x1 + (2 + 3j )x2 + (3 j )x3 + (1 + 4j )x4 + (6 + j )x5 = 2 9j 4jx1 2x2 + (3 + 5j )x3 7jx4 + (8 2j )x5 = 4 j (6 j )x1 + (7 j )x2 + (8 3j )x3 + (3 j )x4 + (1 + 4j )x5 = 3 + j Soluci on: Ver el programa ejem1 9.m.
% ejem1_9.m SISTEMA DE ECUACIONES: MAS INCOGNITAS QUE ECUACIONES clear all A = [5-j 2+3j 3-j -1+4j -6+j 4j -2 3+5j -7j 8-2j 6-j 7-j 8-3j 3-j 1+4j];

22

Matem atica Asistida con Computadora

Cuadro 1.2: Comandos para c omputo matricial y vectorial Operaci on Producto interno complejo Producto interno real Producto por elemento Divisi on por elemento Potencia por elemento Norma matricial Norma matricial Norma matricial Norma matricial Norma vectorial Norma vectorial Norma vectorial Norma vectorial Rango Eigenvalores Eigenvectores i E = [e1 . . . en ] xH y xT y aij bij aij /bij (aij A A A A x x x x )bij axj m 1 = m i=1 |aij | axi i (AH A) 2 = m axi n = m j =1 |aij | 1/2 2 F= ij |aij | n p 1/p p = ( i=1 |xi | )
2=

C odigo MATLAB x*y x*y A.*B A.\B; A./B A.^B norm(A,1) norm(A,2) norm(A,inf) norm(A,fro) norm(x,p) norm(x) norm(x,inf) norm(x,-inf) rank(A) eig(A) [E,D]=eig(A)

xH x m ni |xi |

m axi |xi |

1.2 An alisis Vectorial


B = [2-9j;4-j;3+j]; X = A\B; % % X = % 3.5719 - 3.4126i % 0 % -2.8535 + 1.6221i % 0 % 0.9991 - 0.4860i

23

--> --> --> --> -->

x1; x2 x3 x4 x5

Ejemplo 1.10 Resolver el siguiente sistema (menos inc ognitas que ecuaciones): (5 j )x1 + (2 + 3j )x2 + (3 j )x3 = 2 9j 4jx1 2x2 + (3 + 5j )x3 = 4 j (6 j )x1 + (7 j )x2 + (8 3j )x3 = 3 + j (1 + 4j )x1 + (6 + j )x2 + (3 j )x3 = 3 + 7j 7jx1 + (8 2j )x2 + (1 + 4j )x3 = 9 Soluci on: Ver el programa ejem1 10.m.
% ejem1_10.m SISTEMA DE ECUACIONES: MENOS INCOGNITAS QUE ECUACIONES clear all A = [5-j 2+3j 3-j 4j -2 3+5j 6-j 7-j 8-3j -1+4j -6+j 3-j -7j 8-2j 1+4j]; B = [2-9j;4-j;3+j;-3+7j;-9]; X = A\B; % X = % 1.2270 - 2.1969i --> x1 % 0.6871 + 1.2202i --> x2 % -0.9472 + 0.4153i --> x3

Ejemplo 1.11 Comprobar num ericamente que: xH y = (yH x) = yT x Soluci on: Ver el programa ejem1 11.m.

24

Matem atica Asistida con Computadora

% ejem1_11.m CALCULO VECTORIAL clear all % VECTORES DATOS x = [-1+j;3-5j;-5+6j;8-9j;4-2j;-1+j]; y = [-5+j;-3+j;-8+9j;5-6j;2+7j;-3-j]; % COMPROBAR QUE x*y = conj(y*x) = conj(y)*conj(x) p = x*y; q = conj(y*x); r = conj(y)*conj(x); [p q r] % p, q y r DEBEN SER IGUALES

Ejemplo 1.12 En el siguiente programa se calculan diferentes normas matriciales y vectoriales.


% ejem1_12.m NORMAS clear all % VECTOR DATO x = [-1+j;3-5j;-5+6j;8-9j;4-2j;-1+j]; a = norm(x,5); % NORMA p = 5 (a = 12.3798) b = norm(x,2); % NORMA EUCLIDIANA (b = 16.2481) c = norm(x,inf); % NORMA INFINITO (c = 12.0416) d = norm(x,-inf); % NORMA -INFINITO (d = 1.4142) % MATRIZ DATO A = [1-j 2-j 3-j -4-j 4j -2 3+5j 2-8j 6-j 7-j 8+3j -7+3j 3+5j 2-8j 1-j 2-9j]; e = norm(A); % MAXIMO EIGENVALOR DE A: e = 18.7269 f = norm(A,2); % LO MISMO QUE norm(A): e = f = 18.7269 g = norm(A,1); % max(sum(abs(A)))): g = 29.2046 h = norm(A,inf); % max(sum(abs(A))): h = 29.3136 k = norm(A,inf); % IGUAL QUE norm(A,inf): k = h = 29.3136 m = norm(A,fro); % sqrt(sum(diag(A*A))): m = 23.7276 p = fro; % p DEBE SER 1, 2, inf o fro n = norm(A,2); % NORMA p: n = 18.7269

Ejemplo 1.13 Sean las matrices Anm , Bmp y Cmm . Demostrar num ericamente las siguientes propiedades del rango: rango(A) m n(n, m); rango(A) = rango(AH ); rango(AB ) min(rango(A), rango(B )); rango(CB ) = rango(B ). Soluci on: El siguiente programa presenta las demostraciones pedidas.

1.2 An alisis Vectorial


% ejem1_13.m PROPIEDADES DEL RANGO clear all % MATRICES DATO A = [-1+j 3-5j -5+6j -2+5j 8-9j 4-2j -1+j -4 -2+3j 4-6j -2-5j 7j]; % ORDEN (3,4) B = [1+j -3-5j 8+9j -4+2j -2+3j -4-6j -5-6j -2+5j]; % ORDEN (4,2) C = [-1+j -2+j 3-j -5-7j 4-2j -1+j -4 2 4-6j -2-5j 7j -j 7j -1 9j 4j]; % ORDEN (4,4) rA = rank(A); rAH = rank(A); rB = rank(B); rAB = rank(A*B); rCB = rank(C*B); % SE DEBE CUMPLIR: rA MENOR O IGUAL QUE min(3,4); % rA = rAH % rAB MENOR O IGUAL QUE min(rA,rB) % rCB = rB

25

Ejemplo 1.14 El siguiente programa determina la forma de Jordan para la matriz: 0 1 0 3 0 1 1 1 A= 0 0 0 1 0 0 1 2


% ejem1_14.m FORMA CANONICA DE JORDAN clear all A = [0 1 0 3;0 -1 1 1;0 0 0 1;0 0 -1 -2]; % ORDEN 4 [E D] = eig(A); % E = % MATRIZ DE EIGENVECTORES % 1.0000 -0.7071 0.9045 0.7068 % 0 0.7071 0 -0.7074 % 0 0 0.3015 -0.0002 % 0 0 -0.3015 0.0002 % D = % 0 % 0 % LOS EIGENVALORES DE A FORMAN LA DIAGONAL DE D 0 0 0 -1 0 0

26
% %

Matem atica Asistida con Computadora

% % % %

0 0 -1 0 0 0 0 -1 rank((-1)*eye(4)-A); % RESULTA 2 => 2 BLOQUES DE JORDAN % ASOCIADOS CON LA RAIZ TRIPLE (-1) FORMA DE JORDAN: 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 -1

Ejemplo 1.15 Determinar la denici on de las matrices siguientes: 2 2 2 1 A = 2 6 0 ; B= 2 1 0 2 3 Soluci on: Ver el programa ejem1 15.m. % ejem1_15.m DEFINICION DE MATRICES clear all A = [2 2 -2;2 6 0;-1 0 2]; EigA = eig(A); % EIGENVALORES DE A: 0.1996, 6.8922, 2.9083 % A > 0 DADO QUE TODOS SUS EIGENVALORES SON POSITIVOS B = [1 2 1;2 4 2;3 6 0]; EigB = eig(B); % EIGENVALORES DE B: 0, 7.1098, -2.1098 % B ES INDEFINIDA PUES UN EIGENVALOR ES > 0 Y EL OTRO ES < 0 1 2 0

2 4 6

1.3.

La Transformada de Laplace

La transformada de Laplace de una funci on g (t) se dene como: g (s) = L[g (t)] =
0

g (t)est dt

(1.21)

donde s es la variable laplaciana. La transformada de Laplace es u til para modelar sistemas lineales invariantes con el tiempo. Su transformada inversa se designa como: g (t) = L1 [g (s)] (1.22) Como ejemplo, la transformada de Laplace de la funci on g (t) = eat , donde a es real, se determina como sigue: L[e
at

]=
0

at st

e(s+a)t dt = s+a

=
0

1 s+a

1.3 La Transformada de Laplace

27

La tabla 1.3 muestra la transformada de Laplace de algunas funciones. Algunas de sus propiedades se muestran en la tabla 1.4. Cuadro 1.3: Transformadas de Laplace g (t) g (s) (t) t tn eat sent cost eat sent eat cost
n! ; sn+1

Descripci on Impulso unitario Escal on unitario Rampa unitaria

1
1 s 1 s2

Rampa de orden n Exponencial Seno Coseno Seno amortiguado Coseno amortiguado

n! = n(n 1) . . .
1 s+ a s2 + 2 s s2 + 2 ( s+ a ) 2 + 2 s+ a ( s+ a ) 2 + 2

Cuadro 1.4: Propiedades de la transformada de Laplace Propiedad Descripci on Derivaci on Derivaci on de orden n L L
dg dt dn g dtn

= sg (s) g (0), g (0) = [g (t)]t=0 = sn g (s) sn1 g (0) g n1 (0)

g n1 (0) = Integral Desplazamiento en tiempo Desplazam. en frecuencia Valor inicial Valor nal L

L[g (t t0 )(t t0 )] = et0 s g (s) L[eat g (t)] = g (s + a) l mt0 g (t) = l ms sg (s) l mt g (t) = l ms0 sg (s)

dn1 dtn1 g (t) t=0 t g ( s) 0 g (t)dt = s

Ejemplo 1.16 La gura 1.1 muestra un carro de masa m = 1000 kg desplaz andose con una velocidad v gracias a la acci on de la fuerza u producida por su motor. Si se

28

Matem atica Asistida con Computadora

desprecia la inercia de las ruedas y se asume que la fuerza de fricci on bv es lo u nico que se opone al movimiento, donde b= 50 N-s/m es el coeciente de fricci on, entonces la din amica del proceso puede modelarse como: mv (t) + bv (t) = u(t); v = dv dt

Determinar la funci on de transferencia del proceso y su respuesta a un escal on de 1 m/s, sabiendo que la entrada es u y la salida es v .
v velocidad friccion bv m u

Figura 1.1: M ovil en movimiento. Soluci on: La funci on de transferencia del proceso se obtiene aplicando la propiedad de derivaci on de orden n (tabla 1.4), con todas las condiciones iniciales iguales a cero: msv (s) + bv (s) = u(s); 1 v (s) = u(s) ms + b

Dado que la entrada es un escal on, u(s) = 1 s . La salida se determina de: v (t) = L1 [v (s)] = L1 1 1 1 1 = L1 b s(ms + b) b s s+ m

y empleando la tabla 1.3 obtenemos: 1 v (t) = (1 ebt/m ) b Ejemplo 1.17 Empleando las propiedades del valor inicial y del valor nal, determinar tales valores para la velocidad del m ovil del problema anterior. ms sv (s) = 0. Soluci on: El valor inicial se determina de: l mt0 v (t) = l El valor nal se obtiene de: l mt v (t) = l ms0 sv (s) = 1 b.

Cap tulo 2

Sistemas Discretos
En este cap tulo se exponen los conceptos de variables de estado, muestreo y reconstrucci on de se nales en los procesos a controlar. Tambi en se trata la discretizaci on directa de procesos continuos, la transformada Z como herramienta de discretizaci on, las formas can onicas de los procesos en el espacio de estado discreto y los conceptos de controlabilidad y observabilidad. El material expuesto pretende dar una base s olida acerca de los sistemas de control en el dominio discreto. Todos los archivos correspondientes a los ejercicios desarrollados en este cap tulo se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

2.1.

Dise no de Sistemas de Control Digital

La gura 2.1 muestra la estructura de un sistema de control digital, cuyo objetivo de control es lograr que la se nal de salida Y del proceso (de car acter continuo, como en la mayor a de los casos) siga a la se nal de referencia r cumpliendo determinadas especicaciones de dise no, tales como: m nimo tiempo de estabilizaci on, m nimo sobreimpulso y/o error en estado estacionario nulo en Y . En otras palabras, el algoritmo de control implementado, en este caso digitalmente, debe ser capaz de crear una se nal de control U (la variable manipulada), la cual actuando sobre el proceso a trav es de un actuador, minimice la se nal de error e. El bloque de ltraje es u til para eliminar las componentes contaminantes de alta frecuencia de la se nal de ruido de medici on n. El ltro de ruido puede ser anal ogico o digital y su inclusi on depende de la magnitud del ruido y su relevancia dentro del funcionamiento del sistema de control.

30

Sistemas Discretos
Disturbios

Muestreador y A/D

Computadora Digital

D/A y Retencion

Actuador y Proceso

n
Filtraje Medicion

Figura 2.1: Estructura de un sistema de control digital. En la estructura de control descrita en el p arrafo anterior, el algoritmo de control se implementa en un dispositivo digital que puede ser una computadora personal, una computadora de procesos (con capacidad para manejar varios lazos de control), un microcontrolador o una tarjeta PDS (Procesamiento Digital de Se nales). El procesamiento digital del algoritmo de control requiere de la presencia de los dispositivos de adquisici on de datos: muestreadores, conversores de se nal A/D (anal ogico a digital) y D/A (digital a anal ogico) y retenedores (reconstructores) de se nal. La conguraci on mostrada en la gura 2.1 no es u nica. Por ejemplo, dado el caso, la se nal de referencia y la comparaci on de se nales pueden ser generadas dentro de la computadora digital. En otros casos, si el actuador y los dispositivos de medici on son capaces de procesar se nales digitales, entonces tales dispositivos pueden actuar directamente sobre el proceso, dando lugar a nuevas conguraciones. En las aplicaciones descritas en este libro, el dispositivo de procesamiento digital es una computadora personal, los sensores de se nal son decodicadores electr onicos de pulsos (encoders), mientras que el actuador es una combinaci on de un servomotor D.C. (de corriente directa) con un amplicador electr onico PWM (Pulse Width Modulation). El empleo del procesamiento digital permite la realizaci on de algoritmos de control sosticados existentes en la teor a de control moderna, pero tambi en refuerza la interrogante sobre qu e algoritmo de control es adecuado para determinada aplicaci on. Una respuesta a esta interrogante s olo es posible si se tiene conocimiento suciente del modelo de la din amica del proceso a controlar y de sus se nales. Tal conocimiento va a permitir la selecci on adecuada de un algoritmo de control que sea capaz de hacer cumplir el objetivo de control con el menor gasto (computacional, por ejemplo) y con el mayor rendimiento (satisfacci on de las especicaciones de dise no).

2.2 Concepto de Estado y Variables de Estado

31

2.2.

Concepto de Estado y Variables de Estado

La din amica de un proceso multivariable, es decir, un proceso que posee m ultiples entradas y m ultiples salidas, puede ser representada en el espacio de estado mediante dos conjuntos de ecuaciones diferenciales ordinarias de primer orden, denominadas las ecuaciones de estado y de salida, como sigue: = f(X, U, v, t) X Y = h(X, U, w, t) (2.1) donde f y h son funciones vectoriales de variable vectorial de orden n y r respectivamente, X es el vector de estado de orden n, U es el vector de control de orden m, Y es el vector de salida de orden r, v es el vector de disturbios (de orden n) en los estados, y w es el vector de disturbios (de orden r) en las salidas. El tiempo t se incluye como parte del argumento para indicar que pueden existir par ametros variantes con el tiempo. En este punto es conveniente denir el concepto de estado: El vector de estado X = [X1 . . . Xn ]T de un proceso (donde el super ndice T indica transpuesta) es el m nimo conjunto de variables, las vaon suciente riables de estado X1 . . . Xn , las cuales contienen informaci acerca de la historia pasada del proceso. Esta informaci on permite computar todos los futuros estados del proceso, asumiendo por supuesto, que todas las futuras entradas U son tambi en conocidas, como del mismo modo lo son las ecuaciones din amicas que describen dicho sistema. El n umero n de variables de estado dene el orden o la dimensi on del sistema. El espacio de estado es el espacio n-dimensional de todos los estados. Cuando el sistema es de orden n = 2, el espacio de estado es conocido como el plano de fase con coordenadas X1 y X2 . Los puntos de equilibrio en el espacio de estado para el proceso descrito en (2.1) se determinan cuando el estado del proceso no cambia gracias a la acci on de una fuerza de entrada U. Por tanto, los puntos de equilibrio (X) se determinan de: = f(X ,U ) = 0 X (2.2)

2.2.1.

Linealizaci on de Procesos

La representaci on linealizada en el espacio de estado de (2.1), sin la presencia de par ametros variantes con el tiempo, es la siguiente: = Ax + B u + E v x

32 y = C x + Du + F w

Sistemas Discretos (2.3)

donde A es la matriz de estado, B es la matriz de control, E es la matriz de disturbios en los estados, C es la matriz de salida de los estados, D es la matriz de salida de las entradas y F es la matriz de disturbios en las salidas. Las dimensiones de dichas matrices son: Ann , Bnm , Enn , Crn , Drm y Err , donde el primer sub ndice es el n umero de las de la matriz y el segundo, el n umero de columnas. Es importante notar que en (2.3) estamos empleando las variables residuales (tambi en llamadas variables de desviaci on o perturbacionales) siguientes: x=XX u=UU Sin la presencia de disturbios (v = w = 0), y para la operaci on del proceso alrededor del estado de equilibrio (X, U), las matrices A, B , C y D pueden ser determinadas evaluando las siguientes matrices jacobianas: f1 f1 f1 f1 X1 Xn U1 Um . . . . . . . . . . B= . A = . . . . . . . C =
fn X1 h1 X1

. . .

fn Xn h1 Xn

(X,U)

D=

fn U1 h1 U1

. . .

fn Um h1 Um

(X,U)

. . .

. . .

. . .

. . .

(2.4)

hr X1

hr Xn

(X,U)

hr U1

hr Um

(X,U)

La matriz de transferencia para procesos multivariables lineales se determina empleando la ecuaci on matricial siguiente: Y(s) = [C (sI A)1 B + D]U(s) (2.5)

donde s es la variable laplaciana e I es la matriz identidad. Cuando las se nales Y y U son unidimensionales, la ecuaci on anterior se convierte en la ecuaci on de transferencia de un proceso univariable. La ecuaci on caracter stica del proceso se obtiene de: det(sI A) = 0 (2.6)

donde det es la operaci on determinante. Las ra ces de (2.6) son tambi en conocidas como ra ces caracter sticas, eigenvalores, valores propios, modos,

2.2 Concepto de Estado y Variables de Estado

33

entre otras denominaciones. Los eigenvalores determinan la estabilidad del en el espacio de estado como proceso alrededor de un punto de equilibrio X sigue: El proceso descrito por la ecuaci on (2.3) es estable, siempre que todos los eigenvalores de su ecuaci on caracter stica (2.6) posean parte real negativa. Cuando al menos uno de tales eigenvalores posea parte real positiva o cero, entonces el proceso es inestable. De acuerdo a la ecuaci on (2.2), el proceso descrito por (2.3) con u y v nulos posee un solo punto de equilibrio: el origen. Empleando este hecho, la estabilidad del proceso descrito en (2.3) tambi en puede ser formulada empleando el concepto de estado, como sigue: El proceso descrito por la ecuaci on (2.3) es estable, cuando no siendo forzado (es decir, cuando u = v = 0), el estado del proceso tiende a cero para cualquier estado inicial nito x0 . Ejemplo 2.1 La gura 2.2 muestra dos tanques id enticos colocados en cascada. La secci on 2 horizontal A=9 m de cada tanque es constante. El objetivo de control es estabilizar (controlar) la altura H2 empleando como fuerza de control el ujo de alimentaci on Qo . Determinar el modelo linealizado de este proceso hidr aulico.
Q p
0 0

H1

p
1

p Q
0

Tanque 1 g
1

H2 p
2

Tanque 2
2

Figura 2.2: Proceso hidr aulico. Soluci on: Los ujos de salida Q1 y Q2 de los tanques se pueden modelar

34 como: Q1 = P1 P0 ; Q2 =

Sistemas Discretos

P2 P0

donde P1 , P2 y P0 son las presiones en el fondo de los tanques y en el exterior respectivamente, y =0.4 es una constante que depende de la geometr a del oricio. Si =1.23 kg/m3 es la densidad del l quido y g =9.81 m/s2 es la aceleraci on de la gravedad: P1 P0 = gH1 ; El ujo acumulado en cada tanque es: Q0 Q1 = A dH1 ; dt Q1 Q2 = A dH2 dt P2 P0 = gH2

Resolviendo las ecuaciones anteriores para las alturas, obtenemos: 1 = 1 Q0 g H1 = f1 H A A 2 = g [ H1 H2 ] = f2 H A y su correspondiente ecuaci on de salida: Y = [0 1] H1 H2

1 , h2 = H2 H 2, Denamos las siguientes variables residuales: h1 = H1 H 3 q0 = Q0 Q0 . Conociendo Q0 = 3 m /s, el estado de equilibrio del proceso se puede obtener de: g = 1Q H H1 = 0 1 0 A A = g [ H 1 H 2] = 0 H 2 A lo que resulta en: 2 2 = Q0 1 = H H 2 g Aplicando el jacobiano, el proceso linealizado resulta: = P h + B q0 ; h y = h2 = C h

2.2 Concepto de Estado y Variables de Estado donde: h= h1 h2 ; P =


f1 Q0 f2 Q0 f1 H1 f2 H1 f1 H2 f2 H2

35

=
1 ,H 2) (H

g 2A H1 g 1 2A H

0
g 2 2A H

B=

=
0 Q

1/A 0

C = [0 1];

D = [0]

Ejemplo 2.2 El proceso p endulo no lineal mostrado en la gura 2.3 puede rotar libremente alrededor del pivote gracias a la acci on de un torque externo U . En on viscosa rotacional en el dicha gura Bp =1.3366 N-m/rad/s es la fricci punto pivote, Lo =1.6350 m es la longitud de la varilla de peso despreciaon ble, Mo =0.5 kg es la masa de la esfera y g =9.81 m/s2 es la aceleraci de la gravedad. La salida de inter es es la posici on angular del p endulo. Para las situaciones mostradas en las guras 2.3(a) y 2.3(b) determine: las ecuaciones no lineales de estado y de salida, los puntos de equilibrio, las ecuaciones linealizadas de estado y de salida, las funciones de transferencia, las ecuaciones caracter sticas, y la estabilidad del proceso.

1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Bp
U U

Mo

Lo Mo

Lo

Bp (b)

(a)

Figura 2.3: P endulo no lineal en posici on de equilibrio estable (gura (a)) y en posici on de equilibrio inestable (gura (b)). Soluci on: El proceso en estudio es univariable; es decir, una sola entrada U actuando sobre el proceso, y una sola salida: la posici on angular. Primero analizaremos la situaci on mostrada en la gura 2.3(a). El torque resultante alrededor del pivote es: U = Mo L2 o + Bp + Mo gLo sen (2.7)

36

Sistemas Discretos

Notar que (2.7) es no lineal debido al sen. Seleccionando en (2.7) como y como salida Y = X1 se obtiene: variables de estado X1 = , X2 = 1 = X2 X 2 = g senX1 Bp X2 + 1 U X Lo Mo L2 Mo L2 o o Y = X1 cuya representaci on compacta (ecuaci on (2.1) con v = w = 0) resulta: = f; X donde: X= X1 X2 ; f= f1 f2 =
g L senX1 o

(2.8)

Y = X1 = h

Bp x2 Mo L2 o

X2

1 U Mo L2 o

(2.9)

Notar en (2.9) que n = 2, m = 1, r = 1. Empleando (2.2), los estados de equilibrio se obtienen de: X 1 = X2 = 0 g 1 Bp X 2 + 1 U =0 senX X 2 = Lo Mo L2 Mo L2 o o 1 y = X1 X

(2.10)

1 = 2k, k = 0, 1, . . . Por = 0, es: X 2 = 0 y X cuya soluci on, con U consiguiente, los estados de equilibrio son (0[2 ], 0) para la gura 2.3(a) y ( [3 ], 0) para la gura 2.3(b). Empleando (2.4), la linealizaci on de (2.9) alrededor del estado de equilibrio (X1 , X2 , U ) = (0, 0, 0) resulta: = Ax + Bu; x donde: A =
f1 X1 f2 X1 f1 U f2 U h X1 f1 X2 f2 X2

y = C x + Du

=
(0,0) 1 Mo L2 o (0,0)

0 g L o

1 M op L2
B
o

B = C = D =

=
0 h X2

1 0 (2.11)

h U

= [0]
0

2.2 Concepto de Estado y Variables de Estado La funci on de transferencia del proceso se puede determinar de: Y (s) U (s) = C (sI A)1 B = [1 0] =
2 Mo L2 os

37

s
g Lo

1 Bp +s Mo L2
o

1 Mo L2 o

1 + Bp s + Mo gLo

(2.12)

La ecuaci on caracter stica se determina de (2.6):


2 det(sI A) = Mo L2 o s + Bp s + Mo gLo = 0

(2.13)

que resulta siendo el denominador de la funci on de transferencia dada en ces de (2.13) resultan: (2.12). Con los valores dados de Mo , Lo y Bp , las dos ra s1,2 = 0,74822,6038i, lo cual nos indica que el estado de equilibrio (0, 0, 0) es estable. Cuando el p endulo se encuentra en la posici on mostrada en la gura = y = . Por 2.3(b), entonces = + , sen( + ) = sen, consiguiente, la ecuaci on que describe la din amica del p endulo no lineal es: U = Mo L2 o + Bp Mo gLo sen (2.14)

Con el procedimiento empleado para la situaci on mostrada en la gura 2.3(a), f acilmente podemos determinar que: A= 0
g Lo

1 Mo p L2
B
o

y su ecuaci on caracter stica resulta: det(sI A) = Mo L2 o + Bp Mo gLo sen la cual posee dos ra ces: s1 = 3,5587 y s2 = 2,6024. El eigenvalor positivo nos indica que el punto de equilibrio (, 0) es inestable. = Ax + B u para el proceso p La ecuaci on de estado x endulo, puede determinarse aplicando en (2.7) el criterio de linealizaci on sen = , ha ciendo u = U , y seleccionando como variables de estado x1 = y x2 = . Sin embargo, la forma general de linealizaci on requiere de la aplicaci on de las matrices jacobianas dadas en (2.4).

38

Sistemas Discretos

2.3.
2.3.1.

Fundamentos de Sistemas Discretos


Muestreo y Reconstrucci on

La gura 2.4 muestra un lazo de control que incluye una computadora digital equipada con los dispositivos de adquisici on de datos necesarios. La se nal controlada y , luego de ser sensada, pasa por un muestreador, gener andose un tren de impulsos y separados uno del otro en T segundos (el tiempo de muestreo). Luego, el tren de impulsos es digitalizado por medio del dispositivo A/D, lo que resulta en la se nal yd , la cual ya puede ser procesada por la computadora con el n de generar el algoritmo de control. La se nal de control digitalizada ud sufre el proceso inverso: pasa por un dispositivo D/A y luego por un muestreador para generar el tren de impulsos u . Mediante un dispositivo de retenci on de orden cero, que se describe m as adelante, la se nal de control es reconstruida, lo que resulta en una se nal de control continua u capaz de actuar sobre el actuador-proceso continuo. Notar que la se nal de referencia digitalizada rd se genera internamente. Si la referencia fuera una se nal externa, entonces debe ser procesada como la se nal y . En lo que sigue, asumiremos que el tiempo de muestreo T es el mismo para todos los muestreadores y que dichos muestreadores operan sincr onicamente; es decir, que el retardo entre la operaci on de un muestreador con respecto a otro es despreciable. Es importante anotar que los convertidores de se nal, muestreadores y dispositivos de retenci on, son parte de la interfaz (tarjeta de adquisici on de datos, por ejemplo) de la computadora digital con su mundo circundante (el proceso-actuador y los dispositivos de medici on). Un tren de impulsos, por ejemplo la se nal u , puede modelarse como: u (t) =
k=0

u(kT ) (t kT )

(2.15)

donde T es el tiempo de muestreo de u(t), k es el tiempo discreto (t = kT ), y (t kT ) es la funci on impulso unitario o delta de Dirac que se dene como: 1 si t = kT (t kT ) = 0 si t = kT Empleando la conocida identidad L[ (t kT )] = ekT s , la transformada de

2.3 Fundamentos de Sistemas Discretos

39

COMPUTADORA

DIGITAL

ALGORITMO DE CONTROL

rd

ud

D A D

u*
T

RETENCION

ACTUADOR

PROCESO

FILTRAJE A

MEDICION

yd

y* T

Figura 2.4: Lazo de control con una computadora como controlador.

Laplace de u resulta: u (s) = L[


k=0

u(kT ) (t kT )] =
k=0

u(kT )L[ (t kT )] (2.16)

=
k=0

u(kT )ekT s = u (esT )

La frecuencia de muestreo se determina de la relaci on: s = 2 T (2.17)

El tren de impulsos u (t) se puede representar alternativamente mediante su serie de Fourier: 1 u(t)ejs t (2.18) u (t) = T
k=

cuya transformada de Laplace ahora resulta (ver referencias [4], [3]): 1 u (s) = T

u(s + is )
k=

(2.19)

acter La se nal u (s) posee dos propiedades importantes. La primera es su car peri odico, que puede demostrarse reemplazando en la ecuaci on (2.16) la

40

Sistemas Discretos

variable laplaciana s por s + js , = 0, 1, 2, . . ., como sigue: u (s + js ) =


=0 sT

u(kT )e

kT (s+js )

=
=0

u(kT )ekT s ekT js (2.20)

= u (e )

donde hemos usado el hecho de que s T = 2 . La segunda propiedad es como sigue: si u(s) posee un polo en s = s1 , entonces u (s) debe poseer polos en s = s1 + js , = 0, 1, 2, . . . Esta propiedad puede demostrarse expandiendo la sumatoria en la ecuaci on (2.19): 1 u (s) = T

u(s + is ) =
k=

1 [u(s) + u(s + js ) + u(s + 2js ) T

+ + u(s js ) + u(s 2js ) + ] ermino de la expansi on Si u(s) posee un polo en s = s1 , entonces cada t contribuye con un polo en s = s1 + js . La gura 2.5 muestra la respuesta en frecuencia de las se nales u(t) y aco de |u (ej )| u (t), asumiendo que u(t) es de banda limitada. Del gr podemos extraer la siguiente conclusi on referente al teorema fundamental del muestreo: Para que la se nal continua original u(t) pueda ser reconstruida completamente a partir de sus muestras, la frecuencia de muestreo tiene que seleccionarse de modo tal que: s 2max T max (2.21)

La gura 2.6 muestra en detalle el proceso de muestreo y reconstrucci on de la se nal u empleando un dispositivo de retenci on de orden cero, el cual reconstruye la se nal mediante aproximaciones rectangulares. Tener en cuenta que u es una se nal gen erica. Podemos detrerminar la funci on de transferencia on como sigue. El a rea del pulso rectangular de base gr0 (s) de la retenci (k + 1)T kT es u(kT )[(t KT ) (t (k + 1)T )], donde (.) es la funci on escal on unitario que se dene como: (t kT ) = 1 si t kT 0 si t < kT

2.3 Fundamentos de Sistemas Discretos


u(t) u(j )

41

max

max

u*(t)
s
2

u*(e
2

s max s

max

Figura 2.5: Respuesta en frecuencia de las se nales u(t) y u (t) para ilustrar el teorema del muestreo. El a rea total de la se nal u a la salida de la retenci on es:

u (t) =
k=0

u(kT )[(t kT ) (t (k + 1)T )]


ekT s s ,

Empleando la conocida transformaci on L[(t kT )] = da de Laplace de u(t) resulta:

la transforma-

u (s) =
k=0

1 1 u(kT )ekT s [1 eT s ] = u (s) [1 eT s ] s s

Por consiguiente, la funci on de transferencia de la retenci on de orden cero viene a ser: 1 esT u (s) = G (2.22) ( s ) = r 0 u (s) s Este u ltimo resultado ser a usado posteriormente. Discretizaci on Directa Es bastante u til discretizar directamente expresiones que contengan integrales y derivadas. La aproximaci on rectangular calcula el a rea debajo de una cierta curva e(t) mediante la suma de rect angulos de la forma T e(iT T ) (T es el tiempo de muestreo), tal como se ilustra a continuaci on. Por consiguiente, t erminos que contengan integraci on pueden discretizarse empleando

42
u(s) u*(s)

Sistemas Discretos
_ u(s) 1 e- sT s T DE ORDEN CERO RETENCION _ u*(t) u (t)
u(2T) T 2T u(3T) 3T 4T u(T) 0 u(0)

u (t)

2T

3T

4T

Figura 2.6: Proceso de muestreo y reconstrucci on. aproximaci on rectangular como sigue:
t

u(t) =
0 k

e( )d
k 1

u(kT )
i=0

T e(iT T );

u(kT T ) T
i=0

e(iT T )

u(kT ) u(kT T ) = T e(kT T );

u(k ) u(k 1) = T e(k 1) (2.23)

En la u ltima expresi on hemos obviado en el argumento su dependencia con el tiempo de muestreo T , pues se sobreentiende que todos los t erminos se discretizan empleando el mismo tiempo de muestreo. T erminos que contengan derivadas pueden discretizarse empleando diferencias por atraso: de(t) dt de (t) dt e(kT ) e(kT ) e(kT T ) = T T 2 e(kT ) e(kT ) e(kT T ) e (t) e (t T ) = e (t) = = 2 2 T T T . . . (2.24) = e (t)

Si la discretizaci on de la derivada se realiza por adelanto, entonces las diferencias son de la forma: x(kT + T ) x(kT ); Ejemplo 2.3 Discretizar el modelo no lineal del proceso p endulo descrito en el ejemplo 2.2 y gracar diez segundos de su respuesta a un torque tipo escal on unitario. x(k + 1) x(k )

2.3 Fundamentos de Sistemas Discretos

43

Asumir los siguientes valores: Lo = 1.6350 m, Mo = 0.5 Kg, Bp = 1.3366 N-m/rad/s, g = 9.81 m/s2 y T = 0.01 s. Soluci on: Discretizando por adelanto las ecuaciones dadas en (2.8) y obviando la escritura del tiempo de muestreo T en los argumentos, obtenemos: X1 (k + 1) = X1 (k ) + T X2 (k ) Bp g 1 x2 (k ) + U (k ) X2 (k + 1) = X2 (k ) + T senX1 (k ) 2 Lo Mo Lo Mo L2 o y (k ) = x1 (k ) El siguiente programa en c odigo MATLAB determina la respuesta que se muestra en la gura 2.7. Observar que cada muestra k equivale a T s.
% ejem2_3.m RESPUESTA DEL PENDULO NO LINEAL A UN ESCALON clear all Lo = 1.6350; Mo = 0.5; Bp =1.3366; g = 9.81; T = 0.01; X1(1) = 0; X2(1) = 0; for k = 1:1000 % CADA MUESTRA k EQUIVALE A T SEGUNDOS U(k) = 1; % ESCALON DE ENTRADA X1(k+1) = X1(k) + T*X2(k); X2(k+1) = X2(k) + T*( -(g/Lo)*sin(X1(k)) - (Bp/(Mo*Lo^2))*X2(k) ... + (1/(Mo*Lo^2))*U(k) ); Y(k) = X1(k); end plot(Y); grid ylabel(Posicion (rad)) xlabel(Tiempo discreto k) print -deps -f fig2_7

Ejemplo 2.4 Discretizar el siguiente controlador ideal PID: u(t) = K e(t) + 1 TI


t 0

e(t)dt + TD

de(t) dt

(2.25)

on y TD donde K es la ganancia proporcional, TI es el tiempo de integraci es el tiempo derivativo. En un primer caso emplear integraci on rectangular y luego usar integraci on trapezoidal. Soluci on: Empleando las relaciones (2.23) y (2.24) en (2.25) se obtiene: u(k ) = K T e(k ) + TI
k

e(i 1) +
i=0

TD [e(k ) e(k 1)] T

44
0.2 0.18 0.16 0.14 Posicin (rad) 0.12 0.1 0.08 0.06 0.04 0.02 0 0

Sistemas Discretos

100

200

300

400 500 600 Tiempo discreto k

700

800

900

1000

Figura 2.7: Respuesta del p endulo no lineal al escal on. u(k 1) = K + e(k 1) + T TI
k

e(i 1) e(k 1)
i=0

TD [e(k 1) e(k 2)] T

Restando las expresiones anteriores y despejando u(k ) obtenemos: u(k ) = u(k 1) + q0 e(k ) + q1 e(k 1) + q2 e(k 2) donde: q0 = K (1 + TD ); T q1 = K (1 + 2 T TD ); T TI q2 = K TD T (2.26)

Si la integraci on emplea el m etodo trapezoidal (aproximaci on de segmentos de area mediante trapezoides), entonces: u(k ) = K 1 e(k ) + TI
k

T
i=0

TD e(i 1) + e(i) + [e(k ) e(k 1)] 2 T


k k

u(k 1) = K

T e(k 1) + 2TI

e(i 1) e(k 1) +
i=0 i=0

e(i) e(k )

2.3 Fundamentos de Sistemas Discretos TD [e(k 1) e(k 2)] T

45

Restando las expresiones anteriores y despejando u(k ) obtenemos una expresi on similar a (2.26), donde: q0 = K (1 + T TD + ); T 2TI q1 = K (1 + 2 T TD ); T 2TI q2 = K TD T

2.3.2.

La Transformada Z
z = eT s = eT (+j) = eT [cosT + jsenT ] (2.27)

Es u til introducir la siguiente relaci on:

Reemplazando en la ecuaci on (2.16) la se nal u por una variable gen erica g , llegamos a la siguiente denici on de la transformada Z :

g (z ) = Z [g (kT )] =
k=0

g (kT )z k = g (0) + g (T )z 1 + g (2T )z 2 + (2.28)

La serie en (2.28) converge si |g (kT )| se restringe a valores nitos y si |z | > 1. Las sumatorias siguientes son bastante u tiles para resolver problemas relacionados con la transformada Z :
N 1

ak =
k=0

1 aN ; 1a 1 ; 1a a ; (1 a)2

|a| < 1 |a| < 1 |a| < 1 |a| < 1 (2.29)

ak =
k=0

kak =
k=0 N2

ak =
k = N1

aN1 aN2 1 ; 1a aN1 ; 1a |a| < 1

ak =
k = N1

A manera de ejemplo, la transformada Z del impulso unitario (kT ), sabiendo que (0T ) = 1, resulta:

Z [ (kT )] =
k=0

(kT )z k = z 0 = 1

46

Sistemas Discretos

mientras que la transformada Z del escal on (kT )=1 empleando la segunda de las sumatorias dadas en (2.29) resulta:

Z [(kT )] =
k=0

z k =

1 z = 1 z 1 z1

la cual es v alida para |z 1 | < 1 (o |z | > 1), pues la serie debe ser convergente. La tabla 2.1 ilustra la transformada Z de algunas secuencias notables, mientras que la tabla 2.2 presenta la relaci on existente entre la transformada Z y la transformada de Laplace. A continuaci on se formulan algunas propiedades de la transformada Z : (1) Linealidad: Z [ag1 (kT ) + bg2 (kT )] = aZ [g1 (kT )] + bZ [g2 (kT )] (2) Desplazamiento a la derecha: Z [g (kT dT )] = z d g (z ), d 0 (3) Desplazamiento a la izquierda: 1 ], Z [g (kT + dT )] = z d [g (z ) d =0 g (T )z (4) Amortiguamiento: Z [g (kT )eakT ] = g (zeaT ) (5) Multiplicaci on por una variable: (z ) Z [kg (kT )] = z dg dz (6) Multiplicaci on por una exponencial: z Z [ak g (kT )] = g ( a ) (7) Teorema del valor inicial: l mk0 x(kT ) = l mz x(z ) (8) Teorema del valor nal: mz 1 l mk g (kT ) = l
z 1 z g (z )

d0

= l mz 1 (1 z 1 )g (z )

Por ejemplo, sabiendo que Z [cosk ] es conocido, la transformada Z de ak cosk puede ser determinada empleando la propiedad de multiplicaci on por una exponencial, como sigue: Z [ak cosk ] = z2 z (z cos ) 2zcos + 1 =
z =z/a

z2

z (z acos ) 2zacos + a2

2.3 Fundamentos de Sistemas Discretos

47

Cuadro 2.1: Transformada Z de algunas secuencias. No (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) g (t) (k ) (k d)) (k ) (k d) k(k ) ak (k ) ak1 (k 1) kak (k ) (k )senk (k )cosk (k )ak senk (k )ak cosk
k(k1)(km+2) kd+1 a (d1)!

g (z ) 1 z d
z z 1 z d+1 z 1 z (z 1)2 z z a 1 z a az (z a )2 z sin z 2 2zcos +1 z (z cos ) z 2 2zcos +1 za sen z 2 2za cos +a2 z (z acos ) z 2 2zacos +a2 z d+1 (1z 1 )d

48

Sistemas Discretos

Cuadro 2.2: Transformada de Laplace versus transformada Z. No (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)

g (t) (t) (t) t eat teat t2 eat 1 eat eat ebt sent cost eat sent eat cost

g (s) 1
1 s 1 s2 1 s+ a 1 ( s+ a ) 2 2 ( s+ a ) 3 a s( s+ a ) b a (s+a)(s+b) s2 + 2 s s2 + 2 ( s+ a ) 2 + 2 s+ a ( s+ a ) 2 + 2

g (kT ) (k ) (k ) k (eaT )k kT (eaT )k (kT )2 (eaT )k 1 (eaT )k (eaT )k (ebT )k senkT coskT (eaT )k senkT (eaT )k coskT

g (z ) 1
z z 1 Tz (z 1)2 z z eaT T zeaT (z eaT )2 T 2 zeaT (z +eaT ) (z eaT )3 z (1eaT ) (z 1)(z eaT ) z (eaT ebT ) (z eaT )(z ebT ) zsenT z 2 2zcosT +1 z (z cosT ) z 2 2zcosT +1 zeaT senT z 2 2zeaT cosT +e2aT z (z eaT cosT ) z 2 2zeaT cosT +e2aT

2.3 Fundamentos de Sistemas Discretos

49

La forma general para obtener Z [g (s)] es mediante el m etodo de los residuos (derivado de la integral de convoluci on). Si se tiene: g (s) = q (s) p(s)

donde el grado del polinomio p(s) es mayor que el de q (s), y adem as si suponemos que todas las ra ces de q (s) poseen parte real negativa, entonces g (z ) se obtiene de:
P

g (z ) =
i=1 Q

(s ai )

g (s)z z eT s

s= a i

+
j =1

1 dmj 1 g (s)z (s bj )mj m 1 j (mj 1)! ds z eT s

(2.30)
s = bj

umero de donde P es el n umero de polos ai no repetidos de G(s) y Q es el n polos bj que se repiten con multiplicidad mj . Ejemplo 2.5 Determinar g (z ) sabiendo que: g (s) = s2 (s 1 + 1)

Soluci on: Para este caso P = 1, a1 = 1, Q = 1, b1 = 0, m1 = 2. Luego: g (z ) = (s + 1) 1 (2 1)! z 1 s2 (s + 1) (z eT s ) =


s=0

+
s= 1

d z 1 s2 2 ds s (s + 1) (z eT s )

z z (z 1 T ) + T ze (z 1)2

2.3.3.

La Transformada Z Inversa

En el dominio continuo, la transformada de Laplace g (s) = L[g (t)] posee una inversa L1 [g (s)] = g (t) que es u nica. En contraste, la transformaci on 1 Z [g (t)] = g (z ) posee una inversa Z [g (z )] = g (t) que no es u nica debido a que la se nal discreta no est a denida entre muestras. En el dominio discreto, sin embargo, la transformaci on g (z ) = Z [g (kT )] posee una u nica inversa Z 1 [g (z )] = g (kT ).

50

Sistemas Discretos

Una forma de determinar g (kT ) es dividir el numerador de g (z ) entre su denominador. Otra forma es expandir g (z ) en fracciones parciales y obtener erminos resultantes. Un m etodo la transformada Z 1 de cada uno de los t generalizado para determinar la inversa de g (z ) consiste en factorizar g (z ) en factores de primer orden; luego, usar la siguiente f ormula de inversi on:
P

g (kT ) =
i=1 Q

[(z ai )g (z )z k1 ]z =ai 1 dmj 1 [(z bj )mj g (z )z k1 (mj 1)! dz mj 1 (2.31)


z = bj

+
j =1

umero de donde P es el n umero de polos ai no repetidos de G(z ) y Q es el n polos bj que se repiten con multiplicidad mj . Por ejemplo, determinar g (kT ) de: z g (z ) = (z 2)(z 3)(z 4)(z 1)2 (z 5)3 Para este caso: P = 3, a1 =2, a2 =3, a3 =4, Q=2, b1 =1, b2 =5, m1 =2 y m2 =3. Por consiguiente: g (kT ) = [(z a1 )g (z )z k1 ]z =a1 + [(z a2 )g (z )z k1 ]z =a2 + [(z a3 )g (z )z k1 ]z =a3 1 dm1 1 + [(z b1 )m1 g (z )z k1 (m1 1)! dz m1 1 z = b1 + dm2 1 1 [(z b2 )m2 g (z )z k1 (m2 1)! dz m2 1
z = b2

Ejemplo 2.6 Determinar g (kT ) para: (a) : g (z ) = z ; (z 1)(z 2) zk z1 (b) : g (z ) = z (z 1)2

Soluci on: Para el primer caso: P = 2, a1 = 1, a2 = 2, Q = 0. Por tanto: g (k ) = +


z =1

zk z1 z k 1

z =2

= 1 + 2k

Para el segundo caso: P = 0, Q = 1, b1 = 1, m1 = 1. Luego: g (k ) = 1 d (z 1)2 1! dz z (z 1)2 =


z =1

d k (z ) dz

=k
z =1

2.3 Fundamentos de Sistemas Discretos

51

2.3.4.

Funci on de Transferencia de Pulso

Conociendo la funci on de transferencia G(s) = y (s)/u(s) de un sistema, la correspondiente funci on de transferencia de pulso se determina de la relaci on: y (z ) 1 esT G(s) = G(z ) = Z [Gr0 G(s)] = Z G(s) = (1 z 1 )Z u(z ) s s (2.32) Para el caso multivariable, la matriz de transferencia de pulso G(z ) se determina empleando la relaci on (2.32) para cada elemento de la matriz de transferencia G(s). Para derivar la funci on de transferencia de pulso para el caso de procesos en cascada o formando lazos cerrados, debemos proceder con cautela, porque no siempre es posible encontrar una relaci on de la forma y (z ) = G(z )u(z ). Los siguientes ejemplos ilustran los casos tratados. Ejemplo 2.7 Dado el tiempo de muestreo T , determinar la funci on de transferencia de pulso para el proceso: G(s) = K Tt s e , s+a Tt = dT, d = 1, 2, 3, . . .

Soluci on: Empleando la relaci on (2.32) y la tabla 2.2 obtenemos: G(z ) = Z [Gr0 G(s)] = (1 z 1 )Z a1 = eaT ; Ejemplo 2.8 b1 z 1 K (esT )d = z d s(s + a) 1 + a1 z 1 K b1 = (1 eaT ) a

Determinar la salida muestreada para los casos ilustrados en las guras 2.8(a)-(f). Soluci on: En la gura (a) se tiene: y (s) = G2 (s)x (s) y x(s) = G1 (s)u(s), donde x(s) es una se nal auxiliar. Muestreando x(s) como sigue:
[x(s)] = x (s) = [G1 (s)u(s)] = G 1 (s)u (s)

Reemplazando ahora x (s) en y (s), y luego muestreando y (s) obtenemos una expresi on en el dominio discreto, a saber: y (s) = G 2 (s)G1 (s)u (s). Esta u ltima relaci on es equivalente a: y (z ) = G2 (z )G1 (z )u(z )

52
T u(s) T u(s) u(s) u*(s) u*(s) T x(s) x*(s) (a) G 1 (s) (b) G 1 (s) T x(s) x*(s) (c)
-Ts

Sistemas Discretos

G 1 (s)

G 2 (s)

y(s) y(s)

G 2 (s)

G 2 (s)

y(s)

T u(s) u*(s)

D(z)

1-e s (d)

G p (s) G(s) u(s)


+ -

y(s)

u(s)
+ -

x(s)

T x*(s) G(s)

y(s)

G(s) H(s) (f)

y(s) T y*(s)

H(s) (e)

Figura 2.8: Sistemas discretos a lazo abierto y a lazo cerrado. En la gura (b) se tiene: y (s) = G2 (s)G1 (s)u (s). Muestreando y obtenemos: y (s) = [G2 (s)G1 (s)u (s)] = [G2 G1 (s)] u (s) Por consiguiente: y (z ) = [G2 G1 (s)](z )u(z ) En la gura (c) se tiene: y (s) = G2 (s)x (s) y x(s) = G1 (s)u(s). Procediendo como en los casos anteriores se obtiene: y (z ) = G2 (z )[G1 u](z ) En la gura (d) tenemos: y (s) = G(s)D(z )u (s). Muestreando y (s) obtenemos: y (z ) = G(z )D(z )u(z )

2.3 Fundamentos de Sistemas Discretos

53

Para la gura (e) se tiene: y (s) = G(s)x (s) y x(s) = u(s) H (s)y (s). Reemplazando y (s) en x(s), muestreando y despejando x (s) se obtiene: x (s) = u (s) 1 + [GH ](z )

Reemplazando x (s) en y (s) = G(s)x (s) resulta: y (z ) = G(z ) u(z ) 1 + [GH ](z )

Para la gura (f) tenemos y (s) = G(s)u(s) G(s)H (s)y (s). Muestreando y despejando y (s) se obtiene: y (z ) = [GH ](z ) u(z ) 1 + [GH ](z )

2.3.5.

El Espacio de Estado Discreto

En la secci on 2.2 vimos que la din amica linealizada de un proceso (sin la presencia de disturbios) puede ser representada en el espacio de estado por la ecuaci on (2.3): = Ax + B u; x y = C x + Du (2.33)

La soluci on de la ecuaci on de estado anterior, dado un estado inicial x(t0 ), es: x(t) = eA(tt0 ) x(t0) ) + eAt = (t t0 )x(t0) + donde: (t t0 ) = L
1 t t0 t t0

eA B u( )d (2.34)

(t )B u( )d

[(sI A)

]=e

A(tt0 )

=
=0

A (t t0 ) !

es la matriz de transici on. Para demostrar que efectivamente (2.34) es una soluci on de la ecuaci on de estado (2.33), basta derivar la expresi on (2.34) = Ax + B u. con respecto al tiempo, para as obtener x

54

Sistemas Discretos

La representaci on de la ecuaci on de estado en el dominio laplaciano toma la forma: sx(s) x(t0 ) = Ax(s) + B u(s) x(s) = (sI A)1 x(t0 ) + (sI A)1 B u(s) Ejemplo 2.9 y(s) = C x(s) + Du(s) (2.35)

Dado u = 3et , determinar la respuesta de un proceso descrito por las siguientes ecuaciones de estado y de salida: x 1 = 7x1 + x2 + 2u; x 2 = 12x1 u y = 3x1 4x2 2u Condiciones iniciales: x1 (0) = 6, x2 (0) = 1. Gracar la respuesta y (t) y compararla con las respuestas obtenidas mediante discretizaci on para los tiempos de muestreo de 0.1 s y 0.04 s. on Soluci on: Seg un la tabla 2.2: L[3et ] = 3/(s + 1). Aplicando la ecuaci (2.35) obtenemos: A= C= 3 4 7 1 12 0 ;
1

B=

2 1 x(0) =
1

D = [2]; 6 1

6 1 2 1 u(s) 3 s+1

x(s) = = = s2

s + 7 1 12 s 1 + 7s + 12

s + 7 1 12 s 6 1 +

s 1 12 s + 7

2 1

6s2 +s2 (s+1)(s+3)(s+4) s2 +77s14 (s+1)(s+3)(s+4) 6s2 +s2 (s+1)(s+3)(s+4) s2 +77s14 (s+1)(s+3)(s+4)

y(s) = C x(s) + Du(s) = = y (t) =

3 4

3 s+1

22s2 305s + 50 6 297/6 767/2 918/3 = + + (s + 1)(s + 3)(s + 4) s + 1 s+1 s+3 s+4 297 t 767 3t 918 4t e + e e + , t0 6 2 3

2.3 Fundamentos de Sistemas Discretos

55

Las respuestas mostradas en la gura 2.9 se realizaron con el programa ejem2 9.m. Para T 0,04 s, las respuestas y (t) e y (kT ) pr acticamente coinciden. Conforme T aumenta, la diferencia entre y (t) e y (kT ) es m as notoria, lo cual nos indica que los sistemas muestreados dependen de T .
% ejem2_9.m COMPARACION DE RESPUESTAS A UNA ENTRADA ARBITRARIA u(t) A = [-7 1 -12 0]; B = [2;-1]; Cc = [3 -4]; Dc = [-2]; T1 = 0.1; % TIEMPO DE MUESTREO EN SEGUNDOS [G,H,C,D] = c2dm(A,B,Cc,Dc,T1,zoh); % CONTINUA A DISCRETA x = [-6;1]; % CONDICION INICIAL for k = 1:100 % CADA MUESTRA k EQUIVALE A T SEGUNDOS u(k) = 3*exp(-k*T1); % ENTRADA y1(k) = C*x + D*u(k); x = G*x + H*u(k); end T2 = 0.04; % TIEMPO DE MUESTREO EN SEGUNDOS [G,H,C,D] = c2dm(A,B,Cc,Dc,T2,zoh); % CONTINUA A DISCRETA x = [-6;1]; % CONDICION INICIAL for k = 1:250 % CADA MUESTRA k EQUIVALE A T SEGUNDOS u(k) = 3*exp(-3*k*T2); % ENTRADA y2(k) = C*x + D*u(k); x = G*x + H*u(k); end % SOLUCION y(t) t = 0:0.1:10; y = 297*exp(-t)/6 - 767*exp(-3*t)/2 + 918*exp(-4*t)/3; % GRAFICOS t=linspace(0,10,101); t1=linspace(0,10,100); t2=linspace(0,10,250); plot(t,y,t1,y1,--,t2,y2,-.); grid ylabel(Respuesta y(t)) xlabel(Tiempo en segundos) print -deps -f fig2_9

Soluci on de la Ecuaci on de Estado Discreta Discretizando la ecuaci on (2.33) para un tiempo discreto k = t/T y asumiendo que entre muestras la se nal de control u es constante, entonces para la se nal de entrada u(t) = u(kT ), kT (k + 1)T y para un estado inicial x(kT ) = u(kT ), kT (k + 1)T , la ecuaci on de estado se convierte

56
10

Sistemas Discretos

10 y Salida 20 30 40 50 0

4 Tiempo

5 6 en segundos

10

Figura 2.9: Respuestas y (t) para el ejemplo 2.9. Curva s olida: y (t); en trazos: y (kT1 ), T1 = 0,04 s; curva punto y raya: y (kT2 ), T2 = 0,1 s. en: x(t) = (t kT )x(t0) + u(kT )

t t0

(t )Bd

Si s olo interesa la soluci on para t = (k + 1)T y empleando el cambio de variables que sigue = (k + 1)T , d = d , obtenemos las siguientes ecuaciones discretas de estado y de salida: x(k + 1) = Gx(k ) + H u(k ); donde: G = (T ) = eAT ; H=
0

y(k ) = C x(k ) + Du(k )


T

(2.36)

()d B

(2.37)

Notar que (2.36) es una ecuaci on vectorial de diferencias que puede ser resuelta recursivamente, como sigue: x(1) = Gx(0) + H u(0) x(2) = Gx(1) + H u(1) = G2 x(0) + GH u(0) + H u(1)

2.3 Fundamentos de Sistemas Discretos . . .


k

57

x(k ) = Gk x(0) +
=1

G 1 H u(k )

(2.38)

donde Gk es la denominada matriz de transici on discreta. Una segunda alternativa de soluci on de (2.36) se da en el dominio de z . Aplicando la propiedad de desplazamiento hacia la izquierda, podemos formular que Z [x(k )] = x(z ) y Z [x(k + 1)] = z [x(z ) x(0)]. Por tanto, de (2.36) se obtiene: z [x(z ) x(0)] = Gx(z ) + H u(z ) Despejando: x(z ) = (zI G)1 z x(0) + (zI G)1 H u(z ) y empleando la ecuaci on de salida resulta: y(z ) = C (zI G)1 z x(0) + [C (zI G)1 H + D]u(z ) Comparando las ecuaciones (2.38) y (2.39) vericamos que: Gk = Z 1 [(zI G)1 z ] (2.41) (2.40) (2.39)

La matriz de transferencia de pulso se determina haciendo x(0) = 0 en (2.40): (2.42) y(z ) = Gp (z )u(z ) = [C (zI G)1 H + D]u(z ) mientras que la ecuaci on caracter stica del sistema se obtiene de: det(zI G) = 0 (2.43)

la cual nos informa acerca de la estabilidad del sistema. Recordar que un sistema continuo es estable cuando todos sus eigenvalores poseen parte real negativa. Por consiguiente, la zona de estabilidad para sistemas continuos es el semiplano izquierdo del plano s. Desde que: z = esT = e(+j)T = eT ejT = |z |z y como |z | 1 cuando 0 para cualquier z , entonces la zona de estabilidad en el plano z resulta un c rculo de radio unidad: Un sistema discreto es estable si las ra ces de su ecuaci on caracter stica, los eigenvalores, se encuentran dentro del c rculo unitario (en el dominio de z ). En otro caso, el sistema no es estable.

58

Sistemas Discretos

Formas Can onicas en el Espacio de Estado Discreto La forma general de la funci on de transferencia de pulso para un proceso es: b0 + b1 z 1 + + bn z n y (z ) b0 z n + b1 z n1 + + bn = = u(z ) 1 + a1 z 1 + + an z n z n + a1 z n1 + + an (2.44) y su correspondiente ecuaci on de diferencias toma la forma: Gp (z ) = y (k +n)+a1 y (k +n1)+ +an y (k ) = b0 u(k +n)+b1 u(k +n1)+ +bn u(k ) (2.45) Conforme a la selecci on de las variables de estado, un proceso posee diversas representaciones en el espacio de estado. Las formas can onicas m as notables, con relaci on a la funci on de transferencia de pulso dada en (2.44), se describen a continuaci on. Primera Forma Can onica Controlable:
x(k + 1) = 0 0 . . . 0 an 1 0 . . . 0 an1 0 1 . . . 0 an2 1 xn1 (k ) a1 xn (k ) b1 a1 b0 0 0 . . . x1 (k ) x2 (k ) . . . + 0 1 0 0 . . . u(k ) (2.46) (2.47)

y (k ) =

bn an b0

bn1 an1 b0

x(k ) + b0 u(k )

Segunda Forma Can onica Controlable:


x(k + 1) = 0 0 . . . 0 an 1 0 . . . 0 an1 y (k ) = 0 1 . . . 0 an2 1 1 xn1 (k ) a1 xn (k ) 0 x(k ) + 0 u(k ) 0 0 . . . x1 (k ) x2 (k ) . . . + n1 n 1 2 . . . u(k ) (2.48) (2.49)

donde: 0 = b0 , 1 = b1 a1 b0 , 2 = b2 a1 1 a2 0 , etc. Generalizando: n = bn a1 n1 an1 1 an1 0

2.3 Fundamentos de Sistemas Discretos Tercera Forma Can onica Controlable:


x(k + 1) = y (k ) = a1 1 0 . . . 0 a2 0 1 . . . 0 an1 0 0 . . . 1 an 0 0 . . . 0 xn1 (k ) xn (k ) x1 (k ) x2 (k ) . . . + 0 0 1 0 . . .

59

u(k ) (2.50) (2.51)

b1 a1 b0

b2 a2 b0

bn an b0

x(k ) + b0 u(k )

Primera Forma Can onica Observable:


x(k + 1) = 0 0 0 1 . . . 0 0 . . . 0 0 0 0 0 0 . . . . . . 1 0 0 1 0 an an1 . . . a2 a1 0 xn1 (k ) xn (k ) 0 1 x1 (k ) x2 (k ) . . . + bn an b0 bn1 an1 b0 . . . b2 a2 b0 b1 a1 b0 u(k ) (2.52) (2.53)

y (k ) =

x(k ) + b0 u(k )

Segunda forma can onica observable:


x(k + 1) = an1 an a1 a2 . . . 1 0 . . . 0 0 0 1 . . . 0 0 0 0 . . . 0 0 0 0 . . . 1 xn1 (k ) 0 xn (k ) 0 0 x1 (k ) x2 (k ) . . . + bn1 an1 b0 bn an b0 b1 a1 b0 b2 a2 b0 . . . u(k ) (2.54) (2.55)

y (k ) =

1 0

x(k ) + b0 u(k )

Forma Can onica Diagonal (eigenvalores no repetidos)


xn1 (k + 1) xn (k + 1) x1 (k + 1) x2 (k + 1) . . . = y (k ) = p1 0 . . . 0 c1 0 p2 . . . 0 c2 0 0 . . . pn cn x1 (k ) x2 (k ) . . . xn (k ) x(k ) + b0 u(k ) + 1 1 . . . 1 (2.57) u(k ) (2.56)

60

Sistemas Discretos

donde los pi son los eigenvalores no repetidos de Gp (z ) = y (z )/u(z ), y: y (z ) = b0 + u(z )


n i=1

ci ; z pi

ci = l m

z pi

y (z ) (z pi ) u(z )

(2.58)

Forma Can onica de Jordan (eigenvalores repetidos).- En la subsecci on 1.2.3 vimos que si la matriz de estado A de orden n de un proceso con funci on de transferencia de pulso G(z ) = y (z )/u(z ) posee r eigenvectores linealmente independientes (es decir, el rango de A es r), entonces la forma de Jordan es una matriz J que posee n r unos sobre su diagonal, con todos los dem as elementos iguales a cero. Por citar un ejemplo, si A, de orden n = 8, contiene un eigenvalor p1 de multiplicidad 3, otro eigenvalor p2 de multiplicidad 2, otros tres eigenvalores distintos, y su rango es 6, entonces la forma de Jordan presenta 8 6 = 2 unos sobre la diagonal. Es decir: p1 0 0 0 0 0 0 0 0 x1 (k ) 0 p1 1 0 0 0 0 0 x2 (k ) 0 0 0 p1 0 0 0 0 0 x3 (k ) 1 0 0 0 p2 1 0 0 0 x4 (k ) 0 x(k + 1) = x5 (k ) + 1 u(k ) 0 0 0 0 p 0 0 0 2 0 0 0 0 0 p6 0 0 x6 (k ) 1 0 0 0 0 0 0 p7 0 x7 (k ) 1 0 y (k ) = 0 0 0 0 0 0 p8 x8 (k ) x(k ) + b0 u(k )
8 i=6

1 (2.59) (2.60) ci z pi (2.61)

c 1 c2 c3 c4 c5 c6 c7 c8 c9

c1 c2 c3 c4 c5 y (z ) = b0 + + + + + + 3 2 2 u(z ) (z p1 ) (z p1 ) z p1 (z p2 ) z p2

Ejemplo 2.10 La funci on de transferencia de pulso de un proceso se modela como: y (z ) = u(z ) 1+


6 i i=0 bi z 6 i i=1 ai z

donde b0 = 1, b1 = 2,8, b2 = 0,65, b3 = 6,8, b4 = 4,25, b5 = 1,3, b6 = 1,2, a1 = 1,3, a2 = 1,69, a3 = 0,345, a4 = 0,49, a5 = 0,02 y a6 = 0,04. Determinar la estabilidad del proceso. Determinar la ecuaci on

2.3 Fundamentos de Sistemas Discretos

61

de estado y la ecuaci on de salida para la segunda forma can onica controlable y para la primera forma can onica observable. Demuestre que la matriz de estado de ambas formas can onicas poseen los mismos eigenvalores y que ambas representaciones generan la misma funci on de transferencia de pulso. Soluci on: El siguiente programa resuelve las preguntas planteadas.
% ejem2_10.m FORMAS CANONICAS clear all b0=1; b1=-2.8; b2=-0.65; b3=6.8; b4=-4.25; b5=-1.3; b6=1.2; a1=1.3; a2=-1.69; a3=-0.345; a4=0.49; a5=0.02; a6=-0.04; num = [b0 b1 b2 b3 b4 b5 b6]; rnum = roots(num); % RAICES DEL POLINOMIO DEL NUMERADOR % rnum: -1.5, 2, 1, 1, 0.8, -0.5 den =[1 a1 a2 a3 a4 a5 a6]; rden = roots(den); % RAICES DEL POLINOMIO DEL DENOMINADOR % roots: 0.5, 0.5, 0.5, -0.4, -0.4, -2 % EL PROCESO ES INESTABLE DEBIDO A LAS RAICES -0.4, -0.2 Y -2 % SEGUNDA FORMA CANONICA CONTROLABLE: % x(k+1) = Gc*x(k) + Hc*u(k); y(k) = Cc*x(k) + Dc*u(k) beta0 =b0; % beta1 = b1-a1*beta0; beta2 = b2-a1*beta1-a2*beta0; beta3 = b3-a1*beta2-a2*beta1-a3*beta0; beta4 = b4-a1*beta3-a2*beta2-a3*beta1-a4*beta0; beta5 = b5-a1*beta4-a2*beta3-a3*beta2-a4*beta1-a5*beta0; beta6 = b6-a1*beta5-a2*beta4-a3*beta3-a4*beta2-a5*beta1-a6*beta0; Gc = [0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 -a6 -a5 -a4 -a3 -a2 -a1]; Hc = [beta1 beta2 beta3 beta4 beta5 beta6]; Cc = [1 0 0 0 0 0]; Dc =[beta0]; % PRIMERA FORMA CANONICA OBSERVABLE: % x(k+1) = Go*x(k) + Ho*u(k); y = Co*x(k) + Do*u(k) Go = [0 0 0 0 0 -a6

62

Sistemas Discretos

1 0 0 0 0 -a5 0 1 0 0 0 -a4 0 0 1 0 0 -a3 0 0 0 1 0 -a2 0 0 0 0 1 -a1]; Ho = [b6-a6*b0 b5-a5*b0 b4-a4*b0 b3-a3*b0 b2-a2*b0 b1-a1*b0]; Co = [0 0 0 0 0 1]; Do=[b0]; [numc,denc] = ss2tf(Gc,Hc,Cc,Dc); [numo,deno] = ss2tf(Go,Ho,Co,Do); % SE COMPRUEBA QUE: num=numc=numo, den=denc=deno, eig(Gc)=eig(Go)

Ejemplo 2.11 Conocidas las matrices G, H , C y D (ver programa ejem2 11.m), determine la ecuaci on de estado y la ecuaci on de salida de su forma can onica de Jordan. Demuestre que la matriz de estado de Jordan y la matriz de estado G poseen los mismos eigenvalores y que ambas representaciones generan la misma funci on de transferencia de pulso. Soluci on: El siguiente programa resuelve las preguntas planteadas.
% ejem2_11.m FORMAS CANONICAS DE JORDAN clear all % x(k+1) = G*x(k) + H*u(k); y(k) = C*x(k) + D*u(k); G = [0 1 0 3 0 -1 1 1 0 0 0 1 0 0 -1 -2]; H = [1;0;-4;0]; C = [1 0 0 0]; D = [-2]; [num,den] = ss2tf(G,H,C,D); eigG = eig(G); % eigG = EIGENVALORES DE G: -1, -1, -1, 0 rangG = rank(G); % rankA = 3 => G POSEE 3 VECTORES PROPIOS % LINEALMENTE INDEPENDIENTES => 4-3=1 (UN 1 SOBRE LA DIAGONAL) [c,p,k] = residue(num,den); % EXPANSION EN FRACCIONES PARCIALES % c = [-8.0000 -8.0000 0.0000 9.0000]; % p = [-1.0000 -1.0000 -1.0000 0]; % k = -2; c1=c(1); c2=c(2); c3=c(3); c4=c(4);

2.3 Fundamentos de Sistemas Discretos


p1=p(1); p2=p(2); p2=p(3); p2=p(4); % x(k+1) = Gj*x(k) + Hj*u(k); y = Cj*x(k) + Dj*u(k) Gj = [p1 0 0 0 0 p1 1 0 0 0 p1 0 0 0 0 p2]; Hj = [0;1;1;1]; Cj = [c1 c2 c3 c4]; Dj = [k]; [numj,denj] = ss2tf(Gj,Hj,Cj,Dj); eigGj = eig(Gj); % EIGENVALORES DE Gj: -1, -1, -1, 0 % SE COMPRUEBA QUE: num=numj, den=denj, eigG=eigGj

63

Procesos Discretos con Tiempo Muerto En el dominio continuo, la transformada de Laplace del tiempo muerto es eTt s . Si Tt = dT , d = 1, 2, . . . y dado que eT s = z , entonces en el dominio discreto el tiempo muerto toma la forma z d . Este tiempo muerto puede existir en la entrada, en la salida o entre las variables de estado del proceso, tal como se ilustra a continuaci on: x(k + 1) = Ax(k dx ) + B u(k du ) y(k + dy ) = C x(k ) donde los tiempos muertos dk , du y dy toman valores enteros positivos. Si la relaci on d = Tt /T no fuera un entero (o tambi en si lo fuera), resulta u til emplear la aproximaci on de Pad e para el tiempo muerto: eTt s = 1 sTt + 1 1 num(s) (sTt )2 (sTt )3 + = !2 !3 den(s)

Con una aproximaci on de tercer orden, podemos acomodar retardos de fase o de hasta 200 (3.5 rad) [11], lo cual es suciente para capturar el efecto del tiempo muerto en muchas aplicaciones. Tal aproximaci on tiene la forma: eT s Ejemplo 2.12 Comparar la respuesta a un escal on del proceso: 10 5,8s y (s) = e u(s) 2s + 1 1 Tt s/2 + (Tt s)2 /10 (Tt s)3 /120 num(s) = den(s) 1 + Tt s/2 + (Tt s)2 /10 + (Tt s)3 /120

64

Sistemas Discretos

con respecto a la respuesta originada por el proceso cuando el tiempo muerto se aproxima por una relaci on de Pad e de tercer orden. Luego determinar la ecuaci on de estado aproximada del proceso. Soluci on: El programa ejpades.m en SIMULINK (gura 2.10) resuelve el problema planteado y los resultados se ilustran en la gura 2.11. Para realizar la simulaci on usando el programa ejpades.m, ejecutar previamente el programa ejpade.m, el cual tambi en determina la ecuaci on de estado y las funciones de transferencia aproximadas del proceso, tanto en el dominio continuo como en el dominio discreto.
% ejpade.m PROCESO CON TIEMPO MUERTO D clear all Tt=5.8; % TIEMPO MUERTO % APROXIMACION DE TERCER ORDEN DEL TIEMPO MUERTO D: numD=[-Tt^3/120 Tt^2/10 -Tt/2 1]; denD=[Tt^3/120 Tt^2/10 Tt/2 1]; % PROCESO PARCIAL nump=[0 10]; denp=[2 1]; % PROCESO APROXIMADO num=conv(numD,nump); den=conv(denD,denp); [A,B,C,D]=tf2ss(num,den); % PROCESO DISCRETO APROXIMADO T=0.5; [numd,dend]=c2dm(num,den,T,zoh); [G,H,C,D]=c2dm(A,B,C,D,T,zoh); % GRAFICOS load yd; load yda; t=linspace(0,11,size(yd,1)); plot(t,yd,t,yda,--), grid xlabel(Tiempo en segundos) ylabel(Respuestas al escalon) print -deps -f ejpade print -deps -s ejpades

2.3.6.

Controlabilidad y Observabilidad

Concepto de Controlabilidad Un proceso din amico lineal se dice que es controlable, si es que existe un vector u(k ) realizable y capaz de trasladar el estado del proceso desde un estado inicial x(0) hacia cualquier estado nal x(N ) en un tiempo nito N .

2.3 Fundamentos de Sistemas Discretos

65

10 2s+1 u Proceso parcial Tiempo muerto

yd_ yd yd

Mux Graph Mux yda_ yda yda

10 Tt^3/120s3+Tt^2/10.s 2Tt/2s+1 2s+1 Tt^3/120.s3+Tt^2/10.s 2+Tt/2.s+1 Proc. parcial Aproximacin del tiempo muerto

Figura 2.10: Comparaci on de las respuestas a un escal on del proceso y de su modelo aproximado mediante una relaci on Pad e de tercer orden (ejemplo 2.12).
12

10

8 Respuestas al escalon

2 0

6 Tiempo en segundos

10

12

Figura 2.11: Comparaci on de las respuestas a un escal on del proceso (curva s olida) y de su modelo aproximado (curva en trazos) mediante una relaci on Pad e de tercer orden (ejemplo 2.12).

66

Sistemas Discretos Despejando u(k ) de la ecuaci on (2.38) para k = N se obtiene: [u(N 1) . . . u(0)]T = u(N ) = M 1 [x(N ) GN x(0)] M = [H GH . . . GN 1 H ]

donde det(M ) = 0. M es conocida como la matriz de controlabilidad, la cual puede contener columnas o las linealmente dependientes. Por consiguiente, para que un proceso sea completamente controlable, lo que quiere decir, para que su matriz de controlabilidad s olo posea las o columnas independientes, se debe cumplir que: rango(M ) = rango([H GH . . . GN 1 H ]) = n (2.62)

donde n es el orden del proceso. Para N < n no existe soluci on para u, y para N > n la soluci on no es u nica. La determinaci on de la controlabilidad completa en el espacio de estado continuo es similar. Basta reemplazar en M , A por G y B por H . Concepto de Observabilidad Un proceso lineal din amico con salida y(k ) se denomina observable si alg un estado x(k ) puede ser obtenido a partir de un n umero nito de salidas y(k ), y(k 1), . . . , y(k n). Consideremos la siguiente ecuaci on de salida: y(k ) = C x(k ) Empleando la ecuaci on de estado x(k + 1) = Gx(k ) + H u(k ), podemos deducir que: y(k ) = C x(k ) y(k + 1) = CGx(k ) + CH u(k ) y(k + 2) = CG2 x(k ) + CGH u(k ) + CH u(k + 1) . . . y(k + n 1) = CGn1 x(k ) + [0, CH, CGH, . . . , CGn2 H ]Un (2.63) donde (asumiendo que los vectores de entrada son completamente conocidos) Un = [u(k + n 1) . . . u(k + 1) u(k )]T

2.3 Fundamentos de Sistemas Discretos La ecuaci on (2.63) toma la forma: Yn = N x(k ) + SUn donde: Yn = [y(k ) y(k + 1) . . . y(k + n 1)]T N = [C CG . . . CGn1 ]T = [C T GT C T . . . (GT )n1 C T ] 0 0 0 0 0 0 0 0 0 CH S = . . . . . . . . . n 2 H 0 CH CGH . . . CG

67

(2.64)

Despejando, el vector inc ognita se obtiene de: x(k ) = N 1 [Yn SUn ] (2.65)

siempre que det(N ) = 0. Luego, para que el proceso din amico sea observable, la matriz de observabilidad N debe cumplir: rango[N ] = n (2.66)

La determinaci on de la observabilidad completa en el espacio de estado continuo es similar. Basta reemplazar A por G en la expresi on de N . Ejemplo 2.13 Determine si los procesos sistema hidr aulico y p endulo descritos en los ejemplos 2.1 y 2.2 son completamente controlables y observables. Soluci on: El siguiente programa resuelve las preguntas planteadas.
% ejem2_13.m CONTROLABILIDAD Y OBSERVABILIDAD clear all % SISTEMA HIDRAULICO Area = 9; gamma = 0.4; rho = 1.23; g = 9.81; Q0e = 3; % FLUJO DE ENTRADA EN EQUILIBRIO H1e = Q0e^2/(gamma*rho*g); % NIVEL DE EQUILIBRIO H2e = H1e; a11 = -gamma*sqrt(rho*g)/(2*Area*sqrt(H1e)); a21=-a11; a22=a11; A = [a11 0 a21 a22]; % n = 2

68

Sistemas Discretos

B = [1 0]; C = [0 1]; D = [0]; M = [B A*B]; % MATRIZ DE CONTRABILIDAD rangM = rank(M);% rangM = 2 = n => COMPLETAMENTE CONTROLABLE N = [C A*C]; % MATRIZ DE OBSERVABILIDAD rangN = rank(N);% rangN = 1 < 2 => NO ES COMPLETAMENTE OBSERVABLE % PROCESO PENDULO Bp = 1.3366; Lo = 1.635; Mo = 0.5; g = 9.81; AP = [0 1 -g/Lo^2 -Bp/(Mo*Lo^2)]; % n = 2 BP = [0 1/(Mo*Lo^2)]; CP = [1 0]; DP = [0]; MP = [BP AP*BP]; % MATRIZ DE CONTRABILIDAD rangMP = rank(MP); % rangMP = 2 = n => COMPLETAMENTE CONTROLABLE NP = [CP AP*CP];% MATRIZ DE OBSERVABILIDAD rangNP = rank(NP); % rangNP = 2 = n => COMPLETAMENTE OBSERVABLE

Cap tulo 3

Modelado de Procesos
Este cap tulo presenta la derivaci on de modelos din amicos de procesos continuos con su correspondiente linealizaci on y discretizaci on. Tambi en se explora la respuesta de los procesos a entradas t picas y se determina las caracter sticas de controlabilidad y observabilidad de los mismos, empleando como herramienta de c alculo la computadora. Las tres primeras secciones se dedican a los procesos cuyos sistemas de control avanzado van a ser implementados en tiempo real. Tales procesos son: el p endulo invertido, la gr ua-puente y el servomotor de corriente continua sujeto a cargas no lineales. En su secci on problemas resueltos se presenta la modelaci on de diversos procesos, cuyos sistemas de control ser an dise nados en los cap tulos siguientes. La u ltima secci on propone la derivaci on de modelos din amicos de otros procesos. Todos los archivos correspondientes a los ejercicios y problemas desarrollados en este cap tulo se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

3.1.

Modelo del Proceso P endulo Invertido

El proceso p endulo invertido consiste de un p endulo montado sobre un carro que se desplaza en forma horizontal. Este carro est a impulsado por un servomotor D.C. a trav es de un sistema de poleas, tal como se muestra en la gura 3.1. Para mayor claridad, el proceso p endulo invertido se ha separado en dos subsistemas: el subsistema conformado por el carro y el p endulo, que se trata en la subsecci on 3.1.1, y el subsistema conformado por el motor y el sistema de poleas, que se desarrolla en la subsecci on 3.1.2.

70
+ Fuerza de u control Servomotor D.C. y

Modelado de Procesos

Pendulo F Carro

Figura 3.1: Proceso p endulo invertido.

3.1.1.

Modelo del Subsistema Carro-P endulo

El subsistema carro-p endulo se ilustra en la gura 3.2 y est a conformado por un carro y una varilla. De la gura 3.2 podemos observar que los centros de gravedad de la varilla y de la esfera son:
y z y

l v /2 0 P

11 00 00 11 00 11 00 11
me g mvg le lv z z F

Figura 3.2: Subsistema carro-p endulo. ze = z + le sen lv zv = z + sen 2 (3.1) (3.2)

3.1 Modelo del Proceso P endulo Invertido

71

Para modelar el sistema mec anico empleamos la segunda ley de Newton para los movimientos lineal y rotacional. Para el movimiento lineal, dicha ley establece que para un sistema de N part culas:
N i=1

d2 mi 2 ri = dt

Fj
j =1

(3.3)

esima part cula, ri es la posici on del centro de donde mi es la masa de la i- masa de la i- esima part cula y Fj es la j- esima fuerza aplicada al sistema de part culas. Aplicando la ecuaci on (3.3) a nuestro sistema (en la direcci on z) obtenemos: d2 d2 d2 (3.4) mc 2 z + me 2 ze + mv 2 zv = F dt dt dt on (3.1)) y zv (ecuaci on (3.2)) en la ecuaci on Luego, sustituyendo ze (ecuaci (3.4) obtenemos: mc lv d2 d2 d2 z + m ( z + l sen ) + m (z + sen ) = F e e v dt2 dt2 dt2 2 (3.5)

y desarrollando las derivadas resulta: z (me le + mv (mc + me + mv ) lv 2 (me le + mv lv )(cos ) = F (3.6) )(sen )+ 2 2

Para completar el modelo, utilizamos la segunda ley de Newton aplicada al movimiento rotatorio alrededor del punto P del carro. Esta ley establece que para un sistema de N part culas en movimiento rotacional respecto a un sistema de referencia inercial, sometidas a M torques externos perpendiculares al plano de giro, se cumple que:
N i=1

d2 Ji 2 i = dt

j
j =1

(3.7)

esimo torque externo, Ji es el momento de inercia de la donde j es el j- i- esima part cula respecto al punto P y i es el angulo recorrido por la i esima part cula alrededor del punto P. Para aplicar esta ley al movimiento rotatorio de la varilla alrededor del punto P utilizamos la tercera ley de Newton, la cual nos permite remplazar el efecto de la aceleraci on del sistema de referencia Z Y por una fuerza mi z aplicada en el centro de gravedad de

72

Modelado de Procesos

las part culas i de dicho sistema, pero en direcci on opuesta a la aceleraci on. Empleando la ecuaci on (3.7) en la gura 3.2 obtenemos: lv = me g (sen)le + mv g (sen ) lv me z (cos )le mv z (cos ) (3.8) (Je + Jv ) 2 2 y ordenando: (me le + mv donde:
2 Je = me le ;

lv lv )g (sen ) (me le + mv ) z (cos ) = (Je + Jv ) 2 2 Jv = mv


2 lv 3

(3.9)

(3.10)

3.1.2.

Modelo del Subsistema Motor-Polea

El subsistema motor-polea est a representado en la gura 3.3. El modelo del sistema el ectrico se encuentra aplicando la ley de voltajes de Kirchho a la parte el ectrica de dicha gura. Adem as, debido a que la inductancia en servomotores D.C. de magneto permanente es peque na, podemos despreciar su efecto en el modelo. As obtenemos:
Ra Va Vb La Jm Bm m Jo Bo rp F

u
-

Figura 3.3: Subsistema motor-polea. Ra ia + Vb = KA u = Va El voltaje contraelectromotriz est a representado por: m Vb = Kb (3.12) (3.11)

Aplicando la segunda ley de Newton para el movimiento rotatorio en el sistema mec anico del servomotor, obtenemos: m + Beq m + n F rp Tm = Jeq (3.13)

3.1 Modelo del Proceso P endulo Invertido donde: Jeq = Jm + n2 (Jo + Jp ) Beq = Bm + n Bo
2

73

(3.14) (3.15)

El torque producido en el eje del servomotor viene dado por la ecuaci on: Tm = Km ia Sustituyendo la ecuaci on (3.16) en (3.13) y despejando ia se obtiene: ia = Jeq Beq n rp F m + m + Km Km Km (3.17) (3.16)

Luego, substituyendo las ecuaciones (3.17) y (3.12) en (3.11) y despejando F obtenemos: F = Jeq Km KA m u Ra n rp n rp Beq Km Kb + n rp Ra n rp m (3.18)

Para transformar el desplazamiento angular del servomotor en el desplazamiento horizontal del carro en funci on del radio de la polea y del factor de reducci on del servomotor, empleamos: m = z n rp (3.19)

Substituyendo la u ltima relaci on en (3.18), obtenemos la ecuaci on general del subsistema servomotor, como sigue: F = Jeq Km KA u 2 2z Ra n rp n rp Beq Km Kb + 2 2 2 n rp Ra n2 rp z (3.20)

Las ecuaciones (3.6), (3.9) y (3.20) representan el modelo matem atico del proceso p endulo invertido controlado por la corriente de armadura. Tales ecuaciones pueden ser escritas en forma compacta: 2 + M2 (cos ) F = 0 M1 z M2 (sen ) = 0 M2 g (sen ) M2 z (cos ) J1 F = Kx KA u J2 z Bx z (3.21) (3.22) (3.23)

74 donde: M1 = mc + me + mv ; J1 = Je + Jv ; Km ; Ra nrp

Modelado de Procesos

M2 = me le + mv J2 = Jeq 2 n 2 rp

lv 2

(3.24)

(3.25)

Kx =

Bx =

Beq Kb Km + 2 2 2 n 2 rp n rp Ra

(3.26)

3.1.3.

Representaci on en el Espacio de Estado

Las ecuaciones obtenidas pueden ser representadas en el espacio de estado mediante la siguiente asignaci on de variables de estado: x1 = x2 = x3 = z x4 = z Escribiendo dichas ecuaciones en el espacio de estado, obtenemos: x 1 x 2 = x 3 x 4 x2 (3.27) (3.28) (3.29) (3.30)

M2 (sin x1 )(cos x1 )x2 2 Bx (cos x1 )x4 (M1 +J2 )g (sin x1 )+Kx (cos x1 )KA u (M2 (cos2 x1 )(M1 +J2 )J1 )/M2

(3.31) y puesto que en nuestro sistema tenemos como salidas disponibles el desplazamiento angular de la varilla y el desplazamiento del carro, la ecuaci on de salida toma la forma siguiente: y = Cx donde: C= 1 0 0 0 0 0 1 0 (3.33) (3.32)

x4 2 g (sin x )(cos x )J M (sin x )x2 +J B x J K K u M2 1 1 1 2 1 2 1 x 4 1 x A 2 (cos2 x )(M +J )J M2 1 1 2 1

3.1 Modelo del Proceso P endulo Invertido

75

3.1.4.

Obtenci on del Modelo Lineal

Para poder analizar la ecuaci on matricial (3.31) empleando t ecnicas de control lineal, es necesario obtener un modelo lineal del proceso. Suponiendo que las variables de estado se desv an levemente con respecto a una condici on de operaci on (un estado de equilibrio, por ejemplo), la aproximaci on lineal se puede obtener mediante la expansi on en series de Taylor, despreciando los t erminos de orden superior. Consideremos que nuestro proceso sea representado por la siguiente expresi on: = f(x, u) x = x f = x 1 x 2 x 3 x 4 f1 f2 f3 f4
T T

(3.34)

2 x 3 x 4 x 1 x

es el vector de estados y f es una funci en donde u es la se nal de control, x on vectorial de variable vectorial. La expansi on en serie de Taylor alrededor del punto de operaci on ( x, u ) resulta: = f (x x , u ) + f (x , u ) f (x , u ) (x x ) + (u u ) + x u

1 2 f (x 2 f (x 2 f (x , u ) , u ) , u ) 2 ( x x )( u u ) + ( x x ) + 2 (u u )2 + 2 2 2! x xu u (3.35) ) y (u u Si la variaci on de las variable residuales (x x ) es peque na, entonces se pueden despreciar los t erminos de orden superior. En el caso que nos ocupa, el punto de operaci on (o estado de equilibrio) se ubica alrededor del = [0, 0, 0, 0]T = 0 y u = 0, entonces la ecuaci on (3.35) se puede origen: x escribir como: f (0, 0) f (0, 0) x+ u (3.36) x = f (0, 0) + x u Dado que f (x, u) es una funci on de variable vectorial, su derivada parcial con respecto a x y u viene a representar la operaci on jacobiana (ver ejemplos 2.1 y 2.2). Entonces, la ecuaci on (3.35) se convierte en: f1 (0,0) f1 (0,0) f1 (0,0) f1 (0,0) f1 (0,0) x1 x2 x3 x4 u f2 (0,0) f2 (0,0) f2 (0,0) f2 (0,0) f2 (0,0) x x x x u 1 2 3 4 x = f (0, 0) + f3 (0,0) u f3 (0,0) f3 (0,0) f3 (0,0) f3 (0,0) x + x1 x2 x3 x4 u
f4 (0,0) x1 f4 (0,0) x2 f4 (0,0) x3 f4 (0,0) x4 f4 (0,0) u

(3.37)

76

Modelado de Procesos

Luego, aplicando la u ltima expresi on a la ecuaci on (3.31), obtenemos el siguiente modelo lineal para el sistema de p endulo invertido: = Ax + Bu x donde: A= 0
(M 1 + J 2 )M 2 g 2 (M 1 + J 2 )J 1 M 2
2g M 2

(3.38) 0 (3.39)

1 0 0 0 0 0 0 0 0

Bx M2 2 (M 1 + J 2 )J 1 M 2

2 (M 1 + J 2 )J 1 M 2

J1 B x 2 (M 1 + J 2 )J 1 M 2

B=

Kx M2 KA 2 (M 1 + J 2 )J 1 M 2

(3.40)

J1 Kx KA 2 (M 1 + J 2 )J 1 M 2

3.1.5.

El Modelo en el Espacio de Estado Discreto

La obtenci on del modelo del proceso en el espacio de estado discreto ya ha sido explorada en la subsecci on 2.3.5. En resumen, las ecuaciones de estado en tiempo continuo del proceso est an dadas por: x (t) = Ax(t) + Bu(t) y(t) = C x(t) + Du(t) La soluci on de tales ecuaciones es: x(t) = (t t0 )x(t0 ) + donde t0 es el tiempo inicial, y: (t t0 ) = eA(tt0 ) =
k=0 t t0

(3.41) (3.42)

(t )Bu( )d

(3.43)

Ak (t t0 )k k!

(3.44)

El modelo en tiempo discreto est a dado por: x(kT + T ) = Gx(kT ) + Hu(kT ) (3.45)

donde T es el tiempo de muestreo. Las matrices G y H se obtienen de: G = (T ) (3.46)

3.2 Modelo del Proceso Gr ua-Puente


T

77

H=
0

()(d) B

(3.47)

La ecuaci on de salida en tiempo discreto viene a ser: y(kT ) = C x(kT ) + Du(kT ) (3.48)

en donde C y D son matrices constantes que no dependen del per odo de muestreo T ; por consiguiente, son las mismas que para el caso continuo.

3.2.

Modelo del Proceso Gr ua-Puente

El modelado del proceso gr ua-puente es similar al caso del p endulo invertido. La u nica variante es que en este caso el p endulo debe apuntar hacia abajo, tal como se muestra en la gura 3.4. Al igual que en el caso del p endulo invertido, para mayor facilidad, se ha subdividido el proceso en dos subsistemas: carro-varilla y motor-polea.
+ Fuerza de u control Servomotor D.C. y

F Carro y puente Grua

Figura 3.4: Proceso gr ua-puente.

3.2.1.

Modelo del Subsistema Carro-Varilla

El subsistema carro-varilla est a representado en la gura 3.5. De dicha gura podemos observar que los centros de gravedad de la varilla y de la esfera son: ze = z le sen (3.49)

78
y z y

Modelado de Procesos

P
0

F lv
2

111 000 000 111 000 111 000 m v g 111


me g

le lv

Figura 3.5: Subsistema carro-varilla de la gr ua-puente. lv sen (3.50) 2 Aplicando la ley de Newton para el movimiento lineal dada por la ecuaci on (3.3) en la direcci on z, obtenemos: zv = z mc d2 d2 d2 z + m z + m zv = F e e v dt2 dt2 dt2 (3.51)

Luego, sustituyendo ze y zv en funci on de z: mc lv d2 d2 d2 z + m ( z l sen ) + m (z sen ) = F e e v 2 2 2 dt dt dt 2 (3.52)

y desarrollando las derivadas, tenemos: (mc +me +mv ) z +(me le +mv lv 2 (me le +mv lv )(cos ) = F (3.53) )(sen ) 2 2

Ahora, aplicando en la gura 3.5 la segunda ley de Newton para el movimiento rotatorio dada por la ecuaci on (3.7) alrededor del punto P: lv lv = me z (cos )le + mv z (cos ) me g (sen)le mv g (sen ) (Je + Jv ) 2 2 (3.54)

3.2 Modelo del Proceso Gr ua-Puente y reordenando, obtenemos: (me le + mv donde:


2 ; Je = me le

79

lv lv ) z (cos ) (me le + mv )g (sen ) = (Je + Jv ) 2 2 Jv = mv


2 lv 3

(3.55)

3.2.2.

Modelo del Subsistema Motor-Polea

Este subsistema es el mismo que se desarroll o para el p endulo invertido en la subsecci on 3.1.2, ecuaci on (3.20): F = Jeq Km KA u 2 2z Ra n rp n rp Beq Km Kb + 2 2 2 n rp Ra n2 rp z

Las ecuaciones (3.53), (3.55) y (3.20) representan el modelo matem atico del proceso gr ua-puente controlado por la corriente de armadura. Tales ecuaciones pueden ser escritas en forma compacta como sigue: 2 M2 (cos ) F = 0 + M2 (sen ) M1 z = 0 (cos ) J1 M2 g (sen ) + M2 z F = Kx KA u J2 z Bx z donde: M1 = mc + me + mv ; J1 = Je + Jv ; Kx = Km ; Ra nrp Bx = M2 = me le + mv J2 = Jeq 2 n 2 rp lv 2 (3.56) (3.57) (3.58)

Beq Kb Km + 2 2 2 2 n rp n rp Ra

3.2.3.

Representaci on en el Espacio de Estado

Las ecuaciones arriba obtenidas se representan en el espacio de estados mediante la siguiente asignaci on de variables: x1 = x2 = x3 = z x4 = z (3.59) (3.60) (3.61) (3.62)

80

Modelado de Procesos

Escribiendo las ecuaciones en el espacio de estado: x2 x 1 M2 (sin x1 )(cos x1 )x2 2 Bx (cos x1 )x4 (M1 +J2 )g (sin x1 )+Kx (cos x1 )KA u x (M2 (cos2 x1 )+(M1 +J2 )J1 )/M2 2 = x x4 3 2 g (sin x )(cos x )J M (sin x )x2 J B x +J K K u M2 1 1 1 2 1 2 1 x 4 1 x A x 4 2 2
M2 (cos x1 )+(M1 +J2 )J1

(3.63) y puesto que tenemos como salidas disponibles el desplazamiento angular de la varilla y el desplazamiento del carro, tendremos entonces como ecuaci on de salida la siguiente expresi on: y = Cx donde: C= 1 0 0 0 0 0 1 0 (3.65) (3.64)

3.2.4.

Obtenci on del Modelo Lineal

Para obtener el modelo lineal del sistema gr ua-puente, empleamos la ecuaci on (3.36) desarrollada en la subsecci on 3.1.4, como sigue: x = Ax + Bu donde: A= y 0
(M 1 + J 2 )M 2 g 2 (M 1 + J 2 )J 1 M 2
2g M 2

(3.66) 0 (3.67)

1 0 0 0 0 0 0 0 0

Bx M 2 2 (M 1 + J 2 )J 1 M 2

2 (M 1 + J 2 )J 1 M 2

J1 B x 2 (M 1 + J 2 )J 1 M 2

B=

(3.68)

Kx M2 KA 2 (M 1 + J 2 )J 1 M 2

J1 Kx KA 2 (M 1 + J 2 )J 1 M 2

3.2.5.

El Modelo en el Espacio de Estado Discreto

Para obtener el modelo en tiempo discreto podemos usar las expresiones de las ecuaciones (3.46) y (3.47) ya discutidas anteriormente.

3.2 Modelo del Proceso Gr ua-Puente

81

3.2.6.

Resumen de Variables y Par ametros

La tabla 3.1 muestra las variables y par ametros para los procesos p endulo invertido y gr ua-puente. Los valores de los par ametros se obtuvieron de las hojas de especicaciones y por medici on.

3.2.7.

Identicaci on de la Zona Muerta del Servomotor

Al analizar la curva velocidad vs. voltaje de entrada del servomotor (guras 3.6 y 3.7) se puede observar una zona muerta originada por la fricci on est atica . Tal fricci on iguala al torque necesario para comenzar a mover el servomotor; es decir, debido a la presencia de la fricci on est atica, el servomotor permanece en reposo siempre que no reciba un nivel de voltaje que supere un determinado umbral.
entrada vs salida 800

600

400

200 salida

200

400

600

800 2

1.5

0.5

0 entrada

0.5

1.5

Figura 3.6: Respuesta del servomotor sin compensar (voltaje vs. velocidad angular). Observar en la gura 3.7 que la zona muerta de velocidad nula se presenta para valores de voltaje entre 0.1 volt. Tal zona muerta es una no linealidad que puede introducir efectos no deseados en el control, por lo que debe ser compensada mediante software, como sigue (ver gura 3.8):

82

Modelado de Procesos

Cuadro 3.1: Variables y par ametros valorados para los procesos p endulo invertido y gr ua-puente. S mbolo F m z lv le ze zv g me mv mc mp KA Ra La Kb Km Jm Bm Jo Bo n rp Jp Jeq Beq Je Jv Descripci on posici on angular de la varilla fuerza aplicada al carro posici on angular del motor posici on del carro longitud de la varilla distancia entre P y la esfera componente horizontal componente horizontal gravedad masa de la esfera masa de la varilla masa del carro masa de la polea ganancia del amplicador resistencia del motor inductancia del motor constante contraelectromotriz constante de torque del motor inercia del eje primario del motor fricci on viscosa del eje primario inercia del eje secundario fricci on viscosa del eje secundario factor de reducci on de velocidad radio de la polea inercia de la polea momento de inercia equivalente fricci on viscosa equivalente momento de inercia de la esfera momento de inercia de la varilla Valor/F ormula

0.767 m

9.8 N no usado 0.063095 kg 0.92 kg 0.2 kg 14.9 7.38 ohm se despreci o 31.0352103 V/rad 31.071103 N-m/A 1.9596106 kg-m2 1.8342103 N-m/rad/s se despreci o se despreci o 1/19.741 0.0648 m 2 /2 mp rp Jm + n2 (Jo + Jp ) Bm + n2 Bo 2 me le 2 mv lv /3

3.2 Modelo del Proceso Gr ua-Puente


entrada vs salida 150

83

100

50

salida

50

100

150 0.4

0.3

0.2

0.1

0 entrada

0.1

0.2

0.3

0.4

Figura 3.7: Vista ampliada de la gura 3.6.

entrada vs salida 800

600

400

200 salida

200

400

600

800 2

1.5

0.5

0 entrada u

0.5

1.5

Figura 3.8: Respuesta del servomotor con zona muerta compensada.

84

Modelado de Procesos

si SE\~NAL_DE_CONTROL < 0 entonces VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL - 0.1 si SE\~NAL_DE_CONTROL > 0 entonces VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL + 0.1 si SE\~NAL_DE_CONTROL = 0 entonces VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL

3.3.

Modelo del Servomotor D.C. No Lineal

El servomotor D.C. (Direct Current) con carga no lineal es un proceso de una entrada y una salida que comprende un subsistema el ectrico y un subsistema mec anico. El subsistema el ectrico est a compuesto por un generador PWM (Pulse Width Modulation), que opera conjuntamente con un amplicador de potencia) y por un servomotor D.C. controlado por voltaje de armadura. El subsistema mec anico presenta un engranaje reductor de velocidad y una varilla met alica acoplada al eje del servomotor, a manera de un brazo rob otico de un grado de libertad. En el extremo de la varilla se pueden acoplar cargas esf ericas adicionales de masa Mo y radio Ro . La gura 3.9 presenta la estructura del proceso no lineal a controlar. La tabla 3.2 describe las variables y los valores de los par ametros.
I

T + u Kact R + eb L Jm

0000 1111 0000 TM 1111 0000 1111 m bm q


m

N 2 = n N1 N2

N1 11 00 LO 00 11 00 11 00 11 m 00 11 00 11 q 00 11 TL 00 11 00 11 00 11 00 11 00 11 00 11 JL 00 11 00 11 00 11 00000 11111 00 11 11111 00000 00 11 bL 00000 00 11111 11

MO RO

Figura 3.9: Proceso: servomotor con carga no lineal.

3.3.1.

El Subsistema Mec anico

La ecuaci on del subsistema mec anico se puede obtener aplicando la segunda ley de Newton en el punto donde se acopla el eje del servomotor con

3.3 Modelo del Servomotor D.C. No Lineal

85

Cuadro 3.2: Par ametros y variables del servomotor con carga no lineal. S mbolo u Kact Va R L I K T TM TN TL TE Jm JL bm bL Mo m L0 R0 eb E n g w wm qm q Descripci on tensi on de entrada al proceso ganancia del amplicador tensi on de armadura resistencia de armadura inductancia de armadura corriente de armadura constante del torque motor torque motor torque de inercia mot orica torque: fricciones no lineales torque inercial de la carga torque del peso de la varilla/esfera inercia del motor inercia de la carga coef. de fricci on del motor coef. de fricci on de la carga masa de la esfera masa de la varilla longitud de la varilla radio de la esfera fuerza contra-electromotriz constante de fuerza electromotriz relaci on de engranajes aceleraci on de la gravedad velocidad angular de la carga velocidad angular del eje posici on angular del eje posici on angular de la carga Valor/F ormula 14.9 Va = Kact u 7.38 ohm 4.64102 H 31.071103 N-m/A T = KI

1.9062106 kg-m2 3.5107 kg-m2 1.8338106 N-m/rad/s 105 N-m/rad/s 0, 0.01, 0.02, 0.045 kg 0.06377 kg 0.776 m 0.02 m eb = Ewm 31.0352103 V/rad/s 19.741 9.81 m/s2 wm = nw qm = nq

86

Modelado de Procesos

la varilla met alica (gura 3.9). El torque resultante nT que debe entregar el servomotor para vencer todos los torques que se le oponen es: nT = nTM + TE + TL + TN donde: m + bm wm = nJm w + nbm w TM = Jm w 2 1 2 2 + bL w TL = (Mo L2 o + Mo Ro + mLo + JL )w 5 3 TE = gLo (Mo + m )sen q 2 (3.70) (3.71) (3.72) (3.69)

Reemplazando las ecuaciones (3.70), (3.71) y (3.72) en la ecuaci on (3.69) se obtiene: + Bw + N sen q + TN (3.73) nTm = M w donde: 2 1 2 2 M = Jef f + M L2 o + M Ro + mLo ) 5 3 N = gLo (M + m ) 2 (3.74) (3.75) (3.76) (3.77)

Jef f = n2 Jm + JL B = n2 bm + bL

3.3.2.

El Subsistema El ectrico

La tensi on de armadura Va que permite controlar la velocidad del motor viene expresada por: + eb (3.78) Va = IR + LI donde eb es la tensi on contraelectromotriz y es igual a: eb = Ewm y la tensi on de armadura Va es: Va = uKact (3.80) (3.79)

3.3 Modelo del Servomotor D.C. No Lineal

87

3.3.3.

Conversi on de Energ a El ectrica en Mec anica

La ecuaci on de conversi on en energ a el ectrica en mec anica es: T = KI (3.81)

donde K es la constante del par motriz. Igualando las ecuaciones (3.78) y (3.80) (notar que wm = nw) obtenemos: = Kact u Enw R I I L L L (3.82)

Empleando las ecuaciones (3.81) y (3.82) en (3.73) y despejando w obtenemos: B 1 nKI N w TN + (3.83) w = senq M M M M Las ecuaciones (3.82) y (3.83) describen el modelo no lineal del proceso y pueden tomar la siguiente representaci on: x = F (x) + G(x)u; y = H (x) (3.84)

Eligiendo como variables de estado: x1 = q (posici on angular), x2 = x 1 = q = w (velocidad angular) y x3 = I (intensidad de corriente), podemos obtener: x 1 = x2 x 2 = ( x 3 N B 1 nK )senx1 x2 TN + x3 M M M M nE R Kact x2 x3 + u = L L L
nK M x3

(3.85)

donde la salida es la posici on x1 . Por consiguiente: x2 N B 1 ( M )senx1 M x2 M TN + F (x) = nE R L x2 L x3 0 G(x) = 0 ; H (x) = x1


Kact L

(3.86)

Las matrices dadas en (8.38) representan el modelo matem atico del proceso considerando carga no lineal. La gura 3.10 muestra el diagrama de simulaci on del proceso (archivo servsim.m) y la gura 3.11 muestra la respuesta

88

Modelado de Procesos

del proceso a un escal on para los casos con L = 0 y L = 0. Dichas respuestas resultan muy similares debido a que la inductancia L es muy peque na y para nes pr acticos puede despreciarse, con lo cual el orden del proceso no lineal queda reducido a uno de segundo. Para simular el proceso usando servsim.m se debe ejecutar primero el archivo de datos servpar.m.
cc gan1 friccin de Coulomb w 1 q 1 + Ms+B s sum2 subsistema Integrador mecnico N gan3 MATLAB Function seno

Kact gan5

n*K R sum1subsistema elctrico n*E gan2

grfico

Figura 3.10: Diagrama de bloques del proceso no lineal.

1.4 q 1.2 Posicin q (rad); entrada u (voltios)

0.8

0.6 u 0.4

0.2

0 0

4 Tiempo

5 6 en segundos

10

Figura 3.11: Respuesta del proceso no lineal a un escal on.

3.3 Modelo del Servomotor D.C. No Lineal Considerando L=0, la corriente de armadura resulta: I= y la ecuaci on (8.38) pasa a ser: F (x) = G(x) = x2
N M senx1 n2 KE MR 1 M TN

89

nE Kact u w R R

(3.87)

B M

x2

0
nKKact RM u

H (x) = x1

(3.88)

3.3.4.

Modelo y Compensaci on de no Linealidades

El torque TN se origina por la fricci on est atica TF y por la fricci on de Coulomb TC . TF es el torque necesario a vencer para que el servomotor comience a moverse. Cuando el servomotor ya est a en movimiento, aparece endose a dicho movimiento. Tales el torque de fricci on de Coulomb TC oponi torques pueden modelarse como: TF = CF sign(u); TC = CC sign(w) (3.89)

donde la funci on sign(.) toma el valor +1 cuando el argumento es positivo y 1 cuando es negativo. Para el servomotor empleado se ha determinado experimentalmente [2] que CF CC = 0,15. Nuestro problema es entonces compensar (eliminar) el torque TN de la ecuaci on (3.88). Para ello denimos: u=v+ R TN ; nKKact (3.90)

Reemplazando la ecuaci on (3.90) en (3.88) obtenemos una ecuaci on compensada de la forma: x 2 = N senx1 M n2 KE B + M MR x2 + nKKact v RM (3.91)

Asumiendo en (3.90) que TN = TC = CC sign(w), lo cual es cierto cuando el sistema ya est a en movimiento, el t ermino no lineal resulta: RCC sign(w) = 0,12sign(w) nKKact (3.92)

90

Modelado de Procesos

La ecuaci on 3.92 indica que en la implementaci on del software del sistema de control debemos compensar la se nal de control u en 0.12 volt. Experimentalmente, un valor de 0.2 ha generado buenos resultados. Por otra parte, debido a que valores grandes de la se nal de control u pueden saturar al servomotor, es que se requiere un limitador de la tensi on de control u. Este limitador puede tambi en implementarse en el software de control. Se ha determinado experimentalmente que para no entrar en la zona de saturaci on del servomotor, la se nal de control compensada no debe sobrepasar el umbral de 1.4 voltios.

3.3.5.

Linealizaci on y Discretizaci on del Proceso

Asumiendo que la se nal de control u est a debidamente compensada de no linealidades y despreciando la inductancia L del servomotor, entonces, para desviaciones peque nas alrededor del origen se cumple que senx1 x1 . Aplicando tal aproximaci on en la ecuaci on (3.88) obtenemos una ecuaci on = Ac x + Bc u y una ecuaci on de salida y = Cc x, de estado lineal de la forma x donde: Ac = Bc = 0 N M 0
KnKact MR B ( M

1 2E + Kn MR ) Cc = 1 0 (3.93)

A tal resultado tambi en se puede llegar si aplic aramos la t ecnica del jacobiano. La funci on de transferencia Gp (s) del proceso puede determinarse mediante la relaci on: Gp (s) = y (s) = Cc [sI Ac ]1 Bc u(s) (3.94)

La funci on de transferencia de pulso Gp (z ) se determina como sigue: Gp (z ) = Gp (s) y (z ) = (1 z 1 )Z u(z ) s (3.95)

donde Z [.] es el operador transformada z . Dicha funci on de transferencia depende del tiempo de muestreo T y posee la siguiente estructura: Gp (z ) = b1 z + b2 y (z ) b1 z 1 + b2 z 2 = 2 = u(z ) z + a1 z + a2 1 + a1 z 1 + a2 z 2 (3.96)

3.4 Problemas Resueltos Su correspondiente ecuaci on de diferencias es: y (k ) = a1 y (k 1) a2 y (k 2) + b1 u(k 1) + b2 u(k 2)

91

(3.97)

Dado que un mismo proceso puede tener m ultiples representaciones de estado, a partir de la ecuaci on (3.96) podemos determinar diversas representaciones de estado de la forma: x(k + 1) = Gx(k ) + Hu(k ) y (kT ) = Cx(kT ) (3.98) (3.99)

donde G, H y C son las matrices de estado, de control y de salida, respectivamente, con dimensiones apropiadas. La representaci on can onica controlable del proceso (primera forma, ver la subsecci on 2.3.5), resulta: G= 0 1 a2 a1 ; H= 0 1 ; C= b2 a2 b0 b1 a1 b0 ; D = [0]

(3.100) Tener en cuenta que para nuestro proceso b0 = 0. Si seleccionamos como variables de estado x1 = y (k ), x2 (k ) = y (k + 1) b1 u(k ), obtendremos la segunda forma can onica controlable (subsecci on 2.3.5): G= 0 1 a2 a1 ; H= b1 b2 a1 b1 ; C= 1 0 ; D = [0]

(3.101) La funci on de transferencia de pulso del proceso tambi en se calcula de: Gp (z ) = y (z ) b1 z 1 + b2 z 2 = C (zI G)1 H = u(z ) 1 + a1 z 1 + a2 z 2 (3.102)

3.4.

Problemas Resueltos

Los procesos p endulo invertido, gr ua-puente y servomotor con carga no lineal descritos en las secciones anteriores, ser an usados en las aplicaciones en tiempo real. Los procesos que a continuaci on se describen ser an empleados para validar los diferentes algoritmos de control, los cuales se tratan con detalle en los cap tulos siguientes. Para cada proceso en estudio se pide: Determinar si el proceso es completamente controlable y/o completamente observable.

92

Modelado de Procesos Calcular los eigenvalores del proceso, tanto en el dominio continuo como en el dominio discreto. Seleccionar un tiempo de muestreo y determinar el modelo del proceso en el espacio de estado discreto. Tener en cuenta que el tiempo de muestreo seleccionado no necesariamente ser a usado cuando el proceso sea controlado digitalmente. Veremos que la elecci on del tiempo de muestreo es a conveniencia del algoritmo empleado. Gracar las respuestas del proceso continuo y del proceso discretizado cuando las se nales de entrada son del tipo escal on.

La soluci on a cada problema se presenta en archivos m (con extensi on m), los cuales pueden ser ejecutados en el ambiente de trabajo de MATLAB. Las respuestas al escal on se muestran en las guras correspondientes. Problema 3.1 La gura 3.12 muestra el diagrama de cuerpo libre del sistema de suspensi on de la rueda de un bus (normalmente un bus posee cuatro de tales sistemas), donde m1 = 2500 kg es la masa que soporta el sistema de suspensi on, m2 = 320 kg es la masa del sistema de suspensi on, k1 = 80000 N/m es la constante del resorte de suspensi on, k2 = 500000 N/m es la constante del resorte del aro m as la rueda, b1 = 350 N-s/m es la constante de amortiguamiento de la suspensi on y b2 = 15020 N-s/m es la constante de amortiguamiento del aro m as la rueda. Este modelo se encuentra en el sitio www.engin.umich.edu/group/ctm/index.html. Un buen sistema de suspensi on debe tratar de eliminar en el tiempo m as corto posible las oscilaciones producidas por protuberancias, desniveles y on huecos en la pista. Teniendo en cuenta que la distancia x2 w (la deformaci de la rueda) es despreciable, entonces podemos usar la distancia x1 x2 como la salida de nuestro proceso, dado que la distancia x1 w es dif cil de medir. El disturbio w puede modelarse como un escal on. Dicho disturbio puede ser provocado, por ejemplo, cuando el bus est a saliendo de un desnivel pronunciado de corta longitud. Las ecuaciones del movimiento que gobiernan el sistema de suspensi on son: m1 x 1 = b1 (x 1 x 2 ) k1 (x1 x2 ) + u m2 x 2 = b1 (x 1 x 2 ) + k1 (x1 x2 ) + b2 (w x 2 ) + k2 (w x2 )

3.4 Problemas Resueltos

93

x1 k1 x2

Masa de 1/4 del bus u Masa de la suspension k2 b2 b1

m1

m2

Figura 3.12: Sistema de suspensi on de la rueda de un bus. Se puede demostrar que las ecuaciones de estado y de salida del proceso son: 0 1 0 0 0 0 x1 x 1 b1 1 a21 0 a23 m x x 1 21 m1 1 u + a 1 = + b2 w b2 y m2 1 y1 1 0 m2 0 a33 1 1 k2 k2 y 2 y2 m 0 a43 0 m1 + m2 m2 2 x1 x 1 + y1 y2 y= 0 0 1 0 u w

0 0

donde: y1 = x1 x2 y2 = k1 k1 + m1 m2 b1 b2 ; m1 m2 y1 a23 = ; k2 (w x2 ) + m2 b1 m1 1 1 + m1 m2 u dt k1 m1

a21 = a33 =

b1 b1 b2 + + m1 m2 m2 a43 =

b1 b1 b2 + + m1 m2 m2

k1 k1 k2 + + m1 m2 m2

% P3_1P3.m SOLUCION AL PROBLEMA 3.1 clear all

94

Modelado de Procesos

% PARAMETROS DEL PROCESO m1 = 2500; k1 = 80000; b1 = 350; m2 = 320; k2 = 500000; b2 = 15020; a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1; a33 = -(b1/m1+b1/m2+b2/m2); a43 = -(k1/m1+k1/m2+k2/m2); % MODELO LINEAL A = [0 1 0 0 -b1*b2/(m1*m2) 0 a23 -b1/m1 b2/m2 0 a33 1 k2/m2 0 a43 0]; B = [0 0;1/m1 b1*b2/(m1*m2);0 -b2/m2;(1/m1+1/m2) -k2/m2]; C = [0 0 1 0]; D = [0 0]; % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLE eigA = eig(A); % COMPUTA EIGENVALORES % eigA(1) = -23.9758-35.1869i; eigA(2) = -23.9758 +35.1869i; % eigA(3) = -0.1098 - 5.2504i; eigA(4) = -0.1098 + 5.2504i; % CONVERSION AL ESPACIO DISCRETO T = 0.1; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); eigG = eig(G); % COMPUTA EIGENVALORES % eigG(1) = 0.7386 + 0.2712i; eigG(2) = 0.7386 - 0.2712i; % eigG(3) = 0.9975 + 0.0524i; eigG(4) = 0.9975 - 0.0524i; % G = % 0.9995 0.0100 -0.0010 0.0000 % -0.1306 0.9995 -0.1834 -0.0024 % 0.4271 0.0022 0.5513 0.0077 % 11.5437 0.0643 -14.1982 0.9221 % H = % 0.0000 0.0005 % 0.0000 0.1306 % 0.0000 -0.4271 % 0.0000 -11.5437 % RESPUESTAS AL ESCALON [Y,X,t] = step(A,B,C,D); [YY,XX] = dstep(G,H,C,D); tt = linspace(0,size(YY,1)*T,size(YY,1)); subplot(221) plot(t,Y(:,1)); grid xlabel(Tiempo en segundos)

3.4 Problemas Resueltos


ylabel(y(t) para u=1, w=0) subplot(223) plot(t,Y(:,2)); grid xlabel(Tiempo en segundos) ylabel(y(t) para u=0, w=1) subplot(222) plot(tt,YY(:,1)); grid xlabel(Tiempo en segundos) ylabel(y(k) para u=1, w=0) subplot(224) plot(tt,YY(:,2)); grid xlabel(Tiempo en segundos) ylabel(y(k) para u=0, w=1) print -deps -f P3_1P3
5 5

95

2.5 y(t) para u=1, w=0 2 1.5 1 0.5

x 10

2.5 y(k) para u=1, w=0 50 100 Tiempo en segundos 150 2 1.5 1 0.5

x 10

0 0

0 0

50 100 Tiempo en segundos

150

1 0.5 0 0.5 1 0 y(k) para u=0, w=1 50 100 Tiempo en segundos 150 y(t) para u=0, w=1

1 0.5 0 0.5 1 0

50 100 Tiempo en segundos

150

Figura 3.13: Respuestas al escal on para el sistema de suspensi on.

96 Problema 3.2

Modelado de Procesos

La din amica de un avi on puede ser descrita por varios conjuntos acoplados de ecuaciones diferenciales no lineales. Sin embargo, bajo ciertas suposiciones, tales ecuaciones pueden ser desacopladas y linealizadas para obtener dos conjuntos: las ecuaciones longitudinales y las ecuaciones laterales. El control de la inclinaci on del avi on mostrado en la gura 3.14 es un problema longitudinal.
Empuje x Impulso x
e

Arrastre e z z Peso

Figura 3.14: Avi on comercial en pleno vuelo. Asumiendo que el avi on est a en su velocidad de crucero (altura y velocidad constantes), entonces la resistencia de arrastre y la fuerza impulsora se cancelan mientras que el empuje de elevaci on se iguala con el peso (ver gura 3.14). Con tales consideraciones, se puede asumir que las ecuaciones longitudinales del movimiento del avi on (los datos corresponden a un avi on comercial Boeing) son: = 0,313 + 56,7q + 0,232e q = 0,0139 0,426q + 0,0203e = 56,7q donde es el angulo de ataque, q es la relaci on de inclinaci on, es el angulo de inclinaci on y e es el angulo del deector de elevaci on. La funci on de transferencia del proceso es: 1,151s + 0,1774 (s) = 3 e (s) s + 0,739ss + 0,921s

3.4 Problemas Resueltos mientras que sus ecuaciones de estado 0,313 56,7 q = 0,0139 0,426 0 56,7 y de salida son: 0 0,232 0 q + 0,0203 e 0 0 = 0 0 1 q

97

El modelo descrito est a en www.engin.umich.edu/group/ctm/index.html.


% P3_2P4.m SOLUCION AL PROBLEMA 3.2 clear all % MODELO DEL AVION (DINAMICA LONGITUDINAL) A = [-0.313 56.7 0 -0.0139 -0.426 0 0 56.7 0]; B = [0.232;0.0203;0]; C = [0 0 1]; D = [0]; % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A,B)); % rAB = 3 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A,C)); % rAC = 3 => COMPLETAMENTE OBSERVABLE eigA = eig(A); % COMPUTA EIGENVALORES % eigA(1) = 1; eigA(2) = -0.3695 + 0.8860i; % eigA(3) = 0.9963 - 0.0088i; % CONVERSION AL ESPACIO DISCRETO T = 0.1; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); eigG = eig(G); % COMPUTA EIGENVALORES % eigG(1) = 0; eigG(2) = 0.9963 + 0.0088i; % eigG(3) = 0.9963 - 0.0088i; % G = % 0.9968 0.5649 0 % -0.0001 0.9957 0 % 0.0000 0.5658 1.0000 % H = % 0.0024 % 0.0002 % 0.0001 % RESPUESTAS AL ESCALON [Y,X,t] = step(A,B,C,D); [YY,XX] = dstep(G,H,C,D);

98
tt = linspace(0,size(YY,1)*T,size(YY,1)); subplot(211) plot(t,Y); grid xlabel(Tiempo en segundos) ylabel(y(t) continua) subplot(212) plot(tt,YY); grid xlabel(Tiempo en segundos) ylabel(y(k) discreta) print -deps -f P3_2P4
8 6 4 2 0 0

Modelado de Procesos

y(t) continua

10

15 20 Tiempo en segundos

25

30

5 4 y(k) discreta 3 2 1 0 0 5 10 15 Tiempo en segundos 20 25

Figura 3.15: Respuestas al escal on para el a ngulo de inclinaci on del avi on comercial en vuelo. Problema 3.3 La bola mostrada en la gura 3.16 puede rodar a lo largo de la barra con un grado de libertad. Una leva conecta la barra con un engranaje que est a accionado por un servomotor. Se desea dise nar un sistema de control que pueda mantener la bola sobre la barra. Asumir que la bola rueda libre de fricci on. Los par ametros del proceso son: masa de la bola M = 0.11 kg, radio de la bola R = 0.015 m, distancia del extremo de la leva al centro del engranaje d = 0.03 m, aceleraci on de la gravedad g = 9.8 m/s2 , longitud de la

3.4 Problemas Resueltos

99

barra L= 1.0 m e inercia de la barra J = 9.99106 kg-m2 . Las variables del proceso son: posici on de la barra r, coordenada angular de la barra y posici on angular del engranaje . Este modelo se encuentra en el sitio www.engin.umich.edu/group/ctm/index.html.

L ESFERA

r BARRA LEVA d

ENGRANAJE

Figura 3.16: Bola balance andose sobre una barra. La ecuaci on din amica que describe el proceso es: 0= J +M R2 r M gsen M r 2

Cuando es peque no, sen . Luego: 0= J +M R2 r M g M r 2

Por tanto, la ecuaci on que relaciona con puede aproximarse mediante la siguiente relaci on lineal: d = L La funci on de transferencia del proceso resulta: 1 r(s) M gd = J 2 (s) s L R + M 2 y la ecuaci on de estado del proceso viene a ser: r r = 0 1 0 0 r r 0 +
L M gd
J +M R2

100

Modelado de Procesos

Sin embargo, usaremos cuatro estados, pues en lugar de controlar la posici on a trav es de , lo haremos a trav es de , lo que en esencia signica que queremos controlar el torque de la barra. Las ecuaciones de estado y de salida para esta situaci on son: 0 1 r r 0 0 = 0 0 0 0 0
M gd L
J +M R2

0 0

0 r 0 r + 1 0 r r

0 0 u 0 1

y=

1 0 0 0

El modelo descrito est a en www.engin.umich.edu/group/ctm/index.html.


% P3_3P5.m SOLUCION AL PROBLRMA 3.3 clear all % MODELO DE LA BOLA SOBRE LA BARRA M=0.11; R=0.015; d=0.03; g=9.8; L=1; J=9.99e-6; A = [0 1 0 0 0 0 M*g/(L*J/R^2+L*M) 0 0 0 0 1 0 0 0 0]; B = [0;0;0;1]; C = [1 0 0 0]; D = [0]; % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLE eigA = eig(A); % COMPUTA EIGENVALORES % eigA(1) = 0; eigA(2) = 0; eigA(3) = 0; eigA(4) = 0; % CONVERSION AL ESPACIO DISCRETO T = 0.1; % tiempo de muestreo [G,H,C,D] = c2dm(A,B,C,D,T,zoh); eigG = eig(G); % COMPUTA EIGENVALORES % eigG(1) = 1; eigG(2) = 1; eigG(3) = 1; eigG(4) = 1; % G = % 1.0000 % 0

0.1000 1.0000

0.0010 0.0209

0.0000 0.0010

3.4 Problemas Resueltos


% 0 % 0 % H = % 0.0000 % 0.0000 % 0.0050 % 0.1000 0 0 1.0000 0 0.1000 1.0000

101

% RESPUESTAS AL ESCALON TT=0:0.1:3; [Y,X] = step(A,B,C,D,1,TT); [YY,XX] = dstep(G,H,C,D,1,31); subplot(211) plot(TT,Y); grid xlabel(Tiempo en segundos) ylabel(y(t) continua) subplot(212) plot(TT,YY); grid xlabel(Tiempo en segundos) ylabel(y(k) discreta) print -deps -f P3_3P5

0.8 0.6 0.4 0.2 0 0

y(t) continua

0.5

1.5 2 Tiempo en segundos

2.5

0.8 0.6 0.4 0.2 0 0

y(k) discreta

0.5

1.5 2 Tiempo en segundos

2.5

Figura 3.17: Respuestas al escal on de la posici on de la bola sobre la barra.

102 Problema 3.4

Modelado de Procesos

La gura 3.18 muestra un horno de laboratorio para controlar temperaturas con precisi on. El modelo de este proceso se encuentra en la referencia [15]. Asumiendo que existe buena mezcla de aire caliente, el calor entregado al horno se modela como: c d (i o ) = Qc Qe ; dt Qc = Vc2 ; R Qe = i o r

donde i es la temperatura interior en K o en o C, o es la temperatura exterior en K o en o C, Qc es el ujo de calefacci on en J/s o watt, Qe es el ujo de p erdida en J/s o watt, c es la capacidad t ermica en J/K, r es la resistencia t ermica en K/watt, R es la resistencia el ectrica en ohm y Vc es el voltaje de calefacci on. Notar que podemos usar K o o C, pues las operaciones derivada o diferencia eliminan el valor 273 de: K = 273 + o C.

11111111111111111111111 00000000000000000000000 00000000000000000000000 11111111111111111111111 Calor perdido 00000000000000000000000 11111111111111111111111 000 111 000 111 Calentador electrico 000 1 111 000 Q o 111 0 + 000 111 000 111 0000 1111 0 1 000 111 000 111 0000 1111 Calor entregado 000 111 000 111 0000 1111 111111111 000000000 000 111 000 111 0000 1111 Vc Qc Temperatura 000 111 000 111 0000 1111 exterior 000 111 000 111 0 1 0000 1111 Temperatura 000 111 000 111 _ o 0 1 interior i 11111111111111111 00000000000000000 000 111 000 111 0 1 111 111 000 000 00000000000000000000000 11111111111111111111111 111 111 000 000 11111111111111111111111 00000000000000000000000 11111111111111111111111 00000000000000000000000
Figura 3.18: Horno de laboratorio.

amica del horno se describe como: Si o se considera constante, la din 1 di 1 1 2 + i = o + V dt rc rc Rc c i: y cuando i alcanza su estado estacionario o + r V 2 i = R c La tabla 3.3 contiene datos experimentales de la ca da de temperatura cuando se apaga el horno. La tabla 3.4 tabula el voltaje de calentamiento versus la temperatura interior en estado estable. Para ambas tablas la temperatura exterior es de 30 o C .

3.4 Problemas Resueltos

103

Cuadro 3.3: Datos de ca da de temperatura. Tiempo Temperatura (o C) 14:23:10 120.0 14:31:00 108.0 14:39:30 92.0 14:48:35 80.5 15:05:00 63.0 15:34:00 40.5

Cuadro 3.4: Temperaturas del horno en estado estable. Voltaje Temperatura (o C) 9.8 34.1 20.0 50.5 29.5 74.0 40.0 110.0

La curva exponencial 120et/ obtenida con los datos de la tabla 3.3 permite calcular su constante de tiempo = rc = 3000 s. La curva cuadr atica 2 obtenida con los datos de la tabla 3.4 permite obtener r/R = 5 10 . Por consiguiente, la din amica del horno resulta: 1 1 1 di = i + 0 + V 2 = f (i , o , Vc ) dt 3000 3000 60000 c Para efectos de linealizaci on podemos denir las siguientes variables: i; i = i o; o = o c vc = V c V

Entonces, la ecuaci on linealizada empleando el jacobiano para el punto de o e = 30 o C , V c = 20 volt, resulta: operaci on i = 50 C , f di = dt i i + f o o + f Vc vc

c V

1 1 1 di = i + o + vc dt 3000 3000 1500

104

Modelado de Procesos

% P3_4P6.m SOLUCION AL PROBLEMA 3.4 clear all % ECUACION DE ESTADO CONTINUA: % dTeta(t)/dt = A*Teta(t) + B*vc(t) + E*Teta_o A = [-1/3000]; B = [1/3000]; E = [1/1500]; C = [1]; D = [0]; % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A,B)); % rAB = 1 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A,C)); % rAC = 1 => COMPLETAMENTE OBSERVABLE eigA = eig(A); % COMPUTA EIGENVALORES % eigA = A = -1/3000; % POR SER PROCESO DE PRIMER ORDEN % CONVERSION AL ESPACIO DISCRETO T = 10; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); [G,F,C,D] = c2dm(A,E,C,D,T,zoh); % ECUACION DE ESTADO DISCRETA: % Teta(k+1) = G*Teta(k) + H*vc(k) + F*Teta_o eigG = eig(G); % COMPUTA EIGENVALORES % eigG = G = 0.9967; % POR SER PROCESO DE PRIMER ORDEN % G = 0.9967; H = 0.0067; F = 0.0333; % RESPUESTAS AL ESCALON [Y,X,t] = step(A,B,C,D); [YY,XX] = dstep(G,H,C,D); tt = linspace(0,size(YY,1)*T,size(YY,1)); subplot(211) plot(t,Y); grid subplot(212) ylabel(y(t) continua) plot(tt,YY); grid xlabel(Tiempo en segundos) ylabel(y(k) discreta) print -deps -f P3_4P6

Problema 3.5 La gura 3.20 muestra un monorriel de dos carros. El modelo de este proceso se encuentra en la referencia [15]. Sean M1 la masa del carro de m aquinas y B1 sus fricciones debido al aire y al rodamiento. La fuerza lineal equivalente para mover al proceso se designa como u(t). Los dos carros poseen masas an sujetos a fricciones B2 y B3 . Los carros M2 y M3 respectivamente, y est se acoplan uno al otro con dispositivos no r gidos (resortes) que poseen

3.4 Problemas Resueltos


2 1.5 1 0.5 0 0

105

y(t) continua

2000

4000

6000 8000 10000 Tiempo en segundos

12000

14000

16000

2 1.5 1 0.5 0 0

y(k) discreta

2000

4000 6000 8000 Tiempo en segundos

10000

12000

Figura 3.19: Respuesta al escal on de la temperatura interior del horno de laboratorio. constantes K23 y K12 , y dispositivos amortiguadores de constantes B23 y B12 . Las coordenadas de posici on se designan como x1 , x2 y x3 . Se puede i , i = 1, 2, 3 es: demostrar que la ecuaci on de estado del sistema con vi = x x = Ax + Bu(t) donde:

K12 M1 0 A = K12 M2 0 0

+B12 B1M 1 0 B12 M2

0
K12 M1 +K23 K12 M2

0
B12 M1
23 +B12 B2 +B M2

0 0 0
K23 M2

0 0 0
B23 M2 +B23 B3M 3

0 0

K23 M3

B23 M3

23 K M3

x = [x1 B = [0

v1 1

x2 0

v2 0

x3 0

v 3 ]T 0]T

106

Modelado de Procesos

11 00 x1 00 11 x2 00 11 x3 00 11 00 11 B 23 B 12 00 11 00 11 2do. CARRO 1er. CARRO MAQUINA 00 11 00 11 M2 M3 M1 K 23 1111111 00 11 0000000 K 12 11111111 00000000 0000000 1111111 0000000 0000000 00000000 1111111 1111111 11111111 00 11 11111111111111111111111111111111111 0000000000000000000000000000000000000 11 B3 B2 B1
Figura 3.20: Proceso monorriel de dos carros m as un carro de m aquinas.

Si ubicamos tac ometros en una de salida toma la forma: y1 y2 = y3

rueda de cada carro, entonces la ecuaci on 0 0 0 0 0 0 0 0 0 0 x 0 0 0 0 0 i = 1, 2, 3

yi = i vi ,

etrica. Asumir los siguientes valores para donde i es la constante tacom los par ametros: M2 = M3 = 2M1 = 2600 kg, K23 = K23 = 100000 N/m, B23 = B12 = 500 N-s/m y B2 = B3 = 2B1 = 10000 N-s/m.
% P3_5P7.m SOLUCION AL PROBLEMA 3.5 clear all % MODELO DEL MONORRIEL M2=2600; M3=M2; M1=1300; K23=100000; K12=K23; alfa=1; B23=500; B12=B23; B2=10000; B3=B2; B1=5000; A = [0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0 0 0 0 1 0 0 K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2 0 0 0 0 0 1 0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3]; B = [0;1;0;0;0;0]; C = [0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa]; D = [0;0;0];

3.4 Problemas Resueltos

107

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A,B)); % rAB = 6 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A,C)); % rAC = 5 => NO ES COMPLETAMENTE OBSERVABLE eigA = eig(A); % COMPUTA EIGENVALORES % eigA = % -2.2710 +11.5757i % -2.2710 -11.5757i % -2.0560 + 6.9947i % -2.0560 - 6.9947i % 0.0000 % -3.8462 % CONVERSION AL ESPACIO DISCRETO T = 0.1; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); rGC = rank(obsv(G,C)); % rGC = 6 => COMPLETAMENTE OBSERVABLE eigG = eig(G); % COMPUTA EIGENVALORES % eigG = % 0.3200 + 0.7298i % 0.3200 - 0.7298i % 0.6230 + 0.5242i % 0.6230 - 0.5242i % 1.0000 % 0.6807 % RESPUESTAS AL ESCALON TT=0:0.1:3; [Y,X] = step(A,B,C,D,1,TT); [YY,XX] = dstep(G,H,C,D,1,31); subplot(211) plot(TT,Y); grid xlabel(Tiempo en segundos) ylabel(Salidas continuas) subplot(212) plot(TT,YY); grid xlabel(Tiempo en segundos) ylabel(Salidas discretas) print -deps -f P3_5P7

Problema 3.6 La gura 3.22(a) muestra el diagrama de bloques simplicado del proceso ascensor, cuyo modelo se encuentra en la referencia [15]. El problema a resolver es posicionar el ascensor adecuadamente. El voltaje de armadura v (t) lo suministra un amplicador de potencia con saturaci on (gura 3.22(b)),

108
0.1 continuas 0.08 0.06 0.04 0.02 0 0 0.5 1 1.5 2 Tiempo en segundos

Modelado de Procesos

Salidas

2.5

0.1 discretas Salidas 0.08 0.06 0.04 0.02 0 0 0.5 1 1.5 2 Tiempo en segundos 2.5 3

Figura 3.21: Respuestas al escal on de las velocidades del monorriel. el cual no debe exceder los 200 volt. Esto signica una velocidad x1 en estado estable de: x 1 = 0,001 s + 0,2 (200) = 1 m/s
s=0

Observar en la gura 3.22(d) que la velocidad y posici on del elevador se miden separadamente. Entre pisos, el amplicador de potencia se encuentra en estado de saturaci on, generando 200 volt, dependiendo de si el ascensor est a subiendo o bajando. Cuando el ascensor se aproxima al piso donde debe parar, la operaci on del amplicador pasa a la zona lineal. En esta situaci on debe actuar un controlador para posicionar suavemente al ascensor empleando las mediciones de velocidad y posici on del ascensor. Tales mediciones, as como tambi en la medici on del voltaje de armadura en la zona de saturaci on, est an disponibles para cada piso. La gura 3.22(d) muestra el sistema de control digital del ascensor. Las ecuaciones de estado y de salida del ascensor son: 3 x 1 0,2 0 0 0 10 x1 x 0 0 0 x2 0 2 = 1 + x 3 2 0 2 0 x3 0 x 4 x4 0 5 0 0 5

3.4 Problemas Resueltos y= 0 1 0 0 x

109

% P3_6P8.m SOLUCION AL PROBLEMA 3.6 clear all % MODELO DEL ASCENSOR A = [-0.2 0 0 0 1 0 0 0 2 0 -2 0 5 0 0 -5]; B = [1e-3;0;0;0]; C = [0 1 0 0]; D = [0]; % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A,C)); % rAC = 2 => NO ES COMPLETAMENTE OBSERVABLE eigA = eig(A); % COMPUTA EIGENVALORES % eigA = % -5.0000 % 0 % -2.0000 % -0.2000 % CONVERSION AL ESPACIO DISCRETO T = 0.2; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); rGC = rank(obsv(G,C)); % rGC = 2 => NO ES COMPLETAMENTE OBSERVABLE eigG = eig(G); % COMPUTA EIGENVALORES % eigG = % 0.3679 % 1.0000 % 0.6703 % 0.9608 % G = % 0.9608 % 0.1961 % 0.3227 % 0.6176

0 1.0000 0 0

0 0 0.6703 0

0 0 0 0.3679

% H = 1.0e-003 * % 0.1961 % 0.0197 % 0.0347 % 0.0725 % RESPUESTAS AL ESCALON

110

Modelado de Procesos

Voltaje de entrada u

v u Amplificador de potencia con saturacion

Voltaje de armadura 0.001 v s + 0.2 Motor actuador mas tambor

Velocidad del ascensor 1 x1 s

Posicion del ascensor x

2 x3 5 x4 s + 5 Sensor de posicion v 200 1 u -200 (b) 3000 0.005 (a) x1 s + 2 Sensor de velocidad

10 (c)

15

x4

D/A con memoria

Posicion del ascensor Actuador mas sensores x x4 2

Computador digital x3 A/D

Amplificador Voltaje de armadura sensor de velocidad

sensor de (d)

posicion

x3

Figura 3.22: Proceso ascensor.

3.4 Problemas Resueltos


[Y,X,t] = step(A,B,C,D); [YY,XX] = dstep(G,H,C,D); tt = linspace(0,size(YY,1)*T,size(YY,1)); subplot(211) plot(t,Y); grid xlabel(Tiempo en segundos) ylabel(Salidas continuas) subplot(212) plot(tt,YY); grid xlabel(Tiempo en segundos) ylabel(Salidas discretas) print -deps -f P3_6P8

111

0.15 Salidas continuas

0.1

0.05

0 0

10

15 20 Tiempo en segundos

25

30

0.2 Salidas discretas 0.15 0.1 0.05 0 0

10

15

20 25 30 Tiempo en segundos

35

40

45

Figura 3.23: Respuestas al escal on de la posici on del ascensor.

Problema 3.7 En la gura 3.24(a) se desea reducir la humedad h del material a granel de la tolva. La banda transportadora que se desplaza a una velocidad constante de v = 1 m/s, introduce el material a un horno de secado. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la se nal de voltaje vr . El horno puede modelarse como un proceso de primer

112

Modelado de Procesos

orden. La gura 3.24(b) muestra la F.T. del proceso. El modelo del proceso en estudio se encuentra en la referencia [10].
Tolva Horno d v v
d/v

Controlador Sensor

Referencia

Deposito (b) hr 10 s + 0.5 Sensor vr

1 s+1 Horno

hs

e -(d/v)s

Tiempo muerto

Figura 3.24: Sistema reductor de humedad.


% P3_7P10.m clear all SOLUCION AL PROBLEMA 3.7

% MODELO DEL REDUCTOR DE HUMEDAD % (num(s)/den(s))*exp(-d/v); d=10; v=1; Tm = d/v; % TIEMPO MUERTO [numd,dend] = pade(Tm,3); % APROXIMACION DE ORDEN 3 % APROXIMO exp(-Tm*s) EMPLEANDO UNA F.T. DE ORDEN 3 num = conv([0 0 10],numd); den = conv(dend,[1 1.5 0.5]); [A,B,C,D] = tf2ss(num,den); % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A,B)); % rAB = 5 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A,C)); % rAC = 5 => COMPLETAMENTE OBSERVABLE % EIGENVALORES eigA = eig(A); % eigA: % -1.0000; -0.3678+0.3509i; -0.3678-0.3509i; -0.5000; -0.4644 % CONVERSION AL ESPACIO DISCRETO T = 0.1; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); % G = % 0.7510 -0.2604 -0.1435 -0.0421 -0.0052

3.4 Problemas Resueltos


% % % % 0.0872 0.0046 0.0002 0.0000 0.9865 0.0995 0.0050 0.0002 -0.0075 0.9997 0.1000 0.0050 -0.0022 -0.0001 1.0000 0.1000 -0.0003 0.0000 0.0000 1.0000

113

% H = % 0.0872 % 0.0046 % 0.0002 % 0.0000 % 0.0000 % EIGENVALORES: eigG = eig(G); % eigG = % 0.9048; 0.9633+0.0338i; 0.9633-0.0338i; 0.9512; 0.9546 % RESPUESTAS AL ESCALON [Y,X,t] = step(A,B,C,D); [YY,XX] = dstep(G,H,C,D); tt = linspace(0,size(YY,1)*T,size(YY,1)); subplot(211) plot(t,Y); grid xlabel(Tiempo en segundos) ylabel(Humedad continua) subplot(212) plot(tt,YY); grid xlabel(Tiempo en segundos) ylabel(Humedad) print -deps -f P3_7P10

Problema 3.8 Los par ametros valorados del proceso mostrado en la gura 3.26 son: momento de inercia del rotor J = 0.01 kg-m2 /s2 , constante electromotriz Ke = Kt = 0.01 N-m/A, resistencia R = 12 ohm, resistencia de armadura RA R, condensador C = 0.5 F, inductancia de armadura L = 0.5 H, constante torsional K = 1.8 N-m/rad. Las ecuaciones que gobiernan la din amica del proceso electromec anico mostrado en la gura 3.26 se describen a continuaci on. Subproceso el ectrico: IR = 1 (v vC ); R C vC = IR IM ; dt L dIM = vC e dt

114
20 continua 15 10 5 0 5 0 2 4 6 8 10 12 Tiempo en segundos 14

Modelado de Procesos

Humedad

16

18

20

20 Humedad discreta 15 10 5 0 5 0 5 10 15 Tiempo en segundos 20 25

Figura 3.25: Respuestas al escal on de la humedad con tiempo muerto. Motor: T = Kt IM ; Resorte torsional m as la inercia J : dT = K (1 2 ); dt J d2 =T dt e = Ke 1

Seleccionando como variables de estado x1 = vC , x2 = IM y x3 = 2 , y on de estado del proceso resulta: como salida y = x3 , la representaci = Ax + Bu; x A=
1 RC 1 C 0 Kt J

y = Cx
Ke K LK +Kt Ke

0 0

K LK +Kt Ke 1 RC

B = 0 ; 0

C=

0 0 1

El modelo del proceso en estudio se encuentra en la referencia [10].

3.4 Problemas Resueltos

115

+ v -

IR

R C

L + e -

IM

K 2

T 1
Figura 3.26: Sistema electromec anico.

% P3_8P11.m SOLUCION AL PROBLEMA 3.8 clear all % MODELO DEL SISTEMA ELECTROMECANICO J=0.01; Kt=0.01; Ke=Kt; R=12; RA=0; C=0.5; L=0.5; Kw=1.8; A = [-1/(R*C) -1/C 0 Kw/(L*Kw+Kt*Ke) 0 0 0 Kt/J 0]; B = [1/(R*C);0;0]; C = [0 0 1]; D = [0]; % CONTRLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A,B)); % rAB = 3 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A,C)); % rAC = 3 => COMPLETAMENTE OBSERVABLE eigA = eig(A); % COMPUTA EIGENVALORES % eigA = % 0 % -0.0833 + 1.9982i % -0.0833 - 1.9982i % G = % 0.9638 -0.1970 0 % 0.1970 0.9802 0 % 0.0099 0.0993 1.0000 % H = % 0.0164 % 0.0017 % 0.0001 % CONVERSION AL ESPACIO DISCRETO T = 0.1; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); rGC = rank(obsv(G,C)); % rGC = 2 => NO ES COMPLETAMENTE OBSERVABLE eigG = eig(G); % COMPUTA EIGENVALORES % eigG = % 1.0000

116
% 0.9720 + 0.1968i % 0.9720 - 0.1968i % G = % 0.9638 -0.1970 0 % 0.1970 0.9802 0 % 0.0099 0.0993 1.0000 % H = % 0.0164 % 0.0017 % 0.0001 % RESPUESTAS AL ESCALON [Y,X,t] = step(A,B,C,D); [YY,XX] = dstep(G,H,C,D); tt = linspace(0,size(YY,1)*T,size(YY,1)); subplot(211) plot(t,Y) xlabel(Tiempo en segundos) ylabel(Voltaje en C (continuo)) grid subplot(212) plot(tt,YY) xlabel(Tiempo en segundos) ylabel(Voltaje en C (discreto)) grid print -deps -f P3_8P11

Modelado de Procesos

3.5.

Problemas Propuestos

Para cada proceso en estudio se pide: Determinar el modelo matem atico que describa la din amica del proceso (si no lo tuviera). Determinar si el proceso es completamente controlable y/o completamente observable. Calcular los eigenvalores del proceso, tanto en el dominio continuo como en el dominio discreto. Seleccionar un tiempo de muestreo y determinar el modelo del proceso en el espacio de estado discreto. Tener en cuenta que el tiempo de muestreo seleccionado, no necesariamente ser a usado cuando el proceso

3.5 Problemas Propuestos


5 Voltaje en C (continuo) 4 3 2 1 0 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50

117

5 Voltaje en C (discreto) 4 3 2 1 0 0 10 20 30 40 Tiempo en segundos 50 60

Figura 3.27: Respuestas al escal on del voltaje en el condensador. sea controlado digitalmente. Veremos que la elecci on del tiempo de muestreo es a conveniencia del algoritmo empleado. Gracar las respuestas del proceso continuo y del proceso discretizado cuando las se nales de entrada (se nales de referencia o se nales disturbio) son del tipo escal on. Problema 3.9 Las ecuaciones del modelo linealizado para controlar la posici on angular del ca no n ubicado en la la torreta de un tanque mediante un actuador hidr aulico son las siguientes (ver gura 3.28): = = p + d p = m p Km Km q+ + dp J J q = Kv Lv q Kv Kp Jp + Kv u + dq ;

Lv = 1

donde es el angulo de la torreta, es la velocidad angular de la torreta, p es la aceleraci on angular producida por el actuador hidr aulico, q es el desplazamiento de la servov alvula, Km = [8.46106 , 1.96106 ] (el primer valor

118

Modelado de Procesos

corresponde al a ngulo de desplazamiento horizontal de la torreta, mientras que el segundo valor, al a ngulo de elevaci on) es la ganancia del servomotor, 2 J = [7900, 2070 lbf-ft-s ] es la inercia de la torreta, m = [45.9, 17.3 rad/s] es la frecuencia natural del motor, Kv = [94.3, 94.3] es la ganancia de la servo v alvula, y Kp = [6.33106 , 3.86105 ] es el coeciente de presi on diferencial. Las cantidades d , dp y dq representan disturbios que tambi en incluyen los efectos debido a las no linealidades que no fueron tomadas en cuenta en el modelo linealizado. Es u til saber que 1 lbf-ft-s2 = 1.355 kg-m2 . El modelo de este proceso de encuentra en la referencia [17].

Torreta del tanque

Angulo de elevacion

Azimut: angulo de posicionamiento horizontal

Figura 3.28: Vistas lateral y horizontal de la torreta de un tanque.

Problema 3.10 Una columna de destilaci on es un proceso complejo que requiere una gran cantidad de variables (m as de 100) para describir su comportamiento en forma muy aproximada. Sin embargo, haciendo las simplicaciones del caso (tales como reducci on del n umero de variables y linealizaci on de los puntos de operaci on) se puede llegar a un modelo reducido que pueda ser empleado para el control del proceso. Ese es el caso de una columna de extracci on

3.5 Problemas Propuestos

119

para la separaci on del isopropanol de una mezcla con contenido de agua, empleando glycol como un extractante (ver gura 3.29).
Extractante (glycol)

Agua

11 00 00 T1 Mezcla de 11 00 11 agua e isopropanol


T 11 00 00 2 11 00 11

S: flujo lateral de vapor z


1

T1 Propanol Glycol z2 Concentraciones Temperaturas

u 1 : vapor de calentamiento Producto (glycol)

Figura 3.29: Columna de destilaci on con los perles de concentraci on y de temperatura. Las ecuaciones de estado y de salida que gobiernan el proceso en cuesti on son las siguientes: x = Ax + B u + F d; donde: Q1 V1 x= z1 ; z2 y = Cx

u=

u 1 S 0 a22 a32 a42 ) 0 0 0 0

; 0 0 ; 0 0

d=

xF A1 FA

y=

T1 T2

a11 a21 A= 0 0 0 0 F = f31 0

b11 0 0 0 B= 0 b32 0 b42 ) 0 0 c13 0 0 0 0 c24

0 0 ; f32 f42

C=

120

Modelado de Procesos

con a11 = 30,3, a21 = 0,12 103 , a22 = 6,02, a32 = 3,77, a42 = 2,8, b11 = 6,15 105 , b32 = 3,04, b42 = 0,052, f31 = 62,2, f32 = 5,76, f42 = 5,12, c13 = 7,3 y c24 = 25. Las variables poseen el siguiente signicado (ver gura 3.29): Q1 es el ujo de calor producido por el caldero de vapor, V1 es el ujo de vapor producido por el caldero de vapor, u1 es el vapor de calefacci on, S es el ujo de vapor lateral, z 1 es la posici on del cambio de interfase entre el agua y el isopropanol, z 2 es la posici on del cambio de interfase entre el agua y el glycol, T1 y T2 son los cambios de temperatura en z1 y z2 , FA es el ujo de la mezcla de agua m as isopropanol, y xF A1 es la composici on de la mezcla de agua m as isopropanol. Notar que todas las variables son residuales; es decir, representan los cambios con respecto al estado de equilibrio. El modelo de este proceso de encuentra en la referencia [17]. Problema 3.11 La gura 3.30 muestra el proceso servomotor con carga no lineal descrito en la secci on 3.2. Notar ahora que el eje de salida del mecanismo de reducci on est a sujeto a la carga no lineal mediante una junta exible que puede ser modelada como un resorte rotacional de constante K =0.5 N/m/s. Considerar dos casos: (a) cuando la inductancia de armadura es despreciable, y (b) cuando no lo es.
R
+

m eb

u
-

Va L

Mo Ro Lo m

Jm Bm

K
2

BL JL

Figura 3.30: Servomotor unido a la carga no lineal mediante un acoplamiento exible. Problema 3.12 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la secci on 3.3, en donde la carga no lineal posee ahora dos grados de libertad.

3.5 Problemas Propuestos

121

La uni on de la carga con el eje del servomotor no es exible. Asumir que Lo = 2L1 /3. Considerar dos casos: (a) cuando la inductancia de armadura es despreciable, y (b) cuando no lo es.
Mo L1 m1 R
+

Ro

m eb

u
-

Va L

Union no flexible

Lo m BL JL

Jm Bm

Figura 3.31: Servomotor con carga no lineal de dos grados de libertad. El acoplamiento de la carga al eje del motor no es exible. Problema 3.13 La gura 3.32 muestra el proceso p endulo doble no lineal. Las ecuaciones que describen la din amica del proceso p endulo simple fueron deducidas en la secci on 3.1. Para deducir el modelo matem atico del proceso p endulo doble conviene emplear las ecuaciones de Lagrange de la mec anica cl asica. El acoplamiento entre los dos p endulos no es exible. Los dos p endulos poseen la misma longitud y la masa esf erica es de 0.02 kg. Problema 3.14 La gura 3.33 muestra el proceso doble gr ua-puente no lineal. Las ecuaciones que describen la din amica del proceso gr ua-puente fueron deducidas en la secci on 3.2. Para deducir el modelo matem atico del proceso doble gr uapuente conviene emplear las ecuaciones de Lagrange de la mec anica cl asica. El acoplamiento entre las dos secciones de la varilla no es exible. Las dos varillas poseen la misma longitud y la masa esf erica adicional es de 0.02 kg.

122

Modelado de Procesos

+ Fuerza de u control Servomotor D.C. y

F Carro

Figura 3.32: Proceso p endulo doble no lineal.

+ Fuerza de u control Servomotor D.C. y

F Carro

z y

Doble puente grua

Figura 3.33: Proceso doble gr ua-puente.

Cap tulo 4

Control Optimo
Este cap tulo desarrolla un procedimiento para dise nar sistemas de control o ptimo estacionarios y no estacionarios, usando una ley de control o ptima cuadr atica que emplea las se nales del proceso medidas directamente o estimadas mediante un observador o ptimo. Las conguraciones usadas para el dise no son el regulador o ptimo proporcional y el regulador o ptimo proporcional integral. La u ltima conguraci on a nade un integrador al controlador con el prop osito de reducir el error en estado estable. El procedimiento de dise no desarrollado, puede ser aplicado tanto a sistemas univariables como a sistemas multivariables. Dos aplicaciones validan el procedimiento de dise no desarrollado: control optimo de los procesos p endulo invertido y gr ua puente. La pen ultima secci on, problemas resueltos, est a dedicada al dise no de sistemas de control optimo estacionarios para diferentes procesos. La u ltima secci on propone problemas de dise no a resolver. Todos los archivos correspondientes a los ejercicios, problemas, dise nos, simulaciones y software desarrollados se pueden descargar del sitio http://ee.uni.edu.pe/728681F.

4.1.

Introducci on

El control o ptimo trata de determinar el mejor sistema de control empleando una t ecnica optima de dise no. Esta t ecnica asume la formulaci on de una funci on matem atica denominada la funci on de costo, tambi en conocida como funci on de rendimiento, ndice de rendimiento o ndice de funcionamiento, entre otras denominaciones. El procedimiento de dise no del sistema de control o ptimo trata de encontrar un extremo (un m nimo o un m aximo, dado el caso) de una funci on de costo con el prop osito de determinar los par ametros

124

Control Optimo

optimos de una ley de control; de all el t ermino o ptimo. En la mayor a de los casos, sin embargo, la b usqueda de la funci on de costo involucra procedimientos de error y correcci on; esto signica que no siempre podemos estar seguros acerca de la forma exacta que deber a poseer la funci on de costo. Para sistemas de control discretos, la funci on de costo generalmente posee la forma siguiente:
N

J=
k=0

L(x(k ), r(k ), u(k ))

(4.1)

donde k es el tiempo discreto, N es el tiempo discreto nal, x(k ) es el vector de estado, r(k ) es el vector de referencia (entrada al sistema de control) y u(k ) es el vector de control optimo. Esta ley de control (denominada tambi en fuerza o se nal de control) constituye la entrada al proceso a controlar. Para aplicaciones pr acticas, el vector de control u debe estar siempre acotado. Por ejemplo, |ui (k )| Ui (4.2)

donde cada elemento Ui es una constante determinada (el sub ndice denota la componente i del vector u). Para el caso de control acotado con m nimo gasto de energ a, se puede formular: u2 i (k ) Mi (4.3)

en donde cada elemento Mi es una constante dada. En cualquier caso, el vector de control u debe satisfacer ciertas restricciones para poder ser un vector de control admisible. En este cap tulo se desarrolla el procedimiento de dise no de un sistema de control o ptimo cuadr atico discreto, denominado as porque emplea una funci on de costo cuadr atica de dominio discreto. El resultado del dise no proporciona una matriz de ganancia que multiplicada por el vector de estado (real o estimado) del proceso, resulta en una ley de control o ptima cuadr atica. El vector de estado estimado se determina usando un observador optimo. Para demostrar la validez del procedimiento de dise no, se presentan dos aplicaciones: dise no del sistema de control optimo cuadr atico para el proceso p endulo invertido y para el proceso gr ua-puente.

4.2 Control Optimo Cuadr atico No Estacionario

125

4.2.

Control Optimo Cuadr atico No Estacionario

El problema del control o ptimo cuadr atico discreto no estacionario consiste en encontrar una adecuada ley de control o ptima que sea capaz de trasladar la din amica del proceso desde un estado inicial x(0) hacia un estado nal deseado x(N ). La fuerza de control o ptima u(k ) se determina a partir de la minimizaci on de una funci on de costo cuadr atica discreta. Esta fuerza de control aplicada al proceso a controlar, provoca que dicho proceso responda en forma o ptima (o lo m as cercano al optimo). El control o ptimo cuadr atico discreto se basa en la siguiente funci on de costo: 1 1 J = xT (N )S x(N ) + 2 2
N 1

xT (k )Qx(k ) + uT (k )Ru(k )
k=0

(4.4)

donde x(k ) es el vector de estado de dimensi on n y u(k ) es el vector de control de dimensi on r. Mientras que la matriz hermitiana semidenida positiva S (de dimensi on n n) pondera la importancia del estado nal x(N ), la matriz hermitiana semidenida positiva Q (de dimensi on n n) pondera la importancia del vector de estado x(k ), y la matriz hermitiana denida positiva R (de dimensi on r r) pondera la importancia de la se nal de control u(k ). La denici on de matrices se trat o en la subsecci on 1.2.4. La ley del control o ptima a usar emplea la realimentaci on del vector de estado x(k ) en su formulaci on y posee la forma siguiente: u(k ) = K (k )x(k ) (4.5)

donde K (k ) (de dimensi on r n) es la matriz de ganancia del controlador, denominada tambi en matriz de realimentaci on de estados. Cuando la din amica del sistema de control es nita, K (k ) es una matriz variante en el tiempo; pero cuando dicha din amica alcanza su estado estacionario (es decir, cuando N ), entonces K (k ) se convierte en una matriz constante K . En esta u ltima situaci on, estaremos frente al denominado control o ptimo en estado estacionario, y es el que usaremos en nuestras aplicaciones. Una condici on necesaria para poder aplicar el control por realimentaci on de estados es que el proceso sea completamente controlable. Por consiguiente, ser a necesario vericar dicha condici on en el proceso antes de iniciar el procedimiento de dise no. La realimentaci on de estados requiere adem as que todos los estados sean disponibles y medibles. Si en el sistema a controlar existieran estados que

126

Control Optimo

no pudieran ser medidos directamente, ser a necesario estimarlos. Esta estimaci on puede ser realizada empleando la t ecnica de observaci on de estados que ser a tratada en la secci on 4.6. El requerimiento en esta parte es que el proceso sea completamente observable. La soluci on al problema de control o ptimo cuadr atico puede obtenerse empleando varios enfoques, tales como el m etodo de minimizaci on usando multiplicadores de Lagrange o mediante el principio de optimalidad [3],[4]. Asumamos que el proceso puede ser modelado mediante la siguiente ecuaci on de estado discreta: x(k + 1) = Gx(k ) + H u(k ); x(0) = c (4.6)

donde G es la matriz de estado de dimensi on n n, H es la matriz de control de dimensi on n r y x(0) es una condici on inicial del vector de estado. El proceso debe ser de estado completamente controlable; es decir, que en un tiempo nito, sus estados puedan ser transferidos desde un estado inicial arbitrario a cualquier otro estado deseado. La condici on necesaria y suciente para la completa controlabilidad del proceso es que la matriz de controlabilidad M dada por la siguiente expresi on (subsecci on 2.3.6): M= H GH Gn1 H (4.7)

posea rango completo; es decir, el rango de M debe ser igual al orden n del proceso. La soluci on al problema del control o ptimo cuadr atico no estacionario est a dada por la siguiente matriz de ganancia del controlador: K (k ) = [R + H T P (k + 1)H ]1 H T P (k + 1)G (4.8)

donde P (k + 1) es una matriz hermitiana denida positiva de dimensi on n n. Dicha matriz es soluci on de la siguiente ecuaci on matricial de Riccati: P (k ) = Q + GT P (k +1)G GT P (k +1)H [R + H T P (k +1)H ]1 H T P (k +1)G (4.9) La matriz P (K ) de la ecuaci on (4.9) puede determinarse recursivamente partiendo de la siguiente condici on terminal para k = N : P (N ) = S (4.10)

hasta llegar a la condici on inicial P (0) para k = 0. El procedimiento es como sigue: reemplazando P (N ) en la ecuaci on (4.8), podemos luego obtener

4.3 Control Optimo Cuadr atico Estacionario

127

K (N 1) (matriz de ganancia en el tiempo k = N 1). Del mismo modo, con P (N 1) podemos obtener K (N 2), y asi sucesivamente hasta llegar a obtener K (0). Las matrices de ganancia K (k ) (para k = N 1, N 2, . . . , 0) as determinadas, se pueden usar ahora para calcular la ley de control dada por la ecuaci on (4.5). Por otra parte, se puede demostrar que el valor m nimo de la funci on de costo se determina de: 1 Jmin = xT (0)P (0)x(0) 2 (4.11)

4.3.

Control Optimo Cuadr atico Estacionario

En la secci on anterior vimos que cuando la din amica del sistema de control evoluciona en un tiempo N nito, la ganancia de realimentaci on de estados K (k ) es una matriz variante en el tiempo. Sin embargo, cuando la din amica del sistema de control evoluciona hasta un tiempo N innito, la soluci on del control o ptimo cuadr atico pasa a ser una soluci on de estado estacionario. En este caso, la ganancia K (k ) se convierte en una matriz constante K . Para N innito, el t ermino xT (N )S x(N ) de la ecuaci on (4.4) desaparece debido a que x() = 0. Por consiguiente, la funci on de costo para el estado estacionario toma la forma: 1 J= 2

xT (k )Qx(k ) + uT (k )Ru(k )
k=0

(4.12)

Por otra parte, en el estado estacionario la matriz P (k ) resulta una matriz constante P . De este modo la ecuaci on de Riccati en estado estacionario toma la forma: P = Q + GT P G GT P H [R + H T P H ]1 H T P G mientras que la matriz de ganancia K resulta: K = [R + H T P H ]1 H T P G u(k ) = K x(k ) y la funci on de costo m nima viene a ser: 1 Jmin = xT (0)P x(0) 2 (4.16) (4.14) (4.15) (4.13)

128

Control Optimo

Una forma de obtener la matriz P de la ecuaci on matricial (4.13), es empleando la ecuaci on de Riccati en estado no estacionario dada en la ecuaci on (4.9), pero invirtiendo la direcci on del tiempo: P (k + 1) = Q + GT P (k )G GT P (k )H [R + H T P (k )H ]1 H T P (k )G (4.17) La ecuaci on (4.17) permite determinar una matriz P de magnitud convergente usando c alculo recursivo como sigue. Asumiendo inicialmente para k = 0 que P (0) = 0, podemos obtener P (1); luego usar P (1) para obtener P (2), y asi sucesivamente, hasta llegar a un tiempo discreto k para el cual P (k ) = P (k + 1) = P (k + 2) = . Con la matriz P as determinada, podemos calcular ahora la ganancia K usando la ecuaci on (4.14), para luego obtener la ley de control dada por la ecuaci on (4.15). El diagrama de bloques del control o ptimo de estado estacionario se representa en la gura 4.1, en donde se asume que todos los estados se encuentran disponibles. Para operaci on satisfactoria del sistema de lazo cerrado mostrada en dicha gura, todas las ra ces de su ecuaci on caracter stica: det[zI G + HK ] = 0 (4.18)

deben posicionarse dentro del c rculo unitario. Tales ra ces se denominan tambi en valores propios, ra ces caracter sticas, eigenvalores o modos de funcionamiento.
u (k) H I z -1 x (k)

G -K

Figura 4.1: Sistema de control o ptimo a lazo cerrado.

4.4.

El Regulador Optimo Proporcional

El regulador es un sistema de control realimentado, en donde la salida controlada sigue a una se nal de referencia r(k ) = (k ) constante, donde

4.4 El Regulador Optimo Proporcional

129

(k ) es la funci on escal on. Restringiremos nuestro tratamiento a sistemas univariables. Previamente debemos recalcar que la naturaleza proporcional del regulador en cuesti on, obliga a que se aplique con cuidado a sistemas que no poseen un comportamiento integral. Este es el punto en discusi on. La gura 4.2 muestra el esquema de un regulador para la variable de estado x2 del vector de estado x, empleando una ley de control de realimentaci on de estados de la forma u = K x.
x (k) r(k) + k2 + u(k) x (k+1) = G x (k) + Hu(k) - k1 k3 . . . kn . . . C y(k) = x 2 (k)

Figura 4.2: Esquema del regulador o ptimo proporcional. Para una salida arbitraria, por ejemplo x2 : u(k ) = k1 x1 (k ) k3 x3 (k ) kn xn (k ) + k2 r(k ) k2 x2 (k ) = K x(k ) + k2 r(k ) Reemplazando u(k ) en la ecuaci on de estado del proceso: x(k + 1) = Gx(k ) + Hu(k ) = (G HK )x(k ) + Hk2 r(k ) (4.20) (4.19)

Empleando la transformada Z en (4.20), la funci on de transferencia de pulso con r(z ) = R (z ) resulta: y (z ) = C (zI G + HK )1 Hk2 R(z ); (z ) = z z1 (4.21)

Aplicando la propiedad del valor nal (subsecci on 2.3.2) a y (z ) obtenemos: m l m y (k ) = l z1 y (z ) = C (I G + HK )1 Hk2 R z 1 z (4.22)

130

Control Optimo

La condici on para que y = R es que C (I G + HK )1 Hk1 = 1, que no siempre se cumple. Por ello, es necesario afectar a la se nal de referencia por una ganancia g de modo que: gC (I G + HK )1 Hk2 R = 1 Este procedimiento ser a validado con los ejemplos 4.1 y 4.2. (4.23)

4.5.

Selecci on de las Matrices de Ponderaci on

La funci on de costo para determinar la ganancia K del controlador o ptimo estacionario est a dada en la ecuaci on (4.12): 1 J= 2

xT (k )Qx(k ) + uT (k )Ru(k )
k=0

donde observamos que la matriz hermitiana R pondera la se nal de control u(k ) mientras que la matriz hermitiana Q pondera el vector de estado x(k ). En la subsecci on 1.1.2 vimos que una matriz es hermitiana cuando su conjugada transpuesta (o su transpuesta conjugada) resulta en la misma matriz. Por tanto, es v alido que (R )T = (RT ) = R y (Q )T = (QT ) = Q. Cuando las matrices R y Q son reales, entonces ambas deben ser sim etricas y se on 1.2.4 se dijo verica que RT = R y QT = Q. Asimismo, en la subsecci que una matriz cuadrada R es denida positiva si las ra ces de su ecuaci on caracter stica |zI R| = 0 son todas positivas, mientras que una matriz cuadrada Q es semidenida positiva si las ra ces de su ecuaci on caracter stica |zI Q| = 0 son positivas o nulas (sin embargo, no todas las ra ces deben ser nulas). La matriz R, por conveniencia, puede tomar la forma de una matriz real diagonal: r1 0 . . . 0 . . 0 r2 . R= . .. . . . 0 ... rp donde los elementos r1 , r2 ,. . . ,rp deben ser todos positivos para que R sea una matriz sim etrica denida positiva. Para sistemas con una sola se nal de entrada, R resulta un escalar de valor positivo.

4.5 Selecci on de las Matrices de Ponderaci on La matriz Q puede tomar tambi en una forma diagonal: q1 0 . . . 0 . . 0 q2 . Q= . .. . . . 0 ... qn

131

donde los elementos qi pueden ser positivos y algunos de ellos nulos para que Q sea una matriz sim etrica semidenida positiva. a un peso correspondiente a cada Cada elemento qi o cada elemento ri dar variable de estado xi o a cada se nal de control ui , respectivamente. El criterio para escoger los pesos est a en relaci on con la importancia que le demos a cada variable o se nal en cuesti on. Para el caso del observador de estados, las matrices de ponderaci on Re y Qe deben ser elegidas de tal forma que la respuesta del observador sea dos o tres veces m as r apida (regla pr actica) en comparaci on con la respuesta del proceso. Es decir, la salida y (k ) del proceso (ver gura 4.6) debe alcanzar su estado estacionario despu es que la salida y (k ) del observador ya la haya alcanzado. Generalmente para que esto ocurra, los elementos de Re deben ser bastante menores que los elementos de Qe . Debemos tener en cuenta que un mayor peso en una de las variables ocasiona una mejor respuesta con relaci on a tal variable, pero disminuye el desempe no de las dem as. Es entonces necesario balancear en forma adecuada los pesos, de manera tal que obtengamos un desempe no general del sistema, que se acerque en lo posible al o ptimo y que evidentemente, cumpla las especicaciones de dise no. Ejemplo 4.1 El motor D.C. es un actuador muy popular en los sistemas de control porque su movimiento rotatorio, mediante acoples adecuados en su eje, puede convertirse f acilmente en movimiento de traslaci on. Eso se aprecia en fajas transportadoras o en brazos manipuladores. La gura 4.3 muestra el circuito de armadura del motor acoplado a una carga. Los par ametros del motor fueron determinados experimentalmente, resultando: momento de inercia del rotor on b = 0.1 N-s/m, constante electroJ = 0.01 kg-m2 /s2 , coeciente de fricci motriz K = Ke = Kt = 0.01 N-m/A, resistencia de armadura R = 1 ohm e inductancia de armadura L = 0.5 H. Cabe anotar que el motor de este ejemplo no es el servomotor que estamos usando para implementar los sistemas de control de los procesos descritos en

132

Control Optimo

+ V I

L + . e=K -

T . b J b

Figura 4.3: Proceso motor D.C. el cap tulo 3. La diferencia entre un motor y un servomotor es subjetiva. Generalmente se asocia a los servomotores con sistemas de control donde la potencia involucrada es peque na. Sin embargo, existen muchas excepciones. Suponiendo que el rotor del motor y su eje son cuerpos r gidos, la din amica que describe al proceso motor D.C. es: + b = KI J dI L + RI = V K dt donde V es la fuente de voltaje de entrada, es la posici on angular del eje, I es la orico y e = Ke es la corriente de armadura, T = Kt I es el torque mot fuerza contraelectromotriz. Dise nar el controlador o ptimo estacionario que estabilice la velocidad angular del eje del motor a 1 rad/s con las especicaciones siguientes: tiempo de estabilizaci on menor que 2 s, error en estado estable menor al 1 % y sobreimpulso de la salida menor al 5 %. Soluci on: Empleando la transformada de Laplace, la funci on de transferencia del motor cuando la salida es la posici on, resulta: K = V s[(Js + b)(Ls + R) + K 2 ] la cual posee comportamiento integral. Cuando la salida es la velocidad, la funci on de transferencia es: K = V (Js + b)(Ls + R) + K 2 en la que podemos observar que no posee comportamiento integral. Eligiendo y x2 = I , las ecuaciones de estado y de salida resultan: x1 = x 1 x 2 =
b J K L K J R L

x1 x2

1 L

4.5 Selecci on de las Matrices de Ponderaci on x1 x2

133

y = x1 =

1 0

+ DV ;

D = [0]

El programa ejem4 1.m resuelve el problema planteado y los resultados se muestran en la gura 4.4.
% ejem4_1.m SOLUCION DEL EJEMPLO 4.1 clear all J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5; A = [-b/J K/J -K/L -R/L]; B = [0;1/L]; Cc = [1 0]; Dc = [0]; % VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD M = [B A*B]; N = [Cc A*Cc]; % rank(M)=rank(N)=n=2 => c.c y c.o. [yRpta,xr] = step(A,B,Cc,Dc); % RESPUESTA AL ESCALON T = 0.05; % SELECCIONADO CON LA INFORMACION ANTERIOR [G,H,C,D] = c2dm(A,B,Cc,Dc,T,zoh); % CONVERSION A DISCRETO Q = [100 0;0 1]; R = [0.1]; % MATRICES DE PONDERACION [K,P,E] = dlqr(G,H,Q,R); k1 = K(1); % GANANCIA OPTIMA K g = 1/(C*inv(eye(2)-G+H*K)*H*k1); % CORRECCION DE r(k) x = [0;0]; N = 60; % CONDICION INICIAL for k=1:N r=1*g; V(k) = -K*x + k1*r; x = G*x + H*V(k); y(k) = x(1); end % GRAFICOS r = linspace(0,T*N,size(yRpta,1)); subplot(3,1,1) plot(r,yRpta); ylabel(yRpta (rad/s)); grid; t = linspace(0,T*N,N); subplot(3,1,2) plot(t,y); ylabel(y (rad/s)); grid; subplot(3,1,3) plot(t,V); ylabel(V (voltios)); grid; xlabel(Tiempo (s)) print -deps -f ejem4_1 % CALCULO RECURSIVO DE LA MATRIZ Pr Y CALCULO DE Kr T = 15; Pr = zeros(2,2); for i=1:T Pr = Q + G*Pr*G - G*Pr*H*inv(R+H*Pr*H)*H*Pr*G;

134
end Kr = inv(R + H*P*H)*H*P*G; % SE CUMPLE QUE K=Kr Y P=Pr
yRpta (rad/s) 0.1

Control Optimo

0.05 0 0

0.5

1.5

2.5

1.5 y (rad/s) 1 0.5 0 0 0.5 1 1.5 2 2.5 3

40 V (voltios)

20 0 0

0.5

1.5 Tiempo

2 (s)

2.5

Figura 4.4: Respuesta yRpta (a lazo abierto) del motor D.C. a un escal on de 1 rad/s. La velocidad angular controlada es y ; la se nal de control es V . Ejemplo 4.2 Determine el controlador o ptimo cuadr atico estacionario que estabilice la posici on angular del eje del motor (descrito en el ejemplo 4.1) a 1 rad, con las especicaciones siguientes: tiempo de estabilizaci on menor que 2 s, error en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %. , x2 = I y Soluci on: Eligiendo x1 = salida resultan: K b x 1 J J R x 2 = K L L x 3 1 0 y = x3 = 0 0 1 x3 = , las ecuaciones de estado y de

x1 0 0 1 V 0 x2 + L x3 0 0 x1 x2 + DV ; D = [0] x3

4.5 Selecci on de las Matrices de Ponderaci on

135

El programa ejem4 2.m resuelve el problema planteado y los resultados se muestran en la gura 4.5.
% ejem4_2.m SOLUCION DEL EJEMPLO 4.2 clear all J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5; A = [-b/J K/J 0 -K/L -R/L 0 1 0 0]; B = [0;1/L;0]; Cc = [0 0 1]; Dc = [0]; % VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD M = [B A*B A^2*B]; N = [Cc A*Cc A^2*Cc]; % rank(M) = rank(N) = n = 3 => c.c y c.o. T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1 [G,H,C,D] = c2dm(A,B,Cc,Dc,T,zoh); % CONVERSION A DISCRETO Q = [0.1 0 0;0 0.1 0;0 0 300]; R = [0.1]; % MATRICES DE PONDERACION [K,P,E] = dlqr(G,H,Q,R); k3 = K(3); % GANANCIA OPTIMA K g = 1/(C*inv(eye(3)-G+H*K)*H*k3); % CORRECCION DE r(k) % COMO g = 1 NO SE REQUIERE FACTOR DE CORRECCION x = [0;0;0]; N = 60; % CONDICION INICIAL for k=1:N r=1; V(k) = -K*x + k3*r; x = G*x + H*V(k); y(k) = x(3); end % GRAFICOS t = linspace(0,T*N,N); subplot(2,1,1) plot(t,y); ylabel(y (rad)); grid; subplot(2,1,2) plot(t,V); ylabel(V (voltios)); grid; xlabel(Tiempo (s)) print -deps -f ejem4_2 % CALCULO RECURSIVO DE LA MATRIZ Pr Y CALCULO DE Kr T = 20; Pr = zeros(3,3); for i=1:T Pr = Q + G*Pr*G - G*Pr*H*inv(R+H*Pr*H)*H*Pr*G; end Kr = inv(R + H*P*H)*H*P*G; % SE CUMPLE QUE K=Kr Y P=Pr

136
1.5

Control Optimo

y (rad)

0.5

0 0

0.5

1.5

2.5

60 40 20 0 20 0

V (voltios)

0.5

1.5 Tiempo

2 (s)

2.5

Figura 4.5: Salida controlada y (posici on angular) y se nal de control V para el motor D.C.

4.6.

Dise no del Observador Optimo Cuadr atico

En muchos casos pr acticos, s olo unas cuantas variables del vector de estado x(k ) del proceso son susceptibles de ser medidas en forma directa. En tales situaciones necesitamos estimar dicho vector de estado; es decir, (k ). Esto puede lograrse requerimos hallar un vector de estado estimado x mediante el empleo de un observador discreto de estados. El dise no de dicho observador implica determinar su matriz de ganancia Ke , que puede ser calculada a partir de la minimizaci on de una funci on de costo cuadr atica. El diagrama de bloques del observador de estados se representa en la gura 4.6, donde podemos notar que el observador emplea las mediciones de la salida y(k ) y de la se nal de control u(k ). De la gura 4.6 podemos formular: x(k + 1) = Gx(k ) + H u(k ) y(k ) = C x(k ) mientras que la ecuaci on del observador toma la forma: (k )] (k + 1) = Gx (k ) + H u(k ) + Ke [y(k ) C x x (4.26) (4.24) (4.25)

4.6 Dise no del Observador Optimo Cuadr atico


u (k) H + + G
^ y(k) y(k)

137
y(k)

x (k) I z 1 C

Ke + H + + + G I z 1
^ x (k)

Figura 4.6: Diagrama de bloques del observador de estados (k ) es el vector de estado estimado de dimensi (k ) representa donde x on n, y el vector de salida estimado de dimensi on m, Ke es la matriz de ganancia de realimentaci on del observador con dimensi on n m y C es la matriz de salida de dimensi on m n. Reemplazando la ecuaci on (4.25) en (4.26) y restando la ecuaci on resultante de (4.24), podemos obtener la ecuaci on del error del observador: e(k + 1) = [G Ke C ]e(k ); (k ) e(k ) = x(k ) x (4.27)

mientras que su ecuaci on caracter stica toma la forma: det[zI G + Ke C ] = 0 (4.28)

en donde la matriz Ke debe ser escogida apropiadamente para que el error tienda a cero con una velocidad adecuada. Cabe mencionar tambi en que las ra ces de dicha ecuaci on caracter stica deben posicionarse dentro del c rculo unitario para operaci on satisfactoria del observador. El observador que nos ocupa requiere que el proceso sea completamente observable; es decir, que cualquier estado inicial pueda determinarse a partir de la observaci on de los vectores de salida y de control, en un n umero nito de per odos de muestreo. Ya es conocido que el criterio para observabilidad completa requiere construir la siguiente matriz de observabilidad: N = [ CT GT C T (GT )n1 C T ] (4.29)

138

Control Optimo

La condici on necesaria y suciente para que el sistema sea completamente observable es que la matriz N posea rango n (rango completo). Es decir, el rango de N debe ser igual al orden del proceso. Para calcular la matriz Ke podemos proceder en la misma forma en que lo hicimos con la matriz de ganancia K del controlador; es decir, podemos utilizar las ecuaciones que describen al sistema de control optimo, convenientemente modicadas, para que nos permitan calcular Ke . El procedimiento es como sigue. Dado que el determinante de una matriz y el de su transpuesta son iguales, podemos modicar la forma de la ecuaci on (4.28) como sigue:
T det[zI G + Ke C ] = det[(zI G + Ke C )T ] = det[zI GT + C T Ke ] (4.30)

Comparando la ecuaci on caracter stica del controlador de estados (4.18) con la ecuaci on (4.30), podemos deducir que se tienen que hacer las siguientes modicaciones: G GT ; H CT ;
T K Ke

(4.31)

Empleando tales modicaciones en las estructuras de la ecuaci on de estado del proceso x(k +1) = Gx(k )+H u(k ), de su ecuaci on de salida y(k ) = C x(k ) y de su ley de control u(k ) = K x(k ), obtendremos la siguiente ecuaci on de estado: (4.32) (k + 1) = GT (k ) + C T (k ) con una ley de control que posee la forma siguiente:
T (k ) (k ) = Ke

(4.33)

Empleando las ecuaciones (4.32) y (4.33) en la funci on de costo siguiente: J= 1 2

T (k )Qe (k ) + T (k )Re (k )
k=0

(4.34)

entonces la correspondiente ecuaci on de Riccati toma la forma: Pe = Qe + GPe GT GPe C T [Re + CPe C T ]1 CPe GT y la matriz de ganancia Ke viene dada por: Ke = [Re + CPe C T ]1 CPe GT (4.36) (4.35)

4.7 El Regulador Optimo Proporcional Integral

139

Para determinar Pe a partir de la ecuaci on (4.35), empleamos el mismo procedimiento que para determinar P (secci on 4.3). Es decir, para calcular on recursiva: Pe , utilizaremos la siguiente ecuaci Pe (k + 1) = Qe + GPe (k )GT GPe (k )C T [Re + CPe (k )C T ]1 CPe (k )GT (4.37) Ejemplo 4.3 Dise nar un observador o ptimo para el proceso motor D.C. del ejemplo 4.2 asumiendo que se requiere observar los estados x1 , x2 y x3 . Soluci on: Ver programa ejem4 3.m. En la gura 4.3 se muestra la evoluci on de los valores de algunos elementos de Pe hasta alcanzar el estado de equilibrio.
% ejem4_3.m OBSERVADOR OPTIMO PARA EL MOTOR D.C. clear all J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5; A = [-b/J K/J 0 -K/L -R/L 0 1 0 0]; B = [0;1/L;0]; Cc = [0 0 1]; Dc = [0]; T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1 [G,H,C,D] = c2dm(A,B,Cc,Dc,T,zoh); % CONVERSION A DISCRETO Pe =zeros(3,3); % condicion inicial Qe = [1 0 0;0 1 0;0 0 1]; Re = [1]; % TODOS CON IGUAL PESO for k=1:40 Pe = Qe + G*Pe*G - G*Pe*C*inv(Re + C*Pe*C)*C*Pe*G; pe11(k) = Pe(1,1); pe21(k) = Pe(2,1); pe31(k) = Pe(3,1); end t = linspace(0,length(pe11),length(pe11)); % EJE DE TIEMPOS plot(t,pe11,t,pe21,--,t,pe31,-.); xlabel(Muestras k); ylabel(Algunos elementos de Pe); grid print -deps -f ejem4_3 Ke = inv(Re + C*Pe*C)*C*Pe*G; % GANANCIA DEL OBSERVADOR

4.7.

El Regulador Optimo Proporcional Integral

Generalmente es necesario a nadir acci on integral, al regulador proporcional visto en la secci on anterior, debido a que errores de estado permanente

140
1.8 1.6 1.4 Algunos elementos de Pe 1.2 1 0.8 0.6 0.4 0.2 0 0

Control Optimo

10

15

20 Muestras

25 k

30

35

40

Figura 4.7: Algunos elementos de Pe : Pe (1, 1) (curva s olida), Pe (2, 1) (curva en trazos) y Pe (3, 1) (curva con puntos y rayas).

pueden aparecer si los par ametros del proceso o su estructura (su ecuaci on de estado) no han sido estimados con suciente exactitud. Para procesos que no poseen propiedades integradoras, la inclusi on de acci on integral en el sistema de control permite obtener un error estacionario nulo. La gura 4.8 ilustra un regulador o ptimo (propuesto en [3]) para sistemas univariables, que incluye dicha acci on integral en el sistema de control: un integrador con nal de se nal de salida v (k ) y una ganancia integral KI asociada. Siendo la se
r(k) + + + I z1 K v(k) KI + u (k) H + + G I z1 x (k) C y (k)

Figura 4.8: El regulador proporcional integral. referencia r(k) un escal on unitario, de la gura 4.8 podemos deducir que las

4.7 El Regulador Optimo Proporcional Integral ecuaciones de estado y de salida del proceso son: x(k + 1) = Gx(k ) + Hu(k ) y (k ) = C x(k ) La se nal de control u(k ) viene dada por: u(k ) = K x(k ) + KI v (k ) donde la matriz de ganancia del controlador es: K= K1 K2 Kn

141

(4.38) (4.39)

(4.40)

(4.41)

La ecuaci on para el integrador resulta: v (k ) = v (k 1) + r(k ) y (k ) de donde se obtiene: v (k + 1) = v (k ) + r(k + 1) y (k + 1) = v (k ) + r(k + 1) C [Gx(k ) + Hu(k )] = (1 CHKI )v (k ) + (CG + CHK )x(k ) + r(k + 1) (4.43) Empleando las ecuaciones (4.38) y (4.40) obtenemos: x(k + 1) = Gx(k ) + H [K x(k ) + KI v (k )] = (G HK )x(k ) + HKI v (k ) y de las ecuaciones (4.43) y (4.44) y (4.39) deducimos: x(k + 1) v (k + 1) = G HK HKI CG + CHK 1 CHKI y (k ) = C 0 x(k ) v (k ) x(k ) v (k ) + 0 1 r(k + 1) (4.45) (4.46) (4.44) (4.42)

En el estado de equilibrio (para k ), los valores de x(k ), u(k ) y v (k ) toman valores estacionarios x(), u() y v (). As la ecuaci on (4.45) se convierte en: x() v () = G HK HKI CG + CHK 1 CHKI x() v () + 0 r (4.47)

142 Si denimos: x(k ) x() = xe (k ) v (k ) v () = ve (k )

Control Optimo

(4.48) (4.49)

y restamos ahora la ecuaci on (4.47) de (4.45), y luego usando las relaciones (4.48) y (4.49) obtendremos: xe (k + 1) ve (k + 1) = = G HK HKI CG + CHK 1 CHKI xe (k ) ve (k ) + H CH xe (k ) ve (k ) xe (k ) ve (k ) (4.50)

G 0 CG I

K KI

La ecuaci on (4.50) puede ser escrita como: (k ) + Hw (k ) (k + 1) = G (k ) w(k ) = K donde: (k ) = (k ) = G (k ) = H (k ) = K xe (k ) ve (k ) G 0 CG I H CH K KI (4.53) (4.54) (4.55) (4.56) (4.51) (4.52)

Observar que la inclusi on de un integrador en el sistema de control aumenta en uno el orden del sistema; es decir, si n es el orden del sistema original, el nuevo orden del sistema con un integrador es (n + 1). En otras palabras, el vector de estado x(k ) del sistema original posee dimensi on n, mientras que el vector de estado (k ) del regulador proporcional integral posee dimensi on (n + 1). Teniendo en mente las relaciones anteriores, podemos denir la siguiente funci on de costo: 1 J= 2
k=0

(k ) + w2 (k )R (k )T Q

(4.57)

4.7 El Regulador Optimo Proporcional Integral

143

adecuada de forma tal que miniDebemos entonces calcular una matriz K mice la funci on de costo dada en la ecuaci on (4.57). Empleando el mismo procedimiento usado en la secci on 4.3, es posible formular la ecuaci on de para el regulador, como Riccati y la ecuaci on de ganancia del controlador K sigue: G G T P H [R +H TP H ]1 H TP G =Q +G T P (4.58) P H ]1 H TP G = [R +H TP K (4.59)

La selecci on del tiempo de muestreo se trata en la subsecci on 4.9.6. Ejemplo 4.4 Dise nar el regulador proporcional integral o ptimo estacionario que sea capaz de estabilizar la velocidad angular del eje del motor (descrito en el ejemplo 4.1) a 1 rad/s, con las especicaciones siguientes: tiempo de estabilizaci on menor que 2 s, error en estado estable menor al 1 % y sobreimpulso de la salida menor al 5 %. Soluci on: El programa ejem4 4.m resuelve el problema y sus resultados se muestran en la gura 4.9.
% ejem4_4.m SOLUCION DEL EJEMPLO 4.4 clear all J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5; A = [-b/J K/J -K/L -R/L]; % orden n=3 B = [0;1/L]; Cc = [1 0]; Dc = [0]; % VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD M = [B A*B]; N = [Cc A*Cc]; % rank(M) = rank(N) = n = 2 % LUEGO EL SISTEMA ES COMPLETAMENTE CONTROLABLE Y OBSERVABLE T = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1 [G,H,C,D] = c2dm(A,B,Cc,Dc,T,zoh); % CONVERSION A DISCRETO Gtilde = [G zeros(2,1) -C*G eye(1,1)]; % DEBE SER DE ORDEN n+1=4 Htilde = [H -C*H]; Q = [1 0 0;0 0.1 0;0 0 2]; R = [0.01]; % MATRICES DE PONDERACION [Ktil,Ptil,E] = dlqr(Gtilde,Htilde,Q,R); % Ktil: GANANCIA OPTIMA K = [Ktil(1) Ktil(2)]; KI = -Ktil(3); x = [0;0]; yi=0; v=0; % CONDICIONES INICIALES N = 60; r=1; % RESPUESTA AL ESCALON r=1

144

Control Optimo

for k=1:N v = v + r - yi; V(k) = -K*x + KI*v; x = G*x + H*V(k); y(k) = x(1); yi = y(k); end % GRAFICOS t = linspace(0,T*N,N); subplot(2,1,1) plot(t,y); ylabel(y (rad/s)); grid; subplot(2,1,2) plot(t,V); ylabel(V (voltios)); grid; xlabel(Tiempo (s)) print -deps -f ejem4_4 % CALCULO RECURSIVO DE LA MATRIZ Ptilde Y CALCULO DE Ktilde T = 15; Ptilde = zeros(3,3); for i=1:T Ptilde = Q + Gtilde*Ptilde*Gtilde - Gtilde*Ptilde*Htilde*... inv(R+Htilde*Ptilde*Htilde)*Htilde*Ptilde*Gtilde; end Ktilde = inv(R + Htilde*Ptilde*Htilde)*Htilde*Ptilde*Gtilde; % SE CUMPLE QUE Ktil = Ktilde Y Ptil = Ptilde
1.5

y (rad/s)

0.5

0 0

0.5

1.5

2.5

25 20 15 10 5 0

V (voltios)

0.5

1.5 Tiempo

2 (s)

2.5

Figura 4.9: Salida controlada y y se nal de control V para el ejemplo 4.4.

4.8 Procedimiento de Dise no e Implementaci on

145

4.8.

Procedimiento de Dise no e Implementaci on

El procedimiento de dise no e implementaci on en tiempo real de un sistema de control optimo cuadr atico comprende los pasos siguientes: 1) Formular el problema (determinar especicaciones de dise no). 2) Determinar el modelo matem atico del proceso a controlar (secciones 3.1 y 3.2) y determinar si es completamente controlable y completamente observable (secci on 2.3.6). de control (secci 3) Calcular la matriz de ganancia o ptima K on 4.7). on 4.3). 4) Calcular la matriz de ganancia o ptima Ke del observador (secci 5) Simular el sistema de control o ptimo cuadr atico. 6) Implementar el hardware del sistema (subsecci on 4.9.6). 7) Implementar el software del sistema (subsecci on 4.9.7). 8) Realizar pruebas de funcionamiento (obtener resultados experimentales satisfactorios).

4.9.

Control Optimo Cuadr atico del P endulo Invertido

En esta secci on nos ocuparemos del dise no del control o ptimo cuadr atico del proceso p endulo invertido empleando el procedimiento de dise no descrito en la secci on 4.8.

4.9.1.

Formulaci on del Problema

Dado el proceso p endulo invertido, conformado por una varilla montada en un carro impulsado por un servomotor D.C. controlado por voltaje de armadura, se desea dise nar un servocontrolador que sea capaz de mantener el p endulo invertido en posici on vertical (tanto como sea posible), y al mismo tiempo, mantener el carro en una posici on referencial. En el problema planteado, el p endulo se mueve en el mismo plano que la trayectoria del carro. El sistema de control ser a dise nado empleando la t ecnica de control

146

Control Optimo

optimo cuadr atico y la conguraci on de un servosistema. La entrada al proceso (la se nal de control) es el voltaje de armadura del servomotor D.C. y las salidas del servosistema son la posici on angular del p endulo y la trayectoria horizontal del carro. Se desea un tiempo de estabilizaci on de la posici on del carro de aproximadamente 6 segundos con el menor sobreimpulso posible. Cabe anotar que para alcanzar las especicaciones de dise no planteadas, se requiere seleccionar adecuadamente las matrices de ponderaci on, como veremos m as adelante.

4.9.2.

El Modelo del Proceso a Controlar

La determinaci on del modelo matem atico del proceso p endulo invertido fue tratado con amplitud en la secci on 3.1. Para una frecuencia de muestreo de 200 Hz y asumiendo retenci on de memoria de orden cero, la ecuaci on de estado discreta del proceso y su ecuaci on de salida se determinan como sigue:
% PARAMETROS DEL PROCESO mc = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81; lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741; Jm = 1.9596e-6; Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2; Jeq = Jm + n^2*(Jo + Jp); Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo; Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9; M1 = mc + me + mv; M2 = me*le + mv*lv/2; J1 = Je + Jv; J2 = Jeq/(n^2*rp^2); Kx = Km/(Ra*n*rp); Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra); d = ((M1+J2)*J1-M2^2); a21 = (M1+J2)*M2*g/d; a24 = Bx*M2/d; a41 = -M2^2*g/d; a44 = -J1*Bx/d; b21 = -Kx*M2*KA/d; b41 = J1*Kx*KA/d; % MODELOS LINEALES CONTINUO Y DISCRETO A = [0 1 0 0 a21 0 0 a24 0 0 0 1 a41 0 0 a44]; B = [0 b21 0 b41]; Cc = [0 0 1 0]; % SALIDA: POSICION DEL CARRO

4.9 Control Optimo Cuadr atico del P endulo Invertido


Ts = 1/200; % TIEMPO DE MUESTREO [G,H] = c2d(A,B,Ts); 1,0002 0,0995 G= 0,0000 0,0019 0,0050 1,0002 0,0000 0,0000 0 0 1,0000 0 0,0002 0,0963 ; 0,0049 0,9508 0,0004 0,1497 H= 0,0002 0,0765

147

C=

0 0 1 0

4.9.3.

C alculo de la Matriz de Ganancia del Controlador

En la secci on 4.7 vimos que la estructura del servosistema a emplear en el dise no del controlador o ptimo se describe mediante las ecuaciones (4.51) y (4.52), a saber: (k ) + Hw (k ); (k + 1) = G donde: (k ) = G G 0 CG I ; (k ) = H H CH ; (k ) = K K KI (k ) w(k ) = K

Adicionalmente debemos averiguar si el proceso es completamente controlable formando la matriz de controlabilidad M y averiguando su rango, que debe ser 5. El c alculo se realiza como sigue:
G1 = [G zeros(4,1) -Cc*G 1]; H1 = [H;-Cc*H]; % MATRIZ DE CONTROLABILIDAD M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1]; rM = rank(M); % rM = 5 => COMPLETAMENTE CONTROLABLE G= 1,0002 0,0995 0,0000 0,0019 0,0000 0,0050 1,0002 0,0000 0,0000 0,0000 0 0 1,0000 0 1,0000 0,0002 0,0963 0,0049 0,9508 0,0049 0 0 0 0 1,0000 ; H= 0,0004 0,1497 0,0002 0,0765 0,0002

148

Control Optimo

del controlador de realimentaci Para determinar la matriz de ganancia K on de acuerdo a lo establecido en la secci on 4.7, seleccionamos antes las matrices yQ como sigue: de ponderaci on R 200 0 0 0 0 0 0 0 0 0 = [100]; = 0 0 100 0 0 R Q 0 0 0 0 0 0 0 0 0 0,01 observamos que se est En la matriz Q a dando mayor peso al a ngulo del p endulo (200). La posici on del carro recibe un peso de 100 mientras que al integrador se le asigna 0.01. Con el prop osito de evitar la saturaci on del amplicador, tenemos que reducir la amplitud de la se nal de entrada (o de control) a dicho amplicador, pues de otro modo se originar an efectos no toma el valor de 100, lineales indeseados en el sistema. Para tal prop osito, R dando as mayor enfasis a la se nal de control en el proceso de optimizaci on. debemos resolver la ecuaci Para calcular la matriz K on de Riccati (4.58) pero en su forma recursiva: (k )G G T P (k )H [R +H TP (k )H ] 1 H TP (k )G (4.60) (k + 1) = Q +G T P P El programa siguiente (en c odigo MATLAB) calcula el valor estacionario de (k ), donde P (0) es una condici la matriz soluci on P on inicial arbitraria:
P = zeros(5,5); for i = 1:1000 P = Q + G1*P*G1 - G1*P*H1*inv(R + H1*P*H1)*H1*P*G1 end

, H 1 H , P P , Q Q yRR . As donde G1 G obtenemos:


5 P = 10 1,3774 0,3112 0,9019 0,5082 0,0035 0,3112 0,0727 0,2107 0,1197 0,0008 0,9019 0,2107 0,9352 0,3735 0,0041 0,5082 0,1197 0,3735 0,2000 0,0015 0,0035 0,0008 0,0041 0,0015 0,0000

, podemos ahora calcular la matriz K empleando la Conocida la matriz P ecuaci on (4.59). As se obtiene:: H ]1 H TP G = [K = [R +H TP K donde: K = [7,7295 1,7311 2,9357 2,6291]; KI = [0,0097] KI ]

4.9 Control Optimo Cuadr atico del P endulo Invertido

149

4.9.4.

C alculo la Matriz de Ganancia del Observador

Previo al c alculo la matriz de ganancia del observador, debemos determinar si el proceso es completamente observable. Para ello formamos la matriz de observabilidad empleando la ecuaci on (4.29) con n = 4, como sigue:
C = [1 0 0 0 0 0 1 0]; N = [C G*C G^2*C G^3*C G^4*C]; rnN = rank(N); % debe ser rnN = 4

Para calcular la matriz de ganancia Ke del observador o ptimo (secci on 4.3), debemos seleccionar previamente las matrices de ponderaci on Re y Qe : 1 0 0 0 0 1000 0 0 Qe = 0 0 0,9 0 0 0 0 1000

Re =

1 0 0 10

Podemos observar que en la matriz Re se da un peso de 10 a la medici on de la posici on del carro, pues es m as exacta que la medici on del a ngulo, debido a que el sensor usado para medir dicho a ngulo posee un error de cuantizaci on mayor. En la matriz Qe se asigna un peso de 1000, el mayor en Qe , tanto a la velocidad angular de la varilla como a la velocidad del carro, porque estas son las variables que no son posibles de medir directamente y necesitamos que tengan una mayor inuencia en el proceso de estimaci on. Notar tambi en que la posici on del carro posee un peso de 0.9, algo menor comparado con el peso de 1 atribu do al a ngulo de la varilla, dado que el sensor de posici on del carro es m as exacto que el sensor de posici on de la varilla. Para calcular la matriz de ganancia del observador Ke calculamos previamente la matriz Pe a partir de la ecuaci on (4.37): Pe (k + 1) = Qe + GPe (k )GT GPe (k )C T [Re + CPe (k )C T ]1 CPe (k )GT El programa siguiente (en c odigo MATLAB) calcula el valor estacionario de la matriz soluci on Pe (el valor inicial de Pe es arbitrario): for i = 1:40 Pe = Qe + G*Pe*G-G*Pe*C*inv(Re+C*Pe*C)*C*Pe*G end

150 donde P e = Pe , Qe = Qe . De esta manera obtenemos:


0,0021 0 ,0640 Pe = 103 0,0003 0,0136 0,0640 9,7336 0,0397 2,2269 0,0003 0,0397 0,0047 0,0753

Control Optimo

0,0136 2,2269 0,0753 6,3346

Luego, la matriz de ganancia Ke se calcula con la ecuaci on (4.36): Ke = [Re + CPe C T ]1 CPe GT lo que resulta en:
0,7802 20,9413 Ke = 0,0752 3,7683 T 0,0185 2,8240 0,3450 4,7913

4.9.5.

Simulaci on del Sistema de Control Optimo

Con los datos determinados, podemos entrar ahora a la fase de simulaci on del sistema de control optimo cuadr atico, antes de iniciar su implementaci on en tiempo real. El siguiente programa disopt2.m, adem as de efectuar todos los c alculos anteriores, realiza la simulaci on del sistema controlado empleando una ley de control o ptima y con observaci on o ptima de estados. Es interesante anotar que el modelo del proceso empleado en la simulaci on es el modelo no lineal (3.31) discretizado directamente. Tambi en hemos a nadido sentencias para simular el efecto de saturaci on del amplicador. Como se nal de referencia se emplea un escal on de valor 1.5 m. Los resultados de la simulaci on se pueden observar en las guras 4.10, 4.11 y 4.12.
% disopt2.m SISTEMA DE CONTROL OPTIMO DEL PENDULO INVERTIDO clear all % PARAMETROS DEL PROCESO mc = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81; lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741; Jm = 1.9596e-6; Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2; Jeq = Jm + n^2*(Jo + Jp); Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo; Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9; M1 = mc + me + mv; M2 = me*le + mv*lv/2; J1 = Je + Jv; J2 = Jeq/(n^2*rp^2); Kx = Km/(Ra*n*rp); Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra);

4.9 Control Optimo Cuadr atico del P endulo Invertido


d = ((M1+J2)*J1-M2^2); a21 = (M1+J2)*M2*g/d; a24 = Bx*M2/d; a41 = -M2^2*g/d; a44 = -J1*Bx/d; b21 = -Kx*M2*KA/d; b41 = J1*Kx*KA/d; % MODELOS LINEALES CONTINUO Y DISCRETO A = [0 1 0 0 a21 0 0 a24 0 0 0 1 a41 0 0 a44]; B = [0 b21 0 b41]; Cc = [0 0 1 0]; % POSICION DEL CARRO Ts = 1/200; % TIEMPO DE MUESTREO [G,H] = c2d(A,B,Ts); G1 = [G zeros(4,1) -Cc*G 1]; H1 = [H;-Cc*H]; M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1]; rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [200 0 0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0.01]; R = [100]; P = zeros(5,5); for i=1:1000 P = Q + G1*P*G1 -G1*P*H1*inv(R+H1*P*H1)*H1*P*G1; end K1 = inv(R+H1*P*H1)*H1*P*G1; [KK,PP] = dlqr(G1,H1,Q,R); % K1=KK, P=PP K = [KK(1) KK(2) KK(3) KK(4)]; KI = - KK(5); % CALCULO DE LA GANANCIA DE UN OBSERVADOR C = [1 0 0 0 0 0 1 0]; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL Qe = [1 0 0 0 0 1000 0 0 0 0 0.9 0 0 0 0 1000]; Re = [1 0;0 10]; Pe = zeros(4,4); for i=1:40

151

152

Control Optimo

% %

Pe = Qe + G*Pe*G -G*Pe*C*inv(Re+C*Pe*C)*C*Pe*G; end KeT = inv(Re+C*Pe*C)*C*Pe*G; Ke=KeT; [KKeT,PPe] = dlqr(G,C,Qe,Re); KKe=KKeT;% Pe=PPe, Ke=KKe SIMULACION DEL SISTEMA DE CONTROL OPTIMO CONDICIONES INICIALES x1=0; x2=0; x3=0; x4=0; x5=0; xe = [0;0;0;0]; r=1.5; v=0; N = 4000; % TIEMPO EN SEGUNDOS: Ts*N for k=1:N u = -K*xe + KI*v; if(u > 1.4), u = 1.4; % PARA NO SATURAR EL SERVOMOTOR elseif(u < -1.4), u = -1.4; end xe = G*xe + u*H + Ke*([x1;x3] - C*xe); PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTE den = -M2^2*cos(x1)^2+(M1+J2)*J1; x1 = x1 + Ts*x2; x2 = x2 + ... Ts*(-M2^2*sin(x1)*cos(x1)*x2^2+M2*Bx*cos(x1)*x4 ... +M2*(M1+J2)*g*sin(x1)-M2*Kx*cos(x1)*KA*u)/den; x3 = x3 + Ts*x4; x4 = x4 + ... Ts*(M2^2*g*sin(x1)*cos(x1)+J1*M2*sin(x1)*(x2)^2 ... -J1*Bx*x4+J1*Kx*KA*u)/den; v = v + r - x3; y1(k)=x1; y2(k)=x3; U(k) =u; end GRAFICOS t = linspace(0,Ts*N,N); figure(1) plot(t,y2(1:N)); grid ylabel(Posicion del carro) xlabel(Tiempo (s)) print -deps -f spoz figure(2) plot(t,y1(1:N)); grid ylabel(Posicion angular del pendulo) xlabel(Tiempo (s)) print -deps -f spoa figure(3) plot(t,U); grid ylabel(Se~nal de control u)

4.9 Control Optimo Cuadr atico del P endulo Invertido


xlabel(Tiempo (s)) print -deps -f spou
1.6 1.4 1.2 1 Posicin del carro 0.8 0.6 0.4 0.2 0 0.2 0

153

10 Tiempo

12 (s)

14

16

18

20

Figura 4.10: Simulaci on del sistema p endulo invertido: posici on del carro.

4.9.6.

El Hardware del Sistema de Control

La gura 4.13 muestra los componentes f sicos (el hardware) del sistema de control. Tales componentes son: el proceso a controlar (p endulo invertido o gr ua-puente), los sensores de posici on, el amplicador de potencia, la tarjeta de adquisici on de datos Lab-PC+, y una computadora personal con microprocesador Pentium. El proceso p endulo invertido (o gr ua-puente) se muestra esquematizado en la gura 4.14 y comprende: Un servomotor D.C. Pittman de im an permanente de aproximadamente 350 rpm, que posee reducci on de velocidad interna y codicador optico incorporado, cuya operaci on explicaremos m as adelante. Dos poleas de radio igual a 6.48 cm, una de las cuales est a unida al eje del motor y la otra, al otro extremo de un carril. Un carril de metal por donde se desliza el carro porta-p endulo.

154
0.15

Control Optimo

0.1 Posicin angular del pndulo

0.05

0.05

0.1 0

10 Tiempo

12 (s)

14

16

18

20

Figura 4.11: Simulaci on del sistema p endulo invertido: posici on angular del p endulo.
0.7 0.6 0.5 0.4 Seal de control u 0.3 0.2 0.1 0 0.1 0.2 0

10 Tiempo

12 (s)

14

16

18

20

Figura 4.12: Simulaci on del sistema p endulo invertido: se nal de control.

4.9 Control Optimo Cuadr atico del P endulo Invertido

155

COMPUTADORA PERSONAL TARJETA LAB-PC+ SALIDAS ANALOGICAS DAC0 DAC1 PA0 . . . PA7 MUX PB PB0 . . . PB7 PC0 . . . PC6 PC7 Fs CONTADOR / TEMPORIZADOR OUTB0 AMPLIFICADOR PWM 16 bits PROCESO: PENDULO INVERTIDO / GRUA PUENTE SENSOR EN EL MOTOR SENSOR EN LA VARILLA SALIDAS

PA COMPUERTAS DIGITALES DE ENTRADA Y SALIDA

16 bits

PC

Figura 4.13: Implementaci on del sistema de control.

156

Control Optimo

SERVOMOTOR

PENDULO POLEA

CARRO CARRIL

Figura 4.14: Sistema p endulo invertido. Un carro de metal con cuatro ruedas de bronce, el cual posee una junta m ovil (para sujetar una varilla met alica por uno de sus extremos) y un codicador o ptico incorporado (ver gura 4.15). El peso total del carro es de 920 gr. El esquema del carro se muestra en la gura 4.16. Una varilla met alica de 70 cm de largo y de 64 gr que hace la funci on de p endulo.
Codificador optico Polea Alimentacion

Servomotor D.C

Reductor de velocidad

Figura 4.15: Servomotor con codicador o ptico y polea.

Los Sensores de Posici on El sistema de control posee dos sensores de posici on, uno de los cuales se encarga de medir la posici on angular del motor y el otro se encarga de medir

4.9 Control Optimo Cuadr atico del P endulo Invertido

157

Pendulo

Codificador optico

Ruedas

Figura 4.16: Esquema del carro. la posici on angular de la varilla. Cada sensor consiste de un codicador o ptico rotatorio, compuesto de un disco met alico con un n umero determinado de ranuras igualmente espaciadas y ubicadas en el per metro del disco, y un emisor-sensor optico que genera un haz de luz perpendicular al disco (ver gura 5.13).
Canal A Canal B Fuente de luz Transistor optico Eje del servomotor Disco con mascara

Figura 4.17: Codicador o ptico. El proceso de sensado es el siguiente. Al girar el disco a la misma velocidad del servomotor (o a la misma velocidad de la varilla), las ranuras

158

Control Optimo

permiten el paso de luz a trav es del disco. Dicho haz activa el transistor optico del emisor-sensor, generando un pulso de corriente que se constituye as en la entrada a un contador de pulsos. El n umero de ranuras que posee el sensor de la varilla es 256, mientras que el sensor del servomotor posee 512 ranuras. Hay que tomar en cuenta adem as que el codicador incorporado en el motor es solidario al eje primario; es decir, para obtener el a ngulo de giro en el eje de salida, se tiene que aplicar un factor de reducci on cuyo valor num erico se da en la secci on 3.2.6. El codicador o ptico da como salida un tren de pulsos con una frecuencia proporcional a la velocidad angular del disco y otro tren de pulsos desfasado en +90 o 90 grados respecto al primero, de acuerdo al sentido de giro del disco. Estos dos trenes de pulsos pasan luego a un decodicador de cuadratura LS7083 que genera las se nales Clock Up o Clock Down, seg un sea positivo o negativo el sentido de giro del disco (ver gura 5.14). Las se nales Clock Up y Clock Down alimentan a un contador Up/Down de 16 bits compuesto por 4 contadores 74LS193 de 4 bits conectados en cascada. Los dos codicadores o pticos poseen la circuiter a descrita anteriormente, de modo tal que para cada sensor tenemos una salida de 16 bits que se almacena en un registro. La selecci on entre una u otra salida binaria se realiza por medio de la habilitaci on de un registro, o mediante una se nal proveniente de la computadora personal (ver gura 4.13). En conclusi on, la cuenta almacenada en los contadores es una funci on lineal proporcional a la posici on angular del eje del disco. Para obtener la posici on angular a partir del n umero de pulsos on: NP dados por los contadores, podemos usar la siguiente relaci Para la varilla, posici on angular de la varilla: (2/256) NP . Para el motor, posici on angular del eje del motor: (2/512) NP (antes de la reducci on).

El Amplicador de Potencia Un amplicador de potencia basado en la modulaci on PWM (Pulse Width Modulation) alimenta al servomotor D.C. Este amplicador est a compuesto por un modulador PWM de baja potencia (el LM3524), una l ogica digital de disparo y un conmutador amplicador tipo H implementado con cuatro Mosfets. Tambi en existe circuiter a adicional para generar la tensi on de disparo en cada conmutador Mosfet.

4.9 Control Optimo Cuadr atico del P endulo Invertido


Clock UP 74HC Clock Down 193 Canal A LS7083 Canal B

159

4 bits Puerto digital PA 8 bits 4 bits

74HC 193

4 bits Puerto digital PB 8 bits 4 bits

74HC 193

74HC 193

Figura 4.18: Sensado de la posici on. La Tarjeta de Adquisici on de Datos Lab-PC+ La tarjeta de adquisici on de datos Lab-PC+ de National Instruments es la interfaz empleada para el env o de la se nal de control y para la adquisici on de datos. La interconexi on de la tarjeta de adquisici on de datos con el amplicador y los sensores se realiza en la forma siguiente: Puerto A: recibe los 8 bits menos signicativos del sensor. Puerto B: recibe los 8 bits m as signicativos del sensor. Puerto C: bit 1: Libre (puede ser usado para enviar datos adicionales desde la computadora) bit 2: selecciona entre el sensor de la varilla o el del motor. bit 3: reinicia (reset) los contadores. bit 7: recibe la se nal de reloj de la frecuencia de muestreo Fs generada por OUTB0. bits 0,4,5 y 6: no usados. DAC0: env a la se nal de control. OUTB0: env a la se nal de reloj de muestreo.

160 Selecci on de la Frecuencia de Muestreo

Control Optimo

Para el funcionamiento correcto del sistema de control o ptimo discreto se requiere la selecci on adecuada de la frecuencia (o per odo) de muestreo. Tal selecci on debe tomar en consideraci on la respuesta deseada del sistema de lazo cerrado y el tiempo que pueda tomar el programa para hacer todos los c alculos necesarios por cada lazo de control (y para cada per odo de muestreo). Los programas implementados tuvieron una duraci on promedio por bucle de 430 s, lo que permite procesar el sistema con frecuencias de muestreo de hasta 2,3 KHz. Como regla pr actica, podemos escoger un per odo de muestreo que sea 10 veces menor que la duraci on de un ciclo de oscilacion senoidal amortiguada de la se nal de salida del sistema en lazo cerrado (para el caso de respuesta subamortiguada). Para el caso de respuesta sobreamortiguada, podemos escoger un per odo de muestreo 10 veces menor que el tiempo de levantamiento; es decir, el tiempo transcurrido hasta que ocurra el primer cruce entre la se nal de referencia y la se nal de respuesta del sistema. Si asumimos inicialmente que las respuestas a obtener deben poseer un tiempo de levantamiento de un segundo, aplicando esta regla pr actica, tendremos que escoger un per odo de muestreo menor que 0,1 segundos; es decir, una frecuencia mayor de 10 Hz. Tomando en cuenta todas estas consideraciones se escogi o una frecuencia de muestreo de Fs = 200 Hz, o lo que es lo mismo, un per odo de muestreo de 5 ms.

4.9.7.

Implementaci on del Software de Control

La implementaci on del algoritmo de control se realiza en dos fases. En la primera, se calculan fuera de l nea (o-line) la matriz de ganancia de realimentaci on de estados K y la matriz de ganancia del observador Ke (empleando por ejemplo, MATLAB). Tales matrices se guardan en un archivo para que luego puedan ser usadas por el programa (escrito en c odigo C) que va a controlar el proceso. Todos los datos generados pueden ser almacenados en archivos para su posterior lectura, an alisis y procesamiento (por ejemplo, para generar gr acos). El Archivo de Interfaz Para facilitar el uso de la tarjeta de adquisici on de datos se crearon los a de archivos FUNC PEN.H y FUNC PEN.CPP, los cuales utilizan la librer

4.9 Control Optimo Cuadr atico del P endulo Invertido

161

funciones NI-DAQ [25], as como tambi en funciones de lectura y escritura de puertos. El archivo FUNC PEN.H consta de las siguientes funciones: CongurarHardware: inicializa la tarjeta Lab-PC+, congura los puertos y especica la frecuencia del clock de muestreo. EnviarVoltaje: restringe y env a voltajes al DAC0 del Lab-PC+. LeerSensor: adquiere datos de los puertos A y B de 8 bits cada uno y coloca un 0 o un 1 en el segundo bit del puerto C, con el n de seleccionar la lectura del sensor de la varilla o la del sensor del motor. NivelClock: lee el bit 7 del puerto C y recibe el clock de muestreo de OUTB0. ResetContadores: coloca un 1 o un 0 en el bit 3 del puerto C, con el n de borrar el contenido de los contadores de los sensores. El Programa de Control El programa de control se denomina PENDOI4.CPP. En el ambiente de trabajo de Borland C/C++, los archivos FUNC PEN.H, FUNC PEN.CPP y PENDOI4.CPP forman en conjunto el proyecto PENDOI4.PRJ. El programa PENDOI4.CPP comprende las partes siguientes: 1. Inicializaci on a ) Inicializaci on de la tarjeta de adquisici on de datos. b ) Inicializaci on de variables. c ) Establecimiento de la posici on cero del carro y de la varilla. 2. Bucle del algoritmo de control a) b) c) d) 3. Detecci on del anco de subida del clock. Medici on de las salidas. Observaci on de estados. C alculo y aplicaci on de la se nal de control.

Almacenamiento de las respuestas.

El diagrama de ujo del programa se muestra en la gura 4.19. Los programas implementados tuvieron una duraci on promedio por bucle de 430 s. A continuaci on comentamos brevemente cada uno de los puntos anteriores.

162

Control Optimo

INICIO INMICIALIZA: - TARJETA DE ADQUISICION DE DATOS - VARIABLES

BORRA CONTADORES

ESTABLECIMIENTO DE LA POSICION CERO DEL CARRO Y LA VARILLA

TIEMPO < TIEMPO LIMITE SI DETECTA FLANCO DE SUBIDA DEL PULSO DE RELOJ

NO

FIN

NO

SI MIDE SALIDAS ESTIMA ESTADOS ~ CALCULA SENAL DE CONTROL ~ COMPENSA SENAL DE CONTROL ~ ENVIA SENAL DE CONTROL ACTUALIZA VARIABLES ARCHIVA DATOS

Figura 4.19: Diagrama de ujo del programa de control.

4.9 Control Optimo Cuadr atico del P endulo Invertido Inicializaci on de la Tarjeta de Adquisici on de Datos

163

El hardware de la tarjeta Lab-PC+ se congura con la funci on para inicializaci on CongurarHardware(Fs), en donde se especica la frecuencia de muestreo Fs que debe generar. Inicializaci on de Variables Se inicializan todas las variables a utilizar en el programa y se cargan las matrices que previamente fueron calculadas. Establecimiento de la Posici on Cero del Carro y de la Varilla Se pide al usuario colocar la varilla y el carro en la posici on cero. En el caso de la varilla, esta debe colocarse en posici on vertical y hacia arriba (p endulo invertido) o hacia abajo (gr ua-puente). Con esto se consigue que el programa identique la posici on de 0 grados del p endulo y de 0 metros del carro. Realizada esta acci on, el programa pide luego colocar el p endulo o el carro en las posiciones iniciales deseadas, para inmediatamente comenzar el control. Detecci on del Flanco de Subida del Clock Detecta el anco de subida del clock mediante la funci on NivelClock, lo que nos indica el comienzo de un nuevo per odo de muestreo. Medici on de las Salidas Para obtener la posici on angular a partir del n umero de pulsos dados por los contadores, podemos usar la siguiente relaci on: Para la varilla, posici on angular de la varilla: (2/256) NP . Para el motor, posici on angular del eje del motor: (2/512) NP (antes de la reducci on). Para la lectura de los sensores tenemos que tomar en cuenta la saturaci on de los contadores, los cuales pueden guardar un valor m aximo de 65535. En el caso de la varilla, consideraremos como positivo los valores que resulten de un recorrido horario, y negativo los que resulten de un recorrido antihorario. Para este caso, los contadores no llegan a saturarse, pues a lo sumo la varilla podr a tener un recorrido de 360o , lo que corresponde

164

Control Optimo

a un incremento de 256 puntos, valor bastante lejos del valor m aximo del contador. El problema a resolver aqu es c omo reconocer si nos encontramos ante un recorrido positivo o negativo justo cuando el contador comienza a decrementar (partiendo de 0). Para resolver esta situaci on, consideraremos que estamos ante un valor negativo si el contenido de los contadores es mayor que 32768 (la mitad del valor m aximo que pueden contener). Por ejemplo, si obtenemos en el contador un valor de 65534, y como este es mayor que 32768, entonces representa una posici on negativa; su equivalente es: (6553665534) = 2. Luego, para obtener la posici on angular hacemos: 2 2/256 rad. La rutina que realiza esta lectura esta dada por:
/*lee angulo Varilla*/ contVa=LeerSensor(VARILLA); contVa=(contVa>32768)?-1*(65536-contVa):contVa; *y0=contVa*(2.*PI/256.);

en donde contVa es la variable que guarda el valor del contador e y0 guarda la posici on angular en radianes. La lectura de la posici on del carro es un caso diferente, porque a una determinada distancia de recorrido, los contadores se saturan. Para salvar este inconveniente lo que se hace es sumar los incrementos o restar los decrementos que se obtienen entre la lectura actual y la lectura anterior de los contadores. Pero adem as, previamente debemos de discernir si el valor le do del contador se trata de un incremento o un decremento. La siguiente rutina en c odigo C toma en cuenta las consideraciones anteriores:
/*lee posicion del carro*/ contC_act=LeerSensor(MOTOR); if(contC_act<contC_ant) { if((contC_ant-contC_act)>32768) *y1=y1_ant+(65536-contC_ant+contC_act)*2.*PI/512.*Nm*rp; else *y1=y1_ant-(contC_ant-contC_act)*2.*PI/512.*Nm*rp; } else { if((contC_act-contC_ant)>32768) *y1=y1_ant-(65536-contC_act+contC_ant)*2.*PI/512.*Nm*rp; else *y1=y1_ant+(contC_act-contC_ant)*2.*PI/512.*Nm*rp; } contC_ant=contC_act; y1_ant=*y1;

4.9 Control Optimo Cuadr atico del P endulo Invertido

165

en donde contC_act es el valor actual del contador, contC_ant es el valor anterior del contador, y1 es la variable que guarda la posici on actual del carro en metros e y1_ant es el valor anterior de y1. Observador de Estados de Orden Completo La ecuaci on que debemos implementar para el observador de estados de orden completo est a dada por la ecuaci on (4.31): (k )] (k + 1) = Gx (k ) + Hu(k ) + Ke [y(k ) C x x (k )): o por la ecuaci on (luego de factorizar el vector estimado x (k + 1) = (G Ke C ) x x(k ) + Hu(k ) + Ke y(k ) Para ahorrar c alculos innecesarios en el programa, podemos colocar el valor de (G Ke C ) en una sola variable que pueda ser calculada fuera de l nea (o-line), para ser luego guardada en un archivo, y antes de iniciar la rutina de control, leerla desde el programa en C. En dicho programa utilizaremos la siguiente notaci on para las variables: Xe[ ] = x (k ); Y ant[ ] = y (k 1); G KeC [ ][ ] = G Ke C

H[ ] = H; Ke[ ][ ] = Ke ; u = u(k ) La rutina en lenguaje C que implementa la ecuaci on del observador es:
/*calcula G_KeC*Xe */ for(i=0;i<=3;i++) { S=0.; for(p=0;p<=3;p++) S=G_KeC[i][p]*Xe[p]+S; G_KeCX[i]=S; } /*calcula KeYant*/ for(i=0;i<=3;i++) { S=0.; for(p=0;p<=1;p++) S=Ke[i][p]*Yant[p]+S; KeYant[i]=S; } /*calcula Xe(K+1)[i]*/ for(i=0;i<=3;i++) Xe[i]=G_KeCX[i]+H[i]*u+KeYant[i]; Yant[0]=X0; Yant[1]=X2;

166 C alculo de la Se nal de Control

Control Optimo

Para el c alculo de la se nal de control utilizaremos las ecuaciones (4.40) y (4.42), a saber: u(k ) = K x(k ) + KI v (k ) v (k ) = v (k 1) + r(k ) y (k ) En el programa en c odigo C utilizamos la siguiente notaci on: Xe[ ] = x(k ); V = v (k ); K[ ] = K; V ant = v (k 1); KI = KI ; r = r(k ); Xe[2] = y (k ) u = u(k )

Las ecuaciones (4.40) y (4.42) se representan en el programa en C por:


V=V_ant+r-Xe[2]; V_ant=V; u=KI*V-K[0]*Xe[0]-K[1]*Xe[1]-K[2]*Xe[2]-K[3]*Xe[3];

y la rutina en lenguaje C para la compensaci on de la zona muerta en el motor est a dada por:
if(u <0) if(u >0) if(u==0) v=-DeadZone; v=+DeadZone; v=0.;

Para aplicar la se nal de control emplearemos:


Enviarvoltaje(u+v+offset);

Almacenamiento de las Respuestas Las respuestas hasta aqu obtenidas se guardan cada una en una matriz; luego cada matriz es almacenada en un archivo para su posterior lectura, an alisis y procesamiento. Listado de los Programas Fuente
/*FUNC_PEN.H Funciones para manejar la tarjeta de adquisicion de datos Lab-PC+ en conjunto con la interfaz del sistema del pendulo invertido*/ #if !defined (__FUNC_PEN_H) #define __FUNC_PEN_H void ConfigurarHardware (float); /*configurar hardware y establecer la frecuencia del clock de

4.9 Control Optimo Cuadr atico del P endulo Invertido


la tarjeta de interfaz*/ void EnviarVoltaje (float); /*env\{\i}a voltaje al DAC de la tarjeta*/ unsigned int LeerSensor(int); /*lee sensor=0 contadores del lado izquierdo lee sensor=1 contadores del lado derecho */ int NivelClock (); /*devuelve el nivel del clock 0 o 1 */ void ResetContadores(); /*resetea los contadores que estan conectados a los sensores*/ #endif /*FUNC_PEN.CPP Trabaja en conjunto con FUNC_PEN.H */ #include "func_pen.h" #include "nidaq.h" #include <dos.h> #define DAC0 0x264 #define PORTA 0x270 #define PORTB 0x271 #define PORTC 0x272 void ConfigurarHardware (float frec) { int periodoTimer, deviceCode; periodoTimer = (int)(2000000/frec);

167

USE_LAB(); /*esta funcion ayuda a mantener el tama~no de la aplicacion en DOS ante un mayor crecimiento debido a la inclusion de porciones de la libreria NI-DAQ que no son necesarias para el dispositivo de adquisicion que se esta utilizando */ Init_DA_Brds(1,&deviceCode); /*inicializa el hardware y el software de la libreria NI-DAQ deviceNumber = 1 deviceNumberCode devuelve el tipo del dispositivo inicializado */ ICTR_Setup(1,0,3,periodoTimer,1); /*deviceNumber = 1 ctr = 0 => clock de muestreo timer0 MODE = 3 => selecciona onda cuadrada con duty cycle de 50 % COUNT = periodoTimer => periodo de la onda binBcd = 1 => selecciona el contador binario de 16-bits */

168

Control Optimo

outportb(0x273, 0x9A); /*setea el DIGITAL CONTROL REGISTER (273H) y configura los ports como: PA:INPUT PB:INPUT PC0 ... 3:OUTPUT PC4 ... 7:INPUT */ } void EnviarVoltaje (float v) { unsigned salidaDigital; /*restringe el voltaje de entrada al driver */ if(v<0.) v = 0.8; if(v>3.7) v = 3.7; salidaDigital = (unsigned) (409.6*v+0.5); outport(DAC0,salidaDigital);//ESCRIBE salidaDigital EN DAC0 } unsigned int LeerSensor(int sensor) { unsigned char byteH,byteL; if(sensor) outportb(PORTC,inportb(PORTC)&251); //PC2 = 0 selecciona contador derecho else outportb(PORTC,inportb(PORTC)|4); //PC2 = 1 selecciona contador izquierdo byteL = inportb(PORTA);//Lee PORT A byteH = inportb(PORTB);//Lee PORT B return (256*byteH+byteL); } int NivelClock() { unsigned char bytePoll; bytePoll = inportb (PORTC); //lee PORTC return (bytePoll>127);//valida solo PC7 (clk de la tarjeta-OUTB0) //(pooling) } void ResetContadores()

4.9 Control Optimo Cuadr atico del P endulo Invertido


{ outportb(PORTC,inportb(PORTC)|8); for(int i=0;i<10000;i++); outportb(PORTC,inportb(PORTC)&(255-8)); }

169

/*PENDOI4.CPP Programa principal: pendulo invertido con estimacion de estados de orden completo. El programa carga los datos del archivo pendoi.dat*/ #include <assert.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include <time.h> #include "func_pen.h" #define #define #define #define #define #define #define #define #define #define #define #define #define #define PI M_PI IZQ 0 DER 1 VARILLA IZQ MOTOR DER A_RADIANES 2.*PI/512. Nm 1/19.741 rp 0.0648 Fs 200. Ts (1./Fs) tsimul 60. DeadZone 0.1 offset 2.29 //2.36 SP 1.5

float G_KeC[4][4],H[4]; float K[4],KI,Ke[4][2]; float r=0.; float Xe[4]={0,0,0,0},Xe_a[4]={0,0,0,0}; float y0,y1; float u=0.; void inicializaMatrices() {

170

Control Optimo

char ruta[]="C:\\user\\leonardo\\datos\\pendoi.dat"; int i,j; FILE *pfichero; pfichero=fopen(ruta,"rt"); if (pfichero == NULL) printf("No se puede abrir\n"); for(i = 0;i <= 3;i++) { for(j = 0;j <= 3;j++) fscanf(pfichero,"%f",&G_KeC[i][j]); } for(i = 0;i <= 3;i++) fscanf(pfichero,"%f",&H[i]); for(i = 0;i <= 3;i++) fscanf(pfichero,"%f",&K[i]); fscanf(pfichero,"%f",&KI); for(i = 0;i <= 3;i++) { for(j = 0;j <= 1;j++) fscanf(pfichero,"%f",&Ke[i][j]); } fclose(pfichero); Xe[0] = 0.; Xe[1] = 0.; Xe[2] = 0.; Xe[3] = 0.; clrscr(); for(i = 0;i <= 3;i++) { for(j = 0;j <= 3;j++) printf("%f ",G_KeC[i][j]); printf("%f\n",G_KeC[i][3]); } for(i = 0;i <= 3;i++) printf("%f\n",H[i]); for(i = 0;i <= 3;i++) printf("%f\t",K[i]); printf("\n%f",KI); printf("\n"); for(i = 0;i <= 3;i++) { for(j = 0;j <= 1;j++) printf("%f\t",Ke[i][j]);

4.9 Control Optimo Cuadr atico del P endulo Invertido


printf("\n"); } } void MideSalidas(float *y0,float *y1) { static float y1_ant = 0.; static unsigned contC_ant = 0; unsigned contVa,contC_act; int contVa1; /*lee angulo Varilla*/ contVa = LeerSensor(VARILLA); contVa1 = (contVa>32768) ? -1*(65536-contVa):contVa; *y0 = contVa1*(2.*PI/256.); //angulo de la varilla en radianes /*lee posicion del carro*/ contC_act = LeerSensor(MOTOR); if(contC_act < contC_ant) { if((contC_ant-contC_act) > 32768) *y1 = y1_ant+(65536-contC_ant+contC_act)*A_RADIANES*Nm*rp; else *y1 = y1_ant-(contC_ant-contC_act)*A_RADIANES*Nm*rp; } else { if((contC_act-contC_ant) > 32768) *y1 = y1_ant-(65536-contC_act+contC_ant)*A_RADIANES*Nm*rp; else *y1 = y1_ant+(contC_act-contC_ant)*A_RADIANES*Nm*rp; } contC_ant=contC_act; y1_ant=*y1; } void EstimaEstados(float X0,float X2) /*recibe X0 y X2 y encuentra Xe[]*/ { /*X1~(k) = Xe_act[0] X1~(k-1) = Xe_ant[0] X2~(k) = Xe_act[1] X2~(k-1) = Xe_ant[1] X3~(k) = Xe_act[2] X3~(k-1) = Xe_ant[2] X4~(k) = Xe_act[3] X4~(k-1) = Xe_ant[3]*/

171

172
static float Yant[]={0.,0.}; float G_KeCX[4], KeYant[4], S = 0.; int i, j, p; /*calcula G_KeC*X */ for(i = 0;i <= 3;i++) { S = 0.; for(p = 0;p <= 3;p++) S = G_KeC[i][p]*Xe[p]+S; G_KeCX[i] = S; } /*calcula KeYant*/ for(i = 0;i <= 3;i++) { S=0.; for(p = 0;p <= 1;p++) S = Ke[i][p]*Yant[p]+S; KeYant[i] = S; } /*calcula Xe(K+1)[i]*/ for(i = 0;i <= 3;i++) Xe[i] = G_KeCX[i]+H[i]*u+KeYant[i]; Yant[0] = X0; Yant[1] = X2; } /*compensa friccion estatica y de coulomb*/ const float Wth = .1; const float VcFE = .2,VcFC = .15; float CompensaFriccion(float u,float vel) { float volt = 0.; if(fabs(vel) <= Wth) {/*compensa friccion estatica*/ if(u < 0.) volt = -VcFE; if(u > 0.) volt = VcFE; } else { /*compensa friccion de coulomb*/ if (u <0.) volt = -VcFC; if (u >0.) volt = VcFC;

Control Optimo

4.9 Control Optimo Cuadr atico del P endulo Invertido


} return (u+volt); } void main() { inicializaMatrices(); float vel, yant, yact; char tecla; unsigned char ck_ant, ck_act; int n, k; float t; int c; float V,V_ant = 0.; float u_1 = 0., u_2 = 0., u_3 = 0., u_4 = 0., v = 0.; n=(int) tsimul/Ts; char tiempo[] ="c:\\user\\leonardo\\datos\\pendnio.t" ; char theta_[] ="c:\\user\\leonardo\\datos\\pendnio.th"; char v_vara[] ="c:\\user\\leonardo\\datos\\pendnio.vv"; char z_carro[] ="c:\\user\\leonardo\\datos\\pendnio.z" ; char v_carro[] ="c:\\user\\leonardo\\datos\\pendnio.vc"; char sal_var[] ="c:\\user\\leonardo\\datos\\pendnio.y0"; char sal_car[] ="c:\\user\\leonardo\\datos\\pendnio.y1"; char U_[] ="c:\\user\\leonardo\\datos\\pendnio.u"; float *u_, *x1_, *x2_, *x3_, *x4_;/**/float *y_0_, *y_1_; FILE *pfichero; assert(NULL! = (u_ =(float*)calloc(n+1,sizeof(float)))); assert(NULL! = (x1_=(float*)calloc(n+1,sizeof(float)))); assert(NULL! = (x2_=(float*)calloc(n+1,sizeof(float)))); assert(NULL! = (x3_=(float*)calloc(n+1,sizeof(float)))); assert(NULL! = (x4_=(float*)calloc(n+1,sizeof(float)))); assert(NULL! = (y_0_=(float*)calloc(n+1,sizeof(float)))); assert(NULL! = (y_1_=(float*)calloc(n+1,sizeof(float)))); if((tecla=getch()) == 27) goto FIN; ConfigurarHardware(Fs); EnviarVoltaje(offset); clrscr();

173

174

Control Optimo

printf("1) Ubicar el carro en el centro del carril\n4) Ubicar la varilla en posicion vertical y mantenerla asi hasta presionar F1\n"); while(((tecla = getch()) != 59) && (tecla != 27)) ; if(tecla == 27) goto FIN; ResetContadores(); printf("\n\nColocar la varilla en la posicion inicial deseada\n Presionar F2 para comenzar el control\n"); do { while(!kbhit()) { MideSalidas(&y0,&y1); gotoxy(5,10); printf("varilla en radianes: %f",y0); gotoxy(5,11); printf("varilla en grados : %f",y0*180./PI); } } while(((tecla = getch()) != 60)&&(tecla != 27)); if(tecla == 27) goto FIN; t = 0.; u = for(k = 0;k { if(kbhit()) { if((tecla = if(tecla == } 0.; r = 0.; <= n;)

getch()) == 27) break; 59) r = 1.5;

ck_ant = ck_act; ck_act = NivelClock(); if((ck_ant == 0) && (ck_act == 1)) { yant=y1; MideSalidas(&y0,&y1); yact=y1; if(y1 > 1.74) break; if(y1 < -0.08) break; gotoxy(5,13);printf("Tiempo: %f", t); gotoxy(5,15); printf("varilla en grados

: %f",y0*180./PI);

4.9 Control Optimo Cuadr atico del P endulo Invertido


gotoxy(5,17);printf("carro EstimaEstados(y0,y1); /*Encuentra Control*/ /*u(k+1)*/ V = V_ant+r-Xe[2]; V_ant = V;//accion integral u = KI*V-K[0]*Xe[0]-K[1]*Xe[1]-K[2]*Xe[2]-K[3]*Xe[3]; /*saturacion*/ if(u < -1.4) u = -1.4; if(u > 1.4) u = 1.4; vel = (yact-yant)/Ts/rp;//Xe_act[3]/rp; /*Compensa zona muerta*/ if(u < 0) v = -DeadZone; if(u > 0) v = +DeadZone; if(u == 0)v = 0.; EnviarVoltaje(u+v+offset); /*guarda datos en arrays*/ u_[k] = u; x1_[k] = Xe[0]; x2_[k] = Xe[1]; x3_[k] = Xe[2]; x4_[k] = Xe[3]; y_0_[k] = y0; y_1_[k] = y1; k++;t += Ts; } } FIN: EnviarVoltaje(offset); en metros : %f",y1);

175

/*guarda tiempo*/ pfichero = fopen(tiempo,"wb"); if (pfichero == NULL) printf("\nNo se puede abrir %s\n",tiempo); else { for(k = 0;k<n+1;k++) { t = k*Ts; c = fwrite(&t,sizeof(float),1,pfichero); } fclose(pfichero);

176

Control Optimo

printf("\nelementos escritos en %s:%d\n",tiempo,c); } /*guarda angulo varilla*/ pfichero = fopen(theta_,"wb"); if (pfichero == NULL) printf("\nNo se puede abrir %s\n",theta_); else { c=fwrite(x1_,sizeof(x1_),n+1,pfichero); fclose(pfichero); printf("\nelementos escritos en %s:%d\n",theta_,c); } /*guarda velocidad angular varilla*/ pfichero = fopen(v_vara,"wb"); if (pfichero == NULL) printf("\nNo se puede abrir %s\n",v_vara); else { c=fwrite(x2_,sizeof(x2_),n+1,pfichero); fclose(pfichero); printf("\nelementos escritos en %s:%d\n",v_vara,c); } /*guarda posicion del carro*/ pfichero=fopen(z_carro,"wb"); if (pfichero == NULL) printf("\nNo se puede abrir %s\n",z_carro); else { c=fwrite(x3_,sizeof(x3_),n+1,pfichero); fclose(pfichero); printf("\nelementos escritos en %s:%d\n",z_carro,c); } /*guarda velocidad del carro*/ pfichero=fopen(v_carro,"wb"); if (pfichero == NULL) printf("\nNo se puede abrir %s\n",v_carro); else { c=fwrite(x4_,sizeof(x4_),n+1,pfichero); fclose(pfichero); printf("\nelementos escritos en %s:%d\n",v_carro,c); } /*guarda y0 angulo de la varilla*/ pfichero=fopen(sal_var,"wb"); if (pfichero == NULL) printf("\nNo se puede abrir %s\n",sal_var); else {

4.9 Control Optimo Cuadr atico del P endulo Invertido

177

c=fwrite(y_0_,sizeof(y_0_),n+1,pfichero); fclose(pfichero); printf("\nelementos escritos en %s:%d\n",sal_var,c); } /*guarda y1 posicion del carro*/ pfichero = fopen(sal_car,"wb"); if (pfichero == NULL) printf("\nNo se puede abrir %s\n",sal_car); else { c=fwrite(y_1_,sizeof(y_1_),n+1,pfichero); fclose(pfichero); printf("\nelementos escritos en %s:%d\n",sal_car,c); } /*guarda y1 posicion del carro*/ pfichero = fopen(U_,"wb"); if (pfichero == NULL) printf("\nNo se puede abrir %s\n",U_); else { c=fwrite(u_,sizeof(u_),n+1,pfichero); fclose(pfichero); printf("\nelementos escritos en %s:%d\n",U_,c); } getch(); }

4.9.8.

Resultados Experimentales

Los resultados experimentales se obtuvieron con una se nal de referencia escal on de 1.5 m para la posici on del carro. Los resultados del control optimo cuadr atico del sistema de p endulo invertido con observador de orden completo se muestran en las guras: 4.20, 4.21 y 4.22. En los resultados experimentales se observa que la posici on del carro, que es la se nal de realimentaci on del servosistema, sigue a la se nal de referencia en menos de 6 segundos y con sobreamortiguamiento m nimo, tal como estaba propuesto en las especicaciones de dise no del sistema de control. La posici on angular del p endulo logra estabilizarse alrededor de cero; es decir, se llega a posicionar en forma vertical. Observar en la respuesta estacionaria, tanto en la posici on del carro como en la posici on angular del p endulo, la presencia de una oscilaci on estacionaria (ciclo l mite) que podr a reducirse usando sensores m as precisos

178

Control Optimo

posicin del carro (medicin directa) 2

1.5

posicin (m)

0.5

0.5 0

10 12 tiempo (s)

14

16

18

20

Figura 4.20: Control o ptimo del p endulo invertido: posici on del carro.
ngulo del pndulo (medicin directa) 0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 0

ngulo (rad)

10 12 tiempo (s)

14

16

18

20

Figura 4.21: Control o ptimo del p endulo invertido: posici on angular del p endulo.

4.10 Control Optimo Cuadr atico de la Gr ua-Puente


entrada 1.5

179

0.5 entrada (v)

0.5

1.5 0

10 12 tiempo (s)

14

16

18

20

Figura 4.22: Control o ptimo del p endulo invertido: se nal de control. (con un tama no de paso de detecci on menor). El algoritmo de control lineal empleado requiere que las variables no salgan de la zona lineal impuesta por el modelo lineal. Sin embargo, el sistema de control dise nado responde en forma adecuada para desviaciones de la a bastante fuera de la zona posici on de la varilla de hasta 20o , lo que est lineal impuesta por el modelo.

4.10.

Control Optimo Cuadr atico de la Gr ua-Puente

En esta secci on nos ocupamos del dise no del control o ptimo cuadr atico del proceso gr ua-puente empleando el procedimiento de dise no presentado en la secci on 4.8.

4.10.1.

Formulaci on del Problema

Dado el sistema gr ua-puente, conformado por una varilla que cuelga libremente de un carro impulsado por un servomotor D.C. controlado por su voltaje de armadura, se desea dise nar un servocontrolador que sea capaz de trasladar al carro a una posici on determinada, de manera tal que

180

Control Optimo

la oscilaci on en la varilla sea m nima. El problema en consideraci on es de dos dimensiones, dado que la varilla se balancea en el mismo plano que la trayectoria del carro. El dise no del sistema de control est a basado en la teor a de control o ptimo cuadr atico. La entrada al proceso (la se nal de control) es el voltaje de armadura del servomotor D.C. y las salidas del servosistema son la posici on angular del p endulo y la trayectoria horizontal del carro. Se desea un tiempo de estabilizaci on de la posici on del carro de aproximadamente 6 segundos con el menor sobreimpulso posible. Cabe anotar que para alcanzar las especicaciones de dise no planteadas, se requiere seleccionar adecuadamente las matrices de ponderaci on.

4.10.2.

Simulaci on del Sistema Controlado

La determinaci on del modelo matem atico del proceso gr ua-puente se trat o con amplitud en la secci on 3.2. Para una frecuencia de muestreo de 200 Hz y asumiendo retenci on de memoria de orden cero, y siguiendo el procedimiento desarrollado en las subsecciones 4.9.2, 4.9.3, 4.9.4 y 4.9.5, el siguiente programa disopt3.m determina el modelo lineal discreto, calcula las matrices de ganancia del controlador o ptimo y del observador o ptimo, y simula el sistema de control para la gr ua puente. Cabe recalcar que la simulaci on emplea el modelo no lineal de la planta. Los resultados se muestran a continuaci on del programa y los resultados gr acos se ilustran en las guras 4.23, 4.24 y 4.25.
% disopt3.m SISTEMA DE CONTROL OPTIMO PARA LA GRUA-PUENTE clear all % PARAMETROS DEL PROCESO mc = 0.92; me = 0; mv = 0.063095; mp = 0.2; g = 9.81; lv = 0.767; le = 0; rp = 0.0648; n = 1/19.741; Jm = 1.9596e-6; Je = me*le^2; Jv = mv*lv^2/3; Jo = 0; Jp = mp*rp^2/2; Jeq = Jm + n^2*(Jo + Jp); Bm = 1.8342e-6; Bo =0; Beq = Bm + n^2*Bo; Km = 31.071e-3; Kb = 31.053e-3; Ra = 7.38; KA = 14.9; M1 = mc + me + mv; M2 = me*le + mv*lv/2; J1 = Je + Jv; J2 = Jeq/(n^2*rp^2); Kx = Km/(Ra*n*rp); Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra); d = ((M1+J2)*J1-M2^2); a21 = -(M1+J2)*M2*g/d; a24 = -Bx*M2/d; a41 = -M2^2*g/d; a44 = -J1*Bx/d; b21 = Kx*M2*KA/d; b41 = J1*Kx*KA/d; % MODELOS LINEALES CONTINUO Y DISCRETO

4.10 Control Optimo Cuadr atico de la Gr ua-Puente


A = [0 1 0 0 a21 0 0 a24 0 0 0 1 a41 0 0 a44]; B = [0 b21 0 b41]; Cc = [0 0 1 0]; % POSICION DEL CARRO Ts = 1/200; % TIEMPO DE MUESTREO [G,H] = c2d(A,B,Ts); G1 = [G zeros(4,1) -Cc*G 1]; H1 = [H;-Cc*H]; M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1]; rM = rank(M); % rM=5 => COMPLETAMENTE CONTROLABLE % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [500 0 0 0 0 0 0 0 0 0 0 0 200 0 0 0 0 0 0 0 0 0 0 0 0.1]; R = [1]; P = zeros(5,5); for i=1:1000 P = Q + G1*P*G1 -G1*P*H1*inv(R+H1*P*H1)*H1*P*G1; end K1 = inv(R+H1*P*H1)*H1*P*G1; [KK,PP] = dlqr(G1,H1,Q,R); % K1=KK, P=PP K = [KK(1) KK(2) KK(3) KK(4)]; KI = - KK(5); % CALCULO DE LA GANANCIA DEL OBSERVADOR C = [1 0 0 0 0 0 1 0]; % SE OBSERVAN POSICIONES ANGULAR Y LINEAL Qe = [1000 0 0 0 0 1500 0 0 0 0 100 0 0 0 0 1500]; Re = [1 0;0 1]; Pe = zeros(4,4); for i=1:200 Pe = Qe + G*Pe*G -G*Pe*C*inv(Re+C*Pe*C)*C*Pe*G; end KeT = inv(Re+C*Pe*C)*C*Pe*G; Ke=KeT; [KKeT,PPe] = dlqr(G,C,Qe,Re); KKe=KKeT; % Pe=PPe, Ke=KKe % CONDICIONES INICIALES PARA LA SIMULACION

181

182

Control Optimo

x1=0; x2=0; x3=0; x4=0; x5=0; xe = [0;0;0;0]; r=1.5; v=0; N = 4000; % tiempo en segundos: Ts*N for k=1:N u = -K*xe + KI*v; u = -K*xe + KI*v; if(u > 1.4), u = 1.4; % para no saturar el amplific. elseif(u < -1.4), u = -1.4; end xe = G*xe + u*H + Ke*([x1;x3] - C*xe); % PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTE den = -M2^2*cos(x1)^2+(M1+J2)*J1; x1 = x1 + Ts*x2; x2 = x2 + ... Ts*(-M2^2*sin(x1)*cos(x1)*x2^2 -M2*Bx*cos(x1)*x4 ... -M2*(M1+J2)*g*sin(x1)+M2*Kx*cos(x1)*KA*u)/den; x3 = x3 + Ts*x4; x4 = x4 + ... Ts*(-M2^2*g*sin(x1)*cos(x1)-J1*M2*sin(x1)*(x2)^2 ... -J1*Bx*x4 + J1*Kx*KA*u)/den; v = v + r - x3; y1(k)=x1; y2(k)=x3; U(k) =u; end % GRAFICOS t = linspace(0,Ts*N,N); figure(1) plot(t,y2(1:N)); grid ylabel(Posicion del carro) xlabel(Tiempo (s)) print -deps -f sgoz figure(2) plot(t,y1(1:N)); grid ylabel(Posicion angular de la grua-puente) xlabel(Tiempo (s)) print -deps -f sgoa figure(3) plot(t,U); grid ylabel(Se~nal de control u) xlabel(Tiempo (s)) print -deps -f sgou

4.10 Control Optimo Cuadr atico de la Gr ua-Puente

183

0,9998 0,0972 G= 0,0000 0,0019

0,0050 0,9998 0,0000 0,0000

0 0 1,0000 0

0,0002 0,0941 ; 0,0049 0,9508

0,0004 0,1462 H= 0,0002 0,0765

C= G= 1,0002 0,0995 0,0000 0,0019 0,0000 0,0050 1,0002 0,0000 0,0000 0,0000 4 P = 10 0 0 1,0000 0 1,0000

0 0 1 0 0,0002 0,0963 0,0049 0,9508 0,0049 0 0 0 0 1,0000 ; H= 0,0004 0,1497 0,0002 0,0765 0,0002

1,9636 0,2257 3,3116 0,4202 0,0300

0,2257 0,1481 0,7068 0,2891 0,0030 = K K

3,3116 0,7068 8,5186 1,4030 0,0745 KI

0,4202 0,0300 0,2891 0,0030 1,4030 0,0745 0,5668 0,0061 0,0061 0,0013

K=

8,2596

4,3465

37,9206

10,3665]; 0,0055 1,1280 0,9936 0,6519

KI = 0,2907

1,0102 2,1836 Ke = 0,0005 0,0982

4.27 y 4.28.

4.10.3.

El Hardware y el Software del Sistema de Control

La implementaci on del hardware, as como el dise no del software del sistema de control, fueron tratadas en las subsecciones 4.9.6 y 4.9.7, respectivamente. Cabe anotar que el hardware del sistema y la estructura del software es com un, tanto para el p endulo invertido como para la gr ua-puente. Basta cambiar de signo en algunas sentencias del archivo PENDOI4.CPP (descrito en la subsecci on 4.9.7) para crear el software de control del proceso gr ua-puente.

184
1.8 1.6 1.4 1.2 Posicin del carro 1 0.8 0.6 0.4 0.2 0 0

Control Optimo

10 Tiempo

12 (s)

14

16

18

20

Figura 4.23: Simulaci on del sistema gr ua-puente: posici on del carro.


0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0

Posicin angular de la gra puente

10 Tiempo

12 (s)

14

16

18

20

Figura 4.24: Simulaci on del sistema gr ua-puente: posici on angular de la varilla.

4.10 Control Optimo Cuadr atico de la Gr ua-Puente


1.4

185

1.2

Seal de control u

0.8

0.6

0.4

0.2

0.2 0

10 Tiempo

12 (s)

14

16

18

20

Figura 4.25: Simulaci on del sistema gr ua-puente: se nal de control.


posicin del carro (medicin directa) 2

1.5

posicin (m)

0.5

0.5 0

10 12 tiempo (s)

14

16

18

20

Figura 4.26: Control o ptimo de la gr ua-puente: posici on del carro.

186

Control Optimo

ngulo de la varilla (medicin directa) 0.6

0.4

0.2 ngulo (rad)

0.2

0.4

0.6 0 2 4 6 8 10 12 tiempo (s) 14 16 18 20

Figura 4.27: Control o ptimo de la gr ua-puente: posici on angular del p endulo.


entrada 1.5

0.5 entrada (v)

0.5

1.5 0

10 12 tiempo (s)

14

16

18

20

Figura 4.28: Control o ptimo de la gr ua-puente: se nal de control.

4.11 Problemas Resueltos

187

4.10.4.

Resultados experimentales

Los resultados experimentales que se muestran a continuaci on se obtuvieron con una se nal de referencia escal on de 1.5 m para la posici on del carro. Los resultados del control o ptimo cuadr atico del sistema gr ua-puente con observador de orden completo se muestran en las guras: 4.26, Como en el caso del p endulo invertido, en los resultados experimentales se observa que la posici on del carro, que es la se nal de realimentaci on del servosistema, sigue a la se nal de referencia en menos de 6 s y con sobreamortiguamiento moderado, tal como estaba propuesto en las especicaciones de dise no del sistema de control. La posici on angular del p endulo logra estabilizarse alrededor de cero; es decir, se llega a posicionar en forma vertical hacia abajo. Igualmente, el algoritmo de control lineal empleado requiere que las variables no salgan de la zona lineal impuesta por el modelo lineal. Sin embargo, se comprob o que el sistema de control dise nado responde en forma adecuada para una desviaci on de la posici on de la varilla de 20 grados, que es bastante fuera de la zona lineal impuesta por el modelo.

4.11.

Problemas Resueltos

En la secci on problemas resueltos de los cap tulos 4 al 8, la soluci on a los problemas se encuentra, seg un el caso, en uno o m as archivos con extensi on m escritos en c odigo MATLAB. Problema 4.1 El problema 3.1 presenta las ecuaciones que gobiernan la din amica del sistema de suspensi on de un bus (ver gura 3.12). Dise nar un sistema de control optimo cuadr atico estacionario para lograr el objetivo de control siguiente: la salida del proceso y = x2 x1 (referencia nula) no debe presentar sobreimpulsos mayores que el 5 %, y luego de alrededor de 20 segundos, las oscilaciones originadas por un disturbio escal on de 10 cm (provocada por imperfecciones en la pista), pr acticamente deben desaparecer. La selecci on del tiempo de muestreo es a conveniencia del dise no.
% p3opt2.m SOLUCION DEL PROBLEMA 4.1 clear all % PARAMETROS DEL PROCESO m1 = 2500; k1 = 80000; b1 = 350; m2 = 320; k2 = 500000; b2 = 15020;

188

Control Optimo

% %

a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1; a33 = -(b1/m1+b1/m2+b2/m2); a43 = -(k1/m1+k1/m2+k2/m2); MODELO LINEAL: dx/dt = A*x + B*u + E*d; y = C*x + D*u A = [0 1 0 0 -b1*b2/(m1*m2) 0 a23 -b1/m1 b2/m2 0 a33 1 k2/m2 0 a43 0]; B = [0;1/m1;0;(1/m1+1/m2)]; E = [0;b1*b2/(m1*m2);-b2/m2;-k2/m2]; C = [0 0 1 0]; D = [0]; CONVERSION AL ESPACIO DE ESTADO DISCRETO T=0.8; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); [G,F,C,D] = c2dm(A,E,C,D,T,zoh); Contro Optimo del sistema Q = [1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]; R = [1]; ECUACION DE RICCATI P = diag(0,3); % MATRIZ DE CEROS DE ORDEN 4 for i = 1:40 P = Q + G*P*G - G*P*H*inv(R+H*P*H)*H*P*G; end CALCULO DE LA MATRIZ DE GANANCIA K K = inv(R+H*P*H)*H*P*G; SIMULACION DEL SISTEMA CONTROLADO N = 200; x=[0;0;0;0]; w=0.01; for k=1:N U=-K*x; x = G*x + H*U + F*w; y(k)=x(3); u(k)=U; end GRAFICOS t=linspace(0,N*T,N); subplot(2,1,1) plot(t,y(1:N)), grid ylabel(Posicion y (m)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(t,u(1:N)), grid

4.11 Problemas Resueltos


xlabel(Tiempo en segundos) ylabel(Control u (N)) print -deps -f p3opt2

189

5 Posicin y (m)

x 10

10 0 x 10
4

20

40

60 80 100 Tiempo en segundos

120

140

160

1 Control u (N) 0.8 0.6 0.4 0.2

0 0

20

40

60 80 100 Tiempo en segundos

120

140

160

Figura 4.29: Salida controlada y = x1 x2 y fuerza de control u correspondientes al problema 4.1.

Problema 4.2 El problema 3.2 presenta las ecuaciones que gobiernan la din amica longitudinal de un avi on comercial volando a velocidad de crucero (altura y velocidad constantes). El control del a ngulo de inclinaci on del avi on (ver gura 3.14) es un problema longitudinal a resolver. El objetivo de control es dise nar un on, controle autopiloto que manipulando el a ngulo e del deector de elevaci el angulo de inclinaci on del avi on. Se pide dise nar un sistema de control o ptimo cuadr atico estacionario que genere una fuerza de control, de modo que la salida del proceso (el a ngulo de inclinaci on ) presente un sobreimpulso menor al 10 % y un tiempo de

190

Control Optimo

estabilizaci on menor que 3 s, con error en estado estable nulo. La selecci on del tiempo de muestreo es a conveniencia del dise no.
% p4opt2 SOLUCION DEL PROBLEMA 4.2 clear all % ECUACION DE ESTADO DEL PROCESO A=[-0.313 56.7 0;-0.0139 -0.426 0;0 56.7 0]; B=[0.232;0.0203;0]; C=[0 0 1]; D=[0]; % PROCESO DISCRETO T=0.1; % TIEMPO DE MUESTREO [num1, den1]=ss2tf(A,B,C,D); [G,H]=c2d(A,B,T); [Bz,Az]=ss2tf(G,H,C,D); % CONTROL OPTIMO ESTACIONARIO CON ACCION INTEGRAL G1 = [G zeros(3,1);-C*G 1]; H1 = [H;-C*H]; % INGRESO DE PESOS Q = [1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ]; R = [1]; % EQUACION DE RICCATI P = diag(0,3); for i = 1:40 P = Q + G1*P*G1 - G1*P*H1*inv(R+H1*P*H1)*H1*P*G1; end % CALCULO DE LA GANACIA K DEL CONTROLADOR KK = inv(R+H1*P*H1)*H1*P*G1; K = [KK(1) KK(2) KK(3)]; KI = -KK(4); % SIMULACION N = 100; x=[0;0;0]; v=0; Y=0; for k=1:N r(k)=0.1; Ref=r(k); v = v + Ref - Y; U = - K*x + KI*v; x = G*x + H*U;

4.11 Problemas Resueltos


Y = C*x; y(k) = Y; u(k) = U; end % GRAFICOS t=linspace(0,N*T,N); subplot(2,1,1) plot(t,y(1:N)), grid ylabel(Inclinacion (rad)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(t,u(1:N)), grid xlabel(Tiempo en segundos) ylabel(Angulo del deflector (rad)) print -deps -f p4opt2

191

0.15 Inclinacin (rad)

0.1

0.05

0 0

4 5 6 Tiempo en segundos

10

Angulo del deflector (rad)

0.2 0.15 0.1 0.05 0 0.05 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Figura 4.30: Angulo de inclinaci on controlada y a ngulo del deector (se nal de control) correspondientes al problema 4.2.

192 Problema 4.3

Control Optimo

En el problema 3.3 se describe el proceso de la bola rodando a lo largo de una barra, con un grado de libertad, tal como se muestra en la gura 3.16. Una leva conecta la barra con un engranaje que est a accionado por un servomotor. Se desea dise nar un sistema de control o ptimo que pueda posicionar la bola en menos de 5 s a 0.5 m de un extremo de la barra que mide 1 m de longitud. Las oscilaciones de la bola deben estar restringidas sobre la barra y el voltaje de control no debe sobrepasar los 40 volt. La selecci on del tiempo de muestreo es a conveniencia del dise no.
% p5opt2.m SOLUCION DEL PROBLEMA 4.3 close all % DETERMINACION DE LA ECUACION DE ESTADO M=0.11; R=0.015; g=9.8; L=1; J=9.99*1e-6; d=0.03; A=[0 1 0 0 0 0 (M*g*d)/(L*(J/R^2 + M)) 0 0 0 0 1 0 0 0 0]; B=[0;0;0;1]; C=[1 0 0 0]; D=[0]; % PROCESO DISCRETO T=0.1; % Tiempo de muestreo [num1, den1]=ss2tf(A,B,C,D); [G,H]=c2d(A,B,T); % DETERMINAR SI EL PROCESO TIENE INTEGRADORES, % ES DECIR, SI TIENE EIGENVALORES EN z=0: % eigG = eig(G); % NO TIENE EIGENVALORES EN z=0; % ADICIONANDO ACCION INTEGRAL G1 = [G zeros(4,1);-C*G 1]; H1 = [H;-C*H]; % ANALIZAMOS SI LA PLANTA ES CONTROLABLE M=[H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1]; rM=rank(M); % rM=4 SISTEMA ES CONTROLABLE % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1e5]; R = [10];%100 % OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr [KK,P]=dlqr(G1,H1,Q,R); K = [KK(1) KK(2) KK(3) KK(4)];

4.11 Problemas Resueltos


KI = -KK(5); % SIMULACION N = 100; x=[0;0;0;0]; v=0; Y=0; for k=1:N r(k)=0.5; Ref=r(k); v = v + Ref - Y; U = - K*x + KI*v; x = G*x + H*U; Y = C*x; y(k) = Y; u(k) = U; end % GRAFICOS t=linspace(0,N*T,N); subplot(2,1,1) plot(t,y(1:N)), grid ylabel(Posicion (m)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(t,u(1:N)), grid xlabel(Tiempo en segundos) ylabel(Voltaje de control) print -deps -f p5opt2

193

Problema 4.4 La gura 3.20 muestra un monorriel de dos carros descrito en el problema 3.5. El problema a resolver es el control de velocidad del carro de m aquinas mediante un sistema de control optimo cuadr atico. Para garantizar a los pasajeros un viaje confortable, los cambios de velocidad deben realizarse con un tiempo de estabilizaci on menor que 10 segundos y con m nimo sobreimpulso. El error en estado estable debe ser nulo. Simule una se nal de referencia que cambie la velocidad de 30 a 10 m/s y demuestre que se cumplen las especicaciones de dise no. La selecci on del tiempo de muestreo es a conveniencia del dise no.
% p7opt2 SOLUCION DEL PROBLEMA 4.4 close all % PARAMETROS DEL PROCESO: M1=1300; M2=2600; M3=2600; K12=100000; K23=100000; B12=500; B23=500; B1=5000; B2=10000; B3=10000; % MODELO DEL PROCESO A=[0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0

194

Control Optimo

0.6

Posicin (m)

0.4

0.2

0 0

4 5 6 Tiempo en segundos

10

40 Voltaje de control 20 0 20 40 0

4 5 6 Tiempo en segundos

10

Figura 4.31: Posici on de la bola y el voltaje de control para el problema 4.3.

0 0 0 1 0 0 K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2 0 0 0 0 0 1 0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3]; B=[0 1 0 0 0 0]; alfa = 1; % CONSTANTE TACOMETRICA C=[ 0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa]; D=[0;0;0]; [numc,denc]=ss2tf(A,B,C,D); % MODELO LINEAL DISCRETO T = 0.2; % per odo de muestreo [G,H,C,D]=c2dm(A,B,C,D,T,zoh); % ADICIONANDO ACCION INTEGRAL G1 = [G zeros(6,1);-C(1,:)*G 1]; H1 = [H;-C(1,:)*H]; % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0

4.11 Problemas Resueltos


0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 100]; R = [10]; OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr [KK,P]=dlqr(G1,H1,Q,R); SEPARAMOS LA ACCION INTEGRAL K = [KK(1) KK(2) KK(3) KK(4) KK(5) KK(6)]; KI = -KK(7); SIMULACION N = 500; x=[0;0;0;0;0;0]; v=0; Y=0; for k=1:N r(k)=20 + 10*sign(sin(0.02*k)); Ref=r(k); v = v + Ref - Y; U = - K*x + KI*v; x = G*x + H*U; Y = C(1,:)*x; y(k) = Y; u(k) = U; end GRAFICOS t=linspace(0,N*T,N); subplot(2,1,1) plot(t,y(1:N),t,r(1:N)), grid ylabel(Velocidad (m/s)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(t,u(1:N)), grid xlabel(Tiempo en segundos) ylabel(Fuerza de control (N)) print -deps -f p7opt2

195

% %

Problema 4.5 La gura 3.22 muestra el proceso ascensor tratado en el problema 3.6. El problema a resolver es posicionar suavemente el ascensor en un piso determinado, lo que signica sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizaci on menor que 10 s. Para no saturar al actuador (el amplicador de potencia), la se nal de control debe estar dentro del rango de 200 volt. Dise nar un sistema de control o ptimo cuadr atico estacionario de posici on que cumpla las especicaciones pedidas. La selecci on del tiempo de muestreo es a conveniencia del dise no.

196
30 Velocidad (m/s) 25 20 15 10 5 0 10 20 30 40 50 60 Tiempo en segundos 70 80

Control Optimo

90

100

600 Fuerza de control (N)

400

200

0 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

Figura 4.32: Velocidad del carro de m aquinas y la fuerza de control para el problema 4.4.

% p8opt2.m SOLUCION DEL PROBLEMA 4.5 clear all % MODELO CONTINUO DE LA PLANTA A=[-0.2 0 0 0 1 0 0 0 2 0 -2 0 5 0 0 -5]; B=[10e-3; 0; 0; 0]; C=[0 1 0 0 ]; D=[0]; % MODELO LINEAL DISCRETO T = 0.2; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(A,B,C,D,T,zoh); G1 = [G zeros(4,1);-C*G 1]; H1 = [H;-C*H]; % INGRESO DE PESOS Q = [1 0 0 0 0 0 100 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3]; R = [0.01]; % ECUACION DE RICCATI

4.11 Problemas Resueltos


P = diag(0,4); for i = 1:40 P = Q + G1*P*G1 - G1*P*H1*inv(R+H1*P*H1)*H1*P*G1; end CALCULO DE LA MATRIZ DE GANANCIA KK KK = inv(R+H1*P*H1)*H1*P*G1; SEPARAMOS LA ACCION INTEGRAL K = [KK(1) KK(2) KK(3) KK(4)]; KI = -KK(5); KK = dlqr(G1,H1,Q,R); CALCULO DE LA MATRIZ DE OBSERVABILIDAD No = [C G*C (G)^2*C (G)^3*C]; rankNo = rank(No); % sistema no es observable SIMULACION N = 200; x=[0;0;0;0]; v=0; Y=0; for k=1:N r(k)=3*sign(sin(0.02*k)); Ref=r(k); v = v + Ref - Y; U = - K*x + KI*v; if(U > 200) U = 200; elseif(U < -200) U = -200; end x = G*x + H*U; Y = C*x; y(k) = Y; u(k) = U; end GRAFICOS t=linspace(0,N*T,N); subplot(2,1,1) plot(t,y(1:N),t,r(1:N)), grid ylabel(Posicion (m)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(t,u(1:N)), grid xlabel(Tiempo en segundos) ylabel(Voltaje de control) print -deps -f p8opt2

197

% %

% %

Problema 4.6 La gura 2.2 muestra dos tanques id enticos colocados en cascada. La secci on horizontal A=9 m2 de cada tanque es constante. El objetivo de control

198
4 2 0 2 4 0

Control Optimo

Posicin (m)

10

15 20 25 Tiempo en segundos

30

35

40

100 Voltaje de control

100

200 0

10

15 20 25 Tiempo en segundos

30

35

40

Figura 4.33: Posici on del ascensor y la fuerza de control correspondientes al problema 4.5. es controlar la altura H2 empleando el ujo Qo . La deducci on del modelo linealizado del proceso se deriv o en el ejemplo 2.1. Dise nar un controlador optimo cuadr atico estacionario con las especicaciones siguientes: tiempo de estabilizaci on menor que 20 s, sobreimpulso menor al 5 % y error nulo en estado estable. El ujo de entrada (la se nal de control) no debe sobrepasar los 3 m3 /s. La selecci on del tiempo de muestreo es a conveniencia del dise no.
% p9opt2.m SOLUCION DEL PROBLEMA 4.6 clear all % DEERMINACION DE LAS MATRICES DE LA ECUACION DE ESTADO gam=0.4; rho=1.23; g=9.81; A=9; Qo=3; H1eq = Qo^2/(gam^2*rho*g); a11 = -((gam*((rho*g)^1/2))/(2*A*((H1eq)^1/2))); A=[a11 0 -a11 a11]; B=[1; 0]; C=[0 1]; D=[0]; % DISCRETIZACION DEL SISTEMA T = 0.2; [G,H]=c2d(A,B,T); % VERIFICANDO SI LA PLANTA TIENE ACCION INTEGRAL % eigG=eig(G); % NO TIENE POLOS EN z=0;

4.11 Problemas Resueltos


% ADICIONANDO ACCION INTEGRAL G1 = [G zeros(2,1);-C*G 1]; H1 = [H;-C*H]; % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [1 0 0 0 1 0 0 0 0.02]; R = [2]; % OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr [KK,P]=dlqr(G1,H1,Q,R); % SEPARAMOS LA ACCION INTEGRAL K = [KK(1) KK(2)]; KI = -KK(3); % SIMULACION N = 200; x=[0;0]; v=0; Y=0; for k=1:N r(k)=3; Ref=r(k); v = v + Ref - Y; U = - K*x + KI*v; if(U > 5) U = 5; elseif(U < 0) U = 0; end x = G*x + H*U; Y = C(1,:)*x; y(k) = Y; u(k) = U; end % GRAFICOS t=linspace(0,N*T,N); subplot(2,1,1) plot(t,y(1:N),t,r(1:N)), grid ylabel(Nivel (m)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(t,u(1:N)), grid xlabel(Tiempo en segundos) ylabel(Flujo de control (m^3/s)) print -deps -f p9opt2

199

Problema 4.7 El proceso electromec anico mostrado en la gura 3.26 se describe en el problema 3.8. Dise nar un sistema de control o ptimo cuadr atico estacionario

200
4 3 Nivel (m) 2 1 0 0

Control Optimo

10

15 20 25 Tiempo en segundos

30

35

40

1.5 Flujo de control (m^3/s)

0.5

0 0

10

15 20 25 Tiempo en segundos

30

35

40

Figura 4.34: Nivel controlado H2 y el ujo de control para el problema 4.6. para controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre 100 volt.
% p11opt2.m SOLUCION DEL PROBLEMA 4.7 clear all % PARAMETROS GENERALES nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS NN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS % PARAMETROS DEL SISTEMA: J = 0.01; % MOMENTO DE INERCIA DEL MOTOR (kgm2/s2) Ke =0.01; Kt = 0.01; % CONSTANTE ELECTROMOTRIZ (Nm/A) R = 12; % RESISTENCIA (Ohmios) C = 0.5; % CONDENSADOR (uF) L = 0.5; % INDUCTANCIA DE LA ARMADURA (H) Kw = 1.8; % CONSTANTE TORSIONAL (Nm/rad) % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-1/(R*C) -1/C 0;... Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke);0 Kt/J 0]; Bc = [1/(R*C);0;0]; Cc = [0 0 1]; Dc = [0]; T = 0.05; % PERIODO DE MUESTREO % MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh);

4.11 Problemas Resueltos


[num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); b1 = num(2); b2 = num(3); b3=num(4); % VERIFICANDO SI LA PLANTA TIENE ACCION INTEGRAL % raices = eig(G); % NO TIENE POLOS z=0; % ADICIONANDO ACCION INTEGRAL G1 = [G zeros(3,1);-C*G 1]; H1 = [H;-C*H]; % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0.1]; R = [0.1]; % CONTROL OPTIMO DEL SISTEMA % OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr [KK,P]=dlqr(G1,H1,Q,R); % SEPARAMOS LA ACCION INTEGRAL K = [KK(1) KK(2) KK(3)]; KI = -KK(4); % SIMULACION N = 600; x=[0;0;0]; v=0; Y=0; for k=1:N r(k)=5*sign(sin(0.008*k)); Ref=r(k); v = v + Ref - Y; U = - K*x + KI*v; % if(U > 24) % U = 24; % elseif(U < -24) % U = -24; % end x = G*x + H*U; Y = C(1,:)*x; y(k) = Y; u(k) = U; end % GRAFICOS t=linspace(0,N*T,N); subplot(2,1,1) plot(t,y(1:N),t,r(1:N)), grid

201

202
ylabel(Velocidad (rad/s)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(t,u(1:N)), grid xlabel(Tiempo en segundos) ylabel(Voltaje de control) print -deps -f p11opt2

Control Optimo

10 Velocidad (rad/s) 5 0 5 10 0

10

15 20 Tiempo en segundos

25

30

40 Voltaje de control 20 0 20 40 60 0 5 10 15 20 Tiempo en segundos 25 30

Figura 4.35: Velocidad angular controlada y el voltaje de control para el problema 4.7.

4.12.

Problemas Propuestos

Problema 4.8 Demostrar que el valor m nimo de la funci on de costo descrita en la ecuaci on 4.11): 1 1 J = xT (N )S x(N ) + 2 2
N 1

xT (k )Qx(k ) + uT (k )Ru(k )
k=0

4.12 Problemas Propuestos est a dada por la expresi on: 1 Jmin = xT (0)P (0)x(0) 2 donde los argumentos nulos representan el tiempo discreto nulo inicial. Problema 4.9

203

Las ecuaciones del modelo linealizado para controlar la posici on del ca no n montado en la torreta de un tanque (ver gura 3.28) empleando un actuador hidr aulico se detallan en el problema 3.9. (a) Dise nar un sistema de control o ptimo estacionario para controlar el angulo de elevaci on con las especicaciones siguientes: tiempo de estabilizaci on menor de 2 s, sobreimpulso y error en estado estacionario nulos. Los disturbios tipo escal on pueden actuar simult aneamente o no y pueden ser positivos o negativos. Para cada caso, el sistema de control o ptimo debe ser capaz de minimizar sus efectos. La selecci on del tiempo de muestreo es a conveniencia del dise no. (b) Lo mismo que (a), pero en este caso para controlar el angulo azimutal. Problema 4.10 El proceso columna de destilaci on se describe en el problema 3.10 y se muestra en la gura 3.29. Dise nar un sistema de control o ptimo multivariable estacionario para controlar las temperaturas residuales T1 = c13 z1 y T2 = c24 z2 con las especicaciones siguientes: error en estado estacionario nulo, sobreimpulso menor al 5 % y tiempo de estabilizaci on menor que 0.1 horas. Considerar disturbios unitarios actuando sobre el proceso multivariable. La selecci on del tiempo de muestreo es a conveniencia del dise no. Problema 4.11 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la secci on 3.3, en donde la carga no lineal posee ahora dos grados de libertad con Lo = 2L1 /3 y Mo =0.02 kg. La uni on de la carga con el eje del servomotor no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema 3.12. Dise nar un sistema de control o ptimo estacionario para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso.

204 Problema 4.12

Control Optimo

La gura 3.32 muestra el proceso p endulo doble no lineal, el cual es una extensi on del p endulo simple descrito en la secci on 3.1. El acoplamiento entre los dos p endulos de igual longitud no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema propuesto 3.13. Dise nar un sistema de control optimo no estacionario para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso, de modo tal que el p endulo doble permanezca en posici on vertical. Problema 4.13 La gura 3.33 muestra el proceso doble gr ua-puente no lineal, el cual es una extensi on del proceso gr ua-puente escrito en la secci on 3.2. El acoplamiento entre las dos secciones iguales de la varilla no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema propuesto 3.14. Considerar que la carga esf erica es de 0.02 kg. Dise nar un sistema de control optimo estacionario para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso, de modo tal que la gr ua-puente doble permanezca en posici on vertical cuando el carro realiza un recorrido predeterminado.. Problema 4.14 En la secci on anterior se dise naron sistemas de control o ptimo estacionario para varios procesos. Ahora abordaremos el dise no de sistemas de control optimo no estacionarios. Dise nar un sistema de control o ptimo no estacionario; es decir, determinar la ley de control u(k ) que minimice la siguiente funci on de costo: 1 1 J = [xT (N )S x + 2 2
N 1

[xT (k )Qx + uT (N )Ru]


k=0

para una condici on inicial x(0) = c arbitraria y para un valor de N para el cual la o las salidas controladas cumplan las especicaciones de dise no. Seleccionar apropiadamente el tiempo de muestreo y las matrices de ponderaci on. Gracar la o las salidas controladas y las correspondientes se nales de control. Calcular tambi en el valor m nimo de la funci on de costo. Realizar los c alculos requeridos anteriormente para cada uno de los procesos tratados en los problemas 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 y 4.7.

Cap tulo 5

Control Adaptivo
En este cap tulo se desarrolla un procedimiento para dise nar un sistema de control adaptivo con autosintonizaci on, con la capacidad de controlar procesos no lineales univariables (de una entrada y una salida) operando en la presencia de cargas no lineales. Tales procesos pueden ser representados por ecuaciones diferenciales no lineales, donde precisamente los t erminos no lineales complican los aspectos anal ticos de modelado del proceso y de dise no del controlador. Sin embargo, basado en el correspondiente modelo lineal del proceso, podemos estructurar un sistema de control adaptivo con autosintonizaci on combinando algoritmos lineales de control con procedimiento para estimar en linea los par ametros y los estados del proceso. En la antepen ultima secci on de este cap tulo se presenta una aplicaci on para demostrar la validez del procedimiento de dise no: control de posici on de un servomotor D.C. expuesto a cargas no lineales. La pen ultima secci on, problemas resueltos, est a dedicada al dise no de sistemas de control adaptivo con autosintonizaci on para diferentes procesos. La u ltima secci on propone problemas de dise no. Todos los archivos correspondientes a los ejercicios, problemas, dise nos, simulaciones y software desarrollados se pueden descargar del sitio: http:/ee.uni.edu.pe/728681F.

5.1.

Introducci on

Los sistemas de control adaptivo ajustan su comportamiento a las cambiantes propiedades del proceso controlado y de las se nales que interact uan sobre dicho proceso. Por el contrario, los sistemas de control jos se caracterizan por la presencia de una ley de control invariable con el tiempo.

206

Control Adaptivo

La investigaci on sobre controladores adaptivos se ha centrado en dos grupos principales: controladores adaptivos con un modelo referencial y controladores con autosintonizaci on. En este cap tulo se emplea la conguraci on de un sistema de control adaptivo con autosintonizaci on mostrado en la gura 5.1. Tal sistema combina en su dise no un m etodo de estimaci on de par ametros (el de los m nimos cuadrados recursivo mejorado), una t ecnica de estimaci on de estados (el ltro de Kalman), una representaci on lineal del modelo del proceso, y una ley de control (el controlador proporcionalintegral o ptimo cuadr atico con realimentaci on de estados). El objetivo del control es determinar una fuerza de control capaz de minimizar la diferencia entre la salida del proceso y la se nal de referencia.
^ x ESTIMADOR DE ESTADOS ESTIMACION DE U + Y + DISTURBIOS CONTROLADOR CON AUTOSINTONIZACION + u U PROCESO NO LINEAL Y ^ ESTIMADOR DE PARAMETROS MODELO LINEAL

Figura 5.1: Conguraci on del sistema de control con autosintonizaci on. El sistema de control con autosintonizaci on mostrado en la gura 5.1 opera como sigue: luego de cada tiempo de muestreo, el vector estimado se actualiza empleando los datos proporcionados por la de par ametros entrada U del proceso y por la salida Y del mismo. Luego, los elementos se usan para recuperar el modelo lineal del proceso, lo cual permite de (empleando un ltro estimar el vector de estado del modelo del proceso x de la ley de control actual U . Tales de Kalman) y el valor de equilibrio U resultados se usan luego para computar la ley de control residual u y para + u. actualizar la ley de control actual U a partir de la relaci on U = U Este cap tulo est a organizado como sigue. La secci on 5.2 trata con el problema de modelar procesos no lineales usando modelos lineales. Procedimientos para estimar en l nea (on-line) los par ametros y estados del

5.2 Modelando Procesos No Lineales

207

modelo del proceso se desarrollan en la secci on 5.3, mientras que el algoritmo del controlador con autosintonizaci on se deriva en la secci on 5.4. La secci on 5.5 presenta el procedimiento para dise nar un sistema de control con autosintonizaci on. Una aplicaci on se proporciona en la secci on 5.6: control de posici on de un servomotor sujeto a cargas no lineales.

5.2.

Modelando Procesos No Lineales

Consideremos el siguiente proceso din amico continuo: = f (X, U (t), v(X, t), t) X (5.1)

donde X (de orden n) y U (t) (de orden uno) son el vector de estado y la ley de control, respectivamente. La funci on no lineal f (.) puede tambi en contener disturbios v(.) en los estados. De la ecuaci on (5.1), es posible obtener el modelo lineal siguiente: (t) = [A + A]X(t) + [B + B ]U (t) + v(X, t) X Y (t) = [C + C ]X + w(X, t) (5.2)

donde A es la matriz de estado de dimensi on n n, B es la matriz de control de dimensi on n 1, C es la matriz de salida de dimensi on 1 n, y A, B y C son las correspondientes incertidumbres acotadas con dimensiones apropiadas. Adem as, v(X, t) es un vector no lineal de disturbios de orden n actuando sobre los estados, w(X, t) es un disturbio no lineal de orden uno actuando en la salida, e Y (t) es la salida del proceso de orden uno. El proceso nominal no perturbado (o proceso con certidumbre) se obtiene jando en cero todas las incertidumbres y todos los disturbios en la ecuaci on (5.1). Muestreando dicho modelo nominal, podemos obtener la siguiente representaci on: X(k + 1) = GX(k ) + HU (k ); Y (k ) = C X(k ) (5.3)

donde k es el tiempo discreto y las matrices G y H poseen las mismas dimensiones que las matrices A y B , respectivamente. La correspondiente ecuaci on polinomial residual toma la forma: A(z 1 )y (z ) = B (z 1 )u(z ) (5.4)

208 donde z es el operador de desplazamiento, con:

Control Adaptivo

A(z 1 ) = 1 + a1 z 1 + . . . + an z n B (z 1 ) = b1 z 1 + . . . + bn z n (5.5) , x = X X y u = U U Empleando ahora las relaciones residuales: y = Y Y en las ecuaciones (5.3) y (5.4) obtenemos: x(k + 1) = Gx(k ) + Hu(k ); y (k ) = C x(k ) (5.6) (5.7)

A(z 1 )Y (k ) = B (z 1 )U (k ) + C donde la constante C se determina de: (b1 + . . . + bn )U C = (1 + a1 + . . . + an )Y

(5.8)

5.3.

Procedimientos de Estimaci on

Esta secci on presenta los procedimientos para estimar (o identicar) en l nea los par ametros y los estados del modelo del proceso.

5.3.1.

El M etodo de los M nimos Cuadrados Recursivo

Para estimar los par ametros del modelo del proceso usaremos las se nales actuales U (k ) e Y (k ) en lugar de sus desviaciones u(k ) e y (k ). Para ello, la descripci on en el espacio de estado dada por la ecuaci on (5.7) tiene que ser reordenada para tomar la forma siguiente: (k ) Y (k ) = T (k ) (5.9)

donde el vector de informaci on (o de medici on) contiene los valores presentes y pasados de la entrada U y de la salida Y como sigue: T (k ) = [Y (k 1) . . . Y (k n) U (k 1) . . . U (k n) 1] contiene los par y el vector ametros a ser estimados, a saber: ]T (k ) = [a 1 (k ) . . . a n (k ) b1 (k ) . . . bn (k ) C (5.11) (5.10)

Notar que en la ecuaci on (5.9), el orden del vector de informaci on y el orden del vector de par ametros es 2n+1; es decir, dichos vectores han incrementado

5.3 Procedimientos de Estimaci on

209

su orden en uno. La ecuaci on (5.7) con z = 1 (propiedad del valor nal) representa la condici on de estado estable, es decir: = B (1)U +C A(1)Y (5.12)

El algoritmo b asico de los m nimos cuadrados recursivo puede implementarse en la forma siguiente: (0) usando los valores de los 1) Obtener el vector de par ametros inicial par ametros del modelo del proceso (ecuaci on (5.5)). 2) Obtener el valor inicial del par ametro C (0) empleando la ecuaci on =0eY igual a la se (5.8), considerando U nal de referencia. 3) La matriz de covarianza inicial P puede tener la forma P = I , donde I es la matriz identidad y 1. 4) Tomar nuevas mediciones de Y (k ) y de U (K ) en el proceso, para obtener una nueva ecuaci on de la forma dada en (5.9). 5) Computar el error de estimaci on (ver ecuaciones (5.10) y (5.11)): (k ) e(k ) = Y (k ) T (k ) 6) Sabiendo que P (k ) = [ T (k ) (k )]1 , computar: i(k ) = P (k ) (k ). 7) Computar: j (k ) = T (k )i(k ); (k + 1) = (k ) + (k )e(k ); (k ) = i(k )/[ + j (k )] P (k + 1) = [I (k ) T (k )]P (k )/

(k + 1) = (k ) 8) Actualizar: P (k + 1) = P (k ) y Ejemplo 5.1 Estimar los par ametros del proceso servomotor D.C. con carga no lineal descrito en la secci on 3.3, empleando el m etodo de los m nimos cuadrados recursivo. Emplee el modelo lineal de segundo orden del proceso y como se nal excitadora use un escal on de magnitud 0.4. Graque la respuesta del proceso. Soluci on: El programa ejem5 1.m estima los par ametros para el proceso pedido. La gura 5.2 graca la respuesta Y del proceso a un escal on U = 0.4. Las guras 5.3 y 5.4 muestran los par ametros estimados. Podemos observar que cada par ametro estimado converge a un valor que es aproximadamente el valor del correspondiente par ametro del modelo discreto.

210

Control Adaptivo

% ejem5_1.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO % DE LOS MINIMOS CUADRADOS RECURSIVO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.0352e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.0; % 0.01, 0.02, 0.045; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm +bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/R)/M]; % (c: CONTINUO) Bc = [0;n*K*Kact/(R*M)]; Cc = [1 0]; Dc = [0]; MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); CONDICIONES INICIALES Y OTROS PARAMETROS alfa=1000; Pi = alfa*eye(5); % MATRIZ P INICIAL theta_p = [-a1 -a2 b1 b2]; % PARAMETROS DEL PROCESO thetai = [0 0 0 0 0]; % PARAMETROS INICIALES lambda = 0.99; % FACTOR DE MEMORIA Y(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0; PROCEDIMIENTO DE IDENTIFICACION Mm = 1000; for r = 1:Mm k = r + 2; U(k) = 0.4; psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)]; Y(k) = psi_p*theta_p; % MODELO LINEAL DEL PROCESO psi = [psi_p;1]; % VECTOR DE DATOS e = Y(k)-psi*thetai; % ERROR DE ESTIMACION i = Pi*psi; j = psi*i; gamma = i/(lambda + j);

5.3 Procedimientos de Estimaci on


theta = thetai+gamma*e; % VECTOR DE PARAMETROS ae1(r) = -theta(1); % PARAMETRO a1 ESTIMADO ae2(r) = -theta(2); % PARAMETRO a2 ESTIMADO be1(r) = theta(3); % PARAMETRO b1 ESTIMADO be2(r) = theta(4); % PARAMETRO b2 ESTIMADO P = (eye(5) - gamma*psi)*Pi/lambda; % ACTUALIZACION thetai = theta; Pi = P; end % GRAFICOS q=0:Mm-1; figure(1) subplot(2,1,1) plot(q,U(1:Mm)); grid ylabel(SE~NAL EXCITATRIZ U) xlabel(MUESTRAS DISCRETAS k = 0.01 s) subplot(2,1,2) plot(q,Y(1:Mm)); grid ylabel(RESPUESTA Y DEL PROCESO) xlabel(MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)) print -deps -f ejem5_1a figure(2) plot(q,ae1,q,ae2,-.); grid xlabel(MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s) ) ylabel(PARAMETROS ESTIMADOS) print -deps -f ejem5_1b figure(3) plot(q,be1,q,be2,-.); grid xlabel(MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)) ylabel(PARAMETROS ESTIMADOS) print -deps -f ejem5_1c

211

5.3.2.

M nimos Cuadrados Recursivo Mejorado

El algoritmo b asico de los m nimos cuadrados recursivo se encuentra bastante difundido. Sin embargo, dicho algoritmo puede presentar problemas potenciales de car acter num erico que podr an afectar el dise no nal del controlador con autosintonizaci on. Por tal motivo, en este cap tulo se emplea el m etodo de los m nimos cuadrados recursivo mejorado propuesto en [5], el cual puede implementarse en la forma siguiente:

212
0.4 SEAL EXCITATRIZ U 0.3 0.2 0.1 0 0 RESPUESTA Y DEL PROCESO

Control Adaptivo

100

200

300 400 500 600 700 MUESTRAS DISCRETAS k = 0.01 s

800

900

1000

2.5 2 1.5 1 0.5 0 0 100 200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s) 900 1000

Figura 5.2: Respuesta del modelo lineal del proceso a un escal on de magnitud U = 0.4.
1

0.5 PARAMETROS ESTIMADOS

0.5

1.5

2 0

100

200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

Figura 5.3: Par ametros estimados a 1 (k ) (curva s olida) y a 2 (k ).

5.3 Procedimientos de Estimaci on


0.045 0.04 0.035 PARAMETROS ESTIMADOS 0.03 0.025 0.02 0.015 0.01 0.005 0 0

213

100

200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

Figura 5.4: Par ametros estimados b1 (k ) (curva s olida) y b2 (k ).

(0) usando los valores de los 1) Obtener el vector de par ametros inicial par ametros del modelo del proceso dadas en la ecuaci on (5.4). 2) Obtener el valor inicial del par ametro C (0) empleando la ecuaci on = 0 e Y igual a la se (5.8), considerando U nal de referencia. 3) La matriz de covarianza inicial P puede tener la forma P = I , donde I es la matriz identidad y 1. 4) Tomar nuevas mediciones de Y (k ) y de U (K ) en el proceso, para obtener una nueva ecuaci on de la forma dada en (5.9). 5) Computar: (k ) = max(1, (k ) ); n = /(k )

6) Determinar la matriz N (k ) aplicando factorizaci on Cholesky en: N (k )N (k )T = P (k ) 7) Determinar la matriz diagonal de escalamiento S (k ) con elementos sjj . Tal matriz minimiza el n umero condicional del producto S (k )N (k ) siempre que sjj = 1/njj , donde cada njj se obtiene tomando el valor absoluto de la suma de los elementos de la la j de N (k ).

214 8) Computar: PS (k ) = S (k )P (k )S (k ) nS = [S (k )]1 n

Control Adaptivo

T r(k ) = 1 + nS (k )PS (k 1)nS (k )

(k ) = 1

1 r(k ) 2

r2 (k )

4 PS (k 1)nS (k ) tr PS (k 1)

(k 1) en (k ) = Y (k )/(k ) nT (k )
T j (k ) = [nS (k + 1)PS (k )nS (k + 1) + (k )]

(k + 1) = (k ) + S 1 (k )PS (k )nS (k )en (k + 1)/j (k )


T HnS (k + 1) = PS (k )nS (k + 1) [nS (k + 1)PS (k )nS (k + 1) + (k )]1 T PS (k + 1) = [I HnS (k + 1)nS (k + 1)]PS (k )/(k )

tt = abs

max eig (PS ) min eig (PS )

9) Implementar el criterio para parar la estimaci on y para encontrar la nueva matriz de escalamiento Nnew como sigue: sabiendo que tt es el n umero condicionante de PS , si tt (cota inferior), parar la estimaci on; en otro caso, si tt (cota superior), determinar Nnew (k ) T ), calcular los elementos n (a partir de la relaci on PS = Nnew Nnew newjj (valor absoluto de la suma de los elementos de las las de Nnew (k )), determinar la matriz diagonal Snew con elementos snewjj = 1/nnewjj , y calcular la matriz PnewS = Snew PS Snew . Finalmente, actualizar: P = PnewS . Ejemplo 5.2 Estimar los par ametros del proceso servomotor D.C. con carga no lineal descrito en la secci on 3.3, empleando el m etodo de los m nimos cuadrados recursivo mejorado. Emplee el modelo no lineal de segundo orden del proceso y como se nal excitadora use un escal on de magnitud 0.4. Graque la respuesta del proceso. ametros para el proceso Soluci on: El programa ejem5 2.m estima los par pedido. La gura 5.5 graca la respuesta Y del proceso a un escal on U = 0.4. Las guras 5.6 y 5.7 muestran los par ametros estimados. Podemos observar que cada par ametro estimado converge a un valor constante.

5.3 Procedimientos de Estimaci on


% ejem5_2.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO % DE LOS MINIMOS CUADRADOS RECURSIVO MEJORADO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Lo = 0.776; K = 31.071e-3; n = 19.741; L = 4.64e-2; Mo = 0.0; % peso variable: 0 gr, 10 gr, 20 gr y 45 gr B = n^2*bm +bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/R)/M]; % (c: CONTINUO) Bc = [0;n*K*Kact/(R*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); % CONDICIONES INICIALES (ARBITRARIAS) Y OTROS PARAMETROS alfa=1000; N = 5; Pi = alfa*eye(N); % MATRIZ P INICIAL theta_p = [-a1 -a2 b1 b2]; % PARAMETROS DEL PROCESO thetai = [-a1/3 -a2/2 3*b1 2*b2 0]; % PARAMETROS INICIALES lambda = 0.99; % FACTOR DE MEMORIA Y(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0; x1 = 0; x2 = 0; % PROCEDIMIENTO DE IDENTIFICACION Mm = 1000; for r = 1:Mm k = r + 2; U(k) = 0.4; % MODELO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO DIRECTAMENTE TN = cc*sign(x2); x1=x1+T*x2; x2=x2+T*(-(N/M)*sin(x1) - (B/M + n^2*K*E/(M*R))*x2 - TN/M ... + (n*K*Kact/(R*M))*U(k) ); Y(k) = x1;

215

216

Control Adaptivo

% PROCEDIMIENTO DE IDENTIFICACION psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)]; psi = [Y(k-1) Y(k-2) U(k-1) U(k-2) 1]; nor = max(1,norm(psi)); psin = psi/nor; Q = chol(Pi); S = inv(diag(Q*ones(N,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; LF = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(k)/nor - thetai*psin; div = psins*Ps*psins + LF; theta = thetai + e*inv(S)*Ps*psins/div; ae1(r) = -theta(1); % PARAMETRO a1 ESTIMADO ae2(r) = -theta(2); % PARAMETRO a2 ESTIMADO be1(r) = theta(3); % PARAMETRO b1 ESTIMADO be2(r) = theta(4); % PARAMETRO b2 ESTIMADO Hns = Ps*psins/div; Ps = Ps/LF - Hns*psins*Ps/LF; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, thetai = theta; Pi = Ps; elseif tt >= cmax, Qnew = chol(Ps); Snew = inv(diag(Qnew*ones(N,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thetai = theta; end end % GRAFICOS q=0:Mm-1; figure(1) subplot(2,1,1) plot(q,U(1:Mm)) ylabel(SE~ NAL EXCITATRIZ U) grid subplot(2,1,2) plot(q,Y(1:Mm)) ylabel(RESPUESTA Y DEL PROCESO) xlabel(MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)) grid

5.3 Procedimientos de Estimaci on


print -deps -f ejem5_2a figure(2) plot(q,ae1,q,ae2) text(250,0.55,a2); text(250,-0.7,a1); xlabel(MUESTRAS (CADA MUESTRA EQUIVALE A ylabel(PARAMETROS ESTIMADOS) grid print -deps -f ejem5_2b figure(3) plot(q,be1,q,be2) text(250,2.5e-3,b1); text(250,-3e-3,b2); xlabel(MUESTRAS (CADA MUESTRA EQUIVALE A ylabel(PARAMETROS ESTIMADOS) grid print -deps -f ejem5_2c

217

0.01 s))

0.01 s))

0.4 SEAL EXCITATRIZ U 0.3 0.2 0.1 0 0 RESPUESTA Y DEL PROCESO

100

200

300

400

500

600

700

800

900

1000

0.15

0.1

0.05

0 0

100

200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

Figura 5.5: Respuesta del proceso no lineal a un escal on de valor U = 0.4.

218
0.6 a2 0.4

Control Adaptivo

ESTIMADOS PARAMETROS

0.2

0.2

0.4

0.6 a1 0.8 0 100 200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s) 900 1000

Figura 5.6: par ametros estimados a 1 (k ) y a 2 (k ).

14 12 10 ESTIMADOS 8 6 4 2 0 2

x 10

PARAMETROS

b1

b2 4 6 0

100

200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

900

1000

Figura 5.7: par ametros estimados b1 (k ) y b2 (k ).

5.4 La Ley de Control

219

5.3.3.

Estimaci on de Estados

De la ecuaci on (5.6) podemos obtener el siguiente modelo nominal perturbado del proceso: x(k + 1) = Gx(k ) + Hu(k ) + v(k ) y (k ) = C x(k ) + w(k ) (5.13)

El procedimiento de estimaci on descrito en la subsecci on anterior nos pro(k ). Usando los porciona el vector de par ametros estimado del proceso elementos de dicho vector de par ametros, podemos reconstruir las matrices (k ), H (k ) y C (k ). El vector de estado estimado x estimadas G (k ) puede ser obtenido empleando un ltro de Kalman [6], con ecuaci on de observaci on: (k )x (k )] x (k ) = x (k ) + Ko (k )[y (k ) C y ecuaci on de actualizaci on de estados: (k )x (k )u(k ) x (k + 1) = G (k ) + H En la ecuaci on (5.14), la matriz de ganancia Ko (k ) se calcula de: T (k )[C (k )Po (k )C T (k ) + Ro ]1 Ko (k ) = Po (k )C (5.16) (5.15) (5.14)

on u nica de la siguiente donde Po (k ) es la matriz denida positiva, soluci ecuaci on matricial discreta asociada de Riccati: ( T )(k )Po (k )G (k ) G T (k )Ko (k )C (k )Po (k )G (k ) (5.17) Po (k + 1) = Qo + G donde Qo y Ro son matrices de covarianza denidas positivas correspondiente a los disturbios v y w, respectivamente.

5.4.

La Ley de Control

Es bastante conocido [6] que el controlador proporcional o ptimo cuadr atico es una matriz de ganancia Kx que nos permite formular la siguiente ley de control u = Kx x(k ). Dicha matriz es el resultado de la minimizaci on de la funci on de costo:

I=
k=0

[xT (k )Qx(k ) + u2 (k )R]

(5.18)

220 sujeto a la ecuaci on de restricci on: x(k + 1) = Gx(k ) + Hu(k )

Control Adaptivo

donde la matriz Q = QT es semidenida positiva y la matriz R es denida positiva. En la subsecci on 4.5 se detalla c omo seleccionar estas matrices. La ganancia Kx se obtiene de: Kx = (R + H T SH )1 H T SG (5.19)

donde S es la u nica matriz denida-positiva soluci on de la siguiente ecuaci on matricial discreta asociada de Riccati: 0 = S GT SG + GT SHKx (5.20)

Para mejorar el rendimiento del controlador proporcional, es posible adicionar acci on integral a dicho controlador. Deniendo la variable z (k ) como (k ) Y (k )]: la integral (sumatoria) del error [Y
k 1 k 1 k

z (k ) =
i=0

(i) Y (i)] = [Y
i=0

[y (i)];

z (k + 1) =
i=0

[y (i)]

entonces: z (k + 1) = z (k ) y (k ) = z (k ) C x(k ) (5.21) de modo que la representaci on en el espacio de estado del sistema aumentado toma la forma siguiente: xa (k + 1) = Ga xa (k ) + H a u(k ) y (k ) = C x (k )
a a

(5.22) (5.23)

donde el super ndice a signica aumentado. El vector xa y las matrices Aa , B a y C a poseen la forma: xa (k ) = x(k ) z (k ) ; Ga (k ) = H 0 ; G 0 C I C a = [C 0] (5.24)

Ha =

Por consiguiente, el problema es determinar la matriz de ganancia K a como resultado de la minimizaci on de la siguiente funci on de costo:

I =
k=0

[xa )T (k )Qa xa (k ) + u2 (k )R]

(5.25)

5.5 Procedimiento de Dise no

221

donde la matriz Qa = [Qa ]T es semidenida positiva. La ganancia K a se obtiene de: (5.26) K a = {R + [H a ]T P a H a }1 [H a ]T P a Ga En la ecuaci on (5.26), P a es la u nica matriz denida-positiva soluci on de la siguiente ecuaci on matricial discreta asociada de Riccati: P a = Qa + [Ga ]T P a Ga [Ga ]T P a H a K a (5.27)

Por consiguiente, la ley de control del controlador o ptimo cuadr atico proporcional integral viene a ser: u(k ) = K a xa (k ) y los par ametros de ponderaci on de rendimiento son R y Qa . (5.28)

5.5.

Procedimiento de Dise no

El procedimiento para dise nar el sistema de control con autosintonizaci on ilustrado en la gura 5.1 es como sigue: 1) Formular el problema (denir especicaciones de dise no). 2) Usando toda la informaci on disponible acerca del proceso no lineal, determinar sus modelos lineal y no lineal (secci on 5.2). 3) Implementar el m etodo de los m nimos cuadrados recursivo mejorado (subsecci on 5.3.2) para estimar los par ametros del modelo del proceso. 4) Implementar el procedimiento desarrollado en la subsecci on 5.3.3 para estimar los estados del modelo del proceso. 5) Implementar la ley de control residual u(k ) (secci on 5.4) dada por la (k ) usando la ecuaci ecuaci on (5.28), computar U on (5.8), y actualizar (k ). la ley de control actual empleando la relaci on U (k ) = u(k ) + U 6) Simular el sistema de control adaptivo variando las matrices de ponderaci on R, Qa , Ro y Qo , hasta obtener un rendimiento satisfactorio del sistema. 7) Implementar el hardware. 8) Implementar el software de control. 9) Realizar pruebas de funcionamiento (resultados experimentales).

222

Control Adaptivo

5.6.
5.6.1.

Control Adaptivo de un Servomotor No Lineal


Formulaci on del Problema

El servomotor D.C. con carga no lineal (discutido ampliamente en la secci on 3.3) es un proceso de una entrada y una salida que puede ser controlado por el voltaje de armadura. La carga no lineal es una varilla met alica acoplada al eje del servomotor, a manera de un brazo rob otico de un grado de libertad. En el extremo de la varilla se pueden acoplar cargas adicionales. El objetivo del control es dise nar e implementar un sistema de control adaptivo con autosintonizaci on, de modo tal que la varilla se posicione en una referencia predeterminada con m nimo sobreimpulso en su respuesta, a pesar de la presencia de la carga no lineal y de las no linealidades inherentes del proceso como son las fricciones est atica y de Coulomb, y saturaci on en el amplicador del servomotor.

5.6.2.

El Modelo del Proceso

La gura 3.9 presenta la estructura del proceso no lineal a controlar. La tabla 3.2 describe las variables y los valores de los par ametros. Vimos en el ejemplo 5.1 que el proceso no lineal puede ser descrito mediante un modelo lineal en el espacio de estado de la forma: x = Ac x + Bc u; donde: Ac = 0 N M
B ( M

y = Cc x

1 2E + Kn MR )

Bc =

0
KnKact MR

Cc =

1 0

(5.29) La funci on de transferencia de pulso Gp (z ), para un tiempo de muestreo de 0.01 s (o lo que es lo mismo, una frecuencia de muestreo de Fs = 100 Hz), tiene la forma: Gp (z ) = b1 z + b2 y (z ) b1 z 1 + b2 z 2 = 2 = u(z ) z + a1 z + a2 1 + a1 z 1 + a2 z 2 (5.30)

y su correspondiente ecuaci on de diferencias es: y (k ) = a1 y (k 1) a2 y (k 2) + b1 u(k 1) + b2 u(k 2) (5.31)

5.6 Control Adaptivo de un Servomotor No Lineal

223

donde a1 = -1.9608, a2 = 0.9626, b1 = 0.044 y b2 = 0.045. Vimos que partiendo de la ecuaci on (5.30), un mismo proceso puede adoptar m ultiples representaciones de estado de la forma: x(k + 1) = Gx(k ) + Hu(k ); y (kT ) = C x(kT )

donde G, H y C son las matrices de estado, de control y de salida respectivamente, con dimensiones apropiadas. La representaci on can onica controlable del proceso (primera forma, ecuaci on (3.100) con b0 = 0) tiene la forma: G = C = 0 1 a2 a1 ; H= ; 0 1 D = [0] (5.32)

b2 a2 b0 b1 a1 b0

5.6.3.

Estimaci on de Par ametros

Para estimar (o identicar) los par ametros del modelo del proceso, empleamos el m etodo de los m nimos cuadrados recursivo mejorado desarrollado en la subsecci on 5.3.2. Como primer paso calculamos el vector inicial de par ametros (ecuaci on (5.5): (0) = a1 a2 b1 b2 C (0)
T

=0eY igual a la se donde el valor inicial de C (0) (ecuaci on (5.8) con U nal de referencia) es: C = (1 + a1 + a2 )Y En el tercer paso jamos la 0 P = 0 0 0 matriz de covarianza inicial P de orden 5: 0 0 0 0 0 0 0 0 0 0 = 1000 (5.33) ; 0 0 0 0 0 0

Como cuarto paso obtenemos nuevas mediciones de Y (k ) y de U (K ) (ver ecuaci on (5.9)) y formulamos: (k ) Y (k ) = T (k ) T (k ) = [Y (k 1) Y (k 2) U (k 1) U (k 2) 1] (k ) = [a (k )]T 2 (k ) b1 (k ) b2 (k ) C 1 (k ) a Con los datos determinados hasta aqu , ahora podemos implementar los otros pasos (ver ejemplo 5.2) con Cmin = 15 y Cmax = 100.

224

Control Adaptivo

5.6.4.

Estimaci on de Estados

El procedimiento para la estimaci on de estados se describe en la subsecci on 5.3.3. El procedimiento de estimaci on (subsecci on anterior) nos proporciona el vector de par ametros estimado del proceso, a saber: (k )]T (k ) = [a 1 (k ) a 2 (k ) b1 (k ) b2 (k ) C Usando los elementos de dicho vector de par ametros, podemos reconstruir las matrices estimadas G(k ), H (k ) y C (k ) correspondientes a la representaci on can onica controlable (ecuaci on (5.32)): (k ) = G 0 1 a 2 (k ) a 1 (k ) b1 (k ) b2 (k ) ; ; (k ) = H (k ) = [0] D 0 1

(k ) = C

Las ecuaciones del ltro de Kalman para estimar el vector de estado x son (ver ecuaciones (5.14), (5.15) y (5.16)): (k )x (k )] x (k ) = x (k ) + Ko (k )[y (k ) C (k )x (k )u(k ) x (k + 1) = G (k ) + H (k )Po (k )C T (k ) + Re ]1 Ko (k ) = Po (k )C T (k )[C (5.34) (5.35) (5.36)

Para cada muestra discreta, el programa de simulaci on disadap.m (secci on 5.6.7) calcula las matrices Po (k ) y Ko (k ) empleando las matrices de covarianza de los disturbios v y w, a saber, Qo = 0.01 y Ro = 0.04.

5.6.5.

La Ley de Control

Para determinar el controlador proporcional- integral o ptimo cuadr atico con realimentaci on de estados (secci on 5.4), la representaci on en el espacio de estado aumentado toma la forma siguiente (ecuaci on (5.23)): xa (k + 1) = Ga (k )xa (k ) + H a (k )u(k ); donde: xa (k ) = x(k ) z (k ) ; Ga (k ) = H 0 ; G 0 C I C a = [C 0] y (k ) = C a (k )xa (k )

Ha =

5.6 Control Adaptivo de un Servomotor No Lineal La matriz de control K a se obtiene de: K a (k ) = {R + [H a (k )]T P a (k )H a (k )}1 [H a (k )]T P a (k )(k )Ga (k )

225

El programa disadap.m calcula las matrices K a (k ), Ga (k ) y H a (k ) para cada tiempo de muestreo. En el software de control implementado, la matriz P a (k ) se obtiene luego de iterar la ecuaci on de Riccati 20 veces en cada per odo de on son: muestro. Los valores de R y Qa para la simulaci 0,05 0 0 0,01 0 ; R = 0,45; Qa = 0 (5.37) 0 0 0,01

5.6.6.

La Ley de Control Residual

(k ) Para el sistema de control a lazo cerrado podemos tomar la se nal Y igual a la referencia para todo k . As , podemos calcular la ley de control (k ) (secci residual empleando la relaci on u(k ) = U (k ) U on 5.4), donde U (k ) se halla en l nea a partir de la ecuaci on (5.8), como sigue: (k ) = [ (k ) C (k ) U b1 (k ) + b2 (k )]1 [1 + a 1 (k ) + a 2 (k )]Y (k ). Finalmente, actualizamos la ley de control actual: U (k ) = u(k ) + U

5.6.7.

Simulaci on del Sistema de Control Adaptivo

El siguiente programa disadap.m resume todos los pasos descritos anteriormente para simular el sistema de control adaptivo. Es importante recalcar que los algoritmos de control lineal est an siendo aplicados al modelo no lineal del proceso, con el n de darle mayor realismo al proceso de simulaci on. La simulaci on incluye la estrategia para no saturar el amplicador, pero no incluye la compensaci on de la no linealidad provocada por la fricci on de Coulomb debido a que no es necesario (conforme a los resultados de la simulaci on). El programa disadap.m es autoexplicativo.
% disadap.m SIMULACION DEL SISTEMA DE CONTROL DE POSICION % ADAPTIVO CON AUTOSINTONIZACION clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; Ra = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.02; % 0.00, 0.01, 0.045;

226
K = 31.071e-3; n = 19.741; L = 4.64e-3; Lo = 0.776;

Control Adaptivo

B = n^2*bm +bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/Ra)/M]; % (c: CONTINUO) Bc = [0;n*K*Kact/(Ra*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); % Gcc,Hcc, Ccc, Dcc: REPRESENTACION CANONICA CONTROLABLE a11 = 0; a12 =1; a21 = -a2; a22 = -a1; b11 = b1; b21 =b2-a1*b1; c11 =1; c12 = 0; Gcc = [a11 a12;a21 a22]; Hcc = [b11;b21]; Ccc =[c11 c12]; Dcc = [0]; % REPRESENTACION POLINOMIAL % A(z^(-1)) = 1 + a1*z^(-1) + a2*z^(-1); % B(z^(-1)) = b1*z^(-1) + b2*z^(-1); % A(z^(-1))*Y(k) = B(z^(-1))*U(k) + Ce; % CASO AUMENTADO % en el estado estacionario: z = 1: % (1 + a1 + a2)*Yo = (b1 + b2)*Uo + Ce % CONDICIONES INICIALES Y(1) = 0; Y(2) = 0; Y(3) = 0; % SALIDA ACTUAL y(1) = 0; y(2) = 0; % SALIDA RESIDUAL U(1) = 0; U(2) = 0; U(3) = 0; % SE~NAL DE CONTROL ACTUAL u(1) = 0; u(2) = 0; % SE~NAL DE CONTROL RESIDUAL xmenos = zeros(2,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL X1 = 0; X2 = 0; % ESTADOS ACTUALES % CONDICIONES INICIALES DE LOS PARAMETROS Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA frec = 0.007; % FRECUENCIA DE LA SE~NAL DE REFERENCIA Ce = (1 + a1 + a2)*Ref; % VALOR INICIAL DE Ce thi = [-a1 -a2 b1 b2 Ce]; % VECTOR INICIAL DE PARAMETROS alfa=1000; Pi = alfa*eye(5); % MATRIZ DE COVARIANZA INICIAL lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA cmax = 100; cmin = 10; % UMBRALES DE ESTIMACION

5.6 Control Adaptivo de un Servomotor No Lineal


% PARAMETROS DE OPTIMIZACION Qo = 0.01; Ro = 0.04; % PARA EL FILTRO DE KALMAN R = 0.45; Qa = [0.05 0 0;0 0.1 0;0 0 1]; % PARA LA GANANCIA Ka % ******** LAZO DEL SISTEMA DE CONTROL ADAPTIVO ********* Mm = 2000; for r = 1:Mm t = r + 2; % SE~NAL DE REFERENCIA Yo(t)= Ref*sign(sin(frec*(t-2))); % ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t-1) Y(t-2) U(t-1) U(t-2) 1]; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi); % Nn*Nn = Pi => Nn*Nn = Pi S = inv(diag(Nn*ones(5,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t)/rho - thi*psin; j = psins*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j; Ps = (Ps - Hns*psins*Ps)/lamb; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps); % Nnew*Nnew = Ps Snew = inv(diag(Nnew*ones(5,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end % RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 = -th(1); ae2 = -th(2); be1 = th(3); be2 = th(4); Ce = th(5); ae11 = 0; ae12 =1; ae21 = -ae2; ae22 = -a1; GE = [ae11 ae12;ae21 ae22]; be11 = 0; be21 = 1; HE = [be11;be21]; ce11 =be2; ce12 = be1; CE = [ce11 ce12]; DE = [0]; % SALIDA RESIDUAL (DESVIACION) y(t) = Y(t) - Yo(t);

227

228

Control Adaptivo

% CALCULO DE LA GANANCIA Ko DEL ESTIMADOR DE KALMAN Ko = dlqe(GE,HE,CE,Qo,Ro); xmas = xmenos + Ko*(y(t) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR OPTIMO Ga = [GE zeros(2,1);-CE 1]; Ha = [HE;0]; Ca = [CE 0]; Ka = dlqr(Ga,Ha,Qa,R); % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t) = - Ka*[xmas;z]; % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t); % CALCULO DE Uin (VALOR D.C. DE U(t)) AE = 1 + ae1 + ae2; BE = be1 + be2; Uin = inv(BE)*(AE*Yo(t) - Ce); % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t) = u(t) + Uin; % LIMITANDO LA SE~NAL U(t) PARA EVITAR SATURACION if(U(t) > 1.4) U(t) = 1.4; elseif(U(t) <-1.4) U(t) = -1.4; end % MODELO NO LINEAL DE SEGUNDO ORDEN (DISCRETIZCION DIRECTA) TN = cc*sign(X2); X1 = X1 + T*X2; X2 = X2 + T*(-(N/M)*sin(X1) - (B/M + n^2*K*E/(M*R))*X2 ... - TN/M + (n*K*Kact/(R*M))*U(t) ); Y(t+1) = X1; end % ***************** FIN DEL LAZO DE CONTROL ************** % GRAFICOS ejex = linspace(0,Mm*T,Mm); subplot(2,1,1) plot(ejex,Yo(1:Mm),ejex,Y(1:Mm)); grid ylabel(Posicion Y (rad)) subplot(2,1,2) plot(ejex,U(1:Mm)); grid ylabel(Se~nal de control U (voltios)) xlabel(Tiempo en segundos) print -f -deps simsca % CREA simsca.eps

5.6 Control Adaptivo de un Servomotor No Lineal


2 Posicin Y (rad) 1 0 1 2 0

229

10

12

14

16

18

20

Seal de control U (voltios)

2 1 0 1 2 0

8 10 12 Tiempo en segundos

14

16

18

20

Figura 5.8: Resultado de la simulaci on del sistema de control adaptivo para controlar la posici on angular del servomotor D.C. sujeto a cargas no lineales.

5.6.8.

Implementaci on del Hardware

El sistema de control de posici on consta de un servomotor D.C. con mecanismo de reducci on, una varilla acoplada al eje del servomotor (la carga no lineal) perpendicular al eje de giro del servomotor, una etapa de potencia (el amplicador PWM) y un sensor de posici on conformado por un codicador optico (acoplado al eje del motor), un decodicador de cuadratura y un con tador de 16 bits. El hardware tambi en incluye una PC Pentium y una tarjeta de adquisici on de datos Lab-PC+. A la carga no lineal (la varilla met alica) se le pueden acoplar cargas adicionales. El esquema de implementaci on se ilustra en la gura 5.9 mientras que el proceso (el servomotor con carga no lineal) se ilustra en la gura 5.10. El Actuador El actuador est a conformado por el servomotor D.C. (de campo magn etico permanente y escobillas conmutadas), un generador PWM y una etapa de potencia. Debido a que el motor no responde inmediatamente a una tensi on de entrada; es decir, le toma un peque no tiempo para llegar a la m axima

230

Control Adaptivo

COMPUTADORA PERSONAL TARJETA LAB-PC+ SALIDAS ANALOGICAS DAC0 DAC1 PA0 . . . PA7 PB0 . . . PB7 PC1 . . . PC7 PC0 ETAPA DE POTENCIA Generador PWM Amplificador de potencia

Sensor (encoder)

PA COMPUERTAS DIGITALES DE ENTRADA Y SALIDA

MUX PB 16 bits Decodificador de cuadratura y contador UP / DOWN SERVOMOTOR DC

PC

Varilla Fs

OUTB0 CONTADOR / TEMPORIZADOR

Carga Adicional

Figura 5.9: Esquema de implementaci on del sistema de control de posici on.

5.6 Control Adaptivo de un Servomotor No Lineal


Codificador optico Reductor de velocidad Alimentacion

231

. Servomotor DC

11 00 00 11 00 11 00 11 00 11 00 11 00 11

Eje de salida Varilla Adaptador de carga

Carga adicional

11 00 00 11 00 11 00 11

Figura 5.10: Proceso servomotor D.C. con carga no lineal y codicador o ptico incorporado.

velocidad, es necesario usar un sistema que nos permita variar la velocidad del servomotor (entre un m nimo y un m aximo) as como tambi en el sentido de su rotaci on. Dicho sistema comprende un generador PWM LM3524 y un circuito de potencia (ver gura 5.11). Tal sistema nos permite variar la velocidad de acuerdo al ancho de pulso de la se nal PWM. El circuito PWM LM3524 genera se nales moduladas por ancho de pulso de 15.4 KHz, las cuales son luego amplicadas por el circuito de potencia, gener andose una tensi on de alimentaci on cuyos l mites son 25 volt. El circuito de potencia est a conformado por un sistema de disparo y dos pares de conmutadores A y B, tal como se muestra en la gura 5.12. El sistema de disparo permite la conmutaci on de cada par conmutador (A o B), de forma tal que no se produzcan cortocircuitos durante la conmutaci on. Cuando el sistema de disparo cierra el conmutador A y abre el B, el sentido de la corriente sigue la l nea punteada, induciendo de esta forma una tensi on +Vcc en el servomotor. Ahora, si el sistema de disparo abre el

232

Control Adaptivo

Ca

Ra

Amplificador de potencia

Rc

Viene de la salida A0 de la LAB-PC+

PWM Generador PWM Cp Rp

Salida A Salida B Al servomotor DC

Figura 5.11: Etapa de potencia.

Vcc

~ SENAL PWM

SISTEMA
DE DISPARO

A1 SERVOMOTOR DC B2

B1

A2

Par conmutador A = A1 + A2 Par conmutador B = B1 + B2

Figura 5.12: Esquema general del sistema de disparo y de conmutaci on.

conmutador A y cierra el B, el sentido de la corriente sigue la l nea segmentada, induciendo as una tensi on -Vcc en el servomotor. Esto signica que el motor recibe en sus bornes una tensi on de onda cuadrada, cuyo valor var a entre Vcc, con un consumo de corriente que depende de los conmutadores conformados por transistores MOSFET.

5.6 Control Adaptivo de un Servomotor No Lineal El Sensor de Posici on

233

El sensor de posici on esta conformado por un codicador o ptico rotatorio (interno al motor), un decodicador de cuadratura y un contador UP/DOWN. El codicador o ptico rotatorio consiste en: Una fuente de luz que puede ser un LED infrarrojo o l aser. Un disco opaco ranurado acoplado al eje del motor, que se mueve entre una fuente de luz permanente habilitada y un detector. A medida que gira el rotor, el paso de luz hacia el detector es habilitado o inhabilitado por un patr on de a reas oscuras y transparentes impreso en el disco, produciendo una se nal digital que puede ser f acilmente interpretada por el controlador de movimiento del sistema. Un sensor de luz; usualmente es un fototransistor o un fotodiodo. Un conformador de pulsos que convierte la se nal sinusoidal proveniente de la salida del fotodetector en se nal de onda cuadrada. El esquema b asico del codicador o ptico se muestra en la gura 5.13. El
Canal A Canal B Fuente de luz Transistor optico Eje del servomotor Disco con mascara

Figura 5.13: Estructura de un codicador o ptico rotatorio.

codicador usado en esta implementaci on, como en la mayor a de los casos, incluye dos pistas de marcas o ranuras en cuadratura (canales A y B), cada una asociada a una fuente de luz y un fotodedector independientes. Los canales A y B producen dos ondas cuadradas desfasadas 900 entre s que se utilizan para determinar la direcci on del movimiento. Por ejemplo, si el canal B adelanta al canal A, el eje est a girando en sentido antihorario, y viceversa.

234

Control Adaptivo

Si no se utiliza detecci on de cuadratura, la vibraci on puede causar el env o de pulsos err aticos al contador, incluso si la m aquina est a detenida. El codicador usado tiene una resoluci on de 512 ppr (pulsos por revoluci on). El decodicador de cuadratura es el CI LS7083 que activa la cuenta ascendente o descendente del contador UP/DOWN de 16 bits, dependiendo del sentido de giro del motor, captado por el desfasaje entre los trenes de pulsos de los canales A y B. El contador UP/DOWN est a conformado 4 CI 74HC193; dos de ellos entregan un grupo de 8 bits de datos (bus A) a la tarjeta LAB-PC+; de manera an aloga otro grupo igual de bits conforman el bus B (ver gura 5.14).
Clock UP 74HC Clock Down 193 Canal A LS7083 Canal B

4 bits Puerto digital PA 8 bits 4 bits

74HC 193

4 bits Puerto digital PB 8 bits 4 bits

74HC 193

74HC 193

Figura 5.14: Decodicador de cuadratura y contador UP/DOWN.

La Interfaz Lab-PC+ La interfaz entre el microcomputador, la planta, el actuador y el sensor es la tarjeta de adquisici on de datos Lab-PC+. Los terminales usados para el control son: 1. Una salida anal ogica (DAC0). La se nal de control se env a usando el terminal DAC0 al CI LM3524 (generador PWM) con una resoluci on de 12 bits para generar la se nal anal ogica.

5.6 Control Adaptivo de un Servomotor No Lineal 2. 3. 4.

235

Dos puertos digitales de entrada (PA y PB) de 8 bits. Tales puertos reciben los datos provenientes del contador UP/DOWN. El terminal OUTB0, que se utiliza como salida de una se nal de reloj para el funcionamiento del sistema de control. El terminal PC0 (bit 0 del puerto C), que se utiliza como entrada de la se nal de reloj Fs proveniente de OUTB0.

La se nal de reloj OUTB0 se genera a partir de una base de tiempos de 2 MHz que activa la salida del contador/temporizador 8253. Los puertos de entrada/salida provienen de la PPI (Interfaz Paralela Programable) 8255.

5.6.9.

Implementaci on del Software de Control

Consideraciones Generales El software de control debe implementar las ecuaciones del sistema en tiempo real, incluyendo la soluci on de las ecuaciones de Riccati para calcular las ganancias del controlador y del observador. Ya que la simulaci on del sistema no incluye estos tipos de c alculo, es necesario explicar sucintamente las ecuaciones involucradas en el sistema de control adaptivo a ser implementado en tiempo real. El modelo lineal continuo del proceso se obtiene de la ecuaci on (5.29): + (B + M nKact K nKact K ) + N = R R

+ 3,626 + + 17,4604 = 89,09 La ecuaci on de diferencias del proceso es (ver ecuaci on (5.31)): k + a1 k1 + a2 k2 = b1 vk1 + b2 vk2 donde (k ) = y (k ) y v (k ) = u(k ) (v es la se nal de control que requiere compensaci on). La ecuaci on can onica controlable a emplear en el algoritmo de control se da en la ecuaci on (5.32): xk = GXk1 + Huk1 ; yk = CXk

con x = Xk y u(k ) = uk . a con (ver ecuaci La ley de control es: uk = K a Xk on (5.26)): K a = (R + (H a )T P a H a )1 (H a )T P a Ga

236

Control Adaptivo

a se obtiene de (ver ecuaci donde la matriz P a (k ) = Pk on (5.27)): a a T a a a T a a a T a a 1 a T a Pk +1 = Q + (G ) Pk G + (G ) Pk H (R + (H ) Pk H ) (H ) Pk G a igual a la matriz nula, Para un per odo de muestreo, empezando con Pk iteramos 20 veces la ecuaci on anterior, lo que da como resultado una nueva a a odo de muestreo, la matv ariz resultante Pk matriz Pk . En el siguiente per se usa como matriz inicial para resolver nuevamente la ecuaci on de Riccati, a . Se ha observado que resultando luego de 20 iteraciones en una matriz Pk +1 odos de muestreo (lo P a alcanza un valor estacionario luego de 4 o 5 per cual es equivalente a 80 o 100 iteraciones). Esta forma de c alculo ahorra tiempo de computaci on. Los par ametros de optimizaci on empleados para el controlador o ptimo son R = 0.05 y Qa = 0,1 I3 , donde I3 es la matriz identidad de orden 3. La matriz de ganancia Ko del ltro de Kalman se puede obtener aplicando dualidad al problema de control. Es decir, haciendo los reemplazos siguientes:

G a GT ,

Ha CT ,

Qa Qo ,

R Ro ,

P a Po

a en las f ormulas de K a y Pk ptimo. De esta forma re+1 del controlador o solvemos la ecuaci on de Riccati para Po (como en el caso del controlador) para luego poder calcular Ko . Los par ametros de optimizaci on usados para el observador o ptimo (ltro de Kalman) son: Qo =0.01 y Ro =0.04, mientras que para el algoritmo de estimaci on son: P = 1000I5 (matriz de covarianza inicial, ecuaci on (5.33)), Cmin = 15, y Cmax = 100. Computacionalmente, el software de control requiere de muchos c alculos. Por ejemplo, para el proceso de estimaci on de par ametros se deben realizar dos descomposiciones de Cholesky para matrices de orden 5 empleando el m etodo de Jacobi (ver referencia [16], p agina 365), se deben calcular todos los valores propios y ordenarlos en una matriz sim etrica. Felizmente no es necesario efectuar inversi on de matrices porque el proceso controlado es univariable y la operaciones con matrices generalmente fueron entre matrices sim etricas. Adem as de la compensaci on de la no linealidad producida por la fricci on de Coulomb (a nadiendo 0.2 voltios a la se nal de control, dependiendo si la velocidad angular es positiva o negativa), se considera tambi en el efecto de saturaci on del servomotor cuando la se nal de control sobrepasa los 2.3 1.4 voltios, donde los 2.3 voltios corresponden al valor que hay que agregar (valor oset) para que la velocidad inicial sea cero. Este valor oset es propio del servomotor empleado.

5.6 Control Adaptivo de un Servomotor No Lineal Los Programas Fuente

237

Los programas necesarios para la implementaci on en tiempo real del sistema de control adaptivo dise nado se estructuran en tres archivos de c odigo fuente, los cuales son: 1. Archivo R1LLIB.H, que es un archivo de declaraciones de funciones denidas en el archivo R1LLIB.CPP. Estas funciones permiten facilitar el manejo de la tarjeta de adquisici on de datos Lab-PC+. Archivo R1LLIB.CPP, que tambi en es un archivo de deniciones de funciones declaradas en R1LLIB.H para facilitar el manejo de la tarjeta de adquisicion de datos Lab-PC+. Este archivo emplea la librer a de funciones NI-DAQ [25] y llama a la funci on CongurarHardware para, precisamente, congurar el hardware empleado. Archivo CON122.CPP: Constituye el software de control.

2.

3.

Ensamblaje del Software de Control El software de control emplea en su ejecuci on la siguiente secuencia: 1. 2. 3. 4. 5. Inicializa_Sistema(); Mide_Variables(&y,&r,&vel,t); Estima_Parametros(Th,y,u); Encuentra_Control(r,&u); u=Aplica_Control(u,vel);

La compilaci on de archivos para hacerlos ejecutables se realiza en Borland C/CPP mediante un proyecto que involucre todos los archivos, en nuestro caso, los archivos R1LLIB.H, R1LLIB.CPP y CON122.CPP. Una precauci on a considerar es la de especicar que la compilaci on se ejecute con el modelo de memoria Large. Otra precauci on es asegurarse que al inicio y al nal de la ejecuci on de los programas, el servomotor debe estar parado, lo que se logra enviando la se nal oset de 2.3 voltios. Los Programas Fuente Comentados
/*R1LLIB.H *Archivo de declaracion de funciones definidas en R1LLIB.CPP *Estas funciones permiten facilitar el manejo de la tarjeta *de adquisicion de datos Lab-PC+: Digital Input (16 bits),

238

Control Adaptivo

*Analog Output, Timer Generator, Polling. Usa funciones de *lecto/escritura de registros (inportb, outport). */ #if !defined (__R1LLIB_H_PRY) #define __R1LLIB_H_PRY //Configurando la tarjeta Lab-PC+ (Digital Input, Polling, //Analog Output, Timer) void ConfigurarHardware(unsigned,unsigned,unsigned,unsigned,int); //Salida de Voltage por R1LAOPort void EnviarVoltage(float); //Leer Posicion (16 bits leidos por R1LLSBPort y R1LMSBPort) unsigned int LeerPosicion(); //Leer Nivel del clock (polling). Devuelve 0 o 1 int NivelClock (); /*R1LLIB.CPP *Archivo de declaracion de funciones definidas en R1LLIB.H *Estas funciones permiten facilitar el manejo de la tarjeta *de adquisicion de datos Lab-PC+: Digital Input (16 bits), *Analog Output, Timer Generator, Polling. Usa funciones de *lecto/escritura de registros (inportb, outport). */ #include "r1llib.h" #include "nidaq.h" #include <dos.h> static unsigned R1LLSBPort; // direccion del LSB (bit menos //significativo) del puerto digital de entrada PA0-7 static unsigned R1LMSBPort; // direccion del MSB (bit mas //significativo del puerto digital de entrada PB0-7 static unsigned R1LPollPort; // direccion del puerto digital //de polling PC0-7. Esto es, la entrada al timer de la se~nal //de muestreo en forma de una sucesion de pulsos en el bit //indicado en la descripcion del bus (PC0) static unsigned R1LAOPort; // direccion de la salida //analogica (DAC0) static int R1LFS ; // frecuencia de muestreo (Hertz) /* Inicializando la tarjeta de adquisicion de datos */ void ConfigurarHardware (unsigned pollPort, unsigned lPort, unsigned hPort, unsigned salPort, int frec) { int cuentaTimer, deviceCode; cuentaTimer = (int)(2000000/frec); R1LPollPort = pollPort;

5.6 Control Adaptivo de un Servomotor No Lineal


R1LLSBPort = lPort; R1LMSBPort = hPort; R1LAOPort = salPort; R1LFS = frec; USE_LAB(); Init_DA_Brds(1,&deviceCode); ICTR_Setup(1,0,3,cuentaTimer,1); // clock de muestreo = timer0 DIG_Prt_Config(1,(int)(pollPort - 0x270),0,0); DIG_Prt_Config(1,(int)(lPort-0x270),0,0); DIG_Prt_Config(1,(int)(hPort-0x270),0,0); } /*Enviando al puerto de salida el voltaje especificado */ void EnviarVoltage (float u) { unsigned salidaDigital; salidaDigital = (unsigned) (409.5*u-0.5); outport(R1LAOPort,salidaDigital); } /*Detectando el numero de posiciones registrados en los contadores */ unsigned int LeerPosicion() { unsigned char oct1,oct2; oct1 = inportb(R1LLSBPort); oct2 = inportb(R1LMSBPort); return (255*oct2+oct1); } /*Detectando verdadero o falso en forma alternativa, de acuerdo a la frecuencia indicada en ConfigurarHardware */ int NivelClock () { unsigned char bytePoll; bytePoll = inportb (R1LPollPort); return (bytePoll&1); } /*************** CON122.CPP Software de Control **************/ #include "r1llib.h" #include <stdio.h> #include <math.h> #include <assert.h> #include <alloc.h> #include <conio.h>

239

240

Control Adaptivo

const float ESCALA= 2.*M_PI/(512.*19.7); /*ESCALA contiene la escala rad/pulsos */ const float LOW_r = 1.*M_PI/2.; /* valor LOW de la referencia */ const float HIGH_r= 1.*M_PI/3.; /* valor HIGH de la referencia */ /*Declaracion de las funciones GORDAS */ void Inicializa_Sistema(); void Mide_Variables(float *yk, float *r, float *vel, float t); void Estima_Parametros(float *Theta, float Yk, float Uk); void Encuentra_Control(float r, float *u); float Aplica_Control(float u, float ykp); /*Declaracion de las miles de variables globales existentes */ float a1, a2, b1, b2, U0, Cc; /*coeficientes de la ecuacion de diferencias; valor medio del control y valor medio de la salida */ float Td; /* periodo de muestreo */ float t, tsimul; /* tiempo de simulacion actual y total */ float Fs; /* frecuencia de muestreo */ int p0, pk; /* posicion en pulsos, anterior y actual */ /*IDENTIFICACION */ float Thk[5], Th[5]; /*vectores de estimacion de parametros, auxiliar y definitivo */ float ym1, ym2, um1, um2, ek, div, rt; /* ultimos dos valores de la posicion y del control, el error actual, el valor auxiliar div y el parametro r(k) */ float Pk[5][5],Nk[5][5],Sk[5],Psk[5][5],Psn[5][5],Psaux[5][5]; /*matriz P, su descomposicion usando Cholesky, N y matrices S(k), Ps(k), Psn(k) y una matriz auxiliar */ float Phi[5], Phin[5], Phins[5], Ro; /*vectores Psi(k), Psin(k), PsinS(k) y parametro rho */ float Cmax, Cmin, Co, LF; /*valores Cmax, Cmin, P, lambda(k) y numero condicion de C */ float calculaC(); /* max(eig(Psk))/min(eig(Psk)) */ /*Control Optimo y Observador Optimo */ float y, x[2], z, TOL, rr, u; /*valores de la salida, del estado, del integrador; tolerancia *para Riccati; actualizaci\on de los estados y de la se~nal de *control; todos los valores son relativos */ float Q[3][3], R, Ge[3][3], He[3], Ce[3], K[3]; */matrices Q, R, G^a, H^a, C^a y K del controlador optimo */ float Qb[2][2], Rb, G[2][2], H[2], C[2], Kb[2]; /*matrices Qb, Rb, G, H, C y Kb del algoritmo del observador optimo */ float P[3][3], Pb[2][2], Maux1[3][3], Maux2[3][3], Maux3[3][3];

5.6 Control Adaptivo de un Servomotor No Lineal

241

/*Matrices de Riccati del controlador y del observador, y auxiliares de calculo */ float Vaux1[3], Vaux2[3], Vaux3[3], Vaux4[3], Raux1; /*vectores auxil. para calcular matriz soluci\on de Riccati */ /*Aplicacion del Control */ float VcFC, VcFE, Wth, Ofst; /*valores de tension equivalente a la friccion de Coulomb y a la friccion est\atica; valor del umbral de velocidad angular y valor del offset, en la aplicacion de la se~nal de control */ ***** FUNCIONES **** ********************************************************/ float Aplica_Control(float u, float ykp) { float v; if(fabs(ykp)<=Wth) { if(u<0.) v = -VcFE; if(u>0.) v = VcFE; } else { if(u<0.) v = -VcFC; if(u>0.) v = VcFC; } if(u+v<-1.5) u= -1.5; else if(u+v>1.4) u= 1.4; EnviarVoltage(u+v+Ofst); return u; } /*Inicializando parametros y variables globales (P, Pb, G, Gb, H, Hb, a1, a2, b1, b2, ...). Usa InicializaHardware */ void Inicializa_Sistema() { /*Con Varilla a1=-1.9614; a2= .9631; b1= .0044; b2= .0043; Sin Varilla */ a1=-1.6246; a2= .6246; b1= .0479; b2= .0410; /*ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */ VcFE= .2; VcFC= .15; Wth = .1; Ofst= 2.3; Fs= 100.0; U0 = 0.;

242

Control Adaptivo

Td= 1./Fs; Cc = 0.; t = 0.; tsimul= 100.; G[0][0] = 0.; G[0][1]= 1.; H[0] = 0.; C[0] = b2; G[1][0] =-a2; G[1][1]=-a1; H[1] = 1.; C[1] = b1; Ge[0][0]= 0.;Ge[0][1]= 1.; Ge[0][2]=0.; He[0]= 0.; Ce[0]= b2; Ge[1][0]=-a2;Ge[1][1]=-a1; Ge[1][2]=0.; He[1]= 1.; Ce[1]= b1; Ge[2][0]=-b2;Ge[2][1]=-b1; Ge[2][2]=1.; He[2]= 0.; Ce[2]= 0.; P[0][0]= 0.;P[0][1]= 0.;P[0][2]= 0.; P[1][0]= 0.;P[1][1]= 0.;P[1][2]= 0.; P[2][0]= 0.;P[2][1]= 0.;P[2][2]= 0.; Q[0][0]= .1;Q[0][1]= 0.;Q[0][2]= 0.; Q[1][0]= 0.;Q[1][1]= .1;Q[1][2]= 0.; Q[2][0]= 0.;Q[2][1]= 0.;Q[2][2]= .1; R =.05; Pb[0][0]=0.;Pb[0][1]=0.;Qb[0][0]=.01;Qb[0][1]=0.; Pb[1][0]=0.;Pb[1][1]=0.;Qb[1][0]=0.;Qb[1][1]=.01; Rb =.04; y=0.; x[0]=0.; x[1]= 0.; z=0.; y=0.; u=0.; TOL= 1.e-3; Cmax= 100.; Cmin= 15.; ym1 = ym2 = um1 = um2 = 0.; Thk[0] = Th[0] = -a1; Pk[0][0] = 1000.; Thk[1] = Th[1] = -a2; Pk[1][1] = 1000.; Thk[2] = Th[2] = b1; Pk[2][2] = 1000.; Thk[3] = Th[3] = b2; Pk[3][3] = 1000.; Thk[4] = Th[4] = Cc; Pk[4][4] = 1000.; Pk[0][1] = Pk[0][2] = Pk[0][3] = Pk[0][4] = 0.; Pk[1][0] = Pk[1][2] = Pk[1][3] = Pk[1][4] = 0.; Pk[2][0] = Pk[2][1] = Pk[2][3] = Pk[2][4] = 0.; Pk[3][0] = Pk[3][1] = Pk[3][2] = Pk[3][4] = 0.; Pk[4][0] = Pk[4][1] = Pk[4][2] = Pk[4][3] = 0.; ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs); EnviarVoltage(Ofst); p0 = LeerPosicion(); } /*Midiendo posicion, velocidad y referencia. Estimando estado actual empleando observador optimo cuadratico */ void Mide_Variables(float *yk, float *r, float *vel, float t) { int i, j, k, n=2, niter; double delta; /*En primer lugar, la consigna: r= r(t)*/ if(t<20. || (40.<=t && t<60.) || (80.<=t && t<100.)) *r= LOW_r;

5.6 Control Adaptivo de un Servomotor No Lineal


else *r= HIGH_r; /*Ahora leo la posici\on */ pk= LeerPosicion(); *yk = ym1 + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA; p0= pk; /*Y la salida */ y= *yk - *r; /*Y la velocidad angular */ *vel= (5.*(*yk-ym1)+ *vel)/(1.+5.*Td); /*Y vamos con el Observador: Primero, Riccati */ delta= TOL+1.; niter= 0; while(delta>TOL && 20>niter++) { /*P(k).Ct y C.P(k) */ for(i=0; i<n; i++) for(Vaux1[i]=Vaux2[i]=0.,j=0; j<n; j++){ Vaux1[i] += Pb[i][j]*C[j]; Vaux2[i] += C[j]*Pb[j][i]; } /*Raux1= Rb + C.P(k).Ct */ for(Raux1= Rb, i=0; i<n; i++) Raux1 += C[i]*Vaux1[i]; /*G.P(k).Ct y C.P(k).Gt */ for(i=0; i<n; i++){ Vaux3[i]= Vaux4[i]= 0.; for(j=0; j<n; j++){ Vaux3[i] += G[i][j]*Vaux1[j]; Vaux4[i] += Vaux2[j]*G[i][j]; } } /*3er. Termino */ for(i=0; i<n; i++) for(j=0; j<n; j++) Maux1[i][j]= Vaux3[i]*Vaux4[j]/Raux1; /*G.P(k) */ for(i=0; i<n; i++) for(j=0; j<n; j++){ Maux2[i][j]= 0.; for(k=0; k<n; k++) Maux2[i][j] += G[i][k]*Pb[k][j]; } /*2o. Termino> G.P(k).Gt */

243

244

Control Adaptivo

for(i=0; i<n; i++) for(j=0; j<n; j++){ Maux3[i][j]= 0.; for(k=0; k<n; k++) Maux3[i][j] += Maux2[i][k]*G[j][k]; } /*Y Total */ delta= 0.; for(i=0; i<n; i++) for(j=0; j<n; j++){ Raux1= Qb[i][j]+Maux3[i][j]-Maux1[i][j]; if(fabs(Pb[i][j]-Raux1)>delta) delta= fabs(Pb[i][j]-Raux1); Pb[i][j]= Raux1; } }/* Fin de encontrar la de Riccati */ /*Encontramos ahora la de Observacion */ /*C.P */ for(Vaux1[i=0]=0.; i<n; Vaux1[++i]= 0.) for(j=0; j<n; j++) Vaux1[i] += C[j]*Pb[j][i]; /*R+C.P.Ct */ for(Raux1= Rb, i=0; i<n; i++) Raux1 += Vaux1[i]*C[i]; /*Y Final, encontramos K= C.P.Gt/(Rb+C.P.Ct) */ for(Kb[i=0]=0.; i<n; Kb[++i]=0.){ for(j=0; j<n; j++) Kb[i] += Vaux1[j]*G[i][j]; Kb[i] /= Raux1; } /*Y ahora actualizamos los estados */ rr= y - C[0]*x[0] - C[1]*x[1]; x[0]= x[0] + Kb[0]*rr; x[1]= x[1] + Kb[1]*rr; z = z - y /*C[0]*x[0] - C[1]*x[1]*/; } /*Dado el estimado de la salida, la salida y la referencia *actuales, y partiendo de los parametros estimados hasta *entonces, la siguiente funcion estima cuales son los *parametros actuales del sistema. Utiliza calculaC */ void Estima_Parametros(float *Theta, float Yk, float Uk) { int i, j, k; float val, val1;

5.6 Control Adaptivo de un Servomotor No Lineal

245

Phi[0]= ym1; Phi[1]= ym2; Phi[2]= um1; Phi[3]= um2; Phi[4]= 1.; for(Ro=i=0; i<5; i++) Ro += Phi[i]*Phi[i]; if(Ro>1.) Ro= sqrt(Ro); else Ro= 1.; for(i=0; i<5; i++) { Phin[i]= Phi[i]/Ro; for(j=0; j<5; j++) Nk[i][j]= Pk[i][j]; } /*Ahora hacemos Cholesky */ for(j=0; j<5; j++) { for(i=0, val=0.; i<j; i++) val += Nk[j][i]*Nk[j][i]; Nk[j][j]= sqrt(Nk[j][j]-val); for(i=j+1; i<5; i++) { for(k=0, val=0.; k<j; k++) val += Nk[i][k]*Nk[j][k]; Nk[i][j]= (Nk[i][j]-val)/Nk[j][j]; } } /*Y ahora encontramos la Sk*/ Sk[0]= 1./ Nk[0][0]; Sk[1]= 1./(Nk[1][0]+Nk[1][1]); Sk[2]= 1./(Nk[2][0]+Nk[2][1]+Nk[2][2]); Sk[3]= 1./(Nk[3][0]+Nk[3][1]+Nk[3][2]+Nk[3][3]); Sk[4]= 1./(Nk[4][0]+Nk[4][1]+Nk[4][2]+Nk[4][3]+Nk[4][4]); /*Y ahora la Psk y la Phins*/ for(i=0; i<5; i++) { Phins[i]= Phin[i]/Sk[i]; for(j=0; j<5; j++) Psk[i][j]= Sk[i]*Pk[i][j]*Sk[j]; } /*Y ahora la Rt y la LF y el ek y el div*/ for(i=0, rt= 1., val1= LF= ek= 0.; i<5; i++) { for(j=0, val=0.; j<5; j++) val += Psk[i][j]*Phins[j]; rt += val*Phins[i]; /* OJO QUE EN LA SIMULACION PONE "+=" */ val1+= Psk[i][i]; LF += val*val; ek += Thk[i]*Phin[i]; }

246

Control Adaptivo

LF = 1-.5*(rt-sqrt(rt*rt-4.*LF/val1)); ek = Yk/Ro - ek; div= LF + rt - 1.; /*Ahora Th y Theta y algo de Psk */ for(i=0; i<5; i++) { for(j=0, val= 0.; j<5; j++) { val += Psk[i][j]*Phins[j]; Psn[i][j]= Psk[i][j]; /* Esto es de Psk */ } Theta[i] = Th[i] = Thk[i] + val*ek/Sk[i]/div/* en la simul*/; } /*Y la Psk (tambien se puede hacer O(n2) en vez de O(n3)) */ for(i=0; i<5; i++) { for(j=0; j<5; j++) { for(k=0, val= val1= 0.; k<5; k++) { val += Psn[i][k]*Phins[k]; val1+= Phins[k]*Psn[k][j]; } Psaux[i][j]= Psk[i][j]= Psk[i][j]/LF - val*val1/div/LF; } } /*Ahora calculamos la C */ Co= calculaC(); /*Y renovamos las variables */ if( Co<= Cmin ) for(i=0; i<5; i++) { Thk[i]= Th[i]; for(j=0; j<5; j++) Pk[i][j]= Psk[i][j]; } else if(Co>= Cmax) { for(i=0; i<5; i++) for(j=0; j<5; j++) Nk[i][j]= Psk[i][j]; /*Ahora hacemos el Cholesky */ for(j=0; j<5; j++) {

5.6 Control Adaptivo de un Servomotor No Lineal


for(i=0, val=0.; i<j; i++) val += Nk[j][i]*Nk[j][i]; Nk[j][j]= sqrt(Nk[j][j]-val); for(i=j+1; i<5; i++) { for(k=0, val=0.; k<j; k++) val += Nk[i][k]*Nk[j][k]; Nk[i][j]= (Nk[i][j]-val)/Nk[j][j]; } } /*Y ahora encontramos la Sk*/ Sk[0]= 1./ Nk[0][0]; Sk[1]= 1./(Nk[1][0]+Nk[1][1]); Sk[2]= 1./(Nk[2][0]+Nk[2][1]+Nk[2][2]); Sk[3]= 1./(Nk[3][0]+Nk[3][1]+Nk[3][2]+Nk[3][3]); Sk[4]= 1./(Nk[4][0]+Nk[4][1]+Nk[4][2]+Nk[4][3]+Nk[4][4]); /*Y ahora la Psn y la Pk y la Thk*/ for(i=0; i<5; i++) { Thk[i]= Th[i]; for(j=0; j<5; j++) Pk[i][j]= Psn[i][j]= Sk[i]*Psk[i][j]*Sk[j]; } } /* */ ym2= ym1; ym1= Yk; um2= um1; um1= Uk; a1= -Theta[0]; a2= -Theta[1]; b1= Theta[2]; b2= Theta[3]; Cc= Theta[4];

247

G[0][0] = 0.; G[0][1]= 1.; H[0] = 0.; C[0] = b2; G[1][0] =-a2; G[1][1]=-a1; H[1] = 1.; C[1] = b1; Ge[0][0]= 0.;Ge[0][1]= 1.; Ge[0][2]=0.; He[0]= 0.; Ce[0]= b2; Ge[1][0]=-a2;Ge[1][1]=-a1; Ge[1][2]=0.; He[1]= 1.; Ce[1]= b1; Ge[2][0]=-b2;Ge[2][1]=-b1; Ge[2][2]=1.; He[2]= 0.; Ce[2]= 0.; } /*Calculando el numero condicion de la matriz de covarianza de la estimacion. Esto es: abs(max(eig(Psk))/min(eig(Psk))) */ float calculaC() { #define ROTATE(A, i, j, k, l) {g=A[i][j];h=A[k][l];A[i][j]=g-s*(h+g*tau); A[k][l]= h+s*(g-h*tau);} double D[5]; int n=5, nrot, j, iq, ip, i, k; double tresh, theta, tau, t, sm, s, h, g, c, b[5], z[5], val; int end=0;

248

Control Adaptivo

/*Este es el Algoritmo de Jacobi Inicializamos V a la Identidad, y b y D a la diagonal de A */ for(i=0; i<n; i++) { b[i]= D[i]= Psaux[i][i]; z[i]= 0.; } nrot= 0; for(i=0; i<50 && !end; i++) { /*para ver si ya hemos acabado */ sm= 0.; for(ip=0; ip<n-1; ip++) for(iq= ip+1; iq<n; iq++) sm += fabs(Psaux[ip][iq]); if(sm== 0.) { end= 1; continue; } /*en los primeros tres pasos*/ if(i<4) tresh= .2*sm/(n*n); else tresh= 0.; /*e iteraciones duras, ahora */ for(ip=0; ip<n-1; ip++) { for(iq= ip+1; iq<n; iq++) { g= 100.*fabs(Psaux[ip][iq]); /*Pasados cuatro items, saltar la rotacion si es peque~na */ if(i>4 && (fabs(D[ip]) +g == fabs(D[ip])) && (fabs(D[iq]) +g == fabs(D[iq]))) Psaux[ip][iq]= 0.; else if(fabs(Psaux[ip][iq])>tresh) { h= D[iq]-D[ip]; if(fabs(h)+g==fabs(h)) t= Psaux[ip][iq]/h; else { theta= .5*h/Psaux[ip][iq]; t= 1./(fabs(theta)+sqrt(1.+theta*theta));

5.6 Control Adaptivo de un Servomotor No Lineal


if(theta<0.) t= -t; } c= 1./sqrt(1+t*t); tau= s/(1.+c); z[ip] -= h; D[ip] -= h; Psaux[ip][iq] = 0.;

249

s= t*c; h= t*Psaux[ip][iq]; z[iq] += h; D[iq] += h;

for(j= 0 ; j<ip; j++) ROTATE(Psaux, j, ip, j, iq); for(j= ip+1; j<iq; j++) ROTATE(Psaux, ip, j, j, iq); for(j= iq+1; j<n ; j++) ROTATE(Psaux, ip, j, iq, j); nrot++; } } } for(ip=0; ip<n; ip++) { b[ip] += z[ip]; D[ip] = b[ip]; z[ip] = 0.; } } if(!end) { puts("Demasiadas iteraciones en Jacobi\n"); return 1.; } /*Vamos a ordenar los VEPS y los VAPS */ for(i= 0; i<n; i++) { val= D[k=i]; for(j=i+1; j<n; j++) if(D[j]>= val) val= D[k=j]; if( k!=i ) { D[k]= D[i]; D[i]= val; } } return fabs(D[0]/D[4]); } /*La siguiente funci\on emplea el error del sistema y la nueva estimacion de los parametros */ void Encuentra_Control(float r, float *U)

250
{ int i, j, k, n=3, niter; double delta; delta= TOL+1.; niter= 0; while(delta>TOL && 20>niter++) { /*P(k).H y HP(k) */ for(i=0; i<n; i++) for(Vaux1[i]=Vaux2[i]=0.,j=0; j<n; j++){ Vaux1[i] += P[i][j]*He[j]; Vaux2[i] += He[j]*P[j][i]; } /*Raux1= R + HP(k).H */ for(Raux1= R, i=0; i<n; i++) Raux1 += He[i]*Vaux1[i]; /*GP(k).H y HP(k).G */ for(i=0; i<n; i++){ Vaux3[i]= Vaux4[i]= 0.; for(j=0; j<n; j++){ Vaux3[i] += Ge[j][i]*Vaux1[j]; Vaux4[i] += Vaux2[j]*Ge[j][i]; } /*3er. Termino */ for(i=0; i<n; i++) for(j=0; j<n; j++) Maux1[i][j]= Vaux3[i]*Vaux4[j]/Raux1; /*GP(k) */ for(i=0; i<n; i++) for(j=0; j<n; j++){ Maux2[i][j]= 0.; for(k=0; k<n; k++) Maux2[i][j] += Ge[k][i]*P[k][j]; } /*2o. Termino> GP(k).G */ for(i=0; i<n; i++) for(j=0; j<n; j++){ Maux3[i][j]= 0.; for(k=0; k<n; k++) Maux3[i][j] += Maux2[i][k]*Ge[k][j]; } /*Y Total */

Control Adaptivo

5.6 Control Adaptivo de un Servomotor No Lineal


delta= 0.; for(i=0; i<n; i++) for(j=0; j<n; j++){ Raux1= Q[i][j]+Maux3[i][j]-Maux1[i][j]; if(fabs(P[i][j]-Raux1)>delta) delta= fabs(P[i][j]-Raux1); P[i][j]= Raux1; } }/* Fin de encontrar la de Riccati */ /*Encontramos ahora la de control */ /*HP */ for(Vaux1[i=0]=0.; i<n; Vaux1[++i]= 0.) for(j=0; j<n; j++) Vaux1[i] += He[j]*P[j][i]; /*R+HP.H */ for(Raux1= R, i=0; i<n; i++) Raux1 += Vaux1[i]*He[i]; /*Y Final, encontramos K= HP.G/(R+HP.H) */ for(K[i=0]=0.; i<n; K[++i]=0.){ for(j=0; j<n; j++) K[i] += Vaux1[j]*Ge[j][i]; K[i] /= Raux1; } /*encontrando el control y el nuevo estado del Observador*/ u= -(K[0]*x[0] + K[1]*x[1] + K[2]*z); Raux1= G[0][0]*x[0] + G[0][1]*x[1] + H[0]*u; x[1] = G[1][0]*x[0] + G[1][1]*x[1] + H[1]*u; x[0] = Raux1; /*ahora encontramos el valor ABSOLUTO */ *U = u + ((1.+a1+a2)*r-Cc)/(b1+b2); } /*Funci\on principal del programa */ void main() { int ant=0, act=0, k, n; FILE *out; float *yv, *uv, *rv, vel, y, u, r; Inicializa_Sistema(); clrscr(); assert(tsimul<120); t= tsimul/Td; n= (int)t; assert(NULL!=(uv= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(yv= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(rv= (float *)calloc(n/5,sizeof(float))));

251

252
t= u= vel= y= 0.; for(k=0; k<n;) { act=NivelClock(); if ((ant==0)&&(act==1)) { Mide_Variables(&y, &r, &vel, t); Estima_Parametros(Th, y, u); Encuentra_Control(r, &u); u= Aplica_Control(u, vel); if(!(k%5)) { yv[k/5]= y; rv[k/5]= r; uv[k/5]= u; } k++; t += Td; gotoxy(5,5); printf("%f",t); if(kbhit()) if(getch()==27) break; } ant=act; } EnviarVoltage(Ofst); out=fopen("c2.out","wt"); for (int i=0; i<n/5; i++) fprintf(out,"%10f %10f %10f %10f %10f\n", i*5*Td, rv[i], yv[i], uv[i], rv[i]-yv[i]); fclose(out); }

Control Adaptivo

5.6.10.

Resultados Experimentales

Los resultados experimentales mostrados en las guras 5.15 y 5.16 demuestran la validez del procedimiento de dise no sugerido. Dichos resultados se obtuvieron para una se nal de referencia escal on cambiante de /3 a /2. Dos casos extremos fueron tomados en consideraci on: el control con ausencia de carga (gura 5.15) y el control con carga no lineal (gura 5.16). En ambos casos, el controlador adaptivo es capaz de controlar la posici on del eje del servomotor a pesar de la presencia simult anea de la carga no lineal y de las no linealidades inherentes (las fricciones est atica y de Coulomb, y la saturaci on del servomotor). Los experimentos se realizaron con los siguientes par ametros de optimizaci on. Para el estimador de estado se seleccion o Qo = 0,01 y Ro = 0,04 (ecuaciones (5.16) y (5.17)) y para la ley de control o ptima se eligi o R = 0,05

5.7 Problemas Resueltos

253

y Qa = 0,1I3 (ecuaci on (5.27)), donde I3 es la matriz identidad de dimensi on tres. El tiempo de muestreo, sucientemente grande como para poder efectuar todo el c omputo requerido por muestra, fue de Ts =0.01 s.
2 Posicin (radianes) 1.5 1 0.5 0 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

1.5 Seal de control (voltios) 1 0.5 0 0.5 1 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100

Figura 5.15: Control adaptivo de la posici on del servomotor. Primer caso: servomotor no acciona carga alguna.

5.7.

Problemas Resueltos

En la secci on problemas resueltos de los cap tulos 4 al 8, la soluci on a los problemas se encuentra, seg un el caso, en uno o m as archivos con extensi on m escritos en c odigo MATLAB. En cada problema, la selecci on del tiempo de muestreo es a conveniencia del dise no. Problema 5.1 El problema 3.1 presenta las ecuaciones que gobiernan la din amica del sistema de suspensi on de un bus (ver gura 3.12). Dise nar un sistema de control adaptivo con autosintonizaci on para lograr el objetivo de control siguiente: la salida del proceso y = x2 x1 (referencia nula) no debe presentar sobreimpulsos mayores que el 5 %, y luego de 20 segundos, las oscilaciones

254
2.5 Posicin (radianes) 2 1.5 1 0.5 0 0 10 20 30 40 50 60 Tiempo en segundos 70 80

Control Adaptivo

90

100

1.5 Seal de control (voltios) 1 0.5 0 0.5 1 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100

Figura 5.16: Control adaptivo de la posici on del servomotor. Segundo caso: servomotor acciona la carga no lineal.

originadas por un disturbio escal on de 10 cm (provocadas por imperfecciones en la pista), pr acticamente deben desaparecer. Soluci on: Ver programa p3adap1.m. Este es un problema de rechazo a los disturbios. Es interesante anotar que el car acter adaptivo del sistema de control dise nado, permite que las especicaciones de rechazo del disturbio se mantengan a pesar de que var e la masa del bus. Supongamos que la masa del bus sin pasajeros es m1 = 2500 kg y lleno cambia a 3500 kg. Ejecute el programa p3adap1.m con este nuevo dato y ver a que el objetivo de control pr acticamente se sigue cumpliendo.
% p3adap1.m SOLUCION DEL PROBLEMA 5.1 clear all % PARAMETROS DEL PROCESO m1 = 2500; k1 = 80000; b1 = 350; m2 = 320; k2 = 500000; b2 = 15020; a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1; a33 = -(b1/m1+b1/m2+b2/m2); a43 = -(k1/m1+k1/m2+k2/m2); % MODELO LINEAL A = [0 1 0 0 -b1*b2/(m1*m2) 0 a23 -b1/m1

5.7 Problemas Resueltos


b2/m2 0 a33 1 k2/m2 0 a43 0]; B = [0 0;1/m1 b1*b2/(m1*m2);0 -b2/m2;(1/m1+1/m2) -k2/m2]; C = [0 0 1 0]; D = [0 0]; CONVERSION AL ESPACIO DISCRETO T=0.5; % TIEMPO DE MUESTREO [G,H,C,D] = c2dm(A,B,C,D,T,zoh); % ESPACIO DE ESTADO FT CUANDO ACTUA LA SE~NAL CONTROL u Y EL DISTURBIO w ES NULO [num,den]=ss2tf(G,H,C,D,1); a1 = den(2); a2 = den(3); a3 = den(4); a4 = den(5); b1 = num(2); b2 = num(3); b3 = num(4); b4 = num(5); F.T. cuando actua disturbio w y control u es nulo [numd,dend]=ss2tf(G,H,C,D,2); % dend = den j1=numd(2); j2=numd(3); j3=numd(4); j4=numd(5); F.T. del proceso: y = (num/den)*u + (numd/den)*w PARAMETROS PARA OPTIMIZAR LA GANANCIA F DEL FILTRO DE KALMAN Xi = 1; Sigma = 1; PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1; Qa = 1*[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1]; CONDICIONES INICIALES Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA nn = 4; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS NN=13; % NUMERO DE PARAMETROS A ESTIMAR Ce = (1 + a1 + a2+ a3+a4)*Ref; thi =[-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4 Ce]; alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL lamb=0.98; % FACTOR DE MEMORIA Y(1) = 0; Y(2) = 0; Y(3) = 0; Y(4)=0; Y(5) =0; % SALIDA U(1)= 0; U(2) = 0; U(3) = 0; U(4)=0; U(5)=0; % CONTROL w(1)= 0; w(2) = 0; w(3) = 0; w(4)=0; w(5)=0; xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL MM = 200; LAZO DEL SISTEMA DE CONTROL ADAPTIVO ******************** for t=1:MM; t1=t+1; SE~NAL DEL DISTURBIO w(t1+4) = 0.01;%*sign(sin(0.03*t1)); SE~NAL DE REFERENCIA W(t1+4) = 0; MODELO LINEAL DEL PROCESO CON DISTURBIO Y(t1+4)=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) ...

255

% % %

% % %

256

Control Adaptivo

U(t1+3) U(t1+2) U(t1+1) U(t1) ... w(t1+3) w(t1+2) w(t1+1) w(t1)]*... [-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4]; y(t1+4) = Y(t1+4) - W(t1+4); % salida residual % ESTIMACION DE PARAMETROS (METODO MCRM) psi=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) U(t1+3) ... U(t1+2) U(t1+1) U(t1) ... w(t1+3) w(t1+2) w(t1+1) w(t1) 1]; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi); S = inv(diag(Nn*ones(NN,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; lamb = 1 -(rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t1+4)/rho - psin*thi; j = psins*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j; Ps = (Ps - Hns*psins*Ps)/lamb; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps); % Nnew*Nnew = Ps Snew = inv(diag(Nnew*ones(NN,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end % RECUPERACION DE LA ECUACION DE ESTADO ae1=-th(1); ae2=-th(2); ae3=-th(3); ae4=-th(4); be1=th(5); be2=th(6); be3=th(7); be4=th(8); je1=th(9); je2=th(10); je3=th(11); je4=th(12); Ce=th(13); nume = [0 be1 be2 be3 be4]; dene = [1 ae1 ae2 ae3 ae4]; [GE,HE,CE,DE] = tf2ss(nume,dene); numde = [1 je1 je2 je3 je4]; [GE,FE,CE,DE] = tf2ss(numde,dene); % CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN

5.7 Problemas Resueltos


F = dlqe(GE,FE,CE,Sigma,Xi); xmas = xmenos + F*(y(t1+4) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; % ec (22) y ec. (23) Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t1+4) = - Ka*[xmas;z];% -Kw*w(t1+4); % ACTUALIZACION DE ESTADOS xmenos = GE*xmas + HE*u(t1+4); AE = 1 + ae1 + ae2 + ae3 + ae4; BE = be1 + be2 + be3 + be4; Uin = inv(BE)*(AE*W(t1+4) - Ce); % CALCULO DE LA SE~NAL ACTUAL DE CONTROL U U(t1+4) = u(t1+4) + Uin; end % ********** FIN DEL LAZO DE CONTROL % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,W(6:MM+5),ejex,Y(6:MM+5)); grid ylabel(Salida y = x1-x2 (m)) xlabel(Tiempo en segundos) subplot(2,1,2), grid plot(ejex,U(6:MM+5)); grid xlabel(Tiempo en segundos) ylabel(Fuerza de control (N)) print -deps -f p3adap1

257

Problema 5.2 El problema 3.2 describe las ecuaciones que gobiernan la din amica longitudinal de un avi on comercial volando a velocidad de crucero (altura y velocidad constantes). El control del a ngulo de inclinaci on del avi on (ver gura 3.14) es un problema longitudinal a resolver. El objetivo de control entonces es dise nar un autopiloto que manipulando el a ngulo e del deector de elevaci on, controle el a ngulo de inclinaci on del avi on. Se pide dise nar un sistema de control adaptivo que genere una fuerza de control, de modo que la salida del proceso (el a ngulo de inclinaci on ) presente un sobreimpulso menor al 10 % y un tiempo de estabilizaci on menor que 10 s, con un error en estado estable nulo. Por ejemplo, si la entrada de

258
0.01 Salida y = x1x2 (m) 0.005 0 0.005 0.01 0

Control Adaptivo

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

20 Fuerza de control (N)

40

60

80 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

Figura 5.17: Salida y = x1 x2 y la fuerza de control dise nada, correspondientes al problema 5.1. referencia es 0.2 rad, entonces el a ngulo de inclinaci on no debe exceder el valor de 0.22 rad, y luego de 10 segundos, permanecer en 0.2 rad.
% p4adap1.m SOLUCION DEL PROBLEMA 5.2 clear all % PARAMETROS DEL PROCESO nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS NN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS % cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Sigma = 10; Xi = 1; % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke; r+nn=4 R = 400; Qa = [0 0 0 0;0 0 0 0;0 0 0.001 0;0 0 0 0.001]; % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-0.313 56.7 0;-0.0139 -0.426 0;0 56.7 0]; Bc = [0.232;0.0203;0];

5.7 Problemas Resueltos


Cc = [0 0 1]; Dc = [0]; T = 0.1; % PERIODO DE MUESTREO % MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); b1 = num(2); b2 = num(3); b3=num(4); % CONDICIONES INICIALES Ref = 0.2; % MAGNITUD DE LA SE~NAL DE REFERENCIA Ce = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 -a3 b1 b2 b3 Ce]; alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA Y(1)=0; Y(2)=0; Y(3)=0; y(1)=0; y(2)=0; y(3)=0; % SALIDA U(1)=0; U(2)=0; U(3)=0; u(1)=0; u(2)=0; u(3)=0; % CONTROL xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL % LAZO DEL SISTEMA DE CONTROL ***************************** MM = 2000; for t = 1:MM % SE~NAL DE REFERENCIA v1(t+3)=0.2*sign(sin(0.005*t)); % proceso Y(t+3) = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t)]*... [-a1 -a2 -a3 b1 b2 b3]; y(t+3) = Y(t+3) - v1(t+3); % SALIDA RESIDUAL (DESVIACION) % ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t) 1]; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi); % Nn*Nn = Pi => Nn*N = Pi S = inv(diag(Nn*ones(NN,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t+3)/rho - psin*thi; j = psins*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j; Ps = (Ps - Hns*psins*Ps)/lamb;

259

260

Control Adaptivo

% % %

tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps); % Nnew*Nnew = Ps Snew = inv(diag(Nnew*ones(NN,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 = -th(1); ae2 = -th(2); ae3 = -th(3); be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7); nume = [0 be1 be2 be3]; dene = [1 ae1 ae2 ae3]; [GE,HE,CE,DE] = tf2ss(nume,dene); CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE,HE,CE,Sigma,Xi); xmas = xmenos + F*(y(t+3) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+3) = - Ka*[xmas;z]; % ec. (27) ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+3); % CALCULO DEL VALOR DE EQUILIBRIO U AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3; Uin = inv(BE)*(AE*v1(t+3) - Ce); CALCULO DE LA SE~NAL ACTUAL DE CONTROL U(K) U(t+3) = u(t+3) + Uin; end % *********************************

% GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,v1(3:MM+2),ejex,Y(3:MM+2)), grid ylabel(Inclinacion (rad)) subplot(2,1,2) plot(ejex,U(3:MM+2)), grid

5.7 Problemas Resueltos


xlabel(Tiempo en seg) ylabel(Angulo del deflector (rad)) print -deps -f p4adap1
0.4 Inclinacin (rad) 0.2 0 0.2 0.4 0

261

20

40

60

80

100

120

140

160

180

200

Angulo del deflector (rad)

1 0.5 0 0.5 1 0

20

40

60

80 100 120 Tiempo en seg

140

160

180

200

Figura 5.18: Angulo de inclinaci on y se nal de control ( angulo del deector) correspondientes al problema 5.2. Problema 5.3 La gura 3.20 muestra un monorriel de dos carros descrito en el problema 3.5. El problema a resolver es el control de velocidad del carro de m aquinas mediante un sistema de control adaptivo con autosintonizaci on. Para garantizar a los pasajeros un viaje confortable, los cambios de velocidad deben realizarse con un tiempo de estabilizaci on menor que 15 s y con m nimo sobreimpulso. El error en estado estable debe ser nulo. Simule una se nal de referencia que cambie la velocidad de 30 a 20 m/s y demuestre que se cumplen las especicaciones de dise no. Luego enfrente el problema de seguimiento. Mostrar que la velocidad de la m aquina puede seguir una trayectoria predeterminada de velocidades. El programa p7adap1b.m trata el caso de referencia arbitraria. Revise tal programa si desea ver detalles al respecto.

262

Control Adaptivo

% p7adap1a.m SOLUCION DEL PROBLEMA 5.3 clear all % PARAMETROS GENERALES nn = 6; r=1; % nn: orden del proceso; r: NUMERO DE SALIDAS NN = 13; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS % cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 2; Sigma = 1; % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1; Qa = 1*eye(r+nn,r+nn); % PARAMETROS DEL PROCESO M1=1300; M2=2600; M3=2600; K12=100000; K23=100000; B12=500; B23=500; B1=5000; B2=10000; B3=10000; % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO A=[0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0 0 0 0 1 0 0 K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2 0 0 0 0 0 1 0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3]; B=[0 1 0 0 0 0]; alfa = 1; % CONSTANTE TACOMETRICA C=[ 0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa]; D=[0;0;0]; [numc,denc]=ss2tf(A,B,C,D); % MODELO LINEAL DISCRETO T = 0.5; % periodo de muestreo0.2 [G,H,C,D]=c2dm(A,B,C,D,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); a4=den(5); a5=den(6); a6=den(7); b1 = num(2); b2 = num(3); b3=num(4); b4=num(5); b5=num(6); b6=num(7); % CONDICIONES INICIALES Ref = 30; % MAGNITUD DE LA SE~NAL DE REFERENCIA Ce = (1+a1+a2+a3+a4+a5+a6)*Ref; % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 -a3 -a4 -a5 -a6 b1 b2 b3 b4 b5 b6 Ce]; alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA Y(1)=0; Y(2)=0; Y(3)=0; Y(4)=0; Y(5)=0; Y(6)=0; y(1)=0; y(2)=0; y(3)=0; y(4)=0; y(5)=0; y(6)=0; % salida

5.7 Problemas Resueltos


U(1)=0; U(2)=0; U(3)=0; U(4)=0; U(5)=0; U(6)=0; u(1)=0; u(2)=0; u(3)=0; u(4)=0; u(5)=0; u(6)= 0; % control xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL INICIO DEL LAZO DE CONTROL ******************* MM = 600; for t = 1:MM SE~NAL DE REFERENCIA Yo(t+6)= 25 + 5*sign(sin(0.02*t)); MODELO LINEAL DEL PROCESO Y(t+6) = [Y(t+5) Y(t+4) Y(t+3) Y(t+2) Y(t+1) Y(t)... U(t+5) U(t+4) U(t+3) U(t+2) U(t+1) U(t)]*... [-a1 -a2 -a3 -a4 -a5 -a6 b1 b2 b3 b4 b5 b6]; y(t+6) = Y(t+6) - Yo(t+6); % salida residual (desviaci on) ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+5) Y(t+4) Y(t+3) Y(t+2) Y(t+1) Y(t)... U(t+5) U(t+4) U(t+3) U(t+2) U(t+1) U(t) 1]; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi); % Nn*Nn = Pi => Nn*N = Pi S = inv(diag(Nn*ones(NN,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t+6)/rho - psin*thi; j = psins*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j; Ps = (Ps - Hns*psins*Ps)/lamb; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps); % Nnew*Nnew = Ps Snew = inv(diag(Nnew*ones(NN,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1=-th(1); ae2=-th(2); ae3=-th(3); ae4=-th(4); ae5=-th(5); ae6=-th(6);

263

% %

264
be1=th(7); be2=th(8); be3=th(9); be4=th(10); be5=th(11); be6=th(12); Ce=th(13); ae11=0; ae12=1; ae13=0; ae14=0; ae15=0; ae16=0; ae21=0; ae22=0; ae23=1; ae24=0; ae25=0; ae26=0; ae31=0; ae32=0; ae33=0; ae34=1; ae35=0; ae36=0; ae41=0; ae42=0; ae43=0; ae44=0; ae45=1; ae46=0; ae51=0; ae52=0; ae53=0; ae54=0; ae55=0; ae56=1; ae61=-ae6; ae62=-ae5; ae63=-ae4; ae64=-ae3; ae65=-ae2; ae66=-ae1; GE = [ae11 ae21 ae31 ae41 ae51 ae61 ae12 ae22 ae32 ae42 ae52 ae62 ae13 ae23 ae33 ae43 ae53 ae63 ae14 ae24 ae34 ae44 ae54 ae64 ae15 ae25 ae35 ae45 ae55 ae65 ae16 ae26 ae36 ae46 ae56 ae66];

Control Adaptivo

% %

be11=0; be21=0; be31=0; be41=0; be51=0; be61=1; HE=[be11;be21;be31;be41;be51;be61]; ce11 =be6; ce12=be5; ce13=be4; ce14=be3; ce15=be2; ce16=be1; CE = [ce11 ce12 ce13 ce14 ce15 ce16]; DE = [0]; CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE,HE,CE,Sigma,Xi); xmas = xmenos + F*(y(t+6) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+6) = - Ka*[xmas;z]; % ec. (27) ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+6); % ec. (15) AE = 1 + ae1 + ae2 + ae3 + ae4 + ae5 + ae6; BE = be1 + be2 + be3 + be4 + be5 + be6; Uin = inv(BE)*(AE*Yo(t+6) - Ce); CALCULO DE LA SE~NAL DE CONTROL U(k) U(t+6) = u(t+6) + Uin; end % FIN DEL LAZO DE CONTROL ********************** GRAFICOS ejex = linspace(0,MM*T,MM);

5.7 Problemas Resueltos


subplot(2,1,1) plot(ejex,Yo(7:MM+6),ejex,Y(7:MM+6)), grid ylabel(Y1: Velocidad (m/s)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,U(7:MM+6)), grid xlabel(Tiempo en segundos) ylabel(Voltaje de control u) print -deps -f p7adap1a
40 Y1: Velocidad (m/s) 30 20 10 0 0

265

50

100

150 200 Tiempo en segundos

250

300

30 Voltaje de control u 20 10 0 10 0

50

100

150 200 Tiempo en segundos

250

300

Figura 5.19: Velocidad del carro de m aquinas y la fuerza de control para el problema 5.3. Problema 5.4 La gura 3.22 muestra el proceso ascensor tratado en el problema 3.6. El problema a resolver es posicionar suavemente el ascensor en un piso determinado, lo que signica sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizaci on menor que 10 s. Para no saturar al actuador (el amplicador de potencia), la se nal de control debe estar dentro del rango de 200 voltios. Dise nar un sistema de control de posici on adaptivo con autosintonizaci on que cumpla las especicaciones pedidas.
% p8adap1.m SOLUCION DEL PROBLEMA 5.4

266
40 Y1: Velocidad (m/s) 30 20 10 0 0

Control Adaptivo

50

100

150 200 Tiempo en segundos

250

300

30 Voltaje de control u 20 10 0 10 0

50

100

150 200 Tiempo en segundos

250

300

Figura 5.20: Velocidad del carro de m aquinas y la fuerza de control para el problema 5.3. La referencia es arbitraria.

clear all % PARAMETROS GENERALES nn = 4; r=1; % nn: orden del proceso; r: NUMERO DE SALIDAS NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS % cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 0.001; Sigma = 400; % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1; Qa = 1*eye(r+nn,r+nn); % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5]; Bc = [0.001;0;0;0]; Cc = [0 1 0 0]; Dc = [0]; T = 0.8; % PERIODO DE MUESTREO % MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); a4=den(5); b1 = num(2); b2 = num(3); b3=num(4); b4=num(5); % CONDICIONES INICIALES Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref

5.7 Problemas Resueltos


Ce = (1 + a1 + a2 + a3 + a4)*Ref; % Uo = 0 (arbitrario) thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce]; alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA Y(1)=0;Y(2)=0;Y(3)=0;Y(4)=0; y(1)=0;y(2)=0;y(3)=0;y(4)=0; U(1)=0;U(2)=0;U(3)=0;U(4)=0; u(1)=0;u(2)=0;u(3)=0;u(4)=0; xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL INCIO DEL LAZO DE CONTROL ********************************** MM = 1000; for t = 1:MM SE~NAL DE REFERENCIA g(t+4)=6 + 4*sign(sin(0.01*t)); MODELO LINEAL DEL PROCESO Y(t+4)=[Y(t+3) Y(t+2) Y(t+1) Y(t) ... U(t+3) U(t+2) U(t+1) U(t)]*[-a1 -a2 -a3 -a4 b1 b2 b3 b4]; y(t+4) = Y(t+4) - g(t+4); % salida residual (desviacion) ESTIMACION DE PARAMETROS (METODO MCRM)% psi = [Y(t+3) Y(t+2) Y(t+1) Y(t) ... U(t+3) U(t+2) U(t+1) U(t) 1]; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi); % Nn*Nn = Pi => Nn*N = Pi S = inv(diag(Nn*ones(NN,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t+4)/rho - psin*thi; j = psins*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j; Ps = (Ps - Hns*psins*Ps)/lamb; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps); % Nnew*Nnew = Ps Snew = inv(diag(Nnew*ones(NN,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end

267

% %

268

Control Adaptivo

% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 =-th(1); ae2 =-th(2); ae3=-th(3); ae4 =-th(4); be1 = th(5); be2 = th(6); be3= th(7); be4 = th(8); Ce=th(9); ae11 = 0; ae12 = 1; ae13 = 0; ae14 = 0; ae21 = 0; ae22 = 0; ae23 = 1; ae24 = 0; ae31 = 0; ae32 = 0; ae33 = 0; ae34 = 1; ae41 =-ae4; ae42 = -ae3; ae43 = -ae2; ae44 = -ae1; GE = [ae11 ae12 ae13 ae14;ae21 ae22 ae23 ae24;... ae31 ae32 ae33 ae34;ae41 ae42 ae43 ae44]; be11=0; be21=0; be31=0; be41=1; HE=[be11;be21;be31;be41]; ce11=be4; ce12=be3; ce13=be2; ce14=be1; CE=[ce11 ce12 ce13 ce14]; DE=[0]; % CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE,HE,CE,Sigma,Xi); xmas = xmenos + F*(y(t+4) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+4) = - Ka*[xmas;z]; % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+4); AE= 1 + ae1 + ae2 + ae3 + ae4; BE= be1 + be2 + be3 + be4; Uin = inv(BE)*(AE*g(t+4) - Ce); % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+4) = u(t+4) + Uin; % LIMITANDO LA SE~NAL U(t) if(U(t+4) > 200) U(t+4) = 200; elseif(U(t+4) <-200) U(t+4) = -200; else U(t+4) = U(t+4); end end % FIN DEL LAZO DE CONTROL ********************** % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,g(4:MM+3),ejex,Y(4:MM+3)), grid ylabel(Posicion)

5.7 Problemas Resueltos


xlabel(Tiempo en segundos) subplot(2,1,2), grid plot(ejex,U(3:MM+2)), grid xlabel(Tiempo en segundos) ylabel(Voltaje de control) print -deps -f p8adap1
10 8 Posicin (m) 6 4 2 0 0 100 200 300 400 500 Tiempo en segundos 600 700 800

269

200 Voltaje de control 100 0 100 200 0

100

200

300 400 500 Tiempo en segundos

600

700

800

Figura 5.21: Posici on del ascensor y la fuerza de control (problema 5.4). Problema 5.5 La gura 2.2 muestra dos tanques id enticos colocados en cascada. La secci on horizontal A=9 m2 de cada tanque es constante. El objetivo de control on del modelo es controlar la altura H2 empleando el ujo Qo . La deducci linealizado del proceso se describe en el ejemplo 2.1. Dise nar un controlador adaptivo con autosintonizaci on que cumpla los siguientes requerimientos: tiempo de estabilizaci on menor que 15 s, sobreimpulso menor al 5 % y error en estado estable nulo. Estas condiciones de dise no deben mantenerse cuando se cambie la referencia (por ejemplo de 3 a 1 m). Adem as, el ujo de entrada (la se nal de control) no debe sobrepasar los 3 m3 /s.
% p9adap1.m SOLUCION DEL PROBLEMA 5.5 clear all % PARAMETROS GENERALES

270

Control Adaptivo

% % % %

% %

nn = 2; r=1; % nn: ORDEN DEL PROCES; r: NUMERO DE SALIDAS NN = 5; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS cmax = 100; cmin = 15 % PARA EL ESTIMADOR DE PARAMETROS PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 100; Sigma = 0.01; PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1; Qa = 0.1*eye(r+nn,r+nn); PARAMETROS DEL PROCESO NO LINEAL gamma=0.4; gg=9.81; rho=1.23; A=9; Qo=3; H=Qo^2/(gamma^2*rho*gg); Z=(gamma*sqrt(rho*gg))/(2*A*sqrt(H)); MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-Z 0;Z -Z]; Bc = [1;0]; Cc = [1 0]; Dc = [0]; T = 0.8; % PERIODO DE MUESTREO MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); Gcc,Hcc, Ccc, Dcc: REPRESENTACION CANONICA CONTROLABLE a11 = 0; a12 =1; a21 = -a2; a22 = -a1; b11 = 0; b21 = 1; c11 =b2; c12 = b1; Gcc = [a11 a12;a21 a22]; Hcc = [b11;b21]; Ccc =[c11 c12]; Dcc = [0]; CONDICIONES INICIALES Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref Ce = (1 + a1 + a2)*Ref; % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 b1 b2 Ce]; alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA Y(1) = 0; Y(2) = 0; y(1) = 0; y(2) = 0; % salida U(1 )= 0; U(2) = 0; u(1) = 0; u(2) = 0; % control H1(1) =0; H1(2)=0; xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL INICIO DEL LAZO DE CONTROL ********************************** MM = 200; for t = 1:MM SE~NAL DE REFERENCIA g(t+2)=2-1*sign(sin(0.08*t)); MODELO LINEAL DEL PROCESO

5.7 Problemas Resueltos


y(t+2) = [y(t+1) y(t) u(t+1) u(t)]*[-a1 -a2 b1 b2]; Y(t+2) = y(t+2) + g(t+2); % salida actual ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+1) Y(t) U(t+1) U(t) 1]; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi); % Nn*Nn = Pi => Nn*N = Pi S = inv(diag(Nn*ones(NN,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; lamb=1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t+2)/rho - psin*thi; j = psins*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j; Ps = (Ps - Hns*psins*Ps)/lamb; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps); % Nnew*Nnew = Ps Snew = inv(diag(Nnew*ones(NN,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1=-th(1); ae2=-th(2); be1=th(3); be2=th(4); Ce=th(NN); ae11 = 0; ae12 =1; ae21 = -ae2; ae22 = -ae1; GE = [ae11 ae12;ae21 ae22]; be11 = 0; be21 = 1; HE = [be11;be21]; ce11 =be2; ce12 = be1; CE = [ce11 ce12]; DE = [0]; CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE,HE,CE,Sigma,Xi); xmas = xmenos + F*(y(t+2) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); CALCULO DE LA LEY DE CONTROL RESIDUAL

271

272

Control Adaptivo

u(t+2) = - Ka*[xmas;z]; % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+2); % CALCULO DE Uo (VALOR D.C. DE U) % AE(z^(-1)) = 1 + ae1*z^(-1) + ae2*z^(-1); % BE(z^(-1)) = be1*z^(-1) + be2*z^(-1); % AE(z^(-1))*Y(k) = BE(z^(-1))*U(k) + Ce; Ce = th(N), N=5 % En estado estacionario: z=1, Y(k) = Yo(k) (Referencia) % entonces: U(z=1) = inv(B(z=1)*[A(z=1)*Ref - ce] AE = 1 + ae1 + ae2; BE = be1 + be2; Uin = inv(BE)*(AE*g(t+2) - Ce); % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+2) = u(t+2) + Uin; % LIMITANDO LA SE~NAL U(t) if(U(t+2) > 3) U(t+2) = 3; elseif(U(t+2) <-3) U(t+2) = -3; end end % FIN DEL LAZO DE CONTROL ********************** % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,g(3:MM+2),ejex,Y(3:MM+2)), grid ylabel(Nivel en metros) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,U(3:MM+2)), grid xlabel(Tiempo en segundos) ylabel(Flujo de control (m/s)) print -deps -f p9adap1

Problema 5.6 El proceso electromec anico mostrado en la gura 3.26 se describe en el problema 3.8. Dise nar un sistema de control adaptivo con autosintonizaci on para controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre 100 voltios. La se nal de referencia es arbitraria (problema de seguimiento).
% p11adap1.m SOLUCION DEL PROBLEMA 5.6 clear all % PARAMETROS GENERALES

5.7 Problemas Resueltos


3 Nivel en metros 2.5 2 1.5 1 0

273

20

40

60 80 100 Tiempo en segundos

120

140

160

4 Flujo de control (m/s) 2 0 2 4 0

20

40

60 80 100 Tiempo en segundos

120

140

160

Figura 5.22: Nivel controlado H2 y el ujo de control para el problema 5.5.

nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS NN = 7; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS PARAMETROS DEL PROCESO: J = 0.01; % MOMENTO DE INERCIA DEL MOTORM (kgm2/s2) Ke =0.01; Kt = 0.01; % CONSTANTE ELECTROMOTRIZ (Nm/A) R = 12; % RESISTENCIA (Ohmios) C = 0.5; % CONDENSADOR (uF) L = 0.5; % INDUCTANCIA DE LA ARMADURA (H) Kw = 1.8; % CONSTANTE TORSIONAL (Nm/rad) MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-1/(R*C) -1/C 0;... Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke);0 Kt/J 0]; Bc = [1/(R*C);0;0]; Cc = [0 0 1]; Dc = [0]; T = 0.2; % PERIODO DE MUESTREO MODELO LINEAL DISCRETO DEL PROCESO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); b1 = num(2); b2 = num(3); b3=num(4); PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 0.001; Sigma = 10;

274

Control Adaptivo

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 0.1*eye(r,r); Qa = 0.001*eye(r+nn,r+nn); % Gcc,Hcc, Ccc, Dcc: REPRESENTACION CANONICA CONTROLABLE a11 =0; a12 =1; a13 =0; a21 =0; a22 =0 ; a23 =1; a31 = -a3; a32 = -a2; a33 =-a3; b11 = 0; b21 = 0; b31 = 1; c11 =b3; c12 = b2; c13 = b1; Gcc = [a11 a12 a13;a21 a22 a23;a31 a32 a33]; Hcc = [b11;b21;b31]; Ccc =[c11 c12 c13]; Dcc = [0]; % CONDICIONES INICIALES Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref Ce = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 -a3 b1 b2 b3 Ce]; alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA Y(1) = 0; Y(2) = 0; Y(3) = 0; y(1)=0; y(2)=0; y(3)=0; U(1 )= 0; U(2) = 0; U(3) = 0; u(1)=0; u(2)=0; u(3)=0; xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL % INICIO DEL LAZO DE CONTROL ********************************** MM = 400; for t = 1:MM % SE~NAL DE REFERENCIA Yo(t+3)= 0.4 + 3*(sin(0.02*t))+0.01*t; % MODELO LINEAL DEL PROCESO Y(t+3) = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t)]*... [-a1 -a2 -a3 b1 b2 b3]; y(t+3) = Y(t+3) - Yo(t+3); % SALIDA RESIDUAL (DESVIACION) % ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t) 1]; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi); % Nn*Nn = Pi => Nn*N = Pi S = inv(diag(Nn*ones(NN,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t+3)/rho - psin*thi; j = psins*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j;

5.7 Problemas Resueltos


Ps = (Ps - Hns*psins*Ps)/lamb; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps); % Nnew*Nnew = Ps Snew = inv(diag(Nnew*ones(NN,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 = -th(1); ae2 = -th(2); ae3 = -th(3); be1 = th(4); be2 = th(5); be3 = th(6); Ce = th(7); ae11 = 0; ae12 =1; ae13 = 0; ae21 = 0; ae22 = 0; ae23 = 1; ae31 =-ae3; ae32 = -ae2; ae33 = -ae1; GE = [ae11 ae12 ae13;ae21 ae22 ae23;ae31 ae32 ae33]; be11 = 0; be21 = 0; be31 = 1; HE = [be11;be21;be31]; ce11 =be3; ce12 = be2; ce13 = be1; CE = [ce11 ce12 ce13]; DE = [0]; CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE,HE,CE,Sigma,Xi); xmas = xmenos + F*(y(t+3) - CE*xmenos); z = z -CE*xmas; CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+3) = - Ka*[xmas;z]; ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+3); AE = 1 + ae1 + ae2 + ae3; BE = be1 + be2 + be3; Uin = inv(BE)*(AE*Yo(t+3) - Ce); CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+3) = u(t+3) + Uin; LIMITANDO LA SE~NAL U(t) if(U(t+3) > 100) U(t+3) = 100; elseif(U(t+3) <-100) U(t+3) = -100; end

275

% %

% %

276

Control Adaptivo

end % FIN DEL LAZO DE CONTROL ********************** % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)); grid ylabel(Velocidad (rad/s)) subplot(2,1,2) plot(ejex,U(3:MM+2)); grid xlabel(Tiempo en seg) ylabel(Voltaje de control) print -deps -f p11adap1
8 Velocidad (rad/s) 6 4 2 0 2 0 10 20 30 40 50 60 70 80

40 Voltaje de control 20 0 20 40 0

10

20

30

40 50 Tiempo en seg

60

70

80

Figura 5.23: Velocidad angular controlada y el voltaje de control para el problema 5.6. Problema 5.7 En el problema 3.3 se describe el proceso de la bola rodando a lo largo de una barra con un grado de libertad, tal como se muestra en la gura 3.16. Una leva conecta la barra con un engranaje accionado por un servomotor. Se desea dise nar un sistema de control adaptivo que pueda posicionar la bola a 0.5 m de un extremo de la barra de 1 m de longitud. Evidentemente, la oscilaci on de la bola debe estar restringida sobre la barra. El voltaje de control no debe sobrepasar los 40 voltios.

5.7 Problemas Resueltos


% p5adap1.m SOLUCION DEL PROBLEMA 5.7 clear all % PARAMETROS GENERALES nn = 4; r=1; % nn: ORDEN DEL PROCES; r: NUMERO DE SALIDAS NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS % cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 1; Sigma = 0.001; % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1; Qa = 1*[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;... 0 0 0 1 0;0 0 0 0 1]; % PARAMETROS DEL PROCESO M=0.11; % masa de la bola(kg) R=0.015; % radio de la bola(m) d=0.03; % distancia de la leva al engranaje(m) g=9.8 ; % aceleracion de la gravedad (m/s2) L=1.0; % longitud de la barra(m) J=9.99e-6; % inercia de la barra(kgm2)T=0.7,Sigma=0.001 % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [0 1 0 0;0 0 M*g*d/(L*(J/R^2+M)) 0;0 0 0 1;0 0 0 0]; Bc = [0;0;0;1]; Cc = [1 0 0 0]; Dc = [0]; T = 0.7; % PERIODO DE MUESTREO T=0.12 % MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); a4=den(5); b1 = num(2); b2 = num(3); b3=num(4); b4=num(5); % CONDICIONES INICIALES Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref Ce = (1 + a1 + a2 + a3 +a4)*Ref; % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce]; alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIAL lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA Y(1)=0; Y(2)=0; Y(3)=0; Y(4)=0; y(1)=0; y(2)=0; y(3)=0; y(4)=0; U(1)=0; U(2)=0; U(3)=0; U(4)=0; u(1)=0; u(2)=0; u(3)=0; u(4)=0; xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL % INICIO DEL LAZO DE CONTROL ********************************** MM = 300;

277

278

Control Adaptivo

for t = 1:MM % SE~NAL DE REFERENCIA Yo(t+4)= 0.5;%sign(sin(0.005*t)); % MODELO LINEAL DEL PROCESO Y(t+4) = [Y(t+3) Y(t+2) Y(t+1) Y(t)... U(t+3) U(t+2) U(t+1) U(t)]*... [-a1 -a2 -a3 -a4 b1 b2 b3 b4]; y(t+4) = Y(t+4) - Yo(t+4); % salida residual % ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+3) Y(t+2) Y(t+1) Y(t)... U(t+3) U(t+2) U(t+1) U(t) 1]; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi); % Nn*Nn = Pi => Nn*N = Pi S = inv(diag(Nn*ones(NN,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins*Ps*psins; lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t+4)/rho - psin*thi; j = psins*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j; Ps = (Ps - Hns*psins*Ps)/lamb; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps); % Nnew*Nnew = Ps Snew = inv(diag(Nnew*ones(NN,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end % RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 = -th(1); ae2 = -th(2); ae3 = -th(3); ae4 = -th(4); be1 = th(5); be2 = th(6); be3 = th(7); be4 = th(8); Ce = th(9); dene = [1 ae1 ae2 ae3 ae4]; nume = [0 be1 be2 be3 be4]; [GE,HE,CE,DE] = tf2ss(nume,dene); % CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE,HE,CE,Sigma,Xi); xmas = xmenos + F*(y(t+4) - CE*xmenos); % OBSERVACION

5.8 Problemas Propuestos


z = z -CE*xmas; % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+4) = - Ka*[xmas;z]; % ec. (27) % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+4); % ec. (15) AE = 1 + ae1 + ae2 + ae3 + ae4; BE = be1 + be2 + be3 + be4; Uin = inv(BE)*(AE*Yo(t+4) - Ce); % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+4) = u(t+4) + Uin; end end % FIN DEL LAZO DE CONTROL ************************* % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)), grid ylabel(Posicion (m)) subplot(2,1,2) plot(ejex,U(3:MM+2)), grid xlabel(Tiempo en seg) ylabel(Voltaje de control) print -deps -f p5adap1

279

5.8.

Problemas Propuestos

Problema 5.8 En el proceso de la gura 3.24(a) se desea reducir la humedad h del material a granel de la tolva (ver problema 3.7). La banda transportadora, que se desplaza a una velocidad constante de v = 1 m/s, introduce el material a un horno de secado. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la se nal de voltaje vr . El horno puede ser modelado como un proceso de primer orden. La gura 3.24(b) muestra la F.T del proceso. Dise nar un sistema de control adaptivo con autosintonizaci on con el prop osito de estabilizar la humedad del material en la banda transportadora, a pesar de que el tiempo muerto T = v/d var a entre 9 y 11 s. Para prop ositos

280
1 0.8 Posicin (m) 0.6 0.4 0.2 0 0 50 100 150 200

Control Adaptivo

250

10 Voltaje de control 5 0 5 10 15 0 50 100 150 Tiempo en seg 200 250

Figura 5.24: Posici on de la bola y el voltaje de control para el problema 5.7. del modelado del proceso, el tiempo muerto puede ser descrito mediante la aproximaci on de Pad e de tercer orden (ver ejemplo ??): eT s 1 Tt s/2 + (Tt s)2 /10 (Tt s)3 /120 num(s) = den(s) 1 + Tt s/2 + (Tt s)2 /10 + (Tt s)3 /120

Especicaciones de dise no: tiempo de estabilizaci on menor que 40 s, error en estado estacionario nulo y porcentaje de sobreimpulso menor al 5 %. Problema 5.9 Las ecuaciones del modelo linealizado para controlar la posici on del ca no n montado en la torreta de un tanque (gura 3.28), empleando un actuador hidr aulico se detallan en el problema 3.9. (a) Dise nar un sistema de control adaptivo con autosintonizaci on para controlar el a ngulo de elevaci on con las especicaciones siguientes: tiempo de estabilizaci on menor que 5 s, m nimo sobreimpulso en la respuesta y error de estado estacionario nulo. Los disturbios tipo escal on pueden actuar simult aneamente o no, y pueden ser positivos o negativos. Para cada caso, el sistema de control dise nado debe ser capaz de minimizar sus efectos.

5.8 Problemas Propuestos

281

(b) Lo mismo que (a), pero en este caso para controlar el angulo azimutal. Problema 5.10 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la secci on 3.3, en donde la carga no lineal posee ahora dos grados de libertad on de la carga con el eje del servocon Lo = 2L1 /3 y Mo =0.02 kg. La uni motor no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema 3.12. Dise nar un sistema de control adaptivo con autosintonizaci on para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso en la respuesta. Problema 5.11 La gura 3.32 muestra el proceso p endulo doble no lineal que es una extensi on del p endulo simple descrito en la secci on 3.1. El acoplamiento entre los dos p endulos de igual longitud no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema propuesto 3.13. Considerar que la carga esf erica es de 0.02 kg. Dise nar un sistema de control adaptivo con autosintonizaci on para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso en la salida, de modo tal que el p endulo doble permanezca en posici on vertical. Problema 5.12 La gura 3.33 muestra el proceso doble gr ua puente no lineal que es una extensi on del proceso gr ua-puente descrito en la secci on 3.2. El acoplamiento entre las dos secciones iguales de la varilla no es exible. Para poder determinar un modelo no lineal din amico para este proceso, conviene emplear las ecuaciones de Lagrange de la mec anica cl asica (ver problema 3.14). Considerar que la carga esf erica es de 0.02 kg. Dise nar un sistema de control adaptivo con autosintonizaci on para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso, de modo tal que la doble gr ua-puente permanezca en posici on vertical cuando el carro realiza un recorrido predeterminado. Problema 5.13 La gura 1.1 muestra un carro de masa m = 1000 kg desplaz andose con una velocidad v gracias a la acci on de la fuerza u producida por su motor. Si se

282

Control Adaptivo

desprecia la inercia de las ruedas y se asume que la fuerza de fricci on bv , donde b= 50 N-s/m es el coeciente de fricci on, es lo u nico que se opone al movimiento del carro, entonces la din amica del proceso puede modelarse como (ver ejemplo 1.16): mv (t) + bv (t) = u(t); v = dv dt

Dise nar un sistema de control adaptivo con autosintonizaci on para controlar la velocidad del m ovil con m nimo tiempo de estabilizaci on y m nimo sobreimpulso en la salida. La se nal de referencia puede ser arbitraria (problema de seguimiento). Problema 5.14 El motor D.C. es un actuador muy popular en los sistemas de control, ya que su movimiento rotatorio, mediante acoples adecuados en su eje, puede convertirse f acilmente en movimiento de traslaci on como por ejemplo, en fajas transportadoras y en brazos manipuladores. La gura 4.3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. Las ecuaciones que gobiernan el comportamiento din amico del motor fueron derivadas en el ejemplo 4.1. Dise nar dos sistemas de control adaptivo con autosintonizaci on. El primero para estabilizar la velocidad angular del eje del motor con las especicaciones siguientes: tiempo de estabilizaci on menor que 4 s, error en estado estable menor al 1 % y sobreimpulso en la salida menor al 5 %. El segundo sistema de control adaptivo a dise nar debe estabilizar la posici on del eje del motor con las mismas especicaciones de dise no.

Cap tulo 6

Control Predictivo
En este cap tulo se desarrolla un procedimiento para dise nar un sistema de control predictivo basado en modelos. El algoritmo de control predictivo empleado es el denominado control matricial din amico, el cual puede ser tambi en del tipo escalar. Para validar el procedimiento de dise no propuesto, se presenta una aplicaci on: control predictivo de la posici on angular de un servomotor sujeto a cargas no lineales variables. La pen ultima secci on, problemas resueltos, trata el dise no de sistemas de control predictivo para diferentes procesos empleando leyes de control escalar y matricial. Todos los archivos correspondientes a los ejercicios, problemas, dise nos, simulaciones y software desarrollados se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

6.1.

Control Predictivo Basado en Modelos

El Control Predictivo Basado en Modelos [7], [8] es una metodolog a de control que usa el modelo del proceso para calcular y optimizar las predicciones de las acciones de control y de la salida controlada. Esta metodolog a se ha desarrollado alrededor de ciertos principios, dos de los cuales son: Empleo de un modelo del proceso para pronosticar su salida a controlar en instantes de tiempo futuro. C alculo de una acci on de control o ptima basada en la minimizaci on de funciones de costo, posiblemente incluyendo restricciones en las variables del proceso.

284

Control Predictivo

Los diferentes miembros de la familia del Control Predictivo Basado en Modelos dieren principalmente en el modelo usado para representar el proceso con sus perturbaciones, y en las funciones de costo a ser minimizadas (con o sin restricciones). En lo que sigue del cap tulo, se desarrollan los principios del Control Predictivo Basado en Modelos para su aplicaci on en sistemas univariables. De la gama de algoritmos de control predictivo existentes, nos ocupamos en particular del denominado Control Matricial Din amico (Dynamic Matrix Control). Para validar el procedimiento de dise no propuesto, se presenta y discute una aplicaci on: control predictivo de la posici on angular de un servomotor sujeto a cargas no lineales variables. Es importante resaltar que el control predictivo es de naturaleza abierta y cuenta con muchas contribuciones, tanto en lo acad emico como tambi en en el mundo industrial. Muchas aplicaciones del control predictivo son usadas hoy en todos los campos de la actividad industrial. El buen rendimiento de tales aplicaciones es muy apreciada; por ello, actualmente existe un creciente inter es en esta metodolog a, si bien el trabajo pionero se inici o alrededor de hace dos d ecadas.

6.2.

Principios del Control Predictivo Basado en Modelos

El control predictivo pronostica la salida de la planta en un escenario de tiempo de duraci on N2 (el horizonte de tiempo N2 ). Tal predicci on depende de las salidas y entradas pasadas, pero tambi en del escenario del control futuro. La obtenci on del modelo que reeje lo m as elmente posible la evoluci on din amica de la planta, es la llave del exito en las aplicaciones. La notaci on usada para derivar los principios del control predictivo es la siguiente: t, representa el tiempo discreto (t = 0, 1, 2, . . . ). u(t), denota la entrada al proceso y constituye la variable manipulada o se nal de control. y (t), es la salida del proceso y constituye la la variable controlada. w(t), representa la trayectoria deseada (set point). r(t), denota la trayectoria de referencia.

6.2 Principios del Control Predictivo Basado en Modelos

285

u(t + k/t), denota los valores futuros de la entrada en el tiempo t + k postulados en el tiempo t, o simplemente, dado t. y (t + k/t), denota los valores futuros de la salida basado en las mediciones disponibles en el tiempo t: {y (t), y (t 1), . . . , u(t 1), u(t 2), . . .} y en los valores futuros de la entrada postulados en el tiempo t: {u(t/t), u(t + 1/t), . . .} Con relaci on a la gura 6.1, el principio del control predictivo se caracteriza por la siguiente estrategia:
Politica de control pasada Politica de control futura 1 2 Trayectoria deseada Trayectoria de referencia 1 2 Salida pasada del proceso Pasado Tiempo Muerto

1 2 Momento presente t

Futuro

N2

Figura 6.1: Estrategia del control predictivo. En cada tiempo t, la salida del proceso y (t + k ) se pronostica sobre un horizonte k = 1 . . . N2 . Los valores pronosticados se denotan como y (t + k/t) y a N2 se le denomina el horizonte de predicci on. La predicci on se realiza mediante el modelo del proceso, el cual se asume que est a disponible. El pron ostico en cuesti on depende de las entradas y salidas pasadas, pero tambi en del escenario del control futuro u(t + k/t), k = 0, . . . , N2 1; es decir, de las acciones de control que se intentan aplicar a partir del tiempo t.

286

Control Predictivo Una trayectoria de referencia r(t + k/t), k = 1, . . . , N2 , que se inicia en r(t/t) = y (t) y se dene sobre el horizonte de predicci on. Esta trayectoria describe la forma de guiar la salida del proceso desde su valor actual y (t) hasta la trayectoria deseada w(t). El vector de control u(t + k/t), k = 0, . . . , N2 1, se calcula para minimizar una funci on de costo espec ca que depende del error del control predictivo r(t + k/t) y (t + k/t), k = 1, . . . , N2 . Al proceso real s olo se le aplica el primer elemento del vector de control optimo calculado u(t + k/t), k = 0, . . . , N2 1, mientras que se dejan de lado los dem as elementos de dicho vector. En el pr oximo instante de muestreo, todas las secuencias temporales se desplazan para dar cabida a las nuevas mediciones de la salida y (t +1) y a las del vector de control u(t + k + 1/t + 1), cuyo primer elemento es generalmente diferente al primer elemento del vector u(t + k/t), previamente calculado. Este principio se denomina estrategia del horizonte retroactivo.

La estrategia del control predictivo comprende: el proceso de predicci on a trav es de un modelo del proceso, la especicaci on de una trayectoria de referencia, la estructuraci on de la futura ley de control, la denici on de la funci on de costo (y sus restricciones) y el c alculo del escenario de control o ptimo. Tal estrategia puede ser visualizada en el diagrama de bloques mostrado en la gura 6.2.

Entradas y salidas pasadas MODELO Entradas futuras OPTIMIZADOR Funcion de costo

+ Trayectoria de Salidas referencia predecidas -

restricciones

Figura 6.2: Estrategia del Control Predictivo Basado en Modelos

6.3 El Modelo del Proceso

287

6.3.

El Modelo del Proceso

El proceso de una entrada y una salida, probablemente no lineal, puede modelarse como: y (t) = x(t) + n(t) (6.1) tal como se ilustra en la gura 6.3, donde y (t) es la salida medible del proceso, u(t) es la entrada al proceso (la se nal de control), x(t) es la salida del modelo y n(t) es el disturbio en el proceso.

n u MODELO
Figura 6.3: Modelo del proceso bajo perturbaciones.

El Disturbio n(t) La se nal de disturbio n(t) incluye todos los efectos no deseados en la salida y (t). Esta se nal representa el efecto conjunto de todos los disturbios sobre el proceso, otras entradas no medibles, ruido de medici on, errores de modelado, incertidumbres, etc. El disturbio n(t), que es de car acter estoc astico, puede ser modelado mediante un ltro coloreado de la forma: C (z 1 ) n(t) = e(t) D(z 1 ) (6.2)

donde z 1 es el operador de desplazamiento, e(t) es un ruido blanco no correlacionado con media cero, y los polinomios son de la forma: C (z 1 ) = 1 + c1 z 1 + + cnc z nc D(z
1

(6.3) (6.4)

) = 1 + d1 z

+ + dnd z

nd

El ltro de disturbio debe dise narse: para eliminar disturbios en el estado estable (cuando z = 1), como ltro selectivo (para eliminar una determinada frecuencia) y para incrementar la robustez del sistema en la presencia de errores de medici on. Estructuras t picas de los polinomios del ltro pueden ser: C (z 1 ) = 1 + cz 1 ; D(z 1 ) = (1 + dz 1 )(1 z 1 )

288 La Salida x(t) del Modelo

Control Predictivo

La se nal x(t) representa el efecto del proceso en la salida y (t) debido a la entrada u(t). De nuevo, x(t) no es una se nal medible. En general, la relaci on entre u(t) y x(t) puede representarse mediante un modelo din amico gen erico de la forma: x(t) = f (x(t 1), x(t 2), . . . , u(t 1), u(t 2), . . .) (6.5)

donde f (.) es una funci on que puede estructurarse de diversas formas. Es decir, f (.) puede ser una ecuaci on de diferencias, una red neuronal o una caja negra con par ametros a ser estimados. El Modelo CARIMA El modelo CARIMA, del ingl es Controlled Autoregressive Integrated Moving Average, es un modelo lineal b asico y bastante extendido en su aplicaci on y es precisamente el que emplearemos. El modelo CARIMA del proceso puede ser representado por: A(z 1 )y (t) = B (z 1 )u(t) + donde: C (z 1 ) e(t) D(z 1 ) (6.6)

A(z 1 ) = 1 + a1 z 1 + ... + ana z na B (z 1 ) = b1 z 1 + ... + bnb z nb

(6.7) (6.8)

El origen del t ermino CARIMA se debe a que la ecuaci on de diferencias del modelo del proceso presenta tres componentes, a saber, la componente salida autoregresiva: y (k ) = a1 y (k 1) a2 y (k 2) ... ana y (k na ) el componente promedio temporal de control: + b0 u(k 1) + b1 u(k 2) + ... + bnb u(k nb 1) y el componente promedio temporal integrado del error e(t): + e(k ) + c1 e(k 1) + c2 e(k 2) + ... + cnc e(k nc ) 1 z 1

6.3 El Modelo del Proceso

289

Por ejemplo, para un proceso de segundo orden sin presencia de perturbaon CARIMA toma la forma: ciones; es decir, con C (z 1 ) = 0, la representaci y (t) = x(t) = b1 z 1 + b2 z 2 B (z 1 ) u ( t ) = u(t) A(z 1 ) 1 + a1 z 1 + a2 z 2 (6.9)

la cual conduce a la ecuaci on de diferencias: y (t) = a1 y (t 1) a2 y (t 2) + b1 u(t 1) + b2 u(t 2) El modelo lineal CARIMA m as generalizado es de la forma: A(z 1 )y (t) = C (z 1 ) B (z 1 ) u ( t ) + e(t) F (z 1 ) D(z 1 ) (6.11) (6.10)

Notar en (6.11) que la salida y (t) del modelo tambi en cumple que (ver ecuaci on (6.1): y (t) = x(t) + n(t)
y = donde: u si on es: B AF

n e

C AD .

La representaci on predictiva de la u ltima expre(6.12)

y (t + k/t) = x(t + k/t) + n(t + k/t)

Ejemplo 6.1 El modelo lineal de orden 2 del servomotor D.C. sujeto a cargas no lineales descrito en la secci on 3.3 es: q = w w = N q M n2 KE B + M MR w+ nKact K u RM

Asumiendo que el ruido de medici on n(t) en la posici on del eje del servomotor (la salida del proceso) es coloreado: n(t) = determine su modelo CARIMA. Soluci on: La funci on de transferencia de pulso del proceso posee la forma: b1 z + b2 b1 z 1 + b2 z 2 B (z 1 ) q (z ) = 2 = = u(z ) z + a1 z + a2 1 + a1 z 1 + a2 z 2 A(z 1 ) 1 e(t) 1 z 1

290 y a nadiendo el ruido de medici on obtenemos: q (z ) =

Control Predictivo

B (z 1 ) 1 B (z 1 ) u ( z ) + n ( t ) = u(z ) + e(t) 1 1 A(z ) A(z ) 1 z 1

donde e(t) es ruido blanco gaussiano con media nula. La ecuaci on de diferencias del proceso ruidoso viene a ser: q (t) = (1 a1 )q (t 1) + (a1 a2 )q (t 2) + a2 q (t 3)+ b1 u(t 1) + (b2 b1 )u(t 2) b2 u(t 3) + e(t) + a1 e(t 1) + a2 e(t 2) En el siguiente ejemplo analizaremos la se nal n(t) resultante.

6.4.

El Modelo del Predictor

El predictor y (t + k/t) de la se nal de salida y el predictor n(t + k/t) de la se nal de perturbaci on pueden ser modelados empleando representaciones serie y serie/paralelo como se detalla a continuaci on.

6.4.1.

Predicci on de y (t + k/t)

Para predecir y (t+k/t) existen dos posibles esquemas de implementaci on, los cuales se muestran en la gura 6.4 para un modelo de segundo orden.
x(t+k-1/t) x(t+k-2/t) u(t+k-1/t) u(t+k-2/t) MODELO PARALELO x(t+k/t) u(t+k-1/t) u(t+k-2/t) y(t+k-1/t) y(t+k-2/t) MODELO SERIE / x(t+k/t) PARALELO

Figura 6.4: Representaci on de los modelos paralelo y serie/paralelo.

El Modelo Paralelo El modelo paralelo, llamado algunas veces modelo independiente, puede ser usado para procesos estables y es el que se implementa por defecto. En

6.4 El Modelo del Predictor este modelo la salida y (t) se realimenta a s misma. Su expresi on es: y (t) = B (z 1 ) 1 u(t) + e(t) = x(t) + n(t) 1 A(z ) 1 z 1

291

(6.13)

la cual se obtiene de la ecuaci on (6.6)) con C (z 1 ) = 1, AD(z 1 ) = (1 z 1 ), (z 1 ) e(t), y x(t) = B u(t). Por consiguiente, para cualquier t: n(t) = 11 z 1 A( z 1 ) x(t) = (1 A(z 1 ))x(t) + B (z 1 )u(t) = a1 x(t 1) ana x(t na ) +b1 u(t 1) + + bnb u(t nb ) siendo su expresi on gen erica predictiva: x(t + k/t) = a1 x(t + k 1/t) ana y (t + k na /t) +b1 u(t + k 1/t) + + bnb u(t + k nb /t) (6.15) El Modelo Serie/Paralelo El modelo serie/paralelo puede ser empleado para procesos estables o C (z 1 ) e(t) se esinestables. En este caso, el modelo del disturbio n(t) = D (z 1 ) coge diferente al del modelo paralelo. El modelo serie/paralelo se obtiene reescribiendo el modelo paralelo como sigue: A(z 1 )y (t) = B (z 1 )u(t) + A(z 1 ) e(t) 1 z 1 (6.16) (6.14)

que es la ecuaci on (6.6) cuando C (z 1 ) = A(z 1 ) y D(z 1 ) = 1 z 1 . La salida y (t) toma entonces la forma: y (t) = (1 A(z 1 ))y (t) + B (z 1 )u(t) + donde y (t) se obtiene de la relaci on: y (t) = (1 A(z 1 ))y (t) + B (z 1 )u(t) y (t) = a1 y (t 1) ana y (t na ) +b1 u(t 1) + + bnb u(t nb ) y (t + k/t) = a1 y (t + k 1/t) ana y (t + k na /t) +b1 u(t + k 1/t) + + bnb u(t + k nb /t) (6.19) (6.18) Por consiguiente, la expresi on predictiva del modelo serie/paralelo es: A(z 1 ) e(t) = y (t) + n(t) (6.17) 1 z 1

292

Control Predictivo

La diferencia del modelo serie/paralelo con respecto al modelo paralelo puede deducirse de la gura 6.5.
u
PROCESO

u
PROCESO

+ x u
MODELO PARALELO

y u

MODELO SERIE / PARALELO

Figura 6.5: Implementaci on de los modelos paralelo y serie/paralelo.

6.4.2.

Predicci on de n(t + k/t)

Para cualquier tiempo t, se puede calcular x(t) usando los datos disponibles del modelo: [x(t 1) . . . x(t na ) u(t 1) . . . u(t nb )] Luego, usando las mediciones y (t) (por ende y (t + k/t)), podemos calcular la perturbaci on n(t) mediante la relaci on: n(t) = x(t) y (t) (6.20)

Como ya se tienen disponibles los valores previos n(t 1), n(t 2), . . ., ello nos permite computar: D(z 1 ) e(t) = n(t) C (z 1 ) e(t) = c1 e(t 1) c2 e(t 2) + n(t)+ d1 n(t 1)+ d2 n(t 2)+ (6.21) donde e(t) es un ruido blanco no correlacionado con media nula. Esto signica que la mejor predicci on de e(t) es: e(t + k/t) = 0, k = 1, . . . , N2 (6.22)

Por extensi on, la mejor predicci on del disturbio se obtiene de: n(t + k/t) = C (z 1 ) e(t + k/t), k = 1, . . . , N2 D(z 1 ) = d1 n(t + k 1/t) d2 n(t + k 2/t) + e(t + k/t) +c1 e(t + k 1/t) + c2 e(t + k 2/t) + (6.23)

6.4 El Modelo del Predictor

293

El c alculo recursivo toma en cuenta que para cualquier k , e(t + k/t) = 0. Por consiguiente, para: k = 1, k = 2, n(t + 1/t) = d1 n(t/t) d2 n(t 1/t) n(t + 2/t) = d1 n(t + 1/t) d2 n(t/t) . . . n(t + N2 /t) = d1 n(t + N2 1/t) d2 n(t + N2 2/t)

k = N2 ,

Ejemplo 6.2 Comparar las respuestas a una sinusoide del proceso servomotor D.C. no lineal del ejemplo 6.1, cuando la salida y no es ruidosa y cuando lo es. El tiempo de muestreo es T = 0.01 s. Considerar ruido blanco gaussiano. Soluci on: Empleando el resultado del ejemplo 6.1, la soluci on a este problema se detalla en el programa ejem6 2.m. Los resultados se muestran en las guras 6.6, 6.7 y 6.8. Observar en la u ltima gura que el ruido e(t) empleado posee media cero y una funci on de distribuci on gaussiana.
% ejem6_2.m SOLUCION EJEMPLO 6.2 clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Lo = 0.776; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.045; % 0, 0.01, 0.02 K = 31.071e-3; n = 19.741; L = 4.64e-2; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO NO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bc = [0;n*K*Kact/(R*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); % CONDICIONES INICIALES NULAS q(1)=0; q(2)=0; q(3)=0; u(1)=0; u(2)=0; u(3)=0;

294

Control Predictivo

y(1)=0; y(2)=0; y(3)=0; e(1)=0; e(2)=0; e(3)=0; % RESPUESTAS DEL PROCESO MM = 1000; for t=3:MM+2 u(t) = sin(0.006*t); % SINUSOIDE DE ENTRADA q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1); e(t+1) = 0.1*randn; % GENERA RUIDO BLANCO GAUSSIANO % DE MEDIA NULA Y VARIANZA 0.1 y(t+1) = (1-a1)*y(t) + (a1-a2)*y(t-1) + a2*y(t-2) ... + b1*u(t) + (b2-b1)*u(t-1) - b2*u(t-2) ... + e(t+1) + a1*e(t) + a2*e(t-1); end % GRAFICOS ejex = linspace(0,MM*T,MM); figure(1) subplot(2,1,1) plot(ejex,q(3:MM+2)); grid ylabel(Posicion en rad); xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(3:MM+2)); grid ylabel(Entrada (voltios)) xlabel(Tiempo en segundos) print -f -deps ejem6_2a figure(2) subplot(2,1,1) plot(ejex,y(3:MM+2)); grid ylabel(Posicion ruidosa (rad)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(3:MM+2)); grid ylabel(Entrada (voltios)) xlabel(Tiempo en segundos) print -f -deps ejem6_2b figure(3) subplot(2,1,1) plot(ejex,e(3:MM+2)); grid ylabel(Ruido gaussiano e(t) (rad)) xlabel(Tiempo en segundos) subplot(2,1,2) hist(e) ylabel(Distribucion de e(t)) xlabel(<-----e(t) ------>) print -f -deps ejem6_2c

6.4 El Modelo del Predictor


4 Posicin en rad 2 0 2 4 0

295

4 5 6 Tiempo en segundos

10

1 Entrada (voltios) 0.5 0 0.5 1 0

4 5 6 Tiempo en segundos

10

Figura 6.6: Respuesta no ruidosa del proceso a una sinusoide.

4 Posicin ruidosa (rad) 2 0 2 4 6 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

1 Entrada (voltios) 0.5 0 0.5 1 0

4 5 6 Tiempo en segundos

10

Figura 6.7: Respuesta ruidosa del proceso a una sinusoide.

296
0.4 0.2 0 0.2 0.4 0

Control Predictivo

Ruido gausiano e(t) (rad)

4 5 6 Tiempo en segundos

10

300 Distribucin de e(t)

200

100

0 0.4

0.3

0.2

0.1 0 0.1 < e(t) >

0.2

0.3

0.4

Figura 6.8: Ruido blanco e(t) con media cero y distribuci on gaussiana.

6.5.
6.5.1.

El Controlador Predictivo
Objetivo del Controlador

El objetivo del controlador predictivo es determinar el vector de control u(t + k/t), k = 0, . . . , N2 1, que minimice la siguiente funci on de costo:
N2

J=
k = N1

[r(t + k/t) y (t + k/t)]2 +

Nu 1 k=0

[u(t + k/t)]2

(6.24)

donde : u(t + k/t) = u(t + k/t) u(t + k 1/t) (6.25) a reprecon u(t + k/t) = 0 para k Nu . La trayectoria de referencia est sentada por la ecuaci on: r(t + k/t) = r(t + k 1/t) + (1 )w(t + k/t) evaluada para k = 1, . . . , N2 , con r(t/t) = y (t). Los par ametros de dise no son: N1 : horizonte de predicci on m nimo. (6.26)

6.5 El Controlador Predictivo

297

N2 : horizonte de predicci on m aximo; por defecto podemos considerar N2 = N1 + 1, . . . , N1 + 10. Nu : horizonte de control; por defecto considerar Nu = 1. N1 , . . . , N2 : horizonte de coincidencia; por defecto considerar N1 (tiempo muerto). : par ametro de ponderaci on; por defecto considerar cero. : par ametro de ltraje; por defecto considerar cero. Si la trayectoria deseada w(t) se programa previamente, entonces los valores futuros w(t + k ) se pueden emplear para determinar w(t + k/t). Es decir, w(t + k/t) = w(t + k ) para k = 1, . . . , N2 . Si no deseamos una estrategia de control predictivo en avance, el valor actual w(t) se puede usar como un valor de predicci on w(t + k/t) = w(t) para k = 1, . . . , N2 . Es importante observar adem as que: 1. La trayectoria de referencia dada en (6.26) constituye un ltro de primer orden para w(t). Este ltro se puede representar mediante la siguiente funci on de transferencia: 1 z (1 ) r(z ) = = 1 w(z ) 1 z z 2. (6.27)

El ltro para w(t) se puede implementar fuera del lazo de control, no afectando de esta manera a la estabilidad del sistema, pero s contribuyendo al rechazo del ruido. La gura 6.9 ilustra el objetivo del control predictivo basado en modelos.

6.5.2.

Respuesta Libre y Respuesta Forzada

Conceptualmente, la respuesta futura y (t + k/t) puede ser considerada como el resultado acumulativo de dos efectos: y (t + k/t) = ylibre (t + k/t) + yf orz (t + k/t) (6.28)

donde el sub ndice forz indica forzada. La respuesta libre ylibre (t + k/t) aparece como consecuencia de los factores siguientes: El efecto debido a las se nales de control pasadas u(t 1), u(t 2), . . .

298

Control Predictivo
N u =4 1 0 0 1 00 11 00 11 11 0 1 00 00 11 00 11 00 11 00 11 00 11 01 1 00 11 00 11 00 11 00 11 00 11 00 11 0 1 0 00 11 0 1 0 1 00 11 0 1 0 1 0 1 0 1 y(t+k/t) 01 1 u(t+k/t) 0 0 1 u

1 0 0 1

o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o

r=w

y N 1=2 N 2 =8 FUTURO

PASADO

Tiempo actual t

Figura 6.9: Objetivo del control predictivo basado en modelos.

El efecto debido a un escenario de control futuro. Por defecto se tiene u(t/t) = u(t 1), u(t + 1/t) = u(t 1), u(t + 2/t) = u(t 1), . . .; esto es, u(t/t) = u(t + 1/t) = . . . = u(t + Nu 1/t) = 0 El efecto debido a las perturbaciones futuras del ruido n(t + k/t). La componente forzada yf orz (t + k/t) aparece debido al resultado de dos efectos. El primero, causado por la acci on del control futuro; es decir, causado por las se nales u(t/t), u(t +1/t), . . . , u(t + Nu 1/t). El segundo efecto se debe a las respuestas del proceso a una secuencia de entradas escal on, como sigue: Un escal on con amplitud u(t/t) aplicado al proceso en el tiempo t, resulta en una contribuci on gk u(t/t) en la salida del proceso en el tiempo t + k . Es decir, k tiempos de muestreo m as tarde (gura 6.10(a)). Un escal on con amplitud u(t + 1/t) aplicado al proceso en el tiempo t + 1, resulta en una contribuci on gk u(t + 1/t) para la salida del proceso en el tiempo t + k 1. Es decir, k 1 tiempos de muestreo m as tarde (gura 6.10(b)). etc.

6.5 El Controlador Predictivo


u(t/t) Entrada escalon g u(t/t) k Respuesta al escalon k Muestras t u(t+1/t) t+k (a) Entrada escalon g u(t+1/t) k Respuesta al escalon
(k-1) Muestras

299

Tiempo

Tiempo

t+k
(b)

Figura 6.10: El efecto de las entradas tipo escal on en la salida forzada.

Por consiguiente, el efecto acumulativo de todos los escalones es: yf orz (t + k/t) = gk u(t/t)+ gk1 u(t +1/t)+ + gkNu +1 u(t + Nu 1/t) (6.29) donde los par ametros g1 , . . . , gN2 son los coecientes de la respuesta del sistema al escal on unitario. Es decir, la respuesta de la salida del sistema a los cambios tipo escal on unitario en la entrada. Para un sistema lineal, la respuesta al escal on unitario no depende del punto de operaci on. Este punto es jo y puede ser calculado fuera de l nea (o-line) usando el modelo del sistema. Para un sistema no lineal, como en el caso de una red neuronal, la respuesta al escal on unitario es diferente para cada punto de operaci on. Esta respuesta tiene que ser calculada en cada tiempo de muestreo (on-line), aplicando en cada instante de muestreo un cambio escal on (cticio) a la entrada actual del proceso y calculando su efecto en la salida respectiva.

300

Control Predictivo

De la ecuaci on (6.29) se puede obtener la siguiente expresi on para la componente forzada: (6.30) Yf orz = GU donde: Yf orz = yf orz (t + N1 /t) yf orz (t + N1 + 1/t) yf orz (t + N2 /t) gN1 gN1 1 . . . ... gN1 +1 gN1 ... ... G= ... ... ... ... gN2 gN2 1 . . . gN2 Nu +1 u(t/t) u(t + 1/t) u(t + Nu 1/t)
T T

U=

y empleando la ecuaci on (6.28), podemos escribir: + GU Y=Y donde:

(6.31)

Y = [y (t + N1 /t) . . . y (t + N2 /t)]T ; U = [u(t/t) . . . u(t + Nu 1/t)]T = [ylibre (t + N1 /t) . . . ylibre (t + N2 /t)]T ; R = [r(t + N1 /t) . . . r(t + N2 /t)]T Y Ejemplo 6.3 on Determinar la respuesta libre y los coecientes gk de la respuesta al escal para el proceso servomotor D.C. descrito en el ejemplo 6.1. Soluci on: La ecuaci on de diferencias del proceso es: y (k ) = a1 y (k 1) a2 y (k 2) + b1 u(k 1) + b2 u(k 2) Cuando la entrada es u(k ) = 1 para todo k 0, entonces y (k ) = g (k ) para todo k 0. Luego, los coecientes g (k ) se determinan de: g (k ) = a1 g (k 1) a2 g (k 2) + b1 u(k 1) + b2 u(k 2) As podemos obtener que g (0) = 0, g (1) = b1 , g (2) = a1 b1 + b1 + b2 , y: g (k ) = a1 g (k 1) a2 g (k 2) + b1 + b2 ; La condici on para respuesta libre es que: u(t/t) = u(t + 1/t) = = u(t + N2 /t) = u(t 1) Aplicando tal condici on en la ecuaci on de diferencias del proceso, determinamos la respuesta libre ylibre como sigue: ylibre (t + 1) = a1 ylibre (t) a2 ylibre (t 1) + (b1 + b2 )u(t 1) k3

6.5 El Controlador Predictivo

301

6.5.3.

La Ley de Control

Con la notaci on anterior, la funci on de costo (ecuaci on (6.24)) resulta: )GU]T [(RY )GU]+UT U (6.32) (RY)T (RY)+UT U = [(RY la cual es una forma cuadr atica en U, cuya minimizaci on por diferenciaci on resulta en la siguiente soluci on o ptima: U = (GT G + I )1 GT (R Y) Es importante indicar que: Solamente el primer elemento u(t/t) de U es necesario para computar la entrada de control actual u(t) = u(t 1) + u(t/t). El mismo procedimiento se repite para la nueva medici on y (t + 1) en el pr oximo instante de tiempo t + 1. Este procedimiento se denomina el principio del horizonte retroactivo. La matriz [GT G + I ] a ser invertida tiene dimensi on Nu Nu . Para el caso por defecto, es decir, para Nu = 1, se obtiene una ley de control escalar (con muy buenos resultados en muchos casos pr acticos) de la forma: u(t) =
N2 k = N1

(6.33)

gk [r(t + k/t) ylibre (t + k/t)]


N2 k = N1 2+ gk

(6.34)

Otra aproximaci on para la estructuraci on del escenario de control consiste en el empleo de funciones base de la forma: u(t + k/t) =
i

i Bi

(6.35)

La optimizaci on de la se nal de control u(t + k/t) es ahora con respecto a los par ametros i . El control predictivo muestra diferentes propiedades dependiendo de la selecci on de N1 , N2 y Nu . Por ejemplo: Si N1 = n, N2 = 2n 1, Nu = n y = 0, la salida entonces alcanza la referencia despu es de n muestras y se mantiene en este estado, proporcionando una vigorosa acci on de control. Este caso es muy apropiada para aplicaciones que requieran alto rendimiento, como en la rob otica.

302

Control Predictivo Si escogemos N1 = Nu = 1, N2 = y = 0, obtendremos una respuesta transitoria de la variable controlada, caracterizada por un tiempo de subida r apido y un tiempo de estabilizaci on lento. Este hecho es relevante en el control de procesos industriales.

La Ley de Control con Restricciones El problema de control presentado en la subsecci on anterior fue formulado bajo condiciones de control sin restricciones; es decir, considerando que todas las se nales poseen rango ilimitado. Sin embargo, esto no es realista. En la pr actica, todos los procesos est an sujetos a restricciones. Por ejemplo, en el caso de un servosistema no lineal, si la se nal de control u(t) es demasiado grande, entonces el amplicador del voltaje de armadura se puede saturar produci endose su deterioro. En presencia de restricciones no es posible la soluci on anal tica del problema de minimizaci on, debiendo recurrirse a dos posibles soluciones. La primera soluci on es tratar a todas las variables como si no tuvieran restricciones. Posteriormente, conforme a rangos previamente especicados (las restricciones), proceder mediante software, con el corte o la limitaci on de las magnitudes de las variables con restricciones. La otra soluci on requiere el empleo de t ecnicas num ericas, tales como la programaci on cuadr atica. Nosotros no trataremos esta alternativa. Ejemplo 6.4 Determinar la matriz din amica de control para el proceso del ejemplo 6.1 empleando los datos siguientes: N1 = 7, N2 = 12, Nu = 6.
% ejem6_4.m SOLUCION DEL EJEMPLO 6.4 clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; RR = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.045; % tambien 0,.01,.02 K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO NO LINEAL DEL PROCESO CONTINUO DE TERCER ORDEN

6.6 Procedimiento de Dise no


% Acc = [0 1 0;-N/M -B/M n*K/M;0 -n*E/L -RR/L]; % Bcc = [0;0;Kact/L]; % Ccc = [1 0 0]; Dcc = [0]; % MODELO LINEAL CONTINUO DE SEGUNDO ORDEN DEL PROCESO Ac = [0 1;-N/M -(B + n^2*K*E/RR)/M]; Bc = [0;n*K*Kact/(RR*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % periodo de muestreo [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); N1 = 6; N2 =12; Nu =7; % HORIZONTE DE CONTROL % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; for k=3:12 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2; end % LUEGO, LA MATRIZ G TIENE LA FORMA: G = [g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1+5) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N2) g(N2-1) g(N2-2) g(N2-3) g(N2-4) g(N2-5)

303

0 g(N1-5) g(N1-4) g(N1-3) g(N1-2) g(N1-1) g(N2-Nu+1)];

6.6.

Procedimiento de Dise no

El procedimiento para dise nar un sistema de control predictivo basado en modelos, empleando la matriz din amica de control es: 1) Formular el problema (denir las especicaciones de dise no). 2) Determinar el modelo CARIMA del proceso (subsecci on 6.3). 3) Calcular la respuesta libre del proceso (subsecci on 6.5.2). 4) Calcular la respuesta del proceso al escal on (subsecci on 6.5.2). 5) Determinar la ley de control (subsecci on 6.5.3). 6) Simular el sistema de control predictivo, incluyendo las restricciones.

304 7) Implementar el hardware. 8) Implementar el software de control.

Control Predictivo

9) Realizar pruebas de funcionamiento (resultados experimentales).

6.7.
6.7.1.

Control de Posici on de un Servomotor


Formulaci on del Problema

El servomotor D.C. con carga no lineal (discutido ampliamente en la secci on 3.3) es un proceso de una entrada y una salida que puede ser controlado por el voltaje de armadura. La carga no lineal es una varilla met alica acoplada al eje del servomotor, a manera de un brazo rob otico de un grado de libertad. En el extremo de la varilla se pueden acoplar cargas adicionales. El objetivo de control es dise nar e implementar un sistema de control predictivo basado en modelos, empleando una ley de control escalar din amica, de modo tal que la varilla se posicione en una referencia predeterminada. El sobreimpulso de la respuesta debe ser m nimo, no obstante la presencia de la carga no lineal y de las no linealidades del proceso como son las fricciones est atica y de Coulomb, y la saturaci on en el amplicador del servomotor.

Modelo del Proceso


La gura 3.9 presenta la estructura del proceso no lineal a controlar. La tabla 3.2 describe las variables y los valores de sus par ametros. Asumiendo que la se nal de control u est a compensada por las no linealidades y despreciando la inductancia L del servomotor, el proceso no lineal puede ser descrito mediante el siguiente modelo lineal (subsecci on 3.3.5): x = Ac x + Bc u; Ac = 0 N M
B ( M

y = Cc x 0
KnKact MR

1 2E + Kn MR )

Bc =

Cc =

1 0

2 1 m 2 2 M = Jef f + M L2 N = gLo (M + ) o + M Ro + mLo ); 5 3 2 2 2 B = n bm + bL Jef f = n Jm + JL ; La funci on de transferencia Gp (s) del proceso puede determinarse de: Gp (s) = y (s) = Cc [sI Ac ]1 Bc u(s)

6.7 Control de Posici on de un Servomotor

305

mientras que la funci on de transferencia de pulso Gp (z ) se determina de: Gp (z ) = Gp (s) y (z ) = (1 z 1 )Z u(z ) s

donde Z [.] es la operaci on transformada Z . Dicha funci on de transferencia depende del tiempo de muestreo T y posee la estructura siguiente: Gp (z ) = b1 z + b2 y (z ) b1 z 1 + b2 z 2 B (z 1 ) = 2 = = u(z ) z + a1 z + a2 1 + a1 z 1 + a2 z 2 A(z 1 )

que constituye el modelo CARIMA del proceso, con A(z 1 ) = 1 + a1 z 1 + a2 z 2 ; B (z 1 ) = b1 z 1 + b2 z 2

Su correspondiente ecuaci on de diferencias es: y (k ) = a1 y (k 1) a2 y (k 2) + b1 u(k 1) + b2 u(k 2) Con Mo = 0 (varilla sin carga adicional), los par ametros poseen los valores siguientes: a1 =-1.9614 , a2 =0.9614 , b1 =0.0044 y b2 =0.0043 .

6.7.2.

Respuesta Libre del Proceso

La expresi on para determinar la respuesta libre del proceso en cuesti on se determin o en el ejemplo 6.3. El siguiente programa determina recursivamente la trayectoria deseada W (t), la trayectoria de referencia r(t) y la respuesta libre ylibre . Por simplicidad, emplearemos la notaci on: yf = ylibre .
% CONDICIONES Y PARAMETROS INICIALES yf(1)=0; yf(2)=0; yf(3)=0; % yf: RESPUESTA LIBRE r(1) =0; r(2) =0; r(3)=0; % r : REFERENCIA alf = 0.01; frec = 0.0063; GW = 1; MM = 1000; n1=1; n2=20; % REFERENCIA, SALIDA LIBRE Y RESPUESTAS AL ESCALON for t = 3:MM+2 for k = n1:n2 W(t+k) = GW*sign(sin(frec*(t))); % TRAYECTORIA DESEADA r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k) = - a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1); end end

306

Control Predictivo

6.7.3.

Respuesta del Proceso al Escal on

La expresi on para determinar los coecientes de la respuesta al escal on del proceso en cuesti on, se determin o en el ejemplo 6.3. En c odigo MATLAB el c alculo se efect ua como sigue:
N1 = 6; N2 = 12; % HORIZONTE DE CONTROL % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; for k=3:N2 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2; end

6.7.4.

La Ley de Control

La ley de control a emplear es del tipo escalar (Nu = 1) con N1 = 1 y N2 = 12. La forma de la ley de control es: u =
N2 k = N1

g (k )[r(t + k/t) ylibre (t + k/t)]


N2 k = N1

g 2 (k ) +

6.7.5.

Simulaci on del Sistema de Control Predictivo

Primera Simulaci on El programa dispred1.m simula el sistema de control predictivo empleando la ley de control descrita en la subsecci on 6.7.4 y un modelo lineal de segundo orden del proceso. La carga no lineal a posicionar es m axima. Se est a empleando restricci on en la fuerza de control para evitar la saturaci on del amplicador de potencia. El resultado de esta simulaci on se muestra en la gura 6.11.
% dispred1.m PRIMERA SIMULACION DEL SISTEMA DE CONTROL PREDICTIVO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; RR = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.045; % tambien 0,.01,.020 K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;

6.7 Control de Posici on de un Servomotor


N = g*Lo*(Mo+m/2); % MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/RR)/M]; Bc = [0;n*K*Kact/(RR*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); % HORIZONTES N1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; for k=3:N2 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2; end % CONDICIONES INICIALES yf(1)=0; yf(2)=0; yf(3)=0; r(1)=0; r(2)=0; r(3) =0; u(1) =0; u(2) =0; u(3) =0; w(1)=0; w(2)=0; w(3) =0; q(1) =0; q(2) =0; q(3) =0; alf = 0.01; lambda = 0.; frec = 0.0063; GW = 1; MM = 2000; % LAZO DE CONTROL for t = 2:MM+2 for k = 1:N2 W(t+k) = GW*sign(sin(frec*(t))); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1); end % yf: RESPUESTA LIBRE % LEY DE CONTROL du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + ... g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + ... g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + ... g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + ... g(9)*(r(t+9)-yf(t+9))+ g(10)*(r(t+10)-yf(t+10)) + ... g(11)*(r(t+11)-yf(t+11))+ g(12)*(r(t+12)-yf(t+12)))/... (g(1)^2 + g(2)^2 + g(3)^2+ g(4)^2 + g(5)^2 + ... g(6)^2 + g(7)^2 + g(8)^2+ g(9)^2 + g(10)^2 + ... g(11)^2 + g(12)^2 + lambda); u(t) = u(t-1) + du(t); % LEY DE CONTROL ACTUAL % LIMITANDO LA FUERZA DE CONTROL

307

308

Control Predictivo

fu = 1.4; if(u(t) > 0 & u(t) > fu) u(t) = fu; elseif(u(t) < 0 & u(t) < -fu) u(t) = -fu; end % PROCESO LINEAL q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1); end % GRAFICOS ejex = (3:MM); ejex = ejex*T; subplot(2,1,1) plot(ejex,W(3:MM),ejex,q(3:MM)); grid ylabel(Posicion q(t) (rad)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(3:MM)); grid ylabel(Control u(t) (voltios)) xlabel(Tiempo en segundos) print -f -deps dispred1

2 Posicin q(t) (rad) 1 0 1 2 0

8 Tiempo

10 12 en segundos

14

16

18

20

2 Control u(t) (voltios) 1 0 1 2 0

8 10 12 Tiempo en segundos

14

16

18

20

Figura 6.11: Primera simulaci on del sistema de control predictivo. La carga no lineal es m axima.

6.7 Control de Posici on de un Servomotor Segunda Simulaci on

309

El programa dispred3.m tambi en simula el sistema de control predictivo empleando la ley de control descrita en la subsecci on 6.7.4 y un modelo no lineal de segundo orden del proceso. La carga no lineal a posicionar es m axima. En esta simulaci on se emplea restricci on en la fuerza de control dise nada para no saturar el amplicador de potencia. Tambi en se emplea compensaci on para minimizar el efecto de la fuerza de fricci on de Coulomb en la se nal de control y restricci on del tipo y (t) = r(t) (la salida iguala a la referencia). El resultado de esta simulaci on se muestra en la gura 6.12. Notar que la fuerza de control generada no sobrepasa el rango de 1,4 volts, por lo que su implementaci on no va a saturar al amplicador de potencia a emplear. Esta es la conguraci on que se va a implementar.
% dispred3.m clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; RR = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.045; % tambien 0,.01,.020 K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO NO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/RR)/M]; Bc = [0;n*K*Kact/(RR*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); % HORIZONTES N1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; for k=3:N2 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2; end

310

Control Predictivo

% CONDICIONES INICIALES yf(1)=0; yf(2)=0; yf(3)=0; r(1)=0; r(2)=0; r(3) =0; u(1) =0; u(2) =0; u(3) =0; w(1)=0; w(2)=0; w(3) =0; q(1) =0; q(2) =0; q(3) =0; alf = 0.01; lambda = 0.; frec = 0.0063; GW = 1; MM = 2000; % BUCLE DE CONTROL ********************************* for t = 2:MM+2 % REFERENCIAS, SALIDA LIBRE Y RESPUESTAS AL ESCALON for k = 1:N2 W(t+k) = GW*sign(sin(frec*(t))); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k) =-a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1); end % yf: RESPUESTA LIBRE % RESTRICCION A LA SALIDA q(t) = r(t); % LEY DE CONTROL du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + ... g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + ... g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + ... g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + ... g(9)*(r(t+9)-yf(t+9))+g(10)*(r(t+10)-yf(t+10)) + ... g(11)*(r(t+11)-yf(t+11))+g(12)*(r(t+12)-yf(t+12)))/... (g(1)^2 + g(2)^2 + g(3)^2+g(4)^2 + g(5)^2 + ... g(6)^2 + g(7)^2 + g(8)^2+g(9)^2 + g(10)^2 + ... g(11)^2 + g(12)^2 + lambda); u(t) = u(t-1) + du(t); % ley de control actual % COMPENSANDO LA FRICCION DE COULOMB TN = cc*sign(w(t)); % TORQUE DE FRICCION DE COULOMB if(w(t) > 0) u(t) = u(t) + (RR/(n*K*Kact))*TN; elseif(w(t) < 0) u(t) = u(t) - (RR/(n*K*Kact))*TN; end % LIMITANDO LA FUERZA DE CONTROL fu = 1.4; if(u(t) > 0 & u(t) > fu) u(t) = fu; elseif(u(t) < 0 & u(t) < -fu) u(t) = -fu; end % MODELO NO LINEAL DISCRETIZADO DEL PROCESO DE SEGUNDO ORDEN q(t+1) = q(t) + T*w(t);

6.7 Control de Posici on de un Servomotor


w(t+1) = w(t) + T*( - (N/M)*sin(q(t)) ... - (B/M + n^2*K*E/(M*RR))*w(t) ... - (1/M)*TN + (n*K*Kact/(M*RR))*u(t) ); end % GRAFICOS ejex = (3:MM); ejex = ejex*T; subplot(2,1,1) plot(ejex,W(3:MM),ejex,q(3:MM)); grid ylabel(Posicion q(t) (rad)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(3:MM)); grid ylabel(Control u(t) (voltios)) xlabel(Tiempo en segundos) print -f -deps dispred3
1 Posicin q(t) (rad) 0.5 0 0.5 1 0

311

8 Tiempo

10 12 en segundos

14

16

18

20

2 Control u(t) (voltios) 1 0 1 2 0

8 10 12 Tiempo en segundos

14

16

18

20

Figura 6.12: Segunda simulaci on del sistema de control predictivo. La carga no lineal es m axima.

6.7.6.

Implementaci on del Hardware

El hardware empleado en la implementaci on en tiempo real del sistema de control predictivo es similar al empleado para la implementaci on en tiem-

312

Control Predictivo

po real de los sistemas de control adaptivo, robusto y no lineal. Dicho hardware se describe en detalle en la subsecci on 5.6.8.

6.7.7.

El Software de Control

El software usado para la implementaci on del algoritmo de control de posici on emplea el lenguaje C y se ejecuta en una PC Pentium. Los programas necesarios para el control se estructuran en tres archivos escritos en C: R1LLIB.H, R1LLIB.CPP y PREDI4.CPP. El archivo PREDI4.CPP es el que contiene el algoritmo de control. La realizaci on de archivos ejecutables a partir de los programas fuente, se elabora en el ambiente de trabajo del Borland C/C++ mediante la creaci on de un proyecto denominado PREDI4.PRJ, en el cual intervienen los archivos mencionados en el p arrafo anterior. Diagrama de Flujo del Software de Control El diagrama de ujo del software de control se muestra en la gura 6.13. Notar que tal diagrama comprende los pasos siguientes, para: 1. Inicializar la tarjeta de adquisici on de datos Lab P C + y las variables utilizadas en el programa. 2. Detectar el anco de subida del pulso de reloj (clock) y leer el primer dato de la posici on (posici on inicial) para iniciar el algoritmo de control. 3. Comprobar que la variable k sea menor que el n umero de puntos n. La variable n junto con la frecuencia de muestreo determinan el tiempo de duraci on del experimento. 4. Detectar el anco de subida del pulso de reloj para iniciar un per odo de adquisici on de datos y de control. Leer la posici on y y aplicar las restricciones; luego estimar la velocidad a partir de la posici on. 5. Calcular la se nal de control u, compensar las fricciones est atica y de Coulomb (se nal v ), aplicar restricciones a la se nal de control, y luego enviar la se nal u = u + v +oset por el DAC0 de la tarjeta Lab-PC+ al generador PWM. El valor del oset es 2.3 volt. 6. Actualizar las variables y repetir el lazo de control hasta que k = n.

6.7 Control de Posici on de un Servomotor

313

INICIO INICIALIZACION DE VARIABLES INICIALIZACION DE LA TARJETA LabPC+

DETECTAR FLANCO DE SUBIDA

LEER POSICION INICIAL P0 NO k MENOR QUE n SI DETECTAR FLANCO DE SUBIDA SI LEER POSICION Pk CALCULAR POSICION Y VELOCIDAD APLICAR RESTRICCIONES EN Pk FIN

NO

~ DE CONTROL GENERAR SENAL GENERAR SALIDA COMPENSADA ~ RESTRINGIR LA SENAL DE CONTROL ~ ENVIAR LA SENAL COMPENSADA ACTUALIZAR VARIABLES

Figura 6.13: Diagrama de ujo del algoritmo de control.

314 El Programa Principal

Control Predictivo

El programa principal (programa PREDI4.CPP) realiza lo siguiente: 1. Declaraci on de los archivos de cabecera: r1llib.h (librer a de funciones), stdio.h (E/S est andar), math.h (manejo de funciones matem aticas), asserth.h (declaraci on de macros de depuraci on), alloc.h (asignaci on din amica de memoria) y conio.h (funciones de consola y puertos E/S) 2. Declaraci on de las constantes globales. 3. Denici on de las funciones propias del programa: Inicializa Sistema, M ide V ariables y Aplica Control 4. Declaraci on de las variables globales. 5. Denici on de la funci on principal main. Las Funciones Propias del Software de Control A continuaci on se describen las funciones propias del software de control. Inicializa Sistema: permite la inicializaci on de los par ametros y variables globales. Luego, inicializa la tarjeta de adquisici on de datos Lab-PC+ por medio de la funci on Conf igurarHardware. Enseguida env a la tensi on de oset al puerto de salida anal ogica por medio de la funci on EnviarV oltage (sic), para asegurar la posici on inicial de reposo del motor (posici on vertical) y nalmente, lee la posici on inicial p0 del motor. M ide V ariables: especica la se nal de referencia considerada. Luego mide la posici on actual del motor (posici on de la varilla) y la velocidad (en funci on de la posici on), actualiza los estados de las variables y , w, r y e, y aplica restricciones a la salida. Aplica Control: compensa las fricciones est atica y de Coulomb y aplica restricciones a la se nal de entrada u. Luego, env a un voltaje equivalente a la suma de la se nal de control u (con restricci on), m as la se nal de compensaci on v , m as la se nal del oset (2.3 volt). La funci on principal main posee una estructura adecuada para:

6.7 Control de Posici on de un Servomotor La declaraci on y denici on de variables locales. El llamado a la funci on Inicializa Sistema. El llamado a la macro de depuraci on.

315

La asignaci on de memoria din amica que permita almacenar los datos para las variables: u, w, y y r en el proceso de ejecuci on del proyecto. Ejecutar el lazo de control del programa desde k = 0 hasta k = n, donde n es un entero que indica el m aximo n umero de muestras usado en la ejecuci on del proyecto. Dentro del lazo de control se dene la ejecuci on de la funci on M ide V ariables en cada anco de subida del pulso de reloj. Luego se genera la se nal de control u y se env a a la salida del DAC0 la tensi on ordenada por la funci on Aplica Control. Los valores para y , w, u y r se guardan en memoria. Posteriormente se incrementan k y t, se visualizan en pantalla los valores instant aneos de t, y , w, u y e, y se actualiza el pulso de reloj siempre que k n. Al nalizar el tiempo de ejecuci on, enviar un voltaje de oset necesario para detener el motor en su posici on de reposo. La obtenci on de gr acos basados en datos almacenados durante el tiempo de ejecuci on, abriendo el archivo de salida PREDI4.OUT. Los Programas Fuente La trayectoria deseada w considerada en este programa, consiste en cinco niveles de 20 segundos de duraci on por nivel. Esos niveles, en orden de ejecuci on, son: 30o (/6), 45o (/4), 60o (/3), 37,5o (5/24) y 30o (/6).
/* PREDI4.CPP *********** programa principal *********/ #include "r1llib.h" #include <stdio.h> #include <math.h> #include<assert.h> #include <alloc.h> #include <conio.h> const float ESCALA = 2.*M_PI/(512.*19.7); const float niv1 = 1.*M_PI/6.; const float niv2 = 5.*M_PI/24.; const float niv3 = 1.*M_PI/4.; const float niv4 = 1.*M_PI/3.;

316

Control Predictivo

/* Declaracion de las funciones propias del programa */ void Inicializa_Sistema(); void Mide_Variables(float *yk, float *w, float *r, float *vel, float t); float Aplica_Control(float u, float ykp); /* Declaracion de las variables globales */ float a1, a2, b1, b2, g0, landa, alfa, N; float y, yant, r, w, rant, es; float T, t, tsimul; float Fs; int p0, pk; float VcFC, VcFE, Wth, Ofst; float eant, eantant, e; float uant, uantant; /********************** FUNCIONES ***************/ float Aplica_Control(float u, float ykp) { float v; if(fabs(ykp)<=Wth) { if(u<0.) v = -VcFE; if(u>0.) v = VcFE; } else { if(u<0.) v = -VcFC; if(u>0.) v = VcFC; } if(u + v < -1.5) u = -1.5; else if(u + v > 1.4) u = 1.4; EnviarVoltage(u+v+Ofst); return u; } void Inicializa_Sistema() { /* Con Varilla*/ a1 = -1.9614; a2 = .9631; b1 = .0044; b2 = .0043; /* Sin Varilla */

6.7 Control de Posici on de un Servomotor

317

//a1 = -1.6246; a2 = .6246; //b1 = .0479; b2 = .0410; /* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */ VcFE = .2; VcFC = .15; Wth = .1; Ofst = 2.3; Fs = 100.; T = 1./Fs; tsimul= 100.; /* PARAMETROS DEL SISTEMA DE CONTROL PREDICTIVO*/ q0 = 114.9425; landa = 0.942; alfa = 0.01; /* INICIALIZACION DE LAS VARIABLES */ yant = 0.; y = 0.; eant = 0.; eantant = 0.; rant = 0.; e = 0.; uant = 0.; uantant = 0.; ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs); EnviarVoltage(Ofst); p0 = LeerPosicion(); } void Mide_Variables (float *y, float *w, float *r, float *vel, float t) { /* Definiendo el setpoint: w= w(t)*/ if((0. <= t && t < 20.) || (80. <= t && t <= 100.)) *w = niv1; else if(20. <= t && t < 40.) *w = niv3; else if(40. <= t && t < 60.) *w = niv4; else if(60. <= t && t < 80.) *w=niv2; /* definiendo la referencia: r=r(t) */ *r = alfa*rant + (1-alfa)*(*w); /* Ahora leo la posici\on */ pk = LeerPosicion(); *y = yant + ((float)(abs(pk-p0) > 8000 ? 0:pk-p0))*ESCALA; p0 = pk; /* Actualizamos los estados */ yant =* y; rant =* r; eantant = eant; eant = e; /* Restricciones en la salida */ if(*y < 0.0) *y = 0.0; else if(*y > 1.0*(*r)) *y = 1.0*(*r); /* Y el error */ e = *r - *y; /* El error de seguimiento */ es = *w - *y;

318
/* Y la velocidad angular */ *vel = (5.*(*y - yant) + *vel)/(1. + 5.*T);

Control Predictivo

} void main() { int ant = 0, act = 0, k, n; FILE *out; float *yb, *ub, *wb, *rb, vel, y, u, w, r; float yant; Inicializa_Sistema(); clrscr(); assert(tsimul < 120); N = tsimul/T; n = (int)N; t = vel = 0.; assert(NULL!=(ub= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(yb= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(wb= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(rb= (float *)calloc(n/5,sizeof(float)))); for(k = 0; k < n;) { act = NivelClock(); if ((ant == 0)&&(act == 1)) { Mide_Variables(&y, &w, &r, &vel, t); /* Se~nal de Control */ //u = q0*(b1*uant + b2*uantant + e + a1*eant + a2*eantant); u=(landa+q0*b1*(1-landa))*uant+q0*(1-landa) *(b2*uantant + e + a1*eant + a2*eantant); uantant = uant; uant=u; u = Aplica_Control(u, vel); if(!(k%5)) { yb[k/5] = y*180./M_PI; wb[k/5] = w*180./M_PI; rb[k/5] = r*180./M_PI; ub[k/5] = u; } k++; t+=T; gotoxy(15,5); printf("*****************************************"); gotoxy(18,7); printf("Control Predictivo de un Servomotor D.C."); gotoxy(15,9); printf("*****************************************"); gotoxy(21,11);printf("tiempo: t=%+5.3f",t); gotoxy(21,13);printf("setpoint: w=%+5.3f",w*180./M_PI);

6.7 Control de Posici on de un Servomotor

319

gotoxy(21,15);printf("se~nal de refer.: r=%+5.3f",r*180./M_PI); gotoxy(21,17);printf("se~nal de control: u=%+5.3f",u); gotoxy(21,19);printf("posicion angular: y=%+5.3f",y*180./M_PI); gotoxy(21,21);printf("error de posicion: e=%+5.3f",e*180./M_PI); gotoxy(21,23);printf("error seguimiento: es=%+5.3f",es*180./M_PI); gotoxy(15,25);printf("*****************************************"); if(kbhit()) if(getch() == 27) break; } ant = act; } EnviarVoltage(Ofst); out=fopen("predi4.out","wt"); for (int i = 0; i<n/5; i++) fprintf(out,"%10f %10f %10f %10f %10f %10f\n", i*5*T, wb[i], rb[i], yb[i], ub[i], wb[i]-yb[i]); delete wb, rb, yb, ub; fclose(out); } /* R1LLIB.H **************************************************** * Archivo de declaraciones de funciones definidas en R1LLIB.CPP * Estas funciones permiten facilitar el manejo de la tarjeta de * Adquisicion Lab-PC+: Digital input (16 bits), Analog Output, * Timer generator, Polling. Tambien usa funciones de lecto/ * escritura de registros (inportb, outport). */ #if !defined (__R1LLIB_H_PRY) #define __R1LLIB_H_PRY // Configuracion de Lab-PC+ (digital in, polling, analog out, timer) void ConfigurarHardware (unsigned, unsigned, unsigned, unsigned,int); // Salida de Voltage por R1LAOPort void EnviarVoltage(float); // Leer Posicion (16 bits leidos por R1LLSBPort y R1LMSBPort) unsigned int LeerPosicion(); // Leer Nivel del clock (polling). Devuelve 0 o 1 int NivelClock (); #endif

320

Control Predictivo

/* R1LLIB.CPP ************************************************** * Archivo de definiciones de funciones declaradas en R1LLIB.H * Estas funciones permiten facilitar el manejo de la tarjeta de * Adquisicion Lab-PC+: Digital input (16 bits), Analog Output, * Timer generator, Polling. Tambien emplea funciones de * lecto/escritura de registros (inportb, outport). */ #include "r1llib.h" #include "nidaq.h" // Libreria de Programas #include <dos.h> // static unsigned R1LLSBPort; // direccion puerto dig. de entrada static unsigned R1LMSBPort; // direccion puerto dig. de control static unsigned R1LPollPort; // direccion puerto dig. de polling static unsigned R1LAOPort; // direccion de la salida analogica static int R1LFS; // frecuencia de muestreo en Hertz // void ConfigurarHardware (unsigned pollPort, unsigned lPort, unsigned hPort, unsigned salPort, int frec) { int cuentaTimer, deviceCode; cuentaTimer = (int)(2000000/frec); R1LPollPort = pollPort; R1LLSBPort = lPort; R1LMSBPort = hPort; R1LAOPort = salPort; R1LFS = frec; USE_LAB(); Init_DA_Brds(1,&deviceCode); ICTR_Setup(1,0,3,cuentaTimer,1); // clock de muestreo = timer0 DIG_Prt_Config(1,(int)(pollPort - 0x270),0,0); DIG_Prt_Config(1,(int)(lPort-0x270),0,0); DIG_Prt_Config(1,(int)(hPort-0x270),0,0); } void EnviarVoltage (float u) { unsigned salidaDigital; salidaDigital = (unsigned) (409.5*u-0.5); outport(R1LAOPort,salidaDigital);

6.7 Control de Posici on de un Servomotor


} unsigned int LeerPosicion() { unsigned char oct1,oct2; oct1 = inportb(R1LLSBPort); oct2 = inportb(R1LMSBPort); return (255*oct2+oct1); } int NivelClock () { unsigned char bytePoll; bytePoll = inportb (R1LPollPort); return (bytePoll&1); }

321

6.7.8.

Resultados Experimentales

En esta subsecci on se presentan los resultados experimentales del sistema de control para posicionar el a ngulo de salida del servomotor D.C., sujeto a cargas no lineales, empleando restricciones tanto en la fuerza de control como en la salida. Para los casos presentados, la trayectoria deseada es una curva discontinua escalonada. Las respuestas controladas (en l neas de trazo) se muestran en las guras 6.14, 6.15, 6.16 y 6.17 De acuerdo a la secci on 3.3, la inercia total de la carga no lineal es: 1 2 2 2 2 2 JT = JL + mL2 o + Mo Lo + Mo Ro = J + Mo Ro 3 5 5 donde J es la inercia total originada por la varilla (sin carga adicional). Los otros par ametros se detallan en la tabla 3.2. Podemos notar que variando la carga adicional (la esfera de radio Ro y masa Mo ), variamos tambi en la carga total. Esto es lo que haremos en las experiencias. Para todos los casos, se ha considerado un factor de ltraje = 0,01. La gura 6.14 muestra el caso sin carga adicional; es decir, con una carga inercial total JT = J . La gura 6.15 corresponde a la respuesta controlada cuando se incrementa la inercia de la carga no lineal en 42 % (es decir, cuando JT = 1,42J ), mientras que las guras 6.16 y 6.17 muestran las curvas de respuesta controlada para los casos cuando JT = 1,84J y JT = 2,98J , respectivamente. En todos los casos se cumplen las especicaciones de dise no (ver la subsecci on 6.7.1).

322

Control Predictivo
Rpta. a escalones variantes para una carga J 70

60 :y 50 :w

Posicin (grados)

40

30

20

10

0 0

10

20

30

40

50 t(seg)

60

70

80

90

100

Figura 6.14: Salida controlada y (curva en trazos) para una carga inercial de JT = J kg-m2 .
Rpta. a escalones variantes para 1.42J 70

60 :y 50 :w

Posicin (grados)

40

30

20

10

0 0

10

20

30

40

50 t(seg)

60

70

80

90

100

Figura 6.15: Salida controlada y (curva en trazos) para una carga inercial de JT = 1,42J kg-m2 .

6.7 Control de Posici on de un Servomotor


Rpta. a escalones variantes para 1.84J 70

323

60 :y 50 :w

Posicin (grados)

40

30

20

10

0 0

10

20

30

40

50 t(seg)

60

70

80

90

100

Figura 6.16: Salida controlada y (curva en trazos) para una carga inercial de JT = 1,84J kg-m2 .
Rpta. a escalones variantes para 2.98J 70

60 :y 50 u(t):voltios :w

40

30

20

10

0 0

10

20

30

40

50 t(seg)

60

70

80

90

100

Figura 6.17: Salida controlada y (curva en trazos) para una carga inercial de JT = 2,98J kg-m2 .

324

Control Predictivo

6.8.

Problemas Resueltos

En la secci on problemas resueltos de los cap tulos 4 al 8, la soluci on a los problemas se encuentra, seg un el caso, en uno o m as archivos con extensi on m escritos en c odigo MATLAB. La selecci on del tiempo de muestreo para cada problema es a conveniencia del dise no. Problema 6.1 El problema 3.2 presenta las ecuaciones que gobiernan la din amica longitudinal de un avi on comercial volando a velocidad de crucero (altura y velocidad constantes). El control del a ngulo de inclinaci on del avi on (ver gura 3.14) es un problema longitudinal a resolver. El objetivo de control es entonces dise nar un autopiloto que manipulando el a ngulo e del deector de elevaci on, controle el a ngulo de inclinaci on del avi on. Dise nar un sistema de control predictivo que genere una fuerza de control escalar, de modo que la salida del proceso (el a ngulo de inclinaci on ) presente un sobreimpulso menor al 5 %, un tiempo de estabilizaci on menor que 10 s y error en estado estable nulo. Asumir 1 rad de entrada de referencia. Soluci on: Ver el programa p4pred1.m.
% p4pred1.m SOLUCION DEL PROBLEMA 6.1: CONTROL DE LA INCLINACION % DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL ESCALAR clear all % FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO CONTINUO numc=[0 1.151 0.1774]; denc=[1 0.739 0.921 0]; A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0]; B=[0.232; 0.0203; 0]; C=[0 0 1]; D=[0]; % FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO DISCRETO tm=1.25; % TIEMPO DE MUESTREO [numd,dend]=c2dm(numc,denc,tm,zoh); [G,H]=c2d(A,B,tm); a1=dend(2); a2=dend(3); a3=dend(4); b1=numd(2); b2=numd(3); b3=numd(4); % HORIZONTES DE CONTROL N1 =1; N2 =10; Nu =1; % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3; for k=4:N2 g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;

6.8 Problemas Resueltos

325

end % CONDICIONES INICIALES for k=1:4 yf(k)=0; y(k)=0; r(k)=0; u(k)=0; end alf = 0.1; lambda=0; MM = 500; % LAZO DE CONTROL for t=4:MM+3; % TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k) = sign(sin(0.02*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1); end % LEY DE CONTROL du(t) = (g(1)*(r(t+1) - yf(t+1)) + g(6)*(r(t+6) - yf(t+6)) + ... g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ... g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ... g(4)*(r(t+4) - yf(t+4)) + g(9)*(r(t+9) - yf(t+9)) + ... g(5)*(r(t+5) - yf(t+5)) + g(10)*(r(t+10) - yf(t+10)) )/... (g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ... g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda); u(t) = u(t-1) + du(t); % MODELO DEL PROCESO EN SU FORMA CARIMA y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ... +b1*u(t)+b2*u(t-1)+b3*u(t-2); end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex=linspace(0,MM*tm,MM-3); subplot(2,1,1) plot(ejex,W(4:MM),ejex,y(4:MM)); grid ylabel(y: Inclinacion (rad) ) subplot(2,1,2) plot(ejex,u(4:MM)); grid xlabel(TIEMPO : SEG) ylabel(u: Angulo del deflector (rad)) print -deps -f p4pred1

Problema 6.2 Para el proceso del problema 6.2, dise nar un sistema de control predictivo que genere una matriz din amica de control, de modo tal que el a ngulo de inclinaci on del avi on siga una trayectoria arbitraria, pero predeterminada.

326
2 y: Inclinacin (rad) 1 0 1 2 0

Control Predictivo

100

200

300

400

500

600

700

u: Angulo del deflector (rad)

2 1 0 1 2 0

100

200

300 400 TIEMPO : SEG

500

600

700

Figura 6.18: Angulo de inclinaci on y se nal de control ( angulo del deector) correspondientes al problema 6.1. Soluci on: Ver el programa p4pred2.m.
% p4pred2.m SOLUCION DEL PROBLEMA 6.2: CONTROL DE LA INCLINACION % DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL MATRICIAL clear all % FUNCION DE TRANSFERENCIA CONTINUA DE LA PLANTA numc=[0 1.151 0.1774]; denc=[1 0.739 0.921 0]; A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0]; B=[0.232; 0.0203; 0]; C=[0 0 1]; D=[0]; % FUNCION DE TRANSFERENCIA DISCRETA DE LA PLANTA tm=2.2; % TIEMPO DE MUESTREO [numd,dend]=c2dm(numc,denc,tm,zoh); [G,H]=c2d(A,B,tm); a1=dend(2); a2=dend(3); a3=dend(4); b1=numd(2); b2=numd(3); b3=numd(4); % HORIZONTES DE CONTROL N1 =1; N2 =10; Nu =5;

6.8 Problemas Resueltos

327

% RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3; for k=4:N2 g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3; end % MATRIZ GANANCIA DE RESPUESTA AL ESCALON GG=[g(1) 0 0 0 0 g(2) g(1) 0 0 0 g(3) g(2) g(1) 0 0 g(4) g(3) g(2) g(1) 0 g(5) g(4) g(3) g(2) g(1) g(6) g(5) g(4) g(3) g(2) g(7) g(6) g(5) g(4) g(3) g(8) g(7) g(6) g(5) g(4) g(9) g(8) g(7) g(6) g(5) g(10) g(9) g(8) g(7) g(6)]; % CONDICIONES INICIALES for k=1:4 yf(k)=0; y(k)=0; r(k)=0; u(k)=0; end alf = 0.1; lambda = 0.98; MM = 500; du(1)=0; I=eye(5,5); % MATRIZ IDENTIDAD % LAZO DE CONTROL for t =4:MM+3 % TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)= sin(0.05*t)+0.005*t; r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1); end % MATRIZ R DE SE~NALES r R=[r(t+1) r(t+2) r(t+3) r(t+4) r(t+5) r(t+6)... r(t+7) r(t+8) r(t+9) r(t+10)]; % MATRIZ DE RESPUESTA LIBRE YF YF=[yf(t+1) yf(t+2) yf(t+3) yf(t+4) yf(t+5) yf(t+6)... yf(t+7) yf(t+8) yf(t+9) yf(t+10)]; % LEY DE CONTROL U=inv(GG*GG+lambda*I)*GG*(R-YF); du=U(1); u(t) = u(t-1) + du; % PROCESO y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...

328
+b1*u(t)+b2*u(t-1)+b3*u(t-2); end % FIN DEL BUCLE DE CONTROL % GRAFICOS ejex=(4:MM); ejex=ejex*tm; subplot(2,1,1) plot(ejex,W(4:MM),ejex,y(4:MM)), grid ylabel(y: Inclinacion (rad) ) subplot(2,1,2) plot(ejex,u(4:MM)), grid xlabel(TIEMPO : SEG) ylabel(u: Angulo del deflector (rad)) print -deps -f p4pred2
4 y: Inclinacin (rad) 3 2 1 0 1 0 200 400 600 800

Control Predictivo

1000

1200

u: Angulo del deflector (rad)

0.3 0.2 0.1 0 0.1 0.2 0 200 400 600 TIEMPO : SEG 800 1000 1200

Figura 6.19: Angulo de inclinaci on y se nal de control ( angulo del deector) correspondientes al problema 6.2. Problema 6.3 La gura 3.20 muestra el proceso monorriel de dos carros descrito en el problema 3.5. El problema a resolver es el control de velocidad del carro de

6.8 Problemas Resueltos

329

m aquinas mediante un sistema de control predictivo con fuerza de control escalar. Para garantizar a los pasajeros un viaje confortable, los cambios de velocidad deben realizarse con un tiempo de estabilizaci on menor que 10 s y con m nimo sobreimpulso. El error en estado estable debe ser nulo. Simule una se nal de referencia que cambie la velocidad de 30 a 20 m/s y demuestre que se cumplen las especicaciones de dise no. Luego enfrente el problema de seguimiento. Mostrar que la velocidad de la m aquina puede seguir una determinada trayectoria predeterminada de velocidades. Soluci on: Ver el programa p7pred1a.m. El programa p7pred1b.m trata el caso de referencia arbitraria. Revise ese programa si desea ver detalles al respecto.
% p7pred1a.m SOLUCION DEL PROBLEMA 6_3: CONTROL DE VELOCIDAD % DEL MONORRIEL DE DOS CARROS USANDO CONTROL PREDICTIVO % CON FUERZA DE CONTROL ESCALAR Y REFERENCIA ESCALON. % PARA REFERENCIA ARBITRARIA VER PROGRAMA p7pred1b.m clear all % DATOS DEL PROCESO M1=1300; M2=2600; M3=2600; K12=100000; K23=100000; B12=500; B23=500; B1=5000; B2=10000; B3=10000; % MODELO DEL PROCESO A=[0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0 0 0 0 1 0 0 K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2 0 0 0 0 0 1 0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3]; B=[0 1 0 0 0 0]; alfa = 1; % CONSTANTE TACOMETRICA C=[ 0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa]; D=[0;0;0]; [numc,denc]=ss2tf(A,B,C,D); % MODELO DEL PROCESO EN TIEMPO DISCRETO tm=0.3; % TIEMPO DE MUESTREO [G,H]=c2d(A,B,tm); [numd,dend]=ss2tf(G,H,C,D,1); a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5); a5=dend(6); a6=dend(7);

330

Control Predictivo

b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5); b5=numd(6); b6=numd(7); % HORIZONTES N1 =1; N2 =10; Nu =1; % RESPUESTA AL ESCALON g(1)=b1; g(2)=-a1*b1+b1+b2; g(3)=-a1*g(2)-a2*g(1)+b1+b2+b3; g(4)=-a1*g(3)-a2*g(2)-a3*g(1)+b1+b2+b3+b4; g(5)=-a1*g(4)-a2*g(3)-a3*g(2)-a4*g(1)+b1+b2+b3+b4+b5; g(6)=-a1*g(5)-a2*g(4)-a3*g(3)-a4*g(2)-a5*g(1)+b1+b2+b3+b4+b5+b6; for k=7:N2 g(k)=-a1*g(k-1)-a2*g(k-2)-a3*g(k-1)-a4*g(k-1)-a5*g(k-2)... -a6*g(k-1) + b1 + b2 + b3 + b4 + b5 + b6; end % CONDICIONES INICIALES for k=1:7 yf(k)=0; y(k)=0; r(k)=0; u(k)=0; end alf =0.1; lambda = 0; MM=500; % LAZO DE CONTROL for t=7:MM+6; % TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)= 25 + 5*sign(sin(0.01*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)... -a4*yf(t+k-4)-a5*yf(t+k-5)-a6*yf(t+k-6)+(b1+b2+b3+b4+b5+b6)*u(t-1); end % LEY DE CONTROL du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+... g(2)*(r(t+2)-yf(t+2))+g(7)*(r(t+7)-yf(t+7))+ ... g(3)*(r(t+3)-yf(t+3))+g(8)*(r(t+8)-yf(t+8))+ ... g(4)*(r(t+4)-yf(t+4))+g(9)*(r(t+9)-yf(t+9))+ ... g(5)*(r(t+5)-yf(t+5))+g(10)*(r(t+10)-yf(t+10)))/... (g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ... g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda); u(t) = u(t-1) + du(t); % PROCESO y(t+1)= -a1*y(t) -a2*y(t-1) -a3*y(t-2) -a4*y(t-3)... -a5*y(t-4) -a6*y(t-5)... +b1*u(t) +b2*u(t-1) +b3*u(t-2) +b4*u(t-3)...

6.8 Problemas Resueltos


+b5*u(t-4)+b6*u(t-5); end % GRAFICOS ejex=linspace(0,MM*tm,MM-6); subplot(2,1,1) plot(ejex,W(7:MM),ejex,y(7:MM)); grid ylabel(Y1: Velocidad (m/s)) subplot(2,1,2) plot(ejex,u(7:MM)); grid xlabel(Tiempo (segundos)) ylabel(Control u (volt)) print -deps -f p7pred1a
40 Y1: Velocidad (m/s) 30 20 10 0 0

331

50

100

150

150 Control u (volt) 100 50 0 50 0

50 Tiempo (segundos)

100

150

Figura 6.20: Velocidad del carro de m aquinas y la fuerza de control para el problema 6.3. Problema 6.4 Resuelva nuevamente el problema 6.3, pero esta vez usando un sistema de control predictivo con fuerza de control matricial. Soluci on: El programa p7pred2a.m resuelve el problema planteado y su resultado se muestra en la gura 6.22. El programa p7pred2b.m trata el caso de referencia arbitraria y su resultado se ilustra en la gura 6.23.

332
20 Velocidad (m/s) 15 10 5 0 0

Control Predictivo

50

100

150

200

250

300

60 Control u (volt) 40 20 0 20 0

50

100 Tiempo

150 200 (Segundos)

250

300

Figura 6.21: Velocidad del carro de m aquinas y la fuerza de control para el problema 6.3. La referencia es arbitraria. Problema 6.5 La gura 3.22 muestra el proceso ascensor que fue tratado en el problema 3.6. El problema a resolver es posicionar suavemente el ascensor en un piso determinado, lo que signica sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizaci on menor que 10 s. Para no saturar al actuador (un amplicador de potencia), la se nal de control debe estar dentro del rango de 200 volt. Dise nar un sistema de control de posici on predictivo con fuerza de control escalar que cumpla las especicaciones pedidas. Con el objeto de cumplir tales especicaciones, tambi en se puede usar restricci on a la salida; es decir, para cada tiempo de muestreo, hacer que la posici on controlada iguale la se nal de referencia. Es interesante anotar, que dicha restricci on origina en la simulaci on una respuesta que sigue perfectamente a la referencia. L ogicamente, los resultados de la implementaci on en tiempo real con tal restricci on, no son tan perfectos como lo son en la simulaci on, tal como sucede en el caso del control predictivo del servomotor con carga no lineal (subsecci on 6.7.8).
% p8pred1.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION % DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA % DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDA clear all

6.8 Problemas Resueltos


40 Y1: Velocidad (m/s) 30 20 10 0 0

333

50

100

150

100

u: control

50

50 0

50 Tiempo (segundos)

100

150

Figura 6.22: Velocidad del carro de m aquinas y la fuerza de control para el problema 6.4.

% ECUACION DE ESTADO A=[-0.2 0 0 0 1 0 0 0 2 0 -2 0 5 0 0 -5]; B=[0.001;0;0;0]; C=[0 1 0 0]; D=[0]; % PROCESO EN TIEMPO DISCRETO tm=1; [G,H]=c2d(A,B,tm); [numd,dend]=ss2tf(G,H,C,D); a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5); b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5); % HORIZONTES DE CONTROL N1 =1; N2 =10; Nu =1; % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3; g(4) = - a1*g(3) - a2*g(2)-a3*g(1) + b1+b2+b3+b4; for k=5:N2 g(k) = -a1*g(k-1)-a2*g(k-2)-a3*g(k-3)-a4*g(k-4)+b1+b2+b3+b4; end

334
20 Velocidad v1 (m/s) 15 10 5 0 0

Control Predictivo

100

200

300

400

500

600

700

800

900

1000

15 u: Fuerza de control 10 5 0 5 0

100

200

300

400 500 600 Tiempo (Segundos)

700

800

900

1000

Figura 6.23: Velocidad del carro de m aquinas y la fuerza de control para el problema 6.4. La referencia es arbitraria.

% CONDICIONES INICIALES for k=1:5 yf(k)=0; y(k)=0; r(k)=0; u(k)=0; end alf =0.1; lambda = 0.00; MM=300; % LAZO DE CONTROL for t =5:MM+4; % TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)=-3*sign(sin(0.02*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)-a4*yf(t+k-4)... + (b1 + b2 + b3 + b4)*u(t-1); end % RESTRICCION A LA SALIDA y(t) = W(t); % LEY DE CONTROL du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+ ... g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ... g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...

6.8 Problemas Resueltos


g(4)*(r(t+4) - yf(t+4)) + g(9)*(r(t+9) - yf(t+9)) + ... g(5)*(r(t+5) - yf(t+5)) +g(10)*(r(t+10)- yf(t+10)))/... (g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ... g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda); u(t) = u(t-1) + du(t); % EVITANDO LA SATURACION DEL AMPLIFICADOR if(u(t) > 200) u(t) = 200; elseif(u(t) < -200) u(t) = 200; end % PROCESO y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2)-a4*y(t-3)... +b1*u(t)+b2*u(t-1)+b3*u(t-2)+b4*u(t-3); end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex=linspace(0,MM*tm,MM-4); subplot(2,1,1) plot(ejex,W(5:MM),ejex,y(5:MM)); grid ylabel(POSICION (m)) xlabel(TIEMPO EN SEGUNDOS) subplot(2,1,2) plot(ejex,u(5:MM)); grid xlabel(TIEMPO EN SEGUNDOS) ylabel(VOLTAJE DE CONTROL) print -deps -f p8pred1

335

Problema 6.6 Resuelva nuevamente el problema 6.5, pero esta vez usando un sistema de control predictivo con fuerza de control matricial. Soluci on: El programa p8pred2a.m resuelve el problema planteado y su resultado se muestra en la gura 6.25. Problema 6.7 La gura 2.2 muestra dos tanques id enticos colocados en cascada. La secci on horizontal A=9 m2 de cada tanque es constante. El objetivo de control es controlar la altura H2 empleando el ujo Qo . La deducci on del modelo linealizado del proceso se deriv o en el ejemplo 2.1. Dise nar un controlador predictivo del tipo escalar con los requerimientos siguientes: tiempo de estabilizaci on menor que 15 s, sobreimpulso menor al 10 % y error en estado

336
4 POSICION (m) 2 0 2 4 0

Control Predictivo

50

100 150 200 TIEMPO EN SEGUNDOS

250

300

VOLTAJE DE CONTROL

200 100 0 100 200 0

50

100 150 200 TIEMPO EN SEGUNDOS

250

300

Figura 6.24: Posici on del ascensor y la fuerza de control (problema 6.5).


4 POSICION (m) 2 0 2 4 0

100

200

300

400

500

600

VOLTAJE DE CONTROL

200

100

100 0

100

200 300 400 TIEMPO EN SEGUNDOS

500

600

Figura 6.25: Posici on del ascensor y la fuerza de control correspondientes al problema 6.6.

6.8 Problemas Resueltos

337

estable nulo. Estas condiciones de dise no deben mantenerse cuando se cambie la referencia (por ejemplo de 3 a 2 m). Adem as, el ujo de entrada (la 3 se nal de control) no debe sobrepasar los 3 m /s.
% p9pred1.m SOLUCION DEL PROBLEMA 6.7 CONTROL DE NIVEL % USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR clear all % PARAMETROS DEL SISTEMA A = 9; gamma = 0.4; rho = 1.23; g = 9.81; Q = 3; H =Q^2/(gamma^2*rho*g); Z=(gamma*sqrt(rho*g))/(2*A*sqrt(H)); % ESPACIO DE ESTADO DE LA PLANTA EN TIEMPO CONTINUO Ac = [-Z 0;Z -Z]; Bc=[1 ; 0]; Cc=[0 1]; Dc=[0]; T = 0.9; % TIEMPO DE MUESTREO % MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [numd,dend]=ss2tf(G,H,C,D); a1 = dend(2); a2 = dend(3); b1 = numd(2); b2 = numd(3); % RESPUESTA AL ESCALON g1 = b1; g2 = -a1* b1 + b1 + b2; g3 = -a1*g2-a2*g1+b1+b2; g4 = -a1*g3-a2*g2+b1+b2; g5 = -a1*g4-a2*g3+b1+b2; g6 = -a1*g5-a2*g4+b1+b2; g7 = -a1*g6-a2*g5+b1+b2; g8 = -a1*g7-a2*g6+b1+b2; g9 = -a1*g8-a2*g7+b1+b2; g10 = -a1*g9-a2*g8+b1+b2; % HORIZONTES DE CONTROL N1 = 1; N2 =10; Nu =1; % control escalar % CONDICIONES INICIALES for k=1:3 yf(k)=0; y(k)=0; r(k)=0; u(k)=0; end alf = 0.1; lambda = 0; MM = 500; % LAZO DE CONTROL for t =3:MM+2 % TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k) = 1.5 + 0.5*sign(sin(0.02*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k) = -a1*yf(t+k-1) - a2*yf(t+k-2) + (b1 + b2)*u(t-1); end % LEY DE CONTROL du(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ ...

338
g2*(r(t+2) g3*(r(t+3) g4*(r(t+4) g5*(r(t+5) (g1^2 +

Control Predictivo

% % %

yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ... yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ... yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ... yf(t+5)) + g10*(r(t+10)-yf(t+10)))/... g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ... g7^2 + g8^2 + g9^2 + g10^2 + lambda); u(t) = u(t-1) + du(t); PROCESO LINEALIZADO (ECUACION RESIDUAL) y(t+1)=-a1*y(t)-a2*y(t-1)+b1*du(t)+b2*du(t-1); SALIDA ACTUAL (NIVEL H2) Y(t+1) = y(t+1)+W(t+1); LIMITANDO EL FLUJO DE CONTROL fu = 3.0; if(u(t) > 0 & u(t) > fu) u(t) = fu; elseif(u(t) < 0 & u(t) < -fu) u(t) = -fu; end end % FIN DEL LAZO DE CONTROL ************** GRAFICOS ejex = linspace(0,MM*T,MM-2); subplot(2,1,1) plot(ejex,W(3:MM),ejex,Y(3:MM)); grid ylabel(NIvel H2 (m)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(3:MM)); grid ylabel(Flujo de control (m^3/s)) xlabel(Tiempo en segundos) print -deps -f p9pred1

Problema 6.8 Resuelva nuevamente el problema 6.7, pero esta vez usando un sistema de control predictivo con fuerza de control matricial. Soluci on: El programa p9pred2.m resuelve el problema planteado y su resultado se muestra en la gura 6.27. Problema 6.9 El proceso electromec anico mostrado en la gura 3.26 se describe en el problema 3.8. Se pide dise nar un sistema de control predictivo con fuerza de

6.8 Problemas Resueltos


2.5 NIvel H2 (m) 2 1.5 1 0.5 0 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450

339

Flujo de control (m^3/s)

3 2 1 0 1 2 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450

Figura 6.26: Nivel controlado H2 y el ujo de control para el problema 6.7.

2.5 NIvel H2 (m) 2 1.5 1 0.5 0 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450

Flujo de control (m^3/s)

1 0

50

100

150

200 250 300 Tiempo en segundos

350

400

450

Figura 6.27: Nivel controlado H2 y el ujo de control para el problema 6.8.

340

Control Predictivo

control escalar, para controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre 100 volt. El tiempo de estabilizaci on de la se nal controlada (la velocidad) debe ser menor que 6 s y dicha respuesta debe presentar un sobrepico m aximo de 5 %, con error en estado estable nulo.
% p11pred1.m SOLUCION DEL PROBLEMA 6_9 % CONTROL DE VELOCIDAD DEL SISTEMA ELECTROMECANICO % USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR clear all % PARAMETROS DEL SISTEMA J = 0.01; Ke = 0.01; Kt = 0.01; R = 12; C = 0.5; L = 0.5; Kw = 1.8; % MODELO DEL PROCESO EN TIEMPO CONTINUO Ac = [-1/(R*C) -1/C 0 Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke) 0 Kt/J 0]; Bc = [1/(R*C);0;0]; Cc = [0 0 1]; Dc = [0]; T = 0.1; % TIEMPO DE MUESTREO % MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [numd,dend]=ss2tf(G,H,C,D); a1 = dend(2); a2 = dend(3); a3=dend(4); b1 = numd(2); b2 = numd(3); b3=numd(4); % RESPUESTA AL ESCALON g1 = b1; g2 =-a1*b1+b1+b2; g3=-a1*g2-a2*g1+b1+b2+b3; g4 =-a1*g3- a2*g2-a3*g1+b1+b2+b3; g5=-a1*g4-a2*g3-a3*g2+b1+b2+b3; g6 =-a1*g5-a2*g4-a3*g3+b1+b2+b3; g7=-a1*g6-a2*g5-a3*g4+b1+b2+b3; g8 =-a1*g7-a2*g6-a3*g5+b1+b2+b3; g9=-a1*g8-a2*g7-a3*g6+b1+b2+b3; g10=-a1*g9-a2*g8-a3*g7+b1+b2+b3; % HORIZONTES DE CONTROL N1 = 1; N2 = 10; Nu = 1; % CONDICIONES INICIALES for k = 1:4 yf(k) = 0; y(k) = 0; r(k) = 0; u(k) = 0; end du(1) = 0; alf = 0.85; lambda = 0; % LAZO DE CONTROL

6.8 Problemas Resueltos

341

MM=1000; for t =4:MM+3 TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)= 4*sign(sin(0.01*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1); end LEY DE CONTROL du(t) = ( g1*(r(t+1) - yf(t+1)) + g6*(r(t+6) - yf(t+6)) + ... g2*(r(t+2) - yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ... g3*(r(t+3) - yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ... g4*(r(t+4) - yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ... g5*(r(t+5) - yf(t+5)) + g10*(r(t+10) - yf(t+10)) )/... (g1^2 + g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ... g7^2 + g8^2 + g9^2 + g10^2 + lambda); u(t) = u(t-1) + du(t); if(u(t) > 100) u(t)=100; elseif(u(t) < -100) u(t) = - 100; end PROCESO y(t+1) = -a1*y(t)-a2*y(t-1)-a3*y(t-2)+b1*u(t)+b2*u(t-1)+b3*u(t-2); end % FIN DEL LAZO DE CONTROL GRAFICOS ejex=linspace(0,MM*T,MM-3); subplot(2,1,1) plot(ejex,W(4:MM),ejex,y(4:MM)); grid ylabel(Velocidad (rad/s)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(4:MM)); grid xlabel(Tiempo en segundos) ylabel(Voltaje de control) print -deps -f p11pred1

Problema 6.10 Resuelva nuevamente el problema 6.9, pero esta vez usando un sistema de control predictivo con fuerza de control matricial. La trayectoria deseada debe ser una curva arbitraria (problema de seguimiento).

342
5 Velocidad (rad/s)

Control Predictivo

5 0

10

20

30

40 Tiempo

50 60 en segundos

70

80

90

100

100 Voltaje de control 50 0 50 100 0

10

20

30

40 Tiempo

50 60 en segundos

70

80

90

100

Figura 6.28: Velocidad angular controlada y el voltaje de control para el problema 6.9. Soluci on: El programa p11pred2.m resuelve el problema planteado y su resultado se muestra en la gura 6.29.

6.9.

Problemas Propuestos

Problema 6.11 En el proceso de la gura 3.24(a) (ver problema 3.7) se desea reducir la humedad h del material a granel de la tolva. La banda transportadora, que se desplaza a una velocidad v = 1 m/s constante, introduce el material a un horno de secado. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la se nal de voltaje vr . El horno puede modelarse como un proceso de primer orden. La gura 3.24(b) muestra la F.T del proceso. Dise nar dos sistemas de control predictivo basado en modelos, uno con fuerza de control escalar y otro con fuerza de control matricial (la selecci on de los valores de los horizontes es a conveniencia del problema planteado). El objetivo de control es estabilizar la humedad del material en la banda transportadora. Con nes de modelado del proceso, el tiempo muerto puede ser descrito empleando la aproximaci on de Pad e de tercer orden (ver ejemplo

6.9 Problemas Propuestos


15 Velocidad (rad/s) 10 5 0 5 0

343

20

40

60

80 Tiempo

100 120 140 en segundos

160

180

200

3 Voltaje de control 2 1 0 1 2 0 20 40 60 80 Tiempo 100 120 140 en segundos 160 180 200

Figura 6.29: Velocidad angular controlada y el voltaje de control para el problema 6.10. 2.12): eT s

1 Tt s/2 + (Tt s)2 /10 (Tt s)3 /120 num(s) = den(s) 1 + Tt s/2 + (Tt s)2 /10 + (Tt s)3 /120

Las especicaciones de dise no para ambos sistemas de control son: tiempo de estabilizaci on menor que 40 s, error en estado estacionario nulo y porcentaje de sobreimpulso menor al 5 %. La selecci on del tiempo de muestreo y de los horizontes de control es a conveniencia del dise no. Problema 6.12 Las ecuaciones del modelo linealizado para controlar la posici on del ca no n montado en la torreta de un tanque (ver gura 3.28) empleando un actuador hidr aulico se detallan en el problema 3.9. (a) Dise nar un sistema de control predictivo basado en modelos para controlar el a ngulo de elevaci on con las especicaciones siguientes: tiempo de estabilizaci on menor que 5 s, m nimo sobreimpulso y error en estado estacionario nulo, empleando fuerza de control escalar. Los disturbios tipo escal on pueden actuar simult aneamente y pueden ser pos-

344

Control Predictivo itivos o negativos. El sistema de control dise nado debe ser capaz de minimizar sus efectos.

(b) Lo mismo que (a) pero empleando fuerza de control matricial. La selecci on de los horizontes de control es a conveniencia del problema planteado. (c) Lo mismo que (a), pero en este caso para controlar el angulo azimutal. (d) Lo mismo que (c), pero empleando fuerza de control matricial. En todos los casos la selecci on del tiempo de muestreo y los horizontes de control es a conveniencia del dise no. Problema 6.13 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la secci on 3.3, en donde la carga no lineal posee ahora dos grados de on de la carga con el eje libertad con Lo = 2L1 /3 y Mo =0.02 kg. La uni del servomotor no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema 3.12. (a) Dise nar un sistema de control predictivo basado en modelos para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso, empleando una fuerza de control escalar. (b) Lo mismo que (a) pero empleando una fuerza de control matricial. La selecci on de los horizontes de control y del tiempo de muestreo es a conveniencia del problema planteado. Problema 6.14 La gura 3.32 muestra el proceso p endulo doble no lineal, el cual es una extensi on del p endulo simple descrito en la secci on 3.1. El acoplamiento entre los dos p endulos de igual longitud no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema propuesto 3.13. (a) Dise nar un sistema de control predictivo basado en modelos para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso, empleando para ello una fuerza de control escalar, de modo tal que el p endulo doble permanezca en posici on vertical. Considerar que la carga esf erica es de 0.02 kg.

6.9 Problemas Propuestos

345

(b) Lo mismo que (a) pero empleando una fuerza de control matricial. La selecci on de los horizontes de control y del tiempo de muestreo es a conveniencia del problema planteado. Problema 6.15 La gura 3.33 muestra el proceso doble gr ua puente no lineal, el cual es una extensi on del proceso gr ua puente escrito en la secci on 3.2. El acoplamiento entre las dos secciones iguales de la varilla no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema propuesto 3.14. Considerar que la carga esf erica es de 0.02 kg. (a) Dise nar un sistema de control predictivo basado en modelos para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso empleando para ello una fuerza de control escalar, de modo tal que la gr ua-puente doble permanezca en posici on vertical. (b) Lo mismo que (a) pero empleando para ello una fuerza de control matricial. La selecci on de los horizontes de control y del tiempo de muestreo es a conveniencia del problema planteado. Problema 6.16 La gura 1.1 muestra un carro de masa m = 1000 kg desplaz andose con una velocidad v gracias a la acci on de la fuerza u producida por su motor. Si se desprecia la inercia de las ruedas y se asume que la fuerza de fricci on bv , donde b= 50 N-s/m es el coeciente de fricci on, es lo u nico que se opone al movimiento del carro, entonces la din amica del proceso puede modelarse como (ver ejemplo 1.16): mv (t) + bv (t) = u(t); v = dv dt

(a) Dise nar un sistema de control predictivo basado en modelos para controlar la velocidad del m ovil con m nimo tiempo de estabilizaci on y m nimo sobreimpulso. La se nal de referencia puede ser arbitraria (problema de seguimiento) y la fuerza de control a dise nar es escalar. (b) Lo mismo que (a), pero empleando fuerza de control matricial. La selecci on los valores de los horizontes y el tiempo de muestreo son a conveniencia del problema planteado.

346 Problema 6.17

Control Predictivo

El motor D.C. es un actuador muy popular en los sistemas de control porque su movimiento rotatorio, mediante acoples adecuados en su eje, puede convertirse f acilmente en movimiento de traslaci on. Eso se aprecia en fajas transportadoras o en brazos manipuladores. La gura 4.3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. Las ecuaciones que gobiernan el comportamiento din amico del motor fueron derivadas en el ejemplo 4.1. (a) Dise nar dos sistemas de control predictivo basado en modelos. El primero, para estabilizar la velocidad angular del eje del motor con las especicaciones siguientes: tiempo de estabilizaci on menor que 4 s, error en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %, y el segundo para estabilizar la posici on del eje del motor con las mismas especicaciones de dise no. (b) Repetir (a) pero en este caso empleando una fuerza de control matricial. La selecci on de los horizontes de control y del tiempo de muestreo es a conveniencia del problema planteado.

Cap tulo 7

Control Robusto
En este cap tulo se desarrollan dos procedimientos para dise nar sistemas de control robusto. El primero emplea la estructura de un sistema de control con modelo interno y se aplica a procesos univariables que presentan comportamiento estable. El segundo procedimiento usa la estructura cl asica de un sistema de control realimentado, pero su controlador se dise na mediante el principio de control con modelo interno y se aplica a procesos univariables inestables. El sistema de control robusto debe ser capaz de minimizar asint oticamente el error entre la salida y una trayectoria de referencia, no obstante la presencia de disturbios y de incertidumbres en el modelado. Para tal efecto, el sistema de control debe satisfacer los requerimientos de estabilidad y rendimiento robustos. En la antepen ultima secci on de este cap tulo se presenta la aplicaci on: control de la posici on de un servomotor D.C. sujeto a cargas no lineales. La pen ultima secci on, problemas resueltos, est a dedicada al dise no de sistemas de control robusto para diferentes procesos. Todos los archivos correspondientes a los ejercicios, problemas, dise nos, simulaciones y software desarrollados se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

7.1.

Estructura del Control con Modelo Interno

La gura 7.1 muestra el diagrama de bloques de un sistema de control discreto convencional, donde el bloque c es el controlador, el bloque hr0 (s) es la retenci on (o memoria) de orden cero, el bloque p(s) es el proceso a controlar, el bloque (s) es un ltro pasa bajo, y r , u, d, y e y son las se nales de referencia, de control (la variable manipulada), de disturbio, de salida del proceso (la variable controlada), y de salida ltrada, respectivamente. La

348

Control Robusto

d
- m - c(z )
y

- hr0 (s)

p(s)

? - m

@ @

(s)

Figura 7.1: Sistema de control discreto convencional.

notaci on empleada responde a los fundamentos tratados en el cap tulo 2. Por ejemplo, si la se nal continua y (t) pasa por un muestreador con per odo de muestreo T , entonces a la salida del muestreador se obtiene una secuencia que satisface la relaci on: de impulsos y
y (t)

=
k=0

y (kT ) (t kT )

(7.1)

La transformada de Laplace de y (t) es entonces:


(t)] L[y

sT y (e )

=
k=0

y (kT )eskT

(7.2)

Si alternativamente representamos la se nal y (t) por su serie de Fourier:


(t) y

1 = T

y (kT )eiks t
k=

(7.3)

donde s = 2/T es la frecuencia de muestreo, entonces:


sT L[y (t)] = y (e ) =

1 T

y (s + iks )
k=

(7.4)

en es u til recordar Notar que hemos usado la relaci on b asica z = esT . Tambi que la transformada Z de y (t) se puede expresar como: Z [y (kT )] = y (z ) (7.5)

7.1 Estructura del Control con Modelo Interno

349

Una funci on racional y peri odica posee la propiedad de que sus valores para frecuencias mayores que /T se pueden determinar a partir de aquellos valores correspondiente al intervalo 0 w /T . Adem as, si y (z ) es peri odica, tambi en es hermitiana; es decir: y (eiT )H = y (eiT ) = y (ei(s )T )H ; /T < w < 2/T (7.6)

Considere ahora el diagrama de bloques mostrado en la gura 7.2 correspondiente a la estructura de un sistema CMI (Control con Modelo Interno), la que comparada con la estructura convencional, presenta grandes ventajas que vamos a discutir m as adelante. Las relaciones entre el controlador cl asico c(z ) y el controlador q (z ) (el controlador CMI) se obtienen de la gura 7.2B o de su forma alternativa la gura 7.2C. Estas relaciones son: c = q = q 1p q c 1+p c (7.7) (7.8)

donde p es el bloque proceso y p es el bloque modelo del proceso. Observar en la gura 7.2B que el controlador c tiene como entradas la referencia r y la se nal medible y , y como salida la se nal de control u. La gura 7.3 muestra la estructura discreta CMI, en donde el sistema de control incluye q (z ), p (s) y (s). Observar en dicha gura que el camino paralelo que forma el modelo del proceso es para sustraer el efecto de la variable manipulada u de la salida del proceso y . Si asumimos que el modelo es una representaci on perfecta del proceso, entonces la se nal realimentada es igual a la inuencia de los disturbios y no es afectada por la acci on de la variable manipulada. En esta situaci on, el sistema se comporta como uno de lazo abierto y los problemas usuales de estabilidad asociados con la realimentaci on desaparecen. Sin demostraci on se presenta el concepto de estabilidad interna para el sistema CMI de la gura 7.3A. Estabilidad Interna: Asumiendo que el modelo es perfecto, es decir que p(s) = p (s), entonces el sistema CMI de la gura 7.3A es internamente estable s y s olo si la planta p(s) y el controlador q (z ) son estables. El controlador CMI juega el rol de un controlador anticipativo y puede ser dise nado como tal, pero con la capacidad adicional de poder cancelar

350

Control Robusto

- m

? - m ? - m

6
-

A c d r
- m - m 6

q


? - m

B q d r
- m 6 - m -

c


? - m

6 p
-

? - m

C
Figura 7.2: Representaciones alternativas del Control con Modelo Interno.

7.1 Estructura del Control con Modelo Interno

351

la inuencia de los disturbios no medibles, debido a que en la estructura CMI, la se nal de realimentaci on lleva consigo la inuencia de los disturbios. Cuando la se nal realimentada de la estructura CMI se compara con la se nal de referencia, se genera una se nal de error que el sistema de control debe minimizar. Si el modelo no imita perfectamente la din amica del proceso, entonces la se nal de realimentaci on se ve inuida, tanto por los disturbios no medibles, como por el efecto de dicho error de modelado, lo que provoca una realimentaci on real de dichos efectos que podr an conducir al sistema a probables problemas de estabilidad. Este hecho es el que fuerza al dise nador a desintonizar el controlador anticipativo ideal con el n de lograr robustez. No interesando la t ecnica que se emplee, los controladores siempre se dise nan basados en la informaci on del comportamiento din amico del proceso y de los disturbios que act uan sobre el mismo. La exactitud de dicha informaci on var a, pero no llega a ser perfecta. Por ello es deseable que el controlador sea insensible a esta clase de errores de modelaci on (incertidumbres en el modelo); es decir, que el controlador sea robusto. Del cap tulo 2 sabemos que el bloque de retenci on (o de memoria) de orden cero tiene la forma: hr0 (s) = 1 z 1 1 esT = ; s s z = esT (7.9)

Por otra parte, el bloque (s) representa un ltro que sirve para cortar las componentes de alta frecuencia de las se nales continuas antes del muestreo, cuando sea necesario. Su funci on de transferencia debe ser estable; es decir, las ra ces de su ecuaci on caracter stica deben poseer parte real negativa. Las relaciones siguientes son v alidas para la estructura CMI: r(z ) = Z [r(s)] d(z ) = Z [d(s)] d (z ) = Z [ (s)d(s)] y (z ) = Z [y (s)] e(z ) = Z [y (s) r(s)] y (z ) = Z [ (s)y (s)] p(s) (s)] p (z ) = Z [hr 0 (s) p (z ) = Z [hr0 (s)p(s) (s)] (7.10) (7.11) (7.12) (7.13) (7.14) (7.15) (7.16) (7.17)

352

Control Robusto

- m - q (z ) 6

- hr0 (s)

- p(s)

? - m ?

(s)
- p (z )

- m 

@ @

A r d
- m - q (z ) 6

- hr0 (s)

- p(s)

? - m ? - m

- p (s) @ @

(s)

B d r
- m - q (z ) 6

- p(s)

? - m

y
- p (s)

? - m

C
Figura 7.3: Estructura CMI. A: Estructura muestreada. B: Estructura equivalente a A pero no implementable. C: Estructura discreta.

7.2 Formulaci on del Problema CMI p (z ) = Z [hr0 (s) p(s)] p(z ) = Z [hr0 (s)p(s)]

353 (7.18) (7.19)

Notar que la estructura de la gura 7.3B presenta una conguraci on equivalente a la estructura mostrada en la 7.3A. La gura 7.3C ilustra el sistema CMI completamente discreto.

7.2.

Formulaci on del Problema CMI

Para dise nar el controlador discreto q (z ) debemos tener disponibles el modelo del proceso (que puede ser continuo o discreto), los rangos de incertidumbre del modelo, los tipos de entradas y los objetivos de rendimiento.

7.2.1.

El Modelo del Proceso

Los m etodos de identicaci on m as populares generan modelos de funciones de transferencia de pulso. Tales funciones son sucientes para dise nar el sistema de control, pero no permiten el an alisis del comportamiento del sistema entre puntos de muestreo, lo que puede ser signicativamente peor que el comportamiento en los mismos puntos. Como las incertidumbres del modelo se describen en forma natural en el tiempo continuo, resulta entonces conveniente tener el modelo continuo del proceso que puede asumirse lineal e invariante con el tiempo y con presencia de tiempos muertos. Es importante en esta parte mencionar la caracter stica causal de los sistemas. Sistema Causal y Estrictamente Causal: Un sistema g (z ) es propio o causal si limz g (z ) es nito. Un sistema propio es estrictamente propio si limz g (z ) = 0, y es semipropio si limz g (z ) > 0. Todos los sistemas que no son propios se denominan impropios o no causales.

7.2.2.

Descripci on de Incertidumbres del Modelo

Hagamos que p(s) = p(j ) pertenezca a una familia de procesos II denida por: (7.20) II = {p : |p(j ) p (j )| a ( )} en donde a ( ) es la incertidumbre aditiva del proceso; es decir, que la incertidumbre o error de modelaci on del proceso actual p(j ) se ubique en

354

Control Robusto

una regi on circular acotada de radio conocido a ( ), o de modo equivalente: p(j ) = p (j ) + a (j ) | a (j )| a ( ), p II La cota de la incertidumbre multiplicativa
m ( )

(7.21) (7.22)

del proceso se dene como: (7.23)

m ( ) = a ( )/|p (j )| De las guras 7.3A o 7.3B podemos obtener con p = p : p(s)q (esT )r (esT ) r(s); y (s) r(s) = e(s) = hr0 (s) y luego: y (s) =p (s)q (esT ) hr0 (s)r (esT ) r (s) = 1 r (s); r (s) =

r(s) = hr0 (s)r (esT ) (7.24) e(s) (7.25) r(s)

on de sensitividad y r es la funci on de sensitividad donde r es la funci complementaria. Ejemplo 7.1 Determinar las expresiones de p(s) y p (s) para el proceso servomotor D.C. con carga no lineal variable descrito en la secci on 3.3 e ilustrado en la gura 3.9. La u nica incertidumbre del proceso a tener en cuenta es la carga adicional conectada a un extremo de la varilla (una esfera de radio Ro y masa Mo ), la cual puede variar entre 0 y 0.045 kg. En base a la respuesta al escal on, ya sea del proceso o de su modelo nominal, seleccione un tiempo de muestreo adecuado y determine la funci on de transferencia de pulso p (z ) del modelo nominal del proceso. Soluci on: El programa ejem7 1.m determina p(s) y p (s) para el proceso en estudio. El resultado es el siguiente: p(s) = p (s) = s2 Kp 30,4696 = 2 + ap s + bp s + 1,2707s + 14,4007

Kn 91,4375 = 2 s2 + an s + bn s + 3,8133s + 17,9220

Observando las respuestas al escal on en la gura 7.4, podemos concluir que un tiempo de muestreo de T = 0.05 s es suciente para poder capturar la

7.2 Formulaci on del Problema CMI

355

curva de transici on producida por la respuesta del proceso al escal on. La funci on de transferencia de pulso del modelo nominal del proceso resulta: p (z ) = 0,1070z + 0,1004 b1 z + b2 = 2 z 2 + a1 z + a2 z 1,7858z + 0,8264

% ejem7_1.m CALCULO DE p(s) Y DE SUS MODELOS NOMINALES pn(s) Y pn(z) clear all % PARAMETROS DEL PROCESO NO LINEAL Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.0352e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; % Mo = 0,0.01,0.02,0.045; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm +bL; Jeff = n^2*Jm +JL; % PROCESO p(s) (EL SUBINDICE p SIGNIFICA PROCESO) Mo = 0.045; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); Ap = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bp = [0;n*K*Kact/(R*M)]; Cp = [1 0]; Dp = [0]; [nump,denp]=ss2tf(Ap,Bp,Cp,Dp); % nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp) Kp = nump(3); ap = denp(2); bp = denp(3); % MODELO NOMINAL pn(s) (EL SUBINDICE n SIGNIFICA NOMINAL) Mo=0.0; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); An = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bn = [0;n*K*Kact/(R*M)]; Cn = [1 0]; Dn = [0]; [numn,denn] = ss2tf(An,Bn,Cn,Dn); % numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn) Kn = numn(3); an = denn(2); bn = denn(3); % [Kp ap bp] = [30.4696 1.2707 14.4007] % [Kn an bn] = [91.4375 3.8133 17.9220] % MODELO NOMINAL DISCRETO pnz(z) T = 0.05; [numd,dend] = c2dm(numn,denn,T,zoh); % numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2) a1 = dend(2); a2 = dend(3); b1 = numd(2); b2 = numd(3);

356
% [a1 b1 a2 b2] = [-1.7858 0.1070 0.8264 0.1004] % GRAFICOS subplot(2,1,1) step(nump,denp) xlabel(Tiempo en segundos) ylabel(Respuesta del proceso) grid subplot(2,1,2) step(numn,denn) ylabel(Respuesta del modelo) xlabel(Tiempo en segundos) grid print -f -deps ejem7_1

Control Robusto

4 Respuesta del proceso 3 2 1 0 0

4 5 6 Tiempo en segundos

10

8 Respuesta del modelo 6 4 2 0 0

0.5

1.5 2 Tiempo en segundos

2.5

Figura 7.4: Respuestas a la se nal escal on del proceso y de su modelo nominal.

7.3.

Control Robusto para Procesos Estables

El procedimiento de dise no que se describe a continuaci on es el mismo desarrollado en [9] y se puede aplicar a procesos estables de una entrada y una salida. El sistema de control robusto ilustrado en la gura 7.3 debe ser internamente estable. Esto se logra si la planta p(s) y el controlador q (z ) son estables, asumiendo que el modelo del proceso es perfecto ( p(s) = p(s)).

7.3 Control Robusto para Procesos Estables

357

El procedimiento de dise no consta de dos pasos. En el primero, denominado rendimiento nominal, se selecciona un controlador q (z ) que permita obtener respuestas satisfactorias del sistema a entradas de inter es, sin tener en consideraci on restricciones e incertidumbres en el modelo. En el segundo paso, denominado estabilidad y rendimiento robustos, se selecciona un controlador de la forma q (z ) = q (z )f (z ), donde f (z ) es un ltro pasa bajo introducido para lograr estabilidad y rendimiento robustos.

7.3.1.

Rendimiento Nominal

Sistemas del Tipo m La propiedad asint otica de la respuesta a lazo cerrado del sistema de control robusto puede ser establecida mediante el concepto de tipo del sistema. Un sistema del tipo m, donde m es un entero no negativo, es aquel cuya salida sigue perfectamente las entradas r(s) y d(s) (ver gura 7.3) cuando t , siempre que tal sistema posea todos sus polos en el semiplano izquierdo del plano-s, excepto m o menos polos en s = 0. Si el sistema a lazo cerrado es estable, las condiciones necesarias y sucientes para que el sistema sea del tipo m, con m > 0, son: dn (1 p (z )q (z )) = 0, z 1 dz n l m dn (1 (s)) = 0, s0 dsn l m Dise no del Preltro (s) El objetivo principal del preltro (s) es cortar las componentes de alta frecuencia para evitar la superposici on de frecuencias. Los ya conocidos ltros de Butterworth y Bessel satisfacen la ecuaci on (7.27) para m = 1. Para m > 1 se puede emplear una simple modicaci on. Escribamos: (s) = 1 (s)m (s) con: m (s) = cm1 sm1 + + c1 s + 1 ( s + 1)m1 (7.28) 0n<m 0n<m (7.26) (7.27)

(7.29)

en donde 1 (s) es un preltro apropiado para m=1. Entonces, para un espec co, podemos usar (7.27) para calcular los coecientes c1 , . . . , cm1 .

358

Control Robusto

Cualitativamente m (s) adiciona algunas propiedades en = 0, sin afectar signicativamente el comportamiento de 1 (s) en las frecuencias altas. Para ello se recomienda usar un grande. Un ltro de segundo orden con m = 2 (entrada rampa) posee la forma: 1 (s) =
2 0 2 s2 + 20 s + 0

La soluci on de la ecuaci on (7.27) determina que c1 = +2/0 . Para un valor de sucientemente grande, el preltro m (s) no afecta signicativamente el comportamiento de (s) en las altas frecuencias.
: q H (z ) Controlador Optimo de Norma Cuadr atica H2

na resolviendo El controlador o ptimo de norma cuadr atica q H (z ) se dise : el siguiente problema de minimizaci on de norma cuadr atica H2
q H (z )

m n

e(z )

2=

q H (z )

m n

(1 p (z ) qH (z ))v (z )

(7.30)

on de la sujeto a la restricci on que q H (z ) sea estable y causal. La minimizaci norma anterior resulta en el siguiente controlador:
1 q H (z ) = z (pM (z )vM (z ))1 {z 1 p A (z )vM (z )}

(7.31)

on en fracciones donde el operador {.} denota que luego de una expansi parciales del operando, s olo ser an retenidos los t erminos que sean estrictamente propios y estables; es decir, aquellos t erminos que posean polos que se ubiquen dentro del c rculo unitario (incluso en z = 1). Notar tambi en que el proceso estable p (z ) ha sido factorizado en una parte pasa todo p A (z ) y otra parte de m nima fase p M (z ), como sigue: pM (z ) p (z ) = p A (z ) donde: p A (z ) = z N h j =1
H )1 )(z ) (1 (j j H )1 ) (1 j )(z (j

(7.32)

(7.33)

(z ) que est an fuera del c rculo unitario. y j , j = 1, . . . , h son los ceros de p El entero positivo N se selecciona de modo tal que p M (z ) sea semipropio; es decir, que el numerador y el denominador de p M (z ) posean el mismo grado, lo que es equivalente a decir que z N p (z ) sea semipropio.

7.3 Control Robusto para Procesos Estables La entrada v (z ) tambi en se factoriza en forma similar: v (z ) = vA (z )vM (z ) con:
v vA (z ) = z Nv h j =1

359

(7.34)

H )1 )(z ) (1 (vj vj H )1 ) (1 vj )(z (vj

(7.35)

donde vj , j = 1, . . . , hv son los ceros de v (z ) que est an fuera del c rculo N v unitario y el entero positivo Nv se selecciona de modo tal que z v (z ) sea semipropio. Notar que q H (z ) debe ser estable y causal. Sin embargo, debido a su car acter discreto, este controlador puede presentar problemas de comportamiento en las intermuestras (entre puntos de muestreo) causadas por los polos de q H (z ) cercanos al punto (1, 0). Por consiguiente, es necesario realizar una modicaci on del controlador q H (z ). La tabla 7.1 muestra la expresi on del controlador q H (z ) para algunas entradas t picas. picas. Cuadro 7.1: Controlador q H (z ) para algunas entradas t v (s)
1 s

v (z )
z z 1

Controlador q H (z ) ( pM (z ))1 ( pM (z ))1 ( pA (eT / ))1 ( pM (z ))1


1 T / T / 1 T / )e )z +( p )1)eT / (1p A (e A (e (1eT / )z

1 s+1

z/ z eT / z (1eT / ) (z 1)(z eT / )

1 s( s+1) 1 s2

Tz (z 1)2

z N ( pM (z ))1 (N ++1) z

donde: =

1 d N )| p z =1 A (z )z dz (
H ) 1 ( j j h j =1 (1j )(1( H )1 ) j

360 Ejemplo 7.2

Control Robusto

Determinar el controlador o ptimo cuadr atico q H (z ) para el proceso p(z ) del ejemplo 7.1, asumiendo que la entrada v (s) es un escal on. Soluci on: Del ejemplo 7.1 conocemos p (z ) para T = 0.05 s: p (z ) = b1 z + b2 z 2 + a1 z + a2

Adem as, se debe cumplir que p (z ) = p A (z ) pM (z ), de modo tal que z N p (z ) sea semipropio y por consiguiente, N = 1. El cero b2 /b1 = -0.9874 de p (z ) se ubica dentro del c rculo unitario; entonces j = 0 y: p A (z ) = z 1 ; p M (z ) = z (b1 z + b2 ) p (z ) = 2 p A (z ) z + a1 z + a2
z z 1

Empleando ahora la tabla 7.1 para v (z ) = pM (z ))1 = q H (z ) = ( Dise no del Controlador CMI q (z )

obtenemos:

z 2 + a1 z + a2 z (b1 z + b2 )

Deseamos obtener el controlador CMI q (z ) postulando: q (z ) = q H (z ) q (z )B (z ) (7.36)

donde q (z ) cancela todos los polos de q H (z ) que posean parte real negativa y los sustituye con polos en el origen con el prop osito de que el sistema tienda a controlarse con m nimo tiempo de estabilizaci on. B (z ) se selecciona para preservar el tipo m del sistema. H (z ) con parte real negativa. Entonces Sean i , i = 1, . . . , , los polos de q podemos escribir: z i (7.37) q (z ) = z i=1 1 ki
m1

B (z ) =
i=0

bi z i

(7.38)

donde m es el tipo del sistema y los coecientes bi , i = 0, . . . , m 1, se seleccionan de modo tal que q (z ) satisfaga la ecuaci on (7.26). Por construcci on,

7.3 Control Robusto para Procesos Estables

361

q H (z ) tambi en cumple con la ecuaci on (7.26). Por consiguiente, q (z ) debe satisfacer la ecuaci on (7.26) s y s olo si: dn (1 q (z )B (z )) = 0, z 1 dz n l m n = 0, 1, . . . , m 1 (7.39)

Para los casos especiales m = 1 y m = 2 se puede obtener: B (z ) = 1,


m1

m=1 m=2

(7.40) (7.41)

B (z ) =
i=0

bi z i = b0 + b1 z 1 ,

b0 = 1 b1 ;

b1 =
i=1

i 1 i

(7.42)

Ejemplo 7.3 Determinar el controlador CMI q (z ) sabiendo que el proceso p(z ) del ejemplo 7.1 es del tipo m = 1. Tener en cuenta que la entrada v (s) es un escal on. q (z ). Para m = 1, B (z ) = 1. Los Soluci on: Sabemos que q (z ) = q H (z ) polos de q H (z ) son z = 0 y z = b2 /b1 = -0.9874. Entonces, = 1 (un polo con parte real negativa que hay que sustituir con un polo en el origen), i =1 y i = 1 = b2 /b1 , de modo que: q (z ) = z j =1 Luego: q (z ) = q H (z ) q (z ) = z j z 1 = z 1 1 kj 1 k1 z 2 + a1 z + a2 (b1 + b2 )z 2

7.3.2.

El Filtro Discreto CMI

El controlador dise nado q (z ) debe ahora ser aumentado con un ltro pasa bajo f (z ) de modo tal que q (z ) = q (z )f (z ). La estructura y los par ametros del ltro se determinan para que se alcance un compromiso o ptimo entre rendimiento y robustez. La forma m as simple de f (z ) es: f (z ) = (1 )z z (7.43)

362

Control Robusto

El ltro f (z ) debe preservar las propiedades asint oticas del sistema de lazo cerrado; es decir, la ecuaci on (7.26). Por consiguiente, para que el sistema sea del tipo m, el ltro f (z ) debe satisfacer: dn (1 f (z )) dz n = 0;
z =1

0n<m

(7.44)

Para un sistema del tipo m = 1, el ltro de la ecuaci on (7.43) cumple el requerimiento anterior: f (1) = 1. Sin embargo, para m 2 se debe postular: f (z ) = (0 + 1 z 1 + + w z w ) (1 )z z (7.45)

donde los coecientes 0 , . . . , w se seleccionan de modo tal que satisfagan la ecuaci on (7.44). Para m = 2 y w 2 se ha determinado que: k = 6k , (1 )(w + 1)(2w + 1) k = 1, . . . , w (7.46)

7.3.3.

Estabilidad Robusta

Dise no del Filtro La condici on de estabilidad robusta se establece en t erminos del controlador CMI q (z ) = q (z )f (z ). Asumiendo que todos los procesos p(s) en la familia II son estables, que q (z ) es estable y que c(z ) est a relacionado con q (z ) por la ecuaci on (7.7), entonces los sistemas en las guras 7.2A y 7.3A son robustamente estables, si y s olo si: (ejT ) q (ejT ) m ( )|1 , |f (ejT )| < |p 0 . T (7.47)

donde m ( ) representa la cota de la incertidumbre multiplicativa. Para un buen rendimiento del sistema, las incertidumbres tienen que ser acotadas. Una simple especicaci on de rendimiento requiere que el sistema de lazo cerrado sea del tipo m = 1; es decir, que f (1) = p (1) q (1) = (0) = 1. Como corolario de la ecuaci on (7.47), podemos armar que si la incertidumbre multiplicativa ( ) es continua, entonces existe un ltro f (z ) para el cual el sistema a bucle cerrado sea del tipo m = 1, as como tambi en robus tamente estable para la familia de procesos II . Esto, siempre que m (0) < 1, donde m (0) es el error multiplicativo en estado estable del sistema continuo. Una forma simple de dise nar el ltro CMI es emplear un ltro f (z ) con la estructura dada en la ecuaci on (7.45) y luego variar el par ametro de

7.3 Control Robusto para Procesos Estables

363

modo tal que se satisfaga la ecuaci on (7.47). Esta ecuaci on pone una cota en se puede obtener del gr aco de Bode de: inferior a . Dicha cota tambi (|p (ejT q (eiwT )| m ( ))1 (7.48)

Si esta cantidad nunca es menor que 1, entonces = 0. Si se obtuvieran valores menores que 1, puede ser determinada a partir del gr aco de Bode de f (z ). Este gr aco resulta pr acticamente similar al obtenido con el ltro de primer orden dado en la ecuaci on (7.43), siempre que el n umero de coecientes w en la ecuaci on (7.45) sea sucientemente grande. Por ejemplo, (eiwT )| m ( ))1 decrece en la forma que lo hace un sistema de si (|p (ejT q primer orden, hasta alcanzar un valor de 0,7 en = , entonces: = eT w Efecto del Muestreo Un incremento de la constante de tiempo del ltro reduce el ancho de banda del sistema nominal. Grandes valores del tiempo de muestreo T tambi en reducen el ancho de banda debido a que si escribimos la ecuaci on (7.47) como: (j )| a ( ) (7.50) |p (j ) q (ejT )f (ejT )| < |p podemos observar que el ancho de banda del t ermino de la izquierda puede ser reducido incrementando en f (z ) o dejando f (z ) = 1 y aumentando T . (7.49)

7.3.4.

Rendimiento Robusto

Para rendimiento robusto, el controlador tiene que ser dise nado para que: M (w) |q (j )| a ( ) + |1 p (j ) q (j )|W ( ) < 1, 0 /T (7.51)

q (j ) = q (ejT )f (ejT )Z [hr0 (s) (s)] donde se ha introducido una funci on de peso W ( ) sobre la cual se discute a continuaci on. La selecci on de W (w) depende de los requerimientos de rendimiento impuestos por el dise nador. Es razonable usar la funci on de sensitividad ideal (s) = p (s) q (s) como una gu a para la b usqueda de W ( ): (j ) q (j )| W ( )1 |1 p (7.52)

364

Control Robusto

Para que la condici on anterior resulte una funci on propia (requerimiento que tambi en es necesario para cualquier W (w)), se deben cumplir las condiciones siguientes para m 1: W ()1 1; W (0)1 0 (7.53)

Ejemplo 7.4 Determinar una funci on de peso adecuada para el proceso servomotor D.C. sujeto a cargas no lineales (ver ejemplos 7.1, 7.2 y 7.3). Soluci on: Podemos seleccionar la siguiente funci on de peso: W (s)1 = 0,4 0,5s + 1 ; 0,1s + 1 s = j

que cumple las condiciones establecidas en la ecuaci on (7.53). Sin embargo, se recomienda emplear la forma general dada en la ecuaci on (7.52), debido a que nos permite cambiar la magnitud de la funci on de peso usando un factor multiplicativo, siempre que no se sobrepase la condici on dada en (7.52). Esta forma de variar la funci on de peso proporciona mayor exibilidad en el proceso de vericaci on del rendimiento robusto, tal como veremos m as adelante. Dise no del Filtro La forma m as simple de dise nar el ltro f (z ) es especicar su estructura dada en la ecuaci on (7.45) y luego tratar de satisfacer la ecuaci on (7.51) variando el par ametro . Incrementando , el primer t ermino de M (w) decrece mientras que el segundo t ermino crece. Por consiguiente, dependiendo de a y W , podr a no existir un valor de para que la ecuaci on (7.45) sea satisfecha. Asumiendo que q (z ) y f (z ) se seleccionan de modo tal que el sistema resulte del tipo m = 1 (para el cual se cumple que p (z ) q (z )f (z )|z =1 = 1) o mayor, y que m (0) < 1, entonces, siempre es posible conseguir rendimiento robusto para = 0 y para cualquier peso W ( ). El par ametro debe ser sintonizado para que se satisfagan las condiciones dadas en las ecuaciones (7.47) y (7.51). Desde que es posible imponer la cota inferior de , entonces, para determinar dicho par ametro, debemos resolver el siguiente problema de optimizaci on:
1 0 /T

m n

m ax M ( )

(T )

(7.54)

7.3 Control Robusto para Procesos Estables

365

donde se ha introducido el argumento T en para indicar que el valor ptimo de la funci o on objeto depende del tiempo de muestreo T . Ejemplo 7.5 Dise nar el ltro f (z ) para el proceso servomotor D.C. usando los resultados de los ejemplos 7.1 al 7.4. Vericar que se cumplan las condiciones de estabilidad y rendimiento robustos. Asumir: m ( ) | m (ei )| y a ( ) | a ( )|.
) z Soluci on: Como el sistema es del tipo m = 1, entonces: f (z ) = (1z . Para determinar la estabilidad robusta del proceso, empleamos la ecuaci on (7.51) con diferentes valores de , tal como lo calcula el programa ejem7 5.m. Podemos comprobar que la estabilidad robusta para el caso que nos ocupa, se preserva para cualquier valor de entre 0 y 1. El mismo programa determina el rendimiento robusto del proceso. En el gr aco de magnitudes de la gura 7.5, podemos observar que para = 0.9 se cumplen las condiciones de estabilidad y rendimiento robustos. Este valor de es la soluci on al problema de optimizaci on planteado en la ecuaci on (7.54). Notar que en la vericaci on del rendimiento robusto estamos empleando un factor de 0.5 en la funci on de peso W (s).

% ejem7_5.m ESTABILIDAD ROBUSTA Y RENDIMIENTO ROBUSTO clear all % PARAMETROS DEL PROCESO NO LINEAL Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.0352e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; % Mo=0,0.01,0.02,0.045; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm +bL; Jeff = n^2*Jm +JL; % PROCESO p(s) Mo = 0.045; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); Ap = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bp = [0;n*K*Kact/(R*M)]; Cp = [1 0]; Dp = [0]; [nump,denp]=ss2tf(Ap,Bp,Cp,Dp); % nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp) Kp = nump(3); ap = denp(2); bp = denp(3); % PROCESO DISCRETO pz(z) T = 0.05; [numdp,dendp] = c2dm(nump,denp,T,zoh);

366

Control Robusto

% numdp(s)/dendp(s) = pnz(z) = (bp1*z + bp2)/(z^2 + ap1*z + ap2) ap1 = dendp(2); ap2 = dendp(3); bp1 = numdp(2); bp2 = numdp(3); % MODELO NOMINAL pn(s) Mo=0.00; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); An = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bn = [0;n*K*Kact/(R*M)]; Cn = [1 0]; Dn = [0]; [numn,denn] = ss2tf(An,Bn,Cn,Dn); % numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn) Kn = numn(3); an = denn(2); bn = denn(3); % MODELO NOMINAL DISCRETO pnz(z) T = 0.05; [numd,dend] = c2dm(numn,denn,T,zoh); % numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2) a1 = dend(2); a2 = dend(3); b1 = numd(2); b2 = numd(3); % CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0.955; for w = 0:pi/T s=i*w; z=exp(s); pnz = (b1*z+b2)/(z^2+a1*z+a2); pz = (bp1*z+bp2)/(z^2+ap1*z+ap2); laz = pz - pnz; lmz = laz/pnz; qt = (z^2 + a1*z + a2)/((b1 + b2)*z^2); % qt <> q~ mag_dB(w+1) = 20*log10(1/(abs(pnz*qt*lmz))); f = (1-alfa)*z/(z-alfa); magf_dB(w+1) = 20*log10(abs(f)); % PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w; z=exp(s); pn = Kn/(s^2 + an*s + bn); p = Kp/(s^2 + ap*s + bp); la = p - pn; lm = la/pn; qt = (z^2 + a1*z + a2)/((b1 + b2)*z^2); % qt <> q~ f = (1-alfa)*z/(z-alfa); q = qt*f;

7.3 Control Robusto para Procesos Estables


W = 0.5/abs(1-pn*qt); M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)); % PARA RENDIMIENTO ROBUSTO: M_dB < 0 end % GRAFICOS ejew = linspace(0,pi/T,pi/T); subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--) ylabel(Magnitudes en dB) title( (a)) xlabel(Frecuencia angular (rad/s)) grid subplot(122) semilogx(ejew,M_dB(1:pi/T)) ylabel(Magnitud de M en dB) title( (b)) xlabel(Frecuencia angular (rad/s)) grid print -f -deps ejem7_5 print -s -deps ejem7_6a
(a) 40 2 0 2 4 6 8 10 12 14 16 0 10 (b)

367

30

20 Magnitud de M en dB
1 2

Magnitudes en dB

10

10

20

30

40 0 10

10 Frecuencia angular

10 (rad/s)

10 Frecuencia angular

10 (rad/s)

Figura 7.5: (a) Magnitudes de |p q |1 y |f (z )| (en trazos) para vericar la estabilidad. (b) Magnitud de M para vericar el rendimiento robusto.

368 Selecci on del Tiempo de Muestreo

Control Robusto

Cuando el tiempo de muestreo es sucientemente peque no, entonces el sistema discreto tiende a comportarse como uno continuo, increment andose de esta manera el rendimiento nominal del sistema. Sin embargo, el costo computacional es mayor y la aparici on de una alta frecuencia de muestreo del orden de 1/T puede hacer que disminuya el rendimiento robusto. Por consiguiente, tiempos de muestreo sucientemente grandes pueden ser aceptables para conseguir estabilidad robusta y rendimiento robusto. Sin embargo, si el tiempo de muestreo fuera muy grande, podr a ser imposible satisfacer los requerimientos para lograr un rendimiento robusto. Como regla, /T se puede seleccionar m as grande que el ancho de banda sobre el cual se desea un buen rendimiento. Otra forma de seleccionar T es deteminar la respuesta al escal on del proceso para poder seleccionar un tiempo T sucientemente peque no, que nos permita muestrear y luego recuperar sin dicultad la curva de respuesta resultante. Si para un cierto tiempo de muestreo T se encuentra que (T ) < 1, entonces podemos seguir incrementando el tiempo de muestreo. Por otra parte, si para un determinado T resulta que (T ) > 1, signica entonces que las incertidumbres asumidas en el modelo del proceso y en la estructura del controlador deben ser reajustadas. Ejemplo 7.6 Simular el sistema de control robusto dise nado en los ejemplos 7.1 al 7.5. Soluci on: Ver el diagrama de dise no en la gura 7.6 (archivo ejem7 6a.m) y los resultados de la simulaci on en la gura 7.7. Los gr acos se realizan con el programa ejem7 6b.m.

7.4.

Control Robusto para Procesos Inestables

Para controlar procesos con comportamiento inestable se tiene que emplear la estructura cl asica ilustrada en la gura 7.1. Asumiendo que el modelo del proceso es perfecto, es decir, que p(s) = p (s), y adem as que p(s) y p (z ) posean polos inestables 1 , . . . , k , la estabilidad interna del sistema de la gura 7.1 (donde c = q (1 p q )1 ) queda garantizada, siempre que q (z ) sea estable y que (1 p (z )q (z )) posea ceros en 1 , . . . , k .

7.4 Control Robusto para Procesos Inestables

369

+ Sum1

z2+a1.z+a2 (b1+b2)z2 Controlador q~(z)

(1alfa)z zalfa Filtro u_ej7_6 control

Kp s2+ap.s+bp Proceso p(s) Kn s2+an.s+bn

Mux q Mux Grfico

q_ej7_6 posicin

referencia .

Modelo nominal pn(s) + Sum2

Figura 7.6: Diagrama de bloques para la simulaci on del sistema de control robusto dise nado.
1 Posicin en rad 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Control en voltios

0.3

0.2

0.1 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Figura 7.7: Resultado de la simulaci on del sistema de control robusto dise nado en los ejemplos 7.1 al 7.5.

370

Control Robusto

7.4.1.

Rendimiento Nominal

El procedimiento de dise no del controlador robusto para procesos inestables, es el mismo que para procesos estables. Primero se dise na el controlador q H y luego se le modica de modo tal que permita evitar el problema debido a las oscilaciones que se pueden originar entre muestras. En esta forma obtenemos el controlador q = q H q B (z ). Este u ltimo controlador se modica con un ltro f (z ) para poder garantizar estabilidad y rendimiento robustos. El controlador resultante posee la forma: q (z ) = q (z )f (z ).
El Controlador Optimo H2

Asumamos que p(z ) = p (z ) posee polos 1 , . . . , k ubicados fuera del CU (c rculo unitario) y un polo de multiciplicidad . Denamos: bp (z ) = j =1
H )1 )(z ) (1 (j j H )1 ) (1 j )(z (j

(7.55)

on y factoricemos la planta en una porci on pasa todo pA (z ) y otra porci semipropia de m nima fase pM (z ) (ver la subsecci on 7.3.1): p (z ) = p A (z ) pM (z ) De manera an aloga factoricemos la entrada v (z ): v (z ) = vA (z )vM (z ) (7.57) (7.56)

Asumamos ahora sin p erdida de generalidad, que los polos inestables de v (z ) ubicados fuera del CU son los primeros 1 polos j del proceso, y denamos: bv (z ) =
1 j =1 H )1 )(z ) (1 (j j H )1 ) (1 j )(z (j

(7.58)

Asumamos adem as que v (z ) posee al menos (z ) viene dado por: controlador o ptimo H2

polos en z=1. Entonces el

q H (z ) = zbp (z )(pM (z )bv (z )vM (z ))1 {(zbp (z )pA (z ))1 bv (z )vM (z )} (7.59) donde el operador {.} denota que luego de una expansi on en fracciones parciales del operando, s olo ser an retenidos los t erminos que sean estrictamente propios, exceptuando aquellos correspondiente a los polos de pA (z )1 . Notar que para procesos estables: bp = bv = 1. Si todos los polos inestables del proceso p(s) se ubican en el origen, se puede usar la tabla 7.1.

7.4 Control Robusto para Procesos Inestables Dise no del Controlador CMI q (z ) El controlador CMI tiene la forma: q (z )B (z ) q (z ) = q H (z )

371

(7.60)

H (z ) que posean donde q (z ) cancela todos los polos i , i = 1, . . . , de q parte real negativa, y los sustituye con polos en el origen. De esta forma, el sistema tiende a controlarse con m nimo tiempo de estabilizaci on. El controlador q (z ) se formula como: q (z ) = z i=1 z i 1 ki (7.61)

ces inestables (incluyendo z=1) con multiSean i , i = 1, . . . , , las ra plicidad mi correspondientes al m nimo denominador com un de p(z ) y v (z ) Tener en cuenta que v (z ) y p(z ) poseen la misma cantidad de polos en z = 1. Los requerimientos para garantizar el tipo del sistema y la estabilidad interna pueden ser unicados mediante la relaci on siguiente: dk (1 q (z )B (z )) dz k = 0,
z =i

k = 0, . . . , mi 1;

i = 1, . . . , (7.62)

Se puede formular adem as:


M 1

B (z ) =
j =0

bj z j

(7.63)

M=
i=1

mi

(7.64)

y computar los coecientes bj , j = 0, . . . , M 1 de (7.63). Notar que (7.62) da lugar a M ecuaciones lineales con M inc ognitas b0 , b1 , . . . , bM 1 ; dicha ecuaci on es equivalente a: dk (1 q (1 )B (1 )) dk = 0; k = 0, . . . , mi 1; i = 1, . . . , . (7.65)

1 =i

372

Control Robusto

7.4.2.

El Filtro Discreto CMI


(1 )z z

La estructura m as simple del ltro es: f1 (z ) = (7.66)

En general, el ltro f (z ) debe satisfacer los requerimientos siguientes: 1. Seguimiento asint otico a entradas externas al sistema (referencias y/o disturbios). Es decir, (1 p(z )q (z )f (z ))v (z ) debe ser estable. 2. Estabilidad interna. En esta situaci on, q (z )f (z ) y (1 p (z ) q (z )f (z )) deben ser estables. Dado que q (z ) cumple los requerimientos anteriores para f (z ) = 1, entonces: dk (1 f (z )) dz k = 0,
z =i

k = 0, . . . , mi 1;

i = 1, . . . ,

(7.67)

donde i y mi ya fueron denidos anteriormente. Notar que cuando k = 0, f (z ) = 1 para z = 1 , . . . , . En otro caso, el ltro se escoge de: f (z ) = (z )f1 (z ) donde: (z ) =
j =0

(7.68)

j z j

(7.69)

Los coecientes 0 , . . . , se seleccionan de modo tal que para un determinado , se cumpla la ecuaci on (7.67), gener andose M ecuaciones lineales con M inc ognitas. Observar que para = 1, se tiene 1 = 1, m1 = 1 y (z ) = 1. Si M = 2, conviene seleccionar 2 para evitar la soluci on trivial.

7.4.3.

Estabilidad y Rendimiento Robustos

Los requerimientos a satisfacer para garantizar estabilidad y rendimiento robustos son los mismos que rigen para procesos estables. Tales requisitos fueron desarrollados en las subsecciones 7.3.3 y 7.3.4. Resumiendo, para garantizar estabilidad robusta se debe cumplir: |f (ejT )| < |p (ejT ) q (ejT ) m ( )|1 , 0 . T (7.70)

7.5 Procedimiento de Dise no Para garantizar rendimiento robusto se tiene que cumplir: |q | a + |1 p q |W 1, donde: q (s) = q (esT )f (esT )Z [hr0 (s)] El dise no del preltro (s) se trat o en la subsecci on 7.3.1 0 /T

373

(7.71) (7.72)

7.5.

Procedimiento de Dise no

El procedimiento para dise nar un sistema de control robusto discreto con estructura CMI es como sigue: 1) Formular el problema (denir especicaciones de dise no). 2) Usando toda la informaci on disponible acerca del proceso no lineal, determinar el modelo de la planta con sus incertidumbres y denir los tipos de las entradas (subsecci on 7.2). 3) Seleccionar la frecuencia de muestreo (subsecci on 7.3.4), analizando las respuestas al escal on del proceso y del modelo nominal del mismo. 4) Dise nar el controlador o ptimo cuadr atico q H (z ). Para procesos estables ver la subsecci on 7.3.1 (en esta subsecci on tambi en se encuentra el procedimiento para dise nar el preltro (s)). Para procesos inestables ver la subsecci on 7.4.1. 5) Dise nar el controlador CMI: q (z ). Para procesos estables ver la subsecci on 7.3.1. Para procesos inestables ver la subsecci on 7.4.1. 6) Dise nar la funci on de peso W (subsecci on 7.3.4, para ambos casos). 7) Dise nar el ltro discreto CM I . Para procesos estables, ver la subsecci on 7.3.2, comprobar que se cumplan los requerimientos de estabilidad robusta y rendimiento robusto (subsecciones 7.3.3 y 7.3.4). Para procesos inestables, ver subseci on 7.4.2, comprobar que se cumplan los requerimientos de estabilidad robusta y rendimiento robusto (subsecci on 7.4.3). 8) Simular el sistema de control robusto. 9) Implementar el hardware del sistema de control.

374 10) Implementar el software de control.

Control Robusto

11) Realizar pruebas de funcionamiento (resultados experimentales).

7.6.

Control Robusto de un Servomotor No Lineal

Siguiendo el procedimiento formulado, esta secci on presenta el dise no de un sistema de control robusto para controlar la posici on de un servomotor D.C., sujeto a cargas no lineales.

7.6.1.

Formulaci on del Problema

El servomotor D.C. con carga no lineal mostrado en la gura 3.9 y descrito en la secci on 3.3, es un proceso de una entrada y una salida. Este servomotor posee un engranaje reductor de velocidad y puede ser controlado por el voltaje de armadura. La carga no lineal es una varilla met alica acoplada perpendicularmente al eje del servomotor (a manera de un brazo rob otico de un grado de libertad). En el extremo libre de dicha varilla se pueden acoplar cargas adicionales. De esta manera la carga no lineal se hace variable. El objetivo de control es dise nar e implementar un sistema de control robusto empleando una ley de control CMI (Control de Modelo Interno), de modo tal que la varilla se posicione en una referencia predeterminada. El sobreimpulso de la respuesta debe ser m nimo no obstante la presencia de la carga no lineal variable y de las no linealidades del proceso como son las fricciones (est atica y de Coulomb) y la saturaci on en el amplicador del servomotor.

7.6.2.

Dise no del Sistema de Control Robusto

Los pasos (2) al (7) del procedimiento de dise no fueron cubiertos en los ejemplos 7.1 al 7.5.

7.6.3.

Simulaci on del Sistema de Control Robusto

La simulaci on realizada en el ejemplo 7.6 consider o una planta p(s) lineal. En la siguiente simulaci on, la planta a considerar es su modelo no lineal, con el a nadido de dos bloques de saturaci on (para evitar saturar el amplicador de potencia) m as una se nal de realimentaci on que es proporcional al torque no lineal producido por la carga no lineal. No se est a considerando el efecto

7.6 Control Robusto de un Servomotor No Lineal

375

de la fricci on de Coulomb, que tambi en es un componente no lineal, debido a que tal efecto ser a compensado mediante software, como veremos m as adelante. El diagrama de simulaci on, programa disrob1.m, se muestra en la gura 7.8, mientras que el resultado de la simulaci on se puede ver en la gura 7.9. Para efectuar la simulaci on con el programa disrob1.m, se debe ejecutar previamente el programa disrob2.m.

+ S1

z2+a1.z+a2 (b1+b2)z2 Controlador q~(z)

(1alfa)z zalfa Filtro

u Saturacin 1

Mux Graph Mux Kn s2+an.s+bn Modelo nominal pn(s) + S2

Referencia

u_disrob Control

Saturacin 2

Kact gan5

n*K R S3 Subsistema elctrico n*E gan2

+ S4

1 1 w Ms+B s Subsistema Integrador mecnico q_disrob MATLAB Function Seno Salida

N gan3

Figura 7.8: Diagrama de bloques para la simulaci on del sistema de control robusto dise nado, considerando el modelo no lineal del proceso.

7.6.4.

Implementaci on del Hardware

El hardware empleado en la implementaci on en tiempo real del sistema de control robusto es similar al empleado para la implementaci on en tiempo real de los sistemas de control adaptivo, predictivo y no lineal. Dicho hardware se describe en detalle en la subsecci on 5.6.8.

376

Control Robusto

1 Posicin en rad

0.5

0 0

8 10 12 Tiempo en segundos

14

16

18

20

0.25 Control en voltios 0.2 0.15 0.1 0.05 0 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20

Figura 7.9: Resultado de la simulaci on del sistema de control robusto empleando el modelo no lineal del proceso.

7.6.5.

Implementaci on del Software

El software de control empleado en la implementaci on en tiempo real del sistema de control robusto posee la misma estructura que el software de control empleado para la implementaci on en tiempo real de los sistemas de control predictivo y no lineal. La estructura de dicho software se describe en detalle en la subsecci on 6.7.7. El diagrama de ujo del software de control se muestra en la gura 6.13. El software usado para la implementaci on del algoritmo de control de posici on emplea el lenguaje C y se ejecuta en una PC Pentium. Los programas necesarios para el control se estructuran en tres archivos: R1LLIB.H, R1LLIB.CPP y ROB.CPP. El archivo ROB.CPP es el que contiene el algoritmo de control. La realizaci on de archivos ejecutables a partir de los programas fuente, se elabora en el ambiente de trabajo del Borland C/C++ mediante la creaci on de un proyecto denominado ROB.PRJ, en donde intervienen los archivos mencionados en el p arrafo anterior. A continuaci on se presenta el listado del programa ROB.CPP. El listado de los programas R1LLIB.H y R1LLIB.CPP fueron presentados en la subsecci on 6.7.7.

7.6 Control Robusto de un Servomotor No Lineal


/* ROB.CPP Programa del sistema de control robusto para proceso con carga maxima y referencia de 45 grados. Ver especificaciones de dise~no en la subseccion resultados experimentales */ #include "r1llib.h" #include <stdio.h> #include <math.h> #include <assert.h> #include <alloc.h> #include <conio.h> const float ESCALA= 2.*M_PI/(512.*19.7); /* Declaracion de las funciones propias del programa */ void Inicializa_Sistema(); void Mide_Variables (float *x1k, float *xn1, float *r, float *vel, float t); float Aplica_Control(float u, float ykp); /* Declaracion de las variables globales */ float a1, a2, b1, b2, alfa, N; float x1, xn1, yant, r, w; //x2; float x1p, xn1p, xn1pp; float T; float t, tsimul; float Fs; int p0, pk; float VcFC, Ofst; float ep, epp, e; float up, upp; /***************** FUNCIONES ************/ float Aplica_Control(float u, float ykp) { float v; if(u<0.) v = -VcFC; else if(u>0.) v = VcFC; if(u+v<-1.4) u= -1.4; else if(u+v>1.4) u= 1.4; EnviarVoltage(u+v+Ofst); return u; } void Inicializa_Sistema() {

377

378

Control Robusto

/* Con Varilla*/ a1=-1.7858; a2= .8264; b1= .1070; b2= .1004; /* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */ VcFC= .15; Ofst= 2.3; Fs= 20.; T= 1./Fs; tsimul= 100.; alfa=0.955; /* Inicializacion de variables */ x1p=0.; xn1p=0.; xn1pp=0.; ep=0.; epp=0.; up=0.; upp=0.; ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs); EnviarVoltage(Ofst); p0 = LeerPosicion(); } void Mide_Variables( float *x1, float *xn1, float *r, float *vel, float t) { /* referencia: r= r(t)*/ *r = M_PI/4; /* Ahora leo la posicion */ pk = LeerPosicion(); *x1 = x1p + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA; p0 = pk; /* Modelo nominal */ *xn1 = - a1*xn1p - a2*xn1pp + b1*up + b2*upp; /* Actualizamos los estados */ x1p=*x1; xn1p=*xn1; xn1pp=xn1p; epp=ep; ep=e; /* error */ e = *r - (*x1-*xn1); w =(e+a1*ep+a2*epp)/(b1+b2); /* velocidad angular */ *vel= (5.*(*x1-x1p)+ *vel)/(1.+5.*T); }

7.6 Control Robusto de un Servomotor No Lineal

379

void main() { int ant = 0, act = 0, k, n; FILE *out; float *x1b, *xn1b; float *ub, *rb, *wb, u, r, w; float vel; float x1p, xn1p; Inicializa_Sistema(); clrscr(); assert(tsimul<120); N= tsimul/T; n= (int)N; t= vel= 0.; assert(NULL!=(ub = (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(x1b = (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(xn1b= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(rb = (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(wb = (float *)calloc(n/5,sizeof(float)))); for(k = 0; k<n;) { act = NivelClock(); if ((ant==0)&&(act==1)) { Mide_Variables(&x1, &xn1, &r, &vel, t); u=alfa*up+(1-alfa)*(w); upp=up; up=u; u= Aplica_Control(u, vel); if(!(k%5)) { x1b[k/5] = x1*180./M_PI; rb[k/5]=r*180./M_PI; wb[k/5] = w*180./M_PI; ub[k/5]=u; } k++; t += T; gotoxy(15,5); printf("****************************************"); gotoxy(18,7); printf("Control robusto del servomotor no lineal"); gotoxy(15,9); printf("****************************************"); gotoxy(21,11);printf("tiempo : t=%+5.3f",t); gotoxy(21,13);printf("referencia : r=%+5.3f",r*180./M_PI); gotoxy(21,15);printf("control : u=%+5.3f",u); gotoxy(21,17);printf("posicion : x1=%+5.3f", x1*180./M_PI); gotoxy(21,19);printf("posic. nominal : xn1=%+5.3f",x1*180./M_PI);

380

Control Robusto

gotoxy(21,19);printf("error de posic.: e=%+5.3f",e*180./M_PI); gotoxy(15,21);printf("****************************************"); if(kbhit()) if(getch()==27) break; } ant=act; } EnviarVoltage(Ofst); out=fopen("rob.out","wt"); for (int i=0; i<n/5; i++) fprintf(out,"%10f %10f %10f %10f %10f\n", i*5*T, rb[i], x1b[i], ub[i], rb[i]-(x1b[i]-xn1b[i])); delete rb, x1b, xn1b, ub; fclose(out); }

7.6.6.

Resultados Experimentales

La inercia de la carga no lineal puede variar desde J = 0.007047 kg-m2 (correspondiente a la varilla sin carga adicional), hasta un valor m aximo de 2.98J (correspondiente a la varilla con una carga esf erica de magnitud Mo = 0.045 kg). Para mayores detalles acerca de la carga no lineal variable, ver la subsecci on 6.7.8. El sistema de control robusto debe ser capaz de estabilizar la posici on de la carga no lineal para variaciones de su inercia comprendidas entre J y 2.98J . La gura 7.10 muestra el resultado experimental del control de axima. posici on robusto para una referencia de 45o en presencia de carga m Podemos observar que la respuesta del sistema muestra sobreimpulso nulo, un tiempo estabilizaci on menor que 4 s y error en estado estable nulo.

7.7.

Problemas Resueltos

En la secci on problemas resueltos de los cap tulos 4 al 8, la soluci on a los problemas se encuentra, seg un el caso, en uno o m as archivos con extensi on m escritos en c odigo MATLAB. Problema 7.1 El problema 3.2 presenta las ecuaciones que gobiernan la din amica longitudinal de un avi on comercial volando a velocidad de crucero (altura y velocidad constantes). El control del a ngulo de inclinaci on del avi on (ver

7.7 Problemas Resueltos


50 (grados) 40 30 20 10 0 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50

381

Seal de control (voltios)

Posicin

0.2 0.15 0.1 0.05 0 0

10

15

20 25 30 Tiempo en segundos

35

40

45

50

Figura 7.10: Resultado experimental del sistema de control de posici on robusto del servomotor D.C. sujeto a una carga no lineal m axima.

gura 3.14) es un problema longitudinal a resolver. El objetivo de control es entonces dise nar un autopiloto que manipulando el a ngulo e del deector de elevaci on, controle el a ngulo de inclinaci on del avi on. Se pide dise nar un sistema de control robusto con modelo interno que genere una fuerza de control tal que la salida del proceso (el a ngulo de inclinaci on ) presente un sobreimpulso menor al 10 % y un tiempo de estabilizaci on menor que 4 s, con un error en estado estable nulo. Tomar 0.2 rad como entrada de referencia. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1. La selecci on del tiempo de muestreo es a conveniencia del dise no. Asumir: m ( ) | m (ei )| y a ( ) | a (ei )|. Soluci on: Los rangos de variaci on de los par ametros se muestran en el programa p4rob1.m, al igual que el procedimiento en detalle para dise nar el controlador robusto cuando la entrada v es un escal on. La gura 7.12 (archivo p4rob1s.m) es el diagrama de bloques empleado en la simulaci on del sistema dise nado y requiere que previamente se ejecute el programa p4rob1.m. Los resultados de la simulaci on se muestran en la gura 7.13 (obtenida con el archivo p4rob1r.m). El sistema dise nado cumple los requerimientos de estabilidad y rendimiento robustos, tal como se aprecia en la gura 7.11.
% p4rob1.m SOLUCION AL PROBLEMA 7.1

382

Control Robusto

% % % %

% %

% % %

% % % % % % % % % % % % % % %

clear all FT (FUNCION DE TRANSFERENCIA) DEL PROCESO: theta/deltae=(1.151s+0.1774)/(s^2+0.739s^2+0.921s) -->dato theta/deltae=(a*s+b)/(s^3+c*s^2+d*s): ESTRUCTURA DE LA FT SE DESEA ROBUSTEZ EN TODOS LOS PARAMETROS: an=1; bn=0.1; cn=0.7; dn=0.9; % PARA EL PROCESO NOMINAL numn=[0 0 an bn]; denn=[1 cn dn 0]; pn=(an*s+bn)/(s^3+cn*s^2+dn*s) ap=1.2; bp=0.2; cp=0.8; dp=0.95; % PARA EL PROCESO nump = [0 0 ap bp]; denp=[1 cp dp 0]; p= (ap*s+bp)/(s^3+cp*s^2+dp*s) MODELO NOMINAL DISCRETO pnz(z) T = 0.3; [numd,dend] = c2dm(numn,denn,T,zoh); numd(z)/dend(z) = pnz(z) = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3) a1=dend(2); a2=dend(3); a3=dend(4); b1=numd(2); b2=numd(3); b3=numd(4); PROCESO DISCRETO [numdp,dendp] = c2dm(nump,denp,T,zoh); numdp(z)/dendp(z) = pz(z) = (bp1*z^2+bp2*z+bp3)/... (z^3+ap1*z^2+ap2*z+ap3) ap1=dendp(2); ap2=dendp(3); ap3=dendp(4); bp1=numdp(2); bp2=numdp(3); bp3=numdp(4); DETERMINACION DE pnz(z)=pA(z)*pM(z): roots(numd): 0.9704 y -0.9416 COMO pnz NO POSEE CEROS FUERA DEL CU, Y COMO z^N*pnz DEBE SER SEMIPROPIO, N=1; LUEGO pA=z^(-1) Y pM=pnz/pA=z*(b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3)

CALCULO DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON: vA=1; vM=z/(z-1) CALCULO DE qtilde_H=z(pM*vM)^(-1){z^(-1)pA^(-1)vM}*: z(pM*vM)^(-1)=(z-1)pM^(-1) {z^(-1)pA^(-1)vM}*={z/(z-1)}*={1+1/(z-1)}*=1/(z-1) qtilde_H=pM^(-1)=(z^3+a1*z^2+a2*z+a3)/(b1*z^3+b2*z^2+b3*z) CALCULO DE qtilde_: (b1*z^2+b2*z+b3)=(z-0.9704)(z+0.9416); DEBEMOS CANCELAR z=-0.9416 Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.9416, rho=1; LUEGO qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1) k1=-0.9416; % CALCULO DE qtilde=qtilde_H*qtilde_*B(z) PARA m=1: % B(z)=1; qtilde=qtilde_H*qtilde_= % (z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^3+b2*z^2+b3*z)*z*(1-k1))

7.7 Problemas Resueltos

383

% CALCULO DEL FILTRO PARA m=1: f(z)=(1-alfa)*z/(z-alfa); % FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) % CONDICIONES: w^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0 % CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0.33; % CUMPLE CONDICIONES DE ESTABILIDAD Y RENDIMIENTO % ROBUSTOS PERO REQUIERE DE UNA ENTRADA U MUY GRANDE; POR ELLO % PARA EL DISE~NO FINAL EL PARAMETRO SE FIJA EN: alfa=0.5 for w = 0:pi/T % pi/T = s=i*w; z=exp(s); pnz = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3); pz = (bp1*z^2+bp2*z+bp3)/(z^3+ap1*z^2+ap2*z+ap3); laz = pz - pnz; lmz = laz/pnz; qtilde=(z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^2+b2*z+b3)*z*(1-k1)); mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz))); f = (1-alfa)*z/(z-alfa); magf_dB(w+1) = 20*log10(abs(f)); % PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T % pi/T = s=i*w; z=exp(s); pn=(an*s+bn)/(s^3+cn*s^2+dn*s); p= (ap*s+bp)/(s^3+cp*s^2+dp*s); la = p - pn; lm = la/pn; qtilde=(z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^2+b2*z+b3)*z*(1-k1)); f = (1-alfa)*z/(z-alfa); q = qtilde*f; G = 0.1; W = G/abs(1-pn*qtilde); % PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)); end % GRAFICOS ejew = linspace(0,pi/T,pi/T); subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--) ylabel(Magnitudes en dB) title( (a)) xlabel(Frecuencia angular (rad/s))

384
grid subplot(122) semilogx(ejew,M_dB(1:pi/T)) ylabel(Magnitud de M en dB) title( (b)) xlabel(Frecuencia angular grid print -f -deps p4rob1f print -s -deps p4rob1s
(a) 40 5

Control Robusto

(rad/s))

(b)

30

20

Magnitud de M en dB
1 2

Magnitudes en dB

10

10

15

10 0 10

10 Frecuencia angular

10 (rad/s)

20 0 10

10 Frecuencia angular

10 (rad/s)

Figura 7.11: Condici on de estabilidad robusta (gr aco de la izquierda) y rendimiento robusto (gr aco de la derecha) para el problema 7.1. Problema 7.2 El proceso reductor de humedad descrito en el problema 3.7 se muestra en la gura 3.24(a). El objetivo de control es reducir la humedad h del material a granel de la tolva. La banda transportadora, que se desplaza a una velocidad v = 1 m/s constante, introduce el material a un horno de secado. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la se nal de voltaje vr . El horno puede modelarse como un proceso de primer orden. La gura 3.24(b) muestra la F.T del proceso.

7.7 Problemas Resueltos

385

+ S1 Referencia

(1alfa)z zalfa Filtro 2+(a3a2*k1)za3*k1 z4+(a1k1)z 3+(a2a1*k1)z . 4 (1k1)*b1z +(1k1)*b2z3+(1k1)*b3z2 Controlador q~ u_p4rob1 Control u

ap.s+bp s3+cp.s2+dp.s Proceso p(s) an.s+bn s3+cn.s 2+dn.s Modelo nominal pn(s) y_p4rob1 Salida y

Mux Graph Mux

+ S2

Figura 7.12: Diagrama de bloques para simular el sistema de control robusto con modelo interno (problema 7.1).

0.25 Inclinacin (rad) 0.2 0.15 0.1 0.05 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

1.5 Deflector (rad) 1 0.5 0 0.5 0

4 5 6 Tiempo en segundos

10

Figura 7.13: Angulo de inclinaci on (salida controlada) y a ngulo del deector de elevaci on (se nal de control) para el problema 7.1.

386

Control Robusto

Dise nar un sistema de control robusto con modelo interno para controlar la humedad del material en la banda transportadora. El u nico par ametro incierto a considerar es el tiempo muerto v/d. Asuma como valor nominal Tn = 9 s y como tiempo muerto del proceso Tp = 11 s. Las especicaciones de dise no son: tiempo de estabilizaci on menor que 40 s, error en estado estacionario nulo y porcentaje de sobreimpulso menor al 5 %. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1. La selecci on del tiempo de muestreo es a conveniencia del dise no. Asumir: m ( ) | m (ei )| y a ( ) | a ( )|. Soluci on: El programa p10rob1.m detalla el procedimiento para dise nar el controlador robusto cuando la entrada v es un escal on. La gura 7.15 (archivo p10rob1s.m) es el diagrama de bloques empleado en la simulaci on del sistema dise nado y requiere previamente que se ejecute el programa p10rob1.m. El resultado de la simulaci on se muestra en la gura 7.16 (obtenida con el archivo p10rob1r.m). El sistema dise nado cumple los requerimientos de estabilidad y rendimiento robustos, tal como se aprecia en la gura 7.16.
% p10rob1.m SOLUCION AL PROBLEMA 7.2 clear all % FT (FUNCION DE TRANSFERENCIA) DEL PROCESO % vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FT K=10; a=1.5; b=0.5; % DESEAMOS ROBUSTEZ EN EL TIEMPO MUERTO CON RANGO: Tn=9; Tp=11; % (n: NOMINAL, p: PROCESO) numn=[0 0 K]; denn=[1 a b]; % pn=K*exp(-Tn*s)/(s^2+a*s+b) nump=[0 0 K]; denp=[1 a b]; % p=K*exp(-Tp*s)/(s^2+a*s+b) % MODELO NOMINAL DISCRETO pnz(z) T = 0.5; % z = exp(T*s) => exp(Tn*s)=z^(Tn/T)=z^18 [numd,dend] = c2dm(numn,denn,T,zoh); % numd(z)/dend(z)=(b1*z+b2)/(z^2+a1*z+a2) a1=dend(2); a2=dend(3); b1=numd(2); b2=numd(3); % numD(z)/denD(z)=pnz(z)=z^(-Tn/T)*numd(z)/dend(z) % pnz(z) = z^(-Tn/T)*(b1*z+b2)/(z^2+a1*z+a2) % = (b1*z+b2)/(z^20+a1*z^19+a2*z^18) % PROCESO DISCRETO pz(z) % T = 0.5; z = exp(T*s) => exp(Tp*s)=z^(Tp/T)=z^22 [numdp,dendp] = c2dm(nump,denp,T,zoh); % numdp(z)/dendp(z)=(bp1*z+bp2)/(z^2+ap1*z+ap2) ap1=dendp(2); ap2=dendp(3);

7.7 Problemas Resueltos


bp1=numdp(2); bp2=numdp(3); % numDp(z)/denDp(z)=pz(z)=z^(-Tp/T)*numdp(z)/dendp(z) % pz(z) = z^(-Tp/T)*(bp1*z+bp2)/(z^2+ap1*z+ap2) % = (bp1*z+bp2)/(z^24+a1*z^23+a2*z^22) % % % % % % % % % % % % % % % % % % % %

387

DETERMINACION DE pnz(z)=pA(z)*pM(z): roots(numD): -0.1353 COMO pnz NO POSEE CEROS FUERA DEL CIRCULO UNITARIO (CU) Y COMO z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=19; LUEGO pA=z^(-N) Y pM=pnz/pA=z^19*(b1*z+b2)/(z^20+a1*z^19+a2*z^18) DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON: SE SABE POR EJERCICIOS ANTERIORES QUE vA=1; vM=z/(z-1) CALCULO DE qtilde_H=(pM(z))^(-1): SEGUN TABLA, qtilde_H=(z^20+a1*z^19+a2*z^18)/(b1*z^20+b2*z^19) CALCULO DE qtilde_: (b1*z^4+b2*z^3)=z^3*(b1*z+b2) => CANCELAR z=-b2/b1=-0.1353 Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.1353, rho=1, Y qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1) k1=-0.1353; CALCULO DE qtilde=qtilde_H*qtilde_*B(z) (PARA m=1): PARA QUE EL SISTEMA SEA DEL TIPO m=1, B(z)=1, ENTONCES: qtilde=qtilde_H*qtilde_= (z^20+a1*z^19+a2*z^18)*(z-k1)/(z*(b1*z^20+b2*z^19)*(1-k1)) CALCULO DEL FILTRO CON m=1: f(z)=(1-alfa)*z/(z-alfa); CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) CONDICIONES: W^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0

% CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0.95; for w = 0:pi/T % pi/T = s=i*w; z=exp(s); pn=K*exp(-Tn*s)/(s^2+a*s^2+b*s); p= K*exp(-Tp*s)/(s^2+a*s^2+b*s); pnz = (b1*z+b2)/(z^(Tn/T)*(z^2+a1*z+a2)); pz = (bp1*z+bp2)/(z^(Tp/T)*(z^2+ap1*z+ap2)); laz = pz - pnz; lmz = laz/pnz; qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/... (z*(b1*z^20+b2*z^19)*(1-k1)); mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz))); f = (1-alfa)*z/(z-alfa); magf_dB(w+1) = 20*log10(abs(f));

388

Control Robusto

% PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w; z=exp(s); pn=K*exp(-Tn*s)/(s^2+a*s^2+b*s); p= K*exp(-Tp*s)/(s^2+a*s^2+b*s); la = p - pn; lm = la/pn; qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/... (z*(b1*z^20+b2*z^19)*(1-k1)); f = (1-alfa)*z/(z-alfa); q = qtilde*f; G = 0.9; W = G/abs(1-pn*qtilde); % PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)); end % GRAFICOS ejew = linspace(0,pi/T,pi/T); subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--); grid ylabel(Magnitudes en dB) title( (a)) xlabel(Frecuencia angular (rad/s)) subplot(122) semilogx(ejew,M_dB(1:pi/T)); grid ylabel(Magnitud de M en dB) title( (b)) xlabel(Frecuencia angular (rad/s)) print -f -deps p10rob1f print -s -deps p10rob1s

Problema 7.3 La gura 3.20 muestra un monorriel de dos carros descrito en el problema 3.5. El problema a resolver es el control de velocidad del carro de m aquinas mediante un sistema de control robusto empleando modelo interno. Para garantizar a los pasajeros un viaje confortable, los cambios de velocidad deben realizarse con un tiempo de estabilizaci on menor que 6 segundos y con m nimo sobreimpulso. El error en estado estable debe ser nulo. Tener

7.7 Problemas Resueltos

389

(a) 15 10 0 5 0 5 10 15 20 25 10 30 35 0 10 Frecuencia angular (rad/s) 12 0 10 Magnitud de M en dB Magnitudes en dB 2 2

(b)

10

10 Frecuencia angular (rad/s)

Figura 7.14: Condici on de estabilidad robusta (gr aco de la izquierda) y rendimiento robusto (gr aco de la derecha) para el problema 7.2.

+ S1 Referencia z20 +a1.z 19 +a2.z 18. b1.z 20 +b2.z19 Controlador q~H

(1alfa)z zalfa Filtro

K s2+as+b Proceso p(s) K s2+as+b Tp

Mux Graph Mux y_p10rob Salida y + S2

zk1 (1k1)z Controllador q~_

Modelo nominal pn(s) Tn u_p10rob Control u

Figura 7.15: Diagrama de bloques para simular el sistema de control robusto con modelo interno (problema 7.2.)

390

Control Robusto

1 Humedad

0.5

0 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

0.06 Flujo calorfico 0.04 0.02 0 0.02 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

Figura 7.16: Flujo calor co (se nal de control) y humedad sensada (salida controlada) para el problema 7.2. en cuenta que debido al peso de los pasajeros, podemos considerar un rango de variaci on en la masa de los carros de pasajeros. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1. La selecci on del tiempo de muestreo es a conveniencia del dise no. i Asumir: m ( ) | m (e )| y a ( ) | a ( )|. Soluci on: El programa p7rob1.m muestra el rango de variaci on de tales masas y detalla el procedimiento para dise nar el controlador robusto cuando la entrada v es un escal on. La gura 7.18 (archivo p7rob1s.m) es el diagrama de bloques empleado en la simulaci on del sistema dise nado y requiere previamente que se ejecute el programa p7rob1.m. El resultado de la simulaci on se muestra en la gura 7.19 (obtenida con el archivo p7rob1r.m). El sistema dise nado cumple los requerimientos de estabilidad y rendimiento robustos, tal como se puede apreciar en la gura 7.17.
% p7rob1.m SOLUCION AL PROBLEMA 7.3 clear all % ROBUSTEZ EN LOS PESOS M2 Y M3 DADO QUE VARIAN CON EL PESO % PROCESO: M2=3200; M3=3200 (CARROS CON PASAJEROS); M1=1300; M2=3200; M3=3200; K12=100000; K23=100000;

7.7 Problemas Resueltos


B12=500; B23=500; B1=5000; B2=10000; B3=10000; A=[0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0 0 0 0 1 0 0 K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2 0 0 0 0 0 1 0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3]; B=[0 1 0 0 0 0]; alfa = 1; % CONSTANTE TACOMETRICA C=[0 alfa 0 0 0 0]; D=[0]; [nump,denp]=ss2tf(A,B,C,D); bp1=nump(2); bp2=nump(3); bp3=nump(4); bp4=nump(5); bp5=nump(6); bp6=nump(7); ap1=denp(2); ap2=denp(3); ap3=denp(4); ap4=denp(5); ap5=denp(6); ap6=denp(7); p=(bp1*s^5+bp2*s^4+bp3*s^3+bp4*s^2+bp5*s+bp6)/... (s^6+ap1*s^5+ap2*s^4+ap3*s^3+ap4*s^2+ap5*s+ap6); PROCESO DISCRETO T = 0.2; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(A,B,C,D,T,zoh); [numz,denz]=ss2tf(G,H,C,D); az1 = denz(2); az2 = denz(3); az3 = denz(4); az4 = denz(5); az5 = denz(6); az6 = denz(7); bz1 = numz(2); bz2 = numz(3); bz3 = numz(4); bz4 = numz(5); bz5 = numz(6); bz6 = numz(7); numz/denz=pz=(bz1*z^5+bz2*z^4+bz3*z^3+bz4*z^2*bz5*z+bz6)/... (z^6+az1*z^5+az2*z^4+az3*z^3+az4*z^2+az5*z+az6); MODELO NOMINAL DEL PROCESO: M2=2600; M3=2600; M1=1300; M2=2600; M3=2600; K12=100000; K23=100000; B12=500; B23=500; B1=5000; B2=10000; B3=10000; A=[0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0 0 0 0 1 0 0 K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2 0 0 0 0 0 1 0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3]; B=[0 1 0 0 0 0]; alfa = 1; % CONSTANTE TACOMETRICA C=[0 alfa 0 0 0 0]; D=[0]; [numn,denn]=ss2tf(A,B,C,D); bn1=numn(2); bn2=numn(3); bn3=numn(4); bn4=numn(5); bn5=numn(6); bn6=numn(7); an1=denn(2); an2=denn(3); an3=denn(4); an4=denn(5); an5=denn(6); an6=denn(7); pn=(bn1*s^5+bn2*s^4+bn3*s^3+bn4*s^2+bn5*s+bn6)/...

391

% % %

% % %

392

Control Robusto

% (s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6); % MODELO NOMINAL DISCRETO T = 0.2; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(A,B,C,D,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3 = den(4); a4 = den(5); a5 = den(6); a6 = den(7); b1 = num(2); b2 = num(3); b3 = num(4); b4 = num(5); b5 = num(6); b6 = num(7); % num/den=pnz=(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/... % (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6); % DETERMINAION DE bp(z) % roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL % CU (CIRCULO UNITARIO) => bp(z)=1 % CALCULO DE pnz(z)=pA(z)*pM(z): % z^N*pnz DEBE SE SEMIPROPIO, ENTONCES N=1 Y pA=z^(-1); LUEGO: % pM=pnz/pA=z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/... % (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6); % DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON: % SE SABE POR EJEMPLOS ANTERIORES QUE: vA=1; vM=z/(z-1) % DETERMINACION DE bv(z) % COMO v(z) NO POSEE POLOS FUERA DEL CU, ENTONCES bv(z)=1 % CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}*: % NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. COMO bp=bv=1, % qtilde_H=pM^(-1)=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)/... % (z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)); % % % % % CALCULO DE qtilde_= z^(-r)*((z-k1)/(1-k1)* ... *(z-kr)/(1-kr)): roots([b1 b2 b3 b4 b5 b6]): -0.2943 + 0.5702i, -0.2943 - 0.5702i; 0.4916 + 0.4604i, 0.4916 - 0.4604i, 1.0000 r=2 POLOS DE qtilde_H CON PARTE REAL NEGATIVA; k1=-0.2943; k2=k1 => qtilde_=z^(-2)*(z-k1)^2/(1-k1)^2 k1=-0.2943; CALCULO DE qtilde=qtilde_H*qtilde_*B(z): EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES ES: (z-piz)=(z-1) => z=piz=1, m1=1 (MULTIPLICIDAD) y B(z)=b0=1; qtilde=qtilde_H*qtilde_=

% % % %

7.7 Problemas Resueltos


% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/... % (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2); % DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa);

393

% CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) % CONDICIONES: w^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0 % CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0.8; for w = 0:pi/T % pi/T = s=i*w; z=exp(s); pnz=(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/... (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6); pz=(bz1*z^5+bz2*z^4+bz3*z^3+bz4*z^2*bz5*z+bz6)/... (z^6+az1*z^5+az2*z^4+az3*z^3+az4*z^2+az5*z+az6); laz = pz - pnz; lmz = laz/pnz; qtilde=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/... (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2); mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz))); f = (1-alfa)*z/(z-alfa); magf_dB(w+1) = 20*log10(abs(f)); % PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w; z=exp(s); pn=(bn1*s^5+bn2*s^4+bn3*s^3+bn4*s^2+bn5*s+bn6)/... (s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6); p=(bp1*s^5+bp2*s^4+bp3*s^3+bp4*s^2+bp5*s+bp6)/... (s^6+ap1*s^5+ap2*s^4+ap3*s^3+ap4*s^2+ap5*s+ap6); la = p - pn; lm = la/pn; qtilde=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/... (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2); f = (1-alfa)*z/(z-alfa); q = qtilde*f; G = 0.72; W = G/abs(1-pn*qtilde); % PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)); end % CALCULO DEL CONTROLADOR c=q/(1-pnz*q)

394

Control Robusto

% NOTAR QUE q*pnz=(z-k1)^2*(1-alfa)/(z^2*(1-k1)^2*(z-alfa)) num1=(1-alfa)*[1 -2*k1 k1^2]; den1= ... [(1-k1)^2 -((1-k1)^2*alfa+(1-alfa)) (1-alfa)*2*k1 -(1-alfa)*k1^2]; % numc=conv(den,num1); denc=conv(num,den1); [numc,denc]=series(den,num,num1,den1); % GRAFICOS ejew = linspace(0,pi/T,pi/T); subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--); grid ylabel(Magnitudes en dB); title( (a)) xlabel(Frecuencia angular (rad/s)) subplot(122) semilogx(ejew,M_dB(1:pi/T)); grid ylabel(Magnitud de M en dB); title( (b)) xlabel(Frecuencia angular (rad/s)) print -f -deps p7rob1f print -s -deps p7rob1s
(a) 40 0 1 30 2 3 Magnitud de M en dB 20 Magnitudes en dB 4 5 6 7 8 10 9 20 0 10 10 0 10 (b)

10

10 Frecuencia angular

10 (rad/s)

10 Frecuencia angular

10 (rad/s)

Figura 7.17: Condici on de estabilidad robusta (gr aco de la izquierda) y rendimiento robusto (gr aco de la derecha) para el problema 7.3.

7.7 Problemas Resueltos

395

+ r S1

numc(z) denc(z) Controlador c(z) u_p7rob1 . Control u

nump(s) denp(s) Proceso p(s)

y Mux Graph Mux y_p7rob1 Salida y

Figura 7.18: Diagrama de bloques para simular el sistema de control robusto con modelo interno del problema 7.3.

15 Velocidad (m/s)

10

0 0

4 5 6 Tiempo en segundos

10

300 250 Fuerza (N) 200 150 100 50 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Figura 7.19: Velocidad del carro de m aquinas y fuerza de control para el problema 7.3.

396 Problema 7.4

Control Robusto

La gura 3.22 muestra el proceso ascensor tratado en el problema 3.6. Sin embargo, para este problema considere que el actuador posee la siguiente funci on de transferencia: Ka x1 (s) = ; v (s) s + 0,2 0,008 Ka 0,012

El problema a resolver es posicionar suavemente el ascensor en un piso determinado, lo que signica sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizaci on menor que 8 s. Para no saturar al actuador (un amplicador de potencia), la se nal de control debe estar dentro del rango de 200 volt. Dise nar un sistema de control robusto que cumpla las especicaciones pedidas. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1. La selecci on del tiempo de muestreo es a conveniencia del dise no. Asumir: m ( ) | m (ei )| y a ( ) | a ( )|. Soluci on: El programa p8rob1.m detalla el procedimiento para dise nar el controlador robusto cuando la entrada v es un escal on. La gura 7.21 (archivo p8rob1s.m) es el diagrama de bloques empleado en la simulaci on del sistema dise nado y requiere pque reviamente se ejecute el programa de p8rob1.m. El resultado de la simulaci on se muestra en la gura 7.22 (obtenida con el archivo p8rob1r.m). El sistema dise nado cumple los requerimientos de estabilidad y rendimiento robustos, tal como se aprecia en la gura 7.20.
% p8rob1.m SOLUCION AL PROBLEMA 7.4 clear all % PROCESO Ac = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5]; Bc = [0.012;0;0;0]; Cc = [0 1 0 0]; Dc = [0]; [nump,denp]=ss2tf(Ac,Bc,Cc,Dc); bp2=nump(3); bp3=nump(4); bp4=nump(5); ap1=denp(2); ap2=denp(3); ap3=denp(4); ap4=denp(5); % p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s); % PROCESO DISCRETO T = 0.8; % TIEMPO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [numz,denz]=ss2tf(G,H,C,D); az1 = denz(2); az2 = denz(3); az3=denz(4); az4=denz(5); bz1 = numz(2); bz2 = numz(3); bz3=numz(4); bz4=numz(5);

7.7 Problemas Resueltos

397

% numz/denz=pz=(bz1*z^3+bz2*z^2+bz3*z+bz4*z)/... % (z^4+az1*z^3+az2*z^2+az3*z+az4); % PROCESO NOMINAL Ac = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5]; Bc = [0.008;0;0;0]; Cc = [0 1 0 0]; Dc = [0]; [numn,denn]=ss2tf(Ac,Bc,Cc,Dc); bn2=numn(3); bn3=numn(4); bn4=numn(5); an1=denn(2); an2=denn(3); an3=denn(4); % pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s); % MODELO NOMINAL DISCRETO T = 0.8; % TIEMPO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); a4=den(5); b1 = num(2); b2 = num(3); b3=num(4); b4=num(5); % num/den=pnz=(b1*z^3+b2*z^2+b3*z+b4*z)/... % (z^4+a1*z^3+a2*z^2+a3*z+a4); % DETERMINAION DE bp(z) % roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL % CIRCULO UNITARIO => bp(z)=1 % CALCULO DE pnz(z)=pA(z)*pM(z): % z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=1 Y pA=z^(-1); LUEGO: % pM=pnz/pA=z*(b1*z^3+b2*z^2+b3*z+b4*z)/... % (z^4+a1*z^3+a2*z^2+a3*z+a4); % DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON: % SE SABE POR EJEMPLOS ANTERIORES QUE vA=1 Y vM=z/(z-1) % % % % % % % % % % % % % % DETERMINACION DE bV(z): COMO v(z) NO POSEE POLOS FUERA DEL CU, bv(z)=1 CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}* NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. COMO bp=bv=1: qtilde_H=pM^(-1)=(z^4+a1*z^3+a2*z^2+a3*z+a4)/... z*(b1*z^3+b2*z^2+b3*z+b4); CALCULO DE qtilde_= z^(-r)*((z-k1)/(1-k1)* ... *(z-kr)/(1-kr)) rr=roots([b1 b2 b3 b4]); k1=rr(1); r=1 POLOS DE qtilde_H CON PARTE REAL NEGATIVA; => qtilde_=z^(-1)*(z-k1)/(1-k1)=(z-k1)/(z*(1-k1)) CALCULO DE qtilde=qtilde_H*qtilde_*B(z) EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES ES: (z-piz)=(z-1) => z=piz=1, MULTIPLICIDAD m1=1 Y B(z)=b0=1; qtilde=qtilde_H*qtilde_= (z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/...

398
% % % % % %

Control Robusto

(z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4*z)); DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa); CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) CONDICIONES: w^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0 CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0.7; for w = 0:pi/T s=i*w; z=exp(s); pnz=(b1*z^3+b2*z^2+b3*z+b4)/(z^4+a1*z^3+a2*z^2+a3*z+a4); pz=(bz1*z^3+bz2*z^2+bz3*z+bz4)/(z^4+az1*z^3+az2*z^2+az3*z+az4); laz = pz - pnz; lmz = laz/pnz; qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/... (z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4)); mag_dB(w+1) = -20*log10(abs(pnz*qtilde*lmz)); f = (1-alfa)*z/(z-alfa); magf_dB(w+1) = 20*log10(abs(f)); para estabilidad robusta: magf_dB(w+1) < mag_dB(w+1) end CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w; z=exp(s); pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s); p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s); la = p - pn; lm = la/pn; qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/... (z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4)); f = (1-alfa)*z/(z-alfa); q = qtilde*f; G = 0.75; W = G/abs(1-pn*qtilde); PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)); end CALCULO DEL CONTROLADOR c=q/(1-pnz*q) NOTAR QUE q*pnz=(z-k1)*(1-alfa)/(z*(1-k1)*(z-alfa)) num1=(1-alfa)*[1 -k1]; den1=[(1-k1) -((1-k1)*alfa+(1-alfa)) (1-alfa)*k1]; numc=conv(den,num1); denc=conv(num,den1); [numc,denc]=series(den,num,num1,den1); GRAFICOS ejew = linspace(0,pi/T,pi/T);

% %

% %

% %

7.8 Problemas Propuestos


subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--); grid ylabel(Magnitudes en dB); title( (a)) xlabel(Frecuencia angular (rad/s)) subplot(122) semilogx(ejew,M_dB(1:pi/T)); grid ylabel(Magnitud de M en dB); title( (b)) xlabel(Frecuencia angular (rad/s)) print -f -deps p8rob1f print -s -deps p8rob1s
(a) 15 0.5 0 10 0.5 1 Magnitud de M en dB 5 Magnitudes en dB 1.5 2 2.5 3 3.5 10 4 15 0 10 Frecuencia angular (rad/s) 4.5 0 10 Frecuencia angular (rad/s) (b)

399

10

10

Figura 7.20: Condici on de estabilidad robusta (gr aco de la izquierda) y rendimiento robusto (gr aco de la derecha) para el problema 7.4.

7.8.

Problemas Propuestos

Problema 7.5 El problema 3.1 describe en detalle las ecuaciones que gobiernan la din amica del sistema de suspensi on de un bus (ver gura 3.12). Dise nar un sistema de control robusto con modelo interno para lograr el objetivo de control que se formula a continuaci on. La salida del proceso y = x2 x1 (referencia nula) no

400

Control Robusto

+ r S1

numc(z) denc(z) Controlador c(z) u_p8rob1

nump(s) denp(s) Proceso p(s)

y Mux Graph Mux y_p8rob1 Salida y

Control u

Figura 7.21: Diagrama de bloques para simular el sistema de control robusto con modelo interno del problema 7.4.
3 2.5 Posicin (m) 2 1.5 1 0.5 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

200 Voltaje de control 150 100 50 0 50 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Figura 7.22: Posici on del ascensor y fuerza de control (problema 7.4). debe presentar sobreimpulsos mayores que 5 %. Luego de aproximadamente 20 segundos, las oscilaciones originadas por un disturbio escal on de 10 cm provocada por imperfecciones en la pista, pr acticamente deben desaparecer. El par ametro incierto del proceso es la masa del bus, la que sin pasajeros es de m1 = 2500 kg y lleno de pasajeros cambia a 3500 kg. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m=1. Seleccionar un tiempo de muestreo conveniente.

7.8 Problemas Propuestos Problema 7.6

401

La gura 2.2 muestra dos tanques id enticos colocados en cascada. La secci on 2 horizontal A=9 m de cada tanque es constante. El objetivo de control es controlar la altura H2 empleando el ujo Qo . La deducci on del modelo linealizado del proceso se describe en el ejemplo 2.1. Las especicaciones de dise no son: tiempo de estabilizaci on menor que 15 s, sobreimpulso menor al 5 % y error nulo en estado estable. El ujo de entrada (la se nal de control) 3 no debe sobrepasar los 3 m /s. Dise nar un controlador robusto con modelo interno que logre cumplir los requerimientos anteriores. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1. La selecci on del tiempo de muestreo es a conveniencia del dise no. Problema 7.7 El proceso electromec anico mostrado en la gura 3.26 se describe en el problema 3.8. Dise nar un sistema de control robusto con modelo interno para controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre 100 volt. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m=1 y la selecci on del tiempo de muestreo es a conveniencia del dise no. La salida controlada no debe presentar sobreimpulso ni error estacionario. El par ametro incierto es la inercia J de la carga que puede variar en 12 %. Problema 7.8 El problema 3.3 describe el proceso de la bola rodando a lo largo de una barra con un grado de libertad, tal como se muestra en la gura 3.16. Una leva conecta la barra con un engranaje que est a accionado por un servomotor. Dise nar un sistema de control robusto que pueda posicionar la bola a 0.5 m de un extremo de la barra de 1 m de longitud. Evidentemente, la oscilaci on de la bola debe estar restringida sobre la barra. El voltaje de control no debe sobrepasar los 40 voltios y la masa de la bola puede variar en 15 %. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1 y la selecci on del tiempo de muestreo es a conveniencia del dise no.

402 Problema 7.9

Control Robusto

Las ecuaciones del modelo linealizado para controlar la posici on del ca no n montado en la torreta de un tanque (ver gura 3.28) empleando un actuador hidr aulico se detallan en el problema 3.9. (a) Dise nar un sistema de control robusto con modelo interno para controlar el a ngulo de elevaci on con las especicaciones siguientes: tiempo de estabilizaci on menor que 8 s, m nimo sobreimpulso y error en estado estacionario nulo. Los disturbios tipo escal on pueden actuar simult aneamente o no y pueden ser positivos o negativos. Para cada caso, el sistema de control dise nado debe ser capaz de minimizar sus efectos. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1 y la selecci on del tiempo de muestreo es a conveniencia del dise no. Considerar que todos los par ametros poseen incertidumbre de 5 %. (b) Lo mismo que (a), pero en este caso para controlar el angulo azimutal. Problema 7.10 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la secci on 3.3, en donde la carga no lineal posee ahora dos grados de libertad con Lo = 2L1 /3. La uni on de la carga con el eje del servomotor no es exible. Las ecuaciones que describen la din amica del sistema fueron requeridas en el problema 3.12. Dise nar un sistema de control robusto con modelo interno para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso. Considerar (a su criterio) variaciones en la carga adicional Mo . Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1 y la selecci on del tiempo de muestreo es a conveniencia del dise no. Considerar dos casos: (a) cuando la inductancia de armadura es despreciable, y (b) cuando no lo es. Problema 7.11 La gura 3.32 muestra el proceso p endulo doble no lineal que es una extensi on del p endulo simple descrito en la secci on 3.1. El acoplamiento entre los dos p endulos de igual longitud no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema propuesto 3.13. Dise nar un sistema de control robusto con modelo interno para controlar

7.8 Problemas Propuestos

403

simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso, de modo tal que el p endulo doble permanezca en posici on vertical. Considerar que la carga adicional esf erica de 0.02 kg var a en 6 %. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1 y la selecci on del tiempo de muestreo es a conveniencia del dise no. Problema 7.12 La gura 3.33 muestra el proceso doble gr ua-puente no lineal que es una extensi on del proceso gr ua-puente descrito en la secci on 3.2. El acoplamiento entre los dos p endulos de igual longitud no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema propuesto 3.14. Dise nar un sistema de control robusto con modelo interno para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso, de modo tal que la doble gr ua puente permanezca en posici on vertical cuando el carro realiza un recorrido predeterminado. Considerar que la carga adicional esf erica de 0.02 kg var a en 6 %. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1 y la selecci on del tiempo de muestreo es a conveniencia del dise no. Problema 7.13 La gura 1.1 muestra un carro de masa m = 1000 kg desplaz andose con una velocidad v gracias a la acci on de la fuerza u producida por su motor. Si se desprecia la inercia de las ruedas y se asume que la fuerza de fricci on bv , donde b= 50 N-s/m es el coeciente de fricci on, es lo u nico que se opone al movimiento del carro, entonces la din amica del proceso puede modelarse como (ver ejemplo 1.16): mv (t) + bv (t) = u(t); v = dv dt

Dise nar un sistema de control robusto con modelo interno para controlar la velocidad del m ovil con m nimo tiempo de estabilizaci on y m nimo sobreimpulso. Considerar una incertidumbre de 5 % en todos los par ametros. Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1 y la selecci on del tiempo de muestreo es a conveniencia del dise no.

404 Problema 7.14

Control Robusto

El motor D.C. es un actuador muy popular en los sistemas de control porque su movimiento rotatorio, mediante acoples adecuados a su eje, puede convertirse f acilmente en movimiento de traslaci on. Eso se aprecia en fajas transportadoras o en brazos manipuladores. La gura 4.3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. Las ecuaciones que gobiernan el comportamiento din amico del motor fueron derivadas en el ejemplo 4.1. (a) Dise nar un sistema de control robusto con modelo interno para estabilizar la velocidad angular del eje del motor con las especicaciones siguientes: tiempo de estabilizaci on menor que 4 s, error en estado estable menor al 1 % y sobreimpulso de la salida menor al 5 %. Considere variaciones de 7 % en los par ametros b y J . Realizar el c alculo del controlador para una entrada v escal on. El sistema dise nado debe ser del tipo m = 1 y la selecci on del tiempo de muestreo es a conveniencia del dise no. (b) Dise nar un sistema de control robusto con las especicaciones anteriores, pero en este caso para estabilizar la posici on del eje del motor. Problema 7.15 Repetir los problemas 7.1 al 7.14 cuando la entrada v toma las formas: v (s) = 1 ; s + 1 v (z ) = z/ ; z eT //tau = 100T

donde T es el tiempo de muestreo. Problema 7.16 Repetir los problemas 7.1 al 7.14 cuando la entrada v toma las formas: v (s) = 1 ; s2 v (z ) = Tz (z 1)2

y el tipo del sistema es m=2. Tomar como se nal de referencia una rampa de pendiente unitaria.

Cap tulo 8

Control No Lineal
Luego de formulado el problema de control a resolver, el siguiente paso es encontrar un modelo que sea capaz de capturar la din amica del proceso en el rango de operaci on. En realidad todos los procesos son no lineales y muchas veces resulta m as conveniente trabajar directamente con el modelo no lineal. As podemos dise nar sistemas de control no lineal empleando diversas t ecnicas tales como [13]: el m etodo directo de Liapunov, control deslizante, control adaptivo (cap tulo 5) y linealizaci on de la realimentaci on (materia de este cap tulo). La idea fundamental del control de procesos no lineales empleando la t ecnica de linealizaci on por realimentaci on, es linealizar (hallar un modelo lineal equivalente) el proceso (parcial o totalmente, si fuera posible) mediante un cambio adecuado de coordenadas y una realimentaci on del vector de estado de dicho proceso, de modo tal que el proceso resultante (su forma normal) nos permita aplicar t ecnicas de control lineal (en el caso de linealizaci on completa del proceso), o bien, atacar los problemas de control con un grado de dicultad menor (en el caso de linealizaci on parcial). El procedimiento de dise no sugerido se aplica al control no lineal de posici on de un servomotor D.C., sujeto a la acci on de una carga no lineal y al efecto que producen algunas no linealidades inherentes al proceso, tales como saturaci on del amplicador y fricci on de Coulomb. La pen ultima secci on, problemas resueltos, est a dedicada al dise no de sistemas de control no lineal para diferentes procesos. En la u ltima secci on se proponen proplemas de dise no. Todos los archivos correspondientes a los ejercicios, problemas, dise nos, simulaciones y software desarrollados se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

406

Control No Lineal

8.1.

Herramientas Matem aticas

Las herramientas matem aticas a discutir corresponden a la geometr a diferencial y a la topolog a. S olo se tratan los puntos directamente involucrados con la t ecnica de linealizaci on por realimentaci on. Por esta raz on es que esas matem aticas no se incluyeron como parte del cap tulo 1. La notaci on: f : Rn Rn (8.1) indica que a cada funci on vectorial f le corresponde un campo vectorial en el es para nosotros espacio n-dimensional Rn . Los campos vectoriales de inter son los denominados suaves. Un campo vectorial f (x) es suave cuando tal funci on vectorial posee innitas derivadas parciales continuas. Si h(x) es una funci on escalar de variable vectorial suave, donde x es el vector de estado, entonces su gradiente es: h = h = x
h x1

. . .

h xn

(8.2)

El jacobiano de f (x) tiene la forma: f = f = x

f1 x1

. . .

f1 xn

(8.3)

. . .

fn x1

fn xn

8.1.1.

Derivadas y Corchetes de Lie

Denici on 8.1 Dada una funci on escalar suave h(x) : Rn R y un campo n n vectorial suave f (x) : R R , nosotros podemos denir una nueva funci on escalar Lf h = h f denominada la derivada de Lie, o simplemente la derivada direccional de h a lo largo de la direcci on del vector f . Sucesivas derivadas de Lie pueden ser denidas recursivamente:
0 L0 f h = h f = h i1 Li f h = Lf (Lf i1 h) = (Lf h) f ,

i = 1, 2, . . .

(8.4)

Del mismo modo, si g es otro campo vectorial, la funci on escalar Lg Lf h(x) es: Lg Lf h(x) = (Lf h) g (8.5)

8.1 Herramientas Matem aticas Ejemplo 8.1

407

Determinar las dos primeras derivadas de Lie de la salida y para el proceso siguiente: x = f (x), y = h(x) Soluci on: Las derivadas de la salida son: y = h x = Lx h = Lf h x [Lf h] x = L2 fh x

y =

Denici on 8.2 Sean f y g dos campos vectoriales en Rn . El corchete de Lie de f y g se dene como un tercer campo vectorial de la forma: [f , g] = g f f g = adf g Observar que al corchete de Lie se le denota tambi en como adf g, donde ad signica adjunta. Sucesivos corchetes de Lie se pueden denir recursivamente: adf 0 g = g adf i g = [f , adf i1 g], Ejemplo 8.2 Determinar [f , g] para el proceso no lineal x = f (x) + gu, donde: f= Soluci on: [f , g] = = 0 0 2sin(2x1 ) 0 2x1 + ax2 + senx1 x2 cosx1 0 cos(2x1 ) 2x1 + ax2 + senx1 x2 cosx1 ; g= 0 cos(2x1 ) i = 1, 2, . . .

a 2 + cosx1 x2 sinx1 cosx1

acos(2x1 ) cosx1 cos(2x1 ) 2sen(2x1 )(2x1 + ax2 + senx1 )

408

Control No Lineal

Lema 8.1 Los corchetes de Lie satisfacen las propiedades siguientes: 1. Bilinealidad: [1 f1 + 2 f2 , g] = 1 [f1 , g] + 2 [f2 , g] [f , 1 g1 + 2 g2 ] = 1 [f , g1 ] + 2 [f , g2 ] 2. Anticonmutatividad: [f , g] = [g, f ] 3. Identidad de Jacobi: Ladf g h = Lf Lg h Lg Lf h donde f , f1 , f2 , g, g1 y g2 son campos vectoriales, 1 y 2 son constantes escalares y h(x) es una funci on diferenciable.

8.1.2.

Difeomorsmo y Transformaci on de Estados

El concepto de difeomorsmo, que puede ser visto como una generalizaci on del concepto familiar de transformaci on de coordenadas, es el siguiente: on , se deDenici on 8.3 Una funci on : Rn Rn denida en una regi nomina un difeomorsmo si y su inversa son suaves. Si = Rn , entonces (x) es un difeomorsmo global. Si (x) se dene en una regi on nita y para un punto dado, entonces el difeomorsmo es local. El siguiente lema permite determinar difeomorsmos locales. Lema 8.2 Sea (x) una funci on suave denida en una regi on en Rn . Si el jacobiano es no singular en un punto x = x de , entonces (x ) dene un difeomorsmo local en una regi on de . Ejemplo 8.3 Determinar el difeomorsmo local alrededor del origen para el sistema siguiente: z1 2x1 + 5x1 x2 2 = (x) = z2 3senx2

8.1 Herramientas Matem aticas Soluci on: El jacobiano de para x = (0, 0) es: = x 2 + 5x2 2 10x1 x2 0 3cosx2 =
x =(0,0)

409

2 0 0 3

que posee rango 2, indic andonos que posee inversa porque es no singular y constituye un difeomorsmo local de acuerdo al lema 8.2.

8.1.3.

Transformaci on no Lineal de Estados

Un difeomorsmo puede ser usado para transformar una representaci on no lineal en otra, en t erminos de un nuevo vector de estado. Consideremos que el proceso no lineal sea descrito por la siguiente representaci on en el espacio de estado:
m

x = f (x(t)) +
j =1

gj (x(t))uj (t);

y(t) = h(x(t))

(8.6)

donde u(t) = [u1 (t), . . . , um (t)]T es el vector de control (la variable manipulada) del proceso de orden m, x(t) = [x1 (t), . . . , xn (t)]T es el vector de estado del proceso de orden n, y(t) = [y1 (t), . . . , yp (t)]T es el vector de salida del proceso (la variable controlada) de orden p y las funciones f = [f1 , . . . , fn ]T ], g = [g1 , . . . , gm ]T ] y h = [h1 , . . . , hp ]T corresponden a campos vectoriales innitamente diferenciables. Asumamos la siguiente transformaci on no lineal de estados: 1 (x1 , . . . , xn ) . . (8.7) z = (x) = . n (x1 , . . . , xn ) donde la funci on de transformaci on es invertible y tanto como su inversa on dada en la 1 son innitamente diferenciables. Notar que la transformaci ecuaci on (8.7) es un difeomorsmo. Mientras que la propiedad de inversi on de permite un retorno a los estados originales, la propiedad de diferenciaci on garantiza que la descripci on del proceso con las nuevas coordenadas sea tambi en innitamente diferenciable, tal como lo es el proceso original. Empleando la transformaci on z = (x) en la ecuaci on (8.6) obtenemos: z = = x x x (t)
x (t)

f (x(t)) +
x (t)

gj (x(t))uj (t)
x (t) j =1

(8.8)

410

Control No Lineal

donde x es un punto de equilibrio para el cual la matriz jacobiana es no singular, lo que signica que su inversa existe. Luego, podemos obtener la siguiente representaci on no lineal para el vector de estado z, como sigue:
m

z = f (z(t)) +
j =1

g j (z(t))uj (t);

(z(t)) y(t) = h

(8.9)

f (z) = g j (z) =

f (1 (z)) x gj (1 (z)) x

(z) = h(1 (z)) h Observar que (8.9) constituye un nuevo sistema no lineal con un vector de estado z.

8.1.4.

El Teorema de Frobenius

El teorema de Frobenius es una herramienta importante para el tratamiento formal de la linealizaci on por realimentaci on de procesos de orden n. Este teorema proporciona las condiciones necesarias y sucientes para resolver una clase especial de ecuaciones con derivadas parciales. Antes de presentar el teorema en cuesti on se requiere de las siguientes deniciones: Denici on 8.4 Se dice que un conjunto linealmente independiente de camolo si pos vectoriales [f1 , . . . , fm ] en Rn es completamente integrable, si y s existen (n m) funciones escalares h1 (x), h2 (x), . . . , hnm (x) que satisfacen el siguiente sistema de ecuaciones diferenciales parciales: hi fj = 0 donde 1 i n m, 1 j m. En adici on, los gradientes hi son tambi en linealmente independientes. La denici on anterior implica la existencia de n(m n) ecuaciones diferenciales parciales de la forma hi fj = 0. Denici on 8.5 Se dice que un conjunto linealmente independiente de camolo si existen funciones pos vectoriales [f1 , . . . , fm ] en Rn es involutivo, si y s escalares ijk : Rn Rn tales que:
m

[g f f g](x) = [f , g](x) =
k=1

ijk (x)fk (x),

i, j

8.1 Herramientas Matem aticas

411

Ya vimos que la notaci on [f , g] es conocida como el corchete de Lie. Partiendo de la denici on anterior se puede deducir que: 1. Los campos vectoriales constantes, es decir, si fk y gk son constantes para cualquier k = 1, . . . , m, son siempre involutivos puesto que:
m

[f , g](x) = 0 =
k=1

ijk (x)fk (x),

x, i, j

2. 3.

Un conjunto compuesto por un solo campo vectorial f es involutivo porque [f , f ] = 0. Si un conjunto de campos vectoriales [f1 , . . . , fm ] es involutivo, implica que para todo i, j : rango [f1 (x), . . . , fm (x)] = rango [f1 (x), . . . , fm (x), [fi , fj ]]

Ahora s podemos formular el teorema de Frobenius: Teorema 8.1 (Frobenius) Sea [f1 , f2 , . . . , fm ] un conjunto de campos vectoriales linealmente independientes. Se dice que tal conjunto es integrable si y s olo si es involutivo. Ejemplo 8.4 Considere el conjunto de ecuaciones diferenciales parciales: 4x3 x1 h h =0 x1 x2

h h h + (x2 + 2x3 =0 3 3x2 ) x1 x2 x3 donde sus campos vectoriales asociados poseen la forma: f1 = [4x3 1 0]T ; f2 = [x1 (x2 3 3x2 ) 2x3 ]T

Determine si tal conjunto de ecuaciones diferenciales parciales es solucionable (o en otras palabras, si [f1 , f2 ] es completamente integrable). Soluci on: Operando, encontramos que: [f1 , f2 ] = [12x3 3 0]T

Dado que [f1 , f2 ] = 3f1 + 0f2 , este conjunto de campos vectoriales es involutivo. Por consiguiente, las ecuaciones diferenciales parciales dadas son solucionables.

412

Control No Lineal

8.2.

Grado Relativo

Dado el siguiente proceso no lineal de una entrada y una salida: x = f (x) + g(x)u; y = h(x) (8.10)

se desea obtener una relaci on directa entre la entrada u y la salida y . Para ello derivamos la salida como sigue: y = h(x) h(x) h(x) = x f (x) + g(x)u x x x = Lf h(x) + Lg h(x)u

on deseada entre y y u; en caso Si Lg h(x) = 0, entonces se obtiene la relaci contrario, debemos seguir derivando la salida remanente y = Lf h(x) como se muestra a continuaci on: y = Lf h(x)x x Lf h(x)f (x) + Lf h(x)g(x)u = x x = L2 f h(x) + Lg Lf h(x)u

Nuevamente, si Lg Lf h(x) = 0, entonces se tiene la relaci on deseada. En caso contrario, se debe seguir derivando la salida hasta que en la r- esima derivada la entrada u aparezca en forma expl cita, como sigue:
r 1 h(x)u; y r = Lr f h(x) + Lg Lf 1 Lg Lr h(x) = 0 f

Denici on 8.6 El grado relativo del proceso univariable no lineal dado en la ecuaci on (8.10), es el n umero de veces r que hay que derivar la salida hasta obtener: Lg Li i = 1, 2, . . . , r 2 (8.11) f h(x) = 0,
1 Lg Lr h(x) = 0 f

(8.12)

para todo x que pertenezca a una regi on de Rn .

8.3 Forma Normal de Procesos No lineales

413

8.3.

Forma Normal de Procesos No lineales

La t ecnica de linealizaci on por realimentaci on requiere de una representaci on no lineal bastante u til del proceso a controlar: la forma normal. La transformaci on no lineal de coordenadas que permite llevar un proceso no lineal de una entrada y una salida (ecuaci on (8.10)) a su forma normal, r 1 involucra los t erminos h(x), Lf h(x), . . . , Lf h(x), tal como veremos m as adelante. Por consiguiente, tal transformaci on depende del grado relativo r del proceso. Empezaremos por el caso m as simple: r = n, donde n es el orden del proceso. La siguiente transformaci on de coordenadas: h(x) 1 (x) 2 (x) Lf h(x) z = (x) = y = h(x) (8.13) = ; . . . . . . n1 n (x) h(x) Lf on con x = [x1 , x2 , , xn ]T , cumple con las condiciones de una transformaci no lineal; es decir, es un difeomorsmo basado en la hip otesis de que el orden del sistema es r = n. Por consiguiente, dicha transformaci on puede llevar al proceso descrito en la ecuaci on (8.10) a la forma siguiente: z 1 = 1 (x) x x 1 (x) = [f (x) + g(x)u] x = Lf h(x) + Lg h(x)u = Lf h(x) = 2 (x)

z n1

= z2 . . . n1 (x) x = x n2 h(x) Lf [f (x) + g(x)u] = x n1 n2 n1 h(x) + Lg Lf h(x)u = Lf h(x) = n (x) = Lf = zn

n1 z n = Ln h(x)u f h(x) + Lg Lf

n1 1 = Ln h(1 (z))u = b(z) + a(z)u f h( (z)) + Lg Lf

y = z1

(8.14)

414

Control No Lineal

Notar que en la ecuaci on anterior, a(z) = 0 por denici on, ya que en este caso r = n. Cuando el proceso no lineal posee rango r < n, entonces el cambio de coordenadas desarrollado anteriormente conduce a una transformaci on parcial, en vista de que s olo se pueden denir r funciones de la forma 1 (x), . . . , r (x) linealmente independientes. Sin embargo, es posible agregar n r funciones de la forma r+1 (x), r+2 (x), . . . , n (x), de modo tal que (x) sea un difeomorsmo. Con ello, la forma normal del proceso (8.10) resulta en la siguiente representaci on en el espacio de estado: z 1 = z2 z 2 = z3 . . . z r 1 = zr
r 1 1 z r = Lr h(1 (z))u = b(z) + a(z)u f h( (z)) + Lg Lf

z r+1 = w1 (z) . . . z n = wnr (z) y = z1 (8.15)

donde w1 , w2 , . . . , wnr son funciones suaves que dependen del nuevo estado z y no de la entrada manipulada u.

8.4.

Linealizaci on Exacta y la Ley de Control

La linealizaci on exacta se reere a tratar con procesos no lineales de grado r = n. En tales procesos es posible determinar una adecuada realimentaci on no lineal que conduzca a una linealizaci on exacta del proceso original. El proceso puede ser univariable (con una entrada y una salida) o multivariable (con m ultiples entradas y m ultiples salidas). Nosotros s olo nos ocuparemos del caso univariable. Hemos visto que un cambio de coordenadas de la forma z = (x), descrito en la ecuaci on (8.13) y aplicado al proceso no lineal de la ecuaci on (8.10), produce un conjunto de nuevas coordenadas (la nueva representaci on en el espacio de estado) que poseen la forma dada en (8.14), ecuaci on que

8.4 Linealizaci on Exacta y la Ley de Control volvemos a reescribir a continuaci on: z 1 = z2 z 2 = z3 . . . z n1 = zn y = z1


n1 1 z n = Ln h(1 (z))u = b(z) + a(z)u f h( (z)) + Lg Lf

415

(8.16)

Si se dene una se nal de realimentaci on u (la ley de control no lineal) de la forma: 1 u= [b(z) + v ] (8.17) a(z) donde v es una nueva entrada, entonces el nuevo conjunto de ecuaciones viene a ser: z 1 = z2 z 2 = z3 . . . z v = v y = z1 (8.18)

que en forma compacta resulta en la siguiente representaci on lineal en el espacio de estado: = Ax + Bv ; z y = Cx (8.19) donde: A= ... 0 0 0 ... 0 . . . . . ; B= . . . . 0 ... 1 ... 0 1 ; C = 1 0 ... 0 0 (8.20)

0 1 0 0 0 1 . . . . . . . . . 0 0 0 0 0 0

Observar que la nueva entrada del proceso lineal es v . La gura 8.1 muestra el proceso de linealizaci on descrito hasta ahora. El proceso lineal de la ecuaci on (8.19) es completamente controlable y completamente observable,

416

Control No Lineal

ya que sus matrices de controlabilidad [B AB . . . An1 B ] y de observabilidad [C T AT C T . . . (AT )n1 C T ] poseen rango n (rango completo). Por otra parte, el proceso resultante es un integrador de orden n debido a que su funci on de transferencia resulta: 1 y (s) = C [sI A]1 B = n (8.21) v (s) s

  u - - +   6 6 b(.) a(.) 1 a(.) 

x = f (x) + g(x)u


z = (x)  y
-

? - C

Figura 8.1: Linealizaci on por realimentaci on.

Respecto al proceso de linealizaci on desarrollado, debemos remarcar lo siguiente: El sistema de lazo cerrado resultante (gura 8.1) es lineal, completamente controlable y completamente observable. Por consiguiente, el problema de control a resolver, ya sea de regulaci on o de seguimiento de trayectorias, queda resuelto dise nando v con cualquier t ecnica de control lineal conocida. En general, la realimentaci on no lineal requiere de todo el vector de estado z, por lo que es necesario que todos sus elementos sean medibles. De lo contrario, estamos obligados a estimarlos empleando un observador no lineal, como veremos m as adelante. Condiciones para Linealizaci on Exacta La linealizaci on desarrollada anteriormente fue posible debido a la existencia de una funci on de salida h(x) respecto a la cual el proceso no lineal

8.4 Linealizaci on Exacta y la Ley de Control

417

original tiene grado relativo r = n. Resaltemos que un proceso no lineal univariable como el de la ecuaci on (8.10) posee grado r = n cuando la funci on h(x), para un entorno alrededor del punto de operaci on x , satisface:
n2 h(x) = 0 Lg h(x) = Lg Lf h(x) = = Lg Lf n1 h(x ) = 0 Lg Lf

(8.22)

Las condiciones para linealizaci on exacta pueden ahora ser rigurosamente formalizadas. Teorema 8.2 El proceso univariable no lineal de la ecuaci on (8.10): x = f (x) + g(x)u donde f (x) y g(x) son campos vectoriales suaves, es linealizable si y s olo si existe una regi on en donde se cumplen las condiciones siguientes: 1. Los campos vectoriales:
n1 g] [g, adf g, . . . , adf

son linealmente independientes en , lo que equivale a decir, que el rango de la matriz resultante [.] debe ser igual al orden n del proceso. 2. El conjunto: es involutivo en . La primera condici on puede ser interpretada como una condici on de conn1 trolabilidad dado que los campos vectoriales [g, adf g, . . . , adf g] aplicados a procesos lineales se convierten en la conocida matriz de controlabilidad [B, AB, . . . , An1 B ]. El rango de esta matriz debe ser n para que el proceso lineal (entendi endose que el modelo del proceso es lineal) sea completamente controlable (subsecci on 2.3.6). Sin embargo, puede ocurrir que un sistema no lineal sea controlable, mientras que su modelo linealizado no lo es. Por ello, la primera condici on puede considerarse como una generalizaci on de la condici on de controlabilidad. La condici on involutiva es menos intuitiva. Para sistemas lineales, tal condici on se satisface trivialmente ya que los campos vectoriales son constantes. Pero, en general, no se puede decir lo mismo cuando se trata con procesos no lineales.
n2 [g, adf g, . . . , adf g]

418

Control No Lineal

8.5.

Observadores No Lineales

El estudio de la observabilidad en sistemas lineales tiene su base en la matriz de observabilidad, que para sistemas univariables no forzados de la forma: x = Ax(t); y (t) = C x(t) se dene como: N = C CA . . . (8.23)

CAn1 El caso no lineal y no forzado que nos ocupa posee la descripci on: x = f (x); y (t) = h(x) (8.24)

cuya correspondiente matriz de observabilidad generalizada es: h(x) Lf h(x) O(x) . . x .


n1 h(x) Lf

(8.25)

Es f acil demostrar que si f (x) = Ax y h(x) = C x, las matrices de observabilidad de las ecuaciones (8.23) y (8.25) se igualan. Supongamos que la matriz O(x) posea inversa para todo x. En tal caso, la transformaci on denida por: h(x) Lf h(x) z = (x) = (8.26) . . x .
n1 h(x) Lf

representa un cambio de coordenadas. Empleando los resultados anteriores y en analog a con la ecuaci on (8.16); la descripci on en el espacio de estado para las nuevas coordenadas (notar que g = 0) es: z2 z 1 z z3 2 . . . (8.27) = y = z1 ; . . . z n1 zn 1 (z)] z n Ln h [ f

8.5 Observadores No Lineales que posee la forma matricial siguiente:


1 z = Az + BLn f h( (z));

419

y = Cz

(8.28)

donde: A=

0 1 0 0 0 1 . . . . . . . . . 0 0 0 0 0 0

... 0 0 ... 0 0 . . . . ; B= . . . . . 0 ... 1 ... 0 1

; C = 1 0 ... 0 0 (8.29)

Se puede demostrar que la matriz de observabilidad del proceso descrito en la ecuaci on (8.28) es la matriz identidad. Por consiguiente, tal proceso es completamente controlable. Conforme a las relaciones (8.24), (8.25) y (8.26) se tiene que: x = O(x)f (x) z = x 1 = Az + BLn f h( (z)) y = Cz (8.30) El observador a dise nar debe estimar el vector de estado z; es decir, debe determinar su estimado z empleando las mediciones a la entrada y a la salida del proceso. Haciendo una extensi on de los bien conocidos observadores lineales (subsecci on 2.3.6), para el observador no lineal podemos considerar la din amica siguiente : d z 1 = A z + BLn z]; y = Cx (8.31) f h( (z)) + L[y C dt donde observamos que el t ermino L[y C z] es proporcional al error entre la salida del proceso y y la salida del observador y . Para obtener la expresi on del observador para los estados x(t) del proceso no lineal, empleamos la versi on estimada de la ecuaci on (8.30) que nos permite despejar el vector de estado estimado dx /dt como sigue: d z dx = O1 (x ) dt dt y usando la relaci on (8.31) obtenemos: dx dt
1 = O1 (x ){A z + BLn z]} f h( (z)) + L[y C

){O(x )f (x ) + L[y C z]} = O1 (x = f (x ) + O1 (x )L[y h(x )] (8.32)

420

Control No Lineal

que es la ecuaci on del observador no lineal para el sistema no forzado x = f (x), y = h(x), con condici on inicial x (0), siempre que O1 (x) exista. Notar que tambi en hemos usado el hecho de que: y = h(x ) = h(1 ( z)) = C z Para el caso de procesos no lineales forzados con grado relativo r = n, y teniendo en cuenta la transformaci on acostumbrada z = (x), entonces el sistema con las nuevas coordenadas resulta:
n1 1 = Az + B [Ln h(1 (z))u] z f h( (z)) + Lg Lf

(8.33)

Luego, por extensi on (ver ecuaci on (8.31)), la din amica del observador para el sistema forzado: x = f (x) + g(x)u; tiene la forma: d z n1 1 = A z + BLn z)) + Lg Lf h(1 ( z))u + L[y C z] f h( ( dt (8.34) y = h(x)

que debe cumplir con los requerimientos siguientes: que el proceso posea grado relativo r = n, que su matriz de observabilidad sea invertible y que la entrada u sea uniformemente acotada. La ecuaci on del observador para el sistema original toma la forma siguiente: dx )] = f (x ) + g(x )u + O1 L[y (t) h(x dt para una condici on inicial x (0). C alculo de la Matriz de Ganancia L del Observador Dado que el par [A, C ] dado en (8.29) es completamente observable, una forma de obtener L es aplicar la conocida f ormula del observador lineal [3]: n an . . L = (W N T )1 (8.36) . 1 a1 donde n es el orden del proceso, y: N= CT AT C T (AT )n1 C T (8.35)

8.6 Procedimiento de Dise no W = an1 an2 an2 an3 . . . . . . 1 a1 1 0 a1 1 1 0 . . . . . . 0 0 0 0

421

on: Los par ametros ai , i = 1, . . . , n, se obtienen de la ecuaci |sI A| = sn + a1 sn1 + + an1 s + an mientras que los par ametros i , i = 1, . . . , n, se determinan a partir de las ces conforman la ra ces deseadas del observador i , i = 1, . . . , n. Estas ra ecuaci on caracter stica del observador: (s 1 ) (s 1 ) = sn + 1 sn1 + + n1 s + n y deben tener parte real negativa para garantizar la estabilidad del observador no lineal.

8.6.

Procedimiento de Dise no

El procedimiento para dise nar el sistema de control no lineal basado en la t ecnica de linealizaci on por realimentaci on es como sigue: 1) Formular el problema (denir especicaciones de dise no). 2) Determinar el modelo no lineal continuo del proceso. 3) Determinar el grado relativo del modelo no lineal continuo del proceso (subsecci on 8.2). 4) Comprobar que se cumplen las condiciones de linealizaci on exacta del modelo no lineal continuo del proceso (subsecci on 8.4). 5) Determinar la forma normal del proceso no lineal (subsecci on 8.3). 6) Implementar la linealizaci on por realimentaci on de estado y la ley de control no lineal (subsecci on 8.4). 7) Dise nar el observador no lineal de estados (si fuera necesario). 8) Simular el sistema de control no lineal con el prop osito de predecir un rendimiento satisfactorio.

422 9) Implementar el hardware. 10) Implementar el software de control.

Control No Lineal

11) Realizar pruebas de funcionamiento (resultados experimentales).

8.7.
8.7.1.

Control No Lineal de un Servosistema


Formulaci on del Problema

El servomotor D.C. con carga no lineal mostrado en la gura 3.9 y descrito en la secci on 3.3, es un proceso de una entrada y una salida. Este servomotor posee un engranaje reductor de velocidad y puede ser controlado por el voltaje de armadura. La carga no lineal es una varilla met alica acoplada perpendicularmente al eje del servomotor, a manera de un brazo rob otico de un grado de libertad. En el extremo libre de dicha varilla se pueden acoplar cargas adicionales. De esta manera la carga no lineal se hace variable. El objetivo de control es dise nar e implementar un sistema de control no lineal basado en la t ecnica de linealizaci on por realimentaci on, de modo tal que la varilla se posicione en una referencia predeterminada o siga una trayectoria en el rango de 0 a 2 rad. El sobreimpulso de la respuesta debe ser m nimo no obstante la presencia de la carga no lineal y de las no linealidades del proceso, como las fricciones est atica y de Coulomb, y la saturaci on en el amplicador de potencia. Las derivaciones que siguen a continuaci on corresponden a dos casos del proceso: 1. Modelo no lineal de tercer orden del proceso cuando consideramos que la inductancia de armadura L es no despreciable. 2. Modelo no lineal de segundo orden del proceso cuando se desprecia la inductancia L.

8.7.2.

Modelo del Proceso

Modelo No Lineal de Tercer Orden (L = 0) La gura 3.9 presenta la estructura del proceso no lineal a controlar. La tabla 3.2 describe las variables y los valores de los par ametros. Asumiendo que la se nal de control u va a ser compensada en software de los efectos de la

8.7 Control No Lineal de un Servosistema

423

fricci on est atica y fricci on de Coulomb, entonces el proceso no lineal puede ser descrito mediante la siguiente representaci on en el espacio de estado: x = f (x) + g(x)u; donde: x2 N B )senx1 M x2 + nK f (x) = ( M M x3 nE R L x2 L x3 0 h(x) = x1 g (x) = 0 ;
Kact L

y = h(x)

(8.37)

(8.38)

on angular, la Los elementos del vector de estado [x1 x2 x3 ]T son la posici velocidad angular y la corriente de armadura, respectivamente, y Kact u es la tensi on de armadura. Notar que el modelo del proceso no lineal es continuo y diferenciable. El t ermino no lineal TN debido a las fricciones est atica y de Coulomb, puede no considerarse, dado que sus efectos van a ser compensados por software cuando el sistema de control no lineal se implemente en tiempo real. Modelo No Lineal de Segundo Orden (L = 0) El modelo no lineal de segundo orden del proceso es (subsecci on 3.3): x =
n2 KE BR+ x2 MR

TN M

x2

N M senx1

nKact K MR u

= f (x) + g(x)u (8.39)

y = h(x) = x1 donde: f (x) =


n2 KE BR+ x2 MR

x2 N T M

N M senx1

g(x) =

0
nKact K MR

Al igual que en el caso anterior (L no despreciable), el t ermino no lineal atica y de Coulomb, puede no ser tomado en TN debido a las fricciones est cuenta, dado que su efecto va a ser compensado por software.

424

Control No Lineal

8.7.3.

Determinaci on del Grado Relativo

Grado Relativo del Proceso No Lineal de Tercer Orden De acuerdo a lo establecido en la subsecci on 8.2, empleamos las derivadas de Lie en el modelo del proceso no lineal de tercer orden como sigue: Lf h(x) = h(x)f (x) = x2 Lg Lf h(x) = (Lf h(x))g(x) = 0 L2 f h(x) = (Lf h(x))f (x) = (8.40) (8.41)

N B nK senx1 x2 + x3 (8.42) M M M nK 2 =0 (8.43) Lg L2 f h(x) = (Lf h(x))g(x) = ML por consiguiente, el rango del proceso respecto a la salida y es r = 3. Ello implica que el proceso en cuesti on es completamente linealizable. Grado Relativo del Proceso No Lineal de Segundo Orden De acuerdo a lo establecido en la subsecci on 8.2, empleamos las derivadas de Lie en el modelo del proceso no lineal de segundo orden como sigue: Lf h(x) = h(x)f (x) = x2 nKact K =0 Lg Lf h(x) = (Lf h(x))g(x) = MR (8.44) (8.45)

Por consiguiente, el rango del proceso respecto a la salida y es r = 2. Ello implica que el proceso en cuesti on es completamente linealizable.

8.7.4.

Comprobar Linealizaci on Exacta

Linealizaci on Exacta del Modelo Lineal de Tercer Orden Para aplicar las condiciones de linealizaci on establecidas en el teorema 8.2, debemos calcular: adf g = [f , g] = g f f g 0 0 1 0 0 nK N B nK cosx1 M 0 = M = M M L 1 R R 0 nE 2 L L L L ad2 f g = [f , adf g] = (adf g) f f adf g

8.7 Control No Lineal de un Servosistema 0 1 N B cosx1 M = M 0 nE R L L 0


nK M

425

0 0 g ] = [g adf g ad2 f Dado que:

1 L

nK ML nKB nK ML = M 2 L nKR 2 ML R n2 KE R2 + 2 2 3 L ML L nK 0 ML nK nKB nKR M L M 2 L M L2 2 2 R KE n +R L2 M L2 L3

n2 K 2 M 3 L3 entonces tal conjunto est a conformado por campos vectoriales linealmente independientes. Por otra parte, el conjunto: det[g adf g ad2 f g] = [g adf g]

es involutivo porque es constante. Linealizaci on Exacta del Modelo Lineal de Segundo Orden Como en el caso anterior, para aplicar las condiciones de linealizaci on establecidas en el teorema 8.2, debemos calcular: adf g = [f , g] = g f f g Es f acil demostrar que: det[g adf g] = nKact K MR
2

lo que signica que tal conjunto est a conformado por campos vectoriales linealmente independientes. Por otra parte, el conjunto [g adf g] es involutivo porque es constante.

8.7.5.

La Forma Normal

Forma Normal del Modelo No Lineal de Tercer Orden La forma normal del proceso en estudio puede ser obtenida mediante la transformaci on no lineal z = (x) del estado x, como sigue: x1 h(x) z1 x2 z = z2 = (x) = Lf h(x) = N B nK 2 z3 Lf h(x) M sinx1 M x2 + M x3 (8.46)

426

Control No Lineal

Notar en la u ltima ecuaci on que el nuevo estado z posee signicado f sico, on del eje del servomotor, z2 es su velocidad angular puesto que z1 es la posici y z3 su aceleraci on. El estado original x expresado en funci on del nuevo estado z est a dado por: z1 x1 z2 x = x2 = 1 (z) = B M N x3 nK senz1 + nK z2 + nK z3 De acuerdo a la subsecci on 8.3, las nuevas coordenadas resultan: z 1 = z2 z 2 = z3
1 2 1 z 3 = L3 f h( (z)) + Lg Lf h( (z))u

(8.47) (8.48)

3 L3 f h(x) = (Lf h(x)) f (x) nK N N B B nK = cosx1 x2 senx1 x2 + x3 + M M M M M M nK K act Lg L2 f h(x) = ML Luego, la forma normal del proceso resulta:

donde:

nE R x2 x3 L L

z 1 = z2 z 2 = z3 z 3 = N NR cosz1 z2 senz1 M ML nKact K u + ML y = z1 BR n2 KE + ML ML z2 R B + M L z3

(8.49)

Forma Normal del Modelo No Lineal de Segundo Orden El modelo no lineal de segundo orden del proceso, sin considerar el t ermion 8.39): no no lineal TN es (ver ecuaci x =
n KE BR+ x2 MR
2

x2 N M senx1 +

nKact K MR u

= f (x) + g(x)u y = h(x) = x1 (8.50)

que de hecho ya se encuentra en su forma normal.

8.7 Control No Lineal de un Servosistema

427

8.7.6.

La ley de Control No Lineal

Ley de Control No Lineal para el Modelo de Tercer Orden


La forma normal para linealizaci on exacta del proceso est a dada en la ecuaci on (8.49). Reemplazamos en dicha ecuaci on la siguiente ley de control: u = = + 1 1 [v L2 f h( (z))] 1 (z)) Lg L2 h ( f N NR ML cosz1 z2 + senz1 v+ nKKact M ML BR R n2 KE B + z2 + + z3 ML ML M L

(8.51)

donde v es una entrada equivalente, obtenemos: z 1 = z2 z 2 = z3 z 3 = v y = z1 o lo que es equivalente: z = Az + Bv ; donde: 0 1 0 A = 0 0 1 ; 0 0 0 y = Cz (8.52)

0 B = 0 ;C = 1

1 0 0

La funci on de transferencia del proceso lineal equivalente se obtiene de: 1 y (s) = C (sI A)1 B = 3 v (s) s d3 y (t) =v (8.53) dt El proceso de linealizaci on desarrollado se ilustra en la gura 8.2. Ahora se debe dise nar v de modo tal que y = z1 siga una trayectoria deseada r(t). El siguiente control logra tal objetivo: v= d2 (r y ) d(r y ) d3 r K3 (r y ) K K2 1 dt3 dt2 dt (8.54) O lo que es lo mismo:

428

Control No Lineal

Realimentacion no lineal u = u(z,v) z z = (x )

Proceso no lineal x

v Proceso lineal equivalente

1 s3

Figura 8.2: Linealizaci on del proceso no lineal y su proceso lineal equivalente.

Reemplazando (8.54) en (8.53) obtenemos la ecuaci on del sistema de lazo cerrado: d2 (r y ) d(r y ) d3 (r y ) K3 (r y ) = 0 K K2 1 3 2 dt dt dt amica del error r y . Si donde los par ametros K1 , K2 y K3 determinan la din se desea que y r cuando t , entonces los eigenvalores de la ecuaci on anterior deben poseer parte real negativa. Por ejemplo, si deseamos que los eigenvalores sean s1 = s2 = s3 = 4, entonces la ecuaci on del sistema de lazo cerrado resulta s3 + 12s2 + 48s + 64, de donde se obtiene: K1 = 12, K2 = 48 y K3 = 64. La expresi on de v en funci on de la trayectoria de referencia resulta: v= donde: K= K3 K2 K1 ; d2 r dr d3 r + K + K2 + K3 r K z 1 3 2 dt dt dt y z= y y (8.55)

Finalmente, la se nal de control u puede ser obtenida reemplazando (8.55) en (8.51), lo que resulta en: u = ML nKKact d3 r N d2 r dr cosz1 z2 + K + K2 + K3 r K z + 1 3 2 dt dt dt M

8.7 Control No Lineal de un Servosistema NR senz1 + ML BR n2 KE + ML ML R B + M L

429

z2 +

z3

(8.56)

Ley de Control No Lineal para el Modelo de Segundo Orden


La siguiente ley de control: u= BR + n2 KE N MR v+ x2 + senx1 nKactK MR M (8.57)

linealiza completamente el modelo del proceso dado en (8.50), donde v es una nueva entrada por dise narse. Al aplicar la se nal de control anterior, el modelo del proceso completamente linealizado queda como: x 1 = x2 x 2 = v y = x1 Tal conjunto de ecuaciones representa un doble integrador. Es decir: d2 y =v dt2 La se nal v debe dise narse de modo tal que y = x1 siga una trayectoria de referencia r(t). La siguiente se nal v : v= d(r y ) d2 r K2 (r y ) K1 2 dt dt (8.58)

logra que el sistema de lazo cerrado tenga la forma: d(r y ) d2 (r y ) + K2 (r y ) = 0 + K1 dt2 dt amica del error (r y ). Si se desea que donde K1 y K2 determinan la din y r cuando t , entonces los eigenvalores de la ecuaci on anterior deben poseer parte real negativa. Por ejemplo, si deseamos que los eigenvalores sean s1 = s2 = 4, entonces la ecuaci on del sistema de lazo cerrado resulta 2 s +8s +16, de donde se obtiene: K1 = 8 y K2 = 16 y K3 = 64. La expresi on de v en funci on de la trayectoria de referencia resulta entonces: v= dr d2 r + K1 + K2 r K x dt2 dt (8.59)

430 donde: K= K2 K1 ; z= y y

Control No Lineal

Finalmente, la se nal de control u puede obtenerse reemplazando (8.59) en (8.57), lo que resulta en: u = + d2 r dr MR + K1 + K2 r K x nKact K dt2 dt 2 BR + n KE N x2 + senx1 MR M

(8.60)

8.7.7.

Dise no del Observador No Lineal de Estados

Observador No Lineal para el Modelo de Tercer Orden Dado el modelo no lineal del proceso de tercer orden: x = f (x) + g(x)u; su correspondiente matriz de ecuaci on (8.25) como sigue: h(x) Lx h(x) O(x) = x L2 x h(x) 1 0 = N cosx1 M Claramente vemos que: nK =0 M lo que signica que O(x) posee inversa. Esta inversa es: 1 0 0 0 1 0 O1 (x) = M N B nK cosx1 nK nK det[O(x)] = Por consiguiente, la ecuaci on del observador es: dx = f (x ) + g(x )u + O1 L[y (t) h(x )] dt y = h(x ) y = h(x)

observabilidad puede obtenerse aplicando la x1 = x2 x N B M senx1 M x2 + 0 0 1 0 nK B M M


nK M x3

(8.61)

(8.62)

8.7 Control No Lineal de un Servosistema Observador No Lineal para el Modelo de Segundo Orden

431

Como en el caso anterior, consideremos el modelo no lineal del proceso de segundo orden, que posee la forma: x = f (x) + g(x)u; y = h(x)

La correspondiente matriz de observabilidad puede obtenerse aplicando la ecuaci on (8.25) como sigue: O(x) = = x h(x) Lx h(x) =
nK M

x1 x2 (8.63)

1 0 B 0 1 M

La din amica del observador queda descrita entonces por: dx = f (x ) + g(x )u + O1 L[y (t) h(x )] dt y = h(x )

(8.64)

Cabe anotar que en este caso el observador es u til para estimar la velocidad angular x2 . Sin embargo, por software podemos tambi en estimar x2 , sabiendo que es la derivada de x1 .

8.7.8.

Simulaci on del Sistema de Control No Lineal

Simulaci on Empleando el Modelo No Lineal de Tercer Orden La gura 8.3 muestra el diagrama de bloques del sistema de control no lineal a simular. Se desea que los polos del sistema realimentado linealizado sean: s1 = 40; s2 = 10 2 10j ; s3 = 10 2 + 10j Por consiguiente, el polinomio caracter stico toma la forma: (s s1 )(s s2 )(s s3 ) = s3 + K1 s2 + K2 s + K3 de donde resulta: K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000

432

Control No Lineal

Sistema lineal equivalente r Realimentacion lineal v = v(r, z ) z v Realimentacion no lineal u = u( z ,v) z u Proceso no lineal
x

z = (x)

Figura 8.3: Sistema de control no lineal.

La gura 8.4 (archivo disnl1.m) muestra el diagrama SIMULINK para la simulaci on del sistema. En el ambiente de trabajo de MATLAB, cada subsistema de la gura 8.4 puede ser visualizado a voluntad. En el subsistema Proceso no lineal se ha colocado la condici on inicial x1 (0) = 1 rad. Los resultados de la simulaci on se muestran en la gura 8.5, donde podemos observar que la se nal controlada sigue exactamente a la trayectoria de referencia (una se nal sinusoidal), en tanto que la magnitud de la se nal de control u no sobrepasa el l mite previamente establecido de u < |1,4| volt. Para iniciar la simulaci on empleando la gura 8.4, previamente se requiere ejecutar el programa de datos disnl1p.m.
% disnl1p.m PARAMETROS PARA LA SIMULACION DEL SISTEMA DE % CONTROL NO LINEAL DE TERCER ORDEN clear all % PARAMETROS DEL PROCESO (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.0; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % GANANCIA DEL SISTEMA LINEALIZADO K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000; % GRAFICOS load disnl1_x1; load disnl1_r; load disnl1_u;

8.7 Control No Lineal de un Servosistema

433

disnl1_u u

disnl1_x x Mux

Seal v

Seal de Proceso control u no lineal

Mux

grfico

Referencia r

Conversin de x a z

disnl1_r referencia r

Figura 8.4: Simulaci on del sistema de control no lineal de orden 3.

lg = size(disnl1_x1,1); % LONGITUD DE LAS MUESTRAS ejex = linspace(0,20,lg); subplot(2,1,1) plot(ejex,disnl1_r,-,ejex,disnl1_x1); grid ylabel(Posicion (radianes)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,disnl1_u); grid ylabel(Se~nal de control (voltios)) xlabel(Tiempo en segundos) print -f -deps disnl1r % CREA ARCHIVO disnl1r.eps

Simulaci on Usando el Proceso de Tercer Orden con Observador La gura 8.6 muestra el diagrama de bloques del sistema de control no lineal a simular. Notar que se ha incluido el observador no lineal. Se desea que los polos del sistema realimentado linealizado sean: s1 = 40; s2 = 10 2 10j ; s2 = 10 2 + 10j Por consiguiente, el polinomio caracter stico toma la forma: (s s1 )(s s2 )(s s3 ) = s3 + K1 s2 + K2 s + K3

434
1.5 Posicin (radianes) 1 0.5 0 0.5 1 0 2 4 6 8 10 12 Tiempo en segundos 14 16

Control No Lineal

18

20

Seal de control (voltios)

1.5 1 0.5 0 0.5 1 1.5 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20

Figura 8.5: Resultado de la simulaci on del sistema de control no lineal empleando un modelo no lineal de tercer orden.

Sistema lineal equivalente r Realimentacion lineal v = v(r, ^ z)


^ z

Realimentacion no lineal u = u( z ,v)


^ z

Proceso no lineal

^ = (x) ^ z

^ x

Observador no lineal

Figura 8.6: Sistema de control no lineal con observador.

de donde resulta: K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000

La gura 8.7 (archivo disnl2.m) muestra el diagrama SIMULINK para la simulaci on. En el ambiente de trabajo de MATLAB, cada susbsistema de la gura 8.7 puede ser visualizado a voluntad. Los resultados de la simulaci on

8.7 Control No Lineal de un Servosistema

435

se muestran en la gura 8.8, donde podemos observar que la se nal controlada sigue exactamente a la trayectoria de referencia (una se nal sinusoidal). Para iniciar la simulaci on empleando la gura 8.7, previamente se requiere ejecutar el programa de datos disnl2p.m, pues en este programa se encuentran los valores de los par ametros del sistema, as como tambi en el c alculo de la matriz de ganancia L.

disnl2_u u Mux Seal u Seal v Proceso no lineal Mux grfico

disnl2_x1 x1 disnl2_r

Referencia r

Conversin Observador de x a z no lineal

Figura 8.7: Simulaci on del sistema de control no lineal de tercer orden con observador.

% disnl2p.m PARAMETROS PARA SIMULAR EL SISTEMA DE CONTROL % NO LINEAL DE TERCER ORDEN CON OBSERVADOR clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.0; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO LINEAL EQUIVALENTE DE TERCER ORDEN

436

Control No Lineal

% %

Ac = [0 1 0;0 0 1;0 0 0]; Bc = [0;0;1]; Cc = [1 0 0]; D = [0]; NN = [Cc Ac*Cc (Ac)^2*Cc]; rangoNN = rank(NN); % es n=3 => EL PROCESO ES C.C. CALCULO DE LAS GANANCIAS L1, L2 y L3 p = poly(Ac); a1=p(2); a2=p(3); a3=p(4); J = [-15+10j 0 0 0 -19 0 0 0 -15-10j]; % RAICES DESEADAS JJ = poly(J); aa1=JJ(2); aa2=JJ(3); aa3=JJ(4); W = [a2 a1 1;a1 1 0;1 0 0]; GANANCIA DEL OBSERVADOR NO LINEAL LL = inv(W*N)*[aa3-a3;aa2-a2;aa1-a1]; L1=LL(1); L2=LL(2); L3=LL(3); GANANCIA DEL SISTEMA LINEALIZADO K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000; GRAFICOS load disnl2_x1; load disnl2_r; load disnl2_u; lg = size(disnl2_x1,1); % LONGITUD DE LAS MUESTRAS ejex = linspace(0,20,lg); subplot(2,1,1) plot(ejex,disnl2_r,-,ejex,disnl2_x1) ylabel(Posicion (radianes)) xlabel(Tiempo en segundos) grid subplot(2,1,2) plot(ejex,disnl2_u) ylabel(Se~nal de control (voltios)) xlabel(Tiempo en segundos) grid print -f -deps disnl2r % CREA ARCHIVO disnl2r.eps

Simulaci on Empleando el Proceso de Segundo Orden La gura 8.3 muestra diagrama de bloques del sistema de control no lineal a simular. Se desea que los polos del sistema realimentado linealizado stico toma sean s1 = 4 y s2 = 4. Por consiguiente, el polinomio caracter la forma: (s s1 )(s s2 ) = s2 + K1 s + K2

8.7 Control No Lineal de un Servosistema


1 Posicin (radianes) 0.5 0 0.5 1 0

437

8 10 12 Tiempo en segundos

14

16

18

20

Seal de control (voltios)

3 2 1 0 1 0

8 10 12 Tiempo en segundos

14

16

18

20

Figura 8.8: Resultado de la simulaci on del sistema de control no lineal de tercer orden.

de donde resulta: K1 = 8 y K2 = 16. Esta vez vamos a simular el sistema de control no lineal mediante discretizaci on directa del sistema continuo. La raz on es que la implementaci on en tiempo real del sistema de control se va a realizar digitalmente. El programa disnl3.m realiza la simulaci on del sistema y los resultados se pueden ver en la gura 8.9. Es importante anotar que en el programa de simulaci on disnl3.m se ha incluido la compensaci on de la fricci on no lineal de Coulomb y la limitaci on de la se nal de control para evitar saturar el amplicador. Con el prop osito de suavizar los efectos de las derivadas presentes en la se nal de control u emplearemos la siguiente f ormula no recursiva para la derivada: dr 1 [r(k ) + 3r(k 1) 3r(k 2) r(k 3)] = dt 6T donde T es el tiempo de muestreo. Tal f ormula se obtiene calculando el promedio temporal r : 1 r = [e(k ) + e(k 1) + e(k 2) + e(k 3)] 4

438

Control No Lineal

para luego aproximar la derivada con relaci on a r , como sigue: r(k 1) r r(k 2) r r(k 3) r dr 1 r(k ) r + + + ] = [ dt 4 1,5T 0,5T 0,5T 1,5T
% disnl3.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL % EMPLEANDO MODELO DE SEGUNDO ORDEN DEL PROCESO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.0; % tambi en 10, 20, 45; K = 31.071e-3; n = 19.741; L = 4.64e-1; %4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -4 y -4 pol = conv([1 4],[1 4]); % POLINOMIO CARACTERISTICO K1 = pol(2); K2 = pol(3); % CONDICIONES Y PARAMETROS INICIALES r(1) =0; r(2)=0; r(3)=0; r(4)=0; dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0; ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0; x1(1) =0; x1(2)=0; x1(3)=0; x1(4)=0; x2(1) =0; x2(2)=0; x2(3)=0; x2(4)=0; MM=1000; T = 0.05; % LAZO DE CONTROL for k=4:MM r(k) = sin(0.2*k*T); % TRAYECTORIA DE REFERENCIA % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T); ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T); % SE~NAL DE CONTROL u(k) = (M*R/(Kact*n*K))*(ddr(k) + K1*dr(k) + K2*r(k) ... - K2*x1(k) - K1*x2(k) ... + (B*R+n^2*K*E)/(M*R)*x2(k) + (N/M)*sin(x1(k)) ); TN = cc*sign(x2(k)); % torque de fricci on de Coulomb % COMPENSANDO FRICCION if(x2(k) > 0) u(k) = u(k) + R*cc/(n*K*Kact); elseif(x2(k) < 0)

8.7 Control No Lineal de un Servosistema


u(k) = u(k) - R*cc/(n*K*Kact); end % EVITANDO SATURACION DEL ACTUADOR if(u(k) > 1.4) u(k) = 1.4; elseif(u(k) < -1.4) u(k) = -1.4; end % PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO x1(k+1) = x1(k) + T*x2(k); x2(k+1) = x2(k) + T*( - (N/M)*sin(x1(k)) ... - (B/M + n^2*K*E)/(M*R)*x2(k) ... - (1/M)*TN + n*K*Kact/(M*R)*u(k) ); end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex = linspace(0,MM*T,MM-3); subplot(2,1,1) plot(ejex,r(4:MM),ejex,x1(4:MM)); grid ylabel(Posicion (radianes)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(4:MM)); grid ylabel(Se~nal de control (voltios)) xlabel(Tiempo en segundos) print -f -deps disnl3 % crea disnl3.eps

439

8.7.9.

Implementaci on del Hardware

El hardware empleado en la implementaci on en tiempo real del sistema de control no lineal es similar al empleado para la implementaci on en tiempo real de los sistemas de control adaptivo, predictivo y robusto. Dicho hardware se describe en detalle en la subsecci on 5.6.8.

8.7.10.

Implementaci on del Software

El software de control empleado en la implementaci on en tiempo real del sistema de control no lineal posee la misma estructura que el software de control empleado para la implementaci on en tiempo real de los sistemas de control predictivo y robusto. La estructura de dicho software se describe en detalle en la subsecci on 6.7.7. El diagrama de ujo del software de control se muestra en la gura 6.13.

440
2 Posicin (radianes) 1 0 1 2 0

Control No Lineal

10

15

20 25 30 Tiempo en segundos

35

40

45

50

0.4 Seal de control (voltios) 0.2 0 0.2 0.4 0

10

15

20 25 30 Tiempo en segundos

35

40

45

50

Figura 8.9: Resultado de la simulaci on del sistema de control no lineal empleando un modelo no lineal de segundo orden.

El software usado para la implementaci on del algoritmo de control de posici on emplea el lenguaje C y se ejecuta en una PC Pentium. Los programas necesarios para el control se estructuran en tres archivos: R1LLIB.H, R1LLIB.CPP y DISNL.CPP. El archivo DISNL.CPP es el que contiene el algoritmo de control. La realizaci on de archivos ejecutables a partir de los programas fuente, se elabora en el ambiente de trabajo del Borland C/C++ mediante la creaci on de un proyecto denominado DISNL.PRJ, en donde intervienen los archivos mencionados en el p arrafo anterior. A continuaci on se presenta el listado del programa DISNL.CPP. El listado de los programas R1LLIB.H y R1LLIB.CPP fueron presentados en la subsecci on 6.7.7.
/* DISNL.CPP Programa del sistema de control no lineal de posicion. Ver especificaciones de dise~no en la subseccion resultados experimentales. */ #include "r1llib.h" #include <stdio.h> #include <math.h> #include <assert.h> #include <alloc.h> #include <conio.h>

8.7 Control No Lineal de un Servosistema


const float ESCALA= 2.*M_PI/(512.*19.7); /* Declaracion de las funciones propias del programa */ void Inicializa_Sistema(); void Mide_Variables(float *yk, float *x2k, float *r, float t); float Aplica_Control(float u, float ykp); /* Declaracion de las variables globales */ float y, yp, x2, x2p, r; float rp, rpp, rppp; float drp, drpp, drppp; float T, k; float t, tsimul; float Fs; int p0, pk; float bL, bm, Lo, Ro, g, E, R, m, Kact, Mo, K, n, B; float Jeff, Jm, JL, M, N, TN, upar, K1, K2; float VcFC, VcFE, Wth, Ofst; float up; /*************** FUNCIONES ******/ float Aplica_Control(float u) { float v; float ykp if(u<0.) v = -VcFC; else if(u>0.) v = VcFC; if(u+v<-1.5) u = -1.5; else if(u+v>1.4) u = 1.4; EnviarVoltage(u+v+Ofst); return u; } void Inicializa_Sistema() { VcFC = .15; Ofst = 2.3; Fs = 20.; T = 1./Fs; tsimul= 100.; /* Parametros del proceso no lineal */ Lo = 0.776; Ro = 0.01; g = 9.81; Mo = 0.0; m = 0.06377; R = 7.38; E = 31.035e-3; Kact = 14.9; K = 31.071e-3; bm = 1.8338e-6; bL = 1e-5; n = 19.741; B = (n*n)*bm+bL; Jm = 1.9062e-6; Jeff = n*n*Jm+JL; K1 = 28.2843; K2 = 300; M = Jeff+(1/3)*m*Lo*Lo + Mo*Lo*Lo + (2/5)*Mo*Ro*Ro;

441

442
N = g*Lo*(Mo + m/2); /* Inicializacion de variables */ yp =0.; x2p = 0.; rp =0.; rpp = 0.; rppp = 0.; drp =0.; drpp = 0.; drppp = 0.; up =0.;

Control No Lineal

ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs); EnviarVoltage(Ofst); p0= LeerPosicion(); } void Mide_Variables(float *y, float *x2, float *r, float t ) { /* En primer lugar, la referencia: r = r(t)*/ *r = - 2*exp(-2*k*T) - 2*cos(2*k*T)+2; /* Ahora leo la posicion */ pk = LeerPosicion(); *y = yp + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA; p0 = pk; /* Actualizamos los estados */ yp =* y; x2p =* x2; } void main() { int ant=0, act=0, k, nd; FILE *out; float *yb, x2, y; float *ub, *rb, u, r; float yp, x2p; float ddr, dr; Inicializa_Sistema(); clrscr(); assert(tsimul<120); nd = (int)tsimul/T; t = 0.; assert(NULL!=(ub= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(yb= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(rb= (float *)calloc(n/5,sizeof(float)))); for(k=0; k<nd;) { act = NivelClock();

8.7 Control No Lineal de un Servosistema

443

if ((ant == 0)&&(act == 1)) { Mide_Variables(&y, &x2, &r, t); upar = (ddr+K1*dr+K2*r-K2*(y)-K1*x2+(B*R+n*n*K*E)/ (M*R)*x2+(N/M)*sin(y)); u = (M*R/(Kact*n*K))*upar; up = u; u = Aplica_Control(u); if(!(k%5)) { yb[k/5] = y*180./M_PI; rb[k/5] = r*180./M_PI; ub[k/5] = u; } k++; t += T; gotoxy(15,5); printf("****************************************"); gotoxy(18,7); printf("Control no lineal de un servomotor D.C."); gotoxy(15,9); printf("****************************************"); gotoxy(21,11);printf("tiempo : t=%+5.3f",t); gotoxy(21,13);printf("referencia : r=%+5.3f",r*180./M_PI); gotoxy(21,15);printf("se~nal de control: u=%+5.3f",u); gotoxy(21,17);printf("posicion : y=%+5.3f",y*180./M_PI); gotoxy(15,21);printf("****************************************"); if(kbhit()) if(getch()==27) break; } ant = act; } EnviarVoltage(Ofst); out = fopen("disnl.out","wt"); for (int i=0; i<n/5; i++) fprintf(out,"%10f %10f %10f %10f\n", i*5*T, rb[i], yb[i], ub[i]); delete rb, yb, ub; fclose(out); }

8.7.11.

Resultados Experimentales

La gura 8.10 muestra el resultado experimental obtenido con el sistema de control de posici on no lineal. La trayectoria de referencia posee la forma: r(t) = 3e2t + 2sen(2t) + 2

444

Control No Lineal

Los polos del sistema lineal equivalente se ubicaron en p1 = 10 2 10i y on caracter stica correspondiente a tales polos p2 = 10 2 + 10i. La ecuaci es: s2 + 28,2843s + 300 = 0 de donde obtenemos: K1 = 28,2843 y K2 = 300. Podemos observar en la gura 8.10 que la respuesta presenta sobreimpulso nulo, tiempo de estabilizaci on menor que 0.4 s y error en estado estable nulo.
300 Posicin (grados) 200 100 0 100 0

0.5

1.5

2 2.5 3 Tiempo en segundos

3.5

4.5

1.5 Seal de control (voltios) 1 0.5 0 0.5 1 0 0.5 1 1.5 2 2.5 3 Tiempo en segundos 3.5 4 4.5 5

Figura 8.10: Resultado experimental del sistema de control de posici on no lineal para el servomotor D.C. accionando una carga no lineal.

8.8.

Problemas Resueltos

En la secci on problemas resueltos de los cap tulos 4 al 8, la soluci on a los problemas se encuentra, seg un el caso, en uno o m as archivos con extensi on m escritos en c odigo MATLAB. Problema 8.1 El proceso p endulo no lineal mostrado en la gura 2.3, cuyo modelo se describe en el ejemplo 2.2, puede rotar libremente alrededor del pivote gracias a

8.8 Problemas Resueltos

445

la acci on de un torque externo U . En dicha gura Bp =1.3366 N-m/rad/s es la fricci on viscosa rotacional en el punto pivote, Lo =1.6350 m es la longitud de la varilla de peso despreciable, Mo =0.5 kg es la masa de la esfera y g =9.81 on de la gravedad. La salida de inter es es la posici on anm/s2 es la aceleraci gular del p endulo. Para la situaci on mostrada en la gura 2.3(a), dise nar un sistema de control no lineal empleando el m etodo de linealizaci on por realimentaci on. Los eigenvalores del sistema lineal equivalente realimentado deben estar ubicados en 8 8i. Soluci on: El proceso en estudio es univariable; es decir, una sola entrada U actuando sobre el proceso y una sola salida: la posici on angular. En la gura 2.3(a) el torque resultante alrededor del pivote es: U = Mo L2 o + Bp + Mo gLo sen (8.65)

que es una ecuaci on no lineal debido al t ermino sen. Seleccionando como y como salida Y = X1 , se obtiene: variables de estado X1 = , X2 = 1 = X2 X 2 = g senX1 Bp X2 + 1 U X Lo Mo L2 Mo L2 o o Y = X1 = h = f, donde: cuya representaci on compacta resulta: X X= X1 X2 ; f= f1 f2 =
g L senX1 o

Bp x2 Mo L2 o

X2

1 U Mo L2 o

La ecuaci on anterior posee una forma normal. Por consiguiente, empleando la siguiente ley de control: U = BX2 + M LgsenX1 + M L2 V 2 = V . Deniendo e = r X1 , donde r es una trayectoria de obtenemos X referencia y seleccionando la se nal V como: 2 V =r + K1 e + K2 e = X entonces la ecuaci on del sistema lineal equivalente realimentado resulta: + K2 e = 0; e + K1 e (s2 + K1 s + K2 )e(s) = 0

446

Control No Lineal

Si las ra ces del sistema realimentado son s1,2 = 8 8i, entonces: (s + 8 + 8i)(s + 8 8i) = s2 + 16s + 128; La se nal V viene a ser: + K2 r K1 X1 K2 X2 ; V =r + K1 r La ley de control toma la forma siguiente: r + K1 r + K2 r) M L2 (K2 X1 + K2 X2 ) u = BX2 + M LgsenX1 + M L2 ( El programa p8 1.m simula el sistema de control no lineal y los resultados se muestran en la gura 8.11.
% p8_1.m SOLUCION DEL PROBLEMA 8.1 (PENDULO NO LINEAL) clear all % PARAMETROS DEL PROCESO Bp=1.3366; Lo=1.6350; Mo=0.5; g=9.81; % POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5 pol = conv([1 8+8i],[1 8-8i]); % POLINOMIO CARACTERISTICO K1 = pol(2); K2 = pol(3); % CONDICIONES INICIALES: r(1) =0; r(2)=0; r(3)=0; r(4)=0; dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0; ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0; X1(1) =0; X1(2)=0; X1(3)=0; X1(4)=0; X2(1) =0; X2(2)=0; X2(3)=0; X2(4)=0; MM=1000; T = 0.01; % LAZO DE CONTROL for k=4:MM r(k) = 2*sin(0.8*k*T); % trayectoria de referencia % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T); ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T); U(k) = Bp*X2(k)+Mo*Lo*g*sin(X1(k))+Mo*Lo^2*(ddr(k)+K1*dr(k)... +K2*r(k)-K2*X1(k)-K1*X2(k)); % PROCESO NO LINEAL DE ORDEN 2 DICRETIZADO X1(k+1) = X1(k) + T*X2(k); X2(k+1) = X2(k) + T*(-(Bp/Mo*Lo^2)*X2(k)-(g/Lo)*sin(X1(k))... +(1/Mo*Lo^2)*U(k)); end % fin del lazo de control % GRAFICOS ejex = linspace(0,MM*T,MM-3);

K1 = 16;

K2 = 128

Y = X1 =

8.8 Problemas Resueltos


subplot(2,1,1) plot(ejex,r(4:MM),ejex,X1(4:MM)); grid ylabel(Posicion (radianes)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,U(4:MM)); grid ylabel(Se~nal de control (N)) xlabel(Tiempo en segundos) print -f -deps p8_1 % CREA EL ARCHIVO p8_1.eps
4 Posicin (radianes) 2 0 2 4 0

447

4 5 6 Tiempo en segundos

10

400 Seal de control (N) 200 0 200 400 600 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Figura 8.11: Trayectoria de posici on del p endulo (problema de seguimiento) y se nal de control correspondiente al problema 8.1 Problema 8.2 La gura 2.2 muestra dos tanques id enticos colocados en cascada. La secci on 2 horizontal A=9 m de cada tanque es constante. El objetivo de control es controlar la altura H2 empleando el ujo Qo como se nal de control. Dise nar el sistema de control no lineal empleando el m etodo de linealizaci on por realimentaci on. El ujo de control no debe sobrepasar los 5 m3 /s y el tiempo de estabilizaci on de la salida debe ser menor que 20 s con error en estado estable pr acticamente nulo. Seleccionar apropiados tiempo de muestreo y eigenvalores del sistema realimentado.

448

Control No Lineal

Soluci on: En el ejemplo 2.1 se deriv o el modelo no lineal del proceso con =0.4 (una constante que depende de la geometr a del oricio), =1.23 2 on de la gravedad), (la densidad del l quido) y g =9.81 m/s (la aceleraci resultando: = f + gU ; H Y = h(H) = H2 ; U = Qo

donde: f = [f1 f2 ]T , g = [g1 g2 ]T , siendo: g g [ H1 H1 ; f2 = f1 = A A Operando con c = g/A obtenemos: h(H) = H2 ;

H2 ];

g1 =

1 ; A

g2 = 0

Lf h(H) = (H)f = f2 c =0 2A H1

Lg Lf h(H) = (f2 ) g =

Luego, el sistema es completamente linealizable dado que su grado relativo es dos. Seguimos operando: c2 H1 2 2 Lf h(H) = (Lf h(H)) f = f2 f = 2 H2 c2 4A H1 H2 1 El nuevo conjunto de variables de estado resulta:
2 Lg L2 f h(H) = (Lf h(H)) g =

z1 = 1 (H) = h(H) = H2 ;

z2 = 2 (H) = Lf h(H) = c H1 c z2 2 + z1 ) c

H2

Los estados originales en funci on de los nuevos estados vienen a ser:


1 H2 = 1 (z) = z1 ; 1 H1 = 2 (z) = (

y la ecuaci on de estado del nuevo sistema resulta: z 1 = z2


1 2 1 1 1 z2 = L2 f h( (z)) + Lg Lf h( (z)) = b( (z)) + a( (z))U

donde: b(1 (z)) = c2 2 cz2 1 ; z1 a(1 (z)) = c2 4A z1 (z2 /c + z1 )

8.8 Problemas Resueltos Deniendo una se nal equivalente V con Y = H2 : =r + K2 e; V =Y + K1 e e=rY

449

se da lugar a la siguiente ecuaci on caracter stica del sistema linealizado realimentado: e + K1 e + K2 e = 0 Si las ra ces deseadas del sistema son s1,2 = 0,6, entonces: (s + 0,6)(s + 0,6) = s2 + 1,25s + 0,39; K1 = 1,25; K2 = 0,39

= z1 = z2 , toma la forma nal: La se nal V , con Y = H2 = z1 e Y V =r + K1 r + K2 r K2 z1 K1 z2


1 y la ley de control resulta: U = a (V b). El programa p8 2p9.m simula el sistema de control no lineal. Los resultados se muestran en la gura 8.12.

% p8_2p9.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL % PARA EL PROCESO HIDRAULICO (PROBLEMA 8_2) clear all % PARAMETROS DEL PROCESO NO LINEAL A=9; gamma=0.4; rho=1.23; g=9.81; c=gamma*sqrt(rho*g)/A; % POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -8-8i y -8+8i pol = conv([1 0.6],[1 0.65]); % POLINOMIO CARACTERISTICO K1 = pol(2); K2 = pol(3);% K1=K2=0.6; T=0.01-0.07 Ts=20 % CONDICIONES Y PARAMETROS INICIALES r(1) =0; r(2)=0; r(3)=0; r(4)=0; dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0; ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0; H1(4)=2; H2(4)=2; MM=1000; T = 0.05; % LAZO DE CONTROL for k=4:MM r(k) = 3; % TRAYECTORIA DE REFERENCIA % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T); ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T); % CONVERSION DE ESTADOS z1(k)=H2(k); z2(k)=c*(sqrt(H1(k))-sqrt(H2(k)) ); % LEY DE CONTROL V(k) = ddr(k) + K1*dr(k) + K2*r(k) - K2*z1(k) - K1*z2(k);

450

Control No Lineal

b(k) = (c^2/2)*( c*z2(k)/sqrt(z1(k))-1 ); a(k) = c^2/( 4*A*sqrt(z1(k))*(z2(k)/c+sqrt(z1(k)) ) ); U(k) = (V(k)-b(k))/a(k); Q=5; if(U(k) > Q) U(k)=Q; elseif(U(k) < -Q) U(k)=Q; end % PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO H1(k+1) = H1(k) + T*(-c*sqrt(H1(k)) + (1/A)*U(k)); H2(k+1) = H2(k) + T*(c*sqrt(H1(k)) - c*sqrt(H2(k)) ); end % fin del lazo de control % GRAFICOS ejex = linspace(0,MM*T,MM-3); subplot(2,1,1) plot(ejex,r(4:MM),ejex,H2(4:MM)), grid ylabel(Nivel (m)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,U(4:MM)), grid ylabel(Flujo de control (m^3/s)) xlabel(Tiempo en segundos) print -f -deps p8_2p9 % crea p8_2p9.eps

Problema 8.3 Determinar si es posible una linealizaci on exacta de los procesos p endulo invertido no lineal y gr ua-puente descritos en las secciones 3.1 y 3.2 respectivamente. Se sabe que la salida es la posici on x3 . Soluci on: La ecuaci on de estado que describe al p endulo no lineal es: x 1 x 2 = x 3 x 4
M2 (sin x1 )(cos x1 )x2 2 Bx (cos x1 )x4 (M1 +J2 )g (sin x1 )+Kx (cos x1 )KA u (M2 (cos2 x1 )(M1 +J2 )J1 )/M2

x2

x4 2 g (sin x )(cos x )J M (sin x )x2 +J B x J K K u M2 1 1 1 2 1 2 1 x 4 1 x A 2 (cos2 x )(M +J )J M2 1 1 2 1

De la ecuaci on anterior de orden n=4 es f acil deducir las expresiones de las funciones vectoriales f (x) y g(x). Un proceso es exactamente linealizable

8.9 Problemas Propuestos


3.5

451

Nivel (m)

2.5

2 0

10

15

20 25 30 Tiempo en segundos

35

40

45

50

5 Flujo de control (m^3/s)

5 0

10

15

20 25 30 Tiempo en segundos

35

40

45

50

Figura 8.12: Nivel de salida y ujo de control para el problema 8.2. si su grado relativo es igual al orden del proceso. Empleando el criterio de grado relativo en el proceso p endulo obtenemos: h(x) = x4 Lf h(x) = h(x) f = f4 (x) Lg Lf h(x) = f4 (x) g(x) = 0 Luego, el grado relativo resulta r = 2, que es menor que el orden del proceso: n = 4. Por consiguiente, el proceso p endulo invertido no es exactamente linealizable. Lo mismo podemos aseverar para el proceso gr ua-puente.

8.9.

Problemas Propuestos

Problema 8.4 La gura 3.30 muestra el proceso servomotor con carga no lineal descrito en la secci on 3.3, en donde el eje de salida del mecanismo de reducci on est a sujeto a la carga no lineal mediante una junta exible que puede ser modelada como un resorte rotacional de constante K =0.5 N/m/s. Dise nar un sistema

452

Control No Lineal

de control no lineal que emplee el m etodo de linealizaci on por realimentaci on para controlar la posici on angular de la carga no lineal. Las especicaciones de dise no son: error en estado estacionario nulo y tiempo de establecimiento menor que 1 s para una se nal de referencia arbitraria. Seleccionar el tiempo de muestreo y los eigenvalores apropiados del sistema lineal equivalente realimentado. Considere dos casos: (a) cuando la inductancia de armadura es despreciable, y (b) cuando no lo es Problema 8.5 Demostrar las propiedades de bilinealidad, anticonmutatividad y de Jacobi establecidas en el lema 8.1 y luego demostrar el teorema 8.2. Problema 8.6 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la secci on 3.3, en donde la carga no lineal posee ahora dos grados de on de la carga con el eje libertad con Lo = 2L1 /3 y Mo =0.02 kg. La uni del servomotor no es exible. Las ecuaciones que describen la din amica del sistema son materia del problema 3.12. Determinar si el proceso descrito es completamente linealizable. Si lo es, dise nar un sistema de control no lineal con linealizaci on de la realimentaci on para controlar simult aneamente las posiciones y con m nimo tiempo de estabilizaci on y m nimo sobreimpulso. Considerar dos casos: (a) cuando la inductancia de armadura es despreciable, y (b) cuando no lo es.

Bibliograf a
[1] Omar A. Tupayachi-Calder on, Control No Lineal de Servosistemas. Aplicaci on: Manipulador de Robot de un Grado de Libertad. Tesis para optar el T tulo de Ingeniero Electr onico, Facultad de Ingenier a El ectrica y Electr onica de la Universidad Nacional de Ingenier a, Per u, 1995-I, Cap tulo III. [2] Alexander L. Ponce-Dioses , Control de Servo Sistemas No Lineales Usando Redes Neuronales. Tesis para optar el T tulo de Ingeniero Electr onico, Facultad de Ingenier a El ectrica y Electr onica de la Universidad Nacional de Ingenier a, Per u, 1996-II, Cap tulo VI. [3] Katsuhiko Ogata, Sistemas de Control en Tiempo Discreto. Prentice Hall Hispanoamericana S.A., M exico, segunda edici on, 1996 [4] Charles L. Phillips y H. Troy Nagle, Digital Control System Analysis and Design. Prentice Hall, Englewood Clis, New Jersey, segunda edici on, 1990 [5] N. Rao Sripada y D. Grant Fisher, Improved Least Squares Identication. Int. J. Control, vol. 46, no. 6, pp. 18891913, Dic. 1987. [6] M. G. Sofonov, Stability and Robustness of Multivariable Feedback Systems. MA, London, UK: The MIT Press Cambridge, 1980. [7] R. De Keyser, A Gentle Introduction to Model Based Predictive Control. In PADI2 International Conference on Control Engineering and Signal Processing, Piura, Per u, 1998. [8] Eduardo F. Camacho y Carlos Bordons, Model Predictive Control. Springer-Verlag London Limited 1999.

454

BIBLIOGRAF IA

[9] Manfred Morari y Evanghelos Zariou, Robust Process Control. PTR Prentice Hall, Englewood Clis, New Jersey 07632, 1989. [10] R. Canales Ruiz y R. Barrera Rivera, An alisis de Sistemas Din amicos y Control Autom atico. Editorial Limusa, M exico, 1977. [11] A. Rojas-Moreno, Design of Self-tuning Controllers for Processes Having Multiple Unknown Time-varying Delays, Ph.D. Thesis, Utah State University, Logan, UT, 1995. [12] Rolf Isermann, Digital Control Systems, Volume 1, Springer-Verlag, segunda edici on, Germany, 1989 [13] Jean-Jacques E. Slotine y Weiping Li, Applied Nonlinear Control, Prentice Hall, Englewood Clis, New Jersey 07632, 1991. [14] Alan V. Oppenheim y Alan S. Willsky, Se nales y Sistemas PrenticeHall Hispanoamericana, S.A., M exico-Englewood Clis-Londres-Sidney y otras, 1983. [15] Gene H. Hostetter, Digital Control System Design, Holt, Rinehart and Winston, Inc., New York, Chicago, San Francisco, Philadelphia, Montreal, Toronto, London, Sydney, Tokyo, 1988. [16] William H. Press, Brian P. Flannery y Saul A. Teukolosky, Numerical Recipes in C, Cambridge University Press, Cambridge, 1988. [17] Bernard Friedland, Control System Design. An Introduction to StateSpace Methods, McGraw-Hill, Inc., New York St. Louis y otras, 1986. [18] Murray R. Spiegel, An alisis Vectorial, serie de compendios Schaum, McGraw-Hill M exico Panam a Bogot a y otras, 1973 (o ediciones m as recientes). [19] Murray R. Spiegel, C alculo Superior, serie de compendios Schaum, McGraw-Hill M exico Panam a Bogot a y otras, 1973 (o ediciones m as recientes). [20] Donald M. Wiberg, Espacio de Estado y Sistemas Lineales, serie de compendios Schaum, McGraw-Hill M exico Panam a Bogot a y otras, 1973 (o ediciones m as recientes).

BIBLIOGRAF IA

455

[21] Frank Ayres Jr., Matrices, serie de compendios Schaum, McGraw-Hill M exico Panam a Bogot a y otras, 1973 (o ediciones m as recientes). [22] Murray R. Spiegel, Transformada de Laplace, serie de compendios Schaum, McGraw-Hill M exico Panam a Bogot a y otras, 1973 (o ediciones m as recientes). [23] MathWorks, Inc., MATLAB Reference Guide, Prentice Hall, Englewood Clis, New Jersey, primera edici on, 1998. [24] MathWorks, Inc., SIMULINK Users Guide, Prentice Hall, Englewood Clis, New Jersey, primera edici on, 1996. [25] Lab-PC+ User Manual, National Instruments Corporation, Part Number 320502B-01, edici on de agosto de 1994.

Indice alfab etico


Actuador, 231 Amplicador de potencia, 160 Campo vectorial suave, 408 Campos vectoriales integrables, 412 involutivos, 413 CMI: control con modelo interno, 351 Codicador o ptico, 159 codicador o ptico, 235 Control o ptimo concepto, 126 Control o ptimo cuadr atico, 126 de la gr ua puente, 181 del p endulo invertido, 147 discreto, 126 estacionario, 129 no estacionario, 127 Control adaptivo de un servomotor no lineal, 224 Control con modelo interno estructura del, 351 estructuras alternativas del, 353 incertidumbres del modelo en el, 355 modelo del proceso en el, 355 representaciones del, 351 Control matricial din amico, 286 Control no lineal de un servosistema de posici on, 424 Control predictivo del servomotor no lineal, 306 disturbio del proceso en el, 289 ley de control con restricciones del, 304 ley de control del, 303 modelo CARIMA del, 290 modelo del predictor en el, 292 modelo del proceso del, 289 modelo paralelo en el, 292 modelo serie/paralelo en el, 293 predicci on del disturbio en el, 294 salida del modelo en el, 290 Control predictivo basado en modelos, 285 principios del, 286 Control predictivo:respuesta forzada del, 300 Control predictivo:respuesta libre del, 299 Control robusto para procesos estables, 358 para procesos inestables, 370 Control robusto de un servomotor no lineal, 376 Controlabilidad, 66 H (z ), 372 Controlador o ptimo H2 : q

INDICE ALFABETICO Controlador o ptimo cuadr atico proporcional, 221 proporcional integral, 223 Controlador o ptimo cuadr atico H2 : q H (z ), 360 para entradas t picas, 361 Controlador CMI q (z ), 362, 373 Controlador predictivo, 298 funci on de costo del, 298 objetivo del, 298 par ametros de dise no del, 298 Corchete de Lie, 409 Corchetes de Lie propiedades de los, 410 Denici on de Matrices, 21 Denici on de matrices, 21 Derivada de Lie, 408 Determinante, 5 de una matriz, 5 propiedades, 6 Diagonalizaci on de matrices, 19 Difeomorsmo, 410 local, 410 Discretizaci on directa, 43 Ecuaci on caracter stica, 34 Ecuaci on de Riccati, 128, 129 Ecuaci on de salida, 33, 58 Ecuaci on de transferencia, 34 Ecuaci on del observador no lineal, 422 Eigenvalor, 19 Eigenvector, 19 Espacio de estado discreto, 55 Estabilidad interna, 351 Estabilidad Robusta, 364 Estabilidad robusta, 374 Estado, 33 ecuaci on de, 33, 58 espacio de, 33, 55 variables de, 33 vector de, 33 Estimaci on de estados, 221

457

Filtro de Kalman, 221 Filtro discreto CMI, 363, 374 Forma bilineal, 21 Forma can onica, 60 controlable, 60 de Jordan, 62 diagonal, 61 observable, 61 Forma can onica de Jordan, 20 Forma cuadr atica, 20 Forma normal, 416 Frobenius teorema de, 413 Funci on de costo, 126 cuadr atica discreta, 127 m nima, 129 Funci on de transferencia de pulso, 53 Gr ua-puente, 79 modelo, 79 Grado relativo, 415 Hardware del sistema de control, 155, 314, 377, 443 Independencia de vectores, 16 Interfaz Lab-PC+, 161, 236 Jacobiano, 15 Ley de control o ptima, 127, 140 Ley de control no lineal, 417 Linealizaci on de procesos, 33

458 Linealizaci on exacta, 417 condiciones para, 420 Linealizaci on por realimentaci on, 407 M nimos cuadrados recursivo algoritmo, 211 m etodo de los, 210 m etodo mejorado de los, 213 mejorado, algoritmo, 213 Matrices, 3 de ponderaci on, 132 diagonalizaci on de, 19 iguales, 3 jacobianas, 34 lema de inversi on de, 7 multiplicaci on de, 3 que conmutan, 3 similares, 19 suma de, 3 Matriz, 1 antihermitiana, 5 antisim etrica, 5 cero, 3 cuadrada, 4 de control, 34 de disturbios, 34 de estado, 34 de observabilidad generalizada, 420 de salida, 34 de transferencia, 34 denida negativa, 21 denida positiva, 21 derivada de una, 14 diagonal, 4 eigenvalor de una, 19 eigenvector de una, 19 forma can onica de Jordan, 20

INDICE ALFABETICO hermitiana, 5 identidad, 5 indenida, 21 integral de una, 14 inversa de una, 6 nilpotente, 5 norma de una, 18 normal, 5 orden de una, 1 ortogonal, 5 peri odica, 5 rango de una, 18 semidenida negativa, 21 semidenida positiva, 21 sim etrica, 5 singular, 5 transpuesta, 4 traza de una, 4 triangular inferior, 4 triangular superior, 4 unitaria, 5 Modelando procesos no lineales, 209 Modelo CARIMA, 290 Muestreo y reconstrucci on, 40 Nomenclatura, 1 Observabilidad, 68 Observador o ptimo cuadr atico, 138 Observadores no lineales, 420 Operaci on con vectores, 16 Operaciones con matrices, 3 P endulo invertido, 71 control o ptimo del, 147 modelo, 72 Plano de fase, 33 Predictor, 292 Preltro

INDICE ALFABETICO dise no del, 359 Proceso estable e inestable, 35 Proceso multivariable, 33 Proceso univariable, 34 Procesos con tiempo muerto, 65 Puntos de equilibrio, 33 Regulador o ptimo cuadr atico proporcional, 131 proporcional integral, 141 Rendimiento nominal, 359, 372 Rendimiento robusto, 365, 375 Respuestas libres y forzadas, 299 Retenci on de orden cero, 43 Sensor(es) de posici on, 158, 235 Servomotor DC no lineal, 86 modelo, 86 Sistema causal y estrictamente causal, 355 Sistema de control adaptivo, 208 con autosintonizaci on, 208 Software de control, 162, 237, 314, 378, 443 Soluci on de la ecuaci on de estado, 55, 58 Teorema del muestreo, 42 Tipo de sistemas, 359 Tipos de matrices, 4 Transformaci on no lineal de estados, 411 Transformada de Laplace, 27 f ormulas notables, 27 inversa, 27 propiedades, 27 Transformada Z, 47 de secuencias, 49 denici on, 47 f ormulas notables, 50 inversa, 51 propiedades, 48 Valor absoluto, 8 Variables residuales, 34 Vector, 2 de informaci on, 210 de par ametros, 210 derivada de un, 15 integral de un, 15 norma de un, 17 Vectores, 16 independencia de, 16 operaci on con, 16 ortonormales, 16

459

También podría gustarte