Download [-] Control Avanzado, Diseño y Aplicaciones en Tiempo Real - Arturo Rojas Moreno...
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 c 2001 Arturo Rojas-Moreno. Reservados todos los derechos. Copyright ISBN 9972–9318–0–3 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
III
Prefacio
XI
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 .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
1 1 1 5 14 15 15 18 19 20 26
. . . . . . . . . .
29 29 31 31 38 38 45 49 51 53 64
´ INDICE GENERAL
VI
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. Identificaci´ 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 . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
69 69 70 72 74 75 76 77 77 79 79 80 80 81 81 84 84 86 87 89 90 91 116
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
123 123 125 127 128 130 136 139 145 145 145 146 147 149
´ 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.
´ INDICE GENERAL
VII
´ 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 . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
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
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 .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
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
´ 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
. . . . . .
8. Control No Lineal 8.1. Herramientas Matem´aticas . . . . . . . . . . . . . . 8.1.1. Derivadas y Corchetes de Lie . . . . . . . . . 8.1.2. Difeomorfismo 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 . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
374 375 376 380 380 399
. . . . . . . . . . . . . . . . . . . . . . . .
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
.
Bibliograf´ıa
453
.
´ Indice alfab´ etico
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://fiee.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´ıficamente, 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:/fiee.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´ afico, 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.
Prefacio
XIV
Pre-requisitos y Configuraci´ 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 financiada 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.
[email protected] [email protected] http://fiee.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://fiee.uni.edu.pe/728681F.
1.1.
C´ alculo Matricial
1.1.1.
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 filas y m columnas. Es decir: a11 . . . a1m .. ; i = 1, . . . , n; j = 1, . . . , m A = [aij ] = ... . an1 . . . anm
2
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 fila. 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 fila 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(s) = G(s)u(s)
y(k) = g(k) ∗ u(k);
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. ¯ ¯ Por ejemplo, los estados de equilibrio de A(k) e Y(k) son A(k) e Y(k) respectivamente. En muy contados casos, la barra sobre una variable tiene el significado 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: ¯ y(k) = Y(k) − Y(k)
1.1 C´ alculo Matricial
3
Las formas estimadas de A(.), x(.) e Y(.) (para cualquier argumento) se ˆ ˆ ˆ (.) e Y(.), representan como A(.), x respectivamente. 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 filas 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: cij =
m
aik bkj ;
i = 1, 2, . . . , n; j = 1, 2, . . . , m
k=1
Por ejemplo:
a11 a12 a13 a21 a22 a23
b11 b + a b + a b a c 11 11 11 12 21 13 31 b21 = = c21 a21 b11 + a22 b21 + a23 b31 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
4
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 filas 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;
(A + B)H = AH + B H ;
(AB)H = B H AH
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 define 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.
1.1 C´ alculo Matricial
5
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:
AT = A AT = −A
A es ortogonal si:
AAT = AT A = I
A es peri´odica si:
Aκ+1 = A;
A es nilpotente si: A es hermitiana si: A es antihermitiana si: A es unitaria si: A es normal si: A−1 es inversa de A si: A es singular si:
κ
A = 0;
κ es un entero positivo κ es un entero positivo
T ∗
(A ) = (A∗ )T = AH = A AH = −A AAH = AH A = I AAH = AH A AA−1 = A−1 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 como la suma de una matriz hermitiana B = 12 (A + AH ) m´as una matriz antihermitiana C = 12 (A − AH ). 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:
a11 a12 = a11 a22 − a12 a21 det a21 a22
(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 fila, el determinante de una matriz A se obtiene de: det(A) =
n j=1
(−1)1+j a1j det(A1j ) = (−1)1+1 a11 det(A11 ) + (−1)1+2 a12 det(A12 ) + · · ·
6
Matem´ atica Asistida con Computadora
donde A1j , j = 1, . . . , n es la matriz que resulta luego de eliminar la fila 1 y la columna j de A. Por ejemplo, el determinante de una matriz de orden n = 3 se calcula como:
a11 a12 a13 a a 22 23 1+1 + det a21 a22 a23 = (−1) a11 det a32 a33 a31 a32 a33
a21 a23 a21 a22 1+2 1+3 + (−1) a13 det (1.3) (−1) a12 det a31 a33 a31 a32 Con relaci´ on a dos matrices cuadradas A y B de orden n: 1. Si cada elemento de una fila o columna de A es cero, det(A) = 0. 2. det(A) = det(AT ). 3. Si κ multiplica una fila o columna de A, entonces el det(A) queda multiplicado por κ. 4. Si B se obtiene intercambiando dos filas o columnas de A, entonces det(B) = −det(A). 5. Si dos filas o columnas de A son iguales, entonces det(A) = 0. 6. Si sumamos un m´ ultiplo de una fila o columna de A a cualquiera de sus filas 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 A−1 ; ((A∗ )T )−1 = ((A−1 )∗ )T ;
(AT )−1 = (A−1 )T det(A−1 ) =
1 det(A)
Si A es una matriz no singular de orden 2, vale recordar que:
1 d −b a b −1 A= ; A = c d ad − bc −c a
(1.4)
1.1 C´ alculo Matricial
7
Si A es una matriz no singular de orden 3:
a b A= d e g h A−1
1 = det(A)
e det h
d −det g d det g
f i f i e h
c f i
b −det h
a det g a −det g
c i c i b h
b det e
a −det d a det 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 = A−1 − A−1 B(D−1 + CA−1 B)−1 CA−1
(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)[A−1 − A−1 B(D−1 + CA−1 B)−1 CA−1 ] = I +BDCA−1 −B(D−1 +CA−1 B)−1 CA−1 −BDCA−1 B(D−1 +CA−1 B)−1 CA−1 = I + BDCA−1 − (BDD−1 + BDCA−1 B)(D−1 + CA−1 B)−1 CA−1 = I + BDCA−1 − BD(D−1 + CA−1 B)(D−1 + CA−1 B)−1 CA−1 = I + BDCA−1 − BDCA−1 = 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 ;
m[g] = gi ;
g = e[g] + jm[g] = |g|∠g
m[g] 2 2 ∠g = arctan |g| = (e[g]) + (m[g]) ; e[g]
8
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. 1−j 2−j 3−j −2 3 + 5j A = 4j 6 − j 7 − j 8 + 3j B=
(A∗ + AT − 0,7jA3 )A−1 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
9
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
A+B A−B AB κA; κ: complejo A∗ AT AT AH An det(A) A−1
|A| ∠A [A] [A]
n i=1 aii
In
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)
10
Matem´ atica Asistida con Computadora
Soluci´ on: Las matrices pedidas son: 1 B = (A + AH ); 2
1 C = (A − AH ) 2
y se puede comprobar que B = B H y C = −C H . Ver programa ejem1 2.m. % 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
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 filas 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
11 A22*B23+A23*B33+A21*B13 A32*B23+A33*B33+A31*B13 A42*B23+A43*B33+A41*B13];
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 + Bv; dt
dy = Cy + Dw dt
Soluci´ on: Las matrices A con C y B con D forman matrices aumentadas como sigue:
dx
A 0 x B 0 v dt = + dy 0 C y 0 D w dt Ejemplo 1.5 Si los λi son los eigenvalores de la matriz A de orden n, comprobar num´ericamente 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 definiendo:
A B A 0 A B E= ; G= ; H= 0 D C D 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 − CA−1 B) = det(D)det(A − BD−1 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:
−1 −1 −A−1 BD−1 A A B = 0 D−1 0 D −1
A−1 A 0 0 = C D −D−1 CA−1 D−1 Soluci´ on: Ver el programa ejem1 7.m.
1.1 C´ alculo Matricial
13
% 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
Ejemplo 1.8 Demostrar num´ericamente que:
A C
B D
A C
B D
−1 = −1
=
A−1 + A−1 B(D − CA−1 B)−1 CA−1 −(D − CA−1 B)−1 (A − BD−1 C)−1 −1 −D C(A − BD−1 C)−1
−A−1 B(D − CA−1 B)−1 (D − CA−1 B)−1
−(A − BD−1 C)−1 BD−1 −1 D C(A − BD−1 C)−1 BD−1 + D−1
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
Derivada e integral de una matriz A(t) = [aij (t)] de orden n × m:
d A(t) = dt
d dt a11 (t)
···
d dt an1 (t)
···
.. .
d dt a1m (t)
.. .
;
d dt anm (t)
A(t) =
a11 (t) .. .
···
an1 (t) · · ·
Derivada e integral de un vector x(t) = [x1 . . . xn ]T : d dt x1 (t) d .. x(t) = x(t) = ; . dt d x (t) n dt
a1m (t) .. . anm (t) (1.7)
x1 (t) .. . xn (t)
(1.8)
Cuando las matrices A y B y el escalar κ son funciones de t, se cumple: 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 = −A−1 dt A
(1.9)
1.2 An´ alisis Vectorial
15
Derivada parcial de una funci´ on escalar J(x) de variable vectorial: ∂2J 2J ∂J ∂2J · · · ∂x∂1 ∂x 2 ∂x ∂x ∂x n 1 2 ∂x1 1 ∂2J ∂J .. .. .. = ... ; = . . . 2 ∂x ∂x ∂J ∂2J ∂2J ∂2J · · · ∂xn ∂xn ∂x1 ∂xn ∂x2 ∂x2
(1.10)
n
Derivada total de una funci´ on escalar V (x(t)) de variable vectorial:
∂V T dx d V (x(t)) = (1.11) dt ∂x dt 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.
An´ alisis Vectorial
1.2.1.
Independencia, Ortonormalidad y Normas
Independencia de Vectores Se dice que los vectores xi , i = 1, . . . , n son linealmente independientes si:
n i=1
ci xi = 0
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
x∗i yi
i=1
xH x =
n
x∗i xi =
i=1
n
|xi |2
i=1
x1 x∗1
x1 x∗2
.. xxH = . . . . xn x∗1 xn x∗2
. . . x1 x∗n .. . . . . xn x∗n
(1.15)
Si x e y son vectores reales de orden n: x T y = yT x =
n
xi yi ;
i=1
x21
xT x =
n
x2i
i=1
x1 x2 .. .
xxT = . . . xn x1 xn x2
. . . x1 xn .. . . . . x2n
(1.16)
Vectores Ortonormales y
Los vectores reales x1 , x2 , . . . son ortonormales si xTi xj = 0 cuando i = j = 0 cuando i = j.
xTi xj
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
17 x = 0 si y s´olo si x = 0 κx = κ x
κ es un escalar
x + y ≤ x + y
Desigualdad triangular:
|xH y| ≤ x y
Desigualdad de Schwarz:
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 definidas como: x =
n
|xi |;
x ∞ = m´ax |xi |;
x −∞ = m´ın |xi |
i
i=1
x p =
n
i
1/p |xi |p
i=1
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 = AT ;
A 2 = m´ax[xH AH Ax], x |λ| ≤ A ,
Ax ≤ A x si xH x = 1
si λ es un eigenvalor de A
Otras normas para una matriz A de orden n son: A =
n n i=1 j=1
|aij |;
1/2 n n A F = |aij |2 i=1 j=1
18
Matem´ atica Asistida con Computadora
A 1 = m´ax
m
j
n A ∞ = m´ax |aij |
|aij | ;
i
i=1
A 2 = m´ax i
1.2.2.
j=1
λi (AH A)
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(B)
rango(AB) = rango(A),
si A y B son no singulares
rango(AB) = rango(B),
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
x≤0
(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
1.2.3.
19
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 independientes, la matriz diagonal J3 cinco y J2 cuatro. Para un problema espec´ıfico, la 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 forma aij x∗i xj . Si A = [aij ] = AH es una matriz hermitiana de orden n y x es un vector complejo de orden n, entonces: H
x Ax =
n n
aij x∗i xj ;
aji = a∗ij
i=1 j=1
Si A = [aij ] = AT es una matriz real y sim´etrica de orden n y x es un vector real de orden n: xT Ax =
n n
aij xi xj ;
aji = aij
i=1 j=1
Formas Bilineales Una forma bilineal es un polinomio real que contiene t´erminos de la forma aij x∗i yj . Si A = [aij ] es una matriz compleja de orden n, y si los vectores complejos x e y son de orden n y m respectivamente, entonces: xH Ay =
m n
aij x∗i yj
i=1 j=1
Si A = [aij ] es real de orden n, y si los vectores reales x e y son de orden n y m respectivamente, entonces: xT Ay =
n m i=1 j=1
aij xi yj
1.2 An´ alisis Vectorial
21
Definici´ on y Semidefinici´ on de Matrices Para una matriz A de orden n, las expresiones A > 0, A ≥ 0, A < 0 y A ≤ 0 denotan que A es definida positiva, semidefinida positiva, definida negativa y semidefinida 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 definida 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 semidefinida 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 definida 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 semidefinida 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 indefinida. 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
C´odigo MATLAB
Producto interno complejo
xH y
x’*y
Producto interno real
xT y
x’*y
Producto por elemento
aij bij
A.*B
Divisi´ on por elemento
aij /bij
A.\B; A./B
Potencia por elemento
)bij
(aij
A.^B
Norma vectorial
A 1 = m´axj m |aij | i=1 A 2 = m´axi λi (AH A) A ∞ = m´axi nj=1 |aij | 1/2 2 |a | A F = ij ij n x p = ( i=1 |xi |p )1/p √ x 2 = xH x
Norma vectorial
x ∞ = m´axi |xi |
norm(x,inf)
Norma vectorial
x −∞ = m´ıni |xi |
norm(x,-inf)
Norma matricial Norma matricial Norma matricial Norma matricial Norma vectorial
Rango
norm(A,1) norm(A,2) norm(A,inf) norm(A,’fro’) norm(x,p) norm(x)
rank(A)
Eigenvalores
λi
eig(A)
Eigenvectores
E = [e1 . . . en ]
[E,D]=eig(A)
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
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
25
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 definici´ on de las matrices siguientes: 2 2 −2 1 A = 2 6 0 ; B= 2 −1 0 2 3
2 4 6
1 2 0
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.3.
La Transformada de Laplace
La transformada de Laplace de una funci´ on g(t) se define como: ∞ g(t)e−st dt (1.21) g(s) = L[g(t)] = 0
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) = L−1 [g(s)] (1.22) Como ejemplo, la transformada de Laplace de la funci´ on g(t) = e−at , donde a es real, se determina como sigue: ∞ ∞ −(s+a)t −e 1 L[e−at ] = e−at e−st dt = = s+a s+a 0 0
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.
Descripci´on
Cuadro 1.3: Transformadas de Laplace g(t) g(s)
Impulso unitario
δ(t)
Escal´on unitario
µ
Rampa unitaria
t
Rampa de orden n
tn
1 s 1 s2
e−at
Exponencial
1
Seno
senωt
Coseno
cosωt
Seno amortiguado
e−at senωt
Coseno amortiguado
e−at cosωt
n! ; sn+1
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 = sg(s) − g(0), g(0) = [g(t)]t=0 Derivaci´ on L dg dtn Derivaci´ on de orden n L ddtng = sn g(s) − sn−1 g(0) − · · · − g n−1 (0) n−1 d g n−1 (0) = dtn−1 g(t) t=0 t g(s) Integral L 0 g(t)dt = s Desplazamiento en tiempo
L[g(t − t0 )µ(t − t0 )] = e−t0 s g(s)
Desplazam. en frecuencia
L[e−at g(t)] = g(s + a)
Valor inicial
l´ımt→0 g(t) = l´ıms→∞ sg(s)
Valor final
l´ımt→∞ g(t) = l´ıms→0 sg(s)
Ejemplo 1.16 La figura 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 coeficiente 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) = 1s . La salida se determina de:
1 −1 1 1 1 −1 −1 = L − v(t) = L [v(s)] = L b s(ms + b) b s s+ m y empleando la tabla 1.3 obtenemos: 1 v(t) = (1 − e−bt/m ) b Ejemplo 1.17 Empleando las propiedades del valor inicial y del valor final, determinar tales valores para la velocidad del m´ ovil del problema anterior. Soluci´ on: El valor inicial se determina de: l´ımt→0 v(t) = l´ıms→∞ sv(s) = 0. El valor final se obtiene de: l´ımt→∞ v(t) = l´ıms→0 sv(s) = 1b .
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://fiee.uni.edu.pe/728681F.
2.1.
Dise˜ no de Sistemas de Control Digital
La figura 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 especificaciones 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 filtraje es u ´til para eliminar las componentes contaminantes de alta frecuencia de la se˜ nal de ruido de medici´on n. El filtro 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
r
e
Muestreador y A/D
Computadora Digital
D/A y Retencion
U
Actuador y Proceso
Y
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 configuraci´ on mostrada en la figura 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 configuraciones. En las aplicaciones descritas en este libro, el dispositivo de procesamiento digital es una computadora personal, los sensores de se˜ nal son decodificadores electr´onicos de pulsos (“encoders”), mientras que el actuador es una combinaci´ on de un servomotor D.C. (de corriente directa) con un amplificador electr´ onico PWM (“Pulse Width Modulation”). El empleo del procesamiento digital permite la realizaci´ on de algoritmos de control sofisticados 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 suficiente 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 especificaciones de dise˜ no).
2.2 Concepto de Estado y Variables de Estado
2.2.
31
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 definir 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 suficiente 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 define 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 ¯ Por tanto, los puntos de equilibrio (X) ¯ se determinan de: U. ¯˙ = f(X, ¯ U) ¯ =0 X
2.2.1.
(2.2)
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: x˙ = Ax + Bu + Ev
32
Sistemas Discretos y = Cx + Du + F w
(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 filas 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=X−X ¯ u=U−U 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
···
∂fn ∂Xn
∂h1 ∂X1
.. .
··· .. .
∂h1 ∂Xn
∂hr ∂X1
···
∂hr ∂Xn
.. .
¯ ¯ (X,U)
D=
¯ ¯ (X,U)
∂fn ∂U1
···
∂fn ∂Um
∂h1 ∂U1
.. .
··· .. .
∂h1 ∂Um
∂hr ∂U1
···
∂hr ∂Um
.. .
¯ ¯ (X,U)
(2.4)
¯ ¯ (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 finito x0 . Ejemplo 2.1 La figura 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 estabilizar (controlar) la altura H2 empleando como fuerza de control el flujo de alimentaci´ on Qo . Determinar el modelo linealizado de este proceso hidr´ aulico. Q
p 0
H1
0
ρ p
Tanque 1
γ
1
p
Q 0
g 1
ρ H2
p
2
Tanque 2
γ Q
2
Figura 2.2: Proceso hidr´ aulico. Soluci´ on: Los flujos de salida Q1 y Q2 de los tanques se pueden modelar
34
Sistemas Discretos
como: Q1 = γ
P1 − P0 ;
Q2 = γ
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 orificio. 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 ;
P2 − P0 = ρgH2
El flujo acumulado en cada tanque es: Q0 − Q1 = A
dH1 ; dt
Q1 − Q2 = A
dH2 dt
Resolviendo las ecuaciones anteriores para las alturas, obtenemos: √ γ ρg 1 H˙ 1 = Q0 − H1 = f1 A A √ γ ρg ˙ [ H1 − H2 ] = f2 H2 = A y su correspondiente ecuaci´on de salida:
H1 Y = [0 1] H2 ¯ 1 , h2 = H2 − H ¯ 2, Definamos 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: √ ¯ 0 − γ ρg H ¯˙ 1 = 1 Q ¯1 = 0 H A A √ ¯1 − H ¯ 2] = 0 ¯˙ 2 = γ ρg [ H H A lo que resulta en: ¯2 ¯ 2 = Q0 ¯1 = H H γ 2 ρg Aplicando el jacobiano, el proceso linealizado resulta: h˙ = P h + B q0 ;
y = h2 = C h
2.2 Concepto de Estado y Variables de Estado donde:
h1 ; h= h2
P =
B=
∂f1 ∂Q0 ∂f2 ∂Q0
∂f1 ∂H1 ∂f2 ∂H1
= ¯0 Q
∂f1 ∂H2 ∂f2 ∂H2
1/A 0
= ¯ 1 ,H ¯2) (H
35
√ γ ρg √ ¯ 2A √ H1 γ ρg √ ¯1 2A H
−
0 −
√ γ ρg √ ¯2 2A H
;
C = [0 1];
D = [0]
Ejemplo 2.2 El proceso p´endulo no lineal mostrado en la figura 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 figura Bp =1.3366 N-m/rad/s es la fricci´ 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 m/s2 es la aceleraci´on de la gravedad. La salida de inter´es es la posici´on angular θ del p´endulo. Para las situaciones mostradas en las figuras 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.
0110 10 1010 1010 10 1010 10
Mo
Bp Θ
U
Lo
U
Φ
Lo
Mo
(a)
Bp (b)
Figura 2.3: P´endulo no lineal en posici´ on de equilibrio estable (figura (a)) y en posici´ on de equilibrio inestable (figura (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 figura 2.3(a). El torque resultante alrededor del pivote es: ¨ + Bp Θ ˙ + Mo gLo senΘ U = Mo L2o Θ
(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 = Θ X˙ 1 = X2 Bp g 1 X2 + U X˙ 2 = − senX1 − 2 Lo Mo Lo Mo L2o Y = X1
(2.8)
cuya representaci´ on compacta (ecuaci´on (2.1) con v = w = 0) resulta: ˙ = f; X donde: X=
X1 X2
;
f=
Y = X1 = h
f1 f2
=
X2
− Lgo senX1 −
Bp x Mo L2o 2
+
1 U Mo L2o
(2.9)
Notar en (2.9) que n = 2, m = 1, r = 1. Empleando (2.2), los estados de equilibrio se obtienen de: ¯2 = 0 ¯˙ 1 = X X ¯ 1 − Bp X ¯2 + 1 U ¯ =0 ¯˙ 2 = − g senX X Lo Mo L2o Mo L2o ¯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 figura 2.3(a) y (π[3π], 0) para la figura 2.3(b). Empleando (2.4), la linealizaci´ on de (2.9) ¯ ¯ ¯ alrededor del estado de equilibrio (X1 , X2 , U ) = (0, 0, 0) resulta: x˙ = Ax + Bu; donde:
A =
B = C =
D =
∂f1 ∂X1 ∂f2 ∂X1
∂f1 ∂U ∂f2 ∂U
(0,0)
0
∂h ∂X2
= [0] 0
=
0
=
∂h ∂X1
∂h ∂U
∂f1 ∂X2 ∂f2 ∂X2
y = Cx + Du
1 Mo L2o
(0,0)
=
0 − Lgo
1 0
1 B
− M opL2
o
(2.11)
2.2 Concepto de Estado y Variables de Estado
37
La funci´ on de transferencia del proceso se puede determinar de: Y (s) U (s)
= C(sI − A)−1 B = [1 0] =
Mo L2o s2
s g Lo
−1 Bp +s Mo L2
−1
o
0
1 Mo L2o
1 + Bp s + Mo gLo
(2.12)
La ecuaci´on caracter´ıstica se determina de (2.6): det(sI − A) = Mo L2o s2 + Bp s + Mo gLo = 0
(2.13)
que resulta siendo el denominador de la funci´ on de transferencia dada en (2.12). Con los valores dados de Mo , Lo y Bp , las dos ra´ıces de (2.13) resultan: s1,2 = −0,7482±2,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 figura ˙ =Φ ˙ yΘ ¨ = Φ. ¨ Por 2.3(b), entonces Θ = Φ + π, sen(Φ + π) = −senΦ, Θ consiguiente, la ecuaci´ on que describe la din´ amica del p´endulo no lineal es: ¨ + Bp Φ ˙ − Mo gLo senΦ U = Mo L2o Φ
(2.14)
Con el procedimiento empleado para la situaci´ on mostrada en la figura 2.3(a), f´ acilmente podemos determinar que: 0 1 A= Bp g Lo − Mo L2 o
y su ecuaci´on caracter´ıstica resulta: ¨ + Bp Φ ˙ − Mo gLo senΦ det(sI − A) = Mo L2o Φ 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. La ecuaci´on de estado x˙ = Ax + Bu para el proceso p´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
2.3. 2.3.1.
Sistemas Discretos
Fundamentos de Sistemas Discretos Muestreo y Reconstrucci´ on
La figura 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 fin 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) =
∞
u(kT )δ(t − kT )
(2.15)
k=0
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 define como: 1 si t = kT δ(t − kT ) = 0 si t = kT Empleando la conocida identidad L[δ(t − kT )] = e−kT s , la transformada de
2.3 Fundamentos de Sistemas Discretos
rd
ALGORITMO DE CONTROL
COMPUTADORA
ud
DIGITAL
u*
D A
u
RETENCION’
T
D
yd
39
ACTUADOR
y
FILTRAJE A
PROCESO
MEDICION
y* T
Figura 2.4: Lazo de control con una computadora como controlador.
Laplace de u∗ resulta: ∞ ∞ u(kT )δ(t − kT )] = u(kT )L[δ(t − kT )] u (s) = L[ ∗
k=0
=
∞
k=0
u(kT )e−kT s = u∗ (esT )
(2.16)
k=0
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)ejωs t (2.18) u∗ (t) = T k=−∞
cuya transformada de Laplace ahora resulta (ver referencias [4], [3]): ∞ 1 u(s + iνωs ) u (s) = T ∗
(2.19)
k=−∞
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 + jνωs , ν = 0, ±1, ±2, . . ., como sigue: ∗
u (s + jνωs ) =
∞
−kT (s+jνωs )
u(kT )e
=
ν=0 ∗ sT
∞
u(kT )e−kT s e−kT jνωs
ν=0
= u (e )
(2.20)
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 +jνωs , ν = 0, ±1, ±2, . . . Esta propiedad puede demostrarse expandiendo la sumatoria en la ecuaci´ on (2.19): ∞ 1 u(s + iνωs ) = u (s) = T ∗
k=−∞
1 [u(s) + u(s + jωs ) + u(s + 2jωs ) T
+ · · · + u(s − jωs ) + u(s − 2jωs ) + · · ·] on Si u(s) posee un polo en s = s1 , entonces cada t´ermino de la expansi´ contribuye con un polo en s = s1 + jνωs . La figura 2.5 muestra la respuesta en frecuencia de las se˜ nales u(t) y afico 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 ≥ 2ωmax
T ≤
π ωmax
(2.21)
La figura 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 define como: µ(t − kT ) =
1 si t ≥ kT 0 si t < kT
2.3 Fundamentos de Sistemas Discretos
41 u(j ω)
u(t)
ωmax
t
u*(t)
ωmax
u*(e
t
ωs
jω
ωs
ωs
2
2
ωmax
ω )
ωmax
ωs
ω
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) =
∞
u(kT )[µ(t − kT ) − µ(t − (k + 1)T )]
k=0
Empleando la conocida transformaci´ on L[µ(t − kT )] = da de Laplace de u(t) resulta: u ¯(s) =
∞ k=0
e−kT s s ,
la transforma-
1 1 u(kT )e−kT s [1 − e−T s ] = u∗ (s) [1 − e−T s ] s s
Por consiguiente, la funci´ on de transferencia de la retenci´ on de orden cero viene a ser: 1 − e−sT u ¯(s) = G (2.22) (s) = r0 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
Sistemas Discretos _ u(s) 1 e- sT s T ’ DE ORDEN CERO RETENCION _ u*(t) u (t)
t
0
T
2T
3T
4T
0
T
2T
u(3T)
u(0)
u (t)
u(2T)
u*(s)
u(T)
u(s)
3T 4T
Figura 2.6: Proceso de muestreo y reconstrucci´ on. aproximaci´ on rectangular como sigue: t e(τ )dτ u(t) = 0
u(kT ) ≈
k
T e(iT − T );
u(kT − T ) ≈ T
i=0
u(kT ) − u(kT − T ) = T e(kT − T );
k−1
e(iT − T )
i=0
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 );
x(k + 1) − x(k)
Ejemplo 2.3 Discretizar el modelo no lineal del proceso p´endulo descrito en el ejemplo 2.2 y graficar diez segundos de su respuesta a un torque tipo escal´ on unitario.
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) − Lo Mo L2o Mo L2o y(k) = x1 (k) El siguiente programa en c´ odigo MATLAB determina la respuesta que se muestra en la figura 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:
t de(t) 1 e(t)dt + TD u(t) = K e(t) + TI 0 dt
(2.25)
donde K es la ganancia proporcional, TI es el tiempo de integraci´on y TD 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: " ! k TD T [e(k) − e(k − 1)] e(i − 1) + u(k) = K e(k) + TI T i=0
44
Sistemas Discretos 0.2 0.18 0.16
Posición (rad)
0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 0
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. k T u(k − 1) = K e(k − 1) + e(i − 1) − e(k − 1) TI 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)
(2.26)
donde: q0 = K(1 +
TD ); T
q1 = −K(1 + 2
T TD − ); T TI
q2 = K
TD T
Si la integraci´ on emplea el m´etodo trapezoidal (aproximaci´ on de segmentos de ´area mediante trapezoides), entonces: ! " k
1 TD e(i − 1) + e(i) u(k) = K e(k) + + [e(k) − e(k − 1)] T TI 2 T i=0
k k T e(i − 1) − e(k − 1) + e(i) − e(k) e(k − 1) + 2TI
! u(k − 1) = K
i=0
i=0
2.3 Fundamentos de Sistemas Discretos
+
45
# TD [e(k − 1) − e(k − 2)] T
Restando las expresiones anteriores y despejando u(k) obtenemos una expresi´ on similar a (2.26), donde: q0 = K(1 +
2.3.2.
T TD + ); T 2TI
q1 = −K(1 + 2
T TD − ); T 2TI
q2 = K
TD T
La Transformada Z
Es u ´til introducir la siguiente relaci´ on: z = eT s = eT (σ+jω) = eT σ [cosωT + jsenωT ]
(2.27)
Reemplazando en la ecuaci´ on (2.16) la se˜ nal u por una variable gen´erica g, llegamos a la siguiente definici´on de la transformada Z: g(z) = Z[g(kT )] =
∞
g(kT )z −k = g(0) + g(T )z −1 + g(2T )z −2 + · · · (2.28)
k=0
La serie en (2.28) converge si |g(kT )| se restringe a valores finitos y si |z| > 1. Las sumatorias siguientes son bastante u ´tiles para resolver problemas relacionados con la transformada Z: N −1 1 − aN ak = ; |a| < 1 1−a k=0 ∞
ak =
k=0 ∞
kak =
k=0 N2 k=N1 ∞
1 ; 1−a
|a| < 1
a ; (1 − a)2
|a| < 1
ak =
aN1 − aN2 −1 ; 1−a
ak =
aN1 ; 1−a
k=N1
|a| < 1
|a| < 1
(2.29)
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 )] =
∞
z −k =
k=0
1 z = 1 − z −1 z−1
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: −ν ], Z[g(kT + dT )] = z d [g(z) − d−1 ν=0 g(νT )z
d≥0
(4) Amortiguamiento: Z[g(kT )e−akT ] = g(zeaT ) (5) Multiplicaci´ on por una variable: Z[kg(kT )] = −z dg(z) dz (6) Multiplicaci´ on por una exponencial: Z[ak g(kT )] = g( az ) (7) Teorema del valor inicial: l´ımk→0 x(kT ) = l´ımz→∞ x(z) (8) Teorema del valor final: l´ımk→∞ g(kT ) = l´ımz→1
z−1 z g(z)
= l´ımz→1 (1 − z −1 )g(z)
Por ejemplo, sabiendo que Z[cosωk] es conocido, la transformada Z de ak cosωk puede ser determinada empleando la propiedad de multiplicaci´ on por una exponencial, como sigue:
z(z − cosω) z(z − acosω) k = 2 Z[a cosωk] = 2 z − 2zcosω + 1 z=z/a z − 2zacosω + a2
2.3 Fundamentos de Sistemas Discretos
47
Cuadro 2.1: Transformada Z de algunas secuencias. No
g(t)
g(z)
(1)
δ(k)
1
(2)
δ(k − d))
z −d
(3)
µ(k)
z z−1
(4)
µ(k − d)
z −d+1 z−1
(5)
kµ(k)
z (z−1)2
(6)
ak µ(k)
z z−a
(7)
ak−1 µ(k − 1)
1 z−a
(8)
kak µ(k)
az (z−a)2
(9)
µ(k)senωk
z sinω z 2 −2zcosω+1
(10)
µ(k)cosωk
z(z−cosω) z 2 −2zcosω+1
(11)
µ(k)ak senωk
za senω z 2 −2za cosω+a2
(12)
µ(k)ak cosωk
z(z−acosω) z 2 −2zacosω+a2
(13)
k(k−1)···(k−m+2) k−d+1 a (d−1)!
z −d+1 (1−z −1 )d
48
Sistemas Discretos
Cuadro 2.2: Transformada de Laplace versus transformada Z. No
g(t)
g(s)
g(kT )
g(z)
(1)
δ(t)
1
δ(k)
1
(2)
µ(t)
1 s
µ(k)
z z−1
(3)
t
1 s2
k
Tz (z−1)2
(4)
e−at
1 s+a
(e−aT )k
z z−e−aT
(5)
te−at
1 (s+a)2
kT (e−aT )k
T ze−aT (z−e−aT )2
(6)
t2 e−at
2 (s+a)3
(kT )2 (e−aT )k
T 2 ze−aT (z+e−aT ) (z−e−aT )3
(7)
1 − e−at
a s(s+a)
1 − (e−aT )k
z(1−e−aT ) (z−1)(z−e−aT )
(8)
e−at − e−bt
b−a (s+a)(s+b)
(e−aT )k − (e−bT )k
z(e−aT −e−bT ) (z−e−aT )(z−e−bT )
(9)
senωt
ω s2 +ω 2
senωkT
zsenωT z 2 −2zcosωT +1
(10)
cosωt
s s2 +ω 2
cosωkT
z(z−cosωT ) z 2 −2zcosωT +1
(11)
e−at senωt
ω (s+a)2 +ω 2
(e−aT )k senωkT
ze−aT senωT z 2 −2ze−aT cosωT +e−2aT
(12)
e−at cosωt
s+a (s+a)2 +ω 2
(e−aT )k cosωkT
z(z−e−aT cosωT ) z 2 −2ze−aT cosωT +e−2aT
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: g(z) =
+
P
(s − ai )
i=1 Q j=1
g(s)z z − eT s
s=ai
# 1 dmj −1 mj g(s)z (s − bj ) (2.30) (mj − 1)! dsmj −1 z − eT s 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) =
1 + 1)
s2 (s
Soluci´ on: Para este caso P = 1, a1 = −1, Q = 1, b1 = 0, m1 = 2. Luego:
z 1 + g(z) = (s + 1) 2 s (s + 1) (z − eT s ) s=−1
# d z z −z(z − 1 − T ) 1 1 2 s 2 = + T s −T (2 − 1)! ds s (s + 1) (z − e ) s=0 z − e (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 L−1 [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 definida 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 la transformada Z −1 de cada uno de los t´erminos resultantes. Un m´etodo 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: g(kT ) =
+
P
[(z − ai )g(z)z k−1 ]z=ai
i=1 Q
j=1
1 dmj −1 [(z − bj )mj g(z)z k−1 (mj − 1)! dz mj −1
(2.31) z=bj
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 k−1 ]z=a1 + [(z − a2 )g(z)z k−1 ]z=a2 + [(z − a3 )g(z)z k−1 ]z=a3
1 dm1 −1 m1 k−1 + [(z − b ) g(z)z 1 (m1 − 1)! dz m1 −1 z=b 1
m −1 2 d 1 + [(z − b2 )m2 g(z)z k−1 (m2 − 1)! dz m2 −1 z=b2 Ejemplo 2.6 Determinar g(kT ) para: (a) :
g(z) =
z ; (z − 1)(z − 2)
(b) :
g(z) =
z (z − 1)2
Soluci´ on: Para el primer caso: P = 2, a1 = 1, a2 = 2, Q = 0. Por tanto:
k
k z z + = −1 + 2k g(k) = z − 1 z=1 z − 1 z=2 Para el segundo caso: P = 0, Q = 1, b1 = 1, m1 = 1. Luego:
d k z 1 d 2 k−1 (z ) = =k g(k) = z (z − 1) 1! dz (z − 1)2 dz z=1 z=1
2.3 Fundamentos de Sistemas Discretos
2.3.4.
51
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 − e−sT 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:
b1 z −1 K −1 sT −d G(z) = Z[Gr0 G(s)] = (1 − z )Z (e ) = z −d s(s + a) 1 + a1 z −1 K a1 = −e−aT ; b1 = (1 − e−aT ) a Ejemplo 2.8 Determinar la salida muestreada para los casos ilustrados en las figuras 2.8(a)-(f). Soluci´ on: En la figura (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)G∗1 (s)u∗ (s). Esta u ´ltima relaci´ on es equivalente a: y(z) = G2 (z)G1 (z)u(z)
52
Sistemas Discretos T u(s)
u*(s)
G 1 (s)
T x(s)
x*(s)
G 2 (s)
y(s)
(a) T u(s)
u*(s)
u(s)
u*(s)
G 2 (s) T x(s)
1-e s
D(z)
G 2 (s)
x*(s) (c)
x(s)
T x*(s)
+
G(s)
-
y(s)
y(s)
-Ts
G p (s)
(d) u(s)
y(s)
(b) G 1 (s)
T u(s)
G 1 (s)
G(s) u(s)
G(s)
y(s)
+
T
-
H(s) (e)
y(s)
H(s) (f)
y*(s)
Figura 2.8: Sistemas discretos a lazo abierto y a lazo cerrado. En la figura (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 figura (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 figura (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 figura (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 figura (f) tenemos y(s) = G(s)u(s) − G(s)H(s)y ∗ (s). Muestreando y despejando y ∗ (s) se obtiene: y(z) =
2.3.5.
[GH](z) u(z) 1 + [GH](z)
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): x˙ = Ax + Bu;
y = Cx + Du
(2.33)
La soluci´ on de la ecuaci´ on de estado anterior, dado un estado inicial x(t0 ), es: t x(t) = eA(t−t0 ) x(t0) ) + eAt e−Aτ Bu(τ )dτ = φ(t − t0 )x(t0) +
t0
t
φ(t − τ )Bu(τ )dτ
(2.34)
t0
donde: −1
φ(t − t0 ) = L
−1
[(sI − A)
A(t−t0 )
]=e
=
∞ Aν (t − t0 )ν ν=0
ν!
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) con respecto al tiempo, para as´ı obtener x˙ = Ax + Bu.
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) + Bu(s) x(s) = (sI − A)−1 x(t0 ) + (sI − A)−1 Bu(s) Ejemplo 2.9
y(s) = Cx(s) + Du(s)
(2.35)
Dado u = 3e−t , 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. Graficar 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[3e−t ] = 3/(s + 1). Aplicando la ecuaci´ (2.35) obtenemos:
−7 1 2 A= ; B= −12 0 −1
−6 C = 3 −4 ; D = [−2]; x(0) = 1 −1
s + 7 −1 2 + u(s) x(s) = 12 s −1
#
1 3 s 1 −6 2 = 2 + 1 −1 s + 7s + 12 −12 s + 7 s+1 2
=
s + 7 −1 12 s
−1
y(t) =
−6s +s−2 (s+1)(s+3)(s+4) s2 +77s−14 (s+1)(s+3)(s+4)
y(s) = Cx(s) + Du(s) = =
−6 1
3 −4
−6s2 +s−2 (s+1)(s+3)(s+4) s2 +77s−14 (s+1)(s+3)(s+4)
−2
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 + , t≥0 6 2 3
2.3 Fundamentos de Sistemas Discretos
55
Las respuestas mostradas en la figura 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
Sistemas Discretos 10
0
Salida
y
−10
−20
−30
−40
−50 0
1
2
3
4 Tiempo
5 6 en segundos
7
8
9
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
φ(t − τ )Bdτ
t0
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) + Hu(k);
y(k) = Cx(k) + Du(k)
donde:
AT
G = Φ(T ) = e
;
H=
T
(2.36)
φ(λ)dλ B
(2.37)
0
Notar que (2.36) es una ecuaci´ on vectorial de diferencias que puede ser resuelta recursivamente, como sigue: x(1) = Gx(0) + Hu(0) x(2) = Gx(1) + Hu(1) = G2 x(0) + GHu(0) + Hu(1)
2.3 Fundamentos de Sistemas Discretos
57
.. . x(k) = Gk x(0) +
k
Gν−1 Hu(k − ν)
(2.38)
ν=1
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) + Hu(z) Despejando: x(z) = (zI − G)−1 zx(0) + (zI − G)−1 Hu(z)
(2.39)
y empleando la ecuaci´on de salida resulta: y(z) = C(zI − G)−1 zx(0) + [C(zI − G)−1 H + D]u(z)
(2.40)
Comparando las ecuaciones (2.38) y (2.39) verificamos que: Gk = Z −1 [(zI − G)−1 z]
(2.41)
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 = eσT ejωT = |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 n−1 + · · · + bn = = u(z) 1 + a1 z −1 + · · · + an z −n z n + a1 z n−1 + · · · + an (2.44) y su correspondiente ecuaci´on de diferencias toma la forma: Gp (z) =
y(k+n)+a1 y(k+n−1)+· · ·+an y(k) = b0 u(k+n)+b1 u(k+n−1)+· · ·+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) =
y(k) =
0 0 .. .
1 0 .. .
0 1 .. .
··· ···
0 −an
0 −an−1
0 −an−2
··· ···
bn − an b0
bn−1 − an−1 b0
0 0 .. .
1 xn−1 (k) −a1 xn (k)
···
b1 − a1 b0
x1 (k) x2 (k) .. .
0 0 .. .
+ 0 1
u(k)
x(k) + b0 u(k)
(2.46) (2.47)
Segunda Forma Can´ onica Controlable: x(k + 1) =
0 0 .. .
1 0 .. .
0 1 .. .
··· ···
0 −an
0 −an−1
0 −an−2
··· ···
y(k) =
1
0 ···
0 0 .. .
x1 (k) x2 (k) .. .
1 xn−1 (k) −a1 xn (k) 0
β1 β2 .. .
+ βn−1 βn
x(k) + β0 u(k)
u(k) (2.48) (2.49)
donde: β0 = b0 , β1 = b1 − a1 b0 , β2 = b2 − a1 β1 − a2 β0 , etc. Generalizando: βn = bn − a1 βn−1 − · · · − an−1 β1 − an−1 β0
2.3 Fundamentos de Sistemas Discretos
59
Tercera Forma Can´ onica Controlable: x(k + 1) = y(k) =
−a1 1 0 .. .
−a2 0 1 .. .
··· ··· ···
−an−1 0 0 .. .
0
0
···
1
b1 − a1 b0
b2 − a2 b0
−an 0 0 .. .
x1 (k) x2 (k) .. .
1 0 .. .
+ u(k) (2.50) xn−1 (k) 0 0 xn (k) 0 · · · bn − an b0 x(k) + b0 u(k) (2.51)
Primera Forma Can´ onica Observable:
0 1 .. .
x(k + 1) = 0 0
0 ··· 0 ··· .. . 0 ··· 0 ···
−an −an−1 .. .
0 0 0 0 .. .. . . 1 0 0 1
y(k) =
−a2 −a1
xn−1 (k) xn (k)
0 ···
0
x1 (k) x2 (k) .. .
0 1
+
bn − an b0 bn−1 − an−1 b0 .. . b2 − a2 b0 b1 − a1 b0
u(k) (2.52) (2.53)
x(k) + b0 u(k)
Segunda forma can´ onica observable:
−a1 −a2 .. .
x(k + 1) = −an−1 −an
1 0 .. .
0 ··· 1 ··· .. .
0 0 .. .
0 0
0 ··· 0 ···
0 0
y(k) =
0 0 .. .
x1 (k) x2 (k) .. .
1 xn−1 (k) 0 xn (k)
1 0 ···
0 0···
b1 − a1 b0 b2 − a2 b0 .. .
+ bn−1 − an−1 b0 bn − an b0
u(k) (2.54) (2.55)
x(k) + b0 u(k)
Forma Can´ onica Diagonal (eigenvalores no repetidos)
x1 (k + 1) x2 (k + 1) .. .
xn−1 (k + 1) xn (k + 1)
= y(k) =
p1 0 .. .
0 p2 .. .
··· ···
0 0 .. .
0
0
···
pn
c1
c2
···
cn
x1 (k) x2 (k) .. .
+
xn (k)
x(k) + b0 u(k)
1 1 .. .
u(k)
(2.56)
1 (2.57)
60
Sistemas Discretos
donde los pi son los eigenvalores no repetidos de Gp (z) = y(z)/u(z), y:
ci y(z) = b0 + ; u(z) z − pi n
ci = l´ım
z→pi
i=1
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
c 1 c2 c3 c4 c5 c6 c7 c8 c9
x8 (k)
1 (2.59) (2.60)
x(k) + b0 u(k) 8
ci c1 c2 c3 c4 c5 y(z) = b0 + + + + + + 3 2 2 u(z) (z − p1 ) (z − p1 ) z − p1 (z − p2 ) z − p2 z − pi i=6 (2.61) Ejemplo 2.10 La funci´ on de transferencia de pulso de un proceso se modela como: 6 −i y(z) i=0 bi z = u(z) 1 + 6i=1 ai z −i 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
63
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
Procesos Discretos con Tiempo Muerto En el dominio continuo, la transformada de Laplace del tiempo muerto es e−Tt 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 ) + Bu(k − du ) y(k + dy ) = Cx(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: e−Tt 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 suficiente para capturar el efecto del tiempo muerto en muchas aplicaciones. Tal aproximaci´on tiene la forma: e−T 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
Ejemplo 2.12 Comparar la respuesta a un escal´ on del proceso: 10 −5,8s y(s) = e u(s) 2s + 1
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 (figura 2.10) resuelve el problema planteado y los resultados se ilustran en la figura 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 final x(N ) en un tiempo finito N .
2.3 Fundamentos de Sistemas Discretos
65
yd_
10 2s+1 Proceso parcial Tiempo muerto
u
Mux
yd yd
Graph Mux
10 −Tt^3/120s3+Tt^2/10.s 2−Tt/2s+1 2s+1 Tt^3/120.s3+Tt^2/10.s 2+Tt/2.s+1 Proc. parcial Aproximación del tiempo muerto
yda_
yda yda
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
Respuestas al escalóon
8
6
4
2
0
−2 0
2
4
6 Tiempo en segundos
8
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 filas linealmente dependientes. Por consiguiente, para que un proceso sea completamente controlable, lo que quiere decir, para que su matriz de controlabilidad s´ olo posea filas 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 finito de salidas y(k), y(k − 1), . . . , y(k − n). Consideremos la siguiente ecuaci´on de salida: y(k) = Cx(k) Empleando la ecuaci´ on de estado x(k + 1) = Gx(k) + Hu(k), podemos deducir que: y(k) = Cx(k) y(k + 1) = CGx(k) + CHu(k) y(k + 2) = CG2 x(k) + CGHu(k) + CHu(k + 1) .. . y(k + n − 1) = CGn−1 x(k) + [0, CH, CGH, . . . , CGn−2 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
67
La ecuaci´on (2.63) toma la forma: Yn = N x(k) + SUn
(2.64)
donde: Yn = [y(k) y(k + 1) . . . y(k + n − 1)]T = [C CG . . . CGn−1 ]T = [C T GT C T . . . (GT )n−1 C T ] 0 0 0 0 0 0 0 0 0 CH S = . . . . . . . . . n−2 H 0 CH CGH . . . CG
N
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://fiee.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 figura 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
Modelado de Procesos + Fuerza de u control Servomotor D.C.
y’
y
θ
Pendulo F
z
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 figura 3.2 y est´ a conformado por un carro y una varilla. De la figura 3.2 podemos observar que los centros de gravedad de la varilla y de la esfera son: y
y’ z
11 00 00 11 00 11 00 11
l v /2
me g θ
mvg
lv
le
z’
0
z
P 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 = Fj dt M
(3.3)
j=1
donde mi es la masa de la i-´esima part´ıcula, ri es la posici´on del centro de 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 Luego, sustituyendo ze (ecuaci´on (3.1)) y zv (ecuaci´on (3.2)) en la 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 lv )(sen θ)+ θ˙2 (me le +mv )(cos θ)θ¨ = F (3.6) 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 = τj dt M
(3.7)
j=1
donde τj es el j-´esimo torque externo, Ji es el momento de inercia de la 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 figura 3.2 obtenemos: lv lv (Je +Jv )θ¨ = me g(senθ)le +mv g(sen θ) −me z¨(cos θ)le −mv z¨(cos θ) (3.8) 2 2 y ordenando: (me le + mv
lv lv )g(sen θ) − (me le + mv )¨ z (cos θ) = (Je + Jv )θ¨ 2 2
donde: Je = me le2 ;
3.1.2.
Jv = mv
(3.9)
lv2 3
(3.10)
Modelo del Subsistema Motor-Polea
El subsistema motor-polea est´a representado en la figura 3.3. El modelo del sistema el´ectrico se encuentra aplicando la ley de voltajes de Kirchhoff a la parte el´ectrica de dicha figura. 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
+
u
Va
θm
Vb
Jo
-
La
Jm Bm
rp F
Bo
Figura 3.3: Subsistema motor-polea. Ra ia + Vb = KA u = Va
(3.11)
El voltaje contraelectromotriz est´a representado por: Vb = Kb θ˙m
(3.12)
Aplicando la segunda ley de Newton para el movimiento rotatorio en el sistema mec´anico del servomotor, obtenemos: Tm = Jeq θ¨m + Beq θ˙m + n F rp
(3.13)
3.1 Modelo del Proceso P´ endulo Invertido
73
donde: Jeq = Jm + n2 (Jo + Jp ) 2
Beq = Bm + n Bo
(3.14) (3.15)
El torque producido en el eje del servomotor viene dado por la ecuaci´ on: Tm = Km ia
(3.16)
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)
Luego, substituyendo las ecuaciones (3.17) y (3.12) en (3.11) y despejando F obtenemos:
Jeq ¨ Beq Km Kb ˙ Km KA θm θm − u− + (3.18) F = Ra n rp n rp n rp Ra n rp 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:
Jeq Beq Km Kb Km KA z˙ (3.20) u − 2 2 z¨ − + F = Ra n rp n rp n2 rp2 Ra n2 rp2 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: M1 z¨ − M2 (sen θ)θ˙2 + M2 (cos θ)θ¨ − F = 0
(3.21)
M2 g(sen θ) − M2 z¨(cos θ) − J1 θ¨ = 0
(3.22)
F = Kx KA u − J2 z¨ − Bx z˙
(3.23)
74
Modelado de Procesos
donde: M1 = mc + me + mv ;
M2 = me le + mv
J1 = Je + Jv ;
Kx =
3.1.3.
Km ; Ra nrp
Bx =
lv 2
(3.24)
Jeq n2 rp2
(3.25)
Beq Kb Km + n2 rp2 n2 rp2 Ra
(3.26)
J2 =
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 = θ˙
(3.27)
x3 = z
(3.29)
x4 = z˙
(3.30)
(3.28)
Escribiendo dichas ecuaciones en el espacio de estado, obtenemos:
x˙ 1 x˙ 2 = x˙ 3 x˙ 4
x2
M2 (sin x1 )(cos x1 )x22 −Bx (cos x1 )x4 −(M1 +J2 )g(sin x1 )+Kx (cos x1 )KA u (M2 (cos2 x1 )−(M1 +J2 )J1 )/M2
x4 M22 g(sin x1 )(cos x1 )−J1 M2 (sin x1 )x22 +J1 Bx x4 −J1 Kx KA u M22 (cos2 x1 )−(M1 +J2 )J1
(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.32) (3.33)
3.1 Modelo del Proceso P´ endulo Invertido
3.1.4.
75
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: x˙ = f(x, u) x˙ = f =
x˙ 1 x˙ 2 x˙ 3 x˙ 4 f1 f2 f3 f4
(3.34)
T T
=
x˙ 1 x˙ 2 x˙ 3 x˙ 4
T
en donde u es la se˜ nal de control, x˙ es el vector de estados y f es una funci´ on vectorial de variable vectorial. La expansi´ on en serie de Taylor alrededor del punto de operaci´ on (¯ x, u ¯) resulta:
∂f (¯ x, u ¯) ∂f (¯ x, u ¯) (x − x ¯) + (u − u ¯) + x ¯˙ = f (¯ x, u ¯) + ∂x ∂u
2 1 ∂ f (¯ ∂ 2 f (¯ ∂ 2 f (¯ x, u ¯) x, u ¯) x, u ¯) 2 2 (x − x ¯)(u − u ¯) + (x − x ¯) + 2 (u − u ¯) + · · · 2! ∂x2 ∂x∂u ∂u2 (3.35) Si la variaci´ on de las variable residuales (x−¯ x) y (u− u ¯) 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: x˙ = Ax + Bu donde:
A=
0 (M1 +J2 )M2 g (M1 +J2 )J1 −M22
1 0 0 0
0
0 0
(M1 +J2 )J1 −M22
0 0
−M22 g
B=
3.1.5.
(3.38) 0
Bx M2 (M1 +J2 )J1 −M22
1
−J1 Bx (M1 +J2 )J1 −M22
(3.39)
0
−Kx M2 KA (M1 +J2 )J1 −M22
0
J1 Kx KA (M1 +J2 )J1 −M22
(3.40)
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)
(3.41)
y(t) = Cx(t) + Du(t)
(3.42)
La soluci´ on de tales ecuaciones es:
x(t) = Φ(t − t0 )x(t0 ) +
t
Φ(t − τ )Bu(τ )dτ
(3.43)
t0
donde t0 es el tiempo inicial, y: Φ(t − t0 ) = eA(t−t0 ) =
∞ Ak (t − t0 )k k=0
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
H=
T
77
Φ(λ)(dλ) B
(3.47)
0
La ecuaci´on de salida en tiempo discreto viene a ser: y(kT ) = Cx(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 figura 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
z
Carro θ
’ puente Grua
y’
Figura 3.4: Proceso gr´ ua-puente.
3.2.1.
Modelo del Subsistema Carro-Varilla
El subsistema carro-varilla est´a representado en la figura 3.5. De dicha figura podemos observar que los centros de gravedad de la varilla y de la esfera son: ze = z − le sen θ (3.49)
78
Modelado de Procesos y
y’ z
P
z’
0
F lv
z
θ
2
111 000 000 111 000 111 000 m v g 111
le lv
me g
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 lv )(sen θ)θ˙2 −(me le +mv )(cos θ)θ¨ = F (3.53) 2 2
Ahora, aplicando en la figura 3.5 la segunda ley de Newton para el movimiento rotatorio dada por la ecuaci´ on (3.7) alrededor del punto P: lv lv (Je + Jv )θ¨ = me z¨(cos θ)le + mv z¨(cos θ) − me g(senθ)le − mv g(sen θ) 2 2 (3.54)
3.2 Modelo del Proceso Gr´ ua-Puente
79
y reordenando, obtenemos: (me le + mv
lv lv )¨ z (cos θ) − (me le + mv )g(sen θ) = (Je + Jv )θ¨ 2 2
donde: Je = me le2 ;
3.2.2.
Jv = mv
(3.55)
lv2 3
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):
Jeq Beq Km KA Km Kb F = z˙ u − 2 2 z¨ − + Ra n rp n rp n2 rp2 Ra n2 rp2 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: M1 z¨ + M2 (sen θ)θ˙2 − M2 (cos θ)θ¨ − F = 0
(3.56)
− M2 g(sen θ) + M2 z¨(cos θ) − J1 θ¨ = 0
(3.57)
F = Kx KA u − J2 z¨ − Bx z˙
(3.58)
donde: M1 = mc + me + mv ;
M2 = me le + mv
J1 = Je + Jv ; Kx =
3.2.3.
Km ; Ra nrp
Bx =
J2 =
lv 2
Jeq n2 rp2
Beq Kb Km + 2 2 2 2 n rp n rp Ra
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 = θ˙
(3.59)
x3 = z
(3.61)
x4 = z˙
(3.62)
(3.60)
80
Modelado de Procesos
Escribiendo las ecuaciones en el espacio de estado: x2 x˙ 1 −M2 (sin x1 )(cos x1 )x22 −Bx (cos x1 )x4 −(M1 +J2 )g(sin x1 )+Kx (cos x1 )KA u x˙ 2 (−M2 (cos2 x1 )+(M1 +J2 )J1 )/M2 x˙ 3 = x4 −M22 g(sin x1 )(cos x1 )−J1 M2 (sin x1 )x22 −J1 Bx x4 +J1 Kx KA u 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=
3.2.4.
(3.64)
1 0 0 0 0 0 1 0
(3.65)
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 −(M1 +J2 )M2 g (M1 +J2 )J1 −M22
0
0 0
(M1 +J2 )J1 −M22
0 0
−M22 g
B=
3.2.5.
1 0 0 0
(3.66) 0
−Bx M2 (M1 +J2 )J1 −M22
1
−J1 Bx (M1 +J2 )J1 −M22
0 Kx M2 KA (M1 +J2 )J1 −M22
0
J1 Kx KA (M1 +J2 )J1 −M22
(3.67)
(3.68)
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
3.2.6.
81
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 especificaciones y por medici´on.
3.2.7.
Identificaci´ on de la Zona Muerta del Servomotor
Al analizar la curva velocidad vs. voltaje de entrada del servomotor (figuras 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
salida
200
0
−200
−400
−600
−800 −2
−1.5
−1
−0.5
0 entrada
0.5
1
1.5
2
Figura 3.6: Respuesta del servomotor sin compensar (voltaje vs. velocidad angular). Observar en la figura 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 figura 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 amplificador 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.0352×10−3 V/rad 31.071×10−3 N-m/A 1.9596×10−6 kg-m2 1.8342×10−3 N-m/rad/s se despreci´o se despreci´o 1/19.741 0.0648 m mp rp2 /2 Jm + n2 (Jo + Jp ) Bm + n2 Bo me le2 mv lv2 /3
3.2 Modelo del Proceso Gr´ ua-Puente
83
entrada vs salida 150
100
salida
50
0
−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 figura 3.6.
entrada vs salida 800
600
400
salida
200
0
−200
−400
−600
−800 −2
−1.5
−1
−0.5
0 entrada u
0.5
1
1.5
2
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 amplificador 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 figura 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. MO RO
I
T + eb -
+ u Kact R
L
Jm
0000 1111 0000 TM 1111 0000ω m 1111 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
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 amplificador 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.64×10−2 H 31.071×10−3 N-m/A T = KI
1.9062×10−6 kg-m2 3.5×10−7 kg-m2 1.8338×10−6 N-m/rad/s 10−5 N-m/rad/s 0, 0.01, 0.02, 0.045 kg 0.06377 kg 0.776 m 0.02 m eb = Ewm 31.0352×10−3 V/rad/s 19.741 9.81 m/s2 wm = nw qm = nq
86
Modelado de Procesos
la varilla met´ alica (figura 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
(3.69)
TM = Jm w˙ m + bm wm = nJm w˙ + nbm w
(3.70)
2 1 TL = (Mo L2o + Mo Ro2 + mL2o + JL )w˙ + bL w 5 3
(3.71)
donde:
TE = gLo (Mo +
m )sen q 2
(3.72)
Reemplazando las ecuaciones (3.70), (3.71) y (3.72) en la ecuaci´ on (3.69) se obtiene: (3.73) nTm = M w˙ + Bw + N sen q + TN donde: 2 1 M = Jef f + M L2o + M Ro2 + mL2o ) 5 3 m ) 2
(3.75)
Jef f = n2 Jm + JL
(3.76)
B = n2 bm + bL
(3.77)
N = gLo (M +
3.3.2.
(3.74)
El Subsistema El´ ectrico
La tensi´ on de armadura Va que permite controlar la velocidad del motor viene expresada por: (3.78) Va = IR + LI˙ + eb donde eb es la tensi´on contraelectromotriz y es igual a: eb = Ewm
(3.79)
Va = uKact
(3.80)
y la tensi´ on de armadura Va es:
3.3 Modelo del Servomotor D.C. No Lineal
3.3.3.
87
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: Enw R Kact u− − 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 N B 1 nK )senx1 − x2 − TN + x3 M M M M nE R Kact x2 − x3 + u = − L L L
x˙ 2 = −( x˙ 3
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
(3.85)
nK M x3
(3.86)
Kact L
Las matrices dadas en (8.38) representan el modelo matem´atico del proceso considerando carga no lineal. La figura 3.10 muestra el diagrama de simulaci´ on del proceso (archivo servsim.m) y la figura 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 fines 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
Kact gan5
u
+ −
n*K R sum1subsistema eléctrico n*E
gan1 fricción de Coulomb − w 1 q 1 + Ms+B s − sum2 subsistema Integrador mecánico
gan2
N gan3
gráfico
MATLAB Function seno
Figura 3.10: Diagrama de bloques del proceso no lineal.
1.4 q
Posición q (rad); entrada u (voltios)
1.2
1
0.8
0.6 u 0.4
0.2
0 0
1
2
3
4 Tiempo
5 6 en segundos
7
8
9
10
Figura 3.11: Respuesta del proceso no lineal a un escal´ on.
3.3 Modelo del Servomotor D.C. No Lineal
89
Considerando L=0, la corriente de armadura resulta: I=
nE Kact u− w R R
y la ecuaci´on (8.38) pasa a ser: F (x) =
N −M senx1 −
0 G(x) = ; nKKact RM u
3.3.4.
x2 B M
+
n2 KE MR
(3.87)
x2 −
1 M TN
H(x) = x1
(3.88)
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 el torque de fricci´ on de Coulomb TC oponi´endose a dicho movimiento. Tales 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 definimos: u=v+
R TN ; nKKact
(3.90)
Reemplazando la ecuaci´on (3.90) en (3.88) obtenemos una ecuaci´ on compensada de la forma:
n2 KE N B nKKact x˙ 2 = − senx1 − + x2 + v (3.91) M M MR RM 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 on de salida y = Cc x, de estado lineal de la forma x˙ = Ac x+Bc u y una ecuaci´ donde:
0 1 Ac = 2E N B −( M + Kn −M MR )
0 ; Cc = 1 0 (3.93) Bc = KnKact MR
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 (s) y(z) −1 = (1 − z )Z (3.95) Gp (z) = u(z) s 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
91
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)
(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:
0 1 0 G= ; H= ; C = b2 − a2 b0 b1 − a1 b0 ; D = [0] −a2 −a1 1 (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):
b1 0 1 ; H= ; C = 1 0 ; D = [0] G= b2 − a1 b1 −a2 −a1 (3.101) La funci´ on de transferencia de pulso del proceso tambi´en se calcula de: Gp (z) =
3.4.
y(z) b1 z −1 + b2 z −2 = C(zI − G)−1 H = u(z) 1 + a1 z −1 + a2 z −2
(3.102)
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. Graficar 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 figuras correspondientes. Problema 3.1 La figura 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
Masa de 1/4 del bus
x1 k1
u
m1
b1
Masa de la suspension
x2
w
93
k2
m2 b2
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 m1 1 u+ −ab21 ¨1 = + 2 w y˙ 1 − b2 0 a33 − m2 1 y1 0 m2 1 1 k2 k2 y˙ 2 y2 −m 0 a43 0 m1 + m2 m2 2 x1
u x˙1 + 0 0 y= 0 0 1 0 y1 w y2
donde: y1 = x1 − x2
k1 k1 k2 1 1 y1 − u dt y2 = − + (w − x2 ) + + m1 m2 m2 m1 m2
b1 k1 b1 b2 b1 b1 b2 a21 = − − ; a23 = + + m1 m2 m1 m1 m2 m2 m1
b1 b1 b2 k1 k1 k2 ; a43 = − a33 = − + + + + m1 m2 m2 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
95
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
x 10
2.5 y(k) para u=1, w=0
y(t) para u=1, w=0
2.5 2 1.5 1 0.5
0 0
50 100 Tiempo en segundos
1.5 1 0.5 50 100 Tiempo en segundos
150
50 100 Tiempo en segundos
150
1 y(k) para u=0, w=1
y(t) para u=0, w=1
2
0 0
150
1 0.5 0 −0.5 −1 0
x 10
50 100 Tiempo en segundos
150
0.5 0 −0.5 −1 0
Figura 3.13: Respuestas al escal´on para el sistema de suspensi´on.
96
Modelado de Procesos
Problema 3.2 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 figura 3.14 es un problema longitudinal. Empuje x θ
Impulso
α γ
e
x’
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 figura 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,232δe q˙ = −0,0139α − 0,426q + 0,0203δe θ˙ = 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 deflector 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
97
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 θ
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
Modelado de Procesos
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
y(t) continua
8 6 4 2 0 0
5
10
15 20 Tiempo en segundos
25
30
5
y(k) discreta
4 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 figura 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.99×10−6 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.
r
L
BARRA
ESFERA α
LEVA θ
ENGRANAJE d
Figura 3.16: Bola balance´ andose sobre una barra. La ecuaci´on din´ amica que describe el proceso es:
J + M r¨M gsenα − M rα˙ 2 0= R2 Cuando α es peque˜ no, senα ≈ α. Luego:
J + M r¨M gα − M rα˙ 2 0= R2 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 θ(s) L R2 + M s2 y la ecuaci´on de estado del proceso viene a ser:
0 r˙ 0 1 r θ = + M gd r¨ 0 0 r˙ L 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 significa que queremos controlar el torque de la barra. Las ecuaciones de estado y de salida para esta situaci´ on son: 0 1 r˙ 0 0 r¨ = α˙ 0 0 α ¨ 0 0
0 M gd L J2 +M R
0 0
0 r 0 r˙ + 1 α α˙ 0
0 0 u 0 1
r r˙ 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
101
1.0000 0
0.1000 1.0000
% 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
y(t) continua
0.8 0.6 0.4 0.2 0 0
0.5
1
1.5 2 Tiempo en segundos
2.5
3
0.5
1
1.5 2 Tiempo en segundos
2.5
3
y(k) discreta
0.8 0.6 0.4 0.2 0 0
Figura 3.17: Respuestas al escal´on de la posici´ on de la bola sobre la barra.
102
Modelado de Procesos
Problema 3.4 La figura 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 flujo de calefacci´on en J/s o watt, Qe es el flujo 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 10 111 000 Q o 111 + 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 1010 0000 1111 Temperatura 000 111 000 111 _ Θo 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 dΘi 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 120e−t/τ 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 dΘi =− Θi + Θ0 + V 2 = f (Θi , Θo , Vc ) dt 3000 3000 60000 c Para efectos de linealizaci´on podemos definir las siguientes variables: ¯ i; θi = Θi − Θ
¯ o; θo = Θo − Θ
vc = Vc − V¯c
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 ∂f ∂f dθi = θi + θo + vc dt ∂Θi Θ¯ i ∂Θo Θ¯ o ∂Vc V¯c 1 1 1 dθi =− θ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 figura 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 M2 y M3 respectivamente, y est´an sujetos a fricciones B2 y B3 . Los carros se acoplan uno al otro con dispositivos no r´ıgidos (resortes) que poseen
3.4 Problemas Resueltos
105
y(t) continua
2 1.5 1 0.5 0 0
2000
4000
6000 8000 10000 Tiempo en segundos
12000
14000
16000
y(k) discreta
2 1.5 1 0.5 0 0
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 demostrar que la ecuaci´on de estado del sistema con vi = x˙ i , i = 1, 2, 3 es: x˙ = Ax + Bu(t) donde:
0
− K12 M1 0 A = K12 M2 0 0
1
+B12 − B1M 1 0 B12 M2
0 0
0
0
K12 M1
B12 M1
23 − K12M+K 2
K23 M3
0
B = [0
v1
K23 M2
B23 M2
B23 M3
23 −K M3
+B23 − B3M 3
0
x2 1
0 0 0
1
0
x = [x1
− B2 +BM232+B12
0 0 0
0
v2 0
x3 0
v 3 ]T 0]T
0
1
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 α
yi = αi vi ,
i = 1, 2, 3
donde αi es la constante tacom´etrica. Asumir los siguientes valores para 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 figura 3.22(a) muestra el diagrama de bloques simplificado 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 amplificador de potencia con saturaci´ on (figura 3.22(b)),
108
Modelado de Procesos
continuas
0.08
Salidas
0.1
0.04
0.06
0.02 0 0
0.5
1
1.5 2 Tiempo en segundos
2.5
3
0.5
1
1.5 2 Tiempo en segundos
2.5
3
discretas Salidas
0.1 0.08
0.04
0.06
0.02 0 0
Figura 3.21: Respuestas al escal´on de las velocidades del monorriel. el cual no debe exceder los ± 200 volt. Esto significa una velocidad x1 en estado estable de:
0,001 x ¯1 = (200) = 1 m/s s + 0,2 s=0 Observar en la figura 3.22(d) que la velocidad y posici´ on del elevador se miden separadamente. Entre pisos, el amplificador 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 amplificador 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 figura 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˙ 2 1 0 0 0 x2 0 + x˙ 3 = 2 0 −2 0 x3 0 x˙ 4 x4 0 5 0 0 −5
3.4 Problemas Resueltos y=
109
0 1 0 0
x
% 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
% H = 1.0e-003 * % 0.1961 % 0.0197 % 0.0347 % 0.0725 % RESPUESTAS AL ESCALON
0 0 0.6703 0
0 0 0 0.3679
110
Modelado de Procesos
Voltaje de entrada
Voltaje de armadura
v
Velocidad del ascensor
Posicion del ascensor
0.001 u
u
v
1 x1
s + 0.2
Amplificador de potencia con saturacion
s
x
10
15
Motor actuador mas tambor
2
2 x3 5 x4
Sensor de velocidad
s + 5 Sensor de posicion
v 200
s + 2
0.005
3000
(a) x1
1 u
5
-200 (b)
x4
t
(c)
u
u
D/A con memoria
Computador digital
v
Posicion del ascensor Actuador mas sensores
x x4
Amplificador Voltaje de armadura
x3
sensor de velocidad
v
A/D sensor de (d)
Figura 3.22: Proceso ascensor.
posicion
x3
2
3.4 Problemas Resueltos
111
[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
Salidas continuas
0.15
0.1
0.05
0 0
5
10
15 20 Tiempo en segundos
15
20 25 30 Tiempo en segundos
25
30
Salidas discretas
0.2 0.15 0.1 0.05 0 0
5
10
35
40
45
Figura 3.23: Respuestas al escal´on de la posici´ on del ascensor.
Problema 3.7 En la figura 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 figura 3.24(b) muestra la F.T. del proceso. El modelo del proceso en estudio se encuentra en la referencia [10]. Tolva
Controlador Sensor
Horno
Referencia
d v Deposito
v d/v
u
1 s+1 Horno
hs
(b)
e -(d/v)s
hr
Tiempo muerto
10 s + 0.5 Sensor
vr
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
113
-0.0075 0.9997 0.1000 0.0050
-0.0022 -0.0001 1.0000 0.1000
-0.0003 0.0000 0.0000 1.0000
% 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 figura 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 figura 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
Modelado de Procesos
Humedad
continua
20 15 10 5 0 −5 0
2
4
6
8 10 12 Tiempo en segundos
14
16
18
20
Humedad discreta
20 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 ;
e = Ke ω1
Resorte torsional m´as la inercia J: dT = Kω (ω1 − ω2 ); dt
J
dω2 =T dt
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´ x˙ = Ax + Bu; A=
1 − RC
− C1 0
0
Kt J
Kω LKω +Kt Ke
y = Cx
1 RC
B = 0 ; 0
C=
0
−Ke Kω LKω +Kt Ke
0
0 0 1
El modelo del proceso en estudio se encuentra en la referencia [10].
3.4 Problemas Resueltos
+ v -
IR
R
115
IM
L C
+ e -
Kω
T ω1
J
ω2
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
Modelado de Procesos
% 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
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
117
Voltaje en C (continuo)
5 4 3 2 1 0 0
5
10
15
20 25 30 Tiempo en segundos
35
40
45
50
Voltaje en C (discreto)
5 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. Graficar 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 figura 3.28): θ˙ = ω ω˙ = p + dτ Km Km q+ ω + dp J J q˙ = −Kv Lv q − Kv K∆p Jp + Kv u + dq ;
p˙ = −Ωm p −
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.46×106 , 1.96×106 ] (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 K∆p = [6.33×10−6 , 3.86×10−5 ] es el coeficiente 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 simplificaciones 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 figura 3.29). Extractante (glycol)
Agua
11 00 00 T1 Mezcla de 11 00 11 agua e isopropanol
T1
S: flujo lateral de vapor z
Propanol
1
T
Glycol
T 11 00 00 2 11 00 11 u 1 : vapor de calentamiento Producto (glycol)
2
z2 Concentraciones
Temperaturas
Figura 3.29: Columna de destilaci´ on con los perfiles 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 + Bu + F d; donde:
∆Q1 ∆V1 x= ∆z1 ; ∆z2
u=
a11 a21 A= 0 0 0 0 F = f31 0
∆u1 ∆S
0 a22 a32 a42 )
0 0 0 0
y = Cx
0 0 ; f32 f42
;
d=
0 0 ; 0 0
;
y=
b11 0 0 0 B= 0 b32 0 b42 )
C=
∆xF A1 ∆FA
0 0 c13 0 0 0 0 c24
∆T1 ∆T2
120
Modelado de Procesos
con a11 = −30,3, a21 = 0,12 × 10−3 , 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 significado (ver figura 3.29): ∆Q1 es el flujo de calor producido por el caldero de vapor, ∆V1 es el flujo de vapor producido por el caldero de vapor, ∆u1 es el vapor de calefacci´on, ∆S es el flujo de vapor lateral, ∆z1 es la posici´on del cambio de interfase entre el agua y el isopropanol, ∆z2 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 flujo 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 figura 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 flexible 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. θm
R +
u
Va
eb
-
L
Jm Bm
Mo Ro
Ν1
Kω Ν2
Lo m
θ BL JL
Figura 3.30: Servomotor unido a la carga no lineal mediante un acoplamiento flexible. Problema 3.12 La figura 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 flexible. 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 θm
R +
u
Va
eb
-
L
Jm Bm
Ν1
Ν2
Lo m
Ro τ
’ Union no flexible
θ
θ BL JL
Figura 3.31: Servomotor con carga no lineal de dos grados de libertad. El acoplamiento de la carga al eje del motor no es flexible. Problema 3.13 La figura 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 flexible. Los dos p´endulos poseen la misma longitud y la masa esf´erica es de 0.02 kg. Problema 3.14 La figura 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 flexible. 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
z
Carro z
Figura 3.32: Proceso p´endulo doble no lineal.
+ Fuerza de u control Servomotor D.C.
y
F
z
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 configuraciones usadas para el dise˜ no son el regulador o´ptimo proporcional y el regulador o´ptimo proporcional integral. La u ´ltima configuraci´ 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://fiee.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
´ Control Optimo
124
´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 significa 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: J=
N
L(x(k), r(k), u(k))
(4.1)
k=0
donde k es el tiempo discreto, N es el tiempo discreto final, 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: u2i (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
4.2.
125
´ 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 final 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: N −1 1 T 1 x (k)Qx(k) + uT (k)Ru(k) J = xT (N )Sx(N ) + 2 2
(4.4)
k=0
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 semidefinida positiva S (de dimensi´on n × n) pondera la importancia del estado final x(N ), la matriz hermitiana semidefinida positiva Q (de dimensi´ on n × n) pondera la importancia del vector de estado x(k), y la matriz hermitiana definida positiva R (de dimensi´on r × r) pondera la importancia de la se˜ nal de control u(k). La definici´ 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 finita, 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 verificar 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
´ Control Optimo
126
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) + Hu(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 finito, sus estados puedan ser transferidos desde un estado inicial arbitrario a cualquier otro estado deseado. La condici´ on necesaria y suficiente 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 · · · Gn−1 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 definida 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.3.
(4.11)
´ 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 finito, 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 infinito, 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 infinito, el t´ermino xT (N )Sx(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 T x (k)Qx(k) + uT (k)Ru(k) J= 2
(4.12)
k=0
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
(4.13)
mientras que la matriz de ganancia K resulta: K = [R + H T P H]−1 H T P G
(4.14)
u(k) = −Kx(k)
(4.15)
y la funci´ on de costo m´ınima viene a ser: 1 Jmin = xT (0)P x(0) 2
(4.16)
´ Control Optimo
128
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 figura 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 figura, 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. x (k)
u (k) H
I z -1
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 figura 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 = −Kx. x (k) r(k) k2
+ -
u(k)
+
x (k+1) = G x (k) + Hu(k) -
- -
.. .
C
y(k) = x 2 (k)
k1 k3 .. . kn
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) = −Kx(k) + k2 r(k)
(4.19)
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)
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 z−1
(4.21)
Aplicando la propiedad del valor final (subsecci´ on 2.3.2) a y(z) obtenemos: z−1 y(z) = C(I − G + HK)−1 Hk2 R z→1 z
l´ım y(k) = l´ım
k→∞
(4.22)
´ Control Optimo
130
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
(4.23)
Este procedimiento ser´a validado con los ejemplos 4.1 y 4.2.
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 T J= x (k)Qx(k) + uT (k)Ru(k) 2 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 verifica que RT = R y QT = Q. Asimismo, en la subsecci´on 1.2.4 se dijo que una matriz cuadrada R es definida positiva si las ra´ıces de su ecuaci´on caracter´ıstica |zI − R| = 0 son todas positivas, mientras que una matriz cuadrada Q es semidefinida 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 definida 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
131
La matriz Q puede tomar tambi´en una forma diagonal: q1 0 . . . 0 .. 0 q2 . Q= .. .. . . 0 ... qn donde los elementos qi pueden ser positivos y algunos de ellos nulos para que Q sea una matriz sim´etrica semidefinida 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 figura 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 especificaciones 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 figura 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 J = 0.01 kg-m2 /s2 , coeficiente de fricci´on b = 0.1 N-s/m, constante electromotriz 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
´ Control Optimo
132
R
+ 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: J θ¨ + bθ˙ = KI 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 corriente de armadura, T = Kt I es el torque mot´orico y e = Ke θ˙ es la fuerza contraelectromotriz. Dise˜ nar el controlador o´ptimo estacionario que estabilice la velocidad angular del eje del motor a 1 rad/s con las especificaciones 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 x1 = θ˙ y x2 = I, las ecuaciones de estado y de salida resultan:
K x1 0 x˙ 1 − Jb J = + 1 V x˙ 2 x2 −K −R L L L
4.5 Selecci´ on de las Matrices de Ponderaci´ on
y = x1 =
1 0
x1 x2
133
+ DV ;
D = [0]
El programa ejem4 1.m resuelve el problema planteado y los resultados se muestran en la figura 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;
´ Control Optimo
134
yRpta (rad/s)
end Kr = inv(R + H’*P*H)*H’*P*G; % SE CUMPLE QUE K=Kr Y P=Pr 0.1
0.05 0 0
0.5
1
1.5
2
2.5
3
0.5
1
1.5
2
2.5
3
0.5
1
1.5 Tiempo
2
2.5
3
y (rad/s)
1.5 1 0.5 0 0
V (voltios)
40
20 0 0
(s)
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 especificaciones 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 x˙ 1 − Jb J x˙ 2 = − K − R L L x˙ 3 1 0 y = x3 = 0 0 1
x3 = θ, las ecuaciones de estado y de x1 0 0 0 x2 + L1 V 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 figura 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
´ Control Optimo
136
y (rad)
1.5
1
0.5
0 0
0.5
1
1.5
0.5
1
1.5 Tiempo
2
2.5
3
2
2.5
3
V (voltios)
60 40 20 0 −20 0
(s)
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 figura 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 figura 4.6 podemos formular: x(k + 1) = Gx(k) + Hu(k) y(k) = Cx(k)
(4.24) (4.25)
mientras que la ecuaci´ on del observador toma la forma: ˆ (k)] ˆ (k + 1) = Gˆ x x(k) + Hu(k) + Ke [y(k) − C x
(4.26)
´ 4.6 Dise˜ no del Observador Optimo Cuadr´ atico u(k)
x (k)
+
H
137 y(k)
C
I z −1 + G
^ y(k) − y(k)
Ke + H
+
I z −1
+
^x (k)
C
−
+
+ G
Figura 4.6: Diagrama de bloques del observador de estados ˆ (k) es el vector de estado estimado de dimensi´on n, y ˆ (k) representa donde x 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 finito 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 )n−1 C T ]
(4.29)
´ Control Optimo
138
La condici´ on necesaria y suficiente 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 modificadas, 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 modificar la forma de la ecuaci´ on (4.28) como sigue: det[zI − G + Ke C] = det[(zI − G + Ke C)T ] = det[zI − GT + C T KeT ] (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 modificaciones: G → GT ;
H → CT ;
K → KeT
(4.31)
Empleando tales modificaciones en las estructuras de la ecuaci´on de estado del proceso x(k+1) = Gx(k)+Hu(k), de su ecuaci´on de salida y(k) = Cx(k) y de su ley de control u(k) = −Kx(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: β(k) = −KeT α(k)
(4.33)
Empleando las ecuaciones (4.32) y (4.33) en la funci´ on de costo siguiente: J=
∞ 1 T α (k)Qe α(k) + β T (k)Re β(k) 2
(4.34)
k=0
entonces la correspondiente ecuaci´ on de Riccati toma la forma: Pe = Qe + GPe GT − GPe C T [Re + CPe C T ]−1 CPe GT
(4.35)
y la matriz de ganancia Ke viene dada por: Ke = [Re + CPe C T ]−1 CPe GT
(4.36)
´ 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 figura 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
´ Control Optimo
140 1.8 1.6
Algunos elementos de Pe
1.4 1.2 1 0.8 0.6 0.4 0.2 0 0
5
10
15
20 Muestras
25
30
35
40
k
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 suficiente 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 figura 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)
v(k) −
u (k) KI
+
+
+
H
+ −
I z−1
+
x (k)
y (k) C
+
I z−1
G K
Figura 4.8: El regulador proporcional integral. referencia r(k) un escal´ on unitario, de la figura 4.8 podemos deducir que las
´ 4.7 El Regulador Optimo Proporcional Integral
141
ecuaciones de estado y de salida del proceso son: x(k + 1) = Gx(k) + Hu(k) y(k) = Cx(k)
(4.38) (4.39)
La se˜ nal de control u(k) viene dada por: u(k) = −Kx(k) + KI v(k)
(4.40)
donde la matriz de ganancia del controlador es: K = K1 K2 · · · Kn
(4.41)
La ecuaci´on para el integrador resulta: v(k) = v(k − 1) + r(k) − y(k)
(4.42)
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[−Kx(k) + KI v(k)] = (G − HK)x(k) + HKI v(k)
(4.44)
y de las ecuaciones (4.43) y (4.44) y (4.39) deducimos:
x(k + 1) x(k) G − HK HKI 0 = + r(k + 1) −CG + CHK 1 − CHKI v(k + 1) v(k) 1 (4.45)
x(k) (4.46) y(k) = C 0 v(k) 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(∞) 0 x(∞) G − HK HKI + (4.47) = −CG + CHK 1 − CHKI v(∞) r v(∞)
´ Control Optimo
142 Si definimos: x(k) − x(∞) = xe (k)
(4.48)
v(k) − v(∞) = ve (k)
(4.49)
y restamos ahora la ecuaci´ on (4.47) de (4.45), y luego usando las relaciones (4.48) y (4.49) obtendremos:
G − HK HKI xe (k) xe (k + 1) = −CG + CHK 1 − CHKI ve (k + 1) ve (k)
xe (k) G 0 xe (k) H −K KI = + (4.50) ve (k) ve (k) −CG I −CH La ecuaci´on (4.50) puede ser escrita como: ˜ ˜ ξ(k + 1) = Gξ(k) + Hw(k)
(4.51)
˜ w(k) = −Kξ(k)
(4.52)
donde: ξ(k) =
xe (k) ve (k)
G 0 −CG I
H ˜ H(k) = −CH ˜ K(k) = K −KI
(4.53)
˜ G(k) =
(4.54) (4.55) (4.56)
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 definir la siguiente funci´ on de costo: 1 ˜ ˜ J= + w2 (k)R ξ(k)T Qξ(k) 2 ∞
k=0
(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 ˜ T P˜ H[ ˜ R ˜+H ˜ T P˜ H] ˜ −1 H ˜ T P˜ G ˜ ˜+G ˜ T P˜ G (4.58) P˜ = Q ˜ −1 H ˜ T P˜ G ˜ ˜ = [R ˜+H ˜ T P˜ H] 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 especificaciones 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 figura 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
´ Control Optimo
144
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
y (rad/s)
1.5
1
0.5
0 0
0.5
1
1.5
0.5
1
1.5 Tiempo
2
2.5
3
2
2.5
3
V (voltios)
25 20 15 10 5 0
(s)
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
4.8.
145
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 especificaciones 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´on 4.7). 3) Calcular la matriz de ganancia o´ptima K 4) Calcular la matriz de ganancia o´ptima Ke del observador (secci´on 4.3). 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
´ Control Optimo
146
´optimo cuadr´ atico y la configuraci´ 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 especificaciones 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
147
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
C=
4.9.3.
0,0002 0,0963 ; 0,0049 0,9508
0 0 1,0000 0
0 0 1 0
−0,0004 −0,1497 H= 0,0002 0,0765
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 + 1) = Gξ(k) + Hw(k);
˜ w(k) = −Kξ(k)
donde:
˜ G(k) =
G 0 −CG I
;
˜ H(k) =
H −CH
;
˜ K(k) =
K −KI
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
´ Control Optimo
148
˜ 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´a dando mayor peso al a´ngulo del En la matriz Q 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 amplificador, tenemos que reducir la amplitud de la se˜ nal de entrada (o de control) a dicho amplificador, 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´on de Riccati (4.58) Para calcular la matriz K pero en su forma recursiva: ˜ −G ˜ T P˜ (k)H[ ˜ R ˜+H ˜ T P˜ (k)H] ˜ −1 H ˜ T P˜ (k)G ˜ (4.60) ˜ +G ˜ T P˜ (k)G P˜ (k + 1) = Q El programa siguiente (en c´ odigo MATLAB) calcula el valor estacionario de la matriz soluci´ on P˜ (k), donde P˜ (0) es una condici´ 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
˜ H1 ≡ H, ˜ P ≡ P˜ , Q ≡ Q ˜ y R ≡ R. ˜ As´ı obtenemos: donde G1 ≡ G,
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
˜ empleando la Conocida la matriz P˜ , podemos ahora calcular la matriz K ecuaci´on (4.59). As´ı se obtiene:: ˜ −1 H ˜ T P˜ G ˜ = [K ˜ = [R ˜+H ˜ T P˜ H] K
− KI ]
donde: K = [−7,7295
− 1,7311
− 2,9357
− 2,6291];
KI = [−0,0097]
´ 4.9 Control Optimo Cuadr´ atico del P´ endulo Invertido
4.9.4.
149
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 :
Re =
1 0 0 10
;
1 0 0 0 0 1000 0 0 Qe = 0 0 0,9 0 0 0 0 1000
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 influencia 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
´ Control Optimo
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
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
4.9.5.
T 0,0185 2,8240 0,3450 4,7913
´ 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 amplificador. 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 figuras 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
153
xlabel(’Tiempo (s)’) print -deps -f spou 1.6 1.4 1.2
Posición del carro
1 0.8 0.6 0.4 0.2 0 −0.2 0
2
4
6
8
10 Tiempo
12
14
16
18
20
(s)
Figura 4.10: Simulaci´ on del sistema p´endulo invertido: posici´ on del carro.
4.9.6.
El Hardware del Sistema de Control
La figura 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 amplificador 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 figura 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 codificador 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.
´ Control Optimo
154 0.15
Posición angular del péndulo
0.1
0.05
0
−0.05
−0.1 0
2
4
6
8
10 Tiempo
12
14
16
18
20
(s)
Figura 4.11: Simulaci´ on del sistema p´endulo invertido: posici´ on angular del p´endulo. 0.7 0.6 0.5
Señal de control u
0.4 0.3 0.2 0.1 0 −0.1 −0.2 0
2
4
6
8
10 Tiempo
12
14
16
18
20
(s)
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
PA COMPUERTAS DIGITALES DE ENTRADA Y SALIDA
AMPLIFICADOR PWM
DAC0 DAC1 PA0 .. . PA7
16 bits
MUX PB
PC
PB0 .. . PB7
16 bits
PROCESO: ’ PENDULO INVERTIDO / GRUA PUENTE SENSOR EN EL MOTOR SENSOR EN LA VARILLA SALIDAS
PC0 .. . PC6 PC7 Fs
CONTADOR / TEMPORIZADOR
OUTB0
Figura 4.13: Implementaci´ on del sistema de control.
´ Control Optimo
156
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 codificador o´ptico incorporado (ver figura 4.15). El peso total del carro es de 920 gr. El esquema del carro se muestra en la figura 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 codificador 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 codificador 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 figura 5.13). Canal A Canal B Fuente de luz Transistor ’optico Eje del servomotor Disco con mascara ’
Figura 4.17: Codificador 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
´ Control Optimo
158
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 codificador 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 codificador 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 decodificador 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 figura 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 codificadores 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 figura 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 Amplificador de Potencia Un amplificador de potencia basado en la modulaci´ on PWM (”Pulse Width Modulation”) alimenta al servomotor D.C. Este amplificador est´ a compuesto por un modulador PWM de baja potencia (el LM3524), una l´ ogica digital de disparo y un conmutador amplificador 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
4 bits Puerto digital PA
Clock UP 74HC Clock Down 193
8 bits 4 bits
4 bits Puerto digital PB
159
Canal A
74HC 193
74HC 193
LS7083
R
Canal B
L
8 bits 4 bits
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 amplificador y los sensores se realiza en la forma siguiente: Puerto A: recibe los 8 bits menos significativos del sensor. Puerto B: recibe los 8 bits m´as significativos 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.
´ Control Optimo
160 Selecci´ on de la Frecuencia de Muestreo
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 (“off-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´ aficos). El Archivo de Interfaz Para facilitar el uso de la tarjeta de adquisici´ on de datos se crearon los archivos FUNC PEN.H y FUNC PEN.CPP, los cuales utilizan la librer´ıa de
´ 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: ConfigurarHardware: inicializa la tarjeta Lab-PC+, configura los puertos y especifica 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 fin 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 fin 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 flanco 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 flujo del programa se muestra en la figura 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.
´ Control Optimo
162
INICIO INMICIALIZA: - TARJETA DE ADQUISICION DE DATOS - VARIABLES
BORRA CONTADORES
ESTABLECIMIENTO DE LA POSICION CERO DEL CARRO Y LA VARILLA
TIEMPO < TIEMPO LIMITE
NO
FIN
SI DETECTA FLANCO DE SUBIDA DEL PULSO DE RELOJ
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 flujo del programa de control.
´ 4.9 Control Optimo Cuadr´ atico del P´ endulo Invertido
163
Inicializaci´ on de la Tarjeta de Adquisici´ on de Datos El hardware de la tarjeta Lab-PC+ se configura con la funci´ on para inicializaci´ on ConfigurarHardware(Fs), en donde se especifica 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 identifique 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 flanco 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: −(65536−65534) = −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_act32768) *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) = G˜ x x(k) + Hu(k) + Ke [y(k) − C 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 (“off-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;i127);//valida solo PC7 (clk de la tarjeta-OUTB0) //(pooling) } void ResetContadores()
´ 4.9 Control Optimo Cuadr´ atico del P´ endulo Invertido
169
{ outportb(PORTC,inportb(PORTC)|8); for(int i=0;i