CONTROL AVANZADO

Dise˜ o y Aplicaciones en Tiempo Real n

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

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

II

Control Avanzado
Dise˜o y Aplicaciones en Tiempo Real n
Copyright c 2001 Arturo Rojas-Moreno. Reservados todos los derechos. ISBN 9972–9318–0–3 Ni todo el libro ni parte de esta publicaci´n puede ser reproducida, archivada, o transmitida o distribuida en forma alguna o mediante alg´n medio electr´nico, u o mec´nico, o de otra ´ a ındole, sin que exista previamente y por escrito el permiso de autorizaci´n del autor. o

Dedicatoria

A mi Familia A mi Alma Mater

´ Indice general
Dedicatoria Prefacio 1. Matem´tica Asistida con Computadora a 1.1. C´lculo Matricial . . . . . . . . . . . . . . . . . . . . . . . a 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´lisis Vectorial . . . . . . . . . . . . . . . . . . . . . . . a 1.2.1. Independencia, Ortonormalidad y Normas . . . . . 1.2.2. Rango de una Matriz, Eigenvalores y Eigenvectores 1.2.3. Diagonalizaci´n de Matrices . . . . . . . . . . . . . o 1.2.4. Formas Cuadr´ticas y Bilineales . . . . . . . . . . a 1.3. La Transformada de Laplace . . . . . . . . . . . . . . . . 2. Sistemas Discretos 2.1. Dise˜o de Sistemas de Control Digital . . n 2.2. Concepto de Estado y Variables de Estado 2.2.1. Linealizaci´n de Procesos . . . . . o 2.3. Fundamentos de Sistemas Discretos . . . . 2.3.1. Muestreo y Reconstrucci´n . . . . o 2.3.2. La Transformada Z . . . . . . . . . 2.3.3. La Transformada Z Inversa . . . . 2.3.4. Funci´n de Transferencia de Pulso o 2.3.5. El Espacio de Estado Discreto . . 2.3.6. Controlabilidad y Observabilidad .
III XI

. . . . . . . . . .

. . . . . . . . . .

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

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

VI

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

3. Modelado de Procesos 3.1. Modelo del Proceso P´ndulo Invertido . . . . . . . . . . e 3.1.1. Modelo del Subsistema Carro-P´ndulo . . . . . . e 3.1.2. Modelo del Subsistema Motor-Polea . . . . . . . 3.1.3. Representaci´n en el Espacio de Estado . . . . . o 3.1.4. Obtenci´n del Modelo Lineal . . . . . . . . . . . o 3.1.5. El Modelo en el Espacio de Estado Discreto . . . 3.2. Modelo del Proceso Gr´a-Puente . . . . . . . . . . . . . u 3.2.1. Modelo del Subsistema Carro-Varilla . . . . . . . 3.2.2. Modelo del Subsistema Motor-Polea . . . . . . . 3.2.3. Representaci´n en el Espacio de Estado . . . . . o 3.2.4. Obtenci´n del Modelo Lineal . . . . . . . . . . . o 3.2.5. El Modelo en el Espacio de Estado Discreto . . . 3.2.6. Resumen de Variables y Par´metros . . . . . . . a 3.2.7. Identificaci´n de la Zona Muerta del Servomotor o 3.3. Modelo del Servomotor D.C. No Lineal . . . . . . . . . . 3.3.1. El Subsistema Mec´nico . . . . . . . . . . . . . . a 3.3.2. El Subsistema El´ctrico . . . . . . . . . . . . . . e 3.3.3. Conversi´n de Energ´ El´ctrica en Mec´nica . . o ıa e a 3.3.4. Modelo y Compensaci´n de no Linealidades . . . o 3.3.5. Linealizaci´n y Discretizaci´n del Proceso . . . . o o 3.4. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . 3.5. Problemas Propuestos . . . . . . . . . . . . . . . . . . . ´ 4. Control Optimo 4.1. Introducci´n . . . . . . . . . . . . . . . . . . o ´ 4.2. Control Optimo Cuadr´tico No Estacionario a ´ 4.3. Control Optimo Cuadr´tico Estacionario . . a ´ 4.4. El Regulador Optimo Proporcional . . . . . 4.5. 4.6. 4.7. 4.8. 4.9.

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

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

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selecci´n de las Matrices de Ponderaci´n . . . . . . . . . . o o ´ Dise˜o del Observador Optimo Cuadr´tico . . . . . . . . . n a ´ El Regulador Optimo Proporcional Integral . . . . . . . . Procedimiento de Dise˜o e Implementaci´n . . . . . . . . n o ´ Control Optimo Cuadr´tico del P´ndulo Invertido . . . . a e 4.9.1. Formulaci´n del Problema . . . . . . . . . . . . . . o 4.9.2. El Modelo del Proceso a Controlar . . . . . . . . . 4.9.3. C´lculo de la Matriz de Ganancia del Controlador a 4.9.4. C´lculo la Matriz de Ganancia del Observador . . a

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

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

´ INDICE GENERAL ´ 4.9.5. Simulaci´n del Sistema de Control Optimo . . . . o 4.9.6. El Hardware del Sistema de Control . . . . . . . . 4.9.7. Implementaci´n del Software de Control . . . . . . o 4.9.8. Resultados Experimentales . . . . . . . . . . . . . ´ 4.10. Control Optimo Cuadr´tico de la Gr´a-Puente . . . . . . a u 4.10.1. Formulaci´n del Problema . . . . . . . . . . . . . . o 4.10.2. Simulaci´n del Sistema Controlado . . . . . . . . . o 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´n . . . . . . . . . . . . . . . . . . . . . . . . . o 5.2. Modelando Procesos No Lineales . . . . . . . . . . . . . 5.3. Procedimientos de Estimaci´n . . . . . . . . . . . . . . . o 5.3.1. El M´todo de los M´ e ınimos Cuadrados Recursivo 5.3.2. M´ ınimos Cuadrados Recursivo Mejorado . . . . . 5.3.3. Estimaci´n de Estados . . . . . . . . . . . . . . . o 5.4. La Ley de Control . . . . . . . . . . . . . . . . . . . . . 5.5. Procedimiento de Dise˜o . . . . . . . . . . . . . . . . . . n 5.6. Control Adaptivo de un Servomotor No Lineal . . . . . 5.6.1. Formulaci´n del Problema . . . . . . . . . . . . . o 5.6.2. El Modelo del Proceso . . . . . . . . . . . . . . . 5.6.3. Estimaci´n de Par´metros . . . . . . . . . . . . . o a 5.6.4. Estimaci´n de Estados . . . . . . . . . . . . . . . o 5.6.5. La Ley de Control . . . . . . . . . . . . . . . . . 5.6.6. La Ley de Control Residual . . . . . . . . . . . . 5.6.7. Simulaci´n del Sistema de Control Adaptivo . . . o 5.6.8. Implementaci´n del Hardware . . . . . . . . . . . o 5.6.9. Implementaci´n del Software de Control . . . . . o 5.6.10. Resultados Experimentales . . . . . . . . . . . . 5.7. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . 5.8. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

VII

150 153 160 177 179 179 180 183 187 187 202

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

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

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

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

VIII

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

6.4. El Modelo del Predictor . . . . . . . . . . . . . . . . 6.4.1. Predicci´n de y(t + k/t) . . . . . . . . . . . . o 6.4.2. Predicci´n de n(t + k/t) . . . . . . . . . . . . o 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˜o . . . . . . . . . . . . . . . . n 6.7. Control de Posici´n de un Servomotor . . . . . . . . o 6.7.1. Formulaci´n del Problema . . . . . . . . . . . o 6.7.2. Respuesta Libre del Proceso . . . . . . . . . . 6.7.3. Respuesta del Proceso al Escal´n . . . . . . . o 6.7.4. La Ley de Control . . . . . . . . . . . . . . . 6.7.5. Simulaci´n del Sistema de Control Predictivo o 6.7.6. Implementaci´n del Hardware . . . . . . . . . o 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´n del Problema CMI . . . . . . . . . . o 7.2.1. El Modelo del Proceso . . . . . . . . . . . 7.2.2. Descripci´n de Incertidumbres del Modelo o 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˜o . . . . . . . . . . . . . . n 7.6. Control Robusto de un Servomotor No Lineal . . 7.6.1. Formulaci´n del Problema . . . . . . . . . o 7.6.2. Dise˜o del Sistema de Control Robusto . n

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

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

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

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

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

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

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

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

IX

374 375 376 380 380 399

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

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

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

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

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

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

.

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

2) con sus herramientas o “Control Systems”.pe/728681F.uni. constituyeron proyectos de investigaci´n realizados en la Secci´n de Postgrado de la Facultad de o o Ingenier´ El´ctrica y Electr´nica de la Universidad Nacional de Ingenier´ ıa e o ıa (http://fiee. en los listados de los programas fuente a prescindiremos de tal acentuaci´n. Como tales paquetes de software u no emplean el acento ortogr´fico. versi´n a o 4. y para la simulaci´n de las aplicao ciones.52. y la representaci´n de los mismos en el espacio de estado. Cap´ ıtulo 2: Sistemas Discretos.). cuyos sistemas de control avanzado van a o . Para o separar la parte entera de la parte decimal de los n´meros decimales.edu. los programas elaborados tambi´n pueden ejecutarse e en versiones de software m´s actualizadas. En este cap´ o ıtulo se desarrolla la modelaci´n de los tres procesos. Presenta los conceptos fundamentales acerca de los sistemas de control realimentados operando en el tiempo discreto.uni. El software para las aplicaciones en tiempo real est´ escrito en C/C++ de “Borland”. Espec´ ıficamente. Antes de a emplear tales programas. para el desarrollo de los ejemplos y problemas. casa de estudios de la cual soy docente. De all´ la raz´n del nombre del cap´ ı o ıtulo. debido a que los paquetes de software MATLAB y Borland C/C++ s´lo permiten emplear el puno to (. Herramientas Computacionales La gran mayor´ de los ejercicios y problemas formulados en este libro se ıa desarrollan con el auxilio de la computadora personal. Los programas fuente se pueden a descargar de mi p´gina web: http:/fiee. o Cap´ ıtulo 3: Modelaci´n de Procesos.) para expresar n´meros decimales. La mayor´ de los ejemplos se desarrollan con el auxilio del ıa software MATLAB.edu.TXT. seguireu mos usando el punto (.pe). leer el archivo README.) en lugar de la coma (. Evidentemente. Describe a en forma sucinta algunos t´picos de matem´ticas aplicadas (b´sicamente o a a an´lisis matricial y vectorial) necesarios para el desarrollo de los cap´ a ıtulos posteriores.XII Prefacio dise˜o presentados en los cap´ n ıtulos del cuatro al ocho. Sistema de Unidades y Acentuaci´n en Programas Fuente o Esta publicaci´n emplea el Sistema Internacional (SI) de unidades. o Sobre el Contenido de los Cap´ ıtulos Cap´ ıtulo 1: Matem´tica Asistida con Computadora. “Signal Processing” y “SIMULINK”. se emplea el software “MATLAB” (versi´n 4.

operando con carga no lineal y variable. El procedimiento desarrollado se aplica para implementar en o tiempo real el control adaptivo con autosintonizaci´n de la posici´n de un o o servomotor D. el cap´ o ıtulo desarrolla dise˜os de sistemas n de control optimo cuadr´tico para varios procesos t´ ´ a ıpicos. el cap´ o ıtulo desarrolla dise˜os de sistemas de control robusto n para diversos procesos t´ ıpicos.C.C. Desarrolla los fundamentos relacionados con el control no lineal de procesos empleando la t´cnica denominae da linealizaci´n por realimentaci´n. ´ Cap´ ıtulo 4: Control Optimo. para luego presentar en detalle el procedimiento de dise˜o de un sistema de control adaptivo con autosinn tonizaci´n. En su secci´n problemas. Cap´ ıtulo 6: Control Predictivo. Discute brevemente acerca de los principales sistemas de control adaptivo.C. (“Direct Current”) sujeto a cargas no u lineales. En su a secci´n problemas. se desarrolla el dise˜o e implementaci´n del sistema de control por e n o linealizaci´n de la realimentaci´n de la posici´n de un servomotor D. modelado con incertidumbres. empleando el algoritmo de control con modelo interno. . a Cap´ ıtulo 7: Control Robusto. Cap´ ıtulo 5: Control Adaptivo. el cap´ o ıtulo presenta la modelaci´n de o diversos procesos t´ ıpicos.C. Tambi´n. A continuaci´n. el cap´ ıtulo presenta dise˜os de sistemas de control adaptivo con n autosintonizaci´n para varios procesos t´ o ıpicos. Desarrolla los fundamentos del control o ´ptimo cuadr´tico discreto y dos aplicaciones en tiempo real: control optimo a ´ de posici´n del p´ndulo invertido y control optimo de posici´n de la gr´ao e ´ o u puente. Trata los fundamentos del control robusto basado en la t´cnica de control con modelo interno. En su secci´n o problemas. el cap´ o ıtulo desarrolla dise˜os de sistemas de control pren dictivo para diversos procesos t´ ıpicos. En su secci´n problemas. Tales procesos son: el p´ndulo invertido. En su secci´n problemas.XIII ser implementados en tiempo real. Cap´ ıtulo 8: Control No Lineal. Presenta los fundamentos del control predictivo basado en modelos y desarrolla una aplicaci´n en tiempo o real: control predictivo de la posici´n de un servomotor D.C. el cap´ o ıtulo desarrolla dise˜os de sistemas n de control no lineal para diversos procesos t´ ıpicos. e la gr´a-puente y el servomotor D. en su sece ci´n problemas. empleando el algoritmo de la matriz din´mica de control. e o dicha t´cnica se aplica para el control robusto en tiempo real de la posici´n e o de un servomotor D. Para validar los fundamentos de dicha o o t´cnica. sujeto a cargas o no lineales empleando el algoritmo de la matriz din´mica de control. no o o o lineal. naturalmente.

7 y 8. a entre otros) que deseen familiarizarse con las t´cnicas digitales para dise˜ar e n e implementar en tiempo real sistemas de control avanzado.edu. mientras que Rommel o Romero (mi futuro alumno) se encarg´ de todo lo relativo a la impresi´n del o o libro. y tratar sucintamente los cap´ ıtulos 5. Mec´nica ıa e o a y/o Mecatr´nica. este volumen puede ser usado como libroo texto en las especialidades de Ingenier´ El´ctrica. Arturo Rojas Moreno. para el dictado de un curso semestral. Electr´nica. 2. este libro puede ser empleado tambi´n por la gran audiencia de ingenieros y t´cnicos especializados que ejercen e e en la industria y por los investigadores de otras areas (f´ ´ ısicos. Mi agradecimiento a su Director. Para un curso de ´ antegrado se sugiere desarrollar los cap´ ıtulos 1.uni. problemas y aplicaciones desarrollados. Omar Tupayachi (cap´ ıtulos 3 y 8) y Ra´l Benitez (cap´ u ıtulos 6 y 7).pe/728681F . Por su car´cter aplicativo. 3. Agradecimientos La publicaci´n de este libro fue financiada en parte por el Instituto Geneo ral de Investigaci´n de la UNI.XIV Prefacio Pre-requisitos y Configuraci´n de Cursos o Por su contenido y su presentaci´n. quedando los cap´ ıtulos 1 y 2 como medio de consulta. Mi gratitud especial a mis alumnos que colaboraron con esta publicaci´n: Leonardo Gushiken (cap´ o ıtulos 3 y 4).com arojas@uni. arojasm@viabcp. 4 y 6. Para un curso de postgrado se sugiere cubrir los cap´ ıtulos 3 al 8. Guillero mo Lira. La revisi´n de todo lo o escrito estuvo a cargo de mi alumna Claudia C´rdova. por el tratamiento claro y f´cilmente coma a prensible del material presentado y gracias a la gran cantidad de ejemplos.D. Ph. matem´ticos. Luis Lecina (alumno de la Universidad Polit´cnica de Catalu˜a) colabor´ con el cap´ e n o ıtulo 5.pe http://fiee. tanto de antegrado o (a llevarse en los ultimos semestres) como de postgrado.edu. Dr.

. C´lculo Matricial a Operaciones y Tipos de Matrices Nomenclatura La nomenclatura que se explica a continuaci´n no est´ libre de excepo a ciones a la regla. . . [14] y el ap´ndice A de [3]. el an´lisis vectorial y la transformada de a a Laplace. i = 1. j = 1. a1m  . Tales excepciones ser´n aclaradas conforme aparezcan.  A = [aij ] =  . n. Para mayores detalles del material cubierto se recomienda consultar las referencias [18]. Todos los archivos correspondientes a los ejercicios desarrolados se pueden descargar del sitio: http://fiee. .edu. Es decir:   a11 . . la cual ser´ denotada o a siempre con letra may´scula. . .pe/728681F. m . [20]. . .1. . . 1.Cap´ ıtulo 1 Matem´tica Asistida con a Computadora Este cap´ ıtulo es una breve exposici´n de los fundamentos matem´ticos relao a cionados con el an´lisis matricial. . en su gran mayor´ se realizan con el auxe a ıa. es un arreglo rectangular con sus elementos u aij dispuestos en n filas y m columnas.uni.1. ilio del paquete MATLAB. anm . El material seleccionado est´ estrechamente relacionado con el matea rial a desarrollarse en los cap´ ıtulos siguientes. .  . [19]. [21]. an1 . . a Una matriz A de orden (o dimensi´n) n × m. .1. 1. [22]. Los c´lculos.

) y la entrada u(. emplearemos variables reducidas (escritas con letra min´scula). s y z son las variables laplaciana y zeta. n o En el caso de vectores variantes con el tiempo (continuo o discreto). las transformadas o o de Laplace de A(t). Sin embargo. el vector columna x(t) a de orden n se representa como:   x1 (t)  . g(t) y g(k) son las respuestas del sistema a un impulso unitario. se designa como: y(t) = g(t) ∗ u(t). y(s) = G(s)u(s) y(z) = G(z)u(z) donde el asterisco denota la operaci´n convoluci´n. o 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. la barra sobre una variable tiene el significado de se˜al reconstruida por un dispositivo de retenci´n. Cuando n = 1. x(t) e Y(t) (subsecci´n 1.  . los vectores ser´n denotados en negrita. las cuales tambi´n se denominan variables de desviaci´n o u e o perturbacionales.) de un sistema. El cambio de dominio (o de argumento) de una matriz o vector debido a una transformaci´n s´lo afecta al dominio.3) se representan como A(s). y(k) = g(k) ∗ u(k). etc. los estados de equilibrio de A(k) e Y(k) son A(k) e Y(k) respectivamente. otras matrices. Por ejemplo.  x(t) =  . la variable reducida de Y(k) es: ¯ y(k) = Y(k) − Y(k) . o x(s) e Y(s) respectivamente. Por ejemplo. xn (t) El vector fila correspondiente es: xT (t) = x1 (t) · · · xn (t) .2 Matem´tica Asistida con Computadora a Los elementos de una matriz pueden ser n´meros (reales o complejos). Por ejemplo. t y k son los tiempos o o continuo y discreto. Cuando m = 1. u funciones. G(s) y G(z) son funciones de transferencia y. y cuando sea necesario. x(t) = x1 (t) · · · xn (t) T donde el super´ ındice T indica transpuesta. A se convierte en un vector fila. La relaci´n entre la salida y(. En muy contados casos. ¯ ¯ Por ejemplo. depeno diendo del argumento. M´s adelante veremos que el asterisco tambi´n denota a e la operaci´n conjugada en expresiones complejas. A toma la forma de un vector columna.

Si u u A es de orden n × m y B es de orden m × r. en general.). a La suma de dos matrices. n. Dos matrices A = [aij ] y B = [bij ] son iguales si son del mismo orden y adem´s [aij ] = [bij ]. entonces C debe ser de orden n × r.). respectivamente. 2. 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. x(.) (para cualquier argumento) se ˆ ˆ ˆ representan como A(.1 C´lculo Matricial a 3 Las formas estimadas de A(. la multiplicaci´n no es conmutativa: o AB = BA . Los elementos de C se determinan como sigue: m cij = k=1 aik bkj . Es decir: κA = κ[aij ] = [κaij ] La multiplicaci´n es asociativa: o ABCD = (AB)(CD) = A(BCD) = (ABC)D y distributiva: (A + B)(C + D) = AC + AD + BC + BD Cuando AB = BA. i = 1. s´lo es o o posible si el n´mero de columnas de A es igual al n´mero de filas de B. x(. .).1. . se dice que A y B son matrices que conmutan. denotada como C = AB. denotada como C = A ± B. . Sin embargo. 2. .) e Y(. . s´lo es posible si o A y B son del mismo orden: C = [cij ] = A ± B = [aij ± bij ] La multiplicaci´n de dos matrices. . .) e Y(. . entonces κA resulta una matriz en donde cada elemento queda multiplicado por κ. j = 1. m Por ejemplo: a11 a12 a13 a21 a22 a23   b11  b21  = b31 c11 c21 = a11 b11 + a12 b21 + a13 b31 a21 b11 + a22 b21 + a23 b31 Si κ es un escalar.

implica que A = 0 o B = 0. . toma la conjugada y luego o la transpuesta (o toma la transpuesta y luego la conjugada) de la matriz A. (AB)H = B H AH . no necesariamente implica que B = C.   .  . . es la matriz A con sus filas y columnas intercambiadas. . . o simplemente una diagonal con elementos aii . donde j = −1 es la u unidad de los n´meros imaginarios y tanto σ como ω son n´meros reales. . entonces la matriz es triangular inferior. denotada como AT . u u ∗ . 0    D = [dii ] =  . . dnn Una matriz cuadrada se denomina triangular superior si los elementos debajo de su diagonal son todos ceros. o que A y B sean singulares (ecuaci´n (1. entonces la matriz se denomina cuadrada de orden n. o La matriz transpuesta. . toma la conjugada a todos los La operaci´n conjugada. (AB)∗ = A∗ B ∗ La operaci´n hermitiana. Tipos de Matrices Si el orden de una matriz A es n × n. denotada como A o elementos complejos de A. denotada como AH . Por consiguiente: (AT )T = A. . Para la operaci´n conjugada se cumple: o (A∗ )∗ = A. Es decir: AH = (A∗ )T = (AT )∗ Por consiguiente: (AH )H = A. . . .1)). (A + B)H = AH + B H .4 Matem´tica Asistida con Computadora a Si AB = 0. . . Si AB = AC. . 0 0 0 . 0  0 d22 0 . . (A + B)T = AT + B T . Si los elementos encima de de su diagonal son todos ceros. (A + B)∗ = A∗ + B ∗ . Esta matriz posee una diagonal principal. (AB)T = B T AT √ Un n´mero complejo se designa como s = σ + jω. 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 .

Es decir: 2 1 1 A = B + C = (A + AH ) + (A − AH ) 2 2 1.1 C´lculo Matricial a 5 La matriz identidad I.2) Para obtener el determinante de una matriz de orden n > 2 podemos emplear el m´todo de la expansi´n. Si tomamos como base la primera fila.1.1. o Una matriz cuadrada A con elementos complejos puede ser escrita como la suma de una matriz hermitiana B = 1 (A + AH ) m´s una matriz a 2 antihermitiana C = 1 (A − AH ). y en general se cumple que: A es sim´trica si: e A es antisim´trica si: e A es ortogonal si: A es peri´dica si: o 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: AT = A AT = −A AAT = AT A = I Aκ+1 = A. o AI = IA. denotada tambi´n como In (n es el orden de e la matriz). Determinantes y Matriz Inversa Determinantes El determinante de la matriz A = [aij ] de orden 2 es: det a11 a12 a21 a22 = a11 a22 − a12 a21 (1. e o el determinante de una matriz A se obtiene de: n det(A) = j=1 (−1)1+j a1j det(A1j ) = (−1)1+1 a11 det(A11 ) + (−1)1+2 a12 det(A12 ) + · · · . T ∗ κ κ es un entero positivo κ es un entero positivo (A ) = (A∗ )T = AH = A AH = −A AAH = AH A = I AAH = AH A AA−1 = A−1 A = I det(A) = 0 (1.2. punto que se trata en la siguiente subsecci´n. A = 0.1) donde det(A) denota el determinante de A. Si A es cuadrada. es una matriz diagonal que s´lo posee unos.

. entonces: (AB)−1 = B −1 A−1 . ((A∗ )T )−1 = ((A−1 )∗ )T . Si sumamos un m´ltiplo de una fila o columna de A a cualquiera de u sus filas o columnas.4) . Si B se obtiene intercambiando dos filas o columnas de A. 2. 6. vale recordar que: A= a b c d .6 Matem´tica Asistida con Computadora a donde A1j . 7. det(A) = λ1 λ2 . Si dos filas o columnas de A son iguales. . A−1 = 1 ad − bc d −b −c a (1. . j = 1. 3. . Por ejemplo. entonces det(B) = −det(A). λ2 . det(A) = det(AT ).3) Con relaci´n a dos matrices cuadradas A y B de orden n: o 1. si det(A) = 0 y det(B) = 0. . La determinaci´n de eigenvalores se trata en la subsecci´n 1.2. Si κ multiplica una fila o columna de A. 4. . det(A) = 0. Si los eigenvalores de A son λ1 . det(AB) = det(BA) = det(A)det(B) 8. es decir. el determinante de una matriz de orden n = 3 se calcula como:   a11 a12 a13 a22 a23 + det  a21 a22 a23  = (−1)1+1 a11 det a32 a33 a31 a32 a33 (−1)1+2 a12 det a21 a23 a31 a33 + (−1)1+3 a13 det a21 a22 a31 a32 (1. o o Matriz Inversa Si A y B son dos matrices no singulares. . Si cada elemento de una fila o columna de A es cero. . el valor del det(A) no cambia. . entonces el det(A) queda multiplicado por κ.2. . n es la matriz que resulta luego de eliminar la fila 1 y la columna j de A. λn . 5. λn . entonces det(A) = 0. (AT )−1 = (A−1 )T det(A−1 ) = 1 det(A) Si A es una matriz no singular de orden 2.

6) Este lema se demuestra pre-multiplicando cada miembro de la ecuaci´n (1. Si g = gr + jgi es un n´mero o una funci´n real o u o compleja. g = e[g] + j m[g] = |g|∠g ∠g = arctan m[g] e[g] ( e[g])2 + ( m[g])2 . C y D son matrices no o singulares de orden n × n.1 C´lculo Matricial a Si A es una matriz no singular de orden 3: a b A= d e g h  A−1  det  1   −det = det(A)    det   c f  i         7 e h d g d g f i f i e h −det det −det b h a g a g c i c i b h det −det det b e a d a d c f c f b e det(A) = aei + gbf + cdh − gec − ahf − idb (1. Si A. .] e m[. n × m. es un n´mero real positivo o cero.1. entonces se cumple que: e[g] = gr . m × n y n × n respectivamente.] son los operadores real e imaginario respectivamente. Si e[. El angulo de g en rad u ´ se denota como ∠g.6) o por (A + BDC). entonces: (A + BDC)−1 = A−1 − A−1 B(D−1 + CA−1 B)−1 CA−1 (1. Luego.5) Lema de Inversi´n de Matrices. su valor absoluto. 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. conocido tambi´n como m´dulo o magnitud y e o denotado como |g|. B. |g| = m[g] = gi .

. entonces las operaciones anteriores se ejecutan elemento por elemento. es decir: e[G] = e[gij ]. Ejemplo 1.3267 . B = (conj(A)+conj(A’)-0.0977i 2.2952 + 0. % B = 1. ∠G = ∠gij La tabla 1.1614 + 0.0957i % 0.2 Determinar la matriz hermitiana B y la antihermitiana C de la matriz A del ejemplo anterior. m[G] = m[gij ] |G| = |gij |.3510i 0.7jA3 )A−1 AH |A|∠A e[A] m[A] (2j + 1) traza(A)det(A) Soluci´n: El programa en MATLAB para calcular B es el siguiente: o % ejem1_1. angle(A)*real(A)*imag(A)/((2*j+1)*trace(A)*det(A))..1.0.5050i -2.7135 + 0.9809 + 1.j 4j -2 3+5j 6-j 7-j 8+3j].   1−j 2−j 3−j −2 3 + 5j  A =  4j 6 − j 7 − j 8 + 3j B= (A∗ + AT − 0.1 Dada la matriz cuadrada A.0e+002 * % 0.m EJEMPLO SOBRE CALCULO MATRICIAL COMPLEJO clear all A = [1-j 2-j 3.9592i -7.9495i -2.8222 + 0.3550i Ejemplo 1. .0.3551i % 0.8 Matem´tica Asistida con Computadora a Si G es una matriz compleja con elementos gij .2. calcular B.8007 .6468 .2488 . G = |G|∠G = |gij |∠gij .7j*A^3)*inv(A)*A’*abs(A)* .1991i 0.1 muestra los comandos para ejecutar operaciones matriciales empleando MATLAB.

1.1 C´lculo Matricial a 9 Cuadro 1.B A*B kappa*A conj(A) A’ conj(A’). X = B/A abs(A) angle(A) real(A) imag(A) trace(A) eye(n) A+B A−B AB κA. A. X = A\B X*A = B.’ A’ A^n det(A) inv(A) A*X = B. κ: complejo A∗ AT AT AH An det(A) A−1 |A| ∠A [A] [A] n i=1 aii In .1: Comandos para c´mputo matricial o Operaci´n o Suma Resta Multiplicaci´n o Multiplicaci´n o Conjugada Transpuesta (A real) Transpuesta (A compleja) Hermitiana Potencia Determinante Inversa Divisi´n izquierda o Divisi´n derecha o Valor absoluto ´ Angulo Parte real Parte maginaria Traza Matriz identidad C´digo MATLAB o A + B A .

B = (A + A’)/2. % ZC RESULTA LA MATRIZ CERO 1 C = (A − AH ) 2 y se puede comprobar que B = B H y C = −C H . C = (A . . . . 2 % ejem1_2.    B22 B23 A22 A23 A21 AB =  A32 A33 A31   B32 B33  A42 A43 A41 B12 B13 Soluci´n: Podemos notar que para A: n = 2 + 3 + 4 = 9. o y para B: m = 2 + 3 + 1 = 6 y p = 2 + 3 = 5.A’)/2. el producto o resulta: . Determinar si el producto siguiente es v´lido y si lo es. . Ejemplo 1. Por consiguiente.m MATRICES HERMITIANAS clear all A = [1-j 2-j 3-j 4j -2 3+5j 6-j 7-j 8+3j]. m = m1 + · · · + mm y p = p1 + · · · + pp . es que las columnas de A y las filas de B sean particionadas en la misma forma.m. Ann m1 · · · Ann mm Bmm p1 · · · Bmm pp La condici´n necesaria para realizar el producto Cnp = Anm Bmp empleando o particiones.Dos matrices Anm y Bmp o o (los sub´ ındices indican las dimensiones) pueden ser particionadas como sigue:     An1 m1 · · · An1 mm Bm1 p1 · · · Bm1 pp     . . a obtener C = AB. Ver programa ejem1 2.  .B’. la partici´n o es correcta. m = 2 + 3 + 1 = 6. Por tanto. .3 Multiplicaci´n con Partici´n de Matrices. . % ZB RESULTA LA MATRIZ CERO ZC = C + C’. n = n1 + · · · + nn . La multiplicaci´n ahora es directa: o   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´n MATLAB. . .10 Matem´tica Asistida con Computadora a Soluci´n: Las matrices pedidas son: o 1 B = (A + AH ). conociendo las matrices particionadas.. A= B= . . ZB = B .

dt dy = Cy + Dw dt Soluci´n: Las matrices A con C y B con D forman matrices aumentadas o como sigue: dx dt dy dt = A 0 0 C x y + B 0 0 D v w Ejemplo 1. . y. . m. % DETERMINA LOS EIGENVALORES DE A detA = det(A). comprobar num´ricamente que: i = 1. .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]. o % ejem1_5. 11 Ejemplo 1.Si los vectores x. y definiendo: E= A B 0 D .. . L = eig(A).4 Matriz Aumentada. % SE DEBE CUMPLIR QUE: P = detA Ejemplo 1. Bnm . v y w son de orden n.1 C´lculo Matricial a C = [A22*B22+A23*B32+A21*B12 A32*B22+A33*B32+A31*B12 A42*B22+A43*B32+A41*B12 A22*B23+A23*B33+A21*B13 A32*B23+A33*B33+A31*B13 A42*B23+A43*B33+A41*B13].6 Conocidas las matrices Ann . λn . . . Soluci´n: Ver el programa ejem1 5. P = L(1)*L(2)*L(3)*L(4).5 e Si los λi son los eigenvalores de la matriz A de orden n. Cmn y Dmm con det(A) = 0 y det(D) = 0. n det(A) = λ1 λ2 . p y q respectivamente. H= A B C D .1.m. obtener una ecuaci´n que reemplace a las dos ecuaciones o diferenciales siguientes: dx = Ax + Bv. G= A 0 C D .

J = det(A)*det(D-C*inv(A)*B).7 Demostrar num´ricamente que: e A B 0 D A 0 C D −1 = −1 A−1 −A−1 BD−1 0 D−1 A−1 0 −1 CA−1 D −1 −D = Soluci´n: Ver el programa ejem1 7. K = det(D)*det(A-B*inv(D)*C). % SE DEBE CUMPLIR: det(E) = det(G) = M DISTINTO DE 0 H = [A B C D].n) CREA UNA MATRIZ DE CEROS DE ORDEN (m. % CONDICION: det(A) Y det(D) DISTINTOS DE 0 % zeros(m. C = [ 2-j j 1+j -5j -3-7j 8]. G = [A zeros(2.m. o .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]. D = [2+j -3-j 4j 1+3j 0 -7j 1+j -9-2j -5].n) E = [A B zeros(3.3) C D]. o e % ejem1_6. M = det(A)*det(D). % SE DEBE CUMPLIR: det(H) = det(J) = K Ejemplo 1.12 Matem´tica Asistida con Computadora a demuestre num´ricamente que: e 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´n: El siguiente programa demuestra num´ricamente lo pedido.2) D].

1. G = [inv(A) -inv(A)*B*inv(D) Z1 inv(D)]. F = [A Z2 C D]. H = [inv(A) Z2 -inv(D)*C*inv(A) inv(D)]. % E*G. F*H y H*F DEBEN RESULTAR MATRICES IDENTIDAD 13 Ejemplo 1.8 Demostrar num´ricamente que: e A C A C B D 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 −D C(A − BD−1 C)−1 −1 −1 −A−1 B(D − CA−1 B)−1 (D − CA−1 B)−1 = D −(A − BD−1 C)−1 BD−1 C(A − BD−1 C)−1 BD−1 + D−1 Soluci´n: Ver en el siguiente programa la demostraci´n pedida. % CONDICION: det(A) y det(D) DISTINTOS DE 0 % LA MATRIZ CERO DEBE SER DE ORDEN (m.2). C = [ 2-j j 1+j -5j -3-7j 8]. % LA MATRIZ CERO DEBE SER DE ORDEN (m. D = [2+j -3-j 4j 1+3j 0 -7j 1+j -9-2j -5].m INVERSION DE MATRICES PARTICIONADAS clear all % MATRICES DATOS CON n=2 Y m=3: A = [-3+j 4-2j 5-8j -7-2j].1 C´lculo Matricial a % ejem1_7.n): Z2 = zeros(2. G*E.n) Z1 = zeros(3.m INVERSION DE MATRICES PARTICIONADAS clear all % MATRICES DATOS CON n=2 Y m=3: A = [-3+j 4-2j .3). E = [A B Z1 D]. B = [ j -1+3j 2-5j 4+7j 6 3+8j]. o o % ejem1_8.

. H = [H11 H12. C = [ 2-j j 1+j -5j -3-7j 8]. . dt dt dt d dA dB [AB] = B+A dt dt dt −1 d −1 dA A = −A−1 dt A (1.  . . . . . % E*G. . . ··· d dt an1 (t) d dt anm (t) an1 (t) · · ·  a1m (t)  . G*E y H*E DEBEN RESULTAR MATRICES IDENTIDAD 1.14 Matem´tica Asistida con Computadora a 5-8j -7-2j].  . G21 = -inv(D-C*inv(A)*B)*C*inv(A). dt dt dt dA dk d [Ak] = k+A . G22 = inv(D-C*inv(A)*B). H22 = inv(D)*C*inv(A-B*inv(D)*C)*B*inv(D)+inv(D). D = [2+j -3-j 4j 1+3j 0 -7j 1+j -9-2j -5]. . E*H.1.9) . dt d xn (t) dt xn (t) d d d [A + B] = A + B. G = [G11 G12. Derivadas e Integrales con Matrices y Vectores  d dt a11 (t) Derivada e integral de una matriz A(t) = [aij (t)] de orden n × m: d  A(t) =  dt ··· ··· . B = [ j -1+3j 2-5j 4+7j 6 3+8j].7) Derivada e integral de un vector x(t) = [x1 . anm (t) (1. . G11 = inv(A) + inv(A)*B*inv(D-C*inv(A)*B)*C*inv(A).H21 H22]. .3. G12 = -inv(A)*B*inv(D-C*inv(A)*B). x(t) =  x(t) =  . xn ]T :    d  x1 (t) dt x1 (t) d     .8) Cuando las matrices A y B y el escalar κ son funciones de t.G21 G22]. . H21 = -inv(D)*C*inv(A-B*inv(D)*C).  A(t) =  a11 (t) . % 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). % CONDICION: det(D) Y det(D-C*inv(A)*B) DISTINTOS DE 0 E = [A B.  . se cumple: (1.C D]. d dt a1m (t)   . .

∂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.11) Jacobiano de una funci´n vectorial f(x) de orden m con argumento vectorial o de orden n:  ∂f  ∂f2 1 · · · ∂fm ∂x1 1 1  ∂x1 ∂x2  ∂f ∂f  ∂x2 ∂x2 · · · ∂fm  ∂f ∂x2   . .14) ∗ ∂x ∂y 1.2. . . Ortonormalidad y Normas Independencia de Vectores Se dice que los vectores xi . An´lisis Vectorial a Independencia.  . 1.2 An´lisis Vectorial a Derivada parcial de una funci´n escalar J(x) de variable vectorial: o  ∂2J   ∂J  ∂2J ∂2J · · · ∂x1 ∂xn ∂x1 ∂x2 ∂x2 ∂x1 1   ∂2J ∂J  . . . . = .  . . . 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. .12) . (1.10) Derivada total de una funci´n escalar V (x(t)) de variable vectorial: o d V (x(t)) = dt ∂V ∂x T dx dt (1.1.  ∂x  . . =  . n son linealmente independientes si: n ci xi = 0 i=1 . i = 1.  .2.   ∂x ∂x2 ∂J ∂2J ∂2J ∂2J ··· ∂xn ∂xn ∂x1 ∂xn ∂x2 ∂x2 n 15 (1. .  . . = (1. se cumple: ∂ H x Ax = Ax ∂x∗ ∂ H ∂ H x Ay = AT x∗ x Ay = Ay. .13) x Ay = Ay.1. . . .

xn x∗ n (1. .  .16) Los vectores reales x1 . ∗ x x∗ xn x1 n 2 Si x e y son vectores reales de orden n: n x1 x∗ 1  . . . . . La norma de un o vector denotada como x posee las propiedades siguientes: x ≥ 0 para todo x = 0 . . . . x2 . . una norma es una medida del tama˜o de un vector o matriz.16 Matem´tica Asistida con Computadora a La ecuaci´n anterior implica que las constantes ci = 0. x1 xn . . .15) n x T y = yT x = i=1 xi yi . . . Normas de Vectores y Matrices Norma de un Vector En general. .  . . . . . . son ortonormales si xT xj = 0 cuando i = j i = 0 cuando i = j. . . xxH =  . i = 1. n. o que o det([x1 . x1 x∗ n . . . . x1 x2 . x2 n (1. xn ]) = 0. . Operaci´n con Vectores Complejos y Reales o Si x e y son vectores complejos de orden n: xH y = (yH x)∗ = yT x∗ = n n i=1 n i=1 x∗ yi i xH x =  i=1 x∗ xi = i x1 x∗ 2 |xi |2  .  . . xT x = i=1 x2 i   xxT =  .  . xn x1 xn x2 Vectores Ortonormales y xT xj i x2 1  . n La ejecuci´n de la norma resulta en un escalar positivo. .

Q = P H P = QH Otras normas pueden ser definidas como: n x = i=1 |xi |. En adici´n. si λ es un eigenvalor de A  1/2 |aij |2  Otras normas para una matriz A de orden n son: n n A = i=1 j=1 |aij |. o tambi´n cumple: e A = AH . a i n 1/p x −∞ = m´ |xi | ın i x p= i=1 |xi | p 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. A F=  n n i=1 j=1 .1. = m´x[xH AH Ax]. x ∞= m´x |xi |.2 An´lisis Vectorial a x = 0 si y s´lo si x = 0 o κx = κ Desigualdad triangular: Desigualdad de Schwarz: x+y ≤ x |x y| ≤ x H 17 x + y κ es un escalar y La norma m´s empleada es la Euclidiana: a 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. a x Ax ≤ A si xH x = 1 x |λ| ≤ A . A 2 A = AT .

rango(AB) = rango(B). rango(AB) ≤ rango(B) si A y B son no singulares si A y B son no singulares Si A es una matriz de orden n y det(A) = 0.18) Factorizando x obtenemos la ecuaci´n caracter´ o ıstica de A: det(λI − A) (1. rango(AB) = rango(A). es igual al n´mero m´ximo r de sus vectores columnas linealmente indepenu a dientes. . Para un eigenvector normalizado e. es un escalar λ que permite una soluci´n no trivial de la ecuaci´n: o o Ax = λx x≤0 (1.19) Asociado con cada eigenvalor λi existe un eigenvector ei de magnitud arbiˆ traria que es soluci´n de Aei = λei . Eigenvalores y Eigenvectores Rango de una Matriz Si A es una matriz de orden n × m. su rango. 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). i=1 n j=1  |aij | A 1= m´x a j A ∞= m´x  a i A 2= m´x a i λi (AH A) 1.2. su o ˆ norma Euclidiana es uno: e = 1. Rango de una Matriz. entonces: rango(A) = n Eigenvalores y Eigenvectores Un eigenvalor de una matriz de orden n. “eigenvalue”. valor o ra´ caracter´ ız ıstica. conocido tambi´n como valor e propio.2. denotado como rango(A).18 m Matem´tica Asistida con Computadora a  |aij | . modo.

. Para un problema espec´ forma correcta de la matriz J se determina de acuerdo a las reglas siguientes: 1. 0 0 . λ3 . entonces exis- . si los a valores propios de A de orden n = 5 son λ1 . λ2 . . . . Sea E = [e1 . λn Forma Can´nica de Jordan o Si una matriz A de orden n posee r eigenvectores linealmente independientes. . u y si el rango de [λI − A] es k − s. . en ] una matriz formada con los eigenvectores de A y sea Λ una matriz diagonal cuyos elementos son los eigenvalores de A. 0  0 λ2 . . Entonces se dice que A y Λ son similares porque:   λ1 0 . . . donde 1 ≤ s ≤ k. la matriz diagonal J3 cinco y J2 cuatro. .   .20) E AE = Λ =  . la forma de Jordan es una matriz J que posee n − r unos sobre la diagonal.2 An´lisis Vectorial a 19 1. . . Sea A una matriz de orden n que posee n eigenvalores distintos. λ1 . Si una matriz cuadrada A de orden k posee k eigenvalores m´ltiples. con todos los dem´s elementos iguales a cero. . Diagonalizaci´n de Matrices o 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 . EΛE −1 = A . . Por ejemplo. 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 =  0 0 λ1 0 0  J2 =  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 =  0 0 λ1 1 0  J3 =  0 0 λ1 0 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 independienıfico. .3.2.1. λ1 . 0    −1 (1. la tes.

La suma de los ´rdenes de los bloques de Jordan derivados con la regla o anterior debe ser igual a la multiplicidad k (ver ejemplo 1.4. y si los vectores reales x e y son de orden n y m respectivamente. Por consiguiente. aji = aij Formas Bilineales Una forma bilineal es un polinomio real que contiene t´rminos de la forma e aij x∗ yj .2. entonces: n m xH Ay = i=1 j=1 aij x∗ yj i Si A = [aij ] es real de orden n. entonces: n m xT Ay = i=1 j=1 aij xi yj . i aji = a∗ ij Si A = [aij ] = AT es una matriz real y sim´trica de orden n y x es un vector e real de orden n: n n xT Ax = i=1 j=1 aij xi xj .20 Matem´tica Asistida con Computadora a ten s eigenvectores linealmente independientes asociados con λ. Formas Cuadr´ticas y Bilineales a Formas Cuadr´ticas a Una forma cuadr´tica es un polinomio real que contiene t´rminos de la a e forma aij x∗ xj . y si los vectores i complejos x e y son de orden n y m respectivamente. Si A = [aij ] = AH es una matriz hermitiana de orden n y x i es un vector complejo de orden n.14). Si A = [aij ] es una matriz compleja de orden n. 1. existen s bloques de Jordan. entonces: n n x Ax = i=1 j=1 H aij x∗ xj . 2.

entonces A ≥ 0. Ejemplo 1.m. Si la matriz A posee eigenvalores positivos y negativos.1. Una matriz A de orden n es semidefinida positiva si su forma cuadr´tica a asociada es mayor o igual a cero cuando x = 0. excepto cuando x = 0. entonces A ≤ 0. Si todos los eigenvalores de A son positivos. entonces A es indefinida. entonces A < 0.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]. Si los eigenvalores de A son negativos o nulos. A ≥ 0. La tabla 1. a e Una matriz A de orden n es definida positiva si su forma cuadr´tica a asociada es siempre positiva. las expresiones A > 0.2 muestra los comandos para ejecutar otras operaciones matriciales y vectoriales empleando MATLAB. . as´ como xT Ax a a ı lo est´ con la matriz real y sim´trica A. Una matriz A de orden n es definida negativa si su forma cuadr´tica a asociada es siempre negativa.9 Resolver el siguiente sistema (m´s inc´gnitas que ecuaciones): a o (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´n: Ver el programa ejem1 9. Hemos visto que la forma cuadr´tica xH Ax est´ asociada con la matriz hermitiana A. o % ejem1_9. Una matriz A de orden n es semidefinida negativa si su forma cuadr´tica a asociada es menor o igual a cero cuando x = 0. semidefinida positiva.2 An´lisis Vectorial a Definici´n y Semidefinici´n de Matrices o o 21 Para una matriz A de orden n. A < 0 y A ≤ 0 denotan que A es definida positiva. excepto cuando x = 0. Si los eigenvalores de A son positivos o nulos. entonces A > 0. definida negativa y semidefinida negativa respectivamente. Si todos los eigenvalores de A son negativos.

D]=eig(A) √ xH x m´ i |xi | ın ∞= m´xi |xi | a −∞ = . A.inf) norm(x.*B A.1) norm(A. . en ] xH y xT y aij bij aij /bij (aij A A A A x x x x )bij m a 1 = m´xj i=1 |aij | a λi (AH A) 2 = m´xi n a ∞ = m´xi j=1 |aij | 1/2 2 F= ij |aij | n p 1/p p = ( i=1 |xi | ) 2= C´digo MATLAB o x’*y x’*y A./B A.-inf) rank(A) eig(A) [E.inf) norm(A.’fro’) norm(x. .2) norm(A.2: Comandos para c´mputo matricial y vectorial o Operaci´n o Producto interno complejo Producto interno real Producto por elemento Divisi´n por elemento o Potencia por elemento Norma matricial Norma matricial Norma matricial Norma matricial Norma vectorial Norma vectorial Norma vectorial Norma vectorial Rango Eigenvalores Eigenvectores λi E = [e1 .\B.^B norm(A.p) norm(x) norm(x.22 Matem´tica Asistida con Computadora a Cuadro 1.

-9].0.6221i % 0 % 0. x2 x3 x4 x5 Ejemplo 1.4126i % 0 % -2.2202i --> x2 % -0.4-j.5719 .2270 .3.m. B = [2-9j.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]. o % ejem1_10.8535 + 1.4153i --> x3 Ejemplo 1. X = A\B.9991 .4860i 23 --> --> --> --> --> x1.2 An´lisis Vectorial a B = [2-9j.3+j.6871 + 1.-3+7j.10 Resolver el siguiente sistema (menos inc´gnitas que ecuaciones): o (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´n: Ver el programa ejem1 10. o .11 Comprobar num´ricamente que: e xH y = (yH x)∗ = yT x∗ Soluci´n: Ver el programa ejem1 11.4-j.9472 + 0. % % X = % 3. % X = % 1.3+j].1969i --> x1 % 0.m.1.2. X = A\B.

q y r DEBEN SER IGUALES Ejemplo 1.3798) b = norm(x.inf): k = h = 29. rango(B)). % IGUAL QUE norm(A. % NORMA INFINITO (c = 12.-5+6j.7269 Ejemplo 1.24 Matem´tica Asistida con Computadora a % ejem1_11.8-9j.8-9j.-1+j]. Bmp y Cmm . o . % COMPROBAR QUE x’*y = conj(y’*x) = conj(y’)*conj(x) p = x’*y.3136 k = norm(A.-8+9j.5-6j. [p q r] % p.m NORMAS clear all % VECTOR DATO x = [-1+j.4-2j. Demostrar num´ricamente las siguiene tes propiedades del rango: rango(A) ≤ m´ ın(n.-inf). e = norm(A).-1+j].3-5j.7276 p = ’fro’.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].7269 g = norm(A. % sqrt(sum(diag(A’*A))): m = 23. y = [-5+j.5).4-2j.1).12 En el siguiente programa se calculan diferentes normas matriciales y vectoriales. 2. a = norm(x. % MAXIMO EIGENVALOR DE A: e = 18. % NORMA p = 5 (a = 12. inf o ’fro’ n = norm(A. m). % NORMA EUCLIDIANA (b = 16.’inf’).2).7269 f = norm(A. r = conj(y’)*conj(x). % max(sum(abs(A’))): h = 29. rango(AB) ≤ min(rango(A). rango(A) = rango(AH ). q = conj(y’*x).-3-j].3-5j. % max(sum(abs(A)))): g = 29. % NORMA -INFINITO (d = 1.2046 h = norm(A.inf).-3+j. % p DEBE SER 1.’fro’).2481) c = norm(x. % LO MISMO QUE norm(A): e = f = 18.3136 m = norm(A.0416) d = norm(x.m CALCULO VECTORIAL clear all % VECTORES DATOS x = [-1+j. % NORMA p: n = 18.13 Sean las matrices Anm . % ejem1_12. rango(CB) = rango(B).2).2). Soluci´n: El siguiente programa presenta las demostraciones pedidas.-5+6j.inf).2+7j.

4) B = [1+j -3-5j 8+9j -4+2j -2+3j -4-6j -5-6j -2+5j].1.9045 0. % SE DEBE CUMPLIR: rA MENOR O IGUAL QUE min(3. % E = % MATRIZ DE EIGENVECTORES % 1.m FORMA CANONICA DE JORDAN clear all A = [0 1 0 3.7071 0. rAB = rank(A*B).7068 % 0 0.rB) % rCB = rB 25 Ejemplo 1.2 An´lisis Vectorial a % ejem1_13.3015 0.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. % ORDEN 4 [E D] = eig(A).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].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].0002 % D = % 0 % 0 % LOS EIGENVALORES DE A FORMAN LA DIAGONAL DE D 0 0 0 -1 0 0 .0 0 -1 -2]. % ORDEN (4. % rA = rAH % rAB MENOR O IGUAL QUE min(rA.7071 0 -0.0002 % 0 0 -0. rCB = rank(C*B). rB = rank(B).3015 -0.4).0000 -0. % ORDEN (3. % ORDEN (4.7074 % 0 0 0. rAH = rank(A’).4) rA = rank(A).0 0 0 1.0 -1 1 1.

1098. EigA = eig(A).2 6 0. % EIGENVALORES DE B: 0. -2.1996.8922.m.3. % 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. Su transformada inversa se designa como: g(t) = L−1 [g(s)] (1. donde o a es real. EigB = eig(B). la transformada de Laplace de la funci´n g(t) = e−at .15 Determinar la definici´n de las matrices siguientes: o    2 2 −2 1 A =  2 6 0 .21) donde s es la variable laplaciana.26 % % Matem´tica Asistida con Computadora a % % % % 0 0 -1 0 0 0 0 -1 rank((-1)*eye(4)-A). B= 2 −1 0 2 3 Soluci´n: Ver el programa ejem1 15.-1 0 2]. 6.m DEFINICION DE MATRICES clear all A = [2 2 -2. 2.2 4 2.1098 % B ES INDEFINIDA PUES UN EIGENVALOR ES > 0 Y EL OTRO ES < 0  1 2  0 2 4 6 1. La transformada de Laplace es util para ´ modelar sistemas lineales invariantes con el tiempo. se determina como sigue: L[e −at ∞ ]= 0 e −at −st e −e−(s+a)t dt = s+a ∞ = 0 1 s+a . 7.3 6 0].22) Como ejemplo. % EIGENVALORES DE A: 0. La Transformada de Laplace ∞ La transformada de Laplace de una funci´n g(t) se define como: o g(s) = L[g(t)] = 0 g(t)e−st dt (1. o % ejem1_15.9083 % A > 0 DADO QUE TODOS SUS EIGENVALORES SON POSITIVOS B = [1 2 1.

. Algunas de sus propiedades se muestran en la tabla 1.3 muestra la transformada de Laplace de algunas funciones.4: Propiedades de la transformada de Laplace Propiedad Descripci´n o Derivaci´n o Derivaci´n de orden n o L L dg dt dn g dtn = sg(s) − g(0). 1 s+a ω s2 +ω 2 s s2 +ω 2 ω (s+a)2 +ω 2 s+a (s+a)2 +ω 2 Cuadro 1.16 La figura 1. Si se o . Cuadro 1. en frecuencia Valor inicial Valor final L L[g(t − t0 )µ(t − t0 )] = e−t0 s g(s) L[e−at g(t)] = g(s + a) l´ t→0 g(t) = l´ s→∞ sg(s) ım ım l´ t→∞ g(t) = l´ s→0 sg(s) ım ım dn−1 dtn−1 g(t) t=0 t g(s) 0 g(t)dt = s Ejemplo 1.4.1. g(0) = [g(t)]t=0 = sn g(s) − sn−1 g(0) − · · · − g n−1 (0) g n−1 (0) = Integral Desplazamiento en tiempo Desplazam.3: Transformadas de Laplace g(t) g(s) δ(t) µ t tn e−at senωt cosωt e−at senωt e−at cosωt n! .3 La Transformada de Laplace 27 La tabla 1.1 muestra un carro de masa m = 1000 kg desplaz´ndose con una a velocidad v gracias a la acci´n de la fuerza u producida por su motor. sn+1 Descripci´n o Impulso unitario Escal´n unitario o Rampa unitaria 1 1 s 1 s2 Rampa de orden n Exponencial Seno Coseno Seno amortiguado Coseno amortiguado n! = n(n − 1) . .

o Soluci´n: La funci´n de transferencia del proceso se obtiene aplicando la o o propiedad de derivaci´n de orden n (tabla 1.17 Empleando las propiedades del valor inicial y del valor final. donde b= 50 N-s/m es el coeficiente ´ de fricci´n. La salida se determina de: o s v(t) = L−1 [v(s)] = L−1 1 1 1 1 = L−1 − b s(ms + b) b s s+ m y empleando la tabla 1.4). sabiendo que la entrada es u y la salida es v. 1 v(s) = u(s) ms + b Dado que la entrada es un escal´n. o ım El valor final se obtiene de: l´ t→∞ v(t) = l´ s→0 sv(s) = 1 .1: M´vil en movimiento.3 obtenemos: 1 v(t) = (1 − e−bt/m ) b Ejemplo 1. ˙ v= ˙ dv dt Determinar la funci´n de transferencia del proceso y su respuesta a un eso cal´n de 1 m/s. con todas las condiciones o iniciales iguales a cero: msv(s) + bv(s) = u(s). ım ım b . entonces la din´mica del proceso puede modelarse como: o a mv(t) + bv(t) = u(t). o ım Soluci´n: El valor inicial se determina de: l´ t→0 v(t) = l´ s→∞ sv(s) = 0. o v velocidad friccion bv m u Figura 1. u(s) = 1 . determinar tales valores para la velocidad del m´vil del problema anterior.28 Matem´tica Asistida con Computadora a desprecia la inercia de las ruedas y se asume que la fuerza de fricci´n bv es o lo unico que se opone al movimiento.

la transformada Z como herramienta o de discretizaci´n. cuyo objetivo de control es lograr que la se˜al de salida Y del proceso (de n car´cter continuo. 2. El material expuesto pretende dar una base s´lida acerca de los sistemas de control en el dominio o discreto.edu. muestreo y reconstrucci´n de se˜ales en los procesos a controlar. El filtro de ruido puede ser anal´gico o digital y su inclusi´n o o o depende de la magnitud del ruido y su relevancia dentro del funcionamiento del sistema de control. debe ser capaz de crear una se˜al de control n U (la variable manipulada).pe/728681F. las formas can´nicas de los procesos en el espacio de estado o o discreto y los conceptos de controlabilidad y observabilidad. minimice la se˜al de error e. .Cap´ ıtulo 2 Sistemas Discretos En este cap´ ıtulo se exponen los conceptos de variables de estado.1. Tambi´n se trata la diso n e cretizaci´n directa de procesos continuos. En otras palabras. el algoritmo de control implementado. El bloque de filtraje es util para elin ´ minar las componentes contaminantes de alta frecuencia de la se˜al de ruido n de medici´n n. en este caso digitalmente. como en la mayor´ de los casos) siga a la se˜al de rea ıa n ferencia r cumpliendo determinadas especificaciones de dise˜o. Todos los archivos correspondientes a los ejercicios desarrollados en este cap´ ıtulo se pueden descargar del sitio: http://fiee. tales como: n m´ ınimo tiempo de estabilizaci´n.uni.1 muestra la estructura de un sistema de control digital. la cual actuando sobre el proceso a trav´s de un e actuador. m´ o ınimo sobreimpulso y/o error en estado estacionario nulo en Y . Dise˜o de Sistemas de Control Digital n La figura 2.

dando lugar a nuevas configuraciones. si el actuador y los dispositivos de medici´n son capaces de procesar se˜ales digitales. pero ıa tambi´n refuerza la interrogante sobre qu´ algoritmo de control es adecuado e e para determinada aplicaci´n. por ejemplo) y con el mayor rendimiento (satisfacci´n de las especificaciones de dise˜ o). los sensores de se˜al son decodificadores electr´nicos de pulsos (“encoders”).C.1: Estructura de un sistema de control digital. el dispositivo de procesamiento digital es una computadora personal. Tal conocimiento va a permitir la selecci´n aden o cuada de un algoritmo de control que sea capaz de hacer cumplir el objetivo de control con el menor gasto (computacional.1 no es unica. En las aplicaciones descritas en este libro. Una respuesta a esta interrogante s´lo es posio o ble si se tiene conocimiento suficiente del modelo de la din´mica del proceso a a controlar y de sus se˜ales. (de corriente directa) o con un amplificador electr´nico PWM (“Pulse Width Modulation”). En la estructura de control descrita en el p´rrafo anterior. entonces o n tales dispositivos pueden actuar directamente sobre el proceso. conversores de se˜ al A/D (anal´gico a digital) y D/A (digital n o a anal´gico) y retenedores (reconstructores) de se˜ al. la se˜al de referencia y la comparaci´n de se˜ales pueden ser genen o n radas dentro de la computadora digital. dado o ´ el caso. mientras que n o el actuador es una combinaci´n de un servomotor D. o n . el algorita mo de control se implementa en un dispositivo digital que puede ser una computadora personal. un microcontrolador o una tarjeta PDS (Procesamiento Digital de Se˜ales).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. una computadora de procesos (con capacidad para manejar varios lazos de control). Por ejemplo. El procesamiento digital del algoritmo n de control requiere de la presencia de los dispositivos de adquisici´n de datos: o muestreadores. o El empleo del procesamiento digital permite la realizaci´n de algorito mos de control sofisticados existentes en la teor´ de control moderna. o n La configuraci´n mostrada en la figura 2. En otros casos.

Cuando el sistema es de orden n = 2. U. un proceso que posee a m´ltiples entradas y m´ltiples salidas. y w es el vector de disturbios (de orden r) en las salidas.2.2 Concepto de Estado y Variables de Estado 31 2.2. puede ser representada en el espacio u u de estado mediante dos conjuntos de ecuaciones diferenciales ordinarias de primer orden. w.1. las cuales contienen informaci´n suficiente acerca de la historia pasada del proceso. 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. Xn .1) donde f y h son funciones vectoriales de variable vectorial de orden n y r respectivamente. Y es el vector de salida de orden r. Linealizaci´n de Procesos o La representaci´n linealizada en el espacio de estado de (2. El n´mero n de variables a u de estado define el orden o la dimensi´n del sistema. Concepto de Estado y Variables de Estado La din´mica de un proceso multivariable. El tiempo t se incluye como parte del argumento para indicar que pueden existir par´metros variantes con el tiempo. como del mismo modo lo son las e ecuaciones din´micas que describen dicho sistema. v es el vector de disturbios (de orden n) en los estados.1). v. t) Y = h(X. . como sigue: ˙ X = f(X. los puntos de equilibrio (X) se determinan de: ¯ U. . denominadas las ecuaciones de estado y de salida. que todas las futuras entradas U son tambi´n conocidas. sin la o presencia de par´metros variantes con el tiempo. En este a punto es conveniente definir el concepto de estado: El vector de estado X = [X1 . o El espacio de estado es el espacio n-dimensional de todos los estados. X es el vector de estado de orden n. U es el vector de control de orden m. es la siguiente: a ˙ x = Ax + Bu + Ev . Xn ]T de un proceso (donde el super´ ındice T indica transpuesta) es el m´ ınimo conjunto de variables. Esta informaci´n permite computar o todos los futuros estados del proceso. ˙ ¯ ¯ ¯ X = f(X. t) (2. es decir. asumiendo por supuesto. . las vao riables de estado X1 . U) = 0 (2. U. .1) se determinan cuando el estado del proceso no cambia gracias a la acci´n de una fuerza de entrada o ¯ Por tanto.2.2) 2.

U) . . D es la matriz de salida de las entradas y F es la matriz de disturbios en las salidas. .  . A =  . .4) ∂hr ∂X1 ∂hr ∂Xn ¯ ¯ (X. . pueden ser determinadas evaluando las siguientes matrices jacobianas:  ∂f1  ∂f1 ∂f1  ∂f1  ∂X1 · · · ∂Xn ∂U1 · · · ∂Um  . E es la matriz de disturbios en los estados.6) son tambi´n e conocidas como ra´ ıces caracter´ ısticas. . .  B= . eigenvalores.  . y para la operaci´n del o ¯ U). ··· ∂fn ∂Xn ∂h1 ∂Xn    ¯ ¯ (X. . .3) estamos u empleando las variables residuales (tambi´n llamadas variables de desviaci´n e o o perturbacionales) siguientes: ¯ x=X−X ¯ u=U−U Sin la presencia de disturbios (v = w = 0). . B es la matriz de control. . Es importante notar que en (2. . Bnm .U)   D= ∂fn ∂U1 ∂h1 ∂U1 ··· ··· . . .   C =  ∂fn ∂X1 ∂h1 ∂X1 ··· ··· .5) donde s es la variable laplaciana e I es la matriz identidad. . . . la ecuaci´n anterior se convierte en n o la ecuaci´n de transferencia de un proceso univariable. modos.U) ∂hr ∂U1 ∂hr ∂Um ¯ ¯ (X.6) donde det es la operaci´n determinante. Cuando las se˜ales Y y U son unidimensionales. las matrices A. (2. B.U) La matriz de transferencia para procesos multivariables lineales se determina empleando la ecuaci´n matricial siguiente: o Y(s) = [C(sI − A)−1 B + D]U(s) (2. ··· ∂fn ∂Um ∂h1 ∂Um    ¯ ¯ (X.32 y = Cx + Du + F w Sistemas Discretos (2. Drm y Err . .  . La ecuaci´n caraco o ter´ ıstica del proceso se obtiene de: det(sI − A) = 0 (2. . Las ra´ o ıces de (2.3) donde A es la matriz de estado. Enn .  . donde el primer sub´ ındice es el n´mero de filas de la matriz y el u segundo. . . Las dimensiones de dichas matrices son: Ann . . C y D ¯ proceso alrededor del estado de equilibrio (X. . C es la matriz de salida de los estados. valores propios. el n´mero de columnas. . . . Crn . . .

3) tambi´n puede ser formulada e empleando el concepto de estado. como sigue: El proceso descrito por la ecuaci´n (2. Los eigenvalores determinan la estabilidad del ¯ proceso alrededor de un punto de equilibrio X en el espacio de estado como sigue: El proceso descrito por la ecuaci´n (2. Empleando este hecho.2. La secci´n e o 2 de cada tanque es constante. cuando no siendo o forzado (es decir. el proceso descrito por (2. Determinar el modelo linealizado de este proceso o hidr´ulico.2).3) es estable. la estabilidad del proceso descrito en (2. Ejemplo 2. a Q p 0 0 H1 ρ p 1 γ p Q 0 Tanque 1 g 1 ρ H2 p 2 γ Q Tanque 2 2 Figura 2.1 La figura 2. el estado del proceso tiende a cero para cualquier estado inicial finito x0 .3) con u y v o nulos posee un solo punto de equilibrio: el origen. siempre que todos los o eigenvalores de su ecuaci´n caracter´ o ıstica (2.3) es estable.2 muestra dos tanques id´nticos colocados en cascada. Cuando al menos uno de tales eigenvalores posea parte real positiva o cero.2: Proceso hidr´ulico.6) posean parte real negativa. cuando u = v = 0).2 Concepto de Estado y Variables de Estado 33 entre otras denominaciones. El objetivo de control es horizontal A=9 m estabilizar (controlar) la altura H2 empleando como fuerza de control el flujo de alimentaci´n Qo . entonces el proceso es inestable. a Soluci´n: Los flujos de salida Q1 y Q2 de los tanques se pueden modelar o . De acuerdo a la ecuaci´n (2.

81 m/s2 es la aceleraci´n de la gravedad: o P1 − P0 = ρgH1 . h2 = H2 − H2 . obtenemos: √ γ ρg 1 ˙ H1 = Q0 − H1 = f1 A A √ ˙ 2 = γ ρg [ H1 − H2 ] = f2 H A y su correspondiente ecuaci´n de salida: o Y = [0 1] H1 H2 ¯ ¯ Definamos las siguientes variables residuales: h1 = H1 − H1 . El flujo acumulado en cada tanque es: Q0 − Q1 = A dH1 . el proceso linealizado resulta: ˙ h = P h + B q0 . Q2 = γ Sistemas Discretos P2 − P0 donde P1 . el estado de equilibrio del proceso ¯ q0 = Q0 − Q se puede obtener de: √ γ ρg ¯ 1 ¯ ˙ ¯ H 1 = Q0 − H1 = 0 A A √ γ ρg ˙ ¯ ¯ ¯ [ H1 − H2 ] = 0 H2 = A lo que resulta en: ¯ Q2 ¯ ¯ H1 = H2 = 2 0 γ ρg Aplicando el jacobiano. y γ=0.34 como: Q1 = γ P1 − P0 . y = h2 = C h .23 kg/m3 es la densidad del l´ ıquido y g=9. dt Q1 − Q2 = A dH2 dt P2 − P0 = ρgH2 Resolviendo las ecuaciones anteriores para las alturas. ¯ 0 .4 es una constante que depende de la geometr´ del ıa orificio. Si ρ=1. P2 y P0 son las presiones en el fondo de los tanques y en el exterior respectivamente. Conociendo Q0 = 3 m3 /s.

y la estabilidad del proceso. o Soluci´n: El proceso en estudio es univariable. C = [0 1]. los puntos de equilibrio.5 kg es la masa de la esfera y g=9. las ecuaciones caracter´ ısticas.3366 N-m/rad/s es la fricci´n viscosa rotacional en el punto pivote.H2 ) − √ γ ρg √ ¯ 2A H1 √ γ ρg √ ¯ 2A H1 0 − √ γ ρg √ ¯ 2A H2   B= = ¯ Q0 1/A 0 .6350 m es la longitud de la varilla de peso despreciao ble. El torque resultante o alrededor del pivote es: ¨ ˙ U = Mo L2 Θ + Bp Θ + Mo gLo senΘ o (2.3(b) determine: las ecuaciones no lineales de estado y de salida. y una sola salida: la posici´n angular. 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Bp Θ U U Mo Φ Lo Mo Lo Bp (b) (a) Figura 2.2. e o e Para las situaciones mostradas en las figuras 2. P = ∂f1 ∂Q0 ∂f2 ∂Q0 ∂f1 ∂H1 ∂f2 ∂H1 ∂f1 ∂H2 ∂f2 ∂H2 35  = ¯ ¯ (H1 .81 m/s2 es la aceleraci´n de la gravedad.3 puede rotar libree mente alrededor del pivote gracias a la acci´n de un torque externo U . Primero o analizaremos la situaci´n mostrada en la figura 2. La salida de inter´s es la posici´n angular θ del p´ndulo.2 Concepto de Estado y Variables de Estado donde: h= h1 h2 .3(a) y 2. es decir.7) . Mo =0. las funciones de transferencia.2 El proceso p´ndulo no lineal mostrado en la figura 2. una sola entrada o U actuando sobre el proceso. En o o dicha figura Bp =1. las ecuaciones linealizadas de estado y de salida.3(a). Lo =1.3: P´ndulo no lineal en posici´n de equilibrio estable (figura (a)) y e o en posici´n de equilibrio inestable (figura (b)). D = [0] Ejemplo 2.

2). donde: X= X1 X2 . Seleccionando en (2. r = 1.8) Y = X1 = h − Bp x Mo L2 2 o X2 + 1 U Mo L2 o (2. con U = 0. 0) resulta: ¯ ¯ alrededor del estado de equilibrio (X ˙ x = Ax + Bu. m = 1. es: X2 = 0 y X1 = 2kπ. los estados de equilibrio se obtienen de: ˙ ¯ ¯ X 1 = X2 = 0 Bp ¯ g 1 ¯ ˙ ¯ ¯ X2 + U =0 X 2 = − senX1 − Lo Mo L2 Mo L2 o o ¯ y = X1 − X1 (2.7) como ˙ variables de estado X1 = Θ. X2 .7) es no lineal debido al senΘ.3(a) y (π[3π]. f= f1 f2 = g − Lo senX1 (2.9) que n = 2.9) Notar en (2. . donde: A = ∂f1 ∂X1 ∂f2 ∂X1 ∂f1 ∂U ∂f2 ∂U ∂h ∂X1 ∂f1 ∂X2 ∂f2 ∂X2 y = Cx + Du = (0.0) 0 g − Lo 1 − M op 2 L B o B = C = D = = 0 ∂h ∂X2 0 = 1 0 (2. Empleando (2. X2 = Θ y como salida Y = X1 se obtiene: ˙ X 1 = X2 Bp g 1 ˙ X + U X2 = − senX1 − 2 2 Lo Mo Lo Mo L2 o Y = X1 cuya representaci´n compacta (ecuaci´n (2.0) 1 Mo L2 o (0.4). U ) = (0. 0) para la figura 2.11) ∂h ∂U = [0] 0 . 0) para la figura 2.1) con v = w = 0) resulta: o o ˙ X = f. Por o consiguiente. . la linealizaci´n de (2.36 Sistemas Discretos Notar que (2. Empleando (2. los estados de equilibrio son (0[2π].10) ¯ ¯ ¯ cuya soluci´n.9) o ¯ 1 . ±1. 0. . k = 0.3(b).

2 Concepto de Estado y Variables de Estado La funci´n de transferencia del proceso se puede determinar de: o Y (s) U (s) = C(sI − A)−1 B = [1 0] = Mo L2 s2 o s g Lo 37 −1 Bp +s Mo L2 o −1 1 Mo L2 o 0 1 + Bp s + Mo gLo (2.3(b). El eigenvalor positivo nos indica que el punto de equilibrio (π.14) Con el procedimiento empleado para la situaci´n mostrada en la figura o 2. la ecuaci´n que describe la din´mica del p´ndulo no lineal es: o a e ¨ ˙ U = Mo L2 Φ + Bp Φ − Mo gLo senΦ o (2. Cuando el p´ndulo se encuentra en la posici´n mostrada en la figura e o ˙ ˙ ¨ ¨ 2. 0) es estable. hao = ˙ ciendo u = U . sen(Φ + π) = −senΦ. ˙ La ecuaci´n de estado x = Ax + Bu para el proceso p´ndulo. Con los valores dados de Mo . las dos ra´ de (2. Lo y Bp .7482±2. Θ = Φ y Θ = Φ. Sin embargo. Por consiguiente. lo cual nos indica que el estado de equilibrio (0. 0) es inestable.3(a). 0.13) resultan: s1.7) el criterio de linealizaci´n senΘ ∼ Θ. f´cilmente podemos determinar que: a A= 0 g Lo 1 − Mo p 2 L B o y su ecuaci´n caracter´ o ıstica resulta: ¨ ˙ det(sI − A) = Mo L2 Φ + Bp Φ − Mo gLo senΦ o la cual posee dos ra´ ıces: s1 = −3.6): det(sI − A) = Mo L2 s2 + Bp s + Mo gLo = 0 o (2.6024.13) que resulta siendo el denominador de la funci´n de transferencia dada en o ıces (2.12) La ecuaci´n caracter´ o ıstica se determina de (2.2.6038i.4).2 = −0. .12).5587 y s2 = 2. entonces Θ = Φ + π. puede o e determinarse aplicando en (2. la forma general de linealizaci´n requiere de la aplicaci´n de o o las matrices jacobianas dadas en (2. y seleccionando como variables de estado x1 = Θ y x2 = Θ.

o Un tren de impulsos. entonces debe ser procesada como n la se˜al y.3. por ejemplo) de la computadora o digital con su mundo circundante (el proceso-actuador y los dispositivos de medici´n). puede modelarse como: n u (t) = k=0 ∗ ∞ u(kT )δ(t − kT ) (2. En lo que sigue. ¯ Notar que la se˜al de referencia digitalizada rd se genera internamente. que el retardo entre la operaci´n de un muestreador o o con respecto a otro es despreciable. La se˜al de control digitalizada ud sufre el proceso inverso: pasa por un n dispositivo D/A y luego por un muestreador para generar el tren de impulsos u∗ . es decir. y δ(t − kT ) es la funci´n impulso unitario o delta de Dirac que se define o como: 1 si t = kT δ(t − kT ) = 0 si t = kT Empleando la conocida identidad L[δ(t − kT )] = e−kT s . pasa por un muestreador.3. lo que resulta en una se˜al de n n control continua u capaz de actuar sobre el actuador-proceso continuo.15) donde T es el tiempo de muestreo de u(t). la cual ya puede ser n procesada por la computadora con el fin de generar el algoritmo de control. Mediante un dispositivo de retenci´n de orden cero. por ejemplo la se˜al u∗ . o La se˜al controlada y. Es importante anotar que los convertidores de se˜al. asumiremos que el tiempo de muestreo T es el n mismo para todos los muestreadores y que dichos muestreadores operan sincr´nicamente. Fundamentos de Sistemas Discretos Muestreo y Reconstrucci´n o La figura 2.1. n Si la referencia fuera una se˜al externa. la se˜al de control es reconstruida.38 Sistemas Discretos 2. lo que resulta en la se˜al yd . el tren de impulsos es digitalizado por medio del dispositivo A/D. 2.4 muestra un lazo de control que incluye una computadora digital equipada con los dispositivos de adquisici´n de datos necesarios. Luego. son parte de la n o interfaz (tarjeta de adquisici´n de datos. la transformada de . muestreadores y dispositivos de retenci´n. luego de ser sensada. que se describe m´s o a adelante. k es el tiempo discreto (t = kT ). genn er´ndose un tren de impulsos y ∗ separados uno del otro en T segundos (el a tiempo de muestreo).

16) la o o .16) = k=0 u(kT )e−kT s = u∗ (esT ) La frecuencia de muestreo se determina de la relaci´n: o ωs = 2π T (2. Laplace de u∗ resulta: u (s) = L[ k=0 ∞ ∗ ∞ ∞ u(kT )δ(t − kT )] = k=0 u(kT )L[δ(t − kT )] (2.19) a La se˜al u∗ (s) posee dos propiedades importantes.4: Lazo de control con una computadora como controlador. [3]): 1 u (s) = T ∗ ∞ u(s + iνωs ) k=−∞ (2.3 Fundamentos de Sistemas Discretos 39 COMPUTADORA DIGITAL ALGORITMO DE CONTROL rd ud D A D u* T RETENCION’ u ACTUADOR PROCESO FILTRAJE A y MEDICION yd y* T Figura 2.18) u∗ (t) = T k=−∞ cuya transformada de Laplace ahora resulta (ver referencias [4].2.17) El tren de impulsos u∗ (t) se puede representar alternativamente mediante su serie de Fourier: ∞ 1 u(t)ejωs t (2. La primera es su car´cter n peri´dico. que puede demostrarse reemplazando en la ecuaci´n (2.

±2.. la frecuencia de muestreo tiene que seleccionarse de modo tal que: ωs ≥ 2ωmax T ≤ π ωmax (2. como sigue: u (s + jνωs ) = ∗ ∞ ν=0 ∗ sT u(kT )e −kT (s+jνωs ) ∞ = ν=0 u(kT )e−kT s e−kT jνωs (2. entonces u∗ (s) debe poseer polos en s = s1 +jνωs . La segunda propiedad es como sigue: si u(s) posee un polo en s = s1 . ν = 0. ν = 0. Podemos detrerminar la funci´n de transferencia n e o o ´ gr0 (s) de la retenci´n como sigue.6 muestra en detalle el proceso de muestreo y reconstrucci´n o de la se˜al u empleando un dispositivo de retenci´n de orden cero.20) = u (e ) donde hemos usado el hecho de que ωs T = 2π. . asumiendo que u(t) es de banda limitada. ±2. Del gr´fico de |u∗ (ejω )| podemos extraer la siguiente conclusi´n referente al teorema fundamental o del muestreo: Para que la se˜al continua original u(t) pueda ser reconstruida comn pletamente a partir de sus muestras. . . . El area del pulso rectangular de base (k + 1)T − kT es u(kT )[µ(t − KT ) − µ(t − (k + 1)T )]. Tener en cuenta n que u es una se˜al gen´rica.19): o 1 u (s) = T ∗ ∞ u(s + iνωs ) = k=−∞ 1 [u(s) + u(s + jωs ) + u(s + 2jωs ) T + · · · + u(s − jωs ) + u(s − 2jωs ) + · · ·] e o Si u(s) posee un polo en s = s1 .21) La figura 2. La figura 2. ±1. ±1.) es la funci´n o escal´n unitario que se define como: o µ(t − kT ) = 1 si t ≥ kT 0 si t < kT . donde µ(.5 muestra la respuesta en frecuencia de las se˜ales u(t) y n a u∗ (t). . Esta propiedad puede demostrarse expandiendo la sumatoria en la ecuaci´n (2. el cual n o reconstruye la se˜al mediante aproximaciones rectangulares.40 Sistemas Discretos variable laplaciana s por s + jνωs . . entonces cada t´rmino de la expansi´n contribuye con un polo en s = s1 + jνωs .

La aproximaci´n rectangular calcula el area debajo de o ´ una cierta curva e(t) mediante la suma de rect´ngulos de la forma T e(iT −T ) a (T es el tiempo de muestreo). tal como se ilustra a continuaci´n. El area total de la se˜al u a la salida de la retenci´n es: ´ n o ∞ u(t) = ¯ k=0 u(kT )[µ(t − kT ) − µ(t − (k + 1)T )] e−kT s s . t´rminos que contengan integraci´n pueden discretizarse empleando e o .3 Fundamentos de Sistemas Discretos u(t) u(j ω) 41 t ωmax ωmax ω ) u*(t) ωs 2 u*(e 2 jω ωs ωmax ωs ω t ωs ωmax Figura 2. la funci´n de transferencia de la retenci´n de orden cero o o viene a ser: 1 − e−sT u(s) ¯ = Gr0 (s) = (2. ´ a Discretizaci´n Directa o Es bastante util discretizar directamente expresiones que contengan in´ tegrales y derivadas. Por consio guiente. Empleando la conocida transformaci´n L[µ(t − kT )] = o da de Laplace de u(t) resulta: ∞ la transforma- u(s) = ¯ k=0 1 1 u(kT )e−kT s [1 − e−T s ] = u∗ (s) [1 − e−T s ] s s Por consiguiente.5: Respuesta en frecuencia de las se˜ales u(t) y u∗ (t) para ilustrar n el teorema del muestreo.22) u∗ (s) s Este ultimo resultado ser´ usado posteriormente.2.

Ejemplo 2.42 u(s) u*(s) Sistemas Discretos _ u(s) 1 e.24) = e(t) ≈ ˙ Si la discretizaci´n de la derivada se realiza por adelanto.sT s T ’ RETENCION DE ORDEN CERO _ u*(t) u (t) u(2T) T 2T u(3T) 3T 4T u(T) 0 u(0) u (t) t 0 T 2T 3T 4T Figura 2.23) En la ultima expresi´n hemos obviado en el argumento su dependencia con ´ o el tiempo de muestreo T . o x(k + 1) − x(k) .3 Discretizar el modelo no lineal del proceso p´ndulo descrito en el ejemplo 2. u(k) − u(k − 1) = T e(k − 1) (2. . pues se sobreentiende que todos los t´rminos se dise cretizan empleando el mismo tiempo de muestreo. entonces las difeo rencias son de la forma: x(kT + T ) − x(kT ). . (2. T´rminos que contengan e 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 .6: Proceso de muestreo y reconstrucci´n. o aproximaci´n rectangular como sigue: o t u(t) = 0 k e(τ )dτ k−1 u(kT ) ≈ i=0 T e(iT − T ).2 e y graficar diez segundos de su respuesta a un torque tipo escal´n unitario. u(kT − T ) ≈ T i=0 e(iT − T ) u(kT ) − u(kT − T ) = T e(kT − T ).

. for k = 1:1000 % CADA MUESTRA k EQUIVALE A T SEGUNDOS U(k) = 1.7. g = 9.3366 N-m/rad/s. X2(1) = 0.3 Fundamentos de Sistemas Discretos 43 Asumir los siguientes valores: Lo = 1.3366. T = 0. Bp = 1.2. Bp =1.5.81 m/s2 y T = 0. obtenemos: X1 (k + 1) = X1 (k) + T X2 (k) Bp g 1 x (k) + U (k) X2 (k + 1) = X2 (k) + T − senX1 (k) − 2 2 Lo Mo Lo Mo L2 o y(k) = x1 (k) El siguiente programa en c´digo MATLAB determina la respuesta que se o muestra en la figura 2.25) o donde K es la ganancia proporcional. TI es el tiempo de integraci´n y TD es el tiempo derivativo. En un primer caso emplear integraci´n rectangular o y luego usar integraci´n trapezoidal.6350. X1(1) = 0.8) y obo viando la escritura del tiempo de muestreo T en los argumentos.. g = 9. Mo = 0.24) en (2.(Bp/(Mo*Lo^2))*X2(k) . Y(k) = X1(k).01. end plot(Y).4 Discretizar el siguiente controlador ideal PID: u(t) = K e(t) + 1 TI t 0 e(t)dt + TD de(t) dt (2.6350 m.01 s.25) se obtiene: o u(k) = K T e(k) + TI k e(i − 1) + i=0 TD [e(k) − e(k − 1)] T .81. + (1/(Mo*Lo^2))*U(k) ). Mo = 0.5 Kg. grid ylabel(’Posicion (rad)’) xlabel(’Tiempo discreto k’) print -deps -f fig2_7 Ejemplo 2. % ejem2_3.m RESPUESTA DEL PENDULO NO LINEAL A UN ESCALON clear all Lo = 1. o Soluci´n: Empleando las relaciones (2. Observar que cada muestra k equivale a T s. % ESCALON DE ENTRADA X1(k+1) = X1(k) + T*X2(k). Soluci´n: Discretizando por adelanto las ecuaciones dadas en (2.23) y (2. X2(k+1) = X2(k) + T*( -(g/Lo)*sin(X1(k)) .

e o u(k − 1) = K + e(k − 1) + T TI k e(i − 1) − e(k − 1) i=0 TD [e(k − 1) − e(k − 2)] T Restando las expresiones anteriores y despejando u(k) obtenemos: u(k) = u(k − 1) + q0 e(k) + q1 e(k − 1) + q2 e(k − 2) donde: q0 = K(1 + TD ).18 0.06 0. T TI q2 = K TD T (2.02 0 0 Sistemas Discretos 100 200 300 400 500 600 Tiempo discreto k 700 800 900 1000 Figura 2. entonces: a u(k) = K 1 e(k) + TI k T i=0 TD e(i − 1) + e(i) + [e(k) − e(k − 1)] 2 T k k u(k − 1) = K T e(k − 1) + 2TI e(i − 1) − e(k − 1) + i=0 i=0 e(i) − e(k) .12 0. T q1 = −K(1 + 2 T TD − ).7: Respuesta del p´ndulo no lineal al escal´n.1 0.08 0.16 0.04 0.26) Si la integraci´n emplea el m´todo trapezoidal (aproximaci´n de segmeno e o tos de ´rea mediante trapezoides).44 0.14 Posición (rad) 0.2 0.

La Transformada Z z = eT s = eT (σ+jω) = eT σ [cosωT + jsenωT ] (2.3.16) la se˜al u por una variable gen´rica g. donde: o q0 = K(1 + T TD + ). 1−a |a| < 1 ak = k=N1 A manera de ejemplo. o n e llegamos a la siguiente definici´n de la transformada Z: o ∞ g(z) = Z[g(kT )] = k=0 g(kT )z −k = g(0) + g(T )z −1 + g(2T )z −2 + · · · (2.28) La serie en (2.2. T 2TI q1 = −K(1 + 2 T TD − ). la transformada Z del impulso unitario δ(kT ). Las sumatorias siguientes son bastante utiles para resolver problemas ´ relacionados con la transformada Z: N −1 ak = k=0 ∞ 1 − aN . 1−a aN1 .27) Es util introducir la siguiente relaci´n: ´ o Reemplazando en la ecuaci´n (2.28) converge si |g(kT )| se restringe a valores finitos y si |z| > 1.26). 1−a a . sabiendo que δ(0T ) = 1.3 Fundamentos de Sistemas Discretos TD [e(k − 1) − e(k − 2)] T 45 + Restando las expresiones anteriores y despejando u(k) obtenemos una expresi´n similar a (2.2. 1−a 1 . T 2TI q2 = K TD T 2.29) ak = k=0 ∞ kak = k=0 N2 ak = k=N1 ∞ aN1 − aN2 −1 . resulta: ∞ Z[δ(kT )] = k=0 δ(kT )z −k = z −0 = 1 . (1 − a)2 |a| < 1 |a| < 1 |a| < 1 |a| < 1 (2.

la transformada Z de ak cosωk puede ser determinada empleando la propiedad de multiplicaci´n o por una exponencial. mientras que la tabla 2. como sigue: Z[ak cosωk] = z2 z(z − cosω) − 2zcosω + 1 = z=z/a z2 z(z − acosω) − 2zacosω + a2 . d ≥ 0 (3) Desplazamiento a la izquierda: Z[g(kT + dT )] = z d [g(z) − d−1 g(νT )z −ν ]. pues la serie debe ser convera gente. La tabla 2.29) resulta: ∞ Z[µ(kT )] = k=0 z −k = 1 z = 1 − z −1 z−1 la cual es v´lida para |z −1 | < 1 (o |z| > 1). A continuaci´n se formulan algunas propiedades de la transformada Z: o (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). ν=0 (4) Amortiguamiento: Z[g(kT )e−akT ] = g(zeaT ) (5) Multiplicaci´n por una variable: o Z[kg(kT )] = −z dg(z) dz (6) Multiplicaci´n por una exponencial: o z Z[ak g(kT )] = g( a ) (7) Teorema del valor inicial: l´ k→0 x(kT ) = l´ z→∞ x(z) ım ım (8) Teorema del valor final: ım l´ k→∞ g(kT ) = l´ z→1 ım z−1 z g(z) d≥0 = l´ z→1 (1 − z −1 )g(z) ım Por ejemplo.46 Sistemas Discretos mientras que la transformada Z del escal´n µ(kT )=1 empleando la segunda o de las sumatorias dadas en (2.1 ilustra la transformada Z de algunas secuencias notables.2 presenta la relaci´n existente entre la transformada o Z y la transformada de Laplace. sabiendo que Z[cosωk] es conocido.

1: Transformada Z de algunas secuencias.3 Fundamentos de Sistemas Discretos 47 Cuadro 2.2. No (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) g(t) δ(k) δ(k − d)) µ(k) µ(k − d) kµ(k) ak µ(k) ak−1 µ(k − 1) kak µ(k) µ(k)senωk µ(k)cosωk µ(k)ak senωk µ(k)ak cosωk k(k−1)···(k−m+2) k−d+1 a (d−1)! g(z) 1 z −d z z−1 z −d+1 z−1 z (z−1)2 z z−a 1 z−a az (z−a)2 z sinω z 2 −2zcosω+1 z(z−cosω) z 2 −2zcosω+1 za senω z 2 −2za cosω+a2 z(z−acosω) z 2 −2zacosω+a2 z −d+1 (1−z −1 )d .

2: Transformada de Laplace versus transformada Z. No (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) g(t) δ(t) µ(t) t e−at te−at t2 e−at 1 − e−at e−at − e−bt senωt cosωt e−at senωt e−at cosωt g(s) 1 1 s 1 s2 1 s+a 1 (s+a)2 2 (s+a)3 a s(s+a) b−a (s+a)(s+b) ω s2 +ω 2 s s2 +ω 2 ω (s+a)2 +ω 2 s+a (s+a)2 +ω 2 g(kT ) δ(k) µ(k) k (e−aT )k kT (e−aT )k (kT )2 (e−aT )k 1 − (e−aT )k (e−aT )k − (e−bT )k senωkT cosωkT (e−aT )k senωkT (e−aT )k cosωkT g(z) 1 z z−1 Tz (z−1)2 z z−e−aT T ze−aT (z−e−aT )2 T 2 ze−aT (z+e−aT ) (z−e−aT )3 z(1−e−aT ) (z−1)(z−e−aT ) z(e−aT −e−bT ) (z−e−aT )(z−e−bT ) zsenωT z 2 −2zcosωT +1 z(z−cosωT ) z 2 −2zcosωT +1 ze−aT senωT z 2 −2ze−aT cosωT +e−2aT z(z−e−aT cosωT ) z 2 −2ze−aT cosωT +e−2aT .48 Sistemas Discretos Cuadro 2.

a1 = −1.3.30) s=bj u donde P es el n´mero de polos ai no repetidos de G(s) y Q es el n´mero de u polos bj que se repiten con multiplicidad mj . En el dominio discreto.3. m1 = 2. Q = 1. la transformaci´n ´ o −1 [g(z)] = g(t) que no es unica debido a Z[g(t)] = g(z) posee una inversa Z ´ que la se˜al discreta no est´ definida entre muestras. En contraste. la transformada de Laplace g(s) = L[g(t)] posee una inversa L−1 [g(s)] = g(t) que es unica. La Transformada Z Inversa En el dominio continuo. Si se tiene: o g(s) = q(s) p(s) donde el grado del polinomio p(s) es mayor que el de q(s). Luego: o g(z) = (s + 1) 1 (2 − 1)! z 1 s2 (s + 1) (z − eT s ) = s=0 + s=−1 d z 1 s2 2 ds s (s + 1) (z − eT s ) z −z(z − 1 − T ) + −T z−e (z − 1)2 2. la transformaci´n g(z) = Z[g(kT )] posee una unica inversa o ´ Z −1 [g(z)] = g(kT ). entonces ıces g(z) se obtiene de: P g(z) = i=1 Q (s − ai ) g(s)z z − eT s s=ai + j=1 1 dmj −1 mj g(s)z mj −1 (s − bj ) (mj − 1)! ds z − eT s (2.3 Fundamentos de Sistemas Discretos 49 La forma general para obtener Z[g(s)] es mediante el m´todo de los e residuos (derivado de la integral de convoluci´n).5 Determinar g(z) sabiendo que: g(s) = s2 (s 1 + 1) Soluci´n: Para este caso P = 1. . y adem´s si a suponemos que todas las ra´ de q(s) poseen parte real negativa. n a sin embargo.2. Ejemplo 2. b1 = 0.

luego. Q = 0. b1 = 1. 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 + [(z − b1 )m1 g(z)z k−1 (m1 − 1)! dz m1 −1 z=b1 + dm2 −1 1 [(z − b2 )m2 g(z)z k−1 (m2 − 1)! dz m2 −1 z=b2 Ejemplo 2. b1 =1. a1 = 1. a2 = 2. (z − 1)(z − 2) zk z−1 (b) : g(z) = z (z − 1)2 Soluci´n: Para el primer caso: P = 2. Un m´todo generalizado para determinar la inversa de g(z) consiste en factorizar g(z) en factores de primer orden. m1 = 1. Otra forma es expandir g(z) en fracciones parciales y obtener e e la transformada Z −1 de cada uno de los t´rminos resultantes. b2 =5. a3 =4. a2 =3. Q=2. determinar g(kT ) de: z g(z) = (z − 2)(z − 3)(z − 4)(z − 1)2 (z − 5)3 Para este caso: P = 3.50 Sistemas Discretos Una forma de determinar g(kT ) es dividir el numerador de g(z) entre su denominador.31) z=bj + j=1 u donde P es el n´mero de polos ai no repetidos de G(z) y Q es el n´mero de u polos bj que se repiten con multiplicidad mj . a1 =2.6 Determinar g(kT ) para: (a) : g(z) = z . m1 =2 y m2 =3. Luego: g(k) = 1 d (z − 1)2 1! dz z (z − 1)2 z k−1 z=1 = d k (z ) dz =k z=1 . usar la siguiente f´rmula de inversi´n: o o P g(kT ) = i=1 Q [(z − ai )g(z)z k−1 ]z=ai 1 dmj −1 [(z − bj )mj g(z)z k−1 (mj − 1)! dz mj −1 (2. Por ejemplo. Q = 1. Por tanto: o g(k) = + z=1 zk z−1 = −1 + 2k z=2 Para el segundo caso: P = 0.

y luego muestreando y(s) obtenemos una expresi´n en el dominio discreto. Ejemplo 2.32) Para el caso multivariable. . . Soluci´n: Empleando la relaci´n (2. o donde x(s) es una se˜al auxiliar. o 2 1 Esta ultima relaci´n es equivalente a: ´ o y(z) = G2 (z)G1 (z)u(z) . porque no siempre es posible encontrar una relaci´n de la forma o y(z) = G(z)u(z). 2.32) para cada elemento de la matriz de o transferencia G(s). a saber: y ∗ (s) = G∗ (s)G∗ (s)u∗ (s).32) y la tabla 2. 3. d = 1. Ejemplo 2.3 Fundamentos de Sistemas Discretos 51 2.2 obtenemos: o o G(z) = Z[Gr0 G(s)] = (1 − z −1 )Z a1 = −e−aT .8 b1 z −1 K (esT )−d = z −d s(s + a) 1 + a1 z −1 K b1 = (1 − e−aT ) a Determinar la salida muestreada para los casos ilustrados en las figuras 2.4. Para derivar la funci´n de transferencia de pulso para el o caso de procesos en cascada o formando lazos cerrados. debemos proceder con cautela. Funci´n de Transferencia de Pulso o Conociendo la funci´n de transferencia G(s) = y(s)/u(s) de un sistema.2.3. Muestreando x(s) como sigue: n [x(s)]∗ = x∗ (s) = [G1 (s)u(s)]∗ = G∗ (s)u∗ (s) 1 Reemplazando ahora x∗ (s) en y(s).8(a)-(f). o la correspondiente funci´n de transferencia de pulso se determina de la o relaci´n: o 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. Los siguientes ejemplos ilustran los casos tratados. Soluci´n: En la figura (a) se tiene: y(s) = G2 (s)x∗ (s) y x(s) = G1 (s)u(s). s+a Tt = dT. .7 Dado el tiempo de muestreo T . determinar la funci´n de transferencia de o pulso para el proceso: G(s) = K −Tt s e . la matriz de transferencia de pulso G(z) se determina empleando la relaci´n (2.

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

Sistemas Discretos

G 1 (s)

G 2 (s)

y(s) y(s)

G 2 (s)

G 2 (s)

y(s)

T u(s) u*(s)

D(z)

1-e s (d)

G p (s) G(s) u(s)
+ -

y(s)

u(s)
+ -

x(s)

T x*(s) G(s)

y(s)

G(s) H(s) (f)

y(s) T y*(s)

H(s) (e)

Figura 2.8: Sistemas discretos a lazo abierto y a lazo cerrado. En la 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) = [GH](z) u(z) 1 + [GH](z)

2.3.5.

El Espacio de Estado Discreto

En la secci´n 2.2 vimos que la din´mica linealizada de un proceso (sin la o a presencia de disturbios) puede ser representada en el espacio de estado por la ecuaci´n (2.3): o ˙ x = Ax + Bu; y = Cx + Du (2.33)

La soluci´n de la ecuaci´n de estado anterior, dado un estado inicial x(t0 ), o o es: x(t) = eA(t−t0 ) x(t0) ) + eAt = φ(t − t0 )x(t0) + donde: φ(t − t0 ) = L
−1 t t0 t t0

e−Aτ Bu(τ )dτ (2.34)

φ(t − τ )Bu(τ )dτ

[(sI − A)

−1

]=e

A(t−t0 )

=
ν=0

Aν (t − t0 )ν ν!

es la matriz de transici´n. Para demostrar que efectivamente (2.34) es una o soluci´n de la ecuaci´n de estado (2.33), basta derivar la expresi´n (2.34) o o o ˙ con respecto al tiempo, para as´ obtener x = Ax + Bu. ı

54

Sistemas Discretos

La representaci´n de la ecuaci´n de estado en el dominio laplaciano toma o o 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: x1 = −7x1 + x2 + 2u; ˙ x2 = −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´n para los o tiempos de muestreo de 0.1 s y 0.04 s. o Soluci´n: Seg´n la tabla 2.2: L[3e−t ] = 3/(s + 1). Aplicando la ecuaci´n o u (2.35) obtenemos: A= C= 3 −4 −7 1 −12 0 ;
−1

;

B=

2 −1 x(0) =
−1

D = [−2]; −6 1

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

x(s) = = = s2

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

+

s + 7 −1 12 s −6 1 +

s 1 −12 s + 7

2 −1

−6s2 +s−2 (s+1)(s+3)(s+4) s2 +77s−14 (s+1)(s+3)(s+4) −6s2 +s−2 (s+1)(s+3)(s+4) s2 +77s−14 (s+1)(s+3)(s+4)

y(s) = Cx(s) + Du(s) = = y(t) =

3 −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´cticamente coina ciden. Conforme T aumenta, la diferencia entre y(t) e y(kT ) es m´s notoria, a 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´n de la Ecuaci´n de Estado Discreta o o Discretizando la ecuaci´n (2.33) para un tiempo discreto k = t/T y o asumiendo que entre muestras la se˜al de control u es constante, entonces n para la se˜al de entrada u(t) = u(kT ), kT ≤ (k + 1)T y para un estado n inicial x(kT ) = u(kT ), kT ≤ (k + 1)T , la ecuaci´n de estado se convierte o

56
10

Sistemas Discretos

0

−10 y Salida −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´lida: y(t); en trazos: o y(kT1 ), T1 = 0,04 s; curva punto y raya: y(kT2 ), T2 = 0,1 s. en: x(t) = φ(t − kT )x(t0) + u(kT )

t t0

φ(t − τ )Bdτ

Si s´lo interesa la soluci´n para t = (k + 1)T y empleando el cambio de o o 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); donde: G = Φ(T ) = eAT ; H=
0

y(k) = Cx(k) + Du(k)
T

(2.36)

φ(λ)dλ B

(2.37)

Notar que (2.36) es una ecuaci´n vectorial de diferencias que puede ser o 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 . . .
k

57

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

Gν−1 Hu(k − ν)

(2.38)

donde Gk es la denominada matriz de transici´n discreta. Una segunda altero nativa de soluci´n de (2.36) se da en el dominio de z. Aplicando la propiedad o 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) y empleando la ecuaci´n de salida resulta: o y(z) = C(zI − G)−1 zx(0) + [C(zI − G)−1 H + D]u(z) Comparando las ecuaciones (2.38) y (2.39) verificamos que: Gk = Z −1 [(zI − G)−1 z] (2.41) (2.40) (2.39)

La matriz de transferencia de pulso se determina haciendo x(0) = 0 en (2.40): (2.42) y(z) = Gp (z)u(z) = [C(zI − G)−1 H + D]u(z) mientras que la ecuaci´n caracter´ o ı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´ de su ecuaci´n caracter´ ıces o ı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´nicas en el Espacio de Estado Discreto o La forma general de la funci´n de transferencia de pulso para un proceso o es: b0 + b1 z −1 + · · · + bn z −n y(z) b0 z n + b1 z n−1 + · · · + bn = = n u(z) 1 + a1 z −1 + · · · + an z −n z + a1 z n−1 + · · · + an (2.44) y su correspondiente ecuaci´n de diferencias toma la forma: o 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´n de las variables de estado, un proceso posee diversas o representaciones en el espacio de estado. Las formas can´nicas m´s notables, o a con relaci´n a la funci´n de transferencia de pulso dada en (2.44), se descrio o ben a continuaci´n. o Primera Forma Can´nica Controlable: o
    x(k + 1) =    0 0 . . . 0 −an 1 0 . . . 0 −an−1 0 1 . . . 0 −an−2 ··· ··· ··· ··· ···      1   xn−1 (k) −a1 xn (k) b1 − a1 b0 0 0 . . .  x1 (k) x2 (k) . . .         +     0 1 0 0 . . .      u(k)   (2.46) (2.47)

y(k) =

bn − an b0

bn−1 − an−1 b0

x(k) + b0 u(k)

Segunda Forma Can´nica Controlable: o
    x(k + 1) =    0 0 . . . 0 −an 1 0 . . . 0 −an−1 y(k) = 0 1 . . . 0 −an−2 1 ··· ··· ··· ···      1   xn−1 (k) −a1 xn (k) 0 x(k) + β0 u(k) 0 0 . . .  x1 (k) x2 (k) . . .         +     βn−1 βn β1 β2 . . .      u(k)   (2.48) (2.49)

0 ···

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 Tercera Forma Can´nica Controlable: o
    x(k + 1) =    y(k) = −a1 1 0 . . . 0 −a2 0 1 . . . 0 ··· ··· ··· ··· −an−1 0 0 . . . 1 ··· −an 0 0 . . . 0         xn−1 (k) xn (k) x1 (k) x2 (k) . . .         +     0 0 1 0 . . . 

59

    u(k) (2.50)   (2.51)

b1 − a1 b0

b2 − a2 b0

bn − an b0

x(k) + b0 u(k)

Primera Forma Can´nica Observable: o
    x(k + 1) =    0 0 0 1 . . . 0 ··· 0 ··· . . . 0 ··· 0 ··· 0 0 0 0 . . . . . . 1 0 0 1 0 −an −an−1 . . . −a2 −a1 0 ···         xn−1 (k) xn (k) 0 1 x1 (k) x2 (k) . . .         +     bn − an b0 bn−1 − an−1 b0 . . . b2 − a2 b0 b1 − a1 b0      u(k)   (2.52) (2.53)

y(k) =

x(k) + b0 u(k)

Segunda forma can´nica observable: o
    x(k + 1) =    −an−1 −an −a1 −a2 . . . 1 0 . . . 0 0 0 ··· 1 ··· . . . 0 ··· 0 ··· 0 0 . . . 0 0 0 0 . . .       1   xn−1 (k) 0 xn (k) 0 0··· x1 (k) x2 (k) . . .         +     bn−1 − an−1 b0 bn − an b0 b1 − a1 b0 b2 − a2 b0 . . .      u(k)   (2.54) (2.55)

y(k) =

1 0 ···

x(k) + b0 u(k)

Forma Can´nica Diagonal (eigenvalores no repetidos) o
       xn−1 (k + 1) xn (k + 1) x1 (k + 1) x2 (k + 1) . . .        =    y(k) = p1 0 . . . 0 c1 0 p2 . . . 0 c2 ··· ··· ··· ··· 0 0 . . . pn cn      x1 (k) x2 (k) . . . xn (k) x(k) + b0 u(k)       +   1 1 . . . 1 (2.57)     u(k)  (2.56)

60

Sistemas Discretos

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

ci ; z − pi

ci = l´ ım

z→pi

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

(2.58)

Forma Can´nica de Jordan (eigenvalores repetidos).- En la subsecci´n 1.2.3 o o vimos que si la matriz de estado A de orden n de un proceso con funci´n de o 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´s a 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   +   u(k)   x(k + 1) =  0 0 0 0 p2 0 0 0   x5 (k)   1        0 0 0 0 0 p6 0 0   x6 (k)   1        0 0 0 0 0 0 p7 0   x7 (k)   1  0 y(k) = 0 0 0 0 0 0 p8 x8 (k) x(k) + b0 u(k)
8 i=6

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

c 1 c2 c3 c4 c5 c6 c7 c8 c9

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

Ejemplo 2.10 La funci´n de transferencia de pulso de un proceso se modela como: o y(z) = u(z) 1+
6 −i i=0 bi z 6 −i i=1 ai z

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

rden = roots(den).5. b5=-1. rnum = roots(num).8. b2=-0. beta2 = b2-a1*beta1-a2*beta0.2. o Soluci´n: El siguiente programa resuelve las preguntas planteadas. 0. Dc =[beta0].8.2.3 Fundamentos de Sistemas Discretos 61 de estado y la ecuaci´n de salida para la segunda forma can´nica controlable o o y para la primera forma can´nica observable. beta6 = b6-a1*beta5-a2*beta4-a3*beta3-a4*beta2-a5*beta1-a6*beta0. -0. o % ejem2_10. num = [b0 b1 b2 b3 b4 b5 b6]. y = Co*x(k) + Do*u(k) Go = [0 0 0 0 0 -a6 . 0.02. Hc = [beta1 beta2 beta3 beta4 beta5 beta6]. Cc = [1 0 0 0 0 0].3. 1. a2=-1. a5=0.4. 1.04.345.5.5 den =[1 a1 a2 a3 a4 a5 a6]. -0.49. a4=0. beta4 = b4-a1*beta3-a2*beta2-a3*beta1-a4*beta0. a6=-0. -2 % EL PROCESO ES INESTABLE DEBIDO A LAS RAICES -0. b1=-2. b6=1.2 Y -2 % SEGUNDA FORMA CANONICA CONTROLABLE: % x(k+1) = Gc*x(k) + Hc*u(k).3.5. beta3 = b3-a1*beta2-a2*beta1-a3*beta0.8.65.69. -0. -0. y(k) = Cc*x(k) + Dc*u(k) beta0 =b0. 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]. a1=1.m FORMAS CANONICAS clear all b0=1. % PRIMERA FORMA CANONICA OBSERVABLE: % x(k+1) = Go*x(k) + Ho*u(k). b3=6. % beta1 = b1-a1*beta0. 0.4. Demuestre que la matriz de o estado de ambas formas can´nicas poseen los mismos eigenvalores y que o ambas representaciones generan la misma funci´n de transferencia de pulso.5. % RAICES DEL POLINOMIO DEL DENOMINADOR % roots: 0. beta5 = b5-a1*beta4-a2*beta3-a3*beta2-a4*beta1-a5*beta0. b4=-4. 2.25. % RAICES DEL POLINOMIO DEL NUMERADOR % rnum: -1.4. a3=-0.

deno] = ss2tf(Go. y(k) = C*x(k) + D*u(k). Co = [0 0 0 0 0 1]. o Soluci´n: El siguiente programa resuelve las preguntas planteadas. -1.0]. [numo. [num.0000 -1. 0 rangG = rank(G). c3=c(3). Ho = [b6-a6*b0 b5-a5*b0 b4-a4*b0 b3-a3*b0 b2-a2*b0 b1-a1*b0]. .p.Do).Cc. c1=c(1). G = [0 1 0 3 0 -1 1 1 0 0 0 1 0 0 -1 -2].Hc. c2=c(2). C y D (ver programa ejem2 11. % EXPANSION EN FRACCIONES PARCIALES % c = [-8.0000 0]. % eigG = EIGENVALORES DE G: -1.m). H.k] = residue(num.0000 -8.D). D = [-2]. eig(Gc)=eig(Go) Ejemplo 2.-4.11 Conocidas las matrices G. % SE COMPRUEBA QUE: num=numc=numo. eigG = eig(G).Ho. H = [1. -1.m FORMAS CANONICAS DE JORDAN clear all % x(k+1) = G*x(k) + H*u(k).C. C = [1 0 0 0].den).den] = ss2tf(G.denc] = ss2tf(Gc.H. den=denc=deno.0000 0. determine la ecuaci´n de estado y la ecuaci´n de salida de su forma can´nica de Jordan.0000 9. [numc. % rankA = 3 => G POSEE 3 VECTORES PROPIOS % LINEALMENTE INDEPENDIENTES => 4-3=1 (UN 1 SOBRE LA DIAGONAL) [c.0000 -1. o % ejem2_11. Do=[b0].0000]’.0. % p = [-1. % k = -2.Dc). c4=c(4).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]. o o o 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´n de transferencia de pulso.Co.

5 rad) [11]. den=denj.Cj.Hj. du y dy toman valores enteros positivos. lo cual es suficiente para capturar el efecto del de hasta 200 tiempo muerto en muchas aplicaciones. d = 1. % EIGENVALORES DE Gj: -1.8s y(s) = e u(s) 2s + 1 1 − Tt s/2 + (Tt s)2 /10 − (Tt s)3 /120 num(s) = den(s) 1 + Tt s/2 + (Tt s)2 /10 + (Tt s)3 /120 .2.1.1. podemos acomodar retardos de fase o o (3. .denj] = ss2tf(Gj. p2=p(4). Dj = [k]. eigGj = eig(Gj). . [numj.3 Fundamentos de Sistemas Discretos p1=p(1). entonces en el dominio discreto el tiempo muerto toma la forma z −d . Este tiempo muerto puede existir en la entrada. resulta o e util emplear la aproximaci´n de Pad´ para el tiempo muerto: ´ o e e−Tt s = 1 − sTt + 1 1 num(s) (sTt )2 − (sTt )3 + · · · = !2 !3 den(s) Con una aproximaci´n de tercer orden. 0 % SE COMPRUEBA QUE: num=numj. y dado que eT s = z. -1. tal como se ilustra a continuaci´n: o x(k + 1) = Ax(k − dx ) + Bu(k − du ) y(k + dy ) = Cx(k) donde los tiempos muertos dk . . y = Cj*x(k) + Dj*u(k) Gj = [p1 0 0 0 0 p1 1 0 0 0 p1 0 0 0 0 p2].12 Comparar la respuesta a un escal´n del proceso: o 10 −5. Hj = [0. Si la relaci´n d = Tt /T no fuera un entero (o tambi´n si lo fuera).1]. 2. p2=p(3). eigG=eigGj 63 Procesos Discretos con Tiempo Muerto En el dominio continuo.Dj). Si Tt = dT . Tal aproximaci´n tiene la forma: o e−T s ≈ Ejemplo 2. p2=p(2). en la salida o entre las variables de estado del proceso. -1. la transformada de Laplace del tiempo muerto es e−Tt s . % x(k+1) = Gj*x(k) + Hj*u(k). Cj = [c1 c2 c3 c4].

dend]=c2dm(num. plot(t. % TIEMPO MUERTO % APROXIMACION DE TERCER ORDEN DEL TIEMPO MUERTO D: numD=[-Tt^3/120 Tt^2/10 -Tt/2 1].3. ejecutar previamente o el programa ejpade.T.m en SIMULINK (figura 2. % GRAFICOS load yd.1)).den).11.64 Sistemas Discretos con respecto a la respuesta originada por el proceso cuando el tiempo muerto se aproxima por una relaci´n de Pad´ de tercer orden. % ejpade.C.C. % PROCESO DISCRETO APROXIMADO T=0.5.m. t=linspace(0. .yd. Para realizar la simulaci´n usando el programa ejpades. [numd.D]=tf2ss(num. tanto en el dominio continuo como en el dominio discreto.H.t.size(yd.T.m PROCESO CON TIEMPO MUERTO D clear all Tt=5.den. [A.’zoh’).6. [G.m.10) resuelve el o problema planteado y los resultados se ilustran en la figura 2. % PROCESO PARCIAL nump=[0 10]. si es que existe un a 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 .11. den=conv(denD.8.denp). load yda. denD=[Tt^3/120 Tt^2/10 Tt/2 1].D.D]=c2dm(A. Controlabilidad y Observabilidad Concepto de Controlabilidad Un proceso din´mico lineal se dice que es controlable.B. grid xlabel(’Tiempo en segundos’) ylabel(’Respuestas al escalon’) print -deps -f ejpade print -deps -s ejpades 2.C.’zoh’).’--’). Luego determinar la o e ecuaci´n de estado aproximada del proceso.yda. denp=[2 1]. % PROCESO APROXIMADO num=conv(numD.B. el cual tambi´n determina la ecuaci´n de estado y e o las funciones de transferencia aproximadas del proceso.nump). o Soluci´n: El programa ejpades.

s 2+Tt/2.s 2−Tt/2s+1 2s+1 Tt^3/120. 12 10 8 Respuestas al escalóon 6 4 2 0 −2 0 2 4 6 Tiempo en segundos 8 10 12 Figura 2.3 Fundamentos de Sistemas Discretos 65 10 2s+1 u Proceso parcial Tiempo muerto yd_ yd yd Mux Graph Mux yda_ yda yda 10 −Tt^3/120s3+Tt^2/10.11: Comparaci´n de las respuestas a un escal´n del proceso (curva o o s´lida) y de su modelo aproximado (curva en trazos) mediante una relaci´n o o Pad´ de tercer orden (ejemplo 2.12).s3+Tt^2/10. e .12).10: Comparaci´n de las respuestas a un escal´n del proceso y de o o su modelo aproximado mediante una relaci´n Pad´ de tercer orden (ejemplo o e 2.2. parcial Aproximación del tiempo muerto Figura 2.s+1 Proc.

. Basta reemplazar en M . para que su matriz de controlabilidad s´lo posea filas o columnas independientes. CGH. lo que quiere decir. . Por consiguiente. . o ´ La determinaci´n de la controlabilidad completa en el espacio de estado o continuo es similar. CGn−2 H]Un (2. . . . para que un proceso sea completamente controlable. . A por G y B por H. u(0)]T = u(N ) = M −1 [x(N ) − GN x(0)] M = [H GH . o se debe cumplir que: rango(M ) = rango([H GH . Para N < n no existe soluci´n para u. . . y o para N > n la soluci´n no es unica. . . . u(k + 1) u(k)]T .38) para k = N se obtiene: o [u(N − 1) . M es conocida como la matriz de controlabilidad. la cual puede contener columnas o filas linealmente dependientes. .66 Sistemas Discretos Despejando u(k) de la ecuaci´n (2. y(k − n). GN −1 H] donde det(M ) = 0. Consideremos la siguiente ecuaci´n de salida: o y(k) = Cx(k) Empleando la ecuaci´n de estado x(k + 1) = Gx(k) + Hu(k).62) donde n es el orden del proceso. Concepto de Observabilidad Un proceso lineal din´mico con salida y(k) se denomina observable si a alg´n estado x(k) puede ser obtenido a partir de un n´mero finito de salidas u u y(k).63) donde (asumiendo que los vectores de entrada son completamente conocidos) Un = [u(k + n − 1) . . . . . podemos o deducir que: y(k) = Cx(k) y(k + 1) = CGx(k) + CHu(k) y(k + 2) = CG2 x(k) + CGHu(k) + CHu(k + 1) . CH. GN −1 H]) = n (2. y(k − 1). y(k + n − 1) = CGn−1 x(k) + [0. .

63) toma la forma: o Yn = N x(k) + SUn donde: Yn = [y(k) y(k + 1) . CG 67 (2.65) siempre que det(N ) = 0.1 y 2. . CGn−1 ]T = [C T GT C T .m CONTROLABILIDAD Y OBSERVABILIDAD clear all % SISTEMA HIDRAULICO Area = 9. .3 Fundamentos de Sistemas Discretos La ecuaci´n (2.66) La determinaci´n de la observabilidad completa en el espacio de estado o continuo es similar.  . % n = 2 . .81. el vector inc´gnita se obtiene de: o x(k) = N −1 [Yn − SUn ] (2. . Basta reemplazar A por G en la expresi´n de N . o % ejem2_13. .13 Determine si los procesos sistema hidr´ulico y p´ndulo descritos en los ejema e plos 2. .  . para que el proceso din´mico sea observable. rho = 1. a21=-a11. . . .2. gamma = 0. . % FLUJO DE ENTRADA EN EQUILIBRIO H1e = Q0e^2/(gamma*rho*g). .4. (GT )n−1 C T ]   0 0 0 0 0  0  0 0 0 CH   S =  .2 son completamente controlables y observables. Q0e = 3.  .. y(k + n − 1)]T N = [C CG . o Ejemplo 2. Luego. % NIVEL DE EQUILIBRIO H2e = H1e. . a22=a11. Soluci´n: El siguiente programa resuelve las preguntas planteadas. g = 9. a la matriz de observabilidad N debe cumplir: rango[N ] = n (2.23.64) Despejando. A = [a11 0 a21 a22]. n−2 H 0 CH CGH . a11 = -gamma*sqrt(rho*g)/(2*Area*sqrt(H1e)).

68 Sistemas Discretos B = [1 0]. DP = [0].81.% rangN = 1 < 2 => NO ES COMPLETAMENTE OBSERVABLE % PROCESO PENDULO Bp = 1. g = 9. % MATRIZ DE CONTRABILIDAD rangM = rank(M). Lo = 1.% rangM = 2 = n => COMPLETAMENTE CONTROLABLE N = [C’ A’*C’]. C = [0 1]. AP = [0 1 -g/Lo^2 -Bp/(Mo*Lo^2)]. % MATRIZ DE CONTRABILIDAD rangMP = rank(MP). % n = 2 BP = [0 1/(Mo*Lo^2)]. CP = [1 0].3366.% MATRIZ DE OBSERVABILIDAD rangNP = rank(NP).5. % MATRIZ DE OBSERVABILIDAD rangN = rank(N). Mo = 0. % rangMP = 2 = n => COMPLETAMENTE CONTROLABLE NP = [CP’ AP’*CP’]. M = [B A*B]. D = [0]. % rangNP = 2 = n => COMPLETAMENTE OBSERVABLE .635. MP = [BP AP*BP].

1. La ultima secci´n propone la derivaci´n ´ o o de modelos din´micos de otros procesos.1. cuyos sistemas de control ser´n o a dise˜ados en los cap´ n ıtulos siguientes.2. que e se trata en la subsecci´n 3.Cap´ ıtulo 3 Modelado de Procesos Este cap´ ıtulo presenta la derivaci´n de modelos din´micos de procesos cono a tinuos con su correspondiente linealizaci´n y discretizaci´n.1. o . que se desarrolla en la subsecci´n 3. a trav´s de un sistema de poleas. Tales procesos son: el p´ndulo invertido. empleando como herramienta de c´lculo la computadora. Las tres primeras secciones se dedican a los procesos a cuyos sistemas de control avanzado van a ser implementados en tiempo real.edu. la gr´a-puente y el servomotor de core u riente continua sujeto a cargas no lineales. y el subsistema conformado por el motor y o el sistema de poleas.uni. tal como se muestra en la e figura 3.pe/728681F. En su secci´n problemas resueltos o se presenta la modelaci´n de diversos procesos. Modelo del Proceso P´ndulo Invertido e El proceso p´ndulo invertido consiste de un p´ndulo montado sobre un e e carro que se desplaza en forma horizontal. Para mayor claridad. Todos los archivos correspondientes a a los ejercicios y problemas desarrollados en este cap´ ıtulo se pueden descargar del sitio: http://fiee.1.1.C. Tambi´n se explora o o e la respuesta de los procesos a entradas t´ ıpicas y se determina las caracter´ ısticas de controlabilidad y observabilidad de los mismos. el proceso p´ndulo invertido se ha separado e en dos subsistemas: el subsistema conformado por el carro y el p´ndulo. Este carro est´ impulsado por un a servomotor D. 3.

Modelo del Subsistema Carro-P´ndulo e El subsistema carro-p´ndulo se ilustra en la figura 3.2) .1) (3.1.2 podemos observar que los centros de gravedad de la varilla y de la esfera son: y z y’ l v /2 θ 0 P 11 00 11 00 11 00 11 00 me g mvg le lv z’ z F Figura 3.1.C. e ze = z + le sen θ lv zv = z + sen θ 2 (3.1: Proceso p´ndulo invertido. y Modelado de Procesos y’ θ z Pendulo F Carro Figura 3.70 + Fuerza de u control Servomotor D. e 3.2: Subsistema carro-p´ndulo. De la figura 3.2 y est´ conformado e a por un carro y una varilla.

1 Modelo del Proceso P´ndulo Invertido e 71 Para modelar el sistema mec´nico empleamos la segunda ley de Newton a para los movimientos lineal y rotacional.7) e donde τj es el j-´simo torque externo. Para el movimiento lineal. Ji es el momento de inercia de la i-´sima part´ e ıcula respecto al punto P y θi es el ´ngulo recorrido por la ia ´sima part´ e ıcula alrededor del punto P.5) y desarrollando las derivadas resulta: z (mc +me +mv )¨−(me le +mv lv lv ˙ ¨ )(sen θ)+ θ2 (me le +mv )(cos θ)θ = F (3. la cual nos permite remplazar el efecto de la aceleraci´n del sistema o de referencia Z −Y por una fuerza mi z aplicada en el centro de gravedad de ¨ .1)) y zv (ecuaci´n (3. sustituyendo ze (ecuaci´n (3. 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.4) mc 2 z + me 2 ze + mv 2 zv = F dt dt dt o o o Luego. dicha ley establece que para un sistema de N part´ ıculas: N i=1 d2 mi 2 ri = dt M Fj j=1 (3.4) obtenemos: mc lv d2 d2 d2 z + me 2 (z + le sen θ) + mv 2 (z + sen θ) = F dt2 dt dt 2 (3. Aplicando la ecuaci´n (3. sometidas a M torques externos perpendiculares al plano de giro.2)) en la ecuaci´n (3.3) a nuestro sistema (en la direcci´n z) o o obtenemos: d2 d2 d2 (3.3) e ıcula. se cumple que: N i=1 d2 Ji 2 θi = dt M τj j=1 (3. Para aplicar esta ley al movimiento rotatorio de la varilla alrededor del punto P utilizamos la tercera ley de Newton.6) 2 2 Para completar el modelo.3. ri es la posici´n del centro de o donde mi es la masa de la i-´sima part´ masa de la i-´sima part´ e ıcula y Fj es la j-´sima fuerza aplicada al sistema de e part´ ıculas.

debido a que la inductancia en e a servomotores D.2.3: Subsistema motor-polea.2 obtenemos: o lv lv ¨ ¨ ¨ (Je +Jv )θ = me g(senθ)le +mv g(sen θ) −me z (cos θ)le −mv z (cos θ) (3. lv lv ¨ )g(sen θ) − (me le + mv )¨(cos θ) = (Je + Jv )θ z 2 2 Jv = mv 2 lv 3 (3.C. obtenemos: a ¨ ˙ Tm = Jeq θm + Beq θm + n F rp (3.11) Aplicando la segunda ley de Newton para el movimiento rotatorio en el sistema mec´nico del servomotor.13) .9) (3. Adem´s. o o Empleando la ecuaci´n (3.8) 2 2 y ordenando: (me le + mv donde: 2 Je = me le . Modelo del Subsistema Motor-Polea El subsistema motor-polea est´ representado en la figura 3.7) en la figura 3.12) (3. El modelo a del sistema el´ctrico se encuentra aplicando la ley de voltajes de Kirchhoff e a la parte el´ctrica de dicha figura. Ra ia + Vb = KA u = Va El voltaje contraelectromotriz est´ representado por: a ˙ Vb = Kb θm (3. podemos despreciar n su efecto en el modelo. de magneto permanente es peque˜a.72 Modelado de Procesos las part´ ıculas i de dicho sistema.1. pero en direcci´n opuesta a la aceleraci´n.10) 3. As´ obtenemos: ı Ra Va Vb La Jm Bm θm Jo Bo rp F + u - Figura 3.3.

15) El torque producido en el eje del servomotor viene dado por la ecuaci´n: o Tm = Km ia Sustituyendo la ecuaci´n (3. obtenemos la ecuaci´n general ´ o o del subsistema servomotor.12) en (3. empleamos: o θm = z n rp (3. (3.18).11) y despejando F obtenemos: F = Jeq ¨ Km KA θm − u− Ra n rp n rp Beq Km Kb + n rp Ra n rp ˙ θm (3. Tales e ecuaciones pueden ser escritas en forma compacta: ˙ ¨ M1 z − M2 (sen θ)θ2 + M2 (cos θ)θ − F = 0 ¨ ¨ M2 g(sen θ) − M2 z (cos θ) − J1 θ = 0 ¨ F = Kx KA u − J2 z − Bx z ¨ ˙ (3.23) .21) (3.9) y (3.6).1 Modelo del Proceso P´ndulo Invertido e donde: Jeq = Jm + n2 (Jo + Jp ) Beq = Bm + n Bo 2 73 (3.20) representan el modelo matem´tico a del proceso p´ndulo invertido controlado por la corriente de armadura.17) y (3.13) y despejando ia se obtiene: o ia = Jeq ¨ Beq ˙ n rp F θm + θm + Km Km Km (3.16) en (3.3.18) Para transformar el desplazamiento angular del servomotor en el desplazamiento horizontal del carro en funci´n del radio de la polea y del factor de o reducci´n del servomotor.16) Luego. como sigue: F = Jeq Km KA u − 2 2z − ¨ Ra n rp n rp Beq Km Kb + 2 r2 2 n p Ra n2 rp z ˙ (3.19) Substituyendo la ultima relaci´n en (3.20) Las ecuaciones (3.22) (3.14) (3. substituyendo las ecuaciones (3.17) (3.

25) Kx = Bx = Beq Kb Km + 2 2 2 n 2 rp n rp Ra (3. la ecuaci´n de o salida toma la forma siguiente: y = Cx donde: C= 1 0 0 0 0 0 1 0 (3.32) x4 2 M2 g(sin x1 )(cos x1 )−J1 M2 (sin x1 )x2 +J1 Bx x4 −J1 Kx KA u 2 2 M2 (cos2 x1 )−(M1 +J2 )J1 . J1 = Je + Jv .28) (3.30) M2 (sin x1 )(cos x1 )x2 −Bx (cos x1 )x4 −(M1 +J2 )g(sin x1 )+Kx (cos x1 )KA u 2 (M2 (cos2 x1 )−(M1 +J2 )J1 )/M2 (3. Km .24) (3.74 donde: M1 = mc + me + mv .1.29) (3.27) (3.26) 3. Ra nrp Modelado de Procesos M2 = me le + mv J2 = Jeq 2 n 2 rp lv 2 (3. Representaci´n en el Espacio de Estado o Las ecuaciones obtenidas pueden ser representadas en el espacio de estado mediante la siguiente asignaci´n de variables de estado: o x1 = θ ˙ x2 = θ x3 = z x4 = z ˙ Escribiendo dichas ecuaciones en el espacio de estado.31) y puesto que en nuestro sistema tenemos como salidas disponibles el desplazamiento angular de la varilla y el desplazamiento del carro.33) (3.3. obtenemos:  x1 ˙   x2   ˙     x3  =  ˙  x4 ˙   x2       (3.

u) es una funci´n de variable vectorial. 0) x+ u (3. 0]T = 0 y u = 0. u) ∂ 2 f (¯.37) . es necesario obtener un modelo lineal del proceso. u) + ¯ x ¯ ∂f (¯. u) x ¯ ∂f (¯.0) ∂f1 (0. el punto de operaci´n (o estado de equilibrio) se ubica alrededor del o ¯ ¯ o origen: x = [0.0)    ∂x   ∂x2 ∂x3 ∂x4 ∂u 1 x = f (0. u) resulta: o x ¯ ˙ x = f (¯.0) ∂f2 (0.36) x = f (0.0)  ∂f1 (0. Suponiendo que las variables de estado se desv´ levemente con respecto a una condiıan ci´n de operaci´n (un estado de equilibrio.34) = ˙ ˙ ˙ x1 x2 x3 x4 ˙ T ˙ en donde u es la se˜al de control.0)   ∂f2 (0.0) ∂f3 (0.0) ∂u (3. u) ˙ x = f = x1 x2 x3 x4 ˙ ˙ ˙ ˙ f1 f2 f3 f4 T T (3.1 Modelo del Proceso P´ndulo Invertido e 75 3.0)  x +  ∂f3 (0.0) ∂f3 (0.4. Consideremos que nuestro proceso e sea representado por la siguiente expresi´n: o ˙ x = f(x.0)  u ˙       ∂x1 ∂x2 ∂x3 ∂x4 ∂u ∂f4 (0. x es el vector de estados y f es una funci´n n o vectorial de variable vectorial.0) ∂f1 (0.1. despreo ciando los t´rminos de orden superior. u) ∂ 2 f (¯.1 y 2. En el caso que nos e ocupa.0) ∂x2 ∂f4 (0. 0) + ˙ ∂x ∂u Dado que f (x. la ecuaci´n (3.0) ∂f2 (0.0) ∂f1 (0. su derivada parcial o con respecto a x y u viene a representar la operaci´n jacobiana (ver ejemplos o 2.35) se puede escribir como: ∂f (0. u) x ¯ (x − x) + ¯ (u − u) + ¯ ∂x ∂u 1 ∂ 2 f (¯.0) ∂f2 (0.0) ∂f3 (0.0) ∂x1 ∂f4 (0.0) ∂x4 ∂f4 (0. u) x ¯ x ¯ x ¯ (x − x)(u − u) + ¯ ¯ (x − x)2 + 2 ¯ (u − u)2 + · · · ¯ 2 2! ∂x ∂x∂u ∂u2 (3. 0) +  ∂f3 (0.31) empleando t´cnicas de o e control lineal.0) ∂x3 ∂f4 (0. La expansi´n en serie de Taylor alrededor del o punto de operaci´n (¯ .0) ∂x1 ∂x2 ∂x3 ∂x4 ∂u  ∂f2 (0.3. 0. entonces o x ¯ n se pueden despreciar los t´rminos de orden superior.35) se convierte en: o    ∂f1 (0. la aproximaci´n o o o lineal se puede obtener mediante la expansi´n en series de Taylor. 0. Obtenci´n del Modelo Lineal o Para poder analizar la ecuaci´n matricial (3.2). por ejemplo). 0) ∂f (0.35) Si la variaci´n de las variable residuales (x−¯ ) y (u− u) es peque˜a. entonces la ecuaci´n (3. Entonces.

5.38) 0       (3. El Modelo en el Espacio de Estado Discreto La obtenci´n del modelo del proceso en el espacio de estado discreto o ya ha sido explorada en la subsecci´n 2.76 Modelado de Procesos Luego.3.40) J1 Kx KA 2 (M1 +J2 )J1 −M2 3. y: Φ(t − t0 ) = eA(t−t0 ) = ∞ k=0 t t0 (3.1.45) donde T es el tiempo de muestreo. las ecuaciones de o estado en tiempo continuo del proceso est´n dadas por: a x(t) = Ax(t) + Bu(t) ˙ y(t) = Cx(t) + Du(t) La soluci´n de tales ecuaciones es: o x(t) = Φ(t − t0 )x(t0 ) + donde t0 es el tiempo inicial.41) (3.42) Φ(t − τ )Bu(τ )dτ (3.46) .39) 1 0 0 0 0 0 0 0 0 0 Bx M2 2 (M1 +J2 )J1 −M2 1 2 (M1 +J2 )J1 −M2  −J1 Bx 2 (M1 +J2 )J1 −M2        B=  −Kx M2 KA 2 (M1 +J2 )J1 −M2 0 (3.5. obtenemos el ´ o o siguiente modelo lineal para el sistema de p´ndulo invertido: e ˙ x = Ax + Bu donde:    A=   0 (M1 +J2 )M2 g 2 (M1 +J2 )J1 −M2 2 −M2 g (3.43) Ak (t − t0 )k k! (3. Las matrices G y H se obtienen de: G = Φ(T ) (3. En resumen. aplicando la ultima expresi´n a la ecuaci´n (3.31).44) El modelo en tiempo discreto est´ dado por: a x(kT + T ) = Gx(kT ) + Hu(kT ) (3.

Al igual que en el caso del p´ndulo invertido. + Fuerza de u control Servomotor D.47) La ecuaci´n de salida en tiempo discreto viene a ser: o y(kT ) = Cx(kT ) + Du(kT ) (3.1. 3. u 3.48) en donde C y D son matrices constantes que no dependen del per´ ıodo de muestreo T .4. tal como se muestra en la figura 3.2. La unica variante es que en este caso el p´ndulo debe apuntar hacia ´ e abajo.C.3. para mayor facilidad.5. De dicha a figura podemos observar que los centros de gravedad de la varilla y de la esfera son: ze = z − le sen θ (3.2.4: Proceso gr´a-puente. Modelo del Proceso Gr´a-Puente u El modelado del proceso gr´a-puente es similar al caso del p´ndulo inu e vertido. y z F Carro θ y’ ’ Grua puente Figura 3. son las mismas que para el caso continuo. por consiguiente. se ha subdividido el proceso en dos e subsistemas: carro-varilla y motor-polea. Modelo del Subsistema Carro-Varilla El subsistema carro-varilla est´ representado en la figura 3.2 Modelo del Proceso Gr´ a-Puente u T 77 H= 0 Φ(λ)(dλ) B (3.49) .

5: Subsistema carro-varilla de la gr´a-puente.54) .53) 2 2 Ahora.78 y z y’ Modelado de Procesos P 0 z’ F lv 2 z θ 111 000 111 000 111 000 m g 111 000 v me g le lv Figura 3.3) en la direcci´n z.7) alrededor del punto P: o lv lv ¨ ¨ ¨ (Je + Jv )θ = me z (cos θ)le + mv z (cos θ) − me g(senθ)le − mv g(sen θ) 2 2 (3.5 la segunda ley de Newton para el movimiento rotatorio dada por la ecuaci´n (3.50) 2 Aplicando la ley de Newton para el movimiento lineal dada por la ecuaci´n o (3. obtenemos: o zv = z − mc d2 d2 d2 z + me 2 ze + mv 2 zv = F dt2 dt dt (3. sustituyendo ze y zv en funci´n de z: o mc lv d2 d2 d2 z + me 2 (z − le sen θ) + mv 2 (z − sen θ) = F 2 dt dt dt 2 (3. tenemos: (mc +me +mv )¨+(me le +mv z lv lv ˙ ¨ )(sen θ)θ2 −(me le +mv )(cos θ)θ = F (3.52) y desarrollando las derivadas. aplicando en la figura 3. u lv sen θ (3.51) Luego.

2 Modelo del Proceso Gr´ a-Puente u y reordenando.58) Beq Kb Km + 2 2 2 r2 n p n rp Ra 3.20): o o F = Jeq Km KA u − 2 2z − ¨ Ra n rp n rp Beq Km Kb + 2 r2 2 n p Ra n2 rp z ˙ Las ecuaciones (3.56) (3. ecuaci´n (3.2.20) representan el modelo matem´tico del a proceso gr´a-puente controlado por la corriente de armadura.2. Ra nrp Bx = M2 = me le + mv J2 = Jeq 2 n 2 rp lv 2 (3. Tales ecuau ciones pueden ser escritas en forma compacta como sigue: ˙ ¨ ¨ M1 z + M2 (sen θ)θ2 − M2 (cos θ)θ − F = 0 ¨ ¨ − M2 g(sen θ) + M2 z (cos θ) − J1 θ = 0 F = Kx KA u − J2 z − Bx z ¨ ˙ donde: M1 = mc + me + mv .55) y (3. J1 = Je + Jv .61) (3.57) (3. Modelo del Subsistema Motor-Polea Este subsistema es el mismo que se desarroll´ para el p´ndulo invertido o e en la subsecci´n 3.59) (3.1.3. Representaci´n en el Espacio de Estado o Las ecuaciones arriba obtenidas se representan en el espacio de estados mediante la siguiente asignaci´n de variables: o x1 = θ ˙ x2 = θ x3 = z x4 = z ˙ (3.60) (3.55) 3. Kx = Km .3.53).2.2. 79 lv lv ¨ )¨(cos θ) − (me le + mv )g(sen θ) = (Je + Jv )θ z 2 2 Jv = mv 2 lv 3 (3. obtenemos: (me le + mv donde: 2 Je = me le . (3.62) .

empleamos la u ecuaci´n (3.47) ya discutidas anteriormente.1.65) (3.46) y (3.63) y puesto que tenemos como salidas disponibles el desplazamiento angular de la varilla y el desplazamiento del carro.64) 3. tendremos entonces como ecuaci´n o de salida la siguiente expresi´n: o y = Cx donde: C= 1 0 0 0 0 0 1 0 (3.68) Kx M2 KA 2 (M1 +J2 )J1 −M2 0 J1 Kx KA 2 (M1 +J2 )J1 −M2 3. El Modelo en el Espacio de Estado Discreto Para obtener el modelo en tiempo discreto podemos usar las expresiones de las ecuaciones (3.2.36) desarrollada en la subsecci´n 3.66) 0       (3.80 Modelado de Procesos Escribiendo las ecuaciones en el espacio de estado:    x2 x1 ˙  −M2 (sin x1 )(cos x1 )x2 −Bx (cos x1 )x4 −(M1 +J2 )g(sin x1 )+Kx (cos x1 )KA u 2  x2   (−M2 (cos2 x1 )+(M1 +J2 )J1 )/M2  ˙ =  x3   x4 ˙  2 −M2 g(sin x1 )(cos x1 )−J1 M2 (sin x1 )x2 −J1 Bx x4 +J1 Kx KA u 2 x4 ˙ 2 2 −M2 (cos x1 )+(M1 +J2 )J1       (3.5. . como sigue: o o x = Ax + Bu ˙ donde:    A=   y 0 −(M1 +J2 )M2 g 2 (M1 +J2 )J1 −M2 2 −M2 g (3.4.4.67) 1 0 0 0 0 0 0 0 0 0 −Bx M2 2 (M1 +J2 )J1 −M2 1 2 (M1 +J2 )J1 −M2 −J1 Bx 2 (M1 +J2 )J1 −M2    B=       (3.2. Obtenci´n del Modelo Lineal o Para obtener el modelo lineal del sistema gr´a-puente.

2. debido a la presencia de la fricci´n est´tica.7. o 3.2 Modelo del Proceso Gr´ a-Puente u 81 3.6: Respuesta del servomotor sin compensar (voltaje vs.7 que la zona muerta de velocidad nula se presenta para valores de voltaje entre ± 0. voltaje de entrada del servomotor (figuras 3. Tal zona muerta es una no linealidad que puede introducir efectos no deseados en el control. Observar en la figura 3. Tal fricci´n iguala al torque necesario para comenzar a mover el a o servomotor. Identificaci´n de la Zona Muerta del Servomotor o Al analizar la curva velocidad vs.6.5 0 entrada 0.7) se puede observar una zona muerta originada por la fricci´n o est´tica . es decir. por lo que debe ser compensada mediante software.5 2 Figura 3. velocidad angular).5 −1 −0.5 1 1. el servoo a motor permanece en reposo siempre que no reciba un nivel de voltaje que supere un determinado umbral. entrada vs salida 800 600 400 200 salida 0 −200 −400 −600 −800 −2 −1.8): .6 y 3.3.1 muestra las variables y par´metros para los procesos p´ndulo a e invertido y gr´a-puente.1 volt.2. como sigue (ver figura 3. Los valores de los par´metros se obtuvieron de las u a hojas de especificaciones y por medici´n. Resumen de Variables y Par´metros a La tabla 3.

0648 m 2 mp rp /2 Jm + n2 (Jo + Jp ) Bm + n2 Bo 2 me le 2 /3 mv lv .38 ohm se despreci´ o 31.063095 kg 0.92 kg 0. u 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´n o posici´n angular de la varilla o fuerza aplicada al carro posici´n angular del motor o posici´n del carro o 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´n viscosa del eje primario o inercia del eje secundario fricci´n viscosa del eje secundario o factor de reducci´n de velocidad o radio de la polea inercia de la polea momento de inercia equivalente fricci´n viscosa equivalente o momento de inercia de la esfera momento de inercia de la varilla Valor/F´rmula o 0.741 0.2 kg 14.8342×10−3 N-m/rad/s se despreci´ o se despreci´ o 1/19.8 N no usado 0.9 7.9596×10−6 kg-m2 1.1: Variables y par´metros valorados para los procesos p´ndulo a e invertido y gr´a-puente.0352×10−3 V/rad 31.82 Modelado de Procesos Cuadro 3.767 m 9.071×10−3 N-m/A 1.

1 0. .3 0.7: Vista ampliada de la figura 3. entrada vs salida 800 600 400 200 salida 0 −200 −400 −600 −800 −2 −1.2 −0.5 2 Figura 3.8: Respuesta del servomotor con zona muerta compensada.5 0 entrada u 0.1 0 entrada 0.4 Figura 3.4 −0.3 −0.5 1 1.6.2 Modelo del Proceso Gr´ a-Puente u entrada vs salida 150 83 100 50 salida 0 −50 −100 −150 −0.2 0.3.5 −1 −0.

El Subsistema Mec´nico a La ecuaci´n del subsistema mec´nico se puede obtener aplicando la seo a gunda ley de Newton en el punto donde se acopla el eje del servomotor con .1 si SE\~NAL_DE_CONTROL = 0 entonces VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL 3. que opera conjuntamente con un amplificador de potencia) y por un servomotor D.9 presenta la estructura del proceso no lineal a controlar. El subsistema mec´nico presenta un engranaje reductor de a velocidad y una varilla met´lica acoplada al eje del servomotor.C. a manera a de un brazo rob´tico de un grado de libertad.C.3. Modelo del Servomotor D. e La figura 3.9: Proceso: servomotor con carga no lineal. controlado por voltaje de armadura.1.C.0. a I T + u Kact R + eb L Jm 1111 0000 1111 TM 0000 0000 m 1111 ω bm q m N 2 = n N1 N2 N1 11 00 LO 11 00 11 00 11 00 m 11 00 11 00 q 11 00 11 00TL ω 11 00 11 00 11 00 11 00 11 00 JL 11 00 11 00 11 11111 00 00000 11 00000 00 11111 11 00000 00 11111 L b 11 00 MO RO Figura 3. La tabla 3. En el extremo de la varilla se o pueden acoplar cargas esf´ricas adicionales de masa Mo y radio Ro .1 si SE\~NAL_DE_CONTROL > 0 entonces VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL + 0. El subsistema el´ctrico est´ compuesto por un genea e a rador PWM (“Pulse Width Modulation”).2 describe las variables y los valores de los par´metros. No Lineal El servomotor D.3. 3. (“Direct Current”) con carga no lineal es un proceso de una entrada y una salida que comprende un subsistema el´ctrico y un e subsistema mec´nico.84 Modelado de Procesos si SE\~NAL_DE_CONTROL < 0 entonces VOLTAJE_HACIA_EL_MOTOR = SE\~NAL_DE_CONTROL .

3.3 Modelo del Servomotor D.C. No Lineal

85

Cuadro 3.2: Par´metros y variables del servomotor con carga no lineal. a 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´n o tensi´n de entrada al proceso o ganancia del amplificador tensi´n de armadura o resistencia de armadura inductancia de armadura corriente de armadura constante del torque motor torque motor torque de inercia mot´rica o 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´n del motor o coef. de fricci´n de la carga o masa de la esfera masa de la varilla longitud de la varilla radio de la esfera fuerza contra-electromotriz constante de fuerza electromotriz relaci´n de engranajes o aceleraci´n de la gravedad o velocidad angular de la carga velocidad angular del eje posici´n angular del eje o posici´n angular de la carga o Valor/F´rmula o 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´lica (figura 3.9). El torque resultante nT que debe entregar el a servomotor para vencer todos los torques que se le oponen es: nT = nTM + TE + TL + TN donde: ˙ ˙ TM = Jm wm + bm wm = nJm w + nbm w 2 1 2 ˙ TL = (Mo L2 + Mo Ro + mL2 + JL )w + bL w o o 5 3 TE = gLo (Mo + m )sen q 2 (3.70) (3.71) (3.72) (3.69)

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

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

3.3.2.

El Subsistema El´ctrico e

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

3.3 Modelo del Servomotor D.C. No Lineal

87

3.3.3.

Conversi´n de Energ´ El´ctrica en Mec´nica o ıa e a

La ecuaci´n de conversi´n en energ´ el´ctrica en mec´nica es: o o ıa e a T = KI (3.81)

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

Empleando las ecuaciones (3.81) y (3.82) en (3.73) y despejando w obtene˙ mos: 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´n: o x = F (x) + G(x)u; ˙ y = H(x) (3.84)

Eligiendo como variables de estado: x1 = q (posici´n angular), x2 = x1 = o ˙ q = w (velocidad angular) y x3 = I (intensidad de corriente), podemos ˙ obtener: x1 = x2 ˙ x2 = −( ˙ x3 ˙ N B 1 nK )senx1 − x2 − TN + x3 M M M M nE R Kact x2 − x3 + u = − L L L 
nK M x3

(3.85)

donde la salida es la posici´n x1 . Por consiguiente: o  x2  −( N )senx1 − B x2 − 1 TN + F (x) = M M M − nE x2 − R x3 L L   0 G(x) =  0  ; H(x) = x1
Kact L

(3.86)

Las matrices dadas en (8.38) representan el modelo matem´tico del proceso a considerando carga no lineal. La figura 3.10 muestra el diagrama de simulaci´n del proceso (archivo servsim.m) y la figura 3.11 muestra la respuesta o

88

Modelado de Procesos

del proceso a un escal´n para los casos con L = 0 y L = 0. Dichas respuestas o resultan muy similares debido a que la inductancia L es muy peque˜a y para n fines pr´cticos puede despreciarse, con lo cual el orden del proceso no lineal a queda reducido a uno de segundo. Para simular el proceso usando servsim.m se debe ejecutar primero el archivo de datos servpar.m.
cc gan1 fricción de Coulomb − w 1 q 1 + Ms+B s − sum2 subsistema Integrador mecánico N gan3 MATLAB Function seno

Kact gan5

u

n*K R sum1subsistema eléctrico n*E gan2

+ −

gráfico

Figura 3.10: Diagrama de bloques del proceso no lineal.

1.4 q 1.2 Posición q (rad); entrada u (voltios)

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´n. o

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

89

nE Kact u− w R R

(3.87)

− ;

B M

+

x2 −

0
nKKact RM u

H(x) = x1

(3.88)

3.3.4.

Modelo y Compensaci´n de no Linealidades o

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

donde la funci´n sign(.) toma el valor +1 cuando el argumento es positivo o 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´n (3.88). Para ello definimos: o u=v+ R TN ; nKKact (3.90)

Reemplazando la ecuaci´n (3.90) en (3.88) obtenemos una ecuaci´n como o pensada de la forma: x2 = − ˙ N senx1 − M n2 KE B + M MR x2 + nKKact v RM (3.91)

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

90

Modelado de Procesos

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

3.3.5.

Linealizaci´n y Discretizaci´n del Proceso o o

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

1 2E + KnR ) M Cc = 1 0 (3.93)

;

A tal resultado tambi´n se puede llegar si aplic´ramos la t´cnica del jacoe a e biano. La funci´n de transferencia Gp (s) del proceso puede determinarse o mediante la relaci´n: o Gp (s) = y(s) = Cc [sI − Ac ]−1 Bc u(s) (3.94)

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

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

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

91

(3.97)

Dado que un mismo proceso puede tener m´ltiples representaciones de estau do, a partir de la ecuaci´n (3.96) podemos determinar diversas representao ciones 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´n can´nica controlable o o del proceso (primera forma, ver la subsecci´n 2.3.5), resulta: o G= 0 1 −a2 −a1 ; H= 0 1 ; C= b2 − a2 b0 b1 − a1 b0 ; D = [0]

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

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

3.4.

Problemas Resueltos

Los procesos p´ndulo invertido, gr´a-puente y servomotor con carga no e u lineal descritos en las secciones anteriores, ser´n usados en las aplicaciones en a tiempo real. Los procesos que a continuaci´n se describen ser´n empleados o a 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´ usado cuando el proceso a sea controlado digitalmente. Veremos que la elecci´n del tiempo de o muestreo es a conveniencia del algoritmo empleado. Graficar las respuestas del proceso continuo y del proceso discretizado cuando las se˜ales de entrada son del tipo escal´n. n o

La soluci´n a cada problema se presenta en archivos m (con extensi´n m), o o los cuales pueden ser ejecutados en el ambiente de trabajo de MATLAB. Las respuestas al escal´n se muestran en las figuras correspondientes. o Problema 3.1 La figura 3.12 muestra el diagrama de cuerpo libre del sistema de suspensi´n de la rueda de un bus (normalmente un bus posee cuatro de tales o sistemas), donde m1 = 2500 kg es la masa que soporta el sistema de suspensi´n, m2 = 320 kg es la masa del sistema de suspensi´n, k1 = 80000 o o N/m es la constante del resorte de suspensi´n, k2 = 500000 N/m es la conso tante del resorte del aro m´s la rueda, b1 = 350 N-s/m es la constante de a amortiguamiento de la suspensi´n y b2 = 15020 N-s/m es la constante de o amortiguamiento del aro m´s la rueda. Este modelo se encuentra en el sitio a www.engin.umich.edu/group/ctm/index.html. Un buen sistema de suspensi´n debe tratar de eliminar en el tiempo m´s o a corto posible las oscilaciones producidas por protuberancias, desniveles y o huecos en la pista. Teniendo en cuenta que la distancia x2 −w (la deformaci´n 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´n. Dicho disturbio o puede ser provocado, por ejemplo, cuando el bus est´ saliendo de un desnivel a pronunciado de corta longitud. Las ecuaciones del movimiento que gobiernan el sistema de suspensi´n son: o m1 x1 = −b1 (x1 − x2 ) − k1 (x1 − x2 ) + u ¨ ˙ ˙ m2 x2 = b1 (x1 − x2 ) + k1 (x1 − x2 ) + b2 (w − x2 ) + k2 (w − x2 ) ¨ ˙ ˙ ˙ ˙

3.4 Problemas Resueltos

93

x1 k1 x2

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

m1

m2

w

Figura 3.12: Sistema de suspensi´n de la rueda de un bus. o Se puede demostrar que las ecuaciones de estado y de salida del proceso son:          0 1 0 0 0 0 x1 x1 ˙ b 1    x1   a21 0 a23 − m1   x1    ˙   m1 1   u+  −a21  w  ¨ = +   b    y1   − b2 0 a33  − m2  1  y1 ˙ 0 m2 2 1 1 k k2 y2 ˙ y2 + m2 − m22 0 a43 0 m1 m2  x1  x1   ˙ +  y1  y2  y= 0 0 1 0 u w

0 0

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

a21 = − a33 = −

b1 b1 b2 + + m1 m2 m2 a43 = −

b1 b1 b2 + + m1 m2 m2

k1 k1 k2 + + m1 m2 m2

% P3_1P3.m SOLUCION AL PROBLEMA 3.1 clear all

94

Modelado de Procesos

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

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

95

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

x 10

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

x 10

0 0

0 0

50 100 Tiempo en segundos

150

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

1 0.5 0 −0.5 −1 0

50 100 Tiempo en segundos

150

Figura 3.13: Respuestas al escal´n para el sistema de suspensi´n. o o

96 Problema 3.2

Modelado de Procesos

La din´mica de un avi´n puede ser descrita por varios conjuntos acoplados de a o 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´n θ del avi´n mostrado en la figura 3.14 es un problema o o longitudinal.
Empuje x Impulso θ α γ x’
e

Arrastre δe z z’ Peso

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

3.4 Problemas Resueltos mientras que sus ecuaciones de estado    α ˙ −0,313 56,7  q  =  −0,0139 −0,426 ˙ ˙ 0 56,7 θ y de salida son:     0 α 0,232 0   q  +  0,0203  δe 0 θ 0  θ= 0 0 1  α  q  θ

97

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

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

Modelado de Procesos

y(t) continua

5

10

15 20 Tiempo en segundos

25

30

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

Figura 3.15: Respuestas al escal´n para el angulo de inclinaci´n del avi´n o ´ o o 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´ aca cionado por un servomotor. Se desea dise˜ar un sistema de control que pueda n mantener la bola sobre la barra. Asumir que la bola rueda libre de fricci´n. o Los par´metros del proceso son: masa de la bola M = 0.11 kg, radio de la a bola R = 0.015 m, distancia del extremo de la leva al centro del engranaje d = 0.03 m, aceleraci´n de la gravedad g = 9.8 m/s2 , longitud de la o

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´n de la barra r, coordenada angular de la barra α o y posici´n angular del engranaje θ. Este modelo se encuentra en el sitio o www.engin.umich.edu/group/ctm/index.html.

L ESFERA α

r BARRA LEVA θ d

ENGRANAJE

Figura 3.16: Bola balance´ndose sobre una barra. a La ecuaci´n din´mica que describe el proceso es: o a 0= J +M R2 rM gsenα − M rα2 ¨ ˙

Cuando α es peque˜o, senα ≈ α. Luego: n 0= J +M R2 rM gα − M rα2 ¨ ˙

Por tanto, la ecuaci´n que relaciona α con θ puede aproximarse mediante la o siguiente relaci´n lineal: o d α= θ L La funci´n de transferencia del proceso resulta: o 1 r(s) M gd =− J θ(s) L R2 + M s2 y la ecuaci´n de estado del proceso viene a ser: o r ˙ r ¨ = 0 1 0 0 r r ˙ 0 +
L M gd
J +M R2

θ

A = [0 1 0 0 0 0 M*g/(L*J/R^2+L*M) 0 0 0 0 1 0 0 0 0].umich.H. B = [0. pues en lugar de controlar la posici´n o a trav´s de θ.D.’zoh’).html.0. % rAC = 4 => COMPLETAMENTE OBSERVABLE eigA = eig(A).1.T. Las ecuaciones de estado y de salida para esta situaci´n son: o   0 1 r ˙  r   0 0  ¨ =  α   ˙  0 0 α ¨ 0 0  0 M gd L J +M R2 0 0  0  r   0  r    ˙    + 1  α α ˙ 0   r  r   ˙   α  α ˙  0 0  u 0  1 y= 1 0 0 0 El modelo descrito est´ en www.0000 0.1000 1.11.D] = c2dm(A.m SOLUCION AL PROBLRMA 3.C)).0010 0. eigG = eig(G). % rAB = 4 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A. J=9. eigG(4) = 1.8.0. usaremos cuatro estados.03. % tiempo de muestreo [G.0209 0.C. eigG(2) = 1.C.3 clear all % MODELO DE LA BOLA SOBRE LA BARRA M=0.engin.0000 0. lo haremos a trav´s de α. R=0. % COMPUTA EIGENVALORES % eigA(1) = 0.0010 . % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A.B)).015.99e-6.100 Modelado de Procesos Sin embargo. eigA(2) = 0. eigA(4) = 0. % G = % 1. % CONVERSION AL ESPACIO DISCRETO T = 0. D = [0]. d=0.1]. eigG(3) = 1.B. eigA(3) = 0.0000 % 0 0. % COMPUTA EIGENVALORES % eigG(1) = 1. C = [1 0 0 0].edu/group/ctm/index. g=9. a % P3_3P5. lo que en esencia significa que e e ¨ queremos controlar el torque de la barra. L=1.

[YY.0050 % 0.1000 1.C.X] = step(A.Y).H.17: Respuestas al escal´n de la posici´n de la bola sobre la barra. [Y.5 3 Figura 3.0000 % 0.4 0.8 0. subplot(211) plot(TT.5 2 Tiempo en segundos 2.2 0 0 y(k) discreta 0.1000 0 0 1.5 2 Tiempo en segundos 2.D.0000 0 0.6 0.XX] = dstep(G.2 0 0 y(t) continua 0.5 3 0.4 Problemas Resueltos % 0 % 0 % H = % 0.YY).5 1 1. o o .3.D.5 1 1.B.0000 101 % RESPUESTAS AL ESCALON TT=0:0.1. grid xlabel(’Tiempo en segundos’) ylabel(’y(t) continua’) subplot(212) plot(TT.TT).6 0.C.0000 % 0.4 0.31).1.1:3. grid xlabel(’Tiempo en segundos’) ylabel(’y(k) discreta’) print -deps -f P3_3P5 0.8 0.

4 Modelado de Procesos La figura 3. a Si Θo se considera constante. Notar que podemos usar K o o C. la din´mica del horno se describe como: 1 dΘi 1 1 2 + Θi = Θo + V dt rc rc Rc c ¯ y cuando Θi alcanza su estado estacionario Θi : r ¯ ¯ Θi = Θo + Vc2 R La tabla 3. c es la capacidad t´rmica en J/K. o Asumiendo que existe buena mezcla de aire caliente. el calor entregado al horno se modela como: c d (Θi − Θo ) = Qc − Qe .102 Problema 3.3 contiene datos experimentales de la ca´ de temperatura cuanıda do se apaga el horno. dt Qc = Vc2 . R es la resistencia el´ctrica en ohm y Vc es el e e voltaje de calefacci´n. El modelo de este proceso se encuentra en la referencia [15]. r es la e e resistencia t´rmica en K/watt. . Qe es el o flujo de p´rdida en J/s o watt. Qc es el flujo de calefacci´n en J/s o watt. La tabla 3. pues las operaciones o derivada o diferencia eliminan el valor 273 de: K = 273 + o C. Para ambas tablas la temperatura exterior es de 30 o C.18 muestra un horno de laboratorio para controlar temperaturas con precisi´n. R Qe = Θi − Θo r donde Θi es la temperatura interior en K o en o C.18: Horno de laboratorio. Θo es la temperatura exterior en K o en o C.4 tabula el voltaje de calentamiento versus la temperatura interior en estado estable. 11111111111111111111111 00000000000000000000000 00000000000000000000000 11111111111111111111111 Calor perdido 00000000000000000000000 11111111111111111111111 111 000 Calentador electrico 111 000 Q 111 1 000 0 111 000 o + 1111111 0000000 111 000 1 0 1111111 0000000 Calor entregado 111 000 1111111111111111 0000000000000000 111 000 1111111 0000000 111 000 Temperatura Vc Qc 1111111 0000000 111 000 exterior 1111111 0000000 111 000 1 0 Temperatura 111 1 000 0 111 000 Θ o _ interior Θi 11111111111111111 00000000000000000 111 1 000 0 111 000 111 111 000 000 11111111111111111111111 00000000000000000000000 111 111 000 000 11111111111111111111111 00000000000000000000000 11111111111111111111111 00000000000000000000000 Figura 3.

Voltaje Temperatura (o C) 9. la din´mica del horno resulta: a 1 1 1 dΘi =− Θi + Θ0 + V 2 = f (Θi .0 50.8 34.0 La curva exponencial 120e−t/τ obtenida con los datos de la tabla 3. la ecuaci´n linealizada empleando el jacobiano para el punto de o ¯ ¯ ¯ i = 50 o C. ıda Tiempo Temperatura (o C) 14:23:10 120. Vc = 20 volt. Vc ) dt 3000 3000 60000 c Para efectos de linealizaci´n podemos definir las siguientes variables: o ¯ θi = Θi − Θi .0 15:34:00 40. resulta: operaci´n Θ o ∂f dθi = dt ∂Θi θi + ∂f ∂Θo θo + ∂f ∂Vc vc ¯ Θi ¯ Θo ¯ Vc 1 1 1 dθi =− θi + θo + vc dt 3000 3000 1500 .3: Datos de ca´ de temperatura.4 permite obtener r/R = 5 × 10 consiguiente. La curva cuadr´tica a −2 . Θo .0 14:31:00 108.0 40.3.0 110.1 20. Por obtenida con los datos de la tabla 3. Θe = 30 o C.5 15:05:00 63. ¯ vc = V c − V c Entonces. ¯ θo = Θo − Θo .5 Cuadro 3.0 14:39:30 92.4 Problemas Resueltos 103 Cuadro 3.0 14:48:35 80.4: Temperaturas del horno en estado estable.3 permite calcular su constante de tiempo τ = rc = 3000 s.5 29.5 74.

H = 0. E = [1/1500].B.0067.Y).20 muestra un monorriel de dos carros.5 La figura 3.T.T.’zoh’).0333.’zoh’).H.1)*T.9967. % rAC = 1 => COMPLETAMENTE OBSERVABLE eigA = eig(A).C.9967. Los carros se acoplan uno al otro con dispositivos no r´ ıgidos (resortes) que poseen .D. [G.C.E.D] = c2dm(A. F = 0. La fuerza lineal equivalente para mover al proceso se designa como u(t). % COMPUTA EIGENVALORES % eigA = A = -1/3000.4 clear all % ECUACION DE ESTADO CONTINUA: % dTeta(t)/dt = A*Teta(t) + B*vc(t) + E*Teta_o A = [-1/3000]. % COMPUTA EIGENVALORES % eigG = G = 0.C.B)).1)).C)). % TIEMPO DE MUESTREO [G.XX] = dstep(G. % POR SER PROCESO DE PRIMER ORDEN % CONVERSION AL ESPACIO DISCRETO T = 10. y est´n sujetos a fricciones B2 y B3 . % ECUACION DE ESTADO DISCRETA: % Teta(k+1) = G*Teta(k) + H*vc(k) + F*Teta_o eigG = eig(G). subplot(211) plot(t.D). B = [1/3000].D). % POR SER PROCESO DE PRIMER ORDEN % G = 0.m SOLUCION AL PROBLEMA 3.C. tt = linspace(0. % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A. [YY.X. grid xlabel(’Tiempo en segundos’) ylabel(’y(k) discreta’) print -deps -f P3_4P6 Problema 3. Sean M1 la masa del carro de m´quinas y a B1 sus fricciones debido al aire y al rodamiento.D. Los dos carros poseen masas a M2 y M3 respectivamente.F.B. % RESPUESTAS AL ESCALON [Y.YY).104 Modelado de Procesos % P3_4P6. grid subplot(212) ylabel(’y(t) continua’) plot(tt. C = [1]. D = [0].size(YY.C. El modelo de este proceso se encuentra en la referencia [15]. % rAB = 1 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A.t] = step(A.D] = c2dm(A.H.C.size(YY.

19: Respuesta al escal´n de la temperatura interior del horno de o laboratorio.5 1 0.5 0 0 y(k) discreta 2000 4000 6000 8000 Tiempo en segundos 10000 12000 Figura 3. Las coordenadas de posici´n se designan como x1 .3. y dispositivos amortiguadores de constantes B23 y B12 .5 1 0.4 Problemas Resueltos 2 1. constantes K23 y K12 . 3 es: o x = Ax + Bu(t) ˙ donde:            − K12  M1  0  A =  K12  M2   0 0 0 +B − B1M1 12 0 B12 M2 1 0 K12 M1 0 B12 M1 0 0 − K12 +K23 M2 0 K23 M3 0 − B2 +B23 +B12 M2 0 B23 M3 1 0 0 0 K23 M2 0 0 0 B23 M2 +B − B3M3 23 0 1 − K23 M3 v 3 ]T x = [x1 B = [0 v1 1 x2 0 v2 0 x3 0 0]T . 2.5 0 0 105 y(t) continua 2000 4000 6000 8000 10000 Tiempo en segundos 12000 14000 16000 2 1. Se puede o ˙ demostrar que la ecuaci´n de estado del sistema con vi = xi . x2 y x3 . i = 1.

CARRO 1er.106 Modelado de Procesos 11 00 x1 11 00 x2 11 00 x3 11 00 11 00 B 23 B 12 11 00 11 00 2do. alfa=1. a B23 = B12 = 500 N-s/m y B2 = B3 = 2B1 = 10000 N-s/m.0. M1=1300. B3=B2. B = [0. K23 = K23 = 100000 N/m.0]. a a Si ubicamos tac´metros en una o de salida toma la forma:    y1  y2  =  y3 rueda de cada carro. 3 yi = αi vi .5 clear all % MODELO DEL MONORRIEL M2=2600. 2.20: Proceso monorriel de dos carros m´s un carro de m´quinas. B1=5000. M3=M2.1.0]. D = [0. e donde αi es la constante tacom´trica. B2=10000. % P3_5P7. B12=B23. CARRO MAQUINA 11 00 11 00 M2 M3 M1 K 23 0000000 K 12 00000000 11 00 1111111 0000000 1111111 11111111 0000000 0000000 00000000 1111111 1111111 11111111 1111111111111111111111111111111111111 0000000000000000000000000000000000000 11 00 B3 B2 B1 Figura 3.0. K12=K23.0.m SOLUCION AL PROBLEMA 3. . Asumir los siguientes valores para los par´metros: M2 = M3 = 2M1 = 2600 kg. C = [0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa].0. entonces la ecuaci´n o  0 α 0 0 0 0 0 0 0 α 0 0 x 0 0 0 0 0 α i = 1. K23=100000. B23=500. 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].

0560 .D] = c2dm(A.H.6230 .9947i % 0. subplot(211) plot(TT.0.3200 . rGC = rank(obsv(G.6807 % RESPUESTAS AL ESCALON TT=0:0.3200 + 0.1:3.B.22(a) muestra el diagrama de bloques simplificado del proceso ascensor.X] = step(A. % rAC = 5 => NO ES COMPLETAMENTE OBSERVABLE eigA = eig(A).0000 % -3.5242i % 0. El problema a resolver es posicionar el ascensor adecuadamente.Y). cuyo modelo se encuentra en la referencia [15].5242i % 1.8462 % CONVERSION AL ESPACIO DISCRETO T = 0.6 La figura 3.31). grid xlabel(’Tiempo en segundos’) ylabel(’Salidas discretas’) print -deps -f P3_5P7 Problema 3.22(b)).4 Problemas Resueltos 107 % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A.C)).D. % COMPUTA EIGENVALORES % eigA = % -2.1. % rAB = 6 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A. % TIEMPO DE MUESTREO [G.C.C.’zoh’).T.1.5757i % -2. % rGC = 6 => COMPLETAMENTE OBSERVABLE eigG = eig(G).2710 +11.2710 -11.7298i % 0.D. [Y.0. o .C. grid xlabel(’Tiempo en segundos’) ylabel(’Salidas continuas’) subplot(212) plot(TT.0560 + 6.5757i % -2.3.6.7298i % 0.TT).B. % COMPUTA EIGENVALORES % eigG = % 0.YY).XX] = dstep(G.C)).6230 + 0.0000 % 0.B)). El voltaje de armadura v(t) lo suministra un amplificador de potencia con saturaci´n (figura 3.9947i % -2. [YY.D.C.1.H.

as´ como tambi´n la medici´n del voltaje de armadura en la zona ı e o de saturaci´n.22(d) muestra el o a sistema de control digital del ascensor.04 0.108 0.06 0.08 0.1 continuas 0.5 2 Tiempo en segundos 2.5 3 Figura 3. generando ± 200 volt.21: Respuestas al escal´n de las velocidades del monorriel.001 s + 0.08 0.5 2 Tiempo en segundos Modelado de Procesos Salidas 2. La figura 3. Las ecuaciones de estado y de salida del ascensor son:      −3   x1 ˙ −0.1 discretas Salidas 0.5 3 0.04 0. En o esta situaci´n debe actuar un controlador para posicionar suavemente al aso censor empleando las mediciones de velocidad y posici´n del ascensor.02 0 0 0. la operaci´n del amplificador pasa a la zona lineal. dependiendo de si el o ascensor est´ subiendo o bajando.22(d) que la velocidad y posici´n del elevador se o miden separadamente. est´n disponibles para cada piso. o el cual no debe exceder los ± 200 volt.5 1 1.02 0 0 0. Cuando el ascensor se aproxima al piso a donde debe parar.06 0.2 0 0 0 10 x1  x2   1   x2   0  0 0 0   ˙ = +   x3   2 ˙ 0 −2 0   x3   0  x4 ˙ x4 0 5 0 0 −5 . Tales o mediciones. Entre pisos.5 1 1. el amplificador de potencia se encuentra en estado de saturaci´n.2 (200) = 1 m/s s=0 Observar en la figura 3. Esto significa una velocidad x1 en estado estable de: x1 = ¯ 0.

% rGC = 2 => NO ES COMPLETAMENTE OBSERVABLE eigG = eig(G).9608 % G = % 0.0197 % 0.B)).0000 % -0.4 Problemas Resueltos y= 0 1 0 0 x 109 % P3_6P8.6176 0 1.2000 % CONVERSION AL ESPACIO DISCRETO T = 0.C)).T.0347 % 0.’zoh’).C)).3.6703 % 0. % COMPUTA EIGENVALORES % eigG = % 0.0.0].0000 % 0 % -2. % TIEMPO DE MUESTREO [G.0e-003 * % 0.C. % rAB = 4 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A.3679 % 1. B = [1e-3.H.B. % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A.C.2 0 0 0 1 0 0 0 2 0 -2 0 5 0 0 -5].D] = c2dm(A. rGC = rank(obsv(G. % COMPUTA EIGENVALORES % eigA = % -5.1961 % 0. D = [0].9608 % 0.3679 % H = 1.0000 % 0.0.3227 % 0.2.m SOLUCION AL PROBLEMA 3.6 clear all % MODELO DEL ASCENSOR A = [-0. C = [0 1 0 0].D.0000 0 0 0 0 0.6703 0 0 0 0 0. % rAC = 2 => NO ES COMPLETAMENTE OBSERVABLE eigA = eig(A).0725 % RESPUESTAS AL ESCALON .1961 % 0.

110 Modelado de Procesos Voltaje de entrada u v u Amplificador de potencia con saturacion Voltaje de armadura 0. .005 (a) x1 s + 2 Sensor de velocidad 5 10 (c) 15 t x4 u D/A con memoria u v Posicion del ascensor Actuador mas sensores x x4 2 Computador digital x3 A/D Amplificador Voltaje de armadura sensor de velocidad v sensor de (d) posicion x3 Figura 3.2 Motor actuador mas tambor Velocidad del ascensor 1 x1 s Posicion del ascensor x 2 2 x3 5 x4 s + 5 Sensor de posicion v 200 1 u -200 (b) 3000 0.22: Proceso ascensor.001 v s + 0.

C.4 Problemas Resueltos [Y.B. El horno puede modelarse como un proceso de primer n . La banda transportadora que se desplaza a una velocidad constante de v = 1 m/s.1)*T.05 0 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 Figura 3. grid xlabel(’Tiempo en segundos’) ylabel(’Salidas discretas’) print -deps -f P3_6P8 111 0.24(a) se desea reducir la humedad h del material a granel de la tolva.X.23: Respuestas al escal´n de la posici´n del ascensor.1 0.YY). introduce el material a un horno de secado.2 Salidas discretas 0. grid xlabel(’Tiempo en segundos’) ylabel(’Salidas continuas’) subplot(212) plot(tt.05 0 0 5 10 15 20 Tiempo en segundos 25 30 0.size(YY.C.t] = step(A.15 Salidas continuas 0.7 En la figura 3.XX] = dstep(G.1 0.D).D).3.Y).size(YY. [YY. tt = linspace(0.1)). subplot(211) plot(t. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la se˜al de voltaje vr .15 0.H. o o Problema 3.

C. den = conv(dend.B. -0.112 Modelado de Procesos orden.1435 -0. -0.5 Sensor vr u 1 s+1 Horno hs e -(d/v)s Tiempo muerto Figura 3.7510 -0. % eigA: % -1.dend] = pade(Tm.3678-0.0000.B)). -0. El modelo del proceso en estudio se encuentra en la referencia [10].24: Sistema reductor de humedad. % rAB = 5 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A.D.7 % MODELO DEL REDUCTOR DE HUMEDAD % (num(s)/den(s))*exp(-d/v). Tolva Horno d v v d/v Controlador Sensor Referencia Deposito (b) hr 10 s + 0. Tm = d/v.numd).H. % TIEMPO MUERTO [numd.2604 -0. d=10. % TIEMPO DE MUESTREO [G. % G = % 0.24(b) muestra la F.B.C.C.5]).’zoh’).0052 .1.3678+0.T.4644 % CONVERSION AL ESPACIO DISCRETO T = 0.m clear all SOLUCION AL PROBLEMA 3.5000. % APROXIMACION DE ORDEN 3 % APROXIMO exp(-Tm*s) EMPLEANDO UNA F. v=1. del proceso.D] = c2dm(A.3). -0.[1 1.D] = tf2ss(num. % P3_7P10.3509i.C)). [A. DE ORDEN 3 num = conv([0 0 10]. % CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A. % rAC = 5 => COMPLETAMENTE OBSERVABLE % EIGENVALORES eigA = eig(A).5 0.T.0421 -0.den).T.3509i. La figura 3.

9048.0995 0. condensador C = 0. R C vC = IR − IM .0872 0. grid xlabel(’Tiempo en segundos’) ylabel(’Humedad’) print -deps -f P3_7P10 Problema 3.26 son: momena to de inercia del rotor J = 0.0000 1.size(YY.5 H. grid xlabel(’Tiempo en segundos’) ylabel(’Humedad continua’) subplot(212) plot(tt. 0.0002 % 0. 0.1)*T.size(YY. tt = linspace(0.0002 -0.0338i.t] = step(A.0075 0.0000 0.0000 0.9512.5 µF.4 Problemas Resueltos % % % % 0.H.D).0046 % 0.C.01 kg-m2 /s2 . constante electromotriz Ke = Kt = 0.1000 -0.0338i. 0.8 N-m/rad.Y).0000 % EIGENVALORES: eigG = eig(G). constante torsional Kω = 1.C.9997 0.D). dt L dIM = vC − e dt . inductancia de armadura L = 0.B.0000 0.YY). [YY.0000 % 0.XX] = dstep(G.9546 % RESPUESTAS AL ESCALON [Y.0001 1.0002 0.9633-0.0050 0.9865 0.0050 -0. 0.0000 113 % H = % 0. resistencia de armadura RA R.8 Los par´metros valorados del proceso mostrado en la figura 3. resistencia R = 12 ohm. % eigG = % 0.X. subplot(211) plot(t.1)).0003 0.0046 0.0872 % 0. Subproceso el´ctrico: o e IR = 1 (v − vC ).0022 -0.1000 0.26 se describen a continuaci´n.3.9633+0.01 N-m/A. Las ecuaciones que gobiernan la din´mica del proceso electromec´nico a a mostrado en la figura 3.

 A= 1 − RC 1 −C 0 Kt J y = Cx −Ke Kω LKω +Kt Ke 0 0   Kω LKω +Kt Ke 1 RC  0  B =  0 .25: Respuestas al escal´n de la humedad con tiempo muerto. . la representaci´n de estado del proceso resulta: ˙ x = Ax + Bu. y o como salida y = x3 . o Motor: T = Kt IM . Resorte torsional m´s la inercia J: a dT = Kω (ω1 − ω2 ). x2 = IM y x3 = ω2 .114 20 continua 15 10 5 0 −5 0 2 4 6 8 10 12 Tiempo en segundos 14 Modelado de Procesos Humedad 16 18 20 20 Humedad discreta 15 10 5 0 −5 0 5 10 15 Tiempo en segundos 20 25 Figura 3. 0 C= 0 0 1 El modelo del proceso en estudio se encuentra en la referencia [10]. dt J dω2 =T dt e = Ke ω1 Seleccionando como variables de estado x1 = vC .

9982i % -0. a J % P3_8P11.C)). % COMPUTA EIGENVALORES % eigA = % 0 % -0.C. L=0.0017 % 0. R=12.D] = c2dm(A.0164 % 0. A = [-1/(R*C) -1/C 0 Kw/(L*Kw+Kt*Ke) 0 0 0 Kt/J 0].0001 % CONVERSION AL ESPACIO DISCRETO T = 0. % TIEMPO DE MUESTREO [G.26: Sistema electromec´nico.1.9982i % G = % 0.1970 0 % 0. % CONTRLABILIDAD Y OBSERVABILIDAD DEL PROCESO rAB = rank(ctrb(A.0099 0.H.B.0000 . Kw=1.9802 0 % 0. rGC = rank(obsv(G.3.8 clear all % MODELO DEL SISTEMA ELECTROMECANICO J=0.0833 + 1. % COMPUTA EIGENVALORES % eigG = % 1.C)).T. % rGC = 2 => NO ES COMPLETAMENTE OBSERVABLE eigG = eig(G).01.4 Problemas Resueltos 115 + v - IR R C L + e - IM Kω ω2 T ω1 Figura 3.C.1970 0.0993 1.0. Kt=0. B = [1/(R*C). % rAC = 3 => COMPLETAMENTE OBSERVABLE eigA = eig(A).D.1.01.9638 -0.0833 . C = [0 0 1]. C=0.’zoh’). RA=0. Ke=Kt.0]. % rAB = 3 => COMPLETAMENTE CONTROLABLE rAC = rank(obsv(A.8.5.0000 % H = % 0.5.m SOLUCION AL PROBLEMA 3. D = [0].B)).

no necesariamente ser´ usado cuando el proceso a .9720 + 0.0993 1.0000 % H = % 0.X.1970 0.9720 .116 % 0. Determinar si el proceso es completamente controlable y/o completamente observable.9638 -0.9802 0 % 0.H.1)*T. Problemas Propuestos Para cada proceso en estudio se pide: Determinar el modelo matem´tico que describa la din´mica del proceso a a (si no lo tuviera). [YY.1968i % G = % 0. tanto en el dominio continuo como en el dominio discreto.0. Calcular los eigenvalores del proceso.1968i % 0.0099 0.D).1970 0 % 0.0164 % 0. subplot(211) plot(t.size(YY.B.Y) xlabel(’Tiempo en segundos’) ylabel(’Voltaje en C (continuo)’) grid subplot(212) plot(tt. tt = linspace(0.1)).t] = step(A. Seleccionar un tiempo de muestreo y determinar el modelo del proceso en el espacio de estado discreto.0001 % RESPUESTAS AL ESCALON [Y. Tener en cuenta que el tiempo de muestreo seleccionado.5.XX] = dstep(G.YY) xlabel(’Tiempo en segundos’) ylabel(’Voltaje en C (discreto)’) grid print -deps -f P3_8P11 Modelado de Procesos 3.0017 % 0.D).C.size(YY.C.

3. ˙ Lv = 1 donde θ es el ´ngulo de la torreta.46×106 . ω es la velocidad angular de la torreta. q es el deso a plazamiento de la servov´lvula. o Problema 3. o sea controlado digitalmente.9 Las ecuaciones del modelo linealizado para controlar la posici´n angular del o ca˜on ubicado en la la torreta de un tanque mediante un actuador hidr´ulico n´ a son las siguientes (ver figura 3.5 Problemas Propuestos 5 Voltaje en C (continuo) 4 3 2 1 0 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50 117 5 Voltaje en C (discreto) 4 3 2 1 0 0 10 20 30 40 Tiempo en segundos 50 60 Figura 3.28): ˙ θ = ω ω = p + dτ ˙ p = −Ωm p − ˙ Km Km q+ ω + dp J J q = −Kv Lv q − Kv K∆p Jp + Kv u + dq . 1.96×106 ] (el primer valor a . Km = [8. p a es la aceleraci´n angular producida por el actuador hidr´ulico. Veremos que la elecci´n del tiempo de o muestreo es a conveniencia del algoritmo empleado. Graficar las respuestas del proceso continuo y del proceso discretizado cuando las se˜ales de entrada (se˜ales de referencia o se˜ales disturbio) n n n son del tipo escal´n.27: Respuestas al escal´n del voltaje en el condensador.

3] es la ganancia de la servo v´lvula.33×10−6 . al angulo de elevaci´n) es la ganancia del servomotor. Problema 3. 17. 94.86×10−5 ] es el coeficiente de presi´n a o diferencial. 3. Las cantidades dτ . Ese es el caso de una columna de extracci´n o . Kv = [94. Es util saber que 1 lbf-ft-s2 = 1.10 Una columna de destilaci´n es un proceso complejo que requiere una gran o cantidad de variables (m´s de 100) para describir su comportamiento en a forma muy aproximada.355 kg-m2 . haciendo las simplificaciones del caso (tales como reducci´n del n´mero de variables y linealizaci´n de los puntos o u o de operaci´n) se puede llegar a un modelo reducido que pueda ser empleado o para el control del proceso.3 rad/s] J = [7900. Torreta del tanque θ Angulo de ’ elevacion θ ’ Azimut: angulo de posicionamiento horizontal Figura 3. y K∆p = [6.28: Vistas lateral y horizontal de la torreta de un tanque. Ω = [45.118 Modelado de Procesos corresponde al angulo de desplazamiento horizontal de la torreta.9. 2070 lbf-ft-s m es la frecuencia natural del motor. ´ o 2 ] es la inercia de la torreta. Sin embargo. dp y dq representan disturbios que tambi´n e incluyen los efectos debido a las no linealidades que no fueron tomadas en cuenta en el modelo linealizado. ´ El modelo de este proceso de encuentra en la referencia [17].3. mientras ´ que el segundo valor.

29). Extractante (glycol) Agua 11 00 T 11 Mezcla de 00 1 11 00 agua e isopropanol 11 00 T 11 00 2 11 00 S: flujo lateral de vapor z 1 T1 Propanol Glycol z2 Concentraciones Temperaturas T 2 u 1 : vapor de calentamiento Producto (glycol) Figura 3. donde:   ∆Q1  ∆V1   x=  ∆z1  . f32  f42 C= .3. Las ecuaciones de estado y de salida que gobiernan el proceso en cuesti´n o son las siguientes: x = Ax + Bu + F d.  0 0  . o empleando glycol como un extractante (ver figura 3. ∆z2  y = Cx u= ∆u1 ∆S 0 a22 a32 a42 ) 0 0 0 0  .5 Problemas Propuestos 119 para la separaci´n del isopropanol de una mezcla con contenido de agua.29: Columna de destilaci´n con los perfiles de concentraci´n y de o o temperatura. y= ∆T1 ∆T2 a11  a21 A=  0 0  0  0 F =  f31 0  b11 0  0 0   B=  0 b32  0 b42 ) 0 0 c13 0 0 0 0 c24 0 0  . 0  0 d= ∆xF A1 ∆FA  .

Notar que todas o a las variables son residuales.8.120 Modelado de Procesos con a11 = −30.12. b42 = 0.5 N/m/s. a32 = −3. a42 = −2. ∆u1 es el vapor de calefacci´n. R + θm eb u - Va L Ν1 Mo Ro Lo m Jm Bm Kω Ν2 θ BL JL Figura 3. o . y ∆xF A1 a es la composici´n de la mezcla de agua m´s isopropanol.3.31 muestra el proceso servomotor con carga no lineal descrito en la secci´n 3. a22 = −6.3. ∆z2 es la posici´n del cambio de o interfase entre el agua y el glycol. ∆V1 es el flujo de vapor producido por el caldero de vapor. Las variables poseen el siguiente significado (ver figura 3.30 muestra el proceso servomotor con carga no lineal descrito en la secci´n 3.04.052. ∆z1 es la posici´n del cambio o o de interfase entre el agua y el isopropanol. f32 = 5. ∆FA es el flujo de la mezcla de agua m´s isopropanol. b11 = 6.15 × 105 .77.02.12 La figura 3. y (b) cuando no lo es. b32 = 3. Notar ahora que el eje de salida del mecanismo de reducci´n o o est´ sujeto a la carga no lineal mediante una junta flexible que puede ser a modelada como un resorte rotacional de constante Kω =0. El modelo de este proceso de encuentra en la referencia [17].29): ∆Q1 es el flujo de calor producido por el caldero de vapor.12 × 10−3 . Problema 3. Considerar dos casos: (a) cuando la inductancia de armadura es despreciable.11 La figura 3.30: Servomotor unido a la carga no lineal mediante un acoplamiento flexible. f31 = 62. ∆T1 y ∆T2 son los cambios de temperatura en z1 y z2 . representan los cambios con respecto al estado de equilibrio. ∆S es el flujo de vapor lateral. Problema 3.3 y c24 = −25. f42 = 5. es decir. en donde la carga no lineal posee ahora dos grados de libertad. c13 = −7. a21 = 0.2.76.2.

02 kg. a a El acoplamiento entre las dos secciones de la varilla no es flexible.02 kg.2.31: Servomotor con carga no lineal de dos grados de libertad. Para deducir el modelo matem´tico del proceso doble gr´ao a u puente conviene emplear las ecuaciones de Lagrange de la mec´nica cl´sica.5 Problemas Propuestos 121 La uni´n de la carga con el eje del servomotor no es flexible. El acoplamiento de la carga al eje del motor no es flexible. Problema 3. Las ecuaciones u que describen la din´mica del proceso gr´a-puente fueron deducidas en la a u secci´n 3.3. Los dos p´ndulos poseen e e la misma longitud y la masa esf´rica es de 0.33 muestra el proceso doble gr´a-puente no lineal. El a a acoplamiento entre los dos p´ndulos no es flexible.32 muestra el proceso p´ndulo doble no lineal. Asumir que o Lo = 2L1 /3. Para deducir el modelo matem´tico del proceso p´ndulo doble o a e conviene emplear las ecuaciones de Lagrange de la mec´nica cl´sica. e . e Problema 3. Mo L1 m1 R + Ro τ θm eb u - Va L Ν1 ’ Union no flexible Lo m θ BL JL θ Jm Bm Ν2 Figura 3. y (b) cuando no lo es.13 La figura 3. Las dos varillas poseen la misma longitud y la masa esf´rica adicional es de 0. Las ecuaciones e que describen la din´mica del proceso p´ndulo simple fueron deducidas en la a e secci´n 3.1. Considerar dos casos: (a) cuando la inductancia de armadura es despreciable.14 La figura 3.

y τ θ z F Carro z Figura 3.C. u .C.122 Modelado de Procesos + Fuerza de u control Servomotor D. y z F Carro z y’ θ τ Doble ’ grua puente Figura 3.32: Proceso p´ndulo doble no lineal. e + Fuerza de u control Servomotor D.33: Proceso doble gr´a-puente.

La ´ ´ ultima configuraci´n a˜ade un integrador al controlador con el prop´sito de re´ o n o ducir el error en estado estable.edu. Dos aplicaciones validan el procedimiento de dise˜o desarrollado: control n o ´ptimo de los procesos p´ndulo invertido y gr´a puente. simulaciones y software desarrollados se pueden descargar del sitio n http://fiee. El procedimiento de dise˜o del sistema de conn trol optimo trata de encontrar un extremo (un m´ ´ ınimo o un m´ximo. Las configuraciones usadas para el dise˜o son ´ n el regulador optimo proporcional y el regulador optimo proporcional integral.1. Esta t´cnica asume la formulaci´n de una e o n e o funci´n matem´tica denominada la funci´n de costo. ´ o ındice de rendimiento o ´ ındice de funcionamiento. 4. Todos los archivos correspondientes a los ejercicios. est´ dedicada al dise˜o de sistemas de control ´ptimo a n o estacionarios para diferentes procesos. La ultima secci´n propone problemas de ´ o dise˜o a resolver.uni. La pen´ltima secci´n.pe/728681F. tambi´n conocida como o a o e funci´n de rendimiento. dado el a caso) de una funci´n de costo con el prop´sito de determinar los par´metros o o a .Cap´ ıtulo 4 ´ Control Optimo Este cap´ ıtulo desarrolla un procedimiento para dise˜ar sistemas de conn trol optimo estacionarios y no estacionarios. usando una ley de control optima ´ ´ cuadr´tica que emplea las se˜ales del proceso medidas directamente o estimadas a n mediante un observador optimo. e u u o problemas resueltos. puede n ser aplicado tanto a sistemas univariables como a sistemas multivariables. dise˜os. entre otras denominaciones. Introducci´n o El control optimo trata de determinar el “mejor” sistema de control emple´ ando una t´cnica ´ptima de dise˜o. El procedimiento de dise˜o desarrollado. problen mas.

la funci´n de costo generalmente posee o la forma siguiente: N J= k=0 L(x(k). r(k) es el vector de referencia (entrada al sistema de control) y u(k) es el vector de control ´ptimo. denominado as´ porque emplea una ´ a ı funci´n de costo cuadr´tica de dominio discreto. el vector de control u debe satisfacer ciertas restricciones para poder ser un vector de control admisible.1) donde k es el tiempo discreto. esto significa que no siempre podemos estar o seguros acerca de la forma exacta que deber´ poseer la funci´n de costo. de all´ el t´rmino optimo.2) donde cada elemento Ui es una constante determinada (el sub´ ındice denota la componente i del vector u). resulta en una ley de control optima ´ cuadr´tica. El vector de estado estimado se determina usando un observador a o ´ptimo.124 ´ Control Optimo o ´ptimos de una ley de control. Para demostrar la validez del procedimiento de dise˜o. N es el tiempo discreto final. Esta ley de control (denominada tambi´n o e fuerza o se˜al de control) constituye la entrada al proceso a controlar. e u . Por ejemplo. En cualquier caso. El resultado del dise˜o o a n proporciona una matriz de ganancia que multiplicada por el vector de estado (real o estimado) del proceso. En este cap´ ıtulo se desarrolla el procedimiento de dise˜o de un sistema n de control optimo cuadr´tico discreto. ıa o Para sistemas de control discretos. u2 (k) i Mi (4. n Para aplicaciones pr´cticas. |ui (k)| Ui (4. x(k) es el vector de estado. el vector de control u debe estar siempre a acotado. la b´squeda de la funci´n de costo involucra proceu o dimientos de error y correcci´n. u(k)) (4. r(k). se presentan dos n aplicaciones: dise˜o del sistema de control ´ptimo cuadr´tico para el proceso n o a p´ndulo invertido y para el proceso gr´a-puente. sin embargo.3) en donde cada elemento Mi es una constante dada. En la mayor´ de ı e ´ ıa los casos. Para el caso de control acotado con m´ ınimo gasto de energ´ se puede formular: ıa.

cuando a N → ∞). estaremos frente al denominado control optimo en estado ´ o ´ estacionario. K(k) es una matriz variante en el tiempo. Por consiguiente. pero cuando dicha din´mica alcanza su estado estacionario (es decir. y es el que usaremos en nuestras aplicaciones. entonces K(k) se convierte en una matriz constante K. provoca que dicho proceso responda en forma optima (o lo m´s cercano al ´ptimo). n La realimentaci´n de estados requiere adem´s que todos los estados sean o a disponibles y medibles. Una condici´n o necesaria para poder aplicar el control por realimentaci´n de estados es que o el proceso sea completamente controlable.2. La ley o o o del control optima a usar emplea la realimentaci´n del vector de estado x(k) ´ o en su formulaci´n y posee la forma siguiente: o u(k) = −K(k)x(k) (4.2 Control Optimo Cuadr´tico No Estacionario a 125 4. Mientras que la matriz hermitiana semidefinida poso itiva S (de dimensi´n n × n) pondera la importancia del estado final x(N ).´ 4. Esta o o a fuerza de control aplicada al proceso a controlar. ´ Control Optimo Cuadr´tico No Estacionario a El problema del control optimo cuadr´tico discreto no estacionario con´ a siste en encontrar una adecuada ley de control optima que sea capaz de ´ trasladar la din´mica del proceso desde un estado inicial x(0) hacia un esa tado final deseado x(N ). deo nominada tambi´n matriz de realimentaci´n de estados.4. o la matriz hermitiana semidefinida positiva Q (de dimensi´n n × n) pondera o la importancia del vector de estado x(k).4) donde x(k) es el vector de estado de dimensi´n n y u(k) es el vector de o control de dimensi´n r. Cuando la din´mica e o a del sistema de control es finita.2. ser´ necesario a verificar dicha condici´n en el proceso antes de iniciar el procedimiento de o dise˜o.5) donde K(k) (de dimensi´n r×n) es la matriz de ganancia del controlador. En esta ultima situaci´n. y la matriz hermitiana definida positiva R (de dimensi´n r × r) pondera la importancia de la se˜al de cono n trol u(k). La definici´n de matrices se trat´ en la subsecci´n 1. La fuerza de control optima u(k) se determina a ´ partir de la minimizaci´n de una funci´n de costo cuadr´tica discreta. Si en el sistema a controlar existieran estados que . El control optimo ´ a o ´ cuadr´tico discreto se basa en la siguiente funci´n de costo: a o 1 1 J = xT (N )Sx(N ) + 2 2 N −1 xT (k)Qx(k) + uT (k)Ru(k) k=0 (4.

6): o o M= H GH · · · Gn−1 H (4. ser´ necesario estimarlos.7) posea rango completo. La soluci´n al problema de control optimo cuadr´tico puede obtenerse o ´ a empleando varios enfoques. que en un tiempo finito. o o El proceso debe ser de estado completamente controlable. es decir. es decir.[4].8). Dicha matriz es soluci´n de la siguiente ecuaci´n matricial de Riccati: o o 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. x(0) = c (4.9) puede determinarse recursivamente o partiendo de la siguiente condici´n terminal para k = N : o P (N ) = S (4.126 ´ Control Optimo no pudieran ser medidos directamente.10) hasta llegar a la condici´n inicial P (0) para k = 0. El procedimiento es o como sigue: reemplazando P (N ) en la ecuaci´n (4. Esta estia maci´n puede ser realizada empleando la t´cnica de observaci´n de estados o e o que ser´ tratada en la secci´n 4.9) La matriz P (K) de la ecuaci´n (4. La soluci´n al problema del control optimo cuadr´tico no estacionario o ´ a est´ dada por la siguiente matriz de ganancia del controlador: a 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´n o n × n. La condici´n necesaria y o suficiente para la completa controlabilidad del proceso es que la matriz de controlabilidad M dada por la siguiente expresi´n (subsecci´n 2. Asumamos que el proceso puede ser modelado mediante la siguiente ecuaci´n o de estado discreta: x(k + 1) = Gx(k) + Hu(k).6. el rango de M debe ser igual al orden n del proceso.3.6) donde G es la matriz de estado de dimensi´n n×n. tales como el m´todo de minimizaci´n usando e o multiplicadores de Lagrange o mediante el principio de optimalidad [3]. El requerimiento en esta parte es que el a o proceso sea completamente observable. podemos luego obtener o . sus estados puedan ser transferidos desde un estado inicial arbitrario a cualquier otro estado deseado. H es la matriz de control o de dimensi´n n × r y x(0) es una condici´n inicial del vector de estado.

3 Control Optimo Cuadr´tico Estacionario a 127 K(N − 1) (matriz de ganancia en el tiempo k = N − 1). y asi sucesivamente hasta llegar a obtener K(0). Sin embargo.´ 4.4) e o desaparece debido a que x(∞) = 0.12) Por otra parte.11) 4. En este caso. . el t´rmino xT (N )Sx(N ) de la ecuaci´n (4. cuando la din´mica del sistema de control evoluciona hasta un tiempo N infinito.16) (4. Para N infinito. ´ Control Optimo Cuadr´tico Estacionario a En la secci´n anterior vimos que cuando la din´mica del sistema de o a control evoluciona en un tiempo N finito. Del mismo modo. la a soluci´n del control optimo cuadr´tico pasa a ser una soluci´n de estado o ´ a o estacionario. . Por consiguiente. N − 2. la ganancia K(k) se convierte en una matriz constante K. . se puede demostrar que el valor m´ o ınimo de la funci´n de costo se determina de: o 1 Jmin = xT (0)P (0)x(0) 2 (4. en el estado estacionario la matriz P (k) resulta una matriz constante P . Las matrices de ganancia K(k) (para k = N − 1. la ganancia de realimentaci´n de o estados K(k) es una matriz variante en el tiempo. la funci´n de costo o para el estado estacionario toma la forma: 1 J= 2 ∞ xT (k)Qx(k) + uT (k)Ru(k) k=0 (4.15) (4. . con P (N − 1) podemos obtener K(N − 2). Por otra parte. 0) as´ determinadas. se pueden usar ahora para calcular la ley de control dada ı por la ecuaci´n (4.14) (4.3.5).13) . De este modo la ecuaci´n de Riccati en estado estacionario o toma la forma: P = Q + GT P G − GT P H[R + H T P H]−1 H T P G mientras que la matriz de ganancia K resulta: K = [R + H T P H]−1 H T P G u(k) = −Kx(k) y la funci´n de costo m´ o ınima viene a ser: 1 Jmin = xT (0)P x(0) 2 (4.

4. en donde la salida controlada sigue a una se˜al de referencia r(k) = µ(k) constante. Tales ra´ ıces se denominan tambi´n valores propios. Asumiendo inicialmente para k a = 0 que P (0) = 0. podeı mos calcular ahora la ganancia K usando la ecuaci´n (4. Para operaci´n satisfactoria del sistema de lazo cerrado mostrada en dicha figura. hasta llegar a un tiempo discreto k para el cual P (k) = P (k + 1) = P (k + 2) = · · ·.17) La ecuaci´n (4. ´ en donde se asume que todos los estados se encuentran disponibles. o todas las ra´ ıces de su ecuaci´n caracter´ o ıstica: det[zI − G + HK] = 0 (4. u (k) H I z -1 x (k) G -K Figura 4. donde n . ´ 4.15).18) deben posicionarse dentro del c´ ırculo unitario.14).1: Sistema de control optimo a lazo cerrado.1. podemos obtener P (1). El diagrama de bloo ques del control optimo de estado estacionario se representa en la figura 4. ra´ caracter´ e ıces ısticas. es emo pleando la ecuaci´n de Riccati en estado no estacionario dada en la ecuaci´n o o (4.13).17) permite determinar una matriz P de magnitud convero gente usando c´lculo recursivo como sigue. y asi sucesivamente. para luego o obtener la ley de control dada por la ecuaci´n (4. Con la matriz P as´ determinada. luego usar P (1) para obtener P (2).9). pero invirtiendo la direcci´n del tiempo: o 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. eigenvalores o modos de funcionamiento.128 ´ Control Optimo Una forma de obtener la matriz P de la ecuaci´n matricial (4. ´ El Regulador Optimo Proporcional El regulador es un sistema de control realimentado.

´ Para una salida arbitraria.3.19) Empleando la transformada Z en (4. .4 El Regulador Optimo Proporcional 129 µ(k) es la funci´n escal´n. . 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) Reemplazando u(k) en la ecuaci´n de estado del proceso: o x(k + 1) = Gx(k) + Hu(k) = (G − HK)x(k) + Hk2 r(k) (4.2 muestra el esquema de un regulador para la variable de estado x2 del vector de estado x. C y(k) = x 2 (k) Figura 4. obliga a que se aplique con cuidado a sistemas o que no poseen un comportamiento integral.2) a y(z) obtenemos: o ım l´ y(k) = l´ ım z−1 y(z) = C(I − G + HK)−1 Hk2 R z→1 z (4.2: Esquema del regulador optimo proporcional. kn . Este es el punto en discusi´n.k1 k3 .´ 4.21) Aplicando la propiedad del valor final (subsecci´n 2. o La figura 4. empleando una ley de control de realimentaci´n de estados de la forma u = −Kx. µ(z) = z z−1 (4.22) k→∞ . . Restringiremos nuestro tratamiento a sistemas o o univariables. o x (k) r(k) + k2 + u(k) x (k+1) = G x (k) + Hu(k) . Previamente debemos recalcar que la naturaleza proporcional del regulador en cuesti´n.20).20) (4. . la funci´n de transferencia de pulso o con r(z) = R µ(z) resulta: y(z) = C(zI − G + HK)−1 Hk2 Rµ(z).

0 . por conveniencia. puede tomar la forma de una matriz real diagonal:   r1 0 .2 vimos que una matriz es hermitiana cuando su conjuo gada transpuesta (o su transpuesta conjugada) resulta en la misma matriz. r2 .4 se dijo que una matriz cuadrada R es definida positiva si las ra´ ıces de su ecuaci´n o caracter´ ıstica |zI − R| = 0 son todas positivas.  .. Asimismo.rp deben ser todos positivos para que R sea una matriz sim´trica definida positiva.   0 r2 .. La matriz R.1 y 4. es necesario afectar a la se˜al de referencia por n una ganancia g de modo que: gC(I − G + HK)−1 Hk2 R = 1 Este procedimiento ser´ validado con los ejemplos 4. Por ello. Para sistemas con una sola se˜al de e n entrada. .  . Selecci´n de las Matrices de Ponderaci´n o o La funci´n de costo para determinar la ganancia K del controlador optio ´ mo estacionario est´ dada en la ecuaci´n (4. .23) 4.  . mientras que una matriz cuadrada Q es semidefinida positiva si las ra´ de su ecuaci´n caracter´ ıces o ıstica |zI − Q| = 0 son positivas o nulas (sin embargo.130 ´ Control Optimo La condici´n para que y = R es que C(I − G + HK)−1 Hk1 = 1. que no o siempre se cumple. En la subsecci´n 1. Por tanto. entonces ambas deben ser sim´tricas y se e o verifica que RT = R y QT = Q. R resulta un escalar de valor positivo..1. rp donde los elementos r1 . no todas las ra´ deben ıces ser nulas). . a (4.   R= . . es v´lido que (R∗ )T = (RT )∗ = R y (Q∗ )T = (QT )∗ = Q. 0  . .. . en la subsecci´n 1.  . Cuando a las matrices R y Q son reales. .2.2.5.12): a o 1 J= 2 ∞ xT (k)Qx(k) + uT (k)Ru(k) k=0 donde observamos que la matriz hermitiana R pondera la se˜al de control n u(k) mientras que la matriz hermitiana Q pondera el vector de estado x(k).

Generalmente para que esto ˆ ocurra.   0 q2 . respectivamente.5 Selecci´n de las Matrices de Ponderaci´n o o La matriz Q puede tomar tambi´n una forma diagonal: e   q1 0 . resistencia de armadura R = 1 ohm e inductancia de armadura L = 0. Es entonces necesario balancear en forma adecuada n a los pesos. 0  . La figura 4.4.  . qn 131 donde los elementos qi pueden ser positivos y algunos de ellos nulos para que Q sea una matriz sim´trica semidefinida positiva.C. n Ejemplo 4. puede convertirse f´cilmente en movimiento de traslaci´n. de manera tal que obtengamos un desempe˜ o general del sistema.  . .1 El motor D. resultando: momento de inercia del rotor o J = 0.  Q= .  . 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 . 0 .1 N-s/m. .  .01 N-m/A. pero disminuye el o desempe˜o de las dem´s.5 H. la salida y(k) del o proceso (ver figura 4. es un actuador muy popular en los sistemas de control porque su movimiento rotatorio. mediante acoples adecuados en su eje. Los par´metros del motor fueron a determinados experimentalmente. Es decir. Para el caso del observador de estados. constante electromotriz K = Ke = Kt = 0.  . coeficiente de fricci´n b = 0.6) debe alcanzar su estado estacionario despu´s que la e salida y (k) del observador ya la haya alcanzado. n que se acerque en lo posible al optimo y que evidentemente. e a Cada elemento qi o cada elemento ri dar´ un peso correspondiente a cada variable de estado xi o a cada se˜al de control ui . Debemos tener en cuenta que un mayor peso en una de las variables ocasiona una mejor respuesta con relaci´n a tal variable. Eso se aprecia en fajas transa o portadoras o en brazos manipuladores.3 muestra el circuito de armadura del motor acoplado a una carga..01 kg-m2 /s2 . cumpla las ´ especificaciones de dise˜o. n o las matrices de ponderaci´n Re y Qe deben ser elegidas de tal forma que o la respuesta del observador sea dos o tres veces m´s r´pida (regla pr´ctica) a a a en comparaci´n con la respuesta del proceso. El criterio n para escoger los pesos est´ en relaci´n con la importancia que le demos a a o cada variable o se˜al en cuesti´n.. los elementos de Re deben ser bastante menores que los elementos de Qe ..

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

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

5 Tiempo 2 (s) 2.5 y (rad/s) 1 0. las ecuaciones de estado y de     x1 0 0 1 0   x2  +  L  V x3 0 0  x1  x2  + DV . La velocidad angular controlada es y. con o las especificaciones siguientes: tiempo de estabilizaci´n menor que 2 s. % SE CUMPLE QUE K=Kr Y P=Pr yRpta (rad/s) 0. a un escal´n o de 1 rad/s.2 Determine el controlador optimo cuadr´tico estacionario que estabilice la ´ a posici´n angular del eje del motor (descrito en el ejemplo 4.5 1 1.5 3 40 V (voltios) 20 0 0 0. n Ejemplo 4.5 1 1. D = [0] x3 .5 2 2.4: Respuesta yRpta (a lazo abierto) del motor D.5 1 1.134 end Kr = inv(R + H’*P*H)*H’*P*G.1 ´ Control Optimo 0.05 0 0 0.1) a 1 rad. error o en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %. x2 = I y o salida resultan:    K b x1 ˙ −J J  x2  =  − K − R ˙ L L x3 ˙ 1 0  y = x3 = 0 0 1 x3 = θ.C. ˙ Soluci´n: Eligiendo x1 = θ.5 2 2.5 3 1. la se˜al de control es V .5 0 0 0.5 3 Figura 4.

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

n De la figura 4.26) (4.6. s´lo unas cuantas variables del vector de a o estado x(k) del proceso son susceptibles de ser medidas en forma directa. ´ Dise˜o del Observador Optimo Cuadr´tico n a En muchos casos pr´cticos.25) .24) (4.5 1 1.C.5 Tiempo 2 (s) 2. 4.6 podemos formular: x(k + 1) = Gx(k) + Hu(k) y(k) = Cx(k) mientras que la ecuaci´n del observador toma la forma: o ˆ ˆ x(k + 1) = Gˆ (k) + Hu(k) + Ke [y(k) − C x(k)] x (4.6. El o o a diagrama de bloques del observador de estados se representa en la figura 4. que puede ser calculada a partir de la minimizaci´n de una funci´n de costo cuadr´tica. Esto puede lograrse mediante el empleo de un observador discreto de estados.5 0 0 0. es decir.5 1 1. El dise˜o de dicho n observador implica determinar su matriz de ganancia Ke .5 3 Figura 4.5 ´ Control Optimo y (rad) 1 0.5 2 2.5: Salida controlada y (posici´n angular) y se˜al de control V para o n el motor D. donde podemos notar que el observador emplea las mediciones de la salida y(k) y de la se˜al de control u(k). ˆ requerimos hallar un vector de estado estimado x(k).136 1. En tales situaciones necesitamos estimar dicho vector de estado.5 3 60 40 20 0 −20 0 V (voltios) 0.

26) y o o restando la ecuaci´n resultante de (4.6: Diagrama de bloques del observador de estados ˆ ˆ donde x(k) es el vector de estado estimado de dimensi´n n.28) en donde la matriz Ke debe ser escogida apropiadamente para que el error tienda a cero con una velocidad adecuada. 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. que cualquier estado inicial pueda determinarse a partir de la observaci´n de los vectores de salida y de control. o El observador que nos ocupa requiere que el proceso sea completamente observable. y(k) representa o el vector de salida estimado de dimensi´n m. en un n´mero finito o u de per´ ıodos de muestreo.´ 4.27) mientras que su ecuaci´n caracter´ o ıstica toma la forma: det[zI − G + Ke C] = 0 (4. Cabe mencionar tambi´n que las e ra´ de dicha ecuaci´n caracter´ ıces o ıstica deben posicionarse dentro del c´ ırculo unitario para operaci´n satisfactoria del observador.29) . Reemplazando la ecuaci´n (4. podemos obtener la ecuaci´n del o o error del observador: e(k + 1) = [G − Ke C]e(k).25) en (4. es decir.6 Dise˜ o del Observador Optimo Cuadr´tico n a u(k) H + + G ^ y(k) − y(k) 137 y(k) x (k) I z −1 C Ke + H + + + G I z −1 ^ x (k) C − + Figura 4. Ke es la matriz de ganancia o de realimentaci´n del observador con dimensi´n n × m y C es la matriz de o o salida de dimensi´n m × n.24). ˆ e(k) = x(k) − x(k) (4.

138 ´ Control Optimo La condici´n necesaria y suficiente para que el sistema sea completamente o observable es que la matriz N posea rango n (rango completo).36) (4. obtendremos la siguiente ecuaci´n o de estado: (4.32) α(k + 1) = GT α(k) + C T β(k) con una ley de control que posee la forma siguiente: T β(k) = −Ke α(k) (4. Para calcular la matriz Ke podemos proceder en la misma forma en que lo hicimos con la matriz de ganancia K del controlador. H → CT .30) Comparando la ecuaci´n caracter´ o ıstica del controlador de estados (4. podemos modificar la forma de la ecuaci´n (4.30). para que nos permitan calcular Ke .33) en la funci´n de costo siguiente: o J= 1 2 ∞ αT (k)Qe α(k) + β T (k)Re β(k) k=0 (4.31) Empleando tales modificaciones en las estructuras de la ecuaci´n de estado o del proceso x(k+1) = Gx(k)+Hu(k). El procedimiento es como sigue. T K → Ke (4. Es decir.18) con la ecuaci´n (4. Dado que el determinante de una matriz y el de su transpuesta son iguales. podemos utilizar las ecuaciones que describen al sistema de control ´ptimo.33) Empleando las ecuaciones (4. de su ecuaci´n de salida y(k) = Cx(k) o y de su ley de control u(k) = −Kx(k). podemos deducir que se tienen que hacer las siguientes o modificaciones: G → GT . convenieno temente modificadas.28) como sigue: o T det[zI − G + Ke C] = det[(zI − G + Ke C)T ] = det[zI − GT + C T Ke ] (4.35) .34) entonces la correspondiente ecuaci´n de Riccati toma la forma: o Pe = Qe + GPe GT − GPe C T [Re + CPe C T ]−1 CPe GT y la matriz de ganancia Ke viene dada por: Ke = [Re + CPe C T ]−1 CPe GT (4.32) y (4. es decir. el rango de N debe ser igual al orden del proceso.

01. Soluci´n: Ver programa ejem4 3. Cc = [0 0 1]. xlabel(’Muestras k’). A = [-b/J K/J 0 -K/L -R/L 0 1 0 0]. % ejem4_3.1/L.pe21.B. debido a que errores de estado permanente o .37) Ejemplo 4.1 [G. grid print -deps -f ejem4_3 Ke = inv(Re + C*Pe*C’)*C*Pe*G’.H.G*Pe*C’*inv(Re + C*Pe*C’)*C*Pe*G’.C.Dc.T.3 Dise˜ar un observador optimo para el proceso motor D.1.t.D] = c2dm(A.C.35).pe31. pe31(k) = Pe(3.length(pe11)).3).2 n ´ asumiendo que se requiere observar los estados x1 . utilizaremos la siguiente ecuaci´n recursiva: Pe (k + 1) = Qe + GPe (k)GT − GPe (k)C T [Re + CPe (k)C T ]−1 CPe (k)GT (4. clear all J = 0. % SELECCIONADO EN EL EJEMPLO 4.pe11.3 se muestra la evoluo ci´n de los valores de algunos elementos de Pe hasta alcanzar el estado de o equilibrio. Re = [1]. empleamos el mismo o procedimiento que para determinar P (secci´n 4.’-. x2 y x3 .’zoh’).0].05. L = 0. % TODOS CON IGUAL PESO for k=1:40 Pe = Qe + G*Pe*G’ . pe11(k) = Pe(1.m.m OBSERVADOR OPTIMO PARA EL MOTOR D. B = [0. T = 0. al regulador proporn o cional visto en la secci´n anterior. ´ El Regulador Optimo Proporcional Integral Generalmente es necesario a˜adir acci´n integral. end t = linspace(0. para calcular o o Pe . % EJE DE TIEMPOS plot(t. ylabel(’Algunos elementos de Pe’). Dc = [0].1). K = 0.length(pe11).´ 4. del ejemplo 4.01.Cc.0 0 1].7 El Regulador Optimo Proporcional Integral 139 Para determinar Pe a partir de la ecuaci´n (4.t.1). Es decir. % CONVERSION A DISCRETO Pe =zeros(3.5. b = 0. En la figura 4. pe21(k) = Pe(2.C. % GANANCIA DEL OBSERVADOR 4. R = 1.’).0 1 0.3).7. % condicion inicial Qe = [1 0 0.’--’.1).

Siendo la se˜al de n r(k) + − + + I z−1 K v(k) KI + − u (k) H + + G I z−1 x (k) C y (k) Figura 4.8: El regulador proporcional integral.8 0.8 1. La figura 4.140 1.8 ilustra un regulador optimo (propuesto en [3]) para sistemas univariables. Pe (2. 1) (curva con puntos y rayas).2 1 0. la inclusi´n de acci´n integral en el o o sistema de control permite obtener un error estacionario nulo. ´ que incluye dicha acci´n integral en el sistema de control: un integrador con o n se˜al de salida v(k) y una ganancia integral KI asociada. Para procesos que no poseen propiedades integradoras. referencia r(k) un escal´n unitario. de la figura 4.4 Algunos elementos de Pe 1. pueden aparecer si los par´metros del proceso o su estructura (su ecuaci´n a o de estado) no han sido estimados con suficiente exactitud. 1) (curva o en trazos) y Pe (3. 1) (curva s´lida).4 0.6 1.7: Algunos elementos de Pe : Pe (1.8 podemos deducir que las o .2 0 0 ´ Control Optimo 5 10 15 20 Muestras 25 k 30 35 40 Figura 4.6 0.

u(k) y v(k) toman valores estacionarios x(∞).42) En el estado de equilibrio (para k → ∞).40) obtenemos: x(k + 1) = Gx(k) + H[−Kx(k) + KI v(k)] = (G − HK)x(k) + HKI v(k) y de las ecuaciones (4.46) (4.43) ( Empleando las ecuaciones (4.38) (4. u(∞) y v(∞).38) y (4.´ 4.41) La ecuaci´n para el integrador resulta: o v(k) = v(k − 1) + r(k) − y(k) de donde se obtiene: v(k + 1) = v(k) + r(k + 1) − y(k + 1) = v(k) + r(k + 1) − C[Gx(k) + Hu(k)] = (1 − CHKI )v(k) + (−CG + CHK)x(k) + r(k + 1) 4. As´ la ecuaci´n (4.40) (4. los valores de x(k).44) y (4.45) (4.45) se ı o convierte en: x(∞) v(∞) = G − HK HKI −CG + CHK 1 − CHKI x(∞) v(∞) + 0 r (4.43) y (4.39) deducimos: x(k + 1) v(k + 1) = G − HK HKI −CG + CHK 1 − CHKI y(k) = C 0 x(k) v(k) x(k) v(k) + 0 1 r(k + 1) (4.7 El Regulador Optimo Proporcional Integral ecuaciones de estado y de salida del proceso son: x(k + 1) = Gx(k) + Hu(k) y(k) = Cx(k) La se˜al de control u(k) viene dada por: n u(k) = −Kx(k) + KI v(k) donde la matriz de ganancia del controlador es: K= K1 K2 · · · Kn 141 (4.47) .39) (4.44) (4.

podemos definir la siguiente funci´n de costo: o 1 J= 2 ∞ k=0 ˜ ˜ ξ(k)T Qξ(k) + w2 (k)R (4.45).55) (4.142 Si definimos: x(k) − x(∞) = xe (k) v(k) − v(∞) = ve (k) ´ Control Optimo (4. mientras que o el vector de estado ξ(k) del regulador proporcional integral posee dimensi´n o (n + 1).48) y (4.54) (4.53) (4. Teniendo en mente las relaciones anteriores.49) obtendremos: xe (k + 1) ve (k + 1) = = G − HK HKI −CG + CHK 1 − CHKI xe (k) ve (k) + H −CH xe (k) ve (k) xe (k) ve (k) (4.51) (4.49) y restamos ahora la ecuaci´n (4. En otras palabras.57) .56) (4.50) G 0 −CG I −K KI La ecuaci´n (4.50) puede ser escrita como: o ˜ ˜ ξ(k + 1) = Gξ(k) + Hw(k) ˜ w(k) = −Kξ(k) donde: ξ(k) = ˜ G(k) = ˜ H(k) = ˜ K(k) = xe (k) ve (k) G 0 −CG I H −CH K −KI (4. el nuevo orden del sistema con un integrador es (n + 1).47) de (4. si n es el orden del sistema original. y luego usando las relaciones o (4.48) (4. es decir.52) Observar que la inclusi´n de un integrador en el sistema de control aumenta o en uno el orden del sistema. el vector de estado x(k) del sistema original posee dimensi´n n.

o o Ejemplo 4.1.7 El Regulador Optimo Proporcional Integral 143 ˜ Debemos entonces calcular una matriz K adecuada de forma tal que minimice la funci´n de costo dada en la ecuaci´n (4.R).0]. % CONVERSION A DISCRETO Gtilde = [G zeros(2.57). como o sigue: ˜ ˜˜ ˜ ˜ ˜˜ ˜ ˜˜ ˜ ˜ ˜ ˜˜ (4.1 [G.4 Dise˜ar el regulador proporcional integral optimo estacionario que sea capaz n ´ de estabilizar la velocidad angular del eje del motor (descrito en el ejemplo 4. R = [0. % SELECCIONADO EN EL EJEMPLO 4.0 0 2]. % VERIFICAR CONTROLABILIDAD Y OBSERVABILIDAD M = [B A*B].1 0.H. % Ktil: GANANCIA OPTIMA K = [Ktil(1) Ktil(2)].1) -C*G eye(1.´ 4.01.0 0. b = 0. Soluci´n: El programa ejem4 4.Cc.1)].C.9. yi=0. % orden n=3 B = [0.’zoh’).5.Q. % MATRICES DE PONDERACION [Ktil. % CONDICIONES INICIALES N = 60.59) La selecci´n del tiempo de muestreo se trata en la subsecci´n 4. K = 0.1) a 1 rad/s. % ejem4_4. x = [0.m SOLUCION DEL EJEMPLO 4. Dc = [0]. % DEBE SER DE ORDEN n+1=4 Htilde = [H -C*H].E] = dlqr(Gtilde.1/L]. Empleando el mismo o o procedimiento usado en la secci´n 4.3.B.01]. A = [-b/J K/J -K/L -R/L]. error en estado estable menor al 1 % y sobreimpulso de la salida menor al 5 %.Dc. v=0. es posible formular la ecuaci´n de o o ˜ Riccati y la ecuaci´n de ganancia del controlador K para el regulador. Q = [1 0 0. KI = -Ktil(3). % rank(M) = rank(N) = n = 2 % LUEGO EL SISTEMA ES COMPLETAMENTE CONTROLABLE Y OBSERVABLE T = 0. r=1.Htilde.D] = c2dm(A.05.9.6. % RESPUESTA AL ESCALON r=1 .T.01. N = [Cc’ A’*Cc’]. Cc = [1 0].Ptil.m resuelve el problema y sus resultados se o muestran en la figura 4. R = 1. con las especificaciones siguientes: tiempo de estabilizaci´n o menor que 2 s. L = 0.4 clear all J = 0.58) P = Q + GT P G − GT P H[R + H T P H]−1 H T P G ˜ ˜˜ ˜ ˜ ˜ ˜˜ K = [R + H T P H]−1 H T P G (4.

ylabel(’y (rad/s)’).1.1.1) plot(t.2) plot(t.. inv(R+Htilde’*Ptilde*Htilde)*Htilde’*Ptilde*Gtilde.V).9: Salida controlada y y se˜al de control V para el ejemplo 4. Ptilde = zeros(3.5 1 1. end % GRAFICOS t = linspace(0.5 2 2.5 0 0 0.3).Gtilde’*Ptilde*Htilde*. V(k) = -K*x + KI*v. x = G*x + H*V(k). for i=1:T Ptilde = Q + Gtilde’*Ptilde*Gtilde . y(k) = x(1). subplot(2.T*N. grid. ylabel(’V (voltios)’).5 Tiempo 2 (s) 2.5 y (rad/s) 1 0. n .yi. subplot(2.5 3 25 20 15 10 5 0 V (voltios) 0. end Ktilde = inv(R + Htilde’*Ptilde*Htilde)*Htilde’*Ptilde*Gtilde.5 3 Figura 4.y).N). % SE CUMPLE QUE Ktil = Ktilde Y Ptil = Ptilde 1.4. grid. xlabel(’Tiempo (s)’) print -deps -f ejem4_4 % CALCULO RECURSIVO DE LA MATRIZ Ptilde Y CALCULO DE Ktilde T = 15.5 1 1.144 ´ Control Optimo for k=1:N v = v + r . yi = y(k)..

7). ´ a 6) Implementar el hardware del sistema (subsecci´n 4. ´ 5) Simular el sistema de control optimo cuadr´tico. Procedimiento de Dise˜o e Implementaci´n n o El procedimiento de dise˜o e implementaci´n en tiempo real de un sisn o tema de control ´ptimo cuadr´tico comprende los pasos siguientes: o a 1) Formular el problema (determinar especificaciones de dise˜o). ´ Control Optimo Cuadr´tico del P´ndulo Ina e vertido En esta secci´n nos ocuparemos del dise˜o del control optimo cuadr´tico o n ´ a del proceso p´ndulo invertido empleando el procedimiento de dise˜o descrito e n en la secci´n 4.4. 4.8 Procedimiento de Dise˜ o e Implementaci´n n o 145 4. el p´ndulo se mueve en el mismo plano que la trayectoria del e carro. o ˜ 3) Calcular la matriz de ganancia optima K de control (secci´n 4. Formulaci´n del Problema o Dado el proceso p´ndulo invertido.8. En el problema o planteado. o 4. se desea dise˜ar un servocontrolador que sea capaz de mantener n el p´ndulo invertido en posici´n vertical (tanto como sea posible).9.6).C. ´ o o 4) Calcular la matriz de ganancia optima Ke del observador (secci´n 4.3). o 8) Realizar pruebas de funcionamiento (obtener resultados experimentales satisfactorios). y al mise o mo tiempo.1.9.9.7). mantener el carro en una posici´n referencial. controlado por voltaje de armadura.8.6). conformado por una varilla montada e en un carro impulsado por un servomotor D. o 7) Implementar el software del sistema (subsecci´n 4.9.1 y 3.2) y determinar si es completamente controlable y completamente observable (secci´n 2. n 2) Determinar el modelo matem´tico del proceso a controlar (secciones a 3.3. El sistema de control ser´ dise˜ado empleando la t´cnica de control a n e .

Jm = 1. Kb = 31. Jo = 0. a41 = -M2^2*g/d. como o veremos m´s adelante. KA = 14. mv = 0.C. y las n salidas del servosistema son la posici´n angular del p´ndulo y la trayectoria o e horizontal del carro. M1 = mc + me + mv. J2 = Jeq/(n^2*rp^2). Jp = mp*rp^2/2. a21 = (M1+J2)*M2*g/d. Jv = mv*lv^2/3. Bm = 1. le = 0.741.9596e-6. rp = 0.0648. lv = 0. n se requiere seleccionar adecuadamente las matrices de ponderaci´n. a44 = -J1*Bx/d. me = 0. a 4. d = ((M1+J2)*J1-M2^2).81. La entrada al proa o ceso (la se˜al de control) es el voltaje de armadura del servomotor D. B = [0 b21 0 b41]. Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra). Bo =0. Se desea un tiempo de estabilizaci´n de la posici´n del o o carro de aproximadamente 6 segundos con el menor sobreimpulso posible.92. % SALIDA: POSICION DEL CARRO .071e-3. Km = 31. Je = me*le^2. Jeq = Jm + n^2*(Jo + Jp).146 ´ Control Optimo o ´ptimo cuadr´tico y la configuraci´n de un servosistema. Ra = 7. Para una frecuencia de muestreo o de 200 Hz y asumiendo retenci´n de memoria de orden cero. n = 1/19. la ecuaci´n o o de estado discreta del proceso y su ecuaci´n de salida se determinan como o sigue: % PARAMETROS DEL PROCESO mc = 0. % MODELOS LINEALES CONTINUO Y DISCRETO A = [0 1 0 0 a21 0 0 a24 0 0 0 1 a41 0 0 a44]. El Modelo del Proceso a Controlar La determinaci´n del modelo matem´tico del proceso p´ndulo invertido o a e fue tratado con amplitud en la secci´n 3.9.9. Cabe anotar que para alcanzar las especificaciones de dise˜o planteadas. a24 = Bx*M2/d. M2 = me*le + mv*lv/2.2. Cc = [0 0 1 0]. b21 = -Kx*M2*KA/d.2. J1 = Je + Jv.767. Kx = Km/(Ra*n*rp).1. mp = 0.8342e-6.063095. g = 9. Beq = Bm + n^2*Bo.053e-3. b41 = J1*Kx*KA/d.38.

0995 0.´ 4.0963 0.0000 0.0019  0.0000 0  0.0000 0.0765  147 C= 0 0 1 0 4.0000 0. 0.0049  0.51) n ´ y (4.52).H] = c2d(A.1) -Cc*G 1].0002 0.0002       .9508 −0.0000    .1497   H=  0. % MATRIZ DE CONTROLABILIDAD M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1].0000 0 −1. % TIEMPO DE MUESTREO [G.9.0002  0.0049 0 0 0 0 1.0002  0.0995 G=  0. El c´lculo se realiza como sigue: a G1 = [G zeros(4.9508  −0.0765 −0.0050 1.0000 0 0 1.0004  −0.1497 0.0002 0.Ts).-Cc*H]. a saber: ˜ ˜ ξ(k + 1) = Gξ(k) + Hw(k).7 vimos que la estructura del servosistema a emplear en o el dise˜o del controlador optimo se describe mediante las ecuaciones (4. 1. donde: ˜ G(k) = G 0 −CG I .3. ˜ H(k) = H −CH . C´lculo de la Matriz de Ganancia del Controlador a En la secci´n 4.0000 0 0 1.0963  .0019 0.0000 −0. rM = rank(M).0002 0.9 Control Optimo Cuadr´tico del P´ndulo Invertido a e Ts = 1/200.0000 0.0002 0. ˜ K(k) = K −KI ˜ w(k) = −Kξ(k) Adicionalmente debemos averiguar si el proceso es completamente controlable formando la matriz de controlabilidad M y averiguando su rango.0049 0.0000 −0.B.0004 −0. H1 = [H.      ˜ = H   −0.0000 0.0002 0.0002 0.0050 1. que debe ser 5. % rM = 5 => COMPLETAMENTE CONTROLABLE    ˜= G   1.

7295 − 1.0035 0.2107 0. tenemos que reducir la amplitud de la se˜al de entrada (o de n control) a dicho amplificador.2000 −0.0727 0.7.3735 0. KI = [−0. Para tal prop´sito.59).0008 0.5). donde P (0) es una condici´n inicial arbitraria: o ˜ o P = zeros(5.3112 0. seleccionamos antes las matrices o de ponderaci´n R y Q como sigue: o ˜ ˜   200 0 0 0 0  0 0 0 0 0    ˜ ˜ 0  R = [100].0035 −0.9019 0. As´ obtenemos: ı    ˜ = 105 ×  P   1.7311 − 2.3112 0.0008 −0. o dando as´ mayor ´nfasis a la se˜al de control en el proceso de optimizaci´n.0041 −0. Q =  0 0 100 0    0 0 0 0 0  0 0 0 0 0. As´ se obtiene:: o ı ˜ ˜˜ ˜ ˜ ˜ ˜˜ K = [R + H T P H]−1 H T P G = [K donde: K = [−7.0041 0.6291].0097] − KI ] .G1’*P*H1*inv(R + H1’*P*H1)*H1’*P*G1 end ˜ ˜ ˜ ˜ ˜ donde G1 ≡ G.148 ´ Control Optimo ˜ Para determinar la matriz de ganancia K del controlador de realimentaci´n o de acuerdo a lo establecido en la secci´n 4.5082 0.0000       ˜ ˜ Conocida la matriz P . for i = 1:1000 P = Q + G1’*P*G1 . pues de otro modo se originar´ efectos no ıan ˜ lineales indeseados en el sistema. Q ≡ Q y R ≡ R.5082 −0.3774 0.3735 −0.0015 0.9352 0. ı e n o ˜ Para calcular la matriz K debemos resolver la ecuaci´n de Riccati (4.0015 −0.9019 0.2107 0. H1 ≡ H.01 ˜ En la matriz Q observamos que se est´ dando mayor peso al angulo del a ´ p´ndulo (200).58) o pero en su forma recursiva: ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ 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. R toma el valor de 100.9357 − 2. Con el prop´sito de evitar la saturaci´n del o o amplificador. podemos ahora calcular la matriz K empleando la ecuaci´n (4.1197 −0.1197 0.01. P ≡ P . La posici´n del carro recibe un peso de 100 mientras que e o al integrador se le asigna 0.60) El programa siguiente (en c´digo MATLAB) calcula el valor estacionario de o ˜ la matriz soluci´n P (k).

4.3). Para ello formamos la matriz de observabilidad empleando la ecuaci´n (4. N = [C’ G’*C’ G’^2*C’ G’^3*C’ G’^4*C’].9 Control Optimo Cuadr´tico del P´ndulo Invertido a e 149 4.9. porque ´stas e son las variables que no son posibles de medir directamente y necesitamos que tengan una mayor influencia en el proceso de estimaci´n. a o Para calcular la matriz de ganancia del observador Ke calculamos previamente la matriz Pe a partir de la ecuaci´n (4. tanto a la velocidad angular de la varilla como a la velocidad del carro. C´lculo la Matriz de Ganancia del Observador a Previo al c´lculo la matriz de ganancia del observador.37): o 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´digo MATLAB) calcula el valor estacionario de o la matriz soluci´n Pe (el valor inicial de Pe es arbitrario): o for i = 1:40 Pe = Qe + G*Pe*G’-G*Pe*C’*inv(Re+C*Pe*C’)*C*Pe*G’ end . algo menor comparado con o el peso de 1 atribu´ al angulo de la varilla. % debe ser rnN = 4 Para calcular la matriz de ganancia Ke del observador optimo (secci´n 4.9. rnN = rank(N). Notar tambi´n o e que la posici´n del carro posee un peso de 0.9 0  0 0 0 1000  Re = 1 0 0 10 . debido o a o ´ a que el sensor usado para medir dicho angulo posee un error de cuantizaci´n ´ o mayor. el mayor en Qe .´ 4. dado que el sensor de posici´n ıdo ´ o del carro es m´s exacto que el sensor de posici´n de la varilla. Podemos observar que en la matriz Re se da un peso de 10 a la medici´n de o la posici´n del carro. pues es m´s exacta que la medici´n del angulo.29) con n = 4. En la matriz Qe se asigna un peso de 1000. debemos determia nar si el proceso es completamente observable. como sigue: o C = [1 0 0 0 0 0 1 0]. ´ o debemos seleccionar previamente las matrices de ponderaci´n Re y Qe : o  1 0 0 0  0 1000 0 0   Qe =   0 0 0.

063095.8342e-6.053e-3. Km = 31. M2 = me*le + mv*lv/2.8240   0.7336 0.0003 0. mv = 0.2269 0.0047 0.81.150 donde P e = Pe . Kb = 31. Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra). J2 = Jeq/(n^2*rp^2). KA = 14. podemos entrar ahora a la fase de simulaci´n o del sistema de control ´ptimo cuadr´tico. g = 9.0640 Pe = 103 ×   0.0136 2. Beq = Bm + n^2*Bo. o % disopt2.7683  T 0.767.2269   0.0752 3. Los resultados de n o la simulaci´n se pueden observar en las figuras 4. adem´s de efectuar todos a los c´lculos anteriores.12.92.0397 2.10.0753 ´ Control Optimo  0. Jp = mp*rp^2/2. De esta manera obtenemos: 0. J1 = Je + Jv. 4.5 m.9413 Ke =   0. lv = 0. Como o se˜al de referencia se emplea un escal´n de valor 1.11 y 4. antes de iniciar su implementaci´n o a o en tiempo real.7913 4.0640 9. rp = 0. Kx = Km/(Ra*n*rp).0648.071e-3.m SISTEMA DE CONTROL OPTIMO DEL PENDULO INVERTIDO clear all % PARAMETROS DEL PROCESO mc = 0. le = 0.0003 0. Es ´ o ´ interesante anotar que el modelo del proceso empleado en la simulaci´n es o el modelo no lineal (3.7802  20.31) discretizado directamente.0185 2. Tambi´n hemos a˜adie n do sentencias para simular el efecto de saturaci´n del amplificador. . mp = 0.36): o Ke = [Re + CPe C T ]−1 CPe GT lo que resulta en: 0. Jv = mv*lv^2/3.741. Bo =0. M1 = mc + me + mv. me = 0. Jo = 0. Jm = 1. El siguiente programa disopt2.0753  6. la matriz de ganancia Ke se calcula con la ecuaci´n (4. n = 1/19. Bm = 1.0397 0.38.0136  0. realiza la simulaci´n del sistema controlado emplea o ando una ley de control optima y con observaci´n optima de estados. Ra = 7.9.5.0021  0.9596e-6.9.3450  4. Qe = Qe .m. Jeq = Jm + n^2*(Jo + Jp).2. ´ Simulaci´n del Sistema de Control Optimo o Con los datos determinados. Je = me*le^2.3346 Luego.

Ts). % TIEMPO DE MUESTREO [G. for i=1:1000 P = Q + G1’*P*G1 -G1’*P*H1*inv(R+H1’*P*H1)*H1’*P*G1. Cc = [0 0 1 0]. a21 = (M1+J2)*M2*g/d. for i=1:40 151 . a24 = Bx*M2/d.9 Control Optimo Cuadr´tico del P´ndulo Invertido a e d = ((M1+J2)*J1-M2^2).H1. end K1 = inv(R+H1’*P*H1)*H1’*P*G1. a41 = -M2^2*g/d.Q. % SE OBSERVAN POSICIONES ANGULAR Y LINEAL Qe = [1 0 0 0 0 1000 0 0 0 0 0. % 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.´ 4. % K1=KK.1) -Cc*G 1]. H1 = [H. a44 = -J1*Bx/d. % CALCULO DE LA GANANCIA DE UN OBSERVADOR C = [1 0 0 0 0 0 1 0]. Re = [1 0.PP] = dlqr(G1.4).H] = c2d(A.01].R). P=PP K = [KK(1) KK(2) KK(3) KK(4)]. G1 = [G zeros(4. % POSICION DEL CARRO Ts = 1/200. b21 = -Kx*M2*KA/d.5). R = [100]. rM = rank(M).9 0 0 0 0 1000].-Cc*H]. P = zeros(5. Pe = zeros(4. % MODELOS LINEALES CONTINUO Y DISCRETO A = [0 1 0 0 a21 0 0 a24 0 0 0 1 a41 0 0 a44]. [KK.0 10].KK(5). M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1]. KI = .B. B = [0 b21 0 b41]. b41 = J1*Kx*KA/d.

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

9 Control Optimo Cuadr´tico del P´ndulo Invertido a e xlabel(’Tiempo (s)’) print -deps -f spou 1.10: Simulaci´n del sistema p´ndulo invertido: posici´n del carro. o e o 4. los sensores de posici´n.13 muestra los componentes f´ ısicos (el hardware) del sistema de control.C.4 0. que posee reducci´n de velocidad interna y codificador o o ´ptico incorporado.2 0 153 2 4 6 8 10 Tiempo 12 (s) 14 16 18 20 Figura 4. e . una de las cuales est´ unida al a eje del motor y la otra. Pittman de im´n permanente de aproximadaa mente 350 rpm. o a Dos poleas de radio igual a 6. al otro extremo de un carril.6. y una computadora personal con o microprocesador Pentium. El proceso p´ndulo invertido (o gr´a-puente) se e u muestra esquematizado en la figura 4.9.6 0. cuya operaci´n explicaremos m´s adelante. el amplificador de potencia.4 1. Tales componentes son: el proceso a controlar (p´ndulo invere tido o gr´a-puente). Un carril de metal por donde se desliza el carro porta-p´ndulo.2 0 −0.48 cm.6 1. El Hardware del Sistema de Control La figura 4.14 y comprende: Un servomotor D.8 0.´ 4. la u o tarjeta de adquisici´n de datos Lab-PC+.2 1 Posición del carro 0.

7 0. e 0.05 0 −0.6 0.2 0 2 4 6 8 10 Tiempo 12 (s) 14 16 18 20 Figura 4. o e n .1 0 −0.2 0.1 −0.11: Simulaci´n del sistema p´ndulo invertido: posici´n angular del o e o p´ndulo.3 0.15 ´ Control Optimo 0.154 0.4 Señal de control u 0.12: Simulaci´n del sistema p´ndulo invertido: se˜al de control.1 Posición angular del péndulo 0.05 −0.1 0 2 4 6 8 10 Tiempo 12 (s) 14 16 18 20 Figura 4.5 0.

o . . . PC6 PC7 Fs CONTADOR / TEMPORIZADOR OUTB0 AMPLIFICADOR PWM 16 bits PROCESO: ’ PENDULO INVERTIDO / GRUA PUENTE SENSOR EN EL MOTOR SENSOR EN LA VARILLA SALIDAS PA COMPUERTAS DIGITALES DE ENTRADA Y SALIDA 16 bits PC Figura 4. . PB7 PC0 .13: Implementaci´n del sistema de control.´ 4. PA7 MUX PB PB0 . . .9 Control Optimo Cuadr´tico del P´ndulo Invertido a e 155 COMPUTADORA PERSONAL TARJETA LAB-PC+ SALIDAS ANALOGICAS DAC0 DAC1 PA0 . .

C .156 ´ Control Optimo SERVOMOTOR PENDULO POLEA CARRO CARRIL Figura 4.15: Servomotor con codificador optico y polea. e Codificador optico ’ Polea Alimentacion ’ . uno de los cuales se o encarga de medir la posici´n angular del motor y el otro se encarga de medir o . e Un carro de metal con cuatro ruedas de bronce. El esquema del carro se muestra en la figura 4. Una varilla met´lica de 70 cm de largo y de 64 gr que hace la funci´n a o de p´ndulo. El peso total del ´ carro es de 920 gr. el cual posee una junta m´vil (para sujetar una varilla met´lica por uno de sus extremos) y o a un codificador optico incorporado (ver figura 4. Reductor de velocidad Figura 4. . Servomotor D. .15). ´ Los Sensores de Posici´n o El sistema de control posee dos sensores de posici´n.16.14: Sistema p´ndulo invertido.

las ranuras . compuesto de un disco met´lico con un n´mero determinado a u de ranuras igualmente espaciadas y ubicadas en el per´ ımetro del disco. Al girar el disco a la misma velocidad del servomotor (o a la misma velocidad de la varilla).´ 4. la posici´n angular de la varilla. Cada sensor consiste de un codificador optio ´ co rotatorio. Canal A Canal B Fuente de luz Transistor o ’ ptico Eje del servomotor Disco con mascara ’ Figura 4. y un emisor-sensor ´ptico que genera un haz de luz perpendicular al disco (ver o figura 5.9 Control Optimo Cuadr´tico del P´ndulo Invertido a e 157 ’ Pendulo Codificador ’ optico Ruedas Figura 4.16: Esquema del carro.13).17: Codificador optico. ´ El proceso de sensado es el siguiente.

seg´n n u sea positivo o negativo el sentido de giro del disco (ver figura 5. mientras que el sensor del servomotor posee 512 ranuras. posici´n angular del eje del motor: (2π/512)×NP (antes o de la reducci´n). Este amplificador est´ coma puesto por un modulador PWM de baja potencia (el LM3524). En conclusi´n. Dicho haz activa el transistor e o ´ptico del emisor-sensor. o Para el motor. se tiene que aplicar un factor de reducci´n cuyo valor o num´rico se da en la secci´n 3. Estos dos trenes de pulsos pasan luego a un decodificador de cuadratura LS7083 que genera las se˜ales Clock Up o Clock Down.13). o El Amplificador de Potencia Un amplificador de potencia basado en la modulaci´n PWM (”Pulse o Width Modulation”) alimenta al servomotor D. e o El codificador optico 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. generando un pulso de corriente que se constituye as´ en la entrada a un contador de pulsos.2.6. o mediante una se˜al proveniente de la computao n dora personal (ver figura 4. es decir. Las se˜ales Clock Up y Clock Down alimentan a un contador Up/Down de 16 n bits compuesto por 4 contadores 74LS193 de 4 bits conectados en cascada.14). Tambi´n existe circuiter´ adicional para generar la tensi´n e ıa o de disparo en cada conmutador Mosfet.C. Hay que tomar en cuenta adem´s que el codificador incorporado en a el motor es solidario al eje primario. posici´n angular de la varilla: (2π/256) × NP . Para obtener la posici´n angular a partir del n´mero de pulsos o u o NP dados por los contadores. ´ ıa de modo tal que para cada sensor tenemos una salida de 16 bits que se almacena en un registro. para obtener el angulo de giro ´ en el eje de salida. El n´mero de ranuras que posee el ı u sensor de la varilla es 256. la cuenta almacenada en los o contadores es una funci´n lineal proporcional a la posici´n angular del eje o o del disco. Los dos codificadores opticos poseen la circuiter´ descrita anteriormente.158 ´ Control Optimo permiten el paso de luz a trav´s del disco. podemos usar la siguiente relaci´n: Para la varilla. de acuerdo al sentido de giro del disco. La selecci´n entre una u otra salida binaria se realiza por medio de la o habilitaci´n de un registro. una l´gica o digital de disparo y un conmutador amplificador tipo H implementado con cuatro Mosfets. .

ıa n . • bits 0. La interconexi´n de la tarjeta de adquisici´n de datos con el o o o amplificador y los sensores se realiza en la forma siguiente: Puerto A: recibe los 8 bits menos significativos del sensor.´ 4. Puerto B: recibe los 8 bits m´s significativos del sensor. a 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. o La Tarjeta de Adquisici´n de Datos Lab-PC+ o La tarjeta de adquisici´n de datos Lab-PC+ de National Instruments es o la interfaz empleada para el env´ de la se˜al de control y para la adquisiıo n ci´n de datos. DAC0: env´ la se˜al de control. ıa n OUTB0: env´ la se˜al de reloj de muestreo.5 y 6: no usados.9 Control Optimo Cuadr´tico del P´ndulo Invertido a e Clock UP 74HC Clock Down 193 Canal A LS7083 Canal B 159 4 bits Puerto digital PA 8 bits 4 bits 74HC 193 4 bits Puerto digital PB 8 bits 4 bits 74HC 193 R L 74HC 193 Figura 4.4. • bit 7: recibe la se˜al de reloj de la frecuencia de muestreo Fs n generada por OUTB0. • bit 3: reinicia (“reset”) los contadores.18: Sensado de la posici´n.

160 Selecci´n de la Frecuencia de Muestreo o ´ Control Optimo Para el funcionamiento correcto del sistema de control optimo discreto ´ se requiere la selecci´n adecuada de la frecuencia (o per´ o ıodo) de muestreo. En o la primera.7. una frecuencia mayor de 10 Hz. Tal selecci´n debe tomar en consideraci´n la respuesta deseada del sistema o o de lazo cerrado y el tiempo que pueda tomar el programa para hacer todos los c´lculos necesarios por cada lazo de control (y para cada per´ a ıodo de muestreo). Los programas implementados tuvieron una duraci´n promedio o por bucle de 430 µs.H y FUNC PEN. Si n n asumimos inicialmente que las respuestas a obtener deben poseer un tiempo de levantamiento de un segundo. 4. Implementaci´n del Software de Control o La implementaci´n del algoritmo de control se realiza en dos fases. tendremos a que escoger un per´ ıodo de muestreo menor que 0. o lo que es lo mismo.CPP. a para generar gr´ficos).9. los cuales utilizan la librer´ de . es decir. aplicando esta regla pr´ctica. o un per´ ıodo de muestreo de 5 ms.1 segundos. lo que permite procesar el sistema con frecuencias de muestreo de hasta 2. es decir. Como regla pr´ctica. se calculan fuera de l´ ınea (“off-line”) la matriz de ganancia de realimentaci´n de estados K y la matriz de ganancia del observador Ke (emo pleando por ejemplo. MATLAB). podemos escoger un per´ a ıodo de muestreo que sea 10 veces menor que la duraci´n de un ciclo de oscilacion senoidal amoro tiguada de la se˜al de salida del sistema en lazo cerrado (para el caso de n respuesta subamortiguada). Todos los datos generados pueden ser almacenados en archivos para su posterior lectura. an´lisis y procesamiento (por ejemplo. podemos escoger un per´ ıodo de muestreo 10 veces menor que el tiempo de levantamiento.3 KHz. Tales matrices se guardan en un archivo para que luego puedan ser usadas por el programa (escrito en c´digo C) que o va a controlar el proceso. Tomando en cuenta todas estas consideraciones se escogi´ una frecuencia de muestreo de Fs = 200 Hz. el tiempo transcurrido hasta que ocurra el primer cruce entre la se˜al de referencia y la se˜al de respuesta del sistema. Para el caso de respuesta sobreamortiguada. a El Archivo de Interfaz Para facilitar el uso de la tarjeta de adquisici´n de datos se crearon los o ıa archivos FUNC PEN.

NivelClock: lee el bit 7 del puerto C y recibe el clock de muestreo de OUTB0.9 Control Optimo Cuadr´tico del P´ndulo Invertido a e 161 funciones NI-DAQ [25].19.H consta de las siguientes funciones: ConfigurarHardware: inicializa la tarjeta Lab-PC+. EnviarVoltaje: restringe y env´ voltajes al DAC0 del Lab-PC+. con el fin de borrar el contenido de los contadores de los sensores. El Programa de Control El programa de control se denomina PENDOI4. con el fin de seleccionar la lectura del sensor de la varilla o la del sensor del motor. . En el ambiente de trabajo de Borland C/C++. Bucle del algoritmo de control a) b) c) d) 3.CPP forman en conjunto el proyecto PENDOI4.PRJ. El archivo FUNC PEN. Los programas implementados tuvieron una duraci´n promedio por bucle de o 430 µs. o Medici´n de las salidas. o Observaci´n de estados.H. o C´lculo y aplicaci´n de la se˜al de control.´ 4. los archivos FUNC PEN. FUNC PEN. A continuaci´n comentamos brevemente cada uno de los puntos o anteriores. o 2. ResetContadores: coloca un 1 o un 0 en el bit 3 del puerto C. a o n Almacenamiento de las respuestas. Inicializaci´n o a) Inicializaci´n de la tarjeta de adquisici´n de datos. ıa 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. El programa PENDOI4.CPP. o o b) Inicializaci´n de variables. Detecci´n del flanco de subida del clock. as´ como tambi´n funciones de lectura y escritura ı e de puertos. o c) Establecimiento de la posici´n cero del carro y de la varilla. El diagrama de flujo del programa se muestra en la figura 4.CPP comprende las partes siguientes: 1. configura los puertos y especifica la frecuencia del clock de muestreo.CPP y PENDOI4.

19: Diagrama de flujo del programa de control.162 ´ Control Optimo INICIO INMICIALIZA: .VARIABLES BORRA CONTADORES ESTABLECIMIENTO DE LA POSICION CERO DEL CARRO Y LA VARILLA TIEMPO < TIEMPO LIMITE SI DETECTA FLANCO DE SUBIDA DEL PULSO DE RELOJ NO FIN NO SI MIDE SALIDAS ESTIMA ESTADOS ~ CALCULA SENAL DE CONTROL ~ COMPENSA SENAL DE CONTROL ~ ENVIA SENAL DE CONTROL ACTUALIZA VARIABLES ARCHIVA DATOS Figura 4. .TARJETA DE ADQUISICION DE DATOS .

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

else *y1=y1_ant-(contC_ant-contC_act)*2. si obtenemos en el contador un valor de 65534. else *y1=y1_ant+(contC_act-contC_ant)*2.*Nm*rp. valor bastante lejos del valor m´ximo del a contador.*PI/256. y como ´ste es e mayor que 32768. La siguiente rutina en c´digo C toma en cuenta las consideraciones anteriores: o /*lee posicion del carro*/ contC_act=LeerSensor(MOTOR).*Nm*rp. El problema a resolver aqu´ es c´mo reconocer si nos encontramos ı o ante un recorrido positivo o negativo justo cuando el contador comienza a decrementar (partiendo de 0). y1_ant=*y1. 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.*PI/512. Luego.). contVa=(contVa>32768)?-1*(65536-contVa):contVa.*PI/512.*Nm*rp.*PI/512. *y0=contVa*(2. consideraremos o que estamos ante un valor negativo si el contenido de los contadores es mayor que 32768 (la mitad del valor m´ximo que pueden contener). if(contC_act<contC_ant) { if((contC_ant-contC_act)>32768) *y1=y1_ant+(65536-contC_ant+contC_act)*2. Para resolver esta situaci´n. Pero adem´s. entonces representa una posici´n negativa.*PI/512. . La rutina que realiza esta lectura esta dada por: /*lee angulo Varilla*/ contVa=LeerSensor(VARILLA). o La lectura de la posici´n del carro es un caso diferente. } contC_ant=contC_act. porque a una o determinada distancia de recorrido. Por a ejemplo.*Nm*rp. los contadores se saturan. previamente debemos de discernir si el valor le´ a ıdo del contador se trata de un incremento o un decremento. en donde contVa es la variable que guarda el valor del contador e y0 guarda la posici´n angular en radianes. su equivalente o es: −(65536−65534) = −2. para obtener la posici´n angular hacemos: o −2 × 2π/256 rad. } else { if((contC_act-contC_ant)>32768) *y1=y1_ant-(65536-contC_act+contC_ant)*2.164 ´ Control Optimo a un incremento de 256 puntos.

i++) Xe[i]=G_KeCX[i]+H[i]*u+KeYant[i]. KeYant[i]=S. } /*calcula KeYant*/ for(i=0. y antes de iniciar la rutina de control. Yant[0]=X0.9 Control Optimo Cuadr´tico del P´ndulo Invertido a e 165 en donde contC_act es el valor actual del contador. G KeC[ ][ ] = G − Ke C H[ ] = H. . G_KeCX[i]=S. Observador de Estados de Orden Completo La ecuaci´n que debemos implementar para el observador de estados de o orden completo est´ dada por la ecuaci´n (4.p++) S=Ke[i][p]*Yant[p]+S.p<=3. } /*calcula Xe(K+1)[i]*/ for(i=0. En dicho programa utilizaremos la siguiente notaci´n para las variables: o Xe[ ] = x(k). for(p=0. Ke[ ][ ] = Ke .. para ser luego guardada en un archivo. Yant[1]=X2. podemos colocar el a valor de (G − Ke C) en una sola variable que pueda ser calculada fuera de l´ ınea (“off-line”). ˜ Y ant[ ] = y(k − 1). u = u(k) La rutina en lenguaje C que implementa la ecuaci´n del observador es: o /*calcula G_KeC*Xe */ for(i=0.i<=3.31): a o ˜ ˜ x(k + 1) = G˜ (k) + Hu(k) + Ke [y(k) − C x(k)] x ˜ o por la ecuaci´n (luego de factorizar el vector estimado x(k)): o ˜ x(k + 1) = (G − Ke C)˜ (k) + Hu(k) + Ke y(k) x Para ahorrar c´lculos innecesarios en el programa.i++) { S=0.p++) S=G_KeC[i][p]*Xe[p]+S. contC_ant es el valor anterior del contador. leerla desde el programa en C.p<=1..i++) { S=0.i<=3. for(p=0.i<=3. y1 es la variable que guarda la posici´n actual del o carro en metros e y1_ant es el valor anterior de y1.´ 4.

y la rutina en lenguaje C para la compensaci´n de la zona muerta en el o motor est´ dada por: a if(u <0) if(u >0) if(u==0) v=-DeadZone. a saber: u(k) = −Kx(k) + KI v(k) v(k) = v(k − 1) + r(k) − y(k) En el programa en c´digo C utilizamos la siguiente notaci´n: o o Xe[ ] = x(k). Para aplicar la se˜al de control emplearemos: n Enviarvoltaje(u+v+offset). u=KI*V-K[0]*Xe[0]-K[1]*Xe[1]-K[2]*Xe[2]-K[3]*Xe[3].42). v=+DeadZone. V ant = v(k − 1). V_ant=V..40) a n y (4. an´lisis y procesamiento.H Funciones para manejar la tarjeta de adquisicion de datos Lab-PC+ en conjunto con la interfaz del sistema del pendulo invertido*/ #if !defined (__FUNC_PEN_H) #define __FUNC_PEN_H void ConfigurarHardware (float). a Listado de los Programas Fuente /*FUNC_PEN. Xe[2] = y(k) u = u(k) Las ecuaciones (4.40) y (4. K[ ] = K. KI = KI . V = v(k).166 C´lculo de la Se˜ al de Control a n ´ Control Optimo Para el c´lculo de la se˜al de control utilizaremos las ecuaciones (4.42) se representan en el programa en C por: V=V_ant+r-Xe[2]. ı luego cada matriz es almacenada en un archivo para su posterior lectura. v=0. /*configurar hardware y establecer la frecuencia del clock de . r = r(k). Almacenamiento de las Respuestas Las respuestas hasta aqu´ obtenidas se guardan cada una en una matriz.

h" #include "nidaq. periodoTimer = (int)(2000000/frec). /*env\’{\i}a voltaje al DAC de la tarjeta*/ unsigned int LeerSensor(int).3. /*deviceNumber = 1 ctr = 0 => clock de muestreo timer0 MODE = 3 => selecciona onda cuadrada con duty cycle de 50 % COUNT = periodoTimer => periodo de la onda binBcd = 1 => selecciona el contador binario de 16-bits */ . 167 USE_LAB().h" #include <dos.&deviceCode). /*inicializa el hardware y el software de la libreria NI-DAQ deviceNumber = 1 deviceNumberCode devuelve el tipo del dispositivo inicializado */ ICTR_Setup(1. deviceCode.h> #define DAC0 0x264 #define PORTA 0x270 #define PORTB 0x271 #define PORTC 0x272 void ConfigurarHardware (float frec) { int periodoTimer.CPP Trabaja en conjunto con FUNC_PEN.9 Control Optimo Cuadr´tico del P´ndulo Invertido a e la tarjeta de interfaz*/ void EnviarVoltaje (float).1).´ 4.H */ #include "func_pen.periodoTimer.0. /*lee sensor=0 contadores del lado izquierdo lee sensor=1 contadores del lado derecho */ int NivelClock (). /*resetea los contadores que estan conectados a los sensores*/ #endif /*FUNC_PEN. /*esta funcion ayuda a mantener el tama~no de la aplicacion en DOS ante un mayor crecimiento debido a la inclusion de porciones de la libreria NI-DAQ que no son necesarias para el dispositivo de adquisicion que se esta utilizando */ Init_DA_Brds(1. /*devuelve el nivel del clock 0 o 1 */ void ResetContadores().

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

h> #include <conio. Nm 1/19.´ 4.Ke[4][2].0. void inicializaMatrices() { .*PI/512.0648 Fs 200.Xe_a[4]={0.y1.0}.0.inportb(PORTC)&(255-8)). float y0.CPP Programa principal: pendulo invertido con estimacion de estados de orden completo. float r=0. for(int i=0. } 169 /*PENDOI4..9 Control Optimo Cuadr´tico del P´ndulo Invertido a e { outportb(PORTC.KI. El programa carga los datos del archivo pendoi.dat*/ #include <assert.5 float G_KeC[4][4].1 offset 2. DeadZone 0.i<10000.h> #include <stdio.h> #include <stdlib..h> #include <time.h" #define #define #define #define #define #define #define #define #define #define #define #define #define #define PI M_PI IZQ 0 DER 1 VARILLA IZQ MOTOR DER A_RADIANES 2.0}.H[4].h> #include <math.inportb(PORTC)|8).0.741 rp 0./Fs) tsimul 60. float K[4].36 SP 1.29 //2. float Xe[4]={0.h> #include "func_pen.0. outportb(PORTC.i++). Ts (1. float u=0.

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

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

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

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

) getch()) == 27) break. gotoxy(5. 59) r = 1.08) break.k { if(kbhit()) { if((tecla = if(tecla == } 0. do { while(!kbhit()) { MideSalidas(&y0. MideSalidas(&y0. ck_act = NivelClock(). while(((tecla = getch()) != 59) && (tecla != 27)) . ck_ant = ck_act. . printf("varilla en grados : %f".15).5. printf("varilla en radianes: %f". gotoxy(5.13). ResetContadores()./PI).174 ´ Control Optimo printf("1) Ubicar el carro en el centro del carril\n4) Ubicar la varilla en posicion vertical y mantenerla asi hasta presionar F1\n").74) break.11). yact=y1. printf("varilla en grados : %f".y0). if(y1 < -0. t)./PI).&y1). gotoxy(5. if((ck_ant == 0) && (ck_act == 1)) { yant=y1.y0*180. t = 0. } } while(((tecla = getch()) != 60)&&(tecla != 27)). if(tecla == 27) goto FIN. printf("\n\nColocar la varilla en la posicion inicial deseada\n Presionar F2 para comenzar el control\n").printf("Tiempo: %f". u = for(k = 0.y0*180..&y1). if(tecla == 27) goto FIN..10). r = 0. <= n.. gotoxy(5. if(y1 > 1.

x4_[k] = Xe[3]. } fclose(pfichero).4. en metros : %f".17). x2_[k] = Xe[1]. /*saturacion*/ if(u < -1.4) u = 1.4. 175 /*guarda tiempo*/ pfichero = fopen(tiempo.y1). y_0_[k] = y0. c = fwrite(&t.t += Ts. y_1_[k] = y1. V_ant = V. /*Encuentra Control*/ /*u(k+1)*/ V = V_ant+r-Xe[2]. if (pfichero == NULL) printf("\nNo se puede abrir %s\n".1.k++) { t = k*Ts.//Xe_act[3]/rp.sizeof(float). vel = (yact-yant)/Ts/rp.printf("carro EstimaEstados(y0. .9 Control Optimo Cuadr´tico del P´ndulo Invertido a e gotoxy(5. k++. x3_[k] = Xe[2]. x1_[k] = Xe[0]. if(u == 0)v = 0. if(u > 0) v = +DeadZone.//accion integral u = KI*V-K[0]*Xe[0]-K[1]*Xe[1]-K[2]*Xe[2]-K[3]*Xe[3]. /*Compensa zona muerta*/ if(u < 0) v = -DeadZone."wb"). EnviarVoltaje(u+v+offset).y1). else { for(k = 0. /*guarda datos en arrays*/ u_[k] = u.tiempo).4) u = -1.pfichero). if(u > 1.´ 4. } } FIN: EnviarVoltaje(offset)..k<n+1.

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

U_).9. es decir. } /*guarda y1 posicion del carro*/ pfichero = fopen(U_.8. fclose(pfichero).21 y 4. printf("\nelementos escritos en %s:%d\n". fclose(pfichero).pfichero)."wb"). Resultados Experimentales Los resultados experimentales se obtuvieron con una se˜al de referenn cia escal´n de 1.5 m para la posici´n del carro. En los resultados experimentales se observa que la posici´n del carro.c).sizeof(y_0_). que o es la se˜al de realimentaci´n del servosistema. la presencia de una oscilaci´n o e o estacionaria (ciclo l´ ımite) que podr´ reducirse usando sensores m´s precisos ıa a . Los resultados del control o o o ´ptimo cuadr´tico del sistema de p´ndulo invertido con observador de orden a e completo se muestran en las figuras: 4. Observar en la respuesta estacionaria.sizeof(u_). tal como estaba propuesto en las especificaciones de dise˜o del sistema de control.U_. } /*guarda y1 posicion del carro*/ pfichero = fopen(sal_car.pfichero).sal_car.9 Control Optimo Cuadr´tico del P´ndulo Invertido a e 177 c=fwrite(y_0_. 4. printf("\nelementos escritos en %s:%d\n". else { c=fwrite(u_.pfichero). } 4. if (pfichero == NULL) printf("\nNo se puede abrir %s\n". if (pfichero == NULL) printf("\nNo se puede abrir %s\n". printf("\nelementos escritos en %s:%d\n". La n posici´n angular del p´ndulo logra estabilizarse alrededor de cero.n+1.n+1.sizeof(y_1_).22."wb").20. sigue a la se˜al de referencia n o n en menos de 6 segundos y con sobreamortiguamiento m´ ınimo. } getch(). else { c=fwrite(y_1_.n+1.sal_car). o e se llega a posicionar en forma vertical. fclose(pfichero).´ 4. tanto en la posici´n del carro o como en la posici´n angular del p´ndulo.sal_var.c).c).

5 0 ángulo (rad) 2 4 6 8 10 12 tiempo (s) 14 16 18 20 Figura 4.3 −0.3 0.5 0.2 0.5 0 −0. ´ e o ángulo del péndulo (medición directa) 0.20: Control optimo del p´ndulo invertido: posici´n del carro.4 0.178 ´ Control Optimo posición del carro (medición directa) 2 1.5 posición (m) 1 0.1 −0.21: Control optimo del p´ndulo invertido: posici´n angular del ´ e o p´ndulo.2 −0.1 0 −0. e .4 −0.5 0 2 4 6 8 10 12 tiempo (s) 14 16 18 20 Figura 4.

4.1.8. de manera tal que o .22: Control optimo del p´ndulo invertido: se˜al de control. ´ e n (con un tama˜o de paso de detecci´n menor).5 entrada (v) 0 −0. o 4. Formulaci´n del Problema o Dado el sistema gr´a-puente. lo que est´ bastante fuera de la zona o lineal impuesta por el modelo.5 −1 −1. ´ Control Optimo Cuadr´tico de la Gr´a-Puente a u En esta secci´n nos ocupamos del dise˜o del control optimo cuadr´tico o n ´ a del proceso gr´a-puente empleando el procedimiento de dise˜o presentado u n en la secci´n 4. Sin embargo.10.5 0 2 4 6 8 10 12 tiempo (s) 14 16 18 20 Figura 4.C. el sistema de control dise˜ado responde en forma adecuada para desviaciones de la n a posici´n de la varilla de hasta ± 20o . controlado por su voltaje de armadura.5 179 1 0. n o El algoritmo de control lineal empleado requiere que las variables no salgan de la zona lineal impuesta por el modelo lineal.´ 4.10.10 Control Optimo Cuadr´tico de la Gr´ a-Puente a u entrada 1. se desea dise˜ar un servocontrolador que sea can paz de trasladar al carro a una posici´n determinada. conformado por una varilla que cuelga liu bremente de un carro impulsado por un servomotor D.

% MODELOS LINEALES CONTINUO Y DISCRETO . el siguiente programa disopt3.767.38.23. y siguiendo el o procedimiento desarrollado en las subsecciones 4. n = 1/19. Jp = mp*rp^2/2. J2 = Jeq/(n^2*rp^2). El dise˜o del sistema de control est´ basado en la teor´ n a ıa de control optimo cuadr´tico.9.m SISTEMA DE CONTROL OPTIMO PARA LA GRUA-PUENTE clear all % PARAMETROS DEL PROCESO mc = 0.2. Cabe anotar que para alcanzar las especificaciones de dise˜o planteadas. y las salidas del servosistema son la posici´n angular del p´ndulo y la trayectoria horizontal del carro.C.063095.4 y 4. Jv = mv*lv^2/3.741. me = 0. La entrada al proceso (la se˜al de control) es ´ a n el voltaje de armadura del servomotor D. M1 = mc + me + mv.9. 4. Kx = Km/(Ra*n*rp).m determina el modelo lineal discreto. d = ((M1+J2)*J1-M2^2).2.9. a44 = -J1*Bx/d. Jeq = Jm + n^2*(Jo + Jp). 4. Para una frecuencia de muestreo de o o 200 Hz y asumiendo retenci´n de memoria de orden cero. o 4. M2 = me*le + mv*lv/2. lv = 0. Beq = Bm + n^2*Bo. Jo = 0.92.9. Se o e desea un tiempo de estabilizaci´n de la posici´n del carro de aproximadao o mente 6 segundos con el menor sobreimpulso posible. Bm = 1.5. y ´ ´ simula el sistema de control para la gr´a puente. rp = 0. Kb = 31. J1 = Je + Jv. Km = 31. mp = 0.2. 4. a21 = -(M1+J2)*M2*g/d.9596e-6. Cabe recalcar que la simuu laci´n emplea el modelo no lineal de la planta. g = 9.8342e-6. Bo =0. se requiere seleccionar n adecuadamente las matrices de ponderaci´n. Simulaci´n del Sistema Controlado o La determinaci´n del modelo matem´tico del proceso gr´a-puente se o a u trat´ con amplitud en la secci´n 3. calcula las matrices de ganancia del controlador optimo y del observador optimo. Jm = 1.3.053e-3.071e-3.0648.81. % disopt3. le = 0. a41 = -M2^2*g/d.10. Bx = Beq/(n^2*rp^2) + Kb*Km/(n^2*rp^2*Ra).25. mv = 0. b41 = J1*Kx*KA/d. a24 = -Bx*M2/d.180 ´ Control Optimo la oscilaci´n en la varilla sea m´ o ınima.24 y 4. KA = 14. b21 = Kx*M2*KA/d.9. Je = me*le^2.2. dado que la varilla se balancea en el mismo plano que la trayectoria del carro. Los resultados se muestran a o continuaci´n del programa y los resultados gr´ficos se ilustran en las figuras o a 4. Ra = 7. El problema en consideraci´n es de o dos dimensiones.

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

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

9.3116 −0.9. Cabe anotar que el hardware del sistema y la estructura del software es com´n.3665].2891 0.0061 0.9508 −0.0049  0.0050 1.0061 −0.9998  −0.0049 0 0 0 0 1.  −0.0000 0 −1.4030 −0.0941  . tanto para el p´ndulo invertido como para la gr´a-puente.0000 0  −0.2257 −3.0000    .0019  0.9936  0.10. El Hardware y el Software del Sistema de Control La implementaci´n del hardware.4202 0.9.0002 0.9206 10.0000 −0.2596 −4.4030 −0.0000    ˜ = 104 ×  P   0 0 1.0000 0 0 1 0 0.1462   H=  0.1280   0.0013 K= 8.0002 0.10 Control Optimo Cuadr´tico de la Gr´ a-Puente a u 183 0.0745 0.0000 0.6519 KI = 0.CPP (descrito en la subsecci´n 4.0005 −0.0002             1.7) para crear el software de control del proceso o gr´a-puente.0982 4. as´ como el dise˜o del software del o ı n sistema de control.27 y 4. respectivamente.1481 −0.9998 0.0004  0.7068 8.0030 ˜ K= K −3.0000 0.0019 0. u e u Basta cambiar de signo en algunas sentencias del archivo PENDOI4.0002 −0.0102  2.28.9636 0.7.0765 −0. u .0300 0.1836 Ke =   −0. fueron tratadas en las subsecciones 4.9508  0.6 y 4.0055 −1.0972 G=  0.0000 0 0 1.0050 0.0049 0.2891 0.0000 −0.´ 4.0765  C=    ˜= G   1.0004 −0.5186 1.0963 0.0002  0.      ˜ = H   −0.0995 0.0745 −KI −0.2257 0.3116 −0.0002 0.0030 1.0300 −0.4202 0. 0.0002 0.3465  37.5668 −0. 4.2907 1.3.0000 0.0000 0.7068 −0.1497 0.

24: Simulaci´n del sistema gr´a-puente: posici´n angular de la vao u o rilla.2 0.3 −0.23: Simulaci´n del sistema gr´a-puente: posici´n del carro.4 0 Posición angular de la grúa puente 2 4 6 8 10 Tiempo 12 (s) 14 16 18 20 Figura 4.4 0.8 1.4 1.2 0 0 ´ Control Optimo 2 4 6 8 10 Tiempo 12 (s) 14 16 18 20 Figura 4.6 0. .1 0 −0.184 1.1 −0.6 1.8 0. o u o 0.2 −0.3 0.2 Posición del carro 1 0.5 0.4 0.

2 0 −0.´ 4.10 Control Optimo Cuadr´tico de la Gr´ a-Puente a u 1.2 0 2 4 6 8 10 Tiempo 12 (s) 14 16 18 20 Figura 4.5 posición (m) 1 0. ´ u o .8 0.5 0 2 4 6 8 10 12 tiempo (s) 14 16 18 20 Figura 4.5 0 −0.2 1 Señal de control u 0.26: Control optimo de la gr´a-puente: posici´n del carro.4 0.25: Simulaci´n del sistema gr´a-puente: se˜al de control.4 185 1. o u n posición del carro (medición directa) 2 1.6 0.

´ u n .27: Control optimo de la gr´a-puente: posici´n angular del p´ndulo.5 1 0.28: Control optimo de la gr´a-puente: se˜al de control.5 −1 −1.5 0 2 4 6 8 10 12 tiempo (s) 14 16 18 20 Figura 4. ´ u o e entrada 1.6 0.2 ángulo (rad) 0 −0.2 −0.186 ´ Control Optimo ángulo de la varilla (medición directa) 0.4 −0.6 0 2 4 6 8 10 12 tiempo (s) 14 16 18 20 Figura 4.5 entrada (v) 0 −0.4 0.

que es la se˜al de realimentaci´n del o n o servosistema. . Sin embargo.5 m para la posici´n del n o o carro. se comprob´ que el sistema de control dise˜ado responde en forma o n adecuada para una desviaci´n de la posici´n de la varilla de ± 20 grados. Como en el caso del p´ndulo invertido.4. La selecci´n a o del tiempo de muestreo es a conveniencia del dise˜ o. k2 = 500000. sigue a la se˜ al de referencia en menos de 6 s y con sobreamorn tiguamiento moderado. o Problema 4. se llega a posicionar en forma vertical hacia abajo.26. en uno o m´s archivos con extensi´n u a o m escritos en c´digo MATLAB.11.1 presenta las ecuaciones que gobiernan la din´mica del sisa tema de suspensi´n de un bus (ver figura 3. n % p3opt2. Igualmente. en los resultados experimentales e se observa que la posici´n del carro. la soluci´n a los o problemas se encuentra. m2 = 320.11 Problemas Resueltos 187 4. b2 = 15020.12). tal como estaba propuesto en las especificaciones de dise˜o del sistema de control. y luego de alrededor de 20 segundos.4. Problemas Resueltos En la secci´n problemas resueltos de los cap´ o ıtulos 4 al 8. pr´cticamente deben desaparecer. seg´n el caso.1 clear all % PARAMETROS DEL PROCESO m1 = 2500. La posici´n angular del p´ndulo logra estan o e bilizarse alrededor de cero.10. el algoritmo de control lineal empleado requiere que las variables no salgan de la zona lineal impuesta por el modelo lineal.1 El problema 3. b1 = 350. 4.m SOLUCION DEL PROBLEMA 4. Dise˜ar un sistema de control o n o ´ptimo cuadr´tico estacionario para lograr el objetivo de control siguiente: a la salida del proceso y = x2 − x1 (referencia nula) no debe presentar sobreimpulsos mayores que el 5 %. Resultados experimentales Los resultados experimentales que se muestran a continuaci´n se obtuo vieron con una se˜al de referencia escal´n de 1. k1 = 80000. o o que es bastante fuera de la zona lineal impuesta por el modelo. es decir. Los resultados del control optimo cuadr´tico del sistema gr´a-puente ´ a u con observador de orden completo se muestran en las figuras: 4. las oscilaciones originadas por un disturbio escal´n de 10 cm (provocada por o imperfecciones en la pista).

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

11 Problemas Resueltos xlabel(’Tiempo en segundos’) ylabel(’Control u (N)’) print -deps -f p3opt2 189 5 Posición y (m) x 10 −3 0 −5 −10 0 x 10 −4 20 40 60 80 100 Tiempo en segundos 120 140 160 1 Control u (N) 0.2 presenta las ecuaciones que gobiernan la din´mica longitudia nal de un avi´n comercial volando a velocidad de crucero (altura y velocidad o constantes). Problema 4.4 0.4. a o o Se pide dise˜ar un sistema de control optimo cuadr´tico estacionario que n ´ a genere una fuerza de control. de modo que la salida del proceso (el angulo ´ de inclinaci´n θ) presente un sobreimpulso menor al 10 % y un tiempo de o .2 0 0 20 40 60 80 100 Tiempo en segundos 120 140 160 Figura 4.2 El problema 3.29: Salida controlada y = x1 − x2 y fuerza de control u correspondientes al problema 4. El objetivo de control es dise˜ar un n o autopiloto que manipulando el angulo δe del deflector de elevaci´n.1. controle ´ el ´ngulo de inclinaci´n del avi´n. El control del angulo de inclinaci´n θ del avi´n (ver figura 3.8 0.6 0.14) ´ o o es un problema longitudinal a resolver.

K = [KK(1) KK(2) KK(3)].-C*G 1]. con error en estado estable nulo. den1]=ss2tf(A.1. n % p4opt2 SOLUCION DEL PROBLEMA 4. B=[0.-0.T).H.D). v = v + Ref . % PROCESO DISCRETO T=0.D).0139 -0. D=[0].B.Az]=ss2tf(G.0203. % EQUACION DE RICCATI P = diag(0. for k=1:N r(k)=0.H]=c2d(A.C. x = G*x + H*U.2 clear all % ECUACION DE ESTADO DEL PROCESO A=[-0. v=0.190 ´ Control Optimo estabilizaci´n menor que 3 s.232.0]. U = .7 0]. [G.7 0. La selecci´n o o del tiempo de muestreo es a conveniencia del dise˜ o.K*x + KI*v.1. for i = 1:40 P = Q + G1’*P*G1 . % TIEMPO DE MUESTREO [num1.B.0 56. x=[0.426 0.-C*H].0. end % CALCULO DE LA GANACIA K DEL CONTROLADOR KK = inv(R+H1’*P*H1)*H1’*P*G1. % SIMULACION N = 100. % INGRESO DE PESOS Q = [1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ]. Ref=r(k).313 56.Y.1).G1’*P*H1*inv(R+H1’*P*H1)*H1’*P*G1.0]. KI = -KK(4). % CONTROL OPTIMO ESTACIONARIO CON ACCION INTEGRAL G1 = [G zeros(3. R = [1].0. Y=0.3). . [Bz. H1 = [H.C. C=[0 0 1].

1 0.11 Problemas Resueltos Y = C*x.4.05 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 ´ Figura 4.N). y(k) = Y.15 0. end % GRAFICOS t=linspace(0. u(k) = U. subplot(2.1) plot(t.15 Inclinación (rad) 0.2 0. .1 0.N*T.u(1:N)).2) plot(t.05 0 −0.2. grid xlabel(’Tiempo en segundos’) ylabel(’Angulo del deflector (rad)’) print -deps -f p4opt2 191 0.y(1:N)).30: Angulo de inclinaci´n θ controlada y angulo del deflector (se˜al o ´ n de control) correspondientes al problema 4.05 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Angulo del deflector (rad) 0. grid ylabel(’Inclinacion (rad)’) xlabel(’Tiempo en segundos’) subplot(2.1.1.

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

end % GRAFICOS t=linspace(0.u(1:N)).4 La figura 3.y(1:N)). los cambios de velocidad deben realizarse con un tiempo de estabilizaci´n menor que 10 segundos y con m´ o ınimo sobreimpulso. M3=2600. El problema a resolver es el control de velocidad del carro de m´quinas a mediante un sistema de control ´ptimo cuadr´tico.5. Simule una se˜al de ren ferencia que cambie la velocidad de 30 a 10 m/s y demuestre que se cumplen las especificaciones de dise˜ o.N*T.11 Problemas Resueltos KI = -KK(5).Y. x=[0. B3=10000. U = .0]. K23=100000.1) plot(t. u(k) = U.N).0. % MODELO DEL PROCESO A=[0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0 . v = v + Ref . Para garantizar a los o a pasajeros un viaje confortable. y(k) = Y. % SIMULACION N = 100. La selecci´n del tiempo de muestreo es a conn o veniencia del dise˜o.4. grid xlabel(’Tiempo en segundos’) ylabel(’Voltaje de control’) print -deps -f p5opt2 193 Problema 4. B12=500.20 muestra un monorriel de dos carros descrito en el problema 3.1. grid ylabel(’Posicion (m)’) xlabel(’Tiempo en segundos’) subplot(2.K*x + KI*v. x = G*x + H*U. Y=0. for k=1:N r(k)=0.1. El error en estado estable debe ser nulo. B1=5000. n % p7opt2 SOLUCION DEL PROBLEMA 4. B2=10000.4 close all % PARAMETROS DEL PROCESO: M1=1300. K12=100000. v=0. Ref=r(k). subplot(2. M2=2600.2) plot(t. Y = C*x.5. B23=500.0.

2 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 40 Voltaje de control 20 0 −20 −40 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Figura 4. alfa = 1. H1 = [H. % MODELO LINEAL DISCRETO T = 0.D).’zoh’).3.:)*G 1].B. B=[0 1 0 0 0 0]’. o 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].H. [numc.T.4 0. % ADICIONANDO ACCION INTEGRAL G1 = [G zeros(6.D]=c2dm(A. D=[0.0].denc]=ss2tf(A. % per´odo de muestreo ı [G.6 Posición (m) 0.C.D.1).B.0.C.-C(1. % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 . % CONSTANTE TACOMETRICA C=[ 0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa].:)*H].-C(1.C.2.194 ´ Control Optimo 0.31: Posici´n de la bola y el voltaje de control para el problema 4.

22 muestra el proceso ascensor tratado en el problema 3.K*x + KI*v. lo que significa sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizaci´n menor que 10 s.5 La figura 3. KI = -KK(7). for k=1:N r(k)=20 + 10*sign(sin(0.N).1. Y = C(1. SEPARAMOS LA ACCION INTEGRAL K = [KK(1) KK(2) KK(3) KK(4) KK(5) KK(6)]. u(k) = U.R).1.P]=dlqr(G1.H1.Q. grid xlabel(’Tiempo en segundos’) ylabel(’Fuerza de control (N)’) print -deps -f p7opt2 195 % % % % Problema 4.2) plot(t. end GRAFICOS t=linspace(0. x=[0.4. La selecci´n del tiempo de o o muestreo es a conveniencia del dise˜o.1) plot(t.0.y(1:N).Y. Para no saturar al actuador (el o amplificador de potencia). v = v + Ref . Ref=r(k). y(k) = Y. subplot(2.0. la se˜al de control debe estar dentro del rango de n ± 200 volt. R = [10]. n . El problema a resolver es posicionar suavemente el ascensor en un piso determinado. OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr [KK.02*k)).0.0].r(1:N)).u(1:N)).N*T. grid ylabel(’Velocidad (m/s)’) xlabel(’Tiempo en segundos’) subplot(2. Y=0.11 Problemas Resueltos 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 100].:)*x. Dise˜ar un sistema de control optimo cuadr´tico estacionario de n ´ a posici´n que cumpla las especificaciones pedidas.6. x = G*x + H*U.0. v=0. U = . SIMULACION N = 500.t.

01].2 0 0 0 1 0 0 0 2 0 -2 0 5 0 0 -5]. 0]. % MODELO LINEAL DISCRETO T = 0.C. G1 = [G zeros(4.32: Velocidad del carro de m´quinas y la fuerza de control para el a problema 4.1). B=[10e-3.4.m SOLUCION DEL PROBLEMA 4.5 clear all % MODELO CONTINUO DE LA PLANTA A=[-0. % INGRESO DE PESOS Q = [1 0 0 0 0 0 100 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3].-C*H].C.D]=c2dm(A.196 30 Velocidad (m/s) 25 20 15 10 5 0 10 20 30 40 50 60 Tiempo en segundos 70 80 ´ Control Optimo 90 100 600 Fuerza de control (N) 400 200 0 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100 Figura 4. 0. 0. % PERIODO DE MUESTREO [G.D.H.B. D=[0].’zoh’). H1 = [H. R = [0.-C*G 1]. % ECUACION DE RICCATI .2. C=[0 1 0 0 ]. % p8opt2.T.

y(1:N). end CALCULO DE LA MATRIZ DE GANANCIA KK KK = inv(R+H1’*P*H1)*H1’*P*G1. % sistema no es observable SIMULACION N = 200. El objetivo de control . u(k) = U. grid xlabel(’Tiempo en segundos’) ylabel(’Voltaje de control’) print -deps -f p8opt2 197 % % % % % % Problema 4. for k=1:N r(k)=3*sign(sin(0. KK = dlqr(G1.4. Ref=r(k). if(U > 200) U = 200.1) plot(t.Q.02*k)). Y = C*x. rankNo = rank(No).H1. end x = G*x + H*U.0.1. y(k) = Y. v=0.1.2 muestra dos tanques id´nticos colocados en cascada. KI = -KK(5). x=[0. CALCULO DE LA MATRIZ DE OBSERVABILIDAD No = [C’ G’*C’ (G’)^2*C’ (G’)^3*C’].0].r(1:N)). La secci´n e o horizontal A=9 m2 de cada tanque es constante. end GRAFICOS t=linspace(0.6 La figura 2.0. for i = 1:40 P = Q + G1’*P*G1 .G1’*P*H1*inv(R+H1’*P*H1)*H1’*P*G1. U = . subplot(2.Y.4).2) plot(t.K*x + KI*v.t.11 Problemas Resueltos P = diag(0. Y=0. grid ylabel(’Posicion (m)’) xlabel(’Tiempo en segundos’) subplot(2.N*T.N).u(1:N)). elseif(U < -200) U = -200. v = v + Ref . SEPARAMOS LA ACCION INTEGRAL K = [KK(1) KK(2) KK(3) KK(4)].R).

0].81.198 4 2 0 −2 −4 0 ´ Control Optimo Posición (m) 5 10 15 20 25 Tiempo en segundos 30 35 40 100 Voltaje de control 0 −100 −200 0 5 10 15 20 25 Tiempo en segundos 30 35 40 Figura 4.2. % DISCRETIZACION DEL SISTEMA T = 0.B. % VERIFICANDO SI LA PLANTA TIENE ACCION INTEGRAL % eigG=eig(G). a11 = -((gam*((rho*g)^1/2))/(2*A*((H1eq)^1/2))).1. A=[a11 0 -a11 a11]. o n % p9opt2. El flujo de entrada (la se˜al de control) no debe sobrepasar n los 3 m3 /s. g=9.5.H]=c2d(A. D=[0].m SOLUCION DEL PROBLEMA 4.33: Posici´n del ascensor y la fuerza de control correspondientes al o problema 4. rho=1. C=[0 1].4. La deducci´n del modelo o linealizado del proceso se deriv´ en el ejemplo 2. B=[1. A=9.23. H1eq = Qo^2/(gam^2*rho*g). La selecci´n del tiempo de muestreo es a conveniencia del dise˜o. Dise˜ar un controlador o n o ´ptimo cuadr´tico estacionario con las especificaciones siguientes: tiempo de a estabilizaci´n menor que 20 s.6 clear all % DEERMINACION DE LAS MATRICES DE LA ECUACION DE ESTADO gam=0.T). es controlar la altura H2 empleando el flujo Qo . Qo=3. [G. sobreimpulso menor al 5 % y error nulo en o estado estable. % NO TIENE POLOS EN z=0. .

grid xlabel(’Tiempo en segundos’) ylabel(’Flujo de control (m^3/s)’) print -deps -f p9opt2 199 Problema 4.7 El proceso electromec´nico mostrado en la figura 3. end x = G*x + H*U.1.t. H1 = [H. u(k) = U.Q.N*T.4. % OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr [KK. if(U > 5) U = 5.-C*H].0]. % SEPARAMOS LA ACCION INTEGRAL K = [KK(1) KK(2)]. Dise˜ar un sistema de control optimo cuadr´tico estacionario n ´ a . elseif(U < 0) U = 0.-C*G 1]. v = v + Ref . Y = C(1. subplot(2. end % GRAFICOS t=linspace(0.N). % SIMULACION N = 200.02]. grid ylabel(’Nivel (m)’) xlabel(’Tiempo en segundos’) subplot(2. Ref=r(k).r(1:N)).1).R). U = . for k=1:N r(k)=3.P]=dlqr(G1. y(k) = Y.Y. % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [1 0 0 0 1 0 0 0 0.K*x + KI*v. R = [2]. x=[0. Y=0.26 se describe en el proa blema 3.H1.:)*x. KI = -KK(3).y(1:N).1.u(1:N)).2) plot(t.1) plot(t. v=0.11 Problemas Resueltos % ADICIONANDO ACCION INTEGRAL G1 = [G zeros(2.8.

% CONSTANTE ELECTROMOTRIZ (Nm/A) R = 12.Bc. % CONSTANTE TORSIONAL (Nm/rad) % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-1/(R*C) -1/C 0.. Cc = [0 0 1]. Bc = [1/(R*C).H.7 clear all % PARAMETROS GENERALES nn = 3.Dc. Dc = [0]. % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS % PARAMETROS DEL SISTEMA: J = 0. Kt = 0.34: Nivel controlado H2 y el flujo de control para el problema 4.01. % RESISTENCIA (Ohmios) C = 0. % CONDENSADOR (uF) L = 0.5 0 0 5 10 15 20 25 Tiempo en segundos 30 35 40 Figura 4. .01.8.01..200 4 3 Nivel (m) 2 1 0 0 ´ Control Optimo 5 10 15 20 25 Tiempo en segundos 30 35 40 1.6.m SOLUCION DEL PROBLEMA 4. % INDUCTANCIA DE LA ARMADURA (H) Kw = 1.’zoh’).0].5. % p11opt2. % PERIODO DE MUESTREO % MODELO LINEAL DISCRETO [G. % MOMENTO DE INERCIA DEL MOTOR (kgm2/s2) Ke =0.D]=c2dm(Ac.0.5 Flujo de control (m^3/s) 1 0. % nn: ORDEN DEL PROCESO..C.T.05.Cc. r: NUMERO DE SALIDAS NN = 7. para controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre ± 100 volt. r=1. T = 0.5.0 Kt/J 0]. Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke).

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

Problemas Propuestos Problema 4. grid xlabel(’Tiempo en segundos’) ylabel(’Voltaje de control’) print -deps -f p11opt2 ´ Control Optimo 10 Velocidad (rad/s) 5 0 −5 −10 0 5 10 15 20 Tiempo en segundos 25 30 40 Voltaje de control 20 0 −20 −40 −60 0 5 10 15 20 Tiempo en segundos 25 30 Figura 4.202 ylabel(’Velocidad (rad/s)’) xlabel(’Tiempo en segundos’) subplot(2.7. 4.8 Demostrar que el valor m´ ınimo de la funci´n de costo descrita en la ecuaci´n o o 4.u(1:N)).12.11): 1 1 J = xT (N )Sx(N ) + 2 2 N −1 xT (k)Qx(k) + uT (k)Ru(k) k=0 .35: Velocidad angular controlada y el voltaje de control para el problema 4.2) plot(t.1.

Las ecuaciones que describen la din´mica del a sistema son materia del problema 3. el sistema de control optimo debe ser capaz de minimizar sus efectos. a (a) Dise˜ar un sistema de control optimo estacionario para controlar el n ´ a ´ngulo de elevaci´n θ con las especificaciones siguientes: tiempo de o estabilizaci´n menor de 2 s.4. a Problema 4. Considerar disturbios unitarios actuando sobre el proceso multivariable. Para cada caso. Problema 4.10 El proceso columna de destilaci´n se describe en el problema 3. La selecci´n ´ o del tiempo de muestreo es a conveniencia del dise˜ o.1 horas.29.12.9 203 Las ecuaciones del modelo linealizado para controlar la posici´n del ca˜on o n´ montado en la torreta de un tanque (ver figura 3. en donde la carga no lineal posee ahora dos grados de o libertad con Lo = 2L1 /3 y Mo =0. sobreimpulso menor al 5 % y tiempo de estabilizaci´n menor o que 0.12 Problemas Propuestos est´ dada por la expresi´n: a o 1 Jmin = xT (0)P (0)x(0) 2 donde los argumentos nulos representan el tiempo discreto nulo inicial.11 La figura 3.31 muestra el proceso servomotor con carga no lineal descrito en la secci´n 3.9. sobreimpulso y error en estado estacionario o nulos. Dise˜ar un sistema de control optimo n ´ estacionario para controlar simult´neamente las posiciones θ y τ con m´ a ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso. La uni´n de la carga con el eje o del servomotor no es flexible. n Problema 4. pero en este caso para controlar el ´ngulo azimutal. Los disturbios tipo escal´n pueden actuar simult´neamente o o a no y pueden ser positivos o negativos.3.28) empleando un actuador hidr´ulico se detallan en el problema 3. . n (b) Lo mismo que (a). Dise˜ar un sistema de control optimo multivan ´ riable estacionario para controlar las temperaturas residuales ∆T1 = c13 ∆z1 y ∆T2 = c24 ∆z2 con las especificaciones siguientes: error en estado estacionario nulo. La selecci´n del tiempo de muestreo es a conveniencia del o dise˜o.10 y se o muestra en la figura 3.02 kg.

a Considerar que la carga esf´rica es de 0. de modo tal que el p´ndulo doble permanezca en posici´n vertical. 4.3. Las ecuaciones que describen e la din´mica del sistema son materia del problema propuesto 3.2.12 ´ Control Optimo La figura 3. de modo tal que la gr´a-puente doble permanezca en posici´n vertical cuando el carro realiza u o un recorrido predeterminado. Las ecuaciones que describen la din´mica del sistema son materia del problema propuesto 3. n Seleccionar apropiadamente el tiempo de muestreo y las matrices de ponderaci´n. el cual es una u extensi´n del proceso gr´a-puente escrito en la secci´n 3. Problema 4. El acoplamiento entre o e o los dos p´ndulos de igual longitud no es flexible.6 y 4.1. es decir. Graficar la o las salidas controladas y las correspondientes se˜ales o n de control.4. Calcular tambi´n el valor m´ e ınimo de la funci´n de costo. 4. Dise˜ar un sistema de control e n o ´ptimo estacionario para controlar simult´neamente las posiciones θ y τ con a m´ ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso. Ahora abordaremos el dise˜o de sistemas de control n o ´ptimo no estacionarios.2.7.13.. 4. . Dise˜ar un a n sistema de control ´ptimo no estacionario para controlar simult´neamente o a las posiciones θ y τ con m´ ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso.32 muestra el proceso p´ndulo doble no lineal. determin ´ nar la ley de control u(k) que minimice la siguiente funci´n de costo: o 1 1 J = [xT (N )Sx + 2 2 N −1 [xT (k)Qx + uT (N )Ru] k=0 para una condici´n inicial x(0) = c arbitraria y para un valor de N para o el cual la o las salidas controladas cumplan las especificaciones de dise˜ o. 4. 4.33 muestra el proceso doble gr´a-puente no lineal. Dise˜ar un sistema de control optimo no estacionario.14.13 La figura 3.02 kg.204 Problema 4. el cual es una exe tensi´n del p´ndulo simple descrito en la secci´n 3.5.1. Realizar o los c´lculos requeridos anteriormente para cada uno de los procesos tratados a en los problemas 4. e o Problema 4.14 En la secci´n anterior se dise˜aron sistemas de control optimo estacionario o n ´ para varios procesos. El acoplamiento o u o entre las dos secciones iguales de la varilla no es flexible.

problemas. con la capacidad de controlar procesos o no lineales univariables (de una entrada y una salida) operando en la presencia de cargas no lineales. expuesto a cargas no lineales. n Sin embargo.1. La pen´ltima secci´n. n dise˜os. prou o blemas resueltos. Introducci´n o Los sistemas de control adaptivo ajustan su comportamiento a las cambiantes propiedades del proceso controlado y de las se˜ales que interact´an n u sobre dicho proceso.edu. .uni. est´ dedicada al dise˜o de sistemas de control adaptivo con a n autosintonizaci´n para diferentes procesos. 5. a En la antepen´ltima secci´n de este cap´ u o ıtulo se presenta una aplicaci´n o para demostrar la validez del procedimiento de dise˜o: control de posici´n de n o un servomotor D.C. simulaciones y software desarrollados se pueden descargar del sitio: n http:/fiee. Todos los archivos correspondientes a los ejercicios.Cap´ ıtulo 5 Control Adaptivo En este cap´ ıtulo se desarrolla un procedimiento para dise˜ar un sistema de n control adaptivo con autosintonizaci´n. donde precisamente los t´rminos no lineales complican e los aspectos anal´ ıticos de modelado del proceso y de dise˜o del controlador.pe/728681F. Tales procesos pueden ser representados por ecuaciones diferenciales no lineales. podemos estructurar un sistema de control adaptivo con autosintonizaci´n combinano do algoritmos lineales de control con procedimiento para estimar en linea los par´metros y los estados del proceso. Por el contrario. La ultima secci´n propone probleo ´ o mas de dise˜o. basado en el correspondiente modelo lineal del proceso. los sistemas de control fijos se caracterizan por la presencia de una ley de control invariable con el tiempo.

o Este cap´ ıtulo est´ organizado como sigue. una representaci´n lineal o o del modelo del proceso.206 Control Adaptivo La investigaci´n sobre controladores adaptivos se ha centrado en dos gruo pos principales: controladores adaptivos con un modelo referencial y controladores con autosintonizaci´n. una t´cnica e de estimaci´n de estados (el filtro de Kalman). lo cual permite ˆ estimar el vector de estado del modelo del proceso x (empleando un filtro ¯ de Kalman) y el valor de equilibrio U de la ley de control actual U .2 trata con el a o problema de modelar procesos no lineales usando modelos lineales. el vector estimado ˆ de par´metros θ se actualiza empleando los datos proporcionados por la a entrada U del proceso y por la salida Y del mismo. La secci´n 5. Procedimientos para estimar en l´ ınea (“on-line”) los par´metros y estados del a . El objetivo del ´ a o control es determinar una fuerza de control capaz de minimizar la diferencia entre la salida del proceso y la se˜al de referencia. o o El sistema de control con autosintonizaci´n mostrado en la figura 5.1 o opera como sigue: luego de cada tiempo de muestreo. En este cap´ o ıtulo se emplea la configuraci´n o de un sistema de control adaptivo con autosintonizaci´n mostrado en la fio gura 5. n ^ x ESTIMADOR DE ESTADOS ESTIMACION DE U + Y + DISTURBIOS CONTROLADOR CON AUTOSINTONIZACION + u U PROCESO NO LINEAL Y ^ θ ESTIMADOR DE PARAMETROS MODELO LINEAL U Figura 5.1. Tal sistema combina en su dise˜o un m´todo de estimaci´n de n e o par´metros (el de los m´ a ınimos cuadrados recursivo mejorado). los elementos ˆ de θ se usan para recuperar el modelo lineal del proceso.1: Configuraci´n del sistema de control con autosintonizaci´n. Tales resultados se usan luego para computar la ley de control residual u y para ¯ actualizar la ley de control actual U a partir de la relaci´n U = U + u. Luego. y una ley de control (el controlador proporcionalintegral optimo cuadr´tico con realimentaci´n de estados).

1). es posible obtener el o modelo lineal siguiente: ˙ X(t) = [A + ∆A]X(t) + [B + ∆B]U (t) + v(X.5. w(X. t) es un vector no lineal de disturbios de orden a n actuando sobre los estados. t). o 5. t) es un disturbio no lineal de orden uno actuando en la salida. v(X.5 presenta el procedimiento para dise˜ar un sistema de control con o n autosintonizaci´n.4) . y ∆A. B es la matriz de control o de dimensi´n n × 1.2) donde A es la matriz de estado de dimensi´n n × n. ∆B o o y ∆C son las correspondientes incertidumbres acotadas con dimensiones apropiadas.1) donde X (de orden n) y U (t) (de orden uno) son el vector de estado y la ley de control. Modelando Procesos No Lineales Consideremos el siguiente proceso din´mico continuo: a ˙ X = f (X.4.2. La o o secci´n 5. t) Y (t) = [C + ∆C]X + w(X. La correspondiente ecuaci´n polinomial residual toma la forma: o A(z −1 )y(z) = B(z −1 )u(z) (5. La funci´n no lineal f (. De la ecuaci´n (5. t) (5. podemos obtener la siguiente representaci´n: o X(k + 1) = GX(k) + HU (k). respectivamente. e Y (t) es la salida del proceso de orden uno. Y (k) = CX(k) (5.) en los estados. Adem´s. Muestreando dicho modelo nominal.3.2 Modelando Procesos No Lineales 207 modelo del proceso se desarrollan en la secci´n 5.3) donde k es el tiempo discreto y las matrices G y H poseen las mismas dimensiones que las matrices A y B. U (t). t) (5. C es la matriz de salida de dimensi´n 1 × n. El proceso nominal no perturbado (o proceso con certidumbre) se obtiene fijando en cero todas las incertidumbres y todos los disturbios en la ecuaci´n o (5. Una aplicaci´n se proporciona en la secci´n 5. respectivamente.6: control o o o de posici´n de un servomotor sujeto a cargas no lineales. mientras que el algoo ritmo del controlador con autosintonizaci´n se deriva en la secci´n 5. v(X.) puede tambi´n contener o e disturbios v(.1).

Procedimientos de Estimaci´n o Esta secci´n presenta los procedimientos para estimar (o identificar) en o l´ ınea los par´metros y los estados del modelo del proceso. + bn z −n (5. x = X−X y u = U −U en las ecuaciones (5.8) 5.7) tiene que ser o o reordenada para tomar la forma siguiente: ˆ Y (k) = ψ T (k)θ(k) (5. . . .5) ¯ ¯ ¯ Empleando ahora las relaciones residuales: y = Y −Y . . .10) Notar que en la ecuaci´n (5. Para ello. − an (k) ˆ1 (k) . . El M´todo de los M´ e ınimos Cuadrados Recursivo Para estimar los par´metros del modelo del proceso usaremos las se˜ ales a n actuales U (k) e Y (k) en lugar de sus desviaciones u(k) e y(k). a 5.208 donde z es el operador de desplazamiento. dichos vectores han incrementado a .6) (5. es decir.1. .3.7) A(z −1 )Y (k) = B(z −1 )U (k) + C donde la constante C se determina de: ¯ ¯ C = (1 + a1 + .11) (5.9). . . y(k) = Cx(k) (5. . el orden del vector de informaci´n y el orden o o del vector de par´metros es 2n+1. .3) y (5. con: Control Adaptivo A(z −1 ) = 1 + a1 z −1 + . .9) donde el vector de informaci´n (o de medici´n) ψ contiene los valores preo o sentes y pasados de la entrada U y de la salida Y como sigue: ψ T (k) = [Y (k − 1) .4) obtenemos: x(k + 1) = Gx(k) + Hu(k). U (k − n) 1] ˆ y el vector θ contiene los par´metros a ser estimados. . . a saber: a ˆ ˆ θ(k) = [−ˆ1 (k) . ˆn (k) C]T a ˆ b b (5. . + bn )U (5. .3. la descripci´n en el espacio de estado dada por la ecuaci´n (5. + an z −n B(z −1 ) = b1 z −1 + . Y (k − n) U (k − 1) . + an )Y − (b1 + .

empleando el m´todo de los m´ o e ınimos cuadrados recursivo.4. computar: i(k) = P (k)ψ(k). con carga no lineal a descrito en la secci´n 3.12) El algoritmo b´sico de los m´ a ınimos cuadrados recursivo puede implementarse en la forma siguiente: ˆ 1) Obtener el vector de par´metros inicial θ(0) usando los valores de los a par´metros del modelo del proceso (ecuaci´n (5. n 3) La matriz de covarianza inicial P puede tener la forma P = αI. Grafique la respuesta del n o proceso.7) con z = 1 (propiedad del valor final) o representa la condici´n de estado estable.C. a o 2) Obtener el valor inicial del par´metro C(0) empleando la ecuaci´n a o ¯ ¯ (5. Podemos observar a que cada par´metro estimado converge a un valor que es aproximadamente a el valor del correspondiente par´metro del modelo discreto.4. γ(k) = i(k)/[λ + j(k)] P (k + 1) = [I − γ(k)ψ T (k)]P (k)/λ ˆ ˆ 8) Actualizar: P (k + 1) = P (k) y θ(k + 1) = θ(k) Ejemplo 5. Soluci´n: El programa ejem5 1. ˆ ˆ θ(k + 1) = θ(k) + γ(k)e(k). es decir: o ¯ ¯ A(1)Y = B(1)U + C (5. considerando U = 0 e Y igual a la se˜al de referencia.3.8).1 Estimar los par´metros del proceso servomotor D.10) y (5. 7) Computar: j(k) = ψ T (k)i(k). Emplee el modelo lineal de segundo orden del proceso y como se˜al excitadora use un escal´n de magnitud 0.2 grafica la respuesta Y del proceso a un escal´n U = 0. a . La ecuaci´n (5.9). o Las figuras 5.3 y 5.4 muestran los par´metros estimados.m estima los par´metros para el proceso o a pedido. para obtener una nueva ecuaci´n de la forma dada en (5.5. 4) Tomar nuevas mediciones de Y (k) y de U (K) en el proceso. o 5) Computar el error de estimaci´n (ver ecuaciones (5.11)): o ˆ e(k) = Y (k) − ψ T (k)θ(k) 6) Sabiendo que P (k) = [ψ T (k)ψ(k)]−1 .5)). La figura 5.3 Procedimientos de Estimaci´n o 209 su orden en uno. donde I es la matriz identidad y α 1.

06377.64e-3.C. % PARAMETROS DEL PROCESO thetai = [0 0 0 0 0]’. b1 = num(2).81. % ERROR DE ESTIMACION i = Pi*psi.01. MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1. n = 19.T.’zoh’). % MODELO LINEAL DEL PROCESO psi = [psi_p. Pi = alfa*eye(5).8338e-6. JL = 3.210 Control Adaptivo % ejem5_1. Y(2) = 0. L = 4.9062e-6.n*K*Kact/(R*M)]. Mo = 0. [num. % FACTOR DE MEMORIA Y(1) = 0.071e-3.02. % % % % . M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2.1]. E = 31.741. Dc = [0]. % 0. m = 0.-N/M -(B + n^2*K*E/R)/M]. Cc = [1 0].3) Lo = 0. cc = 0. bm = 1. bL = 1e-5. Y(k) = psi_p’*theta_p.38.25.01.9. K = 31. Ro = 0. g = 9. % PARAMETROS INICIALES lambda = 0. Jeff = n^2*Jm +JL.H. % PERIODO DE MUESTREO [G. for r = 1:Mm k = r + 2.Dc. R = 7. 0. MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0. % (c: CONTINUO) Bc = [0.Bc.045.0. CONDICIONES INICIALES Y OTROS PARAMETROS alfa=1000.Cc. PROCEDIMIENTO DE IDENTIFICACION Mm = 1000.776.99. a2 = den(3). U(1) = 0.5e-7. % VECTOR DE DATOS e = Y(k)-psi’*thetai.0352e-3.D). j = psi’*i. N = g*Lo*(Mo+m/2).H. U(2) = 0.01. a1 = den(2). Kact = 14.C. B = n^2*bm +bL. % MATRIZ P INICIAL theta_p = [-a1 -a2 b1 b2]’.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO % DE LOS MINIMOS CUADRADOS RECURSIVO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.den]=ss2tf(G.4. psi_p = [Y(k-1) Y(k-2) U(k-1) U(k-2)]’. U(k) = 0. 0.D]=c2dm(Ac. gamma = i/(lambda + j). b2 = num(3). Jm = 1.

2) plot(q. grid xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s’) subplot(2. M´ ınimos Cuadrados Recursivo Mejorado El algoritmo b´sico de los m´ a ınimos cuadrados recursivo se encuentra bastante difundido.’).ae2.1. Por tal motivo.’-. en este cap´ o ıtulo se emplea el m´todo de los m´ e ınimos cuadrados recursivo mejorado propuesto en [5].3. el cual puede implementarse en la forma siguiente: . dicho algoritmo puede presentar problemas potenciales de car´cter num´rico que podr´ afectar el dise˜o final del cona e ıan n trolador con autosintonizaci´n. % PARAMETRO a2 ESTIMADO be1(r) = theta(3). % PARAMETRO a1 ESTIMADO ae2(r) = -theta(2).5.q. % PARAMETRO b1 ESTIMADO be2(r) = theta(4).’-. end % GRAFICOS q=0:Mm-1.01 s) ’) ylabel(’PARAMETROS ESTIMADOS’) print -deps -f ejem5_1b figure(3) plot(q.Y(1:Mm)). Sin embargo. % VECTOR DE PARAMETROS ae1(r) = -theta(1).3 Procedimientos de Estimaci´n o theta = thetai+gamma*e. grid ylabel(’SE~NAL EXCITATRIZ U’) xlabel(’MUESTRAS DISCRETAS k = 0.U(1:Mm)).01 s)’) ylabel(’PARAMETROS ESTIMADOS’) print -deps -f ejem5_1c 211 5. Pi = P. grid ylabel(’RESPUESTA Y DEL PROCESO’) xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.be2.be1.gamma*psi’)*Pi/lambda. % PARAMETRO b2 ESTIMADO P = (eye(5) .q. grid xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.1) plot(q. figure(1) subplot(2.2.01 s)’) print -deps -f ejem5_1a figure(2) plot(q.ae1.1. % ACTUALIZACION thetai = theta.’).

4.5 2 1.3 0.4 SEÑAL EXCITATRIZ U 0. 1 0.01 s 800 900 1000 2.5 0 0 100 200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.212 0.01 s) 900 1000 Figura 5.2: Respuesta del modelo lineal del proceso a un escal´n de magnitud o U = 0.5 PARAMETROS ESTIMADOS 0 −0.01 s) 900 1000 Figura 5.5 −2 0 100 200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.5 1 0.5 −1 −1.1 0 0 RESPUESTA Y DEL PROCESO Control Adaptivo 100 200 300 400 500 600 700 MUESTRAS DISCRETAS k = 0.2 0. a ˆ o ˆ .3: Par´metros estimados a1 (k) (curva s´lida) y a2 (k).

8). n 3) La matriz de covarianza inicial P puede tener la forma P = αI.045 0.035 PARAMETROS ESTIMADOS 0.4).02 0. ψn = ψ/ρ(k) 6) Determinar la matriz N (k) aplicando factorizaci´n Cholesky en: o N (k)N (k)T = P (k) 7) Determinar la matriz diagonal de escalamiento S(k) con elementos sjj .4: Par´metros estimados ˆ1 (k) (curva s´lida) y ˆ2 (k).5.3 Procedimientos de Estimaci´n o 0.015 0. donde cada njj se obtiene tomando el valor absoluto de la suma de los elementos de la fila j de N (k).01 0. Tal matriz minimiza el n´mero condicional del producto S(k)N (k) u siempre que sjj = 1/njj . para obtener una nueva ecuaci´n de la forma dada en (5.03 0.01 s) 900 1000 Figura 5. donde I es la matriz identidad y α 1. 4) Tomar nuevas mediciones de Y (k) y de U (K) en el proceso. ψ(k) ). a o 2) Obtener el valor inicial del par´metro C(0) empleando la ecuaci´n a o ¯ (5.025 0. .9).005 0 0 213 100 200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0. a b o b ˆ 1) Obtener el vector de par´metros inicial θ(0) usando los valores de los a par´metros del modelo del proceso dadas en la ecuaci´n (5. considerando U = 0 e Y igual a la se˜al de referencia. o 5) Computar: ρ(k) = max(1.04 0.

2 Estimar los par´metros del proceso servomotor D. Finalmente. a Soluci´n: El programa ejem5 2.3.m estima los par´metros para el proceso o pedido.7 muestran los par´metros estimados.4. determinar Nnew (k) o T (a partir de la relaci´n PS = Nnew Nnew ). si tt ≥ κ (cota superior). determinar la matriz diagonal Snew con elementos snewjj = 1/nnewjj . Las figuras 5.C. parar la u estimaci´n.6 y 5. si tt ≤ τ (cota inferior). La figura 5.5 grafica la respuesta Y del proceso a un escal´n U o = 0. actualizar: P = PnewS . con carga no lineal a descrito en la secci´n 3. Emplee el modelo no lineal de segundo orden del proceso y como se˜ al excitadora use un escal´n de magnitud 0. y calcular la matriz PnewS = Snew PS Snew . calcular los elementos nnewjj o (valor absoluto de la suma de los elementos de las filas de Nnew (k)). en otro caso.214 8) Computar: PS (k) = S(k)P (k)S(k) ψnS = [S(k)]−1 ψn Control Adaptivo T r(k) = 1 + ψnS (k)PS (k − 1)ψnS (k) λ(k) = 1 − 1 r(k) − 2 r2 (k) − 4 PS (k − 1)ψnS (k) tr PS (k − 1) 2 ˆ en (k) = Y (k)/ρ(k) − ψnT (k) θ(k − 1) T j(k) = [ψnS (k + 1)PS (k)ψnS (k + 1) + λ(k)] ˆ ˆ θ(k + 1) = θ(k) + S −1 (k)PS (k)ψnS (k)en (k + 1)/j(k) T HnS (k + 1) = PS (k)ψnS (k + 1) × [ψnS (k + 1)PS (k)ψnS (k + 1) + λ(k)]−1 T PS (k + 1) = [I − HnS (k + 1)ψnS (k + 1)]PS (k)/λ(k) tt = abs max eig(PS ) min eig(PS ) 9) Implementar el criterio para parar la estimaci´n y para encontrar la o nueva matriz de escalamiento Nnew como sigue: sabiendo que tt es el n´mero condicionante de PS . Ejemplo 5. Grafique la n o respuesta del proceso. Podemos a observar que cada par´metro estimado converge a un valor constante.4. a . empleando el m´todo de los m´ o e ınimos cuadrados recursivo mejorado.

06377.TN/M . U(1) = 0.64e-2. a1 = den(2).m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO % DE LOS MINIMOS CUADRADOS RECURSIVO MEJORADO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3. 10 gr.’zoh’). m = 0. Mo = 0. n = 19.C. 20 gr y 45 gr B = n^2*bm +bL.9. x2=x2+T*(-(N/M)*sin(x1) . 215 . E = 31. b1 = num(2). % CONDICIONES INICIALES (ARBITRARIAS) Y OTROS PARAMETROS alfa=1000. L = 4.-N/M -(B + n^2*K*E/R)/M]. Y(2) = 0. R = 7.81.D).(B/M + n^2*K*E/(M*R))*x2 .035e-3. % peso variable: 0 gr. Jm = 1. % PROCEDIMIENTO DE IDENTIFICACION Mm = 1000. U(2) = 0.Dc. Cc = [1 0]. x2 = 0..T.01.4. % PARAMETROS INICIALES lambda = 0.den]=ss2tf(G. % MODELO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO DIRECTAMENTE TN = cc*sign(x2). % PARAMETROS DEL PROCESO thetai = [-a1/3 -a2/2 3*b1 2*b2 0]’. g = 9.n*K*Kact/(R*M)]. Kact = 14.3) JL = 3.0.25. N = g*Lo*(Mo+m/2). Y(k) = x1. % FACTOR DE MEMORIA Y(1) = 0.5. N = 5. % MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1. Lo = 0.3 Procedimientos de Estimaci´n o % ejem5_2. for r = 1:Mm k = r + 2. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2. % (c: CONTINUO) Bc = [0.H. Jeff = n^2*Jm +JL. [num. a2 = den(3).9062e-6. cc = 0. bm = 1. Dc = [0].H.8338e-6.38.776. % MATRIZ P INICIAL theta_p = [-a1 -a2 b1 b2]’. x1 = 0. + (n*K*Kact/(R*M))*U(k) ).741.5e-7. b2 = num(3). x1=x1+T*x2. bL = 1e-5.071e-3.. U(k) = 0. Pi = alfa*eye(N).99. K = 31.Bc.D]=c2dm(Ac.C.01.Cc. % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0. Ro = 0. % PERIODO DE MUESTREO [G.

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

-0.’a1’).05 0 0 100 200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0. xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A ylabel(’PARAMETROS ESTIMADOS’) grid print -deps -f ejem5_2c 217 0.4 SEÑAL EXCITATRIZ U 0.ae2) text(250.q.4.01 s)’) 0.be1.01 s)’) 0.5.’b2’).5: Respuesta del proceso no lineal a un escal´n de valor U = 0.-3e-3.’a2’).5e-3.’b1’).3 0. text(250.be2) text(250.01 s) 900 1000 Figura 5.0. xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A ylabel(’PARAMETROS ESTIMADOS’) grid print -deps -f ejem5_2b figure(3) plot(q.7. o . text(250.3 Procedimientos de Estimaci´n o print -deps -f ejem5_2a figure(2) plot(q.55.q.2.1 0.15 0.1 0 0 RESPUESTA Y DEL PROCESO 100 200 300 400 500 600 700 800 900 1000 0.ae1.2 0.

a ˆ ˆ 14 12 10 ESTIMADOS 8 6 4 2 0 −2 x 10 −3 PARAMETROS b1 b2 −4 −6 0 100 200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.2 −0.6: par´metros estimados a1 (k) y a2 (k).2 0 −0.6 a2 0.7: par´metros estimados ˆ1 (k) y ˆ2 (k).01 s) 900 1000 Figura 5.01 s) 900 1000 Figura 5.4 −0.8 0 100 200 300 400 500 600 700 800 MUESTRAS (CADA MUESTRA EQUIVALE A 0.218 0.6 a1 −0. a b b .4 Control Adaptivo ESTIMADOS PARAMETROS 0.

5. Usando los a elementos de dicho vector de par´metros. soluci´n unica de la siguiente ecuaci´n matricial discreta asociada de Riccati: o ˆ ˆ ˆ ˆ ˆ Po (k + 1) = Qo + G( T )(k)Po (k)G(k) − GT (k)Ko (k)C(k)Po (k)G(k) (5.14) o ´ donde Po (k) es la matriz definida positiva. La Ley de Control Es bastante conocido [6] que el controlador proporcional optimo cuadr´tico ´ a es una matriz de ganancia Kx que nos permite formular la siguiente ley de control u = −Kx x(k).13) El procedimiento de estimaci´n descrito en la subsecci´n anterior nos proo o ˆ porciona el vector de par´metros estimado del proceso θ(k).4 La Ley de Control 219 5.3.4. Dicha matriz es el resultado de la minimizaci´n de la o funci´n de costo: o ∞ I= k=0 [xT (k)Qx(k) + u2 (k)R] (5. H(k) y C(k). podemos reconstruir las matrices a ˆ ˆ ˆ estimadas G(k). con ecuaci´n de observaci´n: o o ˆ x x(k) = x(k) + Ko (k)[y(k) − C(k)¯(k)] ˆ ¯ y ecuaci´n de actualizaci´n de estados: o o ˆ x ˆ x(k + 1) = G(k)ˆ(k) + H(k)u(k) ¯ En la ecuaci´n (5.18) .15) (5.6) podemos obtener el siguiente modelo nominal pero turbado del proceso: x(k + 1) = Gx(k) + Hu(k) + v(k) y(k) = Cx(k) + w(k) (5. la matriz de ganancia Ko (k) se calcula de: o ˆ ˆ ˆ Ko (k) = Po (k)C T (k)[C(k)Po (k)C T (k) + Ro ]−1 (5. El vector de estado estimado x(k) puede ser ˆ obtenido empleando un filtro de Kalman [6].16) (5. Estimaci´n de Estados o De la ecuaci´n (5.17) donde Qo y Ro son matrices de covarianza definidas positivas correspondiente a los disturbios v y w. respectivamente. 5.3.14).

En la subsecci´n 4. el problema es determinar la matriz de ganancia K a como resultado de la minimizaci´n de la siguiente funci´n de costo: o o ∞ I = k=0 a [xa )T (k)Qa xa (k) + u2 (k)R] (5.25) .220 sujeto a la ecuaci´n de restricci´n: o o x(k + 1) = Gx(k) + Hu(k) Control Adaptivo donde la matriz Q = QT es semidefinida positiva y la matriz R es definida positiva.23) donde el super´ ındice a significa aumentado.24) Ha = Por consiguiente. Ga (k) = H 0 . G 0 −C I C a = [C 0] (5.20) Para mejorar el rendimiento del controlador proporcional.5 se detalla c´mo seleccionar estas matrices. es posible adicionar acci´n integral a dicho controlador. El vector xa y las matrices Aa . Definiendo la variable z(k) como o ¯ la integral (sumatoria) del error [Y (k) − Y (k)]: k−1 k−1 k z(k) = i=0 ¯ [Y (i) − Y (i)] = i=0 [−y(i)].21) de modo que la representaci´n en el espacio de estado del sistema aumentado o toma la forma siguiente: xa (k + 1) = Ga xa (k) + H a u(k) y(k) = C x (k) a a (5.22) (5. z(k + 1) = i=0 [−y(i)] entonces: z(k + 1) = z(k) − y(k) = z(k) − Cx(k) (5. La o o ganancia Kx se obtiene de: Kx = (R + H T SH)−1 H T SG (5.19) donde S es la unica matriz definida-positiva soluci´n de la siguiente ecuaci´n ´ o o matricial discreta asociada de Riccati: 0 = S − GT SG + GT SHKx (5. B a y C a poseen la forma: xa (k) = x(k) z(k) .

28).4) dada por la o ¯ ecuaci´n (5. o 6) Simular el sistema de control adaptivo variando las matrices de ponderaci´n R.2).3 para o estimar los estados del modelo del proceso. o determinar sus modelos lineal y no lineal (secci´n 5.3.28) 5.1 es como sigue: 1) Formular el problema (definir especificaciones de dise˜o).3. 9) Realizar pruebas de funcionamiento (resultados experimentales). Qa .5.2) para estimar los par´metros del modelo del proceso. hasta obtener un rendimiento satisfactorio o del sistema. 5) Implementar la ley de control residual u(k) (secci´n 5. 8) Implementar el software de control.26). Procedimiento de Dise˜o n El procedimiento para dise˜ar el sistema de control con autosintonizaci´n n o ilustrado en la figura 5. Ro y Qo . .26) K a = {R + [H a ]T P a H a }−1 [H a ]T P a Ga En la ecuaci´n (5. 7) Implementar el hardware.5 Procedimiento de Dise˜ o n 221 donde la matriz Qa = [Qa ]T es semidefinida positiva. computar U (k) usando la ecuaci´n (5. La ganancia K a se obtiene de: (5. P a es la unica matriz definida-positiva soluci´n de la o ´ o siguiente ecuaci´n matricial discreta asociada de Riccati: o P a = Qa + [Ga ]T P a Ga − [Ga ]T P a H a K a (5. a o (5.8). y actualizar o o ¯ la ley de control actual empleando la relaci´n U (k) = u(k) + U (k). o 3) Implementar el m´todo de los m´ e ınimos cuadrados recursivo mejorado (subsecci´n 5. la ley de control del controlador optimo cuadr´tico pro´ a porcional integral viene a ser: u(k) = −K a xa (k) y los par´metros de ponderaci´n de rendimiento son R y Qa .5.27) Por consiguiente. o a 4) Implementar el procedimiento desarrollado en la subsecci´n 5. n 2) Usando toda la informaci´n disponible acerca del proceso no lineal.

9 presenta la estructura del proceso no lineal a controlar. La tabla 3.6. una frecuencia de muestreo de Fs = 100 Hz). El Modelo del Proceso La figura 3.1.6. Control Adaptivo de un Servomotor No Lineal Formulaci´n del Problema o El servomotor D. La carga no lineal es una varilla met´lica a acoplada al eje del servomotor. a manera de un brazo rob´tico de un grado o de libertad. para un tiempo de muestreo de o 0. ˙ donde: Ac = 0 N −M B −( M y = Cc x 1 2E + KnR ) M Bc = 0 KnKact MR .C.01 s (o lo que es lo mismo. 5.6.1 que el proceso no lineal puede ser descrito mediante un modelo lineal en el espacio de estado de la forma: x = Ac x + Bc u. de modo tal que la varilla se posicione en una o referencia predeterminada con m´ ınimo sobreimpulso en su respuesta.31) .3) es un proceso de una entrada y una salida que puede ser controo lado por el voltaje de armadura.222 Control Adaptivo 5. 5. a pesar de la presencia de la carga no lineal y de las no linealidades inherentes del proceso como son las fricciones est´tica y de Coulomb. y saturaci´n en a o el amplificador del servomotor. En el extremo de la varilla se pueden acoplar cargas adicionales.2 describe las variables y los valores de los par´metros.2. tiene la forma: Gp (z) = b1 z + b2 y(z) b1 z −1 + b2 z −2 = 2 = u(z) z + a1 z + a2 1 + a1 z −1 + a2 z −2 (5. Vimos en el a ejemplo 5. Cc = 1 0 (5.29) La funci´n de transferencia de pulso Gp (z).30) y su correspondiente ecuaci´n de diferencias es: o y(k) = −a1 y(k − 1) − a2 y(k − 2) + b1 u(k − 1) + b2 u(k − 2) (5. El objetivo del control es dise˜ar e implementar un sistema de control adapn tivo con autosintonizaci´n. con carga no lineal (discutido ampliamente en la secci´n 3.

de control y de salida respectivamente. α = 1000 (5. H y C son las matrices de estado.3. La representaci´n can´nica controlable o o del proceso (primera forma.2. .6 Control Adaptivo de un Servomotor No Lineal 223 donde a1 = -1.045.32) b2 − a2 b0 b1 − a1 b0 5.100) con b0 = 0) tiene la forma: o G = C = 0 1 −a2 −a1 .5): a o θ(0) = −a1 −a2 b1 b2 C(0) T ¯ ¯ donde el valor inicial de C(0) (ecuaci´n (5. y(kT ) = Cx(kT ) donde G. un mismo proceso puede adoptar m´ltiples o u representaciones de estado de la forma: x(k + 1) = Gx(k) + Hu(k). otros pasos (ver ejemplo 5.9608.30). Como primer paso calculamos el vector inicial de o par´metros (ecuaci´n (5. con dimensiones apropiadas.9626.3. b1 = 0. 0 1 D = [0] (5.33)   0 0 α 0 0 0 0 α Como cuarto paso obtenemos nuevas mediciones de Y (k) y de U (K) (ver ecuaci´n (5. Vimos que partiendo de la ecuaci´n (5. ecuaci´n (3.6. H= .5. ema pleamos el m´todo de los m´ e ınimos cuadrados recursivo mejorado desarrollado en la subsecci´n 5. Estimaci´n de Par´metros o a Para estimar (o identificar) los par´metros del modelo del proceso.8) con U = 0 e Y igual a la se˜al o n de referencia) es: ¯ C = (1 + a1 + a2 )Y En el tercer paso fijamos la  α  0  P = 0   0 0 matriz de covarianza inicial P de orden 5:  0 0 0 0 α 0 0 0   0 α 0 0 .2) con Cmin = 15 y Cmax = 100.044 y b2 = 0. a2 = 0.9)) y formulamos: o ˆ Y (k) = ψ T (k)θ(k) ψ T (k) = [Y (k − 1) Y (k − 2) U (k − 1) U (k − 2) 1] ˆ ˆ ˆ b b θ(k) = [−ˆ1 (k) − a2 (k) ˆ1 (k) ˆ2 (k) C(k)]T a Con los datos determinados hasta aqu´ ahora podemos implementar los ı.

podemos reconstruir las a ˆ ˆ ˆ matrices estimadas G(k). el programa de simulaci´n disadap.14).35) (5.04. a saber. a saber: a ˆ ˆ θ(k) = [−ˆ1 (k) − a2 (k) ˆ1 (k) ˆ2 (k) C(k)]T a ˆ b b Usando los elementos de dicho vector de par´metros.6. ˆ H(k) = ˆ D(k) = [0] 0 1 ˆ C(k) = Las ecuaciones del filtro de Kalman para estimar el vector de estado x son ˆ (ver ecuaciones (5. La Ley de Control Para determinar el controlador proporcional.36) Para cada muestra discreta.6.15) y (5.m (secci´n o o 5. G 0 −C I C a = [C 0] y(k) = C a (k)xa (k) Ha = . Ga (k) = H 0 .3. 5. .34) (5.3.224 Control Adaptivo 5.16)): ˆ x x(k) = x(k) + Ko (k)[y(k) − C(k)¯(k)] ˆ ¯ ˆ x ˆ x(k + 1) = G(k)ˆ(k) + H(k)u(k) ¯ ˆ ˆ Ko (k) = Po (k)C T (k)[C(k)Po (k)C T (k) + Re ]−1 (5.6.4. Estimaci´n de Estados o El procedimiento para la estimaci´n de estados se describe en la subseco ci´n 5. donde: xa (k) = x(k) z(k) .32)): o o ˆ G(k) = 0 1 −ˆ2 (k) −ˆ1 (k) a a ˆ2 (k) ˆ1 (k) b b . El procedimiento de estimaci´n (subsecci´n anterior) nos proporo o o ciona el vector de par´metros estimado del proceso. (5.01 y Ro = 0.7) calcula las matrices Po (k) y Ko (k) empleando las matrices de covarianza de los disturbios v y w. H(k) y C(k) correspondientes a la representaci´n o can´nica controlable (ecuaci´n (5. la representaci´n en el espacio o o o de estado aumentado toma la forma siguiente (ecuaci´n (5.5.4). Qo = 0.integral optimo cuadr´tico ´ a con realimentaci´n de estados (secci´n 5.23)): o xa (k + 1) = Ga (k)xa (k) + H a (k)u(k).

Kact = 14. E = 31. Jm = 1.01. o % disadap. como sigue: o ¯ ¯ ˆ U (k) = [ˆ1 (k) + ˆ2 (k)]−1 [1 + a1 (k) + a2 (k)]Y (k) − C(k) b b ˆ ˆ ¯ Finalmente. Es importante recalcar que los algoritmos de control lineal est´n siendo aplicados al modelo no a lineal del proceso.81.06377.m resume todos los pasos descritos anteriormente para simular el sistema de control adaptivo. % 0. Mo = 0. Los valores de R y Qa para la simulaci´n son:   0.8338e-6.m calcula las matrices K a (k).035e-3.m es autoexplicativo. con el fin de darle mayor realismo al proceso de simulaci´n.01.01 0 . 5.6. Ra = 7.7.6 Control Adaptivo de un Servomotor No Lineal La matriz de control K a se obtiene de: K a (k) = {R + [H a (k)]T P a (k)H a (k)}−1 [H a (k)]T P a (k)(k)Ga (k) 225 El programa disadap.045. Simulaci´n del Sistema de Control Adaptivo o El siguiente programa disadap.9.4).6.9062e-6.00.45. bL = 1e-5. En el software de control implementado. donde o o ¯ (k) se halla en l´ U ınea a partir de la ecuaci´n (5.25. o o pero no incluye la compensaci´n de la no linealidad provocada por la fricci´n o o de Coulomb debido a que no es necesario (conforme a los resultados de la simulaci´n). As´ podemos calcular la ley de control ı. Ro = 0. la matriz P a (k) se obtiene luego de iterar la ecuaci´n de Riccati 20 veces en cada per´ o ıodo de o muestro. ¯ residual empleando la relaci´n u(k) = U (k) − U (k) (secci´n 5.38.5e-7. El programa disadap. Ga (k) y H a (k) para cada tiempo de muestreo.01 5.3) JL = 3. m = 0.6. 0. g = 9.8). actualizamos la ley de control actual: U (k) = u(k) + U (k). Qa =  0 (5.05 0 0 0. La simulaci´n incluye la estrategia para no saturar el amplificador. bm = 1. cc = 0. . 0.37) 0 0 0.m SIMULACION DEL SISTEMA DE CONTROL DE POSICION % ADAPTIVO CON AUTOSINTONIZACION clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3. La Ley de Control Residual Para el sistema de control a lazo cerrado podemos tomar la se˜ al Y (k) n ¯ igual a la referencia para todo k.02. R = 0.5.

226
K = 31.071e-3; n = 19.741; L = 4.64e-3; Lo = 0.776;

Control Adaptivo

B = n^2*bm +bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/Ra)/M]; % (c: CONTINUO) Bc = [0;n*K*Kact/(Ra*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,’zoh’); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); % Gcc,Hcc, Ccc, Dcc: REPRESENTACION CANONICA CONTROLABLE a11 = 0; a12 =1; a21 = -a2; a22 = -a1; b11 = b1; b21 =b2-a1*b1; c11 =1; c12 = 0; Gcc = [a11 a12;a21 a22]; Hcc = [b11;b21]; Ccc =[c11 c12]; Dcc = [0]; % REPRESENTACION POLINOMIAL % A(z^(-1)) = 1 + a1*z^(-1) + a2*z^(-1); % B(z^(-1)) = b1*z^(-1) + b2*z^(-1); % A(z^(-1))*Y(k) = B(z^(-1))*U(k) + Ce; % CASO AUMENTADO % en el estado estacionario: z = 1: % (1 + a1 + a2)*Yo = (b1 + b2)*Uo + Ce % CONDICIONES INICIALES Y(1) = 0; Y(2) = 0; Y(3) = 0; % SALIDA ACTUAL y(1) = 0; y(2) = 0; % SALIDA RESIDUAL U(1) = 0; U(2) = 0; U(3) = 0; % SE~NAL DE CONTROL ACTUAL u(1) = 0; u(2) = 0; % SE~NAL DE CONTROL RESIDUAL xmenos = zeros(2,1); % VECTOR DE OBSERVACION INICIAL z=0; % ACCION INTEGRAL INICIAL X1 = 0; X2 = 0; % ESTADOS ACTUALES % CONDICIONES INICIALES DE LOS PARAMETROS Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA frec = 0.007; % FRECUENCIA DE LA SE~NAL DE REFERENCIA Ce = (1 + a1 + a2)*Ref; % VALOR INICIAL DE Ce thi = [-a1 -a2 b1 b2 Ce]’; % VECTOR INICIAL DE PARAMETROS alfa=1000; Pi = alfa*eye(5); % MATRIZ DE COVARIANZA INICIAL lamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIA cmax = 100; cmin = 10; % UMBRALES DE ESTIMACION

5.6 Control Adaptivo de un Servomotor No Lineal
% PARAMETROS DE OPTIMIZACION Qo = 0.01; Ro = 0.04; % PARA EL FILTRO DE KALMAN R = 0.45; Qa = [0.05 0 0;0 0.1 0;0 0 1]; % PARA LA GANANCIA Ka % ******** LAZO DEL SISTEMA DE CONTROL ADAPTIVO ********* Mm = 2000; for r = 1:Mm t = r + 2; % SE~NAL DE REFERENCIA Yo(t)= Ref*sign(sin(frec*(t-2))); % ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t-1) Y(t-2) U(t-1) U(t-2) 1]’; rho = max(1,norm(psi)); psin = psi/rho; Nn = chol(Pi’); % Nn’*Nn = Pi => Nn*Nn’ = Pi’ S = inv(diag(Nn*ones(5,1),0)); Ps = S*Pi*S; psins = inv(S)*psin; rt = 1 + psins’*Ps*psins; lamb = 1 - (rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2; e = Y(t)/rho - thi’*psin; j = psins’*Ps*psins + lamb; th = thi + e*inv(S)*Ps*psins/j; Hns = Ps*psins/j; Ps = (Ps - Hns*psins’*Ps)/lamb; tt = abs(max(eig(Ps))/min(eig(Ps)) ); cmax = 100; cmin = 15; if tt <= cmin, Pi = Ps; thi = th; elseif tt >= cmax, Nnew = chol(Ps’); % Nnew*Nnew’ = Ps’ Snew = inv(diag(Nnew*ones(5,1),0)); Psnew = Snew*Ps*Snew; Pi = Psnew; thi = th; end % RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 = -th(1); ae2 = -th(2); be1 = th(3); be2 = th(4); Ce = th(5); ae11 = 0; ae12 =1; ae21 = -ae2; ae22 = -a1; GE = [ae11 ae12;ae21 ae22]; be11 = 0; be21 = 1; HE = [be11;be21]; ce11 =be2; ce12 = be1; CE = [ce11 ce12]; DE = [0]; % SALIDA RESIDUAL (DESVIACION) y(t) = Y(t) - Yo(t);

227

228

Control Adaptivo

% CALCULO DE LA GANANCIA Ko DEL ESTIMADOR DE KALMAN Ko = dlqe(GE,HE,CE,Qo,Ro); xmas = xmenos + Ko*(y(t) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR OPTIMO Ga = [GE zeros(2,1);-CE 1]; Ha = [HE;0]; Ca = [CE 0]; Ka = dlqr(Ga,Ha,Qa,R); % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t) = - Ka*[xmas;z]; % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t); % CALCULO DE Uin (VALOR D.C. DE U(t)) AE = 1 + ae1 + ae2; BE = be1 + be2; Uin = inv(BE)*(AE*Yo(t) - Ce); % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t) = u(t) + Uin; % LIMITANDO LA SE~NAL U(t) PARA EVITAR SATURACION if(U(t) > 1.4) U(t) = 1.4; elseif(U(t) <-1.4) U(t) = -1.4; end % MODELO NO LINEAL DE SEGUNDO ORDEN (DISCRETIZCION DIRECTA) TN = cc*sign(X2); X1 = X1 + T*X2; X2 = X2 + T*(-(N/M)*sin(X1) - (B/M + n^2*K*E/(M*R))*X2 ... - TN/M + (n*K*Kact/(R*M))*U(t) ); Y(t+1) = X1; end % ***************** FIN DEL LAZO DE CONTROL ************** % GRAFICOS ejex = linspace(0,Mm*T,Mm); subplot(2,1,1) plot(ejex,Yo(1:Mm),ejex,Y(1:Mm)); grid ylabel(’Posicion Y (rad)’) subplot(2,1,2) plot(ejex,U(1:Mm)); grid ylabel(’Se~nal de control U (voltios)’) xlabel(’Tiempo en segundos’) print -f -deps simsca % CREA simsca.eps

5.6 Control Adaptivo de un Servomotor No Lineal
2 Posición Y (rad) 1 0 −1 −2 0

229

2

4

6

8

10

12

14

16

18

20

Señal de control U (voltios)

2 1 0 −1 −2 0

2

4

6

8 10 12 Tiempo en segundos

14

16

18

20

Figura 5.8: Resultado de la simulaci´n del sistema de control adaptivo para o controlar la posici´n angular del servomotor D.C. sujeto a cargas no lineales. o

5.6.8.

Implementaci´n del Hardware o

El sistema de control de posici´n consta de un servomotor D.C. con meo canismo de reducci´n, una varilla acoplada al eje del servomotor (la carga no o lineal) perpendicular al eje de giro del servomotor, una etapa de potencia (el amplificador PWM) y un sensor de posici´n conformado por un codificador o o ´ptico (acoplado al eje del motor), un decodificador de cuadratura y un contador de 16 bits. El hardware tambi´n incluye una PC Pentium y una tarjeta e de adquisici´n de datos Lab-PC+. A la carga no lineal (la varilla met´lica) o a se le pueden acoplar cargas adicionales. El esquema de implementaci´n se o ilustra en la figura 5.9 mientras que el proceso (el servomotor con carga no lineal) se ilustra en la figura 5.10. El Actuador El actuador est´ conformado por el servomotor D.C. (de campo magn´tico a e permanente y escobillas conmutadas), un generador PWM y una etapa de potencia. Debido a que el motor no responde inmediatamente a una tensi´n o de entrada; es decir, le toma un peque˜o tiempo para llegar a la m´xima n a

230

Control Adaptivo

COMPUTADORA PERSONAL TARJETA LAB-PC+ SALIDAS ANALOGICAS DAC0 DAC1 PA0 . . . PA7 PB0 . . . PB7 PC1 . . . PC7 PC0 ETAPA DE POTENCIA Generador PWM Amplificador de potencia

Sensor (encoder)

PA COMPUERTAS DIGITALES DE ENTRADA Y SALIDA

MUX PB 16 bits Decodificador de cuadratura y contador UP / DOWN SERVOMOTOR DC

PC

Varilla Fs

OUTB0 CONTADOR / TEMPORIZADOR

Carga Adicional

Figura 5.9: Esquema de implementaci´n del sistema de control de posici´n. o o

5.6 Control Adaptivo de un Servomotor No Lineal
Codificador optico ’ Reductor de velocidad Alimentacion ’

231

.

. Servomotor DC

.

11 00 11 00 11 00 11 00 11 00 11 00 11 00

Eje de salida Varilla Adaptador de carga

Carga adicional

11 00 11 00 11 00 11 00

Figura 5.10: Proceso servomotor D.C. con carga no lineal y codificador optico ´ incorporado.

velocidad, es necesario usar un sistema que nos permita variar la velocidad del servomotor (entre un m´ ınimo y un m´ximo) as´ como tambi´n el sentido a ı e de su rotaci´n. Dicho sistema comprende un generador PWM LM3524 y o un circuito de potencia (ver figura 5.11). Tal sistema nos permite variar la velocidad de acuerdo al ancho de pulso de la se˜al PWM. El circuito PWM n LM3524 genera se˜ales moduladas por ancho de pulso de 15.4 KHz, las n cuales son luego amplificadas por el circuito de potencia, gener´ndose una a tensi´n de alimentaci´n cuyos l´ o o ımites son ± 25 volt. El circuito de potencia est´ conformado por un sistema de disparo y dos pares de conmutadores A a y B, tal como se muestra en la figura 5.12. El sistema de disparo permite la conmutaci´n de cada par conmutador o (A o B), de forma tal que no se produzcan cortocircuitos durante la conmutaci´n. Cuando el sistema de disparo cierra el conmutador A y abre el B, o el sentido de la corriente sigue la l´ ınea punteada, induciendo de esta forma una tensi´n +Vcc en el servomotor. Ahora, si el sistema de disparo abre el o

232

Control Adaptivo

Ca

Ra

Amplificador de potencia

Rc

Viene de la salida A0 de la LAB-PC+

PWM Generador PWM Cp Rp

Salida A Salida B Al servomotor DC

Figura 5.11: Etapa de potencia.

Vcc

~ SENAL PWM

SISTEMA
DE DISPARO

A1 SERVOMOTOR DC B2

B1

A2

Par conmutador A = A1 + A2 Par conmutador B = B1 + B2

Figura 5.12: Esquema general del sistema de disparo y de conmutaci´n. o

conmutador A y cierra el B, el sentido de la corriente sigue la l´ ınea segmentada, induciendo as´ una tensi´n -Vcc en el servomotor. Esto significa que el ı o motor recibe en sus bornes una tensi´n de onda cuadrada, cuyo valor var´ o ıa entre ± Vcc, con un consumo de corriente que depende de los conmutadores conformados por transistores MOSFET.

5.6 Control Adaptivo de un Servomotor No Lineal El Sensor de Posici´n o

233

El sensor de posici´n esta conformado por un codificador optico roo ´ tatorio (interno al motor), un decodificador de cuadratura y un contador UP/DOWN. El codificador optico rotatorio consiste en: ´ Una fuente de luz que puede ser un LED infrarrojo o l´ser. a Un disco opaco ranurado acoplado al eje del motor, que se mueve entre una fuente de luz permanente habilitada y un detector. A medida que gira el rotor, el paso de luz hacia el detector es habilitado o inhabilitado por un patr´n de areas oscuras y transparentes impreso en el disco, o ´ produciendo una se˜al digital que puede ser f´cilmente interpretada n a por el controlador de movimiento del sistema. Un sensor de luz; usualmente es un fototransistor o un fotodiodo. Un conformador de pulsos que convierte la se˜al sinusoidal proveniente n de la salida del fotodetector en se˜al de onda cuadrada. n El esquema b´sico del codificador optico se muestra en la figura 5.13. El a ´
Canal A Canal B Fuente de luz Transistor o ’ ptico Eje del servomotor Disco con mascara ’

Figura 5.13: Estructura de un codificador optico rotatorio. ´

codificador usado en esta implementaci´n, como en la mayor´ de los casos, o ıa incluye dos pistas de marcas o ranuras en cuadratura (canales A y B), cada una asociada a una fuente de luz y un fotodedector independientes. Los canales A y B producen dos ondas cuadradas desfasadas 900 entre s´ que se ı utilizan para determinar la direcci´n del movimiento. Por ejemplo, si el canal o B adelanta al canal A, el eje est´ girando en sentido antihorario, y viceversa. a

234

Control Adaptivo

Si no se utiliza detecci´n de cuadratura, la vibraci´n puede causar el env´ o o ıo de pulsos err´ticos al contador, incluso si la m´quina est´ detenida. El coda a a ificador usado tiene una resoluci´n de 512 ppr (pulsos por revoluci´n). El o o decodificador de cuadratura es el CI LS7083 que activa la cuenta ascendente o descendente del contador UP/DOWN de 16 bits, dependiendo del sentido de giro del motor, captado por el desfasaje entre los trenes de pulsos de los canales A y B. El contador UP/DOWN est´ conformado 4 CI 74HC193; dos a de ellos entregan un grupo de 8 bits de datos (bus A) a la tarjeta LAB-PC+; de manera an´loga otro grupo igual de bits conforman el bus B (ver figura a 5.14).
Clock UP 74HC Clock Down 193 Canal A LS7083 Canal B

4 bits Puerto digital PA 8 bits 4 bits

74HC 193

4 bits Puerto digital PB 8 bits 4 bits

74HC 193

R

L

74HC 193

Figura 5.14: Decodificador de cuadratura y contador UP/DOWN.

La Interfaz Lab-PC+ La interfaz entre el microcomputador, la planta, el actuador y el sensor es la tarjeta de adquisici´n de datos Lab-PC+. Los terminales usados para o el control son: 1. Una salida anal´gica (DAC0). La se˜al de control se env´ usando el o n ıa terminal DAC0 al CI LM3524 (generador PWM) con una resoluci´n o de 12 bits para generar la se˜al anal´gica. n o

29): o ¨ M θ + (B + nKact K nKact K ˙ )θ + N θ = θ R R ¨ ˙ θ + 3. 235 Dos puertos digitales de entrada (PA y PB) de 8 bits. Tales puertos reciben los datos provenientes del contador UP/DOWN. es necesario explicar sucintamente a las ecuaciones involucradas en el sistema de control adaptivo a ser implementado en tiempo real.4604θ = 89. La ecuaci´n can´nica controlable a emplear en el algoritmo o o o de control se da en la ecuaci´n (5.26)): o K a = (R + (H a )T P a H a )−1 (H a )T P a Ga .32): o xk = GXk−1 + Huk−1 . El terminal OUTB0.9. n La se˜al de reloj OUTB0 se genera a partir de una base de tiempos de 2 n MHz que activa la salida del contador/temporizador 8253.31)): o o θk + a1 θk−1 + a2 θk−2 = b1 vk−1 + b2 vk−2 donde θ(k) = y(k) y v(k) = u(k) (v es la se˜al de control que requiere n compensaci´n). El modelo lineal continuo del proceso se obtiene de la ecuaci´n (5. El terminal PC0 (bit 0 del puerto C).6. Los puertos de entrada/salida provienen de la PPI (Interfaz Paralela Programable) 8255. que se utiliza como entrada de la se˜al de reloj Fs proveniente de OUTB0. Ya que la simulaci´n del o sistema no incluye estos tipos de c´lculo. yk = CXk con x = Xk y u(k) = uk . incluyendo la soluci´n de las ecuaciones de Riccati para calcuo lar las ganancias del controlador y del observador.626 + θ + 17. 5.5. 4. 3.6 Control Adaptivo de un Servomotor No Lineal 2. Implementaci´n del Software de Control o Consideraciones Generales El software de control debe implementar las ecuaciones del sistema en tiempo real. a La ley de control es: uk = −K a Xk con (ver ecuaci´n (5.09θ La ecuaci´n de diferencias del proceso es (ver ecuaci´n (5. que se utiliza como salida de una se˜al de reloj n para el funcionamiento del sistema de control.

P a → Po a en las f´rmulas de K a y Pk+1 del controlador optimo.236 Control Adaptivo a donde la matriz P a (k) = Pk se obtiene de (ver ecuaci´n (5.2 voltios a la se˜al de control. el software de control requiere de muchos c´lculos. mientras ´ que para el algoritmo de estimaci´n son: P = 1000I5 (matriz de covarianza o inicial. ecuaci´n (5. R → Ro .1 I3 . lo que da como resultado una nueva o a .01 y Ro =0. para el proceso de estimaci´n de par´metros se deben realizar o a dos descomposiciones de Cholesky para matrices de orden 5 empleando el m´todo de Jacobi (ver referencia [16]. la matv´ ıariz resultante Pk matriz Pk se usa como matriz inicial para resolver nuevamente la ecuaci´n de Riccati. Los par´metros de optimizaci´n usados para a o el observador optimo (filtro de Kalman) son: Qo =0. Es decir. o Computacionalmente.3 voltios corresponden al valor que hay que agregar (valor “offset”) para que la velocidad inicial sea cero. haciendo los reemplazos siguientes: G a → GT .27)): o a a a a a Pk+1 = Q + (Ga )T Pk Ga + (Ga )T Pk H a (R + (H a )T Pk H a )−1 (H a )T Pk G a Para un per´ ıodo de muestreo. Qa → Qo . p´gina 365). Cmin = 15. se deben calcular todos e a los valores propios y ordenarlos en una matriz sim´trica.4 voltios. donde los 2. Felizmente no es e necesario efectuar inversi´n de matrices porque el proceso controlado es o univariable y la operaciones con matrices generalmente fueron entre matrices sim´tricas. iteramos 20 veces la ecuaci´n anterior. o a resultando luego de 20 iteraciones en una matriz Pk+1 .3 ± o n 1. Ha → CT . Este valor offset es propio del servomotor empleado.05 y Qa = 0. dependiendo si n n la velocidad angular es positiva o negativa). . De esta forma reo ´ solvemos la ecuaci´n de Riccati para Po (como en el caso del controlador) o para luego poder calcular Ko .04. donde I3 es la matriz ´ identidad de orden 3. e Adem´s de la compensaci´n de la no linealidad producida por la fricci´n a o o de Coulomb (a˜adiendo ± 0. Se ha observado que ıodos de muestreo (lo P a alcanza un valor estacionario luego de 4 o 5 per´ cual es equivalente a 80 o 100 iteraciones). En el siguiente per´ a ıodo de muestreo. empezando con Pk igual a la matriz nula. Esta forma de c´lculo ahorra a tiempo de computaci´n. se considera tambi´n el efecto e de saturaci´n del servomotor cuando la se˜al de control sobrepasa los 2.33)). a Por ejemplo. y Cmax = 100. La matriz de ganancia Ko del filtro de Kalman se puede obtener aplicando dualidad al problema de control. Los par´metros de optimizaci´n empleados para o a o el controlador optimo son R = 0.

CPP. Inicializa_Sistema(). Estas funciones permiten facilitar el manejo de la tarjeta de adquisici´n de datos Lab-PC+. Una precauci´n a considerar es la de especificar que la compilaci´n se o o ejecute con el modelo de memoria “Large”. 2.&u). La compilaci´n de archivos para hacerlos ejecutables se realiza en Boro land C/CPP mediante un proyecto que involucre todos los archivos. 3.3 voltios.H para facilitar el manejo de la tarjeta de adquisicion de datos Lab-PC+.CPP: Constituye el software de control.CPP. configurar el hardware empleado.H.5. 4.t).CPP *Estas funciones permiten facilitar el manejo de la tarjeta *de adquisicion de datos Lab-PC+: Digital Input (16 bits).u).CPP y CON122.H *Archivo de declaracion de funciones definidas en R1LLIB. en nuestro caso.6 Control Adaptivo de un Servomotor No Lineal Los Programas Fuente 237 Los programas necesarios para la implementaci´n en tiempo real del siso tema de control adaptivo dise˜ado se estructuran en tres archivos de c´digo n o fuente. Estima_Parametros(Th. Este archivo emplea la librer´ de ıa funciones NI-DAQ [25] y llama a la funci´n ConfigurarHardware para. Mide_Variables(&y. los archivos R1LLIB. Archivo R1LLIB. 3.&vel. . Otra precauci´n es asegurarse o que al inicio y al final de la ejecuci´n de los programas.H.vel). 2. R1LLIB. Encuentra_Control(r. o Archivo R1LLIB. u=Aplica_Control(u.y. lo que se logra enviando la se˜al offset de 2. que tambi´n es un archivo de definiciones de e funciones declaradas en R1LLIB. Ensamblaje del Software de Control El software de control emplea en su ejecuci´n la siguiente secuencia: o 1. los cuales son: 1. n Los Programas Fuente Comentados /*R1LLIB.CPP.&r. Archivo CON122. 5. o precisamente. que es un archivo de declaraciones de funciones definidas en el archivo R1LLIB. el servomotor debe o estar parado.

unsigned. la entrada al timer de la se~nal //de muestreo en forma de una sucesion de pulsos en el bit //indicado en la descripcion del bus (PC0) static unsigned R1LAOPort. //Salida de Voltage por R1LAOPort void EnviarVoltage(float). R1LPollPort = pollPort. /*R1LLIB. Usa funciones de *lecto/escritura de registros (inportb.h> static unsigned R1LLSBPort. unsigned salPort. */ #if !defined (__R1LLIB_H_PRY) #define __R1LLIB_H_PRY //Configurando la tarjeta Lab-PC+ (Digital Input. Usa funciones de *lecto/escritura de registros (inportb. *Analog Output. // frecuencia de muestreo (Hertz) /* Inicializando la tarjeta de adquisicion de datos */ void ConfigurarHardware (unsigned pollPort. // direccion de la salida //anal’ogica (DAC0) static int R1LFS .H *Estas funciones permiten facilitar el manejo de la tarjeta *de adquisicion de datos Lab-PC+: Digital Input (16 bits).CPP *Archivo de declaracion de funciones definidas en R1LLIB.int). int frec) { int cuentaTimer. Timer Generator. //Analog Output. Polling. .h" #include <dos. Polling.h" #include "nidaq. // direccion del puerto digital //de polling PC0-7.238 Control Adaptivo *Analog Output. // direccion del MSB (bit mas //significativo del puerto digital de entrada PB0-7 static unsigned R1LPollPort.unsigned. unsigned lPort. Devuelve 0 o 1 int NivelClock (). outport). // direccion del LSB (bit menos //significativo) del puerto digital de entrada PA0-7 static unsigned R1LMSBPort. //Leer Nivel del clock (polling). */ #include "r1llib. Polling. Timer Generator. unsigned hPort. Timer) void ConfigurarHardware(unsigned. outport). Esto es. cuentaTimer = (int)(2000000/frec). //Leer Posicion (16 bits leidos por R1LLSBPort y R1LMSBPort) unsigned int LeerPosicion(). deviceCode.unsigned.

0.0).0).oct2.0x270).h> #include <math. oct2 = inportb(R1LMSBPort).h> 239 .1). ICTR_Setup(1. USE_LAB(). DIG_Prt_Config(1.6 Control Adaptivo de un Servomotor No Lineal R1LLSBPort = lPort. Init_DA_Brds(1. } /*************** CON122.salidaDigital).h" #include <stdio.3. R1LFS = frec. salidaDigital = (unsigned) (409.h> #include <alloc.h> #include <assert. // clock de muestreo = timer0 DIG_Prt_Config(1. return (bytePoll&1).(int)(lPort-0x270). outport(R1LAOPort.cuentaTimer. bytePoll = inportb (R1LPollPort).5*u-0. DIG_Prt_Config(1.5). oct1 = inportb(R1LLSBPort). } /*Detectando el numero de posiciones registrados en los contadores */ unsigned int LeerPosicion() { unsigned char oct1.CPP Software de Control **************/ #include "r1llib. R1LMSBPort = hPort.&deviceCode). } /*Enviando al puerto de salida el voltaje especificado */ void EnviarVoltage (float u) { unsigned salidaDigital.0. de acuerdo a la frecuencia indicada en ConfigurarHardware */ int NivelClock () { unsigned char bytePoll.5. R1LAOPort = salPort.0.0.(int)(hPort-0x270).h> #include <conio. return (255*oct2+oct1).(int)(pollPort . } /*Detectando verdadero o falso en forma alternativa.0).

Nk[5][5]. float Yk. Co.Sk[5]. /* valor LOW de la referencia */ const float HIGH_r= 1. K[3]. z. float *r. /*ESCALA contiene la escala rad/pulsos */ const float LOW_r = 1. Ce[3]. anterior y actual */ /*IDENTIFICACI’ON */ float Thk[5]. C y Kb del algoritmo del observador optimo */ float P[3][3]. Cmin.7). C[2]. N y matrices S(k). PsinS(k) y parametro rho */ float Cmax. Psin(k). Maux3[3][3]. Psn(k) y una matriz auxiliar */ float Phi[5]. void Mide_Variables(float *yk. el valor auxiliar div y el par’ametro r(k) */ float Pk[5][5]. Cmin. /*matrices Qb. float t). auxiliar y definitivo */ float ym1. Th[5].Psk[5][5]. /* ’ultimos dos valores de la posicion y del control. /* frecuencia de muestreo */ int p0. b2. He[3]. Phin[5]. su descomposicion usando Cholesky. pk. x[2].*19. del estado. R. b1. /*valores Cmax. /*valores de la salida. tsimul. Maux2[3][3]. /*vectores Psi(k). /*vectores de estimacion de parametros. el error actual. Rb. /*Declaracion de las miles de variables globales existentes */ float a1. Ps(k). G.*M_PI/3. Kb[2]. */matrices Q. /*coeficientes de la ecuacion de diferencias. /* max(eig(Psk))/min(eig(Psk)) */ /*Control Optimo y Observador Optimo */ float y. float Uk). um1. Ro. Ge[3][3]. void Encuentra_Control(float r. /* per’iodo de muestreo */ float t.Psn[5][5]. Maux1[3][3]. float ykp). ym2. C^a y K del controlador ’optimo */ float Qb[2][2]. ek. valor medio del control y valor medio de la salida */ float Td.*M_PI/(512. /* posicion en pulsos. P. float Aplica_Control(float u. TOL. Rb. um2.*M_PI/2. H[2]. del integrador. actualizaci\’on de los estados y de la se~nal de *control. tolerancia *para Riccati. void Estima_Parametros(float *Theta. U0. /*matriz P. R. Phins[5]. H. H^a. /* tiempo de simulacion actual y total */ float Fs. a2. u. G^a. lambda(k) y numero condicion de C */ float calculaC(). Cc. todos los valores son relativos */ float Q[3][3]..240 Control Adaptivo const float ESCALA= 2.. /* valor HIGH de la referencia */ /*Declaracion de las funciones GORDAS */ void Inicializa_Sistema(). Pb[2][2]. div. rr. G[2][2]. float *u). float *vel. LF. . rt.Psaux[5][5].

0043. } else { if(u<0. Fs= 100.) v = VcFC.. Vaux4[3].0410. Wth. U0 = 0. VcFC= . return u. Wth = .9614.1. if(fabs(ykp)<=Wth) { if(u<0.15.0479. /*ATENCION: LOS VALORES DE a1.) v = -VcFE. Raux1. VcFE. Sin Varilla */ a1=-1. b2= .3. G.6246.6246. . Usa InicializaHardware */ void Inicializa_Sistema() { /*Con Varilla a1=-1. b1= . b2 DEPENDEN DE LA Fs */ VcFE= . Hb. valor del umbral de velocidad angular y valor del offset. H.. Ofst. b1= . float ykp) { float v. para calcular matriz soluci\’on de Riccati */ /*Aplicacion del Control */ float VcFC. b2. } /*Inicializando parametros y variables globales (P. if(u>0.5.) v = VcFE.0.4) u= 1. b1.9631.) v = -VcFC. a2. y auxiliares de calculo */ float Vaux1[3]. a2= . a2. b2= . a2= . en la aplicacion de la se~nal de control */ ***** FUNCIONES **** ********************************************************/ float Aplica_Control(float u. a1. /*valores de tension equivalente a la friccion de Coulomb y a la friccion est\’atica. if(u>0. Vaux2[3].6 Control Adaptivo de un Servomotor No Lineal 241 /*Matrices de Riccati del controlador y del observador. } if(u+v<-1. else if(u+v>1. b1. Gb. Vaux3[3].0044.2. Pb. .5) u= -1.5.).4.. Ofst= 2. /*vectores auxil. EnviarVoltage(u+v+Ofst).

... Ce[0]= b2. P[2][0]= 0. u=0...242 Control Adaptivo Td= 1.Q[1][2]= 0. Ge[0][0]= 0.Ge[2][1]=-b1.. Pk[0][0] = 1000. Ce[1]= b1.... ym1 = ym2 = um1 = um2 = 0. float *r.Ge[1][1]=-a1.Qb[0][0]=. R =. Pb[0][0]=0.1. Estimando estado actual empleando observador optimo cuadratico */ void Mide_Variables(float *yk. Q[1][0]= 0.Qb[1][0]=0. k.)) *r= LOW_r. float t) { int i. Pk[1][0] = Pk[1][2] = Pk[1][3] = Pk[1][4] = 0.... Ge[0][2]=0...P[2][2]= 0. 0x270..<=t && t<100.01.. Pk[3][0] = Pk[3][1] = Pk[3][2] = Pk[3][4] = 0. Pk[4][4] = 1000. Pk[2][0] = Pk[2][1] = Pk[2][3] = Pk[2][4] = 0...e-3.<=t && t<60. y=0.Qb[1][1]=.P[0][2]= 0. C[1] = b1.... double delta.. G[0][1]= 1.. Cmin= 15. ConfigurarHardware(0x272. Pb[1][0]=0.Ge[0][1]= 1. x[0]=0. P[1][0]= 0. t = 0.05..P[1][2]= 0... .../Fs. P[0][0]= 0. p0 = LeerPosicion()...Q[2][2]= .Qb[0][1]=0.Q[0][1]= 0.. He[0]= 0. Thk[2] = Th[2] = b1. Pk[2][2] = 1000..P[0][1]= 0. niter.. y=0... tsimul= 100.. H[1] = 1. Q[0][0]= .. Pk[0][1] = Pk[0][2] = Pk[0][3] = Pk[0][4] = 0... } /*Midiendo posicion... 0x264.1.. j. Pk[1][1] = 1000.. H[0] = 0.. Ge[1][0]=-a2. x[1]= 0...Pb[1][1]=0. He[2]= 0. G[1][1]=-a1.Q[2][1]= 0..) || (80. TOL= 1.P[2][1]= 0.. Ge[1][2]=0.Q[0][2]= 0.Pb[0][1]=0.Q[1][1]= ... la consigna: r= r(t)*/ if(t<20. He[1]= 1... Ce[2]= 0... C[0] = b2.. Thk[0] = Th[0] = -a1. Q[2][0]= 0. Cc = 0. Cmax= 100. /*En primer lugar. float *vel. Rb =. Ge[2][0]=-b2. 0x271.01. EnviarVoltage(Ofst). Ge[2][2]=1. n=2.. Fs). Thk[4] = Th[4] = Cc. || (40. Pk[3][3] = 1000.04. velocidad y referencia. G[1][0] =-a2.P[1][1]= 0. z=0. Pk[4][0] = Pk[4][1] = Pk[4][2] = Pk[4][3] = 0. Thk[3] = Th[3] = b2.1. G[0][0] = 0. Thk[1] = Th[1] = -a2.

/*G. j++){ Vaux3[i] += G[i][j]*Vaux1[j].P(k) */ for(i=0. j<n.5. j<n.6 Control Adaptivo de un Servomotor No Lineal else *r= HIGH_r.j=0. i++){ Vaux3[i]= Vaux4[i]= 0. i<n.Ct */ for(Raux1= Rb..*(*yk-ym1)+ *vel)/(1.+5. i++) for(j=0. j<n. } /*2o. p0= pk. i++) Raux1 += C[i]*Vaux1[i].*Td). /*Y la salida */ y= *yk . Riccati */ delta= TOL+1. for(k=0. i<n. i=0.Gt */ 243 . Termino */ for(i=0.P(k). i<n. Termino> G. Vaux4[i] += Vaux2[j]*G[i][j]. i++) for(Vaux1[i]=Vaux2[i]=0. } /*Raux1= Rb + C. while(delta>TOL && 20>niter++) { /*P(k).P(k). *yk = ym1 + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA. i<n. k++) Maux2[i][j] += G[i][k]*Pb[k][j]. } } /*3er.Gt */ for(i=0..P(k) */ for(i=0. niter= 0. /*Y la velocidad angular */ *vel= (5. j<n. /*Y vamos con el Observador: Primero. i++) for(j=0. j++) Maux1[i][j]= Vaux3[i]*Vaux4[j]/Raux1. j++){ Vaux1[i] += Pb[i][j]*C[j]. i<n.Ct y C. Vaux2[i] += C[j]*Pb[j][i].Ct y C.*r.. for(j=0.P(k). k<n. j++){ Maux2[i][j]= 0. /*G. /*Ahora leo la posici\’on */ pk= LeerPosicion()..P(k).

Kb[i] /= Raux1. i<n. j<n. Kb[++i]=0.244 Control Adaptivo for(i=0. if(fabs(Pb[i][j]-Raux1)>delta) delta= fabs(Pb[i][j]-Raux1).C[1]*x[1]*/.Gt/(Rb+C.P */ for(Vaux1[i=0]=0.P. i=0. la siguiente funcion estima cuales son los *parametros actuales del sistema. j++){ Raux1= Qb[i][j]+Maux3[i][j]-Maux1[i][j].C[1]*x[1]. k<n. x[1]= x[1] + Kb[1]*rr. /*Y Final. float Yk. k. z = z . x[0]= x[0] + Kb[0]*rr.. i++) Raux1 += Vaux1[i]*C[i]. i<n. } }/* Fin de encontrar la de Riccati */ /*Encontramos ahora la de Observacion */ /*C. i++) for(j=0. .){ for(j=0. i<n. j<n. i<n.y /*C[0]*x[0] . j++){ Maux3[i][j]= 0. } /*Y ahora actualizamos los estados */ rr= y . Utiliza calculaC */ void Estima_Parametros(float *Theta. val1. float val. for(k=0. encontramos K= C.P..Ct) */ for(Kb[i=0]=0.C[0]*x[0] . Pb[i][j]= Raux1. i++) for(j=0. y partiendo de los parametros estimados hasta *entonces. Vaux1[++i]= 0. } /*Dado el estimado de la salida. j++) Kb[i] += Vaux1[j]*G[i][j]. j<n. k++) Maux3[i][j] += Maux2[i][k]*G[j][k].P. j...) for(j=0. j<n. float Uk) { int i. j++) Vaux1[i] += C[j]*Pb[j][i]. } /*Y Total */ delta= 0. i<n. /*R+C. la salida y la referencia *actuales.Ct */ for(Raux1= Rb. for(i=0.

6 Control Adaptivo de un Servomotor No Lineal 245 Phi[0]= ym1. i++) { Phin[i]= Phi[i]/Ro. i++) { for(k=0... i<5. j<5. Nk[j][j]= sqrt(Nk[j][j]-val). j<5. /* OJO QUE EN LA SIMULACION PONE "+=" */ val1+= Psk[i][i]. i++) Ro += Phi[i]*Phi[i]. for(i=0. for(j=0. k++) val += Nk[i][k]*Nk[j][k].. Sk[4]= 1. for(Ro=i=0.) Ro= sqrt(Ro). Phi[4]= 1. } } /*Y ahora encontramos la Sk*/ Sk[0]= 1. i<5. Nk[i][j]= (Nk[i][j]-val)/Nk[j][j]. j<5. for(i=j+1.5. Phi[1]= ym2. rt= 1. } /*Ahora hacemos Cholesky */ for(j=0.. val=0./(Nk[3][0]+Nk[3][1]+Nk[3][2]+Nk[3][3]). i++) { Phins[i]= Phin[i]/Sk[i]. Sk[3]= 1. if(Ro>1.. j++) val += Psk[i][j]*Phins[j]. Phi[3]= um2.. k<j./ Nk[0][0]. i<5. rt += val*Phins[i]. Phi[2]= um1. Sk[2]= 1. else Ro= 1. j++) Psk[i][j]= Sk[i]*Pk[i][j]*Sk[j]. /*Y ahora la Psk y la Phins*/ for(i=0./(Nk[4][0]+Nk[4][1]+Nk[4][2]+Nk[4][3]+Nk[4][4]). i<5. val=0. ek += Thk[i]*Phin[i]. for(j=0. val=0. i++) val += Nk[j][i]*Nk[j][i]. j++) Nk[i][j]= Pk[i][j]. Sk[1]= 1. i<j. val1= LF= ek= 0. LF += val*val. j++) { for(i=0./(Nk[1][0]+Nk[1][1]). j<5./(Nk[2][0]+Nk[2][1]+Nk[2][2]). i++) { for(j=0. i<5.. } . } /*Y ahora la ’Rt’ y la ’LF’ y el ’ek’ y el ’div’*/ for(i=0.

} /*Y la ’Psk’ (tambi’en se puede hacer O(n2) en vez de O(n3)) */ for(i=0. i++) { for(j=0. k<5. j<5. j<5. /*Y renovamos las variables */ if( Co<= Cmin ) for(i=0. i<5. val1+= Phins[k]*Psn[k][j]. j++) { . j<5. div= LF + rt . i++) for(j=0. ek = Yk/Ro .246 Control Adaptivo LF = 1-.. j<5. /*Ahora hacemos el Cholesky */ for(j=0.ek. j++) Pk[i][j]= Psk[i][j]. val= val1= 0. i++) { Thk[i]= Th[i]. /* Esto es de Psk */ } Theta[i] = Th[i] = Thk[i] + val*ek/Sk[i]/div/* en la simul*/. j++) { val += Psk[i][j]*Phins[j]. val= 0. for(j=0. i<5.1. } } /*Ahora calculamos la C */ Co= calculaC(). } else if(Co>= Cmax) { for(i=0. j++) Nk[i][j]= Psk[i][j]. j++) { for(k=0.. i<5. i++) { for(j=0.. j<5.5*(rt-sqrt(rt*rt-4. /*Ahora Th y Theta y algo de Psk */ for(i=0.val*val1/div/LF. i<5. Psn[i][j]= Psk[i][j].*LF/val1)). } Psaux[i][j]= Psk[i][j]= Psk[i][j]/LF . k++) { val += Psn[i][k]*Phins[k].

t. a2= -Theta[1]. c. b1= Theta[2].. val=0. Ge[0][0]= 0. } } /* */ ym2= ym1.. j.. l) {g=A[i][j]. } } /*Y ahora encontramos la Sk*/ Sk[0]= 1. Ce[1]= b1. A[k][l]= h+s*(g-h*tau). val=0. s./(Nk[4][0]+Nk[4][1]+Nk[4][2]+Nk[4][3]+Nk[4][4])... /*Y ahora la Psn y la Pk y la Thk*/ for(i=0. i++) { Thk[i]= Th[i].Ge[1][1]=-a1. Nk[i][j]= (Nk[i][j]-val)/Nk[j][j]. Sk[4]= 1... i++) val += Nk[j][i]*Nk[j][i]. sm. Cc= Theta[4]. Ge[1][2]=0. k. C[1] = b1. C[0] = b2.. b[5].} double D[5]. Sk[2]= 1. um1= Uk. ./ Nk[0][0]. H[1] = 1. double tresh.. z[5]. i<5. theta. i. i. Nk[j][j]= sqrt(Nk[j][j]-val). Ge[2][2]=1. i<5. j. tau.5.. b2= Theta[3]. H[0] = 0. 247 G[0][0] = 0. k++) val += Nk[i][k]*Nk[j][k]. G[1][1]=-a1. Sk[1]= 1. Ce[2]= 0. val. a1= -Theta[0]. He[2]= 0.Ge[2][1]=-b1.. G[1][0] =-a2. } /*Calculando el numero condicion de la matriz de covarianza de la estimacion. nrot. h. Ge[2][0]=-b2. Sk[3]= 1.A[i][j]=g-s*(h+g*tau). ym1= Yk. iq. g. ip. k. Ge[0][2]=0. i++) { for(k=0. Esto es: abs(max(eig(Psk))/min(eig(Psk))) */ float calculaC() { #define ROTATE(A./(Nk[1][0]+Nk[1][1]). G[0][1]= 1.Ge[0][1]= 1. int n=5.h=A[k][l]. j++) Pk[i][j]= Psn[i][j]= Sk[i]*Psk[i][j]*Sk[j]..../(Nk[3][0]+Nk[3][1]+Nk[3][2]+Nk[3][3]). He[1]= 1. for(i=j+1./(Nk[2][0]+Nk[2][1]+Nk[2][2]).. i<j. j<5. for(j=0. Ge[1][0]=-a2. Ce[0]= b2. He[0]= 0. um2= um1.6 Control Adaptivo de un Servomotor No Lineal for(i=0. int end=0. k<j.

. for(ip=0. i<50 && !end. . y b y D a la diagonal de A */ for(i=0.2*sm/(n*n). else tresh= 0.5*h/Psaux[ip][iq]. if(sm== 0. ahora */ for(ip=0. iq++) sm += fabs(Psaux[ip][iq]). iq<n. ip<n-1. if(fabs(h)+g==fabs(h)) t= Psaux[ip][iq]/h.. continue. else if(fabs(Psaux[ip][iq])>tresh) { h= D[iq]-D[ip]. ip<n-1. iq<n. /*e iteraciones duras. else { theta= .. z[i]= 0. i<n.+theta*theta))./(fabs(theta)+sqrt(1. saltar la rotacion si es peque~na */ if(i>4 && (fabs(D[ip]) +g == fabs(D[ip])) && (fabs(D[iq]) +g == fabs(D[iq]))) Psaux[ip][iq]= 0. t= 1. ip++) for(iq= ip+1.*fabs(Psaux[ip][iq]). /*Pasados cuatro items. for(i=0. } /*en los primeros tres pasos*/ if(i<4) tresh= . } nrot= 0. ip++) { for(iq= ip+1.) { end= 1.248 Control Adaptivo /*Este es el Algoritmo de Jacobi Inicializamos V a la Identidad.. i++) { b[i]= D[i]= Psaux[i][i]. iq++) { g= 100. i++) { /*para ver si ya hemos acabado */ sm= 0.

Psaux[ip][iq] = 0./sqrt(1+t*t).. z[ip] -= h.+c). iq). } /*Vamos a ordenar los VEPS y los VAPS */ for(i= 0. j++) ROTATE(Psaux. ip.5. nrot++. for(j= iq+1. float *U) . } } return fabs(D[0]/D[4]). } } } for(ip=0. } /*La siguiente funci\’on emplea el error del sistema y la nueva estimacion de los parametros */ void Encuentra_Control(float r. ip++) { b[ip] += z[ip]. return 1. j.. z[ip] = 0.. D[iq] += h. j<n. tau= s/(1. j). j<iq. j++) ROTATE(Psaux. j++) if(D[j]>= val) val= D[k=j].6 Control Adaptivo de un Servomotor No Lineal if(theta<0. D[ip] = b[ip]. z[iq] += h. D[ip] -= h. i<n. j. j<n . } } if(!end) { puts("Demasiadas iteraciones en Jacobi\n"). i++) { val= D[k=i]. iq. for(j= ip+1. iq). D[i]= val. for(j= 0 .) t= -t. ip. j. } c= 1. j<ip. if( k!=i ) { D[k]= D[i]. j. for(j=i+1. j. 249 s= t*c. j++) ROTATE(Psaux. ip<n. ip. h= t*Psaux[ip][iq].

k<n. i++) for(j=0. Vaux4[i] += Vaux2[j]*Ge[j][i]. for(j=0. for(k=0. k++) Maux3[i][j] += Maux2[i][k]*Ge[k][j]. } /*Raux1= R + H’P(k). } /*Y Total */ Control Adaptivo . i<n. Termino> G’P(k).H y H’P(k) */ for(i=0. i++) for(j=0. j++){ Vaux1[i] += P[i][j]*He[j]. j<n. i<n. j++){ Maux2[i][j]= 0...250 { int i. n=3. delta= TOL+1. Termino */ for(i=0. k++) Maux2[i][j] += Ge[k][i]*P[k][j].. /*G’P(k) */ for(i=0. i++){ Vaux3[i]= Vaux4[i]= 0. j++){ Maux3[i][j]= 0. i++) for(Vaux1[i]=Vaux2[i]=0.. i++) for(j=0. k<n. j++) Maux1[i][j]= Vaux3[i]*Vaux4[j]/Raux1. i++) Raux1 += He[i]*Vaux1[i]. } /*3er. k. } /*2o. niter. for(k=0.. j<n.G */ for(i=0.H y H’P(k). j<n. Vaux2[i] += He[j]*P[j][i]. i<n. j<n.j=0.H */ for(Raux1= R. j++){ Vaux3[i] += Ge[j][i]*Vaux1[j]. i<n. while(delta>TOL && 20>niter++) { /*P(k). i=0. i<n. niter= 0. i<n. double delta. j. /*G’P(k).G */ for(i=0. j<n.

){ for(j=0. n. x[0] = Raux1. float *yv. i<n.G/(R+H’P. n= (int)t. r. 251 .H) */ for(K[i=0]=0. Vaux1[++i]= 0. } /*encontrando el control y el nuevo estado del Observador*/ u= -(K[0]*x[0] + K[1]*x[1] + K[2]*z). assert(NULL!=(yv= (float *)calloc(n/5. i<n. assert(tsimul<120). j<n. i++) for(j=0. if(fabs(P[i][j]-Raux1)>delta) delta= fabs(P[i][j]-Raux1).6 Control Adaptivo de un Servomotor No Lineal delta= 0. y. i<n.sizeof(float)))). } /*Funci\’on principal del programa */ void main() { int ant=0.) for(j=0. assert(NULL!=(uv= (float *)calloc(n/5. act=0. for(i=0. encontramos K= H’P. *rv. FILE *out. j<n. K[++i]=0. /*Y Final. P[i][j]= Raux1. Raux1= G[0][0]*x[0] + G[0][1]*x[1] + H[0]*u. i=0.H */ for(Raux1= R. assert(NULL!=(rv= (float *)calloc(n/5. clrscr().sizeof(float)))). t= tsimul/Td. Inicializa_Sistema(). } }/* Fin de encontrar la de Riccati */ /*Encontramos ahora la de control */ /*H’P */ for(Vaux1[i=0]=0. u. j++){ Raux1= Q[i][j]+Maux3[i][j]-Maux1[i][j].. /*ahora encontramos el valor ABSOLUTO */ *U = u + ((1. j++) K[i] += Vaux1[j]*Ge[j][i].5. K[i] /= Raux1.. /*R+H’P. i<n. k. *uv.sizeof(float)))).+a1+a2)*r-Cc)/(b1+b2). vel. j<n. j++) Vaux1[i] += He[j]*P[j][i].. x[1] = G[1][0]*x[0] + G[1][1]*x[1] + H[1]*u. i++) Raux1 += Vaux1[i]*He[i].

17)) y para la ley de control optima se eligi´ R = 0. for (int i=0. n o Dos casos extremos fueron tomados en consideraci´n: el control con auseno cia de carga (figura 5. o Los experimentos se realizaron con los siguientes par´metros de optia mizaci´n.16).16) y (5. En ambos casos. } ant=act. y a la saturaci´n del servomotor). Resultados Experimentales Los resultados experimentales mostrados en las figuras 5. y. &u). &r."%10f %10f %10f %10f %10f\n".. } k++. printf("%f". if ((ant==0)&&(act==1)) { Mide_Variables(&y. for(k=0. t += Td.16 demuestran la validez del procedimiento de dise˜o sugerido.10.252 t= u= vel= y= 0.out". Encuentra_Control(r.5). i<n/5. el controlador adaptivo es capaz de controlar la posici´n del o eje del servomotor a pesar de la presencia simult´nea de la carga no lineal a y de las no linealidades inherentes (las fricciones est´tica y de Coulomb. Dichos resultados n se obtuvieron para una se˜al de referencia escal´n cambiante de π/3 a π/2. if(!(k%5)) { yv[k/5]= y. vel). rv[k/5]= r. k<n. Para el estimador de estado se seleccion´ Qo = 0. t). i++) fprintf(out. } Control Adaptivo 5. gotoxy(5.) { act=NivelClock().05 ´ o . u= Aplica_Control(u."wt"). uv[k/5]= u. &vel. out=fopen("c2. i*5*Td. u). yv[i].6.t). rv[i]-yv[i]). fclose(out). if(kbhit()) if(getch()==27) break.15 y 5. uv[i]. Estima_Parametros(Th.04 o o (ecuaciones (5.15) y el control con carga no lineal (figura 5. } EnviarVoltage(Ofst).01 y Ro = 0. rv[i].

5. n Problema 5.27)).12).1I3 (ecuaci´n (5. la selecci´n del tiempo o o de muestreo es a conveniencia del dise˜o. o 2 Posición (radianes) 1.1 presenta las ecuaciones que gobiernan la din´mica del sisa tema de suspensi´n de un bus (ver figura 3. y luego de 20 segundos. seg´n el caso.5. donde I3 es la matriz identidad de dimeno si´n tres.5 1 0. suficientemente grande como para poder o efectuar todo el c´mputo requerido por muestra.01 s.7.5 0 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100 1.1 El problema 3. fue de Ts =0. la soluci´n a los o problemas se encuentra.5 0 −0. En cada problema. Dise˜ar un sistema de control o n adaptivo con autosintonizaci´n para lograr el objetivo de control siguieno te: la salida del proceso y = x2 − x1 (referencia nula) no debe presentar sobreimpulsos mayores que el 5 %.15: Control adaptivo de la posici´n del servomotor. las oscilaciones . Problemas Resueltos En la secci´n problemas resueltos de los cap´ o ıtulos 4 al 8. Primer caso: o servomotor no acciona carga alguna.7 Problemas Resueltos 253 y Qa = 0.5 −1 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100 Figura 5. El tiempo de muestreo.5 Señal de control (voltios) 1 0. en uno o m´s archivos con extensi´n u a o m escritos en c´digo MATLAB.

% MODELO LINEAL A = [0 1 0 0 -b1*b2/(m1*m2) 0 a23 -b1/m1 . a Soluci´n: Ver programa p3adap1. k1 = 80000.254 2.5 Posición (radianes) 2 1. a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1. b2 = 15020. Ejecute el programa p3adap1.5 0 −0. Este es un problema de rechazo a los o disturbios. Es interesante anotar que el car´cter adaptivo del sistema de a control dise˜ado. k2 = 500000.5 Señal de control (voltios) 1 0. a33 = -(b1/m1+b1/m2+b2/m2).5 0 0 10 20 30 40 50 60 Tiempo en segundos 70 80 Control Adaptivo 90 100 1.m con este nuevo dato y ver´ que el objetivo de control a pr´cticamente se sigue cumpliendo. originadas por un disturbio escal´n de 10 cm (provocadas por imperfecciones o en la pista).m SOLUCION DEL PROBLEMA 5.1 clear all % PARAMETROS DEL PROCESO m1 = 2500.16: Control adaptivo de la posici´n del servomotor.m. a % p3adap1. pr´cticamente deben desaparecer. b1 = 350. a43 = -(k1/m1+k1/m2+k2/m2). Supongamos que la masa ıe del bus sin pasajeros es m1 = 2500 kg y lleno cambia a 3500 kg.5 −1 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100 Figura 5. Segundo caso: o servomotor acciona la carga no lineal.5 1 0. permite que las especificaciones de rechazo del disturbio n se mantengan a pesar de que var´ la masa del bus. m2 = 320.

a3 = den(4). F. % TIEMPO DE MUESTREO [G.C. thi =[-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4 Ce]’. U(4)=0. % nn: ORDEN DEL PROCESO. % FACTOR DE MEMORIA Y(1) = 0.C. % ESPACIO DE ESTADO FT CUANDO ACTUA LA SE~NAL CONTROL u Y EL DISTURBIO w ES NULO [num. cuando act’ua disturbio w y control u es nulo [numd.H. % MAGNITUD DE LA SE~NAL DE REFERENCIA nn = 4.0 -b2/m2.03*t1)). 255 % % % % % % % % % % % .H.T.0 0 1 0 0. xmenos = zeros(nn.T. % SALIDA U(1)= 0. PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1. SE~NAL DE REFERENCIA W(t1+4) = 0. Pi = alfa*eye(NN).98.(1/m1+1/m2) -k2/m2].D. a1 = den(2).1).H.1/m1 b1*b2/(m1*m2). j3=numd(4). w(5)=0. del proceso: y = (num/den)*u + (numd/den)*w PARAMETROS PARA OPTIMIZAR LA GANANCIA F DEL FILTRO DE KALMAN Xi = 1.5.C.D] = c2dm(A.D. Sigma = 1.2).dend]=ss2tf(G.1).5.C. a4 = den(5).0 0 0 0 1]. CONVERSION AL ESPACIO DISCRETO T=0. C = [0 0 1 0]. CONDICIONES INICIALES Ref = 1. b4 = num(5). Qa = 1*[1 0 0 0 0.0 1 0 0 0. LAZO DEL SISTEMA DE CONTROL ADAPTIVO ******************** for t=1:MM. U(3) = 0.01.. % MATRIZ P INICIAL lamb=0. Y(2) = 0.D. B = [0 0.0 0 0 1 0. w(4)=0. SE~NAL DEL DISTURBIO w(t1+4) = 0. Y(3) = 0.B. U(2) = 0.%*sign(sin(0.den]=ss2tf(G. b1 = num(2). Y(5) =0. F. % NUMERO DE PARAMETROS A ESTIMAR Ce = (1 + a1 + a2+ a3+a4)*Ref. % VECTOR DE OBSERVACION INICIAL z=0. r=1. r: NUMERO DE SALIDAS NN=13. b2 = num(3). a2 = den(3). j2=numd(3).. b3 = num(4). MODELO LINEAL DEL PROCESO CON DISTURBIO Y(t1+4)=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) . w(3) = 0. Y(4)=0. j4=numd(5). t1=t+1.T. alfa=1000. U(5)=0. % ACCION INTEGRAL INICIAL MM = 200.’zoh’). % CONTROL w(1)= 0. D = [0 0]. w(2) = 0.7 Problemas Resueltos b2/m2 0 a33 1 k2/m2 0 a43 0]. % dend = den j1=numd(2).

cmin = 15. numde = [1 je1 je2 je3 je4].psin’*thi.256 Control Adaptivo U(t1+3) U(t1+2) U(t1+1) U(t1) . end % RECUPERACION DE LA ECUACION DE ESTADO ae1=-th(1). Ce=th(13). ae4=-th(4). dene = [1 ae1 ae2 ae3 ae4]. thi = th. Hns = Ps*psins/j. psin = psi/rho.. Psnew = Snew*Ps*Snew. be2=th(6). psins = inv(S)*psin...CE. ae3=-th(3). ae2=-th(2). be4=th(8).DE] = tf2ss(nume. j = psins’*Ps*psins + lamb.. e = Y(t1+4)/rho . Ps = (Ps .Hns*psins’*Ps)/lamb. w(t1+3) w(t1+2) w(t1+1) w(t1) 1]’. je2=th(10). je1=th(9). nume = [0 be1 be2 be3 be4]. je3=th(11). Nn = chol(Pi’). Ps = S*Pi*S.norm(psi)). S = inv(diag(Nn*ones(NN. w(t1+3) w(t1+2) w(t1+1) w(t1)]*.FE.1). [GE. thi = th.HE.. je4=th(12). cmax = 100..DE] = tf2ss(numde. th = thi + e*inv(S)*Ps*psins/j. elseif tt >= cmax. if tt <= cmin. % salida residual % ESTIMACION DE PARAMETROS (METODO MCRM) psi=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) U(t1+3) .W(t1+4).. [GE. lamb = 1 -(rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2.1). be1=th(5). rt = 1 + psins’*Ps*psins. rho = max(1. tt = abs(max(eig(Ps))/min(eig(Ps)) ).CE. y(t1+4) = Y(t1+4) . Nnew = chol(Ps’). % CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN . [-a1 -a2 -a3 -a4 b1 b2 b3 b4 j1 j2 j3 j4]’.dene). Pi = Psnew. Pi = Ps..dene). be3=th(7).0)). U(t1+2) U(t1+1) U(t1) . % Nnew*Nnew’ = Ps’ Snew = inv(diag(Nnew*ones(NN.0)).

zeros(r. % CALCULO DE LA SE~NAL ACTUAL DE CONTROL U U(t1+4) = u(t1+4) + Uin.1. grid ylabel(’Salida y = x1-x2 (m)’) xlabel(’Tiempo en segundos’) subplot(2.MM*T.r)].7 Problemas Resueltos F = dlqe(GE.r)].Sigma. end % ********** FIN DEL LAZO DE CONTROL % GRAFICOS ejex = linspace(0. xmas = xmenos + F*(y(t1+4) . Ca = [CE zeros(r. % ACTUALIZACION DE ESTADOS xmenos = GE*xmas + HE*u(t1+4).MM). AE = 1 + ae1 + ae2 + ae3 + ae4.-CE eye(r.Ce).U(6:MM+5)). o ´ o o Se pide dise˜ar un sistema de control adaptivo que genere una fuerza n de control.W(6:MM+5). subplot(2. El objetivo de control entonces es dise˜ar un autopiloto que manipulando el angulo δe del deflector de elen ´ vaci´n. Ka = dlqr(Ga.Y(6:MM+5)).1.ejex. si la entrada de .14) ´ o o es un problema longitudinal a resolver.2 El problema 3. % OBSERVACION z = z -CE*xmas.R).Ka*[xmas. El control del angulo de inclinaci´n θ del avi´n (ver figura 3.Qa.Xi).2). grid plot(ejex. grid xlabel(’Tiempo en segundos’) ylabel(’Fuerza de control (N)’) print -deps -f p3adap1 257 Problema 5. controle el angulo de inclinaci´n del avi´n. BE = be1 + be2 + be3 + be4. Uin = inv(BE)*(AE*W(t1+4) .FE. Por ejemplo.5. % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t1+4) = . con un error en estado estable nulo.z].Ha.CE*xmenos).CE. de modo que la salida del proceso (el angulo de inclinaci´n θ) ´ o presente un sobreimpulso menor al 10 % y un tiempo de estabilizaci´n menor o que 10 s. % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn. % ec (22) y ec.% -Kw*w(t1+4).r)].r). (23) Ha = [HE.1) plot(ejex.2 describe las ecuaciones que gobiernan la din´mica longitudia nal de un avi´n comercial volando a velocidad de crucero (altura y velocidad o constantes).

2 rad. Qa = [0 0 0 0. cmin = 15.2 rad.01 Salida y = x1−x2 (m) 0.001].22 rad.005 0 −0. y luego de 10 segundos.258 0.01 0 Control Adaptivo 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100 −20 Fuerza de control (N) −40 −60 −80 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100 Figura 5.0 56.0139 -0. r+nn=4 R = 400.m SOLUCION DEL PROBLEMA 5.0 0 0 0. % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-0.313 56. entonces el angulo de inclinaci´n no debe exceder el ´ o valor de ± 0.0 0 0 0.0203. referencia es ± 0. r=1.0. Xi = 1.0].426 0. % p4adap1. .232. corresponn dientes al problema 5.1. % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Sigma = 10.7 0]. Bc = [0. r: NUMERO DE SALIDAS NN = 7.0 0 0.001 0.7 0.-0. permanecer en ± 0. % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS % cmax = 100.2 clear all % PARAMETROS DEL PROCESO nn = 3. % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke. % nn: ORDEN DEL PROCESO.005 −0.17: Salida y = x1 − x2 y la fuerza de control dise˜ada.

% proceso Y(t+3) = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t)]*. y(2)=0.D]=c2dm(Ac.2. % MATRIZ P INICIAL lamb=0. T = 0. Y(2)=0. psins = inv(S)*psin. U(3)=0. % ACCION INTEGRAL INICIAL % LAZO DEL SISTEMA DE CONTROL ***************************** MM = 2000. % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 -a3 b1 b2 b3 Ce]’.. [num.7 Problemas Resueltos Cc = [0 0 1].den]=ss2tf(G.C.Hns*psins’*Ps)/lamb.5. y(3)=0.Bc. e = Y(t+3)/rho . a1 = den(2). b2 = num(3). y(1)=0. Pi = alfa*eye(NN). % SALIDA U(1)=0. % SALIDA RESIDUAL (DESVIACION) % ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t) 1]’. % Nn’*Nn = Pi => Nn*N’ = Pi’ S = inv(diag(Nn*ones(NN. Dc = [0]. % CONTROL xmenos = zeros(nn.T.Dc. psin = psi/rho.1). [-a1 -a2 -a3 b1 b2 b3]’. lamb0 = 0. u(3)=0.1). rt = 1 + psins’*Ps*psins. a3=den(4). j = psins’*Ps*psins + lamb. u(2)=0.Cc.v1(t+3). % CONDICIONES INICIALES Ref = 0.2*sign(sin(0. Y(3)=0.0)).005*t)). a2 = den(3).psin’*thi. U(2)=0.D).’zoh’). th = thi + e*inv(S)*Ps*psins/j.99.H. y(t+3) = Y(t+3) . b1 = num(2). alfa=1000. rho = max(1.1.C. Nn = chol(Pi’).98. Hns = Ps*psins/j.(rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2. u(1)=0. % PERIODO DE MUESTREO % MODELO LINEAL DISCRETO [G. 259 .H. % VECTOR DE OBSERVACION INICIAL z=0. % MAGNITUD DE LA SE~NAL DE REFERENCIA Ce = (1 + a1 + a2 + a3)*Ref. for t = 1:MM % SE~NAL DE REFERENCIA v1(t+3)=0. % FACTOR DE MEMORIA Y(1)=0. Ps = S*Pi*S. Ps = (Ps ..norm(psi)). b3=num(4). lamb = 1 .

dene = [1 ae1 ae2 ae3].dene). grid .R). % OBSERVACION z = z -CE*xmas.r)]. ae3 = -th(3). Psnew = Snew*Ps*Snew.Ce).Xi). % Nnew*Nnew’ = Ps’ Snew = inv(diag(Nnew*ones(NN.Qa.HE. % ACCION INTEGRAL CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn. subplot(2.zeros(r.CE.MM*T. Uin = inv(BE)*(AE*v1(t+3) .Ha.Y(3:MM+2)).1. CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+3) = .r)]. xmas = xmenos + F*(y(t+3) . [GE.HE.1) plot(ejex.U(3:MM+2)).1). Nnew = chol(Ps’). cmax = 100.DE] = tf2ss(nume. be2 = th(5). end RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 = -th(1).v1(3:MM+2). BE = be1 + be2 + be3. if tt <= cmin.z].Ka*[xmas.r)]. nume = [0 be1 be2 be3].CE. grid ylabel(’Inclinacion (rad)’) subplot(2. be3 = th(6). CALCULO DE LA SE~NAL ACTUAL DE CONTROL U(K) U(t+3) = u(t+3) + Uin.Sigma.260 Control Adaptivo % % % % % % % tt = abs(max(eig(Ps))/min(eig(Ps)) ). % ec. (27) ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+3).CE*xmenos). Ca = [CE zeros(r. cmin = 15.-CE eye(r.r).2) plot(ejex. % CALCULO DEL VALOR DE EQUILIBRIO U AE = 1 + ae1 + ae2 + ae3.ejex.1. end % ********************************* % GRAFICOS ejex = linspace(0. Ka = dlqr(Ga. thi = th. Pi = Ps. Pi = Psnew. Ce = th(7). CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE. elseif tt >= cmax. Ha = [HE.0)).MM). be1 = th(4). ae2 = -th(2). thi = th.

Revise tal programa si desea ver detalles al respecto.2.4 0 261 20 40 60 80 100 120 140 160 180 200 Angulo del deflector (rad) 1 0.2 −0. El programa p7adap1b.4 Inclinación (rad) 0. Luego enfrente el problema de seguimiento.m trata el caso de referencia arbitraria.2 0 −0.3 La figura 3. Simule una se˜al de ren ferencia que cambie la velocidad de 30 a 20 m/s y demuestre que se cumplen las especificaciones de dise˜ o.5.7 Problemas Resueltos xlabel(’Tiempo en seg’) ylabel(’Angulo del deflector (rad)’) print -deps -f p4adap1 0.5.5 0 −0. n Mostrar que la velocidad de la m´quina puede seguir una trayectoria prea determinada de velocidades. Para garano tizar a los pasajeros un viaje confortable. los cambios de velocidad deben realizarse con un tiempo de estabilizaci´n menor que 15 s y con m´ o ınimo sobreimpulso.18: Angulo de inclinaci´n θ y se˜al de control (´ngulo del deflector) o n a correspondientes al problema 5.20 muestra un monorriel de dos carros descrito en el problema 3.5 −1 0 20 40 60 80 100 120 Tiempo en seg 140 160 180 200 ´ Figura 5. El error en estado estable debe ser nulo. Problema 5. . El problema a resolver es el control de velocidad del carro de m´quinas a mediante un sistema de control adaptivo con autosintonizaci´n.

99. alfa=1000. r: NUMERO DE SALIDAS NN = 13.D.C. D=[0. % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 -a3 -a4 -a5 -a6 b1 b2 b3 b4 b5 b6 Ce]’. b4=num(5).denc]=ss2tf(A. Y(6)=0. b2 = num(3). Qa = 1*eye(r+nn.’zoh’). y(4)=0. b5=num(6).2 [G. b1 = num(2). a1 = den(2). r=1. B3=10000. % MAGNITUD DE LA SE~NAL DE REFERENCIA Ce = (1+a1+a2+a3+a4+a5+a6)*Ref. [num. B12=500. % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO A=[0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0 0 0 0 1 0 0 K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2 0 0 0 0 0 1 0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3]. a4=den(5). M2=2600.C. % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 2. B2=10000. B23=500.C.5. [numc. % CONSTANTE TACOMETRICA C=[ 0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa]. B=[0 1 0 0 0 0]’.r+nn).98. b3=num(4). K23=100000. a5=den(6). Y(5)=0. a3=den(4).D).H. % MATRIZ P INICIAL lamb=0. Y(3)=0. Y(2)=0. a6=den(7). Sigma = 1.262 Control Adaptivo % p7adap1a. y(3)=0. y(6)=0. M3=2600.H. lamb0 = 0.D). alfa = 1.T. % MODELO LINEAL DISCRETO T = 0.C. Pi = alfa*eye(NN). % periodo de muestreo0. % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS % cmax = 100. % CONDICIONES INICIALES Ref = 30.0].B. b6=num(7). a2 = den(3).3 clear all % PARAMETROS GENERALES nn = 6. y(5)=0. % FACTOR DE MEMORIA Y(1)=0.D]=c2dm(A.B. B1=5000. % PARAMETROS DEL PROCESO M1=1300. y(1)=0. % salida . y(2)=0.den]=ss2tf(G. K12=100000. cmin = 15. % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1. Y(4)=0.0.m SOLUCION DEL PROBLEMA 5. % nn: orden del proceso.

.. ae2=-th(2). cmin = 15. U(5)=0. e = Y(t+6)/rho . psin = psi/rho.1). Hns = Ps*psins/j. j = psins’*Ps*psins + lamb. % ACCION INTEGRAL INICIAL INICIO DEL LAZO DE CONTROL ******************* MM = 600.0)).(rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2. if tt <= cmin. U(2)=0. thi = th.. u(2)=0. u(5)=0. ae3=-th(3). U(t+5) U(t+4) U(t+3) U(t+2) U(t+1) U(t) 1]’. rho = max(1. u(3)=0. ae4=-th(4). elseif tt >= cmax. psins = inv(S)*psin. % salida residual (desviaci´n) o ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+5) Y(t+4) Y(t+3) Y(t+2) Y(t+1) Y(t). % control xmenos = zeros(nn. [-a1 -a2 -a3 -a4 -a5 -a6 b1 b2 b3 b4 b5 b6]’. Ps = (Ps .Yo(t+6).Hns*psins’*Ps)/lamb.0)).7 Problemas Resueltos U(1)=0. 263 % % % % % . u(4)=0.1). U(6)=0. Ps = S*Pi*S.. thi = th. U(3)=0. ae6=-th(6). Nn = chol(Pi’). U(t+5) U(t+4) U(t+3) U(t+2) U(t+1) U(t)]*. Pi = Psnew. Nnew = chol(Ps’).02*t)). end RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1=-th(1). cmax = 100. % Nn’*Nn = Pi => Nn*N’ = Pi’ S = inv(diag(Nn*ones(NN. ae5=-th(5). u(1)=0.1).. y(t+6) = Y(t+6) .. rt = 1 + psins’*Ps*psins. for t = 1:MM SE~NAL DE REFERENCIA Yo(t+6)= 25 + 5*sign(sin(0. MODELO LINEAL DEL PROCESO Y(t+6) = [Y(t+5) Y(t+4) Y(t+3) Y(t+2) Y(t+1) Y(t).norm(psi)). Psnew = Snew*Ps*Snew. U(4)=0.psin’*thi. tt = abs(max(eig(Ps))/min(eig(Ps)) ). Pi = Ps. th = thi + e*inv(S)*Ps*psins/j.5. u(6)= 0. % Nnew*Nnew’ = Ps’ Snew = inv(diag(Nnew*ones(NN. lamb = 1 . % VECTOR DE OBSERVACION INICIAL z=0.

ae41=0. ae31=0. ae15=0.HE. be2=th(8). Ha = [HE.264 be1=th(7). ae32=0. % ec. ae26=0. ae42=0.r)].be31.Ka*[xmas.Sigma. HE=[be11. ce15=be2. Ca = [CE zeros(r. ae12=1. be51=0. CE = [ce11 ce12 ce13 ce14 ce15 ce16]. ce12=be5. ae44=0.CE. CALCULO DE LA SE~NAL DE CONTROL U(k) U(t+6) = u(t+6) + Uin. ae43=0. ae13=0. ae36=0.be21.Ha. ce16=be1.Xi). (15) AE = 1 + ae1 + ae2 + ae3 + ae4 + ae5 + ae6. ae46=0. ce11 =be6. ae65=-ae2. ae16=0.R). ae62=-ae5. . CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE. % OBSERVACION z = z -CE*xmas. Control Adaptivo % % % % % % be11=0.Ce).r)]. BE = be1 + be2 + be3 + be4 + be5 + be6. (27) ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+6).r). be61=1. ae25=0. ae54=0.be61]. ae52=0. be21=0. ae55=0. ae22=0. be4=th(10). ae35=0.-CE eye(r.be51. CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+6) = . ae34=1. ae21=0.be41. end % FIN DEL LAZO DE CONTROL ********************** GRAFICOS ejex = linspace(0. Uin = inv(BE)*(AE*Yo(t+6) . Ce=th(13).Qa.MM*T. be3=th(9). ae11=0.CE*xmenos). Ka = dlqr(Ga. ae33=0. DE = [0]. be6=th(12). ae53=0. ae45=1. ae66=-ae1. % ec.r)]. ce14=be3. GE = [ae11 ae21 ae31 ae41 ae51 ae61 ae12 ae22 ae32 ae42 ae52 ae62 ae13 ae23 ae33 ae43 ae53 ae63 ae14 ae24 ae34 ae44 ae54 ae64 ae15 ae25 ae35 ae45 ae55 ae65 ae16 ae26 ae36 ae46 ae56 ae66].z]. be41=0. xmas = xmenos + F*(y(t+6) . ae64=-ae3. ae24=0. ae61=-ae6. ae63=-ae4. be31=0. ae14=0. ae56=1.zeros(r. ce13=be4. be5=th(11).MM). ae51=0. ae23=1. % ACCION INTEGRAL CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn.

1) plot(ejex. Problema 5. Para no saturar al actuador (el o amplificador de potencia).6.2) plot(ejex.3.5.Y(7:MM+6)).1.1. la se˜al de control debe estar dentro del rango n de ± 200 voltios.m SOLUCION DEL PROBLEMA 5.U(7:MM+6)). El problema a resolver es posicionar suavemente el ascensor en un piso determinado. o % p8adap1.4 La figura 3. grid xlabel(’Tiempo en segundos’) ylabel(’Voltaje de control u’) print -deps -f p7adap1a 40 Y1: Velocidad (m/s) 30 20 10 0 0 265 50 100 150 200 Tiempo en segundos 250 300 30 Voltaje de control u 20 10 0 −10 0 50 100 150 200 Tiempo en segundos 250 300 Figura 5.19: Velocidad del carro de m´quinas y la fuerza de control para el a problema 5.7 Problemas Resueltos subplot(2.4 .Yo(7:MM+6). lo que significa sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizaci´n menor que 10 s. grid ylabel(’Y1: Velocidad (m/s)’) xlabel(’Tiempo en segundos’) subplot(2.22 muestra el proceso ascensor tratado en el problema 3.ejex. Dise˜ar un sistema de control de posici´n adaptivo con n o autosintonizaci´n que cumpla las especificaciones pedidas.

Qa = 1*eye(r+nn.H. Dc = [0]. b4=num(5).3.Cc. clear all % PARAMETROS GENERALES nn = 4. Sigma = 400. r=1.266 40 Y1: Velocidad (m/s) 30 20 10 0 0 Control Adaptivo 50 100 150 200 Tiempo en segundos 250 300 30 Voltaje de control u 20 10 0 −10 0 50 100 150 200 Tiempo en segundos 250 300 Figura 5. a1 = den(2). La referencia es arbitraria.C. Cc = [0 1 0 0].8.Bc.den]=ss2tf(G. % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-0. b2 = num(3).0]. % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS % cmax = 100. % nn: orden del proceso. % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1.2 0 -2 0.D]=c2dm(Ac.C.’zoh’). [num. cmin = 15.0. % PERIODO DE MUESTREO % MODELO LINEAL DISCRETO [G. % CONDICIONES INICIALES Ref = 1. r: NUMERO DE SALIDAS NN = 9. a2 = den(3).H. b1 = num(2).T. Bc = [0.Dc.D).5 0 0 -5]. a3=den(4).001.20: Velocidad del carro de m´quinas y la fuerza de control para el a problema 5.r+nn).0.2 0 0 0. % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref . a4=den(5). T = 0.1 0 0 0. % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 0. b3=num(4).001.

U(1)=0. Hns = Ps*psins/j. Ps = S*Pi*S.U(2)=0. Pi = Ps..0)). alfa=1000. Nnew = chol(Ps’). U(t+3) U(t+2) U(t+1) U(t) 1]’.99.. u(1)=0. y(t+4) = Y(t+4) . Nn = chol(Pi’).g(t+4).1). if tt <= cmin. psins = inv(S)*psin.u(3)=0. % salida residual (desviacion) ESTIMACION DE PARAMETROS (METODO MCRM)% psi = [Y(t+3) Y(t+2) Y(t+1) Y(t) .(rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2.0)). end 267 % % % % . Pi = alfa*eye(NN). U(t+3) U(t+2) U(t+1) U(t)]*[-a1 -a2 -a3 -a4 b1 b2 b3 b4]’.norm(psi)).. j = psins’*Ps*psins + lamb.u(2)=0.7 Problemas Resueltos Ce = (1 + a1 + a2 + a3 + a4)*Ref. thi = th.Y(2)=0.1).. % VECTOR DE OBSERVACION INICIAL z=0.y(4)=0.U(4)=0. Ps = (Ps . % Nn’*Nn = Pi => Nn*N’ = Pi’ S = inv(diag(Nn*ones(NN. rt = 1 + psins’*Ps*psins.y(2)=0. % MATRIZ P INICIAL lamb=0.u(4)=0. MODELO LINEAL DEL PROCESO Y(t+4)=[Y(t+3) Y(t+2) Y(t+1) Y(t) .Y(4)=0. e = Y(t+4)/rho . Psnew = Snew*Ps*Snew.Hns*psins’*Ps)/lamb. xmenos = zeros(nn. y(1)=0.98. cmin = 15.01*t)). % ACCION INTEGRAL INICIAL INCIO DEL LAZO DE CONTROL ********************************** MM = 1000. % FACTOR DE MEMORIA Y(1)=0. for t = 1:MM SE~NAL DE REFERENCIA g(t+4)=6 + 4*sign(sin(0.y(3)=0. tt = abs(max(eig(Ps))/min(eig(Ps)) ). thi = th.U(3)=0. th = thi + e*inv(S)*Ps*psins/j. Pi = Psnew.psin’*thi.Y(3)=0. lamb0 = 0. elseif tt >= cmax. % Nnew*Nnew’ = Ps’ Snew = inv(diag(Nnew*ones(NN. % Uo = 0 (arbitrario) thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce]’. psin = psi/rho.5. lamb = 1 . rho = max(1.1). cmax = 100.

HE.Ha. be21=0. be4 = th(8).be31. elseif(U(t+4) <-200) U(t+4) = -200. CE=[ce11 ce12 ce13 ce14].r). ae11 = 0.-CE eye(r. Ha = [HE.. ae23 = 1.Qa.be21. ae34 = 1.Ka*[xmas.g(4:MM+3). ae31 = 0.CE*xmenos). BE= be1 + be2 + be3 + be4. Ka = dlqr(Ga. % OBSERVACION z = z -CE*xmas.be41].Ce).MM*T. ae14 = 0.Xi). ce12=be3. ae32 = 0. ae4 =-th(4).ejex.1.Y(4:MM+3)).. xmas = xmenos + F*(y(t+4) . HE=[be11.z]. AE= 1 + ae1 + ae2 + ae3 + ae4.1) plot(ejex. Ce=th(9). be1 = th(5). grid ylabel(’Posicion’) .zeros(r.ae41 ae42 ae43 ae44]. DE=[0]. subplot(2.CE. ae22 = 0.r)]. ae42 = -ae3.R). ae44 = -ae1. Uin = inv(BE)*(AE*g(t+4) . % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+4). ae41 =-ae4.ae21 ae22 ae23 ae24. % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+4) = u(t+4) + Uin.r)].MM). be3= th(7). ae3=-th(3).Sigma. ce13=be2. ae43 = -ae2. % LIMITANDO LA SE~NAL U(t) if(U(t+4) > 200) U(t+4) = 200. ae2 =-th(2). ae13 = 0. % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn. % CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE. Ca = [CE zeros(r. ae12 = 1. ce14=be1. GE = [ae11 ae12 ae13 ae14. be31=0. else U(t+4) = U(t+4). be11=0. end end % FIN DEL LAZO DE CONTROL ********************** % GRAFICOS ejex = linspace(0. ae31 ae32 ae33 ae34. ce11=be4. be2 = th(6). % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+4) = . ae21 = 0. ae24 = 0. ae33 = 0.. be41=1.r)].268 Control Adaptivo % RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 =-th(1).

5 La figura 2. grid xlabel(’Tiempo en segundos’) ylabel(’Voltaje de control’) print -deps -f p8adap1 10 8 Posición (m) 6 4 2 0 0 100 200 300 400 500 Tiempo en segundos 600 700 800 269 200 Voltaje de control 100 0 −100 −200 0 100 200 300 400 500 Tiempo en segundos 600 700 800 Figura 5. Dise˜ar un controlador n adaptivo con autosintonizaci´n que cumpla los siguientes requerimientos: o tiempo de estabilizaci´n menor que 15 s. grid plot(ejex. Estas condiciones de dise˜o deben mantenerse cuando n se cambie la referencia (por ejemplo de 3 a 1 m).21: Posici´n del ascensor y la fuerza de control (problema 5.2). el flujo de entrada a (la se˜al de control) no debe sobrepasar los 3 m3 /s. La secci´n e o horizontal A=9 m2 de cada tanque es constante.m SOLUCION DEL PROBLEMA 5.5 clear all % PARAMETROS GENERALES .2 muestra dos tanques id´nticos colocados en cascada.1. Adem´s. o Problema 5.4). El objetivo de control o es controlar la altura H2 empleando el flujo Qo .U(3:MM+2)).1.5.7 Problemas Resueltos xlabel(’Tiempo en segundos’) subplot(2. n % p9adap1. La deducci´n del modelo linealizado del proceso se describe en el ejemplo 2. sobreimpulso menor al 5 % y error o en estado estable nulo.

Dcc = [0]. y(1) = 0. xmenos = zeros(nn. Z=(gamma*sqrt(rho*gg))/(2*A*sqrt(H)). PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1.1*eye(r+nn.08*t)). Dcc: REPRESENTACION CANONICA CONTROLABLE a11 = 0. cmin = 15 % PARA EL ESTIMADOR DE PARAMETROS PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 100. Hcc = [b11. y(2) = 0.98. a1 = den(2).b21]. Gcc. Cc = [1 0].’zoh’).den]=ss2tf(G. % FACTOR DE MEMORIA Y(1) = 0. [num. r: NUMERO DE SALIDAS NN = 5.C. MODELO LINEAL DEL PROCESO . a22 = -a1. % VECTOR DE OBSERVACION INICIAL z=0. % salida U(1 )= 0. r=1. % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref Ce = (1 + a1 + a2)*Ref. b1 = num(2). Qo=3.a21 a22]. % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 b1 b2 Ce]’. Bc = [1. c12 = b1.H. % PERIODO DE MUESTREO MODELO LINEAL DISCRETO [G.T.D).r+nn). MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-Z 0. Y(2) = 0.23. A=9. Ccc =[c11 c12]. Dc = [0]. b11 = 0.H. H=Qo^2/(gamma^2*rho*gg). rho=1. H1(2)=0. % ACCION INTEGRAL INICIAL INICIO DEL LAZO DE CONTROL ********************************** MM = 200. u(2) = 0. T = 0. b21 = 1.Bc.270 Control Adaptivo % % % % % % % % % % % nn = 2. gg=9.1). alfa=1000. % control H1(1) =0.01.4.0]. b2 = num(3). Qa = 0. c11 =b2.Hcc. U(2) = 0.C. lamb0 = 0. for t = 1:MM SE~NAL DE REFERENCIA g(t+2)=2-1*sign(sin(0. Gcc = [a11 a12.D]=c2dm(Ac. PARAMETROS DEL PROCESO NO LINEAL gamma=0.99. % MATRIZ P INICIAL lamb=0.Z -Z].Dc. a12 =1.81. Sigma = 0. % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS cmax = 100. a21 = -a2. a2 = den(3). u(1) = 0. Ccc.Cc. Pi = alfa*eye(NN). % nn: ORDEN DEL PROCES.8. CONDICIONES INICIALES Ref = 1.

xmas = xmenos + F*(y(t+2) . CE = [ce11 ce12]. th = thi + e*inv(S)*Ps*psins/j.-CE eye(r.CE*xmenos). ae21 = -ae2. rt = 1 + psins’*Ps*psins.Ha. Ka = dlqr(Ga. ce12 = be1. psins = inv(S)*psin. be1=th(3).0)). Y(t+2) = y(t+2) + g(t+2). GE = [ae11 ae12.zeros(r. Pi = Ps. e = Y(t+2)/rho .r). ae22 = -ae1. lamb=1 . Ce=th(NN).7 Problemas Resueltos y(t+2) = [y(t+1) y(t) u(t+1) u(t)]*[-a1 -a2 b1 b2]’. end RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1=-th(1).psin’*thi. psin = psi/rho.5. rho = max(1. tt = abs(max(eig(Ps))/min(eig(Ps)) ). CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE. % Nn’*Nn = Pi => Nn*N’ = Pi’ S = inv(diag(Nn*ones(NN. Ha = [HE. % ACCION INTEGRAL CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn.be21]. % salida actual ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+1) Y(t) U(t+1) U(t) 1]’. ae2=-th(2). Hns = Ps*psins/j.r)].Sigma.Hns*psins’*Ps)/lamb. Nnew = chol(Ps’). DE = [0]. HE = [be11.(rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2.Qa. be2=th(4). j = psins’*Ps*psins + lamb.HE.norm(psi)). be21 = 1.1).0)). % OBSERVACION z = z -CE*xmas. Ps = (Ps . be11 = 0.Xi).ae21 ae22]. cmin = 15. Pi = Psnew. CALCULO DE LA LEY DE CONTROL RESIDUAL 271 % % % % % .R). ce11 =be2. Ps = S*Pi*S. elseif tt >= cmax.CE.1). thi = th. thi = th. cmax = 100. ae12 =1.r)]. Psnew = Snew*Ps*Snew. % Nnew*Nnew’ = Ps’ Snew = inv(diag(Nnew*ones(NN.r)]. if tt <= cmin. Ca = [CE zeros(r. Nn = chol(Pi’). ae11 = 0.

6 clear all % PARAMETROS GENERALES .Ka*[xmas. % AE(z^(-1))*Y(k) = BE(z^(-1))*U(k) + Ce.ce] AE = 1 + ae1 + ae2. elseif(U(t+2) <-3) U(t+2) = -3. grid ylabel(’Nivel en metros’) xlabel(’Tiempo en segundos’) subplot(2. Uin = inv(BE)*(AE*g(t+2) . Y(k) = Yo(k) (Referencia) % entonces: U(z=1) = inv(B(z=1)*[A(z=1)*Ref .MM). subplot(2.g(3:MM+2). N=5 % En estado estacionario: z=1.ejex.6 El proceso electromec´nico mostrado en la figura 3. Dise˜ar un sistema de control adaptivo con autosintonizaci´n n o para controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre ± 100 voltios.U(3:MM+2)).272 Control Adaptivo u(t+2) = .2) plot(ejex.C. % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+2).1. DE U) % AE(z^(-1)) = 1 + ae1*z^(-1) + ae2*z^(-1). end end % FIN DEL LAZO DE CONTROL ********************** % GRAFICOS ejex = linspace(0. Ce = th(N). % BE(z^(-1)) = be1*z^(-1) + be2*z^(-1).1. BE = be1 + be2.26 se describe en el proa blema 3. % p11adap1.MM*T. La se˜al de referencia es n arbitraria (problema de seguimiento).1) plot(ejex.Ce).Y(3:MM+2)). grid xlabel(’Tiempo en segundos’) ylabel(’Flujo de control (m/s)’) print -deps -f p9adap1 Problema 5. % LIMITANDO LA SE~NAL U(t) if(U(t+2) > 3) U(t+2) = 3. % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+2) = u(t+2) + Uin. % CALCULO DE Uo (VALOR D.m SOLUCION DEL PROBLEMA 5.8.z].

Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke). % INDUCTANCIA DE LA ARMADURA (H) Kw = 1.H. r=1.D]=c2dm(Ac.01.01.5 2 1.22: Nivel controlado H2 y el flujo de control para el problema 5. b2 = num(3). r: NUMERO DE SALIDAS NN = 7. a1 = den(2). Cc = [0 0 1]. % CONSTANTE TORSIONAL (Nm/rad) MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-1/(R*C) -1/C 0.5 1 0 273 20 40 60 80 100 Tiempo en segundos 120 140 160 4 Flujo de control (m/s) 2 0 −2 −4 0 20 40 60 80 100 Tiempo en segundos 120 140 160 Figura 5.0 Kt/J 0]. Kt = 0.’zoh’). % RESISTENCIA (Ohmios) C = 0. Sigma = 10. T = 0.5.Dc. b3=num(4). Dc = [0]. % % % % nn = 3. b1 = num(2).Cc. % CONDENSADOR (uF) L = 0.C.Bc.001. a2 = den(3).7 Problemas Resueltos 3 Nivel en metros 2.5.5.5.0. Bc = [1/(R*C). % MOMENTO DE INERCIA DEL MOTORM (kgm2/s2) Ke =0. % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS PARAMETROS DEL PROCESO: J = 0.T. % PERIODO DE MUESTREO MODELO LINEAL DISCRETO DEL PROCESO [G.. % CONSTANTE ELECTROMOTRIZ (Nm/A) R = 12. % nn: ORDEN DEL PROCESO..D).0]. a3=den(4). [num. PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 0.8.2. .01..C.H.den]=ss2tf(G.

psin = psi/rho. a31 = -a3. Y(3) = 0. % SALIDA RESIDUAL (DESVIACION) % ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t) 1]’. Ccc =[c11 c12 c13].b21. psins = inv(S)*psin. b31 = 1. a12 =1.4 + 3*(sin(0.99.r+nn). for t = 1:MM % SE~NAL DE REFERENCIA Yo(t+3)= 0.a21 a22 a23. % FACTOR DE MEMORIA Y(1) = 0.. % MODELO LINEAL DEL PROCESO Y(t+3) = [Y(t+2) Y(t+1) Y(t) U(t+2) U(t+1) U(t)]*.1). b11 = 0. Nn = chol(Pi’). u(3)=0.Hcc.1). lamb0 = 0. a13 =0. . a23 =1. c13 = b1.Yo(t+3). xmenos = zeros(nn. rho = max(1.norm(psi)). a32 = -a2. % MATRIZ P INICIAL lamb=0. % Nn’*Nn = Pi => Nn*N’ = Pi’ S = inv(diag(Nn*ones(NN.0)).r). [-a1 -a2 -a3 b1 b2 b3]’. e = Y(t+3)/rho . U(3) = 0. y(t+3) = Y(t+3) .b31].98. a22 =0 . Dcc = [0]. Qa = 0.02*t))+0.001*eye(r+nn. b21 = 0.. u(1)=0. % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref Ce = (1 + a1 + a2 + a3)*Ref.01*t. c12 = b2. % ACCION INTEGRAL INICIAL % INICIO DEL LAZO DE CONTROL ********************************** MM = 400. Y(2) = 0. U(2) = 0.274 Control Adaptivo % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 0. u(2)=0. rt = 1 + psins’*Ps*psins. y(3)=0. U(1 )= 0. lamb = 1 . % Gcc. % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 -a3 b1 b2 b3 Ce]’. % VECTOR DE OBSERVACION INICIAL z=0.1*eye(r. Dcc: REPRESENTACION CANONICA CONTROLABLE a11 =0. Gcc = [a11 a12 a13. c11 =b3.a31 a32 a33].psin’*thi. j = psins’*Ps*psins + lamb. Pi = alfa*eye(NN). alfa=1000. Hns = Ps*psins/j. Hcc = [b11. a21 =0.(rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2. a33 =-a3. y(1)=0. Ps = S*Pi*S. % CONDICIONES INICIALES Ref = 1. Ccc. y(2)=0. th = thi + e*inv(S)*Ps*psins/j.

ae23 = 1. CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE. DE = [0]. ce11 =be3. be1 = th(4). Ha = [HE. ae22 = 0. xmas = xmenos + F*(y(t+3) . elseif(U(t+3) <-100) U(t+3) = -100. thi = th.Hns*psins’*Ps)/lamb.z]. ae13 = 0. AE = 1 + ae1 + ae2 + ae3. ae11 = 0. ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+3).Ce).be21. if tt <= cmin. cmax = 100.5. CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn. GE = [ae11 ae12 ae13.be31]. cmin = 15. be2 = th(5).Ha.Sigma. ae12 =1.CE.HE. elseif tt >= cmax.ae31 ae32 ae33].7 Problemas Resueltos Ps = (Ps . ae2 = -th(2). ae3 = -th(3).Qa. Pi = Psnew. CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+3) = u(t+3) + Uin. be3 = th(6). Pi = Ps. CE = [ce11 ce12 ce13].zeros(r.r)].ae21 ae22 ae23.r).1). thi = th. ae31 =-ae3. Ca = [CE zeros(r. % Nnew*Nnew’ = Ps’ Snew = inv(diag(Nnew*ones(NN. LIMITANDO LA SE~NAL U(t) if(U(t+3) > 100) U(t+3) = 100.0)). be31 = 1. Ce = th(7).-CE eye(r. z = z -CE*xmas. ce12 = be2.r)].Xi). end RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 = -th(1). Ka = dlqr(Ga. ae21 = 0.Ka*[xmas. BE = be1 + be2 + be3.CE*xmenos). HE = [be11. Nnew = chol(Ps’). Psnew = Snew*Ps*Snew. Uin = inv(BE)*(AE*Yo(t+3) . end 275 % % % % % % % . ae32 = -ae2. tt = abs(max(eig(Ps))/min(eig(Ps)) ). be21 = 0. CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+3) = .r)]. ce13 = be1. be11 = 0.R). ae33 = -ae1.

Problema 5.Yo(3:MM+2). Una leva conecta la barra con un engranaje accionado por un servomotor.23: Velocidad angular controlada y el voltaje de control para el problema 5.3 se describe el proceso de la bola rodando a lo largo de una barra con un grado de libertad. . grid ylabel(’Velocidad (rad/s)’) subplot(2.1) plot(ejex. la oscilaci´n de la bola debe estar restringida sobre la barra.MM). El voltaje de o control no debe sobrepasar los ± 40 voltios.6.U(3:MM+2)). subplot(2. tal como se muestra en la figura 3.276 Control Adaptivo end % FIN DEL LAZO DE CONTROL ********************** % GRAFICOS ejex = linspace(0. grid xlabel(’Tiempo en seg’) ylabel(’Voltaje de control’) print -deps -f p11adap1 8 Velocidad (rad/s) 6 4 2 0 −2 0 10 20 30 40 50 60 70 80 40 Voltaje de control 20 0 −20 −40 0 10 20 30 40 50 Tiempo en seg 60 70 80 Figura 5.1. Evidentemente.16.5 m de un extremo de la barra de 1 m de longitud.Y(3:MM+2)).1.7 En el problema 3.MM*T.2) plot(ejex. Se desea dise˜ar un sistema de control adaptivo que pueda posicionar la n bola a 0.ejex.

U(1)=0.03. cmin = 15.99. % longitud de la barra(m) J=9. u(3)=0.0 0 0 1. 0 0 0 1 0.D). Qa = 1*[1 0 0 0 0.001.98.H.8 . Y(2)=0.’zoh’). % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS % cmax = 100. % PERIODO DE MUESTREO T=0. Dc = [0]. b1 = num(2).0 1 0 0 0.C.5.. Sigma = 0. lamb0 = 0.1]. % ACCION INTEGRAL INICIAL % INICIO DEL LAZO DE CONTROL ********************************** MM = 300. % FACTOR DE MEMORIA Y(1)=0.11.C. % CONDICIONES INICIALES Ref = 1. u(4)=0. % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1. a1 = den(2). r: NUMERO DE SALIDAS NN = 9. a3=den(4).Dc. % nn: ORDEN DEL PROCES.Bc.0.Cc. U(2)=0.12 % MODELO LINEAL DISCRETO [G.7 Problemas Resueltos % p5adap1.99e-6.Sigma=0.0 0 0 0 1]. % Uo = 0 (ARBITRARIO) thi = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 Ce]’. U(3)=0. T = 0. a2 = den(3).. y(3)=0.7. Y(3)=0. y(1)=0.m SOLUCION DEL PROBLEMA 5.0 0 M*g*d/(L*(J/R^2+M)) 0.015. u(1)=0.0. % radio de la bola(m) d=0. % MATRIZ P INICIAL lamb=0. [num.T.den]=ss2tf(G.H. alfa=1000.0 0 0 0]. Pi = alfa*eye(NN). U(4)=0.7 clear all % PARAMETROS GENERALES nn = 4.001 % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [0 1 0 0. % masa de la bola(kg) R=0. r=1. % PARAMETROS DEL PROCESO M=0.D]=c2dm(Ac. a4=den(5). Bc = [0. % inercia de la barra(kgm2)T=0. % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 1. % aceleracion de la gravedad (m/s2) L=1. % VECTOR DE OBSERVACION INICIAL z=0. % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref Ce = (1 + a1 + a2 + a3 +a4)*Ref. Y(4)=0.0. 277 .. b3=num(4). % distancia de la leva al engranaje(m) g=9. y(4)=0.7.1). b2 = num(3). xmenos = zeros(nn. u(2)=0. Cc = [1 0 0 0]. y(2)=0.0 0 1 0 0. b4=num(5).

Ce = th(9). U(t+3) U(t+2) U(t+1) U(t)]*. tt = abs(max(eig(Ps))/min(eig(Ps)) ).psin’*thi. [GE.0)). j = psins’*Ps*psins + lamb.(rt-sqrt(rt^2-4*norm(Ps*psins)^2/trace(Ps)))/2.Xi). e = Y(t+4)/rho .Sigma.%sign(sin(0.CE.dene).HE. [-a1 -a2 -a3 -a4 b1 b2 b3 b4]’.0)). elseif tt >= cmax. Pi = Psnew. psin = psi/rho. dene = [1 ae1 ae2 ae3 ae4]. th = thi + e*inv(S)*Ps*psins/j. % Nnew*Nnew’ = Ps’ Snew = inv(diag(Nnew*ones(NN. thi = th.Hns*psins’*Ps)/lamb.DE] = tf2ss(nume. ae4 = -th(4). cmax = 100. % CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE.CE*xmenos). xmas = xmenos + F*(y(t+4) . Ps = S*Pi*S. be3 = th(7).. Pi = Ps. U(t+3) U(t+2) U(t+1) U(t) 1]’.. Psnew = Snew*Ps*Snew. end % RECUPERACION DE LA ECUACION CANONICA CONTROLABLE ae1 = -th(1). nume = [0 be1 be2 be3 be4]. % salida residual % ESTIMACION DE PARAMETROS (METODO MCRM) psi = [Y(t+3) Y(t+2) Y(t+1) Y(t). Nnew = chol(Ps’). y(t+4) = Y(t+4) . Ps = (Ps . % Nn’*Nn = Pi => Nn*N’ = Pi’ S = inv(diag(Nn*ones(NN.HE. ae3 = -th(3).5. Nn = chol(Pi’).. psins = inv(S)*psin. % MODELO LINEAL DEL PROCESO Y(t+4) = [Y(t+3) Y(t+2) Y(t+1) Y(t).1). be2 = th(6)..278 Control Adaptivo for t = 1:MM % SE~NAL DE REFERENCIA Yo(t+4)= 0. % OBSERVACION . rho = max(1.Yo(t+4). if tt <= cmin.norm(psi)).005*t)). be4 = th(8). thi = th.1). lamb = 1 . be1 = th(5). ae2 = -th(2). rt = 1 + psins’*Ps*psins..CE. Hns = Ps*psins/j.. cmin = 15.

(27) % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+4).T del proceso.r)]. Ka = dlqr(Ga. Para prop´sitos ıa o .R).8 En el proceso de la figura 3. end end % FIN DEL LAZO DE CONTROL ************************* % GRAFICOS ejex = linspace(0. % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+4) = u(t+4) + Uin.Y(3:MM+2)).2) plot(ejex.Ce).ejex.r)]. Problemas Propuestos Problema 5.8 Problemas Propuestos z = z -CE*xmas. % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+4) = . Uin = inv(BE)*(AE*Yo(t+4) . El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la se˜al de voltaje vr .MM). La banda transportadora.1. Ca = [CE zeros(r.24(a) se desea reducir la humedad h del material a granel de la tolva (ver problema 3. % ec. grid xlabel(’Tiempo en seg’) ylabel(’Voltaje de control’) print -deps -f p5adap1 279 5.r). La figura 3.7).r)].U(3:MM+2)).Ha.Yo(3:MM+2). grid ylabel(’Posicion (m)’) subplot(2.-CE eye(r.MM*T.z].Ka*[xmas. o a pesar de que el tiempo muerto T = v/d var´ entre 9 y 11 s. introduce el material a un horno de secado.8. BE = be1 + be2 + be3 + be4. % ec.1.zeros(r.5. Ha = [HE.1) plot(ejex. El horno puede ser modelado n como un proceso de primer orden. que se desplaza a una velocidad constante de v= 1 m/s. % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn. (15) AE = 1 + ae1 + ae2 + ae3 + ae4.24(b) muestra la F.Qa. Dise˜ar un sistema de control adaptivo con autosintonizaci´n con el n o prop´sito de estabilizar la humedad del material en la banda transportadora. subplot(2.

Para cada caso.6 0.28). a (a) Dise˜ar un sistema de control adaptivo con autosintonizaci´n para n o controlar el angulo de elevaci´n θ con las especificaciones siguientes: ´ o tiempo de estabilizaci´n menor que 5 s.9. y pueden ser positivos o negaa tivos.8 Posición (m) 0.2 0 0 50 100 150 200 Control Adaptivo 250 10 Voltaje de control 5 0 −5 −10 −15 0 50 100 150 Tiempo en seg 200 250 Figura 5.24: Posici´n de la bola y el voltaje de control para el problema 5.9 Las ecuaciones del modelo linealizado para controlar la posici´n del ca˜on o n´ montado en la torreta de un tanque (figura 3. m´ o ınimo sobreimpulso en la respuesta y error de estado estacionario nulo. empleando un actuador hidr´ulico se detallan en el problema 3. Problema 5.4 0.7. . el tiempo muerto puede ser descrito mediante la aproximaci´n de Pad´ de tercer orden (ver ejemplo ??): o e 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 Especificaciones de dise˜o: tiempo de estabilizaci´n menor que 40 s. o del modelado del proceso. el sistema de control dise˜ado debe ser capaz n de minimizar sus efectos.280 1 0. Los disturbios tipo escal´n o pueden actuar simult´neamente o no. error n o en estado estacionario nulo y porcentaje de sobreimpulso menor al 5 %.

8 Problemas Propuestos 281 (b) Lo mismo que (a). Problema 5.02 kg. conviene emplear las a ecuaciones de Lagrange de la mec´nica cl´sica (ver problema 3.31 muestra el proceso servomotor con carga no lineal descrito en la secci´n 3.13.1. Para poder determinar un modelo no lineal din´mico para este proceso. Dise˜ar un sistema de control adaptivo e n con autosintonizaci´n para controlar simult´neamente las posiciones θ y τ o a con m´ ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso en la salida. El acoplamiento entre los o e o dos p´ndulos de igual longitud no es flexible. Las ecuaciones que describen la e din´mica del sistema son materia del problema propuesto 3.32 muestra el proceso p´ndulo doble no lineal que es una extene si´n del p´ndulo simple descrito en la secci´n 3.14). Problema 5. a Problema 5. El acoplamiento o u o entre las dos secciones iguales de la varilla no es flexible. pero en este caso para controlar el ´ngulo azimutal.12 La figura 3. Considerar a que la carga esf´rica es de 0.5.12. de modo tal que el p´ndulo doble permanezca en posici´n vertical. e o Problema 5. Dise˜ar un sistema de control adaptivo e n con autosintonizaci´n para controlar simult´neamente las posiciones θ y τ o a con m´ ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso.11 La figura 3.2. Dise˜ar un sistema de control adaptivo con n autosintonizaci´n para controlar simult´neamente las posiciones θ y τ con o a m´ ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso en la respuesta. Si se o . La uni´n de la carga con el eje del servomotor no es flexible. en donde la carga no lineal posee ahora dos grados de libertad o o con Lo = 2L1 /3 y Mo =0.33 muestra el proceso doble gr´a puente no lineal que es una exu tensi´n del proceso gr´a-puente descrito en la secci´n 3.13 La figura 1. de modo tal que la doble gr´a-puente permanezca en posici´n vertical cuando el carro u o realiza un recorrido predeterminado.1 muestra un carro de masa m = 1000 kg desplaz´ndose con una a velocidad v gracias a la acci´n de la fuerza u producida por su motor. Las ecuaciones que describen la din´mica del sistema a son materia del problema 3.3.10 La figura 3. Considea a rar que la carga esf´rica es de 0.02 kg.02 kg.

o donde b= 50 N-s/m es el coeficiente de fricci´n. La figura 4. puede convertirse f´cilmente en movimiento de traslaci´n como por ejemplo.14 El motor D. ˙ v= ˙ dv dt Dise˜ar un sistema de control adaptivo con autosintonizaci´n para contron o lar la velocidad del m´vil con m´ o ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso en la salida. mediante acoples adecuados en su eje. ya que su movimiento rotatorio. Dise˜ar dos sistemas de control adaptivo con n autosintonizaci´n. o n . El primero para estabilizar la velocidad angular del eje del o motor con las especificaciones siguientes: tiempo de estabilizaci´n menor que o 4 s. es lo unico que se opone o ´ al movimiento del carro.16): mv(t) + bv(t) = u(t). Las ecuaciones que gobiernan el comportamiento din´mico del motor fueron a derivadas en el ejemplo 4. es un actuador muy popular en los sistemas de control. en a o fajas transportadoras y en brazos manipuladores. El segundo sistema de control adaptivo a dise˜ar debe estabilizar la n posici´n del eje del motor con las mismas especificaciones de dise˜ o.C. entonces la din´mica del proceso puede modelarse a como (ver ejemplo 1.282 Control Adaptivo desprecia la inercia de las ruedas y se asume que la fuerza de fricci´n bv. error en estado estable menor al 1 % y sobreimpulso en la salida menor al 5 %.3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. La se˜al de referencia puede ser arbitraria (pron blema de seguimiento). Problema 5.1.

posiblemente incluyendo restricciones en las variables del proceso. 6. problemas resueltos. problemas. C´lculo de una acci´n de control optima basada en la minimizaci´n a o ´ o de funciones de costo.uni.Cap´ ıtulo 6 Control Predictivo En este cap´ ıtulo se desarrolla un procedimiento para dise˜ar un sistema n de control predictivo basado en modelos. [8] es una metodolog´ de ıa control que usa el modelo del proceso para calcular y optimizar las predicciones de las acciones de control y de la salida controlada. Esta metodolog´ ıa se ha desarrollado alrededor de ciertos principios. Control Predictivo Basado en Modelos El Control Predictivo Basado en Modelos [7]. el cual puede ser tambi´n a e del tipo escalar. se presenta n una aplicaci´n: control predictivo de la posici´n angular de un servomotor sujeto o o a cargas no lineales variables.edu. trata el dise˜o de sistemas de u o n control predictivo para diferentes procesos empleando leyes de control escalar y matricial. dise˜os. dos de los cuales son: Empleo de un modelo del proceso para pronosticar su salida a controlar en instantes de tiempo futuro. El algoritmo de control predictivo empleado es el denominado control matricial din´mico.1. simulaciones y software desarrollados se pueden descargar del sitio: n http://fiee. . Para validar el procedimiento de dise˜o propuesto. Todos los archivos correspondientes a los ejercicios. La pen´ltima secci´n.pe/728681F.

representa el tiempo discreto (t = 0. o hace dos d´cadas. El buen rendimiento de tales aplicaciones es muy apreciada. n y(t). pero tambi´n del escenario del e control futuro. es la llave del ´xito en las aplicaciones. u(t). w(t). tanto en lo acad´mico como tambi´n en e e el mundo industrial. o a e La notaci´n usada para derivar los principios del control predictivo es la o siguiente: t. Para validar el procedimiento de a dise˜o propuesto. por ello. representa la trayectoria deseada (“set point”). y en las funciones de costo a ser minimizadas (con o sin restricciones). De la gama de algoritmos de control predictivo existentes. nos ocupamos en particular del denominado Control Matricial Din´mico (“Dynamic Matrix Control”). denota la trayectoria de referencia. denota la entrada al proceso y constituye la variable manipulada o se˜al de control.284 Control Predictivo Los diferentes miembros de la familia del Control Predictivo Basado en Modelos difieren principalmente en el modelo usado para representar el proceso con sus perturbaciones. . Muchas aplicaciones del control predictivo son usadas hoy en todos los campos de la actividad industrial. Principios del Control Predictivo Basado en Modelos El control predictivo pronostica la salida de la planta en un escenario de tiempo de duraci´n N2 (el horizonte de tiempo N2 ).2. En lo que sigue del cap´ ıtulo. se presenta y discute una aplicaci´n: control predictivo de n o la posici´n angular de un servomotor sujeto a cargas no lineales variables. 1. . es la salida del proceso y constituye la la variable controlada. se desarrollan los principios del Control Predictivo Basado en Modelos para su aplicaci´n o en sistemas univariables. e 6. Tal predicci´n deo o pende de las salidas y entradas pasadas. o Es importante resaltar que el control predictivo es de naturaleza abierta y cuenta con muchas contribuciones. actualmente existe un creciente inter´s en esta metodolog´ si bien el trabajo pionero se inici´ alrededor de e ıa. 2. ). . La obtenci´n del modelo que refleje lo m´s fielmente posible o a la evoluci´n din´mica de la planta. r(t). .

denota los valores futuros de la salida basado en las mediciones disponibles en el tiempo t: {y(t).2 Principios del Control Predictivo Basado en Modelos 285 u(t + k/t). . el principio del control predictivo se caraco teriza por la siguiente estrategia: Politica de control pasada Politica de control futura 1 2 Trayectoria deseada Trayectoria de referencia 1 2 Salida pasada del proceso Pasado Tiempo Muerto 1 2 Momento presente t Futuro N2 Figura 6. u(t − 2). de las acciones de control que se intentan aplicar a partir del tiempo t. . es decir. . . denota los valores futuros de la entrada en el tiempo t + k postulados en el tiempo t. o simplemente. . . el cual se o asume que est´ disponible. .} Con relaci´n a la figura 6. N2 − 1.6. Los valores pronosticados se denotan como y(t + k/t) y a N2 se le denomina el horizonte de predicci´n. . . y(t − 1).1: Estrategia del control predictivo. la salida del proceso y(t + k) se pronostica sobre un horizonte k = 1 . . k = 0. . . . . El pron´stico en cuesti´n depende de las a o o entradas y salidas pasadas. y(t + k/t). u(t − 1).} y en los valores futuros de la entrada postulados en el tiempo t: {u(t/t). . dado t. u(t + 1/t). o La predicci´n se realiza mediante el modelo del proceso. N2 . .1. pero tambi´n del escenario del control fue turo u(t + k/t). En cada tiempo t. .

. . la especificaci´n de una trayectoria o e o de referencia. . Al proceso real s´lo se le aplica el primer elemento del vector de control o o ´ptimo calculado u(t + k/t). N2 .2: Estrategia del Control Predictivo Basado en Modelos . . k = 1. . . previamente calculado. Esta o trayectoria describe la forma de guiar la salida del proceso desde su valor actual y(t) hasta la trayectoria deseada w(t). la estructuraci´n de la futura ley de control. . cuyo primer elemento es generalmente diferente al primer elemento del vector u(t + k/t). k = 1. k = 0. En el pr´ximo instante de a o muestreo. Este principio se denomina estrategia del “horizonte retroactivo”. N2 − 1. Tal estrategia puede ser visualizada en el diagrama de bloques ´ mostrado en la figura 6. . . se calcula para minimizar una funci´n de costo espec´ o ıfica que depende del error del control predictivo r(t + k/t) − y(t + k/t). k = 0.286 Control Predictivo Una trayectoria de referencia r(t + k/t).2. . . . . . La estrategia del control predictivo comprende: el proceso de predicci´n a trav´s de un modelo del proceso. . . El vector de control u(t + k/t). la definici´n de o o la funci´n de costo (y sus restricciones) y el c´lculo del escenario de cono a trol optimo. N2 . Entradas y salidas pasadas MODELO Entradas futuras OPTIMIZADOR Funcion de costo ’ + Trayectoria de Salidas referencia predecidas - restricciones Figura 6. mientras que se dejan de lado los dem´s elementos de dicho vector. que se inicia en r(t/t) = y(t) y se define sobre el horizonte de predicci´n. N2 − 1. todas las secuencias temporales se desplazan para dar cabida a las nuevas mediciones de la salida y(t+1) y a las del vector de control u(t + k + 1/t + 1).

Estructuras t´ o ıpicas de los polinomios del filtro pueden ser: C(z −1 ) = 1 + cz −1 . x y El Disturbio n(t) La se˜al de disturbio n(t) incluye todos los efectos no deseados en la salin da y(t). x(t) es la salida n del modelo y n(t) es el disturbio en el proceso. etc. donde y(t) es la salida medible del proceso.3: Modelo del proceso bajo perturbaciones. D(z −1 ) = (1 + dz −1 )(1 − z −1 ) . como filtro selectivo (para eliminar una determinada frecuencia) y para incrementar la robustez del sistema en la presencia de errores de medici´n. e(t) es un ruido blanco no correlacionado con media cero. errores de modeo lado. u(t) es la entrada al proceso (la se˜al de control).4) ) = 1 + d1 z −1 + · · · + dnd z −nd El filtro de disturbio debe dise˜arse: para eliminar disturbios en el estado n estable (cuando z = 1).3 El Modelo del Proceso 287 6. que es de car´cter estoc´stico.6.1) tal como se ilustra en la figura 6. ruido de medici´n. a a puede ser modelado mediante un filtro coloreado de la forma: C(z −1 ) n(t) = e(t) D(z −1 ) (6. puede modelarse como: y(t) = x(t) + n(t) (6.2) donde z −1 es el operador de desplazamiento. incertidumbres. El disturbio n(t). n u MODELO Figura 6. El Modelo del Proceso El proceso de una entrada y una salida. otras entradas no medibles. y los polinomios son de la forma: C(z −1 ) = 1 + c1 z −1 + · · · + cnc z −nc D(z −1 (6.3.3.3) (6. Esta se˜al representa el efecto conjunto de todos los disturbios sobre n el proceso. probablemente no lineal.

El modelo CARIMA del o proceso puede ser representado por: A(z −1 )y(t) = B(z −1 )u(t) + donde: C(z −1 ) e(t) D(z −1 ) (6.) puede ser una ecuaci´n de diferencias. es un modelo lineal b´sico y bastante extendido en su a aplicaci´n y es precisamente el que emplearemos. . x(t − 2). ..) es una funci´n que puede estructurarse de diversas formas.. . + bnb z −nb (6. De nuevo..5) donde f (. . a saber. f (.. − ana y(k − na ) el componente promedio temporal de control: + b0 u(k − 1) + b1 u(k − 2) + . Es o decir. a El Modelo CARIMA El modelo CARIMA. la componente salida autoregresiva: y(k) = − a1 y(k − 1) − a2 y(k − 2) − . la relaci´n n o entre u(t) y x(t) puede representarse mediante un modelo din´mico gen´rico a e de la forma: x(t) = f (x(t − 1).. u(t − 1).6) A(z −1 ) = 1 + a1 z −1 + ...) (6.7) (6. + ana z −na B(z −1 ) = b1 z −1 + . una red neuronal o una o caja negra con par´metros a ser estimados..8) El origen del t´rmino CARIMA se debe a que la ecuaci´n de diferencias e o del modelo del proceso presenta tres componentes. . u(t − 2). x(t) no es una se˜al medible. En general. . + bnb u(k − nb − 1) y el componente promedio temporal integrado del error e(t): + e(k) + c1 e(k − 1) + c2 e(k − 2) + . del ingl´s “Controlled Autoregressive Integrated e Moving Average”. + cnc e(k − nc ) 1 − z −1 ...288 La Salida x(t) del Modelo Control Predictivo La se˜al x(t) representa el efecto del proceso en la salida y(t) debido a la n entrada u(t). .

6. para un proceso de segundo orden sin presencia de perturbao ciones.10) Notar en (6. la representaci´n CARIMA toma la forma: y(t) = x(t) = b1 z −1 + b2 z −2 B(z −1 ) u(t) = u(t) A(z −1 ) 1 + a1 z −1 + a2 z −2 (6.C. Soluci´n: La funci´n de transferencia de pulso del proceso posee la forma: o o b1 z + b2 b1 z −1 + b2 z −2 B(z −1 ) q(z) = 2 = = u(z) z + a1 z + a2 1 + a1 z −1 + a2 z −2 A(z −1 ) 1 e(t) 1 − z −1 . es decir. La representaci´n predictiva de la ultima expreo ´ (6.9) la cual conduce a la ecuaci´n de diferencias: o y(t) = −a1 y(t − 1) − a2 y(t − 2) + b1 u(t − 1) + b2 u(t − 2) El modelo lineal CARIMA m´s generalizado es de la forma: a A(z −1 )y(t) = C(z −1 ) B(z −1 ) u(t) + e(t) F (z −1 ) D(z −1 ) (6.3 El Modelo del Proceso 289 Por ejemplo. sujeto a cargas no lineales descrito en la secci´n 3.11) que la salida y(t) del modelo tambi´n cumple que (ver e ecuaci´n (6.1 El modelo lineal de orden 2 del servomotor D.11) (6. con C(z −1 ) = 0.1): o y(t) = x(t) + n(t) y donde: u = si´n es: o B AF y n e = C AD .3 es: o q = w ˙ w = − ˙ N q− M n2 KE B + M MR w+ nKact K u RM Asumiendo que el ruido de medici´n n(t) en la posici´n del eje del servomotor o o (la salida del proceso) es coloreado: n(t) = determine su modelo CARIMA.12) y(t + k/t) = x(t + k/t) + n(t + k/t) Ejemplo 6.

La ecuaci´n de difeo rencias del proceso ruidoso viene a ser: q(t) = (1 − a1 )q(t − 1) + (a1 − a2 )q(t − 2) + a2 q(t − 3)+ b1 u(t − 1) + (b2 − b1 )u(t − 2) − b2 u(t − 3) + e(t) + a1 e(t − 1) + a2 e(t − 2) En el siguiente ejemplo analizaremos la se˜al n(t) resultante.4 para un modelo de segundo orden. El Modelo del Predictor El predictor y(t + k/t) de la se˜al de salida y el predictor n(t + k/t) de n la se˜al de perturbaci´n pueden ser modelados empleando representaciones n o serie y serie/paralelo como se detalla a continuaci´n. puede ser usado para procesos estables y es el que se implementa por defecto. En . n 6. Predicci´n de y(t + k/t) o Para predecir y(t+k/t) existen dos posibles esquemas de implementaci´n.4. o El Modelo Paralelo El modelo paralelo.4. llamado algunas veces modelo independiente.4: Representaci´n de los modelos paralelo y serie/paralelo.290 y a˜adiendo el ruido de medici´n obtenemos: n o q(z) = Control Predictivo B(z −1 ) 1 B(z −1 ) u(z) + n(t) = u(z) + e(t) −1 ) −1 ) A(z A(z 1 − z −1 donde e(t) es ruido blanco gaussiano con media nula. x(t+k-1/t) x(t+k-2/t) u(t+k-1/t) u(t+k-2/t) MODELO PARALELO x(t+k/t) u(t+k-1/t) u(t+k-2/t) y(t+k-1/t) y(t+k-2/t) MODELO SERIE / x(t+k/t) PARALELO Figura 6. o 6. o los cuales se muestran en la figura 6.1.

14) que es la ecuaci´n (6.6.17) 1 − z −1 . y x(t) = A(z −1 ) u(t). el modelo del disturbio n(t) = D(z −1) e(t) se es) coge diferente al del modelo paralelo. la expresi´n predictiva del modelo serie/paralelo es: o A(z −1 ) e(t) = y(t) + n(t) (6. Por consiguiente. AD(z −1 ) = (1−z −1 ).16) (6. Su expresi´n es: ı o y(t) = B(z −1 ) 1 u(t) + e(t) = x(t) + n(t) −1 ) A(z 1 − z −1 291 (6. El modelo serie/paralelo se obtiene reescribiendo el modelo paralelo como sigue: A(z −1 )y(t) = B(z −1 )u(t) + A(z −1 ) e(t) 1 − z −1 (6. La o salida y(t) toma entonces la forma: y(t) = (1 − A(z −1 ))y(t) + B(z −1 )u(t) + donde y(t) se obtiene de la relaci´n: o y(t) = (1 − A(z −1 ))y(t) + B(z −1 )u(t) y(t) = −a1 y(t − 1) − · · · − ana y(t − na ) +b1 u(t − 1) + · · · + bnb u(t − nb ) y(t + k/t) = −a1 y(t + k − 1/t) − · · · − ana y(t + k − na /t) +b1 u(t + k − 1/t) + · · · + bnb u(t + k − nb /t) (6. o B(z −1 ) 1 n(t) = 1−z −1 e(t).18) Por consiguiente. En este caso. para cualquier t: x(t) = (1 − A(z −1 ))x(t) + B(z −1 )u(t) = −a1 x(t − 1) − · · · − ana x(t − na ) +b1 u(t − 1) + · · · + bnb u(t − nb ) siendo su expresi´n gen´rica predictiva: o e x(t + k/t) = −a1 x(t + k − 1/t) − · · · − ana y(t + k − na /t) +b1 u(t + k − 1/t) + · · · + bnb u(t + k − nb /t) (6.13) la cual se obtiene de la ecuaci´n (6.6) cuando C(z −1 ) = A(z −1 ) y D(z −1 ) = 1 − z −1 .19) (6.6)) con C(z −1 ) = 1.15) El Modelo Serie/Paralelo El modelo serie/paralelo puede ser empleado para procesos estables o C(z −1 inestables.4 El Modelo del Predictor este modelo la salida y(t) se realimenta a s´ misma.

o 6. .4.2. x(t − na ) u(t − 1) . Predicci´n de n(t + k/t) o Para cualquier tiempo t. . u PROCESO y u PROCESO y + x u MODELO PARALELO x y u MODELO SERIE / PARALELO x + Figura 6.5: Implementaci´n de los modelos paralelo y serie/paralelo.5. . N2 (6.20) Como ya se tienen disponibles los valores previos n(t − 1). . k = 1.21) donde e(t) es un ruido blanco no correlacionado con media nula. ello nos permite computar: D(z −1 ) e(t) = n(t) C(z −1 ) e(t) = −c1 e(t−1)−c2 e(t−2)−· · ·+n(t)+d1 n(t−1)+d2 n(t−2)+· · · (6. . ..292 Control Predictivo La diferencia del modelo serie/paralelo con respecto al modelo paralelo puede deducirse de la figura 6. . . . . N2 D(z −1 ) = −d1 n(t + k − 1/t) − d2 n(t + k − 2/t) + e(t + k/t) · · · +c1 e(t + k − 1/t) + c2 e(t + k − 2/t) + · · · (6. . n(t − 2). . . se puede calcular x(t) usando los datos disponibles del modelo: [x(t − 1) . . . k = 1. u(t − nb )] Luego.23) . la mejor predicci´n del disturbio se obtiene de: o o n(t + k/t) = C(z −1 ) e(t + k/t). usando las mediciones y(t) (por ende y(t + k/t)).22) Por extensi´n. podemos calcular la perturbaci´n n(t) mediante la relaci´n: o o n(t) = x(t) − y(t) (6. Esto significa que la mejor predicci´n de e(t) es: o e(t + k/t) = 0.

6. n(t + N2 /t) = −d1 n(t + N2 − 1/t) − d2 n(t + N2 − 2/t) − · · · k = N2 .1. e(t + k/t) = 0. u(2)=0.6.06377. Considerar ruido blanco gaussiano.25.’zoh’). u(3)=0. R = 7. m = 0. Ejemplo 6. Bc = [0.6.38. Observar en la ultima figura que el ruido e(t) empleado ´ posee media cero y una funci´n de distribuci´n gaussiana.C. B = n^2*bm + bL.Bc.01. % MODELO NO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN Ac = [0 1.2 Comparar las respuestas a una sinusoide del proceso servomotor D. % 0. n(t + 1/t) = −d1 n(t/t) − d2 n(t − 1/t) − · · · n(t + 2/t) = −d1 n(t + 1/t) − d2 n(t/t) − · · · . n = 19.4 El Modelo del Predictor 293 El c´lculo recursivo toma en cuenta que para cualquier k. cuando la salida y no es ruidosa y cuando lo es.741.1.8.H.D]=c2dm(Ac.045.9062e-6. % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01 s.m.D). Kact = 14. u(1)=0. Dc = [0]. a2 = den(3).Dc.02 K = 31. Ro = 0.n*K*Kact/(R*M)]. 0. no lineal del ejemplo 6.Cc. la soluci´n a este probleo o ma se detalla en el programa ejem6 2.den]=ss2tf(G.-N/M -(B + n^2*K*E/R)/M]. bL = 1e-5. g = 9. L = 4.8338e-6. q(2)=0.9. Cc = [1 0].81.H. a1 = den(2). Los resultados se muestran en las figuras 6.64e-2.01. bm = 1.035e-3. Mo = 0. q(3)=0.T.m SOLUCION EJEMPLO 6.776. Jm = 1. . % CONDICIONES INICIALES NULAS q(1)=0. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2.C. o o % ejem6_2. a Por consiguiente. Lo = 0. El tiempo de muestreo es T = 0. E = 31. 0.071e-3. .01. Soluci´n: Empleando el resultado del ejemplo 6. [num. % PERIODO DE MUESTREO [G. cc = 0.2 clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.C. k = 2. .7 y 6. Jeff = n^2*Jm +JL.5e-7. para: k = 1. b2 = num(3). N = g*Lo*(Mo+m/2). b1 = num(2).3) JL = 3.

2) plot(ejex.1) plot(ejex.2) hist(e) ylabel(’Distribucion de e(t)’) xlabel(’<-----e(t) ------>’) print -f -deps ejem6_2c .2) plot(ejex. grid ylabel(’Entrada (voltios)’) xlabel(’Tiempo en segundos’) print -f -deps ejem6_2b figure(3) subplot(2. y(3)=0. e(2)=0.b2*u(t-2) .y(3:MM+2)).e(3:MM+2)). grid ylabel(’Ruido gaussiano e(t) (rad)’) xlabel(’Tiempo en segundos’) subplot(2. + e(t+1) + a1*e(t) + a2*e(t-1).294 Control Predictivo y(1)=0..006*t).1. % RESPUESTAS DEL PROCESO MM = 1000.u(3:MM+2)).1*randn. grid ylabel(’Posicion ruidosa (rad)’) xlabel(’Tiempo en segundos’) subplot(2. figure(1) subplot(2.1. end % GRAFICOS ejex = linspace(0...1.MM). % GENERA RUIDO BLANCO GAUSSIANO % DE MEDIA NULA Y VARIANZA 0. e(3)=0. grid ylabel(’Posicion en rad’). % SINUSOIDE DE ENTRADA q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1). grid ylabel(’Entrada (voltios)’) xlabel(’Tiempo en segundos’) print -f -deps ejem6_2a figure(2) subplot(2.. + b1*u(t) + (b2-b1)*u(t-1) .1. for t=3:MM+2 u(t) = sin(0. e(t+1) = 0.1) plot(ejex.1) plot(ejex.u(3:MM+2)). y(2)=0.1 y(t+1) = (1-a1)*y(t) + (a1-a2)*y(t-1) + a2*y(t-2) .1.1.q(3:MM+2)).MM*T. xlabel(’Tiempo en segundos’) subplot(2. e(1)=0.

5 0 −0. 4 Posición ruidosa (rad) 2 0 −2 −4 −6 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 1 Entrada (voltios) 0. .5 −1 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Figura 6.6: Respuesta no ruidosa del proceso a una sinusoide.4 El Modelo del Predictor 4 Posición en rad 2 0 −2 −4 0 295 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 1 Entrada (voltios) 0.5 0 −0.5 −1 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Figura 6.6.7: Respuesta ruidosa del proceso a una sinusoide.

296 0. .4 0.5.26) .24) donde : ∆u(t + k/t) = u(t + k/t) − u(t + k − 1/t) (6. N2 − 1.1 <−−−−−− e(t) −−−−−−> 0.2 −0. La trayectoria de referencia est´ representada por la ecuaci´n: o r(t + k/t) = αr(t + k − 1/t) + (1 − α)w(t + k/t) evaluada para k = 1. Los par´metros de dise˜o son: a n N1 : horizonte de predicci´n m´ o ınimo. N2 . k = 0.25) a con ∆u(t + k/t) = 0 para k ≥ Nu . .2 0. .4 Figura 6. con r(t/t) = y(t). . .2 −0.5.8: Ruido blanco e(t) con media cero y distribuci´n gaussiana.1.4 −0. .3 −0. 6.3 0.2 0 −0. . que minimice la siguiente funci´n de costo: o N2 J= k=N1 [r(t + k/t) − y(t + k/t)]2 + λ Nu −1 k=0 [∆u(t + k/t)]2 (6. o 6. El Controlador Predictivo Objetivo del Controlador El objetivo del controlador predictivo es determinar el vector de control u(t + k/t). (6.1 0 0.4 0 Control Predictivo Ruido gausiano e(t) (rad) 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 300 Distribución de e(t) 200 100 0 −0. .

Nu : horizonte de control. a o α: par´metro de filtraje. w(t + k/t) = w(t + k) para k = 1. por defecto considerar Nu = 1. n . . por defecto considerar N1 (tiempo muerto). . 6. (6. La trayectoria de referencia dada en (6. .28) donde el sub´ ındice forz indica forzada. . . . . por defecto podemos considerar o a N2 = N1 + 1.5 El Controlador Predictivo 297 N2 : horizonte de predicci´n m´ximo. . . por defecto considerar cero. Respuesta Libre y Respuesta Forzada Conceptualmente. N1 + 10.2. N2 : horizonte de coincidencia. . Es decir. .5. la respuesta futura y(t + k/t) puede ser considerada como el resultado acumulativo de dos efectos: y(t + k/t) = ylibre (t + k/t) + yf orz (t + k/t) (6. .9 ilustra el objetivo del control predictivo basado en modelos. Este filtro se puede representar mediante la siguiente funci´n de transferencia: o 1−α z(1 − α) r(z) = = −1 w(z) 1 − αz z−α 2. N1 .6.26) constituye un filtro de primer orden para w(t). entonces los valores futuros w(t + k) se pueden emplear para determinar w(t + k/t). a Si la trayectoria deseada w(t) se programa previamente. La respuesta libre ylibre (t + k/t) aparece como consecuencia de los factores siguientes: El efecto debido a las se˜ales de control pasadas u(t − 1). el valor actual w(t) se puede usar como un valor de predicci´n w(t + k/t) = w(t) para k = 1. o Es importante observar adem´s que: a 1. . pero s´ conı tribuyendo al rechazo del ruido. . N2 . por defecto considerar cero. . u(t − 2). . N2 . . . La figura 6. λ: par´metro de ponderaci´n.27) El filtro para w(t) se puede implementar fuera del lazo de control. no afectando de esta manera a la estabilidad del sistema. . Si no deseamos una estrategia de control predictivo en avance.

resulta en una contribuci´n gk ∆u(t/t) en la salida del proceso en o el tiempo t + k. como sigue: o Un escal´n con amplitud ∆u(t/t) aplicado al proceso en el tiempo o t. o causado por las se˜ales ∆u(t/t). esto es. . . Es decir. . . . k tiempos de muestreo m´s tarde (figura a 6. ∆u(t+Nu −1/t). causado por la acci´n del control futuro. a etc.298 Control Predictivo N u =4 1 0 1 0 11 00 11 11 11 11 00 00 00 00 1 0 11 11 11 00 00 00 11 00 11 11 11 00 00 00 1 0 11 11 11 11 00 00 00 00 1 0 11 00 1 1 0 0 1 1 0 0 1 0 y(t+k/t) 11 00 u(t+k/t) 1 0 u 1 0 1 0 o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o r=w y N 1=2 N 2 =8 FUTURO PASADO Tiempo actual t Figura 6. .10(b)). resulta en una contribuci´n gk ∆u(t + 1/t) para la salida del o proceso en el tiempo t + k − 1. Por defecto se tiene u(t/t) = u(t − 1). El segunn do efecto se debe a las respuestas del proceso a una secuencia de entradas escal´n. . Es decir.. . u(t + 2/t) = u(t − 1). El efecto debido a un escenario de control futuro. u(t + 1/t) = u(t − 1). ∆u(t+1/t). Un escal´n con amplitud ∆u(t + 1/t) aplicado al proceso en el tiempo o t + 1. La componente forzada yf orz (t + k/t) aparece debido al resultado de dos efectos.10(a)). .9: Objetivo del control predictivo basado en modelos. k − 1 tiempos de muestreo m´s tarde (figura 6. . ∆u(t/t) = ∆u(t + 1/t) = . = ∆u(t + Nu − 1/t) = 0 El efecto debido a las perturbaciones futuras del ruido n(t + k/t). El primero. es decir.

el efecto acumulativo de todos los escalones es: yf orz (t+k/t) = gk ∆u(t/t)+gk−1 ∆u(t+1/t)+· · ·+gk−Nu +1 ∆u(t+Nu −1/t) (6. . aplicando en cada instante de muestreo un cambio escal´n (ficticio) a la o entrada actual del proceso y calculando su efecto en la salida respectiva. o Para un sistema lineal. . como en el caso de una red neuronal. Para un sistema no lineal. . Es decir. Este punto es fijo y puede ser calculado fuera de l´ o ınea (“off-line”) usando el modelo del sistema. o Por consiguiente.6.5 El Controlador Predictivo ∆u(t/t) ’ Entrada escalon g ∆u(t/t) k Respuesta ’ al escalon k Muestras t ∆u(t+1/t) t+k (a) ’ Entrada escalon g ∆u(t+1/t) k Respuesta ’ al escalon (k-1) Muestras 299 Tiempo Tiempo t t+k (b) Figura 6. la respuesta al escal´n unitario es diferente para cada punto de operaci´n. .29) donde los par´metros g1 . .10: El efecto de las entradas tipo escal´n en la salida forzada. Esta o o respuesta tiene que ser calculada en cada tiempo de muestreo (“on-line”). la respuesta al escal´n unitario no depende del o punto de operaci´n. gN2 son los coeficientes de la respuesta del a sistema al escal´n unitario. la respuesta de la salida del sistema a o los cambios tipo escal´n unitario en la entrada.

.3 o Determinar la respuesta libre y los coeficientes gk de la respuesta al escal´n para el proceso servomotor D.. ..30) Yf orz = GU donde: Yf orz = yf orz (t + N1 /t) yf orz (t + N1 + 1/t) · · · yf orz (t + N2 /t)   gN1 gN1 −1 . ∆u(t + Nu − 1/t)]T ¯ Y = [ylibre (t+N1 /t) . y: ı g(k) = −a1 g(k − 1) − a2 g(k − 2) + b1 + b2 . .. . . Luego.  g  gN1 . g(2) = −a1 b1 + b1 + b2 . . ylibre (t+N2 /t)]T .300 Control Predictivo De la ecuaci´n (6..... R = [r(t+N1 /t) .. los coeficientes g(k) se determinan de: g(k) = −a1 g(k − 1) − a2 g(k − 2) + b1 u(k − 1) + b2 u(k − 2) As´ podemos obtener que g(0) = 0. . U = [∆u(t/t) ..28).  . ..  G =  N1 +1  .. r(t+N2 /t)]T Ejemplo 6. . .31) Y = [y(t + N1 /t) .29) se puede obtener la siguiente expresi´n para la o o componente forzada: (6. .C. descrito en el ejemplo 6. .1. podemos escribir: o ¯ Y = Y + GU donde: (6. gN2 gN2 −1 .. . Soluci´n: La ecuaci´n de diferencias del proceso es: o o y(k) = −a1 y(k − 1) − a2 y(k − 2) + b1 u(k − 1) + b2 u(k − 2) Cuando la entrada es u(k) = 1 para todo k ≥ 0. entonces y(k) = g(k) para todo k ≥ 0.. y(t + N2 /t)]T . . . . La condici´n para respuesta libre es que: o u(t/t) = u(t + 1/t) = · · · = u(t + N2 /t) = u(t − 1) Aplicando tal condici´n en la ecuaci´n de diferencias del proceso. gN2 −Nu +1 ∆u(t/t) ∆u(t + 1/t) · · · ∆u(t + Nu − 1/t) T T U= y empleando la ecuaci´n (6. g(1) = b1 . determio o namos la respuesta libre ylibre como sigue: ylibre (t + 1) = −a1 ylibre (t) − a2 ylibre (t − 1) + (b1 + b2 )u(t − 1) k≥3 . .

3. El mismo procedimiento se repite para la nueva medici´n y(t + 1) en el pr´ximo o o instante de tiempo t + 1. la salida entonces alcanza la referencia despu´s de n muestras y se mantiene en este estado. para Nu = 1. La matriz [GT G + λI] a ser invertida tiene dimensi´n Nu × Nu . como en la rob´tica. cuya minimizaci´n por diferenciaci´n a o o resulta en la siguiente soluci´n optima: o ´ U∗ = (GT G + λI)−1 GT (R − Y) Es importante indicar que: Solamente el primer elemento ∆u(t/t) de U∗ es necesario para computar la entrada de control actual u(t) = u(t − 1) + ∆u(t/t).32) la cual es una forma cuadr´tica en U. Por ejemplo: o Si N1 = n. Para el o caso por defecto. N2 = 2n − 1. es decir. se obtiene una ley de control escalar (con muy buenos resultados en muchos casos pr´cticos) de la a forma: ∆u(t) = N2 k=N1 (6.34) Otra aproximaci´n para la estructuraci´n del escenario de control cono o siste en el empleo de funciones base de la forma: u(t + k/t) = i µi Bi (6. Este caso es muy apropiada o para aplicaciones que requieran alto rendimiento.24)) resulta: o o o ¯ ¯ (R−Y)T (R−Y)+λUT U = [(R−Y)−GU]T [(R−Y)−GU]+λUT U (6.35) La optimizaci´n de la se˜al de control u(t + k/t) es ahora con respecto o n a los par´metros µi . a El control predictivo muestra diferentes propiedades dependiendo de la selecci´n de N1 . propore cionando una vigorosa acci´n de control.6. La Ley de Control Con la notaci´n anterior. o .5 El Controlador Predictivo 301 6. la funci´n de costo (ecuaci´n (6. Nu = n y λ = 0. Este procedimiento se denomina el principio del “horizonte retroactivo”.33) gk [r(t + k/t) − ylibre (t + k/t)] N2 k=N1 2 gk + λ (6.5. N2 y Nu .

g = 9. B = n^2*bm + bL. e e o a Nosotros no trataremos esta alternativa. n = 19.302 Control Predictivo Si escogemos N1 = Nu = 1.1 a empleando los datos siguientes: N1 = 7.64e-3. Kact = 14. tales como la programaci´n cuadr´tica.25. Posteriormente. Jeff = n^2*Jm +JL. conforme a rangos previamente especificados (las restricciones). proceder mediante software. JL = 3. % ejem6_4.9062e-6. en a a el caso de un servosistema no lineal.m SOLUCION DEL EJEMPLO 6.035e-3.81.4 Determinar la matriz din´mica de control para el proceso del ejemplo 6.38. debiendo recurrirse a dos posibles soluciones.3) Lo = 0. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2. L = 4. Ejemplo 6. % MODELO NO LINEAL DEL PROCESO CONTINUO DE TERCER ORDEN .776. E = 31.5e-7. considerando que todas las se˜ales poseen rango ilimitado. bL = 1e-5. N2 = 12. Mo = 0. obtendremos una respuesta transitoria de la variable controlada. La o primera soluci´n es tratar a todas las variables como si no tuvieran restrico ciones..02 K = 31. si la se˜al de control u(t) es demasiado n grande. Ro = 0. RR = 7. e En presencia de restricciones no es posible la soluci´n anal´ o ıtica del problema de minimizaci´n. entonces el amplificador del voltaje de armadura se puede saturar produci´ndose su deterioro. m = 0.9. % tambi’en 0.01. con el corte o la limitaci´n de o las magnitudes de las variables con restricciones.8338e-6.741. cc = 0. Jm = 1.01. es decir. Sin embargo.06377. caracterizada por un tiempo de subida r´pido y un tiempo de estabilizaci´n lento. N = g*Lo*(Mo+m/2).4 clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3. bm = 1. La Ley de Control con Restricciones El problema de control presentado en la subsecci´n anterior fue formuo lado bajo condiciones de control sin restricciones.045. Este a o hecho es relevante en el control de procesos industriales.. todos los procesos est´n sujetos a restricciones.071e-3. La otra soluci´n requiere o el empleo de t´cnicas num´ricas. esto no es realista. N2 = ∞ y λ = 0. En n la pr´ctica. Nu = 6. Por ejemplo.

% MODELO LINEAL CONTINUO DE SEGUNDO ORDEN DEL PROCESO Ac = [0 1. % Ccc = [1 0 0]. for k=3:12 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2.6.6 Procedimiento de Dise˜ o n % Acc = [0 1 0.3).5. o o 5) Determinar la ley de control (subsecci´n 6. a2 = den(3). Cc = [1 0].Bc. b1 = num(2).2). % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.3).0. empleando la matriz din´mica de control es: a 1) Formular el problema (definir las especificaciones de dise˜o). o 4) Calcular la respuesta del proceso al escal´n (subsecci´n 6. .Kact/L].Dc.Cc.H. incluyendo las restricciones. % periodo de muestreo [G.5.D]=c2dm(Ac. Dc = [0].C. Procedimiento de Dise˜o n El procedimiento para dise˜ar un sistema de control predictivo basado n en modelos. Dcc = [0].-N/M -B/M n*K/M. Nu =7. N2 =12.0 -n*E/L -RR/L]. n 2) Determinar el modelo CARIMA del proceso (subsecci´n 6.T. % Bcc = [0. g(2) = -a1*b1 + b1 + b2. Bc = [0.01. % HORIZONTE DE CONTROL % RESPUESTA AL ESCALON g(1) = b1. [num.den]=ss2tf(G. N1 = 6.n*K*Kact/(RR*M)].C.-N/M -(B + n^2*K*E/RR)/M]. o 3) Calcular la respuesta libre del proceso (subsecci´n 6.2). 6. end % LUEGO. LA MATRIZ G TIENE LA FORMA: G = [g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1+5) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N2) g(N2-1) g(N2-2) g(N2-3) g(N2-4) g(N2-5) 303 0 g(N1-5) g(N1-4) g(N1-3) g(N1-2) g(N1-1) g(N2-Nu+1)]. a1 = den(2). o 6) Simular el sistema de control predictivo.D).’zoh’).H.6. b2 = num(3).5.

empleando una ley de control escalar din´mica. Control de Posici´n de un Servomotor o Formulaci´n del Problema o El servomotor D. y la saturaci´n en el amplificador del servomotor. 6. En el extremo de la varilla se pueden acoplar cargas adicionales. a de modo tal que la varilla se posicione en una referencia predeterminada. a o Modelo del Proceso La figura 3. 8) Implementar el software de control. N = gLo (M + ) o o 5 3 2 2 2 B = n bm + bL Jef f = n Jm + JL . con carga no lineal (discutido ampliamente en la secci´n 3. El objetivo de control es dise˜ar e implementar un sistema de control pren dictivo basado en modelos. ˙ Ac = 0 N −M B −( M y = Cc x 0 KnKact MR 1 2E + KnR ) M .7. Control Predictivo 9) Realizar pruebas de funcionamiento (resultados experimentales). el proceso no lineal puede ser descrito mediante el siguiente modelo lineal (subsecci´n 3. La tabla 3.C. La carga no lineal es una varilla met´lica a acoplada al eje del servomotor.9 presenta la estructura del proceso no lineal a controlar. La funci´n de transferencia Gp (s) del proceso puede determinarse de: o Gp (s) = y(s) = Cc [sI − Ac ]−1 Bc u(s) . Asumiendo a que la se˜al de control u est´ compensada por las no linealidades y desn a preciando la inductancia L del servomotor. Cc = 1 0 2 1 m 2 M = Jef f + M L2 + M Ro + mL2 ).5): o x = Ac x + Bc u.2 describe las variables y los valores de sus par´metros. 6. no obstante la presencia de la carga no lineal y de las no linealidades del proceso como son las fricciones est´tica y de Coulomb.7.304 7) Implementar el hardware. Bc = . El sobreimpulso de la respuesta debe ser m´ ınimo. a manera de un brazo rob´tico de un grado o de libertad.1.3) es un proceso de una entrada y una salida que puede ser controo lado por el voltaje de armadura.3.

B(z −1 ) = b1 z −1 + b2 z −2 Su correspondiente ecuaci´n de diferencias es: o y(k) = −a1 y(k − 1) − a2 y(k − 2) + b1 u(k − 1) + b2 u(k − 2) Con Mo = 0 (varilla sin carga adicional). a2 =0. r(3)=0. con A(z −1 ) = 1 + a1 z −1 + a2 z −2 .3.] es la operaci´n transformada Z. yf(t+k) = .6.9614 . yf(2)=0. frec = 0. b1 =0. los par´metros poseen los valores a siguientes: a1 =-1. 6.9614 . MM = 1000. end end .0063. Dicha funci´n de transferencia o o depende del tiempo de muestreo T y posee la estructura siguiente: Gp (z) = b1 z + b2 y(z) b1 z −1 + b2 z −2 B(z −1 ) = 2 = = u(z) z + a1 z + a2 1 + a1 z −1 + a2 z −2 A(z −1 ) que constituye el modelo CARIMA del proceso. % yf: RESPUESTA LIBRE r(1) =0. r(2) =0.0044 y b2 =0. la trayectoria de referencia r(t) y la respuesta libre ylibre .2.0043 . El siguiente programa determina recursivamente o la trayectoria deseada W (t). Respuesta Libre del Proceso La expresi´n para determinar la respuesta libre del proceso en cuesti´n se o o determin´ en el ejemplo 6.a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1). Por simplicidad. % REFERENCIA. % r : REFERENCIA alf = 0. yf(3)=0. % TRAYECTORIA DESEADA r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k).7. SALIDA LIBRE Y RESPUESTAS AL ESCALON for t = 3:MM+2 for k = n1:n2 W(t+k) = GW*sign(sin(frec*(t))). n1=1. n2=20. o % CONDICIONES Y PARAMETROS INICIALES yf(1)=0.7 Control de Posici´n de un Servomotor o 305 mientras que la funci´n de transferencia de pulso Gp (z) se determina de: o Gp (z) = Gp (s) y(z) = (1 − z −1 )Z u(z) s donde Z[.01. emplearemos la notaci´n: yf = ylibre . GW = 1.

.035e-3.045. se determin´ en el ejemplo 6.25. n = 19. Se a est´ empleando restricci´n en la fuerza de control para evitar la saturaci´n a o o del amplificador de potencia. g = 9.9062e-6..01.741.4 y un modelo lineal de o segundo orden del proceso. El resultado de esta simulaci´n se muestra en o la figura 6.64e-3.5.9.7. % HORIZONTE DE CONTROL % RESPUESTA AL ESCALON g(1) = b1.3) Lo = 0. L = 4. B = n^2*bm + bL.4.3.7.m PRIMERA SIMULACION DEL SISTEMA DE CONTROL PREDICTIVO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.8338e-6. La forma de la ley de control es: ∆u = N2 k=N1 g(k)[r(t + k/t) − ylibre (t + k/t)] N2 k=N1 g 2 (k) + λ 6. RR = 7.7. Kact = 14. Simulaci´n del Sistema de Control Predictivo o Primera Simulaci´n o El programa dispred1. end 6. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2. Jm = 1. La carga no lineal a posicionar es m´xima.776. % tambi’en 0.7.020 K = 31.5e-7.306 Control Predictivo 6.11. Jeff = n^2*Jm +JL. La Ley de Control La ley de control a emplear es del tipo escalar (Nu = 1) con N1 = 1 y N2 = 12. N2 = 12. E = 31. JL = 3. % dispred1. for k=3:N2 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2. Mo = 0. cc = 0. m = 0. Ro = 0. bL = 1e-5. Respuesta del Proceso al Escal´n o La expresi´n para determinar los coeficientes de la respuesta al escal´n o o del proceso en cuesti´n.. bm = 1. g(2) = -a1*b1 + b1 + b2.071e-3.01.38.81.3. En c´digo MATLAB o o o el c´lculo se efect´a como sigue: a u N1 = 6.06377.m simula el sistema de control predictivo empleando la ley de control descrita en la subsecci´n 6.

% HORIZONTES N1 = 1. q(1) =0.. u(t) = u(t-1) + du(t)..D]=c2dm(Ac. g(11)^2 + g(12)^2 + lambda). r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k).n*K*Kact/(RR*M)].T. alf = 0. w(2)=0.7 Control de Posici´n de un Servomotor o N = g*Lo*(Mo+m/2).. end % yf: RESPUESTA LIBRE % LEY DE CONTROL du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + .01. q(3) =0. % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0. % LEY DE CONTROL ACTUAL % LIMITANDO LA FUERZA DE CONTROL 307 . GW = 1. Cc = [1 0]. % LAZO DE CONTROL for t = 2:MM+2 for k = 1:N2 W(t+k) = GW*sign(sin(frec*(t))).Cc.0063.. % PERIODO DE MUESTREO [G.C. N2 =12. g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + . % LEY DE CONTROL ESCALAR % RESPUESTA AL ESCALON g(1) = b1.. b2 = num(3). Bc = [0. frec = 0.den]=ss2tf(G. g(9)*(r(t+9)-yf(t+9))+ g(10)*(r(t+10)-yf(t+10)) + .. g(2) = -a1*b1 + b1 + b2.Dc. r(1)=0. a1 = den(2). u(2) =0. for k=3:N2 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2. u(1) =0. MM = 2000.’zoh’).-N/M -(B + n^2*K*E/RR)/M]. g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + . g(11)*(r(t+11)-yf(t+11))+ g(12)*(r(t+12)-yf(t+12)))/. % MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1. yf(2)=0. r(3) =0.H..C.. b1 = num(2). [num.. a2 = den(3). end % CONDICIONES INICIALES yf(1)=0..D). u(3) =0.H. yf(3)=0.. w(1)=0..6..... Dc = [0]. w(3) =0. Nu =1. lambda = 0..Bc. (g(1)^2 + g(2)^2 + g(3)^2+ g(4)^2 + g(5)^2 + . g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + .01. g(6)^2 + g(7)^2 + g(8)^2+ g(9)^2 + g(10)^2 + . r(2)=0. yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1). q(2) =0.

grid ylabel(’Posicion q(t) (rad)’) xlabel(’Tiempo en segundos’) subplot(2.11: Primera simulaci´n del sistema de control predictivo.ejex.308 Control Predictivo fu = 1. La carga o no lineal es m´xima. a . if(u(t) > 0 & u(t) > fu) u(t) = fu.1) plot(ejex.W(3:MM).4. end % GRAFICOS ejex = (3:MM). grid ylabel(’Control u(t) (voltios)’) xlabel(’Tiempo en segundos’) print -f -deps dispred1 2 Posición q(t) (rad) 1 0 −1 −2 0 2 4 6 8 Tiempo 10 12 en segundos 14 16 18 20 2 Control u(t) (voltios) 1 0 −1 −2 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20 Figura 6. subplot(2.2) plot(ejex. elseif(u(t) < 0 & u(t) < -fu) u(t) = -fu. ejex = ejex*T.1.u(3:MM)). end % PROCESO LINEAL q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1).q(3:MM)).1.

g(2) = -a1*b1 + b1 + b2.38. L = 4.den]=ss2tf(G. El resultado de esta simulaci´n se muestra en la figura 6. En esta simulaci´n se emplea restricci´n en la fuerza de control a o o dise˜ada para no saturar el amplificador de potencia.81.m clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3. Jm = 1.9. E = 31. o Notar que la fuerza de control generada no sobrepasa el rango de ± 1.H. Mo = 0. [num. Esta es la configuraci´n que se va a implementar. Tambi´n se emplea n e compensaci´n para minimizar el efecto de la fuerza de fricci´n de Coulomb o o en la se˜al de control y restricci´n del tipo y(t) = r(t) (la salida iguala a n o la referencia).01. b2 = num(3). por lo que su implementaci´n no va a saturar al amplificador de potencia a o emplear. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2.045.071e-3.776.741.4 y un modelo o no lineal de segundo orden del proceso. Nu =1. Dc = [0].4 volts.01. % HORIZONTES N1 = 1..12.5e-7. % tambi’en 0. % PERIODO DE MUESTREO [G. end . RR = 7. Cc = [1 0].H.9062e-6.m tambi´n simula el sistema de control predictivo e empleando la ley de control descrita en la subsecci´n 6. Bc = [0. bm = 1.’zoh’). N2 =12. bL = 1e-5.06377. % LEY DE CONTROL ESCALAR % RESPUESTA AL ESCALON g(1) = b1.6.020 K = 31. B = n^2*bm + bL.Cc. for k=3:N2 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2.D).7. o % dispred3. g = 9.7 Control de Posici´n de un Servomotor o Segunda Simulaci´n o 309 El programa dispred3. a1 = den(2).8338e-6.64e-3. Ro = 0. N = g*Lo*(Mo+m/2).-N/M -(B + n^2*K*E/RR)/M]. cc = 0.Bc. La carga no lineal a posicionar es m´xima. JL = 3.D]=c2dm(Ac.C.T. Kact = 14. b1 = num(2).Dc. m = 0. a2 = den(3).25.n*K*Kact/(RR*M)].C.3) Lo = 0. n = 19..035e-3. % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0. % MODELO NO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1.01. Jeff = n^2*Jm +JL.

w(3) =0. g(11)*(r(t+11)-yf(t+11))+g(12)*(r(t+12)-yf(t+12)))/. g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8)) + . g(11)^2 + g(12)^2 + lambda)... elseif(u(t) < 0 & u(t) < -fu) u(t) = -fu. ... r(3) =0.01. (g(1)^2 + g(2)^2 + g(3)^2+g(4)^2 + g(5)^2 + . r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k). % TORQUE DE FRICCION DE COULOMB if(w(t) > 0) u(t) = u(t) + (RR/(n*K*Kact))*TN. end % yf: RESPUESTA LIBRE % RESTRICCION A LA SALIDA q(t) = r(t). r(1)=0. q(3) =0.(RR/(n*K*Kact))*TN. % LEY DE CONTROL du(t) = (g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2)) + . yf(2)=0. elseif(w(t) < 0) u(t) = u(t) .. yf(t+k) =-a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1).. lambda = 0. g(3)*(r(t+3)-yf(t+3))+g(4)*(r(t+4)-yf(t+4)) + . r(2)=0. SALIDA LIBRE Y RESPUESTAS AL ESCALON for k = 1:N2 W(t+k) = GW*sign(sin(frec*(t))). u(2) =0.. % BUCLE DE CONTROL ********************************* for t = 2:MM+2 % REFERENCIAS. u(1) =0.. u(3) =0. alf = 0... w(1)=0. g(6)^2 + g(7)^2 + g(8)^2+g(9)^2 + g(10)^2 + .. if(u(t) > 0 & u(t) > fu) u(t) = fu. w(2)=0.310 Control Predictivo % CONDICIONES INICIALES yf(1)=0. q(2) =0.... end % LIMITANDO LA FUERZA DE CONTROL fu = 1. g(9)*(r(t+9)-yf(t+9))+g(10)*(r(t+10)-yf(t+10)) + .. MM = 2000. q(1) =0. u(t) = u(t-1) + du(t). g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6)) + . frec = 0. GW = 1. end % MODELO NO LINEAL DISCRETIZADO DEL PROCESO DE SEGUNDO ORDEN q(t+1) = q(t) + T*w(t).. yf(3)=0.0063.4.. % ley de control actual % COMPENSANDO LA FRICCION DE COULOMB TN = cc*sign(w(t)).

1) plot(ejex. Implementaci´n del Hardware o El hardware empleado en la implementaci´n en tiempo real del sistema o de control predictivo es similar al empleado para la implementaci´n en tiemo ..W(3:MM).2) plot(ejex.7.6.5 −1 0 311 2 4 6 8 Tiempo 10 12 en segundos 14 16 18 20 2 Control u(t) (voltios) 1 0 −1 −2 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20 Figura 6. . grid ylabel(’Posicion q(t) (rad)’) xlabel(’Tiempo en segundos’) subplot(2.(1/M)*TN + (n*K*Kact/(M*RR))*u(t) ). end % GRAFICOS ejex = (3:MM).1. a 6.(N/M)*sin(q(t)) .ejex. La carga o no lineal es m´xima... subplot(2.1.12: Segunda simulaci´n del sistema de control predictivo.5 0 −0.6. . grid ylabel(’Control u(t) (voltios)’) xlabel(’Tiempo en segundos’) print -f -deps dispred3 1 Posición q(t) (rad) 0..7 Control de Posici´n de un Servomotor o w(t+1) = w(t) + T*( .(B/M + n^2*K*E/(M*RR))*w(t) .q(3:MM)).u(3:MM)). ejex = ejex*T.

o 6. El Software de Control El software usado para la implementaci´n del algoritmo de control de o posici´n emplea el lenguaje C y se ejecuta en una PC Pentium. 6. R1LLIB.6. Actualizar las variables y repetir el lazo de control hasta que k = n.3 volt. Inicializar la tarjeta de adquisici´n de datos Lab−P C+ y las variables o utilizadas en el programa. Detectar el flanco de subida del pulso de reloj (clock) y leer el primer dato de la posici´n (posici´n inicial) para iniciar el algoritmo de cono o trol.PRJ. para: 1.7. 3. La realizaci´n de archivos ejecutables a partir de los programas fuente.7. La u variable n junto con la frecuencia de muestreo determinan el tiempo de duraci´n del experimento. Comprobar que la variable k sea menor que el n´mero de puntos n. Notar que tal diagrama comprende los pasos siguientes. Leer la posici´n y y aplicar las o o restricciones.8. robusto y no lineal. El archivo PREDI4. a Diagrama de Flujo del Software de Control El diagrama de flujo del software de control se muestra en la figura 6.13. luego estimar la velocidad a partir de la posici´n.H. aplicar restricciones a la se˜al de control.312 Control Predictivo po real de los sistemas de control adaptivo. Calcular la se˜al de control u.CPP es el que contiene el algoritmo de control. . El valor del offset es 2. 2. Los proo gramas necesarios para el control se estructuran en tres archivos escritos en C: R1LLIB. compensar las fricciones est´tica y de n a Coulomb (se˜al v). o 5. en el cual intervienen los archivos mencionados en el p´rrafo anterior. o 4. Dicho hardware se describe en detalle en la subsecci´n 5. y luego n n enviar la se˜al u = u + v+offset por el DAC0 de la tarjeta Lab-PC+ n al generador PWM.CPP. Detectar el flanco de subida del pulso de reloj para iniciar un per´ ıodo de adquisici´n de datos y de control.CPP y PREDI4. se o elabora en el ambiente de trabajo del Borland C/C++ mediante la creaci´n o de un proyecto denominado PREDI4.

13: Diagrama de flujo del algoritmo de control. .6.7 Control de Posici´n de un Servomotor o 313 INICIO INICIALIZACION DE VARIABLES INICIALIZACION DE LA TARJETA LabPC+ DETECTAR FLANCO DE SUBIDA LEER POSICION INICIAL P0 NO k MENOR QUE n SI DETECTAR FLANCO DE SUBIDA SI LEER POSICION Pk CALCULAR POSICION Y VELOCIDAD APLICAR RESTRICCIONES EN Pk FIN NO ~ GENERAR SENAL DE CONTROL GENERAR SALIDA COMPENSADA ~ RESTRINGIR LA SENAL DE CONTROL ~ COMPENSADA ENVIAR LA SENAL ACTUALIZAR VARIABLES Figura 6.

o o Las Funciones Propias del Software de Control A continuaci´n se describen las funciones propias del software de control.h (declaraci´n de macros de depuraci´n). Aplica Control: compensa las fricciones est´tica y de Coulomb y aplica a restricciones a la se˜al de entrada u. math. Declaraci´n de las variables globales.3 volt).CPP) realiza lo siguiente: 1. M ide V ariables: especifica la se˜al de referencia considerada. o Inicializa Sistema: permite la inicializaci´n de los par´metros y vao a riables globales. o o r y e.h (manejo de funciones matem´ticas).h (librer´ de funciones). o ıa stdio. m´s la se˜al del offset (2.h (funciones de consola y puertos E/S) a 2. m´s la se˜al n o a n de compensaci´n v. Luego. o 5. y aplica restricciones a la salida. o 3. para asegurar la posici´n inicial de reo o poso del motor (posici´n vertical) y finalmente. inicializa la tarjeta de adquisici´n de datos o Lab-PC+ por medio de la funci´n Conf igurarHardware. Declaraci´n de los archivos de cabecera: r1llib. alloc.314 El Programa Principal Control Predictivo El programa principal (programa PREDI4. Definici´n de las funciones propias del programa: Inicializa Sistema.h (E/S est´ndar). Declaraci´n de las constantes globales. Luego. env´ un voltaje equivan ıa lente a la suma de la se˜al de control u (con restricci´n). Definici´n de la funci´n principal main. a a asserth.h (asignaci´n o o o din´mica de memoria) y conio. actualiza los estados de las variables y. Enseguida o env´ la tensi´n de offset al puerto de salida anal´gica por medio de la ıa o o funci´n EnviarV oltage (sic). o a n La funci´n principal main posee una estructura adecuada para: o . lee la posici´n inicial o o p0 del motor. w. o M ide V ariables y Aplica Control 4. Luego n mide la posici´n actual del motor (posici´n de la varilla) y la velocidad o o (en funci´n de la posici´n).

Esos niveles. y y r en el proceso de ejecuci´n del proyecto. 60o (π/3). const float niv4 = 1. y se actualiza el pulso de reloj siempre que k ≤ n. 37. enviar un voltaje de offset necesario o para detener el motor en su posici´n de reposo. Posteriormente se incrementan k y t. u y e.CPP *********** programa principal *********/ #include "r1llib. o El llamado a la macro de depuraci´n. 45o (π/4). y.h> #include <alloc.h> #include <conio.*M_PI/24.OUT.*M_PI/3.h> const float ESCALA = 2.5o (5π/24) y 30o (π/6). o /* PREDI4. Dentro del lazo de control se define la o ejecuci´n de la funci´n M ide V ariables en cada flanco de subida del o o pulso de reloj.7). w.*M_PI/4. o o Los valores para y.*M_PI/6..7 Control de Posici´n de un Servomotor o La declaraci´n y definici´n de variables locales. w. const float niv1 = 1.h> #include<assert. const float niv2 = 5. w.h" #include <stdio. o La obtenci´n de gr´ficos basados en datos almacenados durante el o a tiempo de ejecuci´n.*M_PI/(512. son: 30o (π/6). Al finalizar el tiempo de ejecuci´n.. const float niv3 = 1. o Los Programas Fuente La trayectoria deseada w considerada en este programa. donde n es un entero que indica el m´ximo n´mero de muestras usado a u en la ejecuci´n del proyecto.6. se visualizan en pantalla los valores instant´neos a de t. o o El llamado a la funci´n Inicializa Sistema.. en orden de o ejecuci´n.. consiste en cinco niveles de 20 segundos de duraci´n por nivel. abriendo el archivo de salida PREDI4. o 315 La asignaci´n de memoria din´mica que permita almacenar los datos o a para las variables: u. Luego se genera la se˜al de control u y se env´ a la n ıa salida del DAC0 la tensi´n ordenada por la funci´n Aplica Control. .h> #include <math. u y r se guardan en memoria. o Ejecutar el lazo de control del programa desde k = 0 hasta k = n.*19.

return u. eantant. if(u>0. b1 = . yant. t.5) u = -1.) v = VcFE. float y. float ykp).5. Ofst. b2. g0. e. pk. es. b2 = . else if(u + v > 1. /* Sin Varilla */ . N. float *r. } else { if(u<0. a2 = . float Fs.) v = -VcFC. } if(u + v < -1. float *w. Wth. if(u>0.) v = -VcFE.316 Control Predictivo /* Declaracion de las funciones propias del programa */ void Inicializa_Sistema(). r. tsimul. float *vel.9631. float T. float eant. b1.0043. float uant. /* Declaracion de las variables globales */ float a1. } void Inicializa_Sistema() { /* Con Varilla*/ a1 = -1. alfa.9614. /********************** FUNCIONES ***************/ float Aplica_Control(float u. VcFE. float ykp) { float v. int p0. rant. a2. landa. void Mide_Variables(float *yk. uantant. float VcFC. w. float t). EnviarVoltage(u+v+Ofst). float Aplica_Control(float u.4) u = 1.) v = VcFC. if(fabs(ykp)<=Wth) { if(u<0.0044.4.

<= t && t <= 100. /* Actualizamos los estados */ yant =* y. EnviarVoltage(Ofst). else if(60.0. e = 0. Fs = 100. landa = 0.9425. a2.1. /* Ahora leo la posici\’on */ pk = LeerPosicion().15. y = 0. eant = 0. rant = 0. . alfa = 0. /* Y el error */ e = *r .. Fs)..0*(*r)) *y = 1.6246..0) *y = 0. /* definiendo la referencia: r=r(t) */ *r = alfa*rant + (1-alfa)*(*w).2. float *vel. T = 1.6246.3.. float t) { /* Definiendo el setpoint: w= w(t)*/ if((0. //b1 = .942. /* ATENCION: LOS VALORES DE a1./Fs. <= t && t < 20. b1. VcFC = . a2 = .) *w = niv3. /* PARAMETROS DEL SISTEMA DE CONTROL PREDICTIVO*/ q0 = 114. tsimul= 100. eantant = 0. 0x264.0479.. /* El error de seguimiento */ es = *w . Wth = . uantant = 0. rant =* r.) || (80. <= t && t < 40.) *w=niv2..*y. <= t && t < 80. else if(*y > 1. 0x271. Ofst = 2.. /* Restricciones en la salida */ if(*y < 0. ConfigurarHardware(0x272. eant = e.01. b2 DEPENDEN DE LA Fs */ VcFE = . p0 = pk. } void Mide_Variables (float *y. eantant = eant. b2 = .6. float *w. else if(40. <= t && t < 60.. /* INICIALIZACION DE LAS VARIABLES */ yant = 0.) *w = niv4.)) *w = niv1.7 Control de Posici´n de un Servomotor o 317 //a1 = -1.0410.0*(*r).*y. p0 = LeerPosicion()... float *r. *y = yant + ((float)(abs(pk-p0) > 8000 ? 0:pk-p0))*ESCALA. uant = 0. 0x270. else if(20.

gotoxy(21. *wb.printf("setpoint: w=%+5. printf("*****************************************"). w.sizeof(float)))). n. assert(tsimul < 120). vel. u=(landa+q0*b1*(1-landa))*uant+q0*(1-landa) *(b2*uantant + e + a1*eant + a2*eantant). u. t = vel = 0. rb[k/5] = r*180./M_PI).) { act = NivelClock().t). float *yb. for(k = 0.5).w*180. + 5. if(!(k%5)) { yb[k/5] = y*180. clrscr().sizeof(float)))).7). N = tsimul/T. Inicializa_Sistema(). Control Predictivo } void main() { int ant = 0.sizeof(float)))). *ub. float yant.printf("tiempo: t=%+5.3f". r. printf("*****************************************").*(*y .*T). k. gotoxy(18../M_PI. &r. assert(NULL!=(yb= (float *)calloc(n/5.C. y. ub[k/5] = u.318 /* Y la velocidad angular */ *vel = (5. printf("Control Predictivo de un Servomotor D. gotoxy(21. gotoxy(15. assert(NULL!=(ub= (float *)calloc(n/5. uantant = uant./M_PI. assert(NULL!=(wb= (float *)calloc(n/5. u = Aplica_Control(u. uant=u. . if ((ant == 0)&&(act == 1)) { Mide_Variables(&y. gotoxy(15.11). /* Se~nal de Control */ //u = q0*(b1*uant + b2*uantant + e + a1*eant + a2*eantant). vel). wb[k/5] = w*180. &vel. &w. assert(NULL!=(rb= (float *)calloc(n/5."). n = (int)N./M_PI. *rb.3f".9).sizeof(float)))). } k++.yant) + *vel)/(1.13). act = 0. t+=T. t). FILE *out. k < n.

3f".23).3f". out=fopen("predi4./M_PI).H **************************************************** * Archivo de declaraciones de funciones definidas en R1LLIB.25).19).es*180. timer) void ConfigurarHardware (unsigned. i*5*T.15).17).: r=%+5."wt"). Tambien usa funciones de lecto/ * escritura de registros (inportb. ub[i]. if(kbhit()) if(getch() == 27) break.3f".3f"./M_PI)./M_PI). gotoxy(21. gotoxy(21.int). // Salida de Voltage por R1LAOPort void EnviarVoltage(float). rb[i].out". * Timer generator.r*180.printf("se~nal de control: u=%+5. i++) fprintf(out. gotoxy(21.CPP * Estas funciones permiten facilitar el manejo de la tarjeta de * Adquisicion Lab-PC+: Digital input (16 bits).6. unsigned. for (int i = 0./M_PI).e*180.3f". } /* R1LLIB. yb[i]. Polling. } ant = act. i<n/5. gotoxy(15. wb[i]-yb[i]).printf("error de posicion: e=%+5. rb. delete wb. ub. outport).u). fclose(out). // Leer Posicion (16 bits leidos por R1LLSBPort y R1LMSBPort) unsigned int LeerPosicion(). unsigned. Analog Output. yb. #endif .21). */ #if !defined (__R1LLIB_H_PRY) #define __R1LLIB_H_PRY // Configuracion de Lab-PC+ (digital in. // Leer Nivel del clock (polling).printf("error seguimiento: es=%+5."%10f %10f %10f %10f %10f %10f\n". wb[i]. Devuelve 0 o 1 int NivelClock ().7 Control de Posici´n de un Servomotor o 319 gotoxy(21. polling.printf("posicion angular: y=%+5. gotoxy(21.y*180.printf("se~nal de refer. } EnviarVoltage(Ofst). analog out.printf("*****************************************"). unsigned.

R1LFS = frec.1).(int)(lPort-0x270). de control static unsigned R1LPollPort. // direccion puerto dig. unsigned salPort. deviceCode.0x270). cuentaTimer = (int)(2000000/frec).0.0). // clock de muestreo = timer0 DIG_Prt_Config(1. } void EnviarVoltage (float u) { unsigned salidaDigital. unsigned lPort. // direccion de la salida analogica static int R1LFS.5). outport). R1LMSBPort = hPort. de polling static unsigned R1LAOPort. unsigned hPort.h" // Libreria de Programas #include <dos.&deviceCode). int frec) { int cuentaTimer. */ #include "r1llib. outport(R1LAOPort. R1LLSBPort = lPort.0. USE_LAB(). ICTR_Setup(1.CPP ************************************************** * Archivo de definiciones de funciones declaradas en R1LLIB. * Timer generator.(int)(hPort-0x270).320 Control Predictivo /* R1LLIB.h" #include "nidaq. .salidaDigital).H * Estas funciones permiten facilitar el manejo de la tarjeta de * Adquisicion Lab-PC+: Digital input (16 bits).0. // frecuencia de muestreo en Hertz // void ConfigurarHardware (unsigned pollPort. Tambien emplea funciones de * lecto/escritura de registros (inportb.cuentaTimer. R1LAOPort = salPort. // direccion puerto dig. R1LPollPort = pollPort.0).(int)(pollPort . de entrada static unsigned R1LMSBPort. salidaDigital = (unsigned) (409. Init_DA_Brds(1. // direccion puerto dig.0). Analog Output. Polling.h> // static unsigned R1LLSBPort.0. DIG_Prt_Config(1.5*u-0. DIG_Prt_Config(1.3.

return (255*oct2+oct1)..7. Podemos notar que variando a la carga adicional (la esfera de radio Ro y masa Mo ). es decir. la inercia total de la carga no lineal es: o 1 2 2 2 2 JT = JL + mL2 + Mo L2 + Mo Ro = J + Mo Ro o o 3 5 5 donde J es la inercia total originada por la varilla (sin carga adicional). cuando JT = 1.17 muestran las curvas de respuesta controlada para los casos cuando JT = 1.2. bytePoll = inportb (R1LPollPort).84J y JT = 2. variamos tambi´n la e carga total.1). En todos los casos se cumplen las especificaciones de dise˜ o n (ver la subsecci´n 6. Resultados Experimentales En esta subsecci´n se presentan los resultados experimentales del sistema o de control para posicionar el angulo de salida del servomotor D. } int NivelClock () { unsigned char bytePoll. sujeto ´ a cargas no lineales. empleando restricciones tanto en la fuerza de control como en la salida. La figura 6.15 corresponde a la respuesta controlada cuando se incrementa la inercia de la carga no lineal en 42 % (es decir. } 321 6. return (bytePoll&1). oct1 = inportb(R1LLSBPort).3.7. la trayectoria deseada es una curva discontinua escalonada.98J. 6. respectivamente.6. 6.01.15.42J). se ha considerado un factor de filtraje α = 0.8.14. Los otros par´metros se detallan en la tabla 3.16 y 6. mientras que las figuras 6. o . oct2 = inportb(R1LMSBPort). Para los casos presentados. Esto es lo que haremos en las experiencias.7 Control de Posici´n de un Servomotor o } unsigned int LeerPosicion() { unsigned char oct1.14 muestra el caso sin carga adicional. La figura 6.16 y 6. Para todos los casos. con una carga inercial total JT = J.C. Las respuestas controladas (en l´ ıneas de trazo) se muestran en las figuras 6.oct2.17 De acuerdo a la secci´n 3.

a escalones variantes para una carga J 70 60 − −:y 50 − :w Posición (grados) 40 30 20 10 0 0 10 20 30 40 50 t(seg) 60 70 80 90 100 Figura 6. a escalones variantes para 1.322 Control Predictivo Rpta.42J 70 60 − −:y 50 − :w Posición (grados) 40 30 20 10 0 0 10 20 30 40 50 t(seg) 60 70 80 90 100 Figura 6. Rpta.14: Salida controlada y (curva en trazos) para una carga inercial de JT = J kg-m2 . .15: Salida controlada y (curva en trazos) para una carga inercial de JT = 1.42J kg-m2 .

98J kg-m2 .16: Salida controlada y (curva en trazos) para una carga inercial de JT = 1.84J kg-m2 . . a escalones variantes para 1.17: Salida controlada y (curva en trazos) para una carga inercial de JT = 2. Rpta.98J 70 60 − −:y 50 u(t):voltios − :w 40 30 20 10 0 0 10 20 30 40 50 t(seg) 60 70 80 90 100 Figura 6.84J 70 323 60 − −:y 50 − :w Posición (grados) 40 30 20 10 0 0 10 20 30 40 50 t(seg) 60 70 80 90 100 Figura 6.6.7 Control de Posici´n de un Servomotor o Rpta. a escalones variantes para 2.

D=[0].1774]. -0. 0]. n Problema 6. seg´n el caso.2 presenta las ecuaciones que gobiernan la din´mica longitudia nal de un avi´n comercial volando a velocidad de crucero (altura y velocidad o constantes). El objetivo de control es entonces dise˜ar un autopiloto que manipulando el angulo δe del deflector de elen ´ vaci´n. a3=dend(4).426 0. La selecci´n del tiempo de muestreo para o o cada problema es a conveniencia del dise˜o.1: CONTROL DE LA INCLINACION % DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL ESCALAR clear all % FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO CONTINUO numc=[0 1. % FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO DISCRETO tm=1.tm. Dise˜ar un sistema de o ´ o o n control predictivo que genere una fuerza de control escalar. g(3) = . % RESPUESTA AL ESCALON g(1) = b1.dend]=c2dm(numc.921 0]. b2=numd(3).tm). b1=numd(2). El control del angulo de inclinaci´n θ del avi´n (ver figura 3.232. 0.’zoh’). A=[-0. 0 56.0203. de modo que la salida del proceso (el angulo de inclinaci´n θ) presente un sobreimpulso ´ o menor al 5 %. denc=[1 0.151 0. a1=dend(2).a1*g(2) .H]=c2d(A. la soluci´n a los o problemas se encuentra.739 0.denc. Problemas Resueltos En la secci´n problemas resueltos de los cap´ o ıtulos 4 al 8. C=[0 0 1]. Soluci´n: Ver el programa p4pred1. N2 =10.m SOLUCION DEL PROBLEMA 6.0139 -0. Asumir 1 rad de entrada de referencia. . controle el angulo de inclinaci´n del avi´n. B=[0.313 56.8. for k=4:N2 g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3.1 El problema 3.m.7 0].a2*g(1) + b1 +b2+b3. en uno o m´s archivos con extensi´n u a o m escritos en c´digo MATLAB.25.14) ´ o o es un problema longitudinal a resolver. a2=dend(3).7 0. % HORIZONTES DE CONTROL N1 =1. Nu =1. % TIEMPO DE MUESTREO [numd. b3=numd(4). un tiempo de estabilizaci´n menor que 10 s y error en estado o estable nulo. [G.B. o % p4pred1. g(2) = -a1*b1 + b1 + b2.324 Control Predictivo 6.

y(k)=0. r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k).1.MM*tm.yf(t+2)) + g(7)*(r(t+7) .8 Problemas Resueltos 325 end % CONDICIONES INICIALES for k=1:4 yf(k)=0... g(2)*(r(t+2) .MM-3). yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1). pero predeterminada. r(k)=0.2.yf(t+9)) + .yf(t+6)) + ..u(4:MM)).yf(t+5)) + g(10)*(r(t+10) .. g(5)*(r(t+5) . o o . u(k)=0.. g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda)..1) plot(ejex.6.2) plot(ejex.y(4:MM)).yf(t+3)) + g(8)*(r(t+8) . REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k) = sign(sin(0.. MM = 500.ejex. g(3)*(r(t+3) .yf(t+4)) + g(9)*(r(t+9) .yf(t+7)) + . de modo tal que el angulo de a ´ inclinaci´n del avi´n siga una trayectoria arbitraria.yf(t+1)) + g(6)*(r(t+6) . grid xlabel(’TIEMPO : SEG’) ylabel(’u: Angulo del deflector (rad)’) print -deps -f p4pred1 Problema 6.. (g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + . % TRAYECTORIA DESEADA.. u(t) = u(t-1) + du(t). end % LEY DE CONTROL du(t) = (g(1)*(r(t+1) .2 Para el proceso del problema 6.. end alf = 0. g(4)*(r(t+4) . +b1*u(t)+b2*u(t-1)+b3*u(t-2).02*t)).yf(t+8)) + ..1. lambda=0.1. end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex=linspace(0.W(4:MM).yf(t+10)) )/. % MODELO DEL PROCESO EN SU FORMA CARIMA y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) .. grid ylabel(’y: Inclinacion (rad) ’) subplot(2. dise˜ar un sistema de control predictivo n que genere una matriz din´mica de control.. subplot(2.. % LAZO DE CONTROL for t=4:MM+3.

m. [G. % FUNCION DE TRANSFERENCIA DISCRETA DE LA PLANTA tm=2. .1. Soluci´n: Ver el programa p4pred2. Nu =5.2.tm). -0.18: Angulo de inclinaci´n θ y se˜al de control (´ngulo del deflector) o n a correspondientes al problema 6.2: CONTROL DE LA INCLINACION % DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL MATRICIAL clear all % FUNCION DE TRANSFERENCIA CONTINUA DE LA PLANTA numc=[0 1.’zoh’). a2=dend(3).H]=c2d(A.dend]=c2dm(numc.151 0.1774].0203.tm. 0.7 0].739 0.denc. a1=dend(2).921 0]. 0 56.313 56. 0].326 2 y: Inclinación (rad) 1 0 −1 −2 0 Control Predictivo 100 200 300 400 500 600 700 u: Angulo del deflector (rad) 2 1 0 −1 −2 0 100 200 300 400 TIEMPO : SEG 500 600 700 ´ Figura 6. A=[-0. o % p4pred2.232. B=[0. C=[0 0 1]. N2 =10.B. b2=numd(3). b1=numd(2). a3=dend(4).426 0. % TIEMPO DE MUESTREO [numd. D=[0].7 0. % HORIZONTES DE CONTROL N1 =1. b3=numd(4). denc=[1 0.0139 -0.m SOLUCION DEL PROBLEMA 6.

u(t) = u(t-1) + du.. REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)= sin(0. du(1)=0. .. r(t+7) r(t+8) r(t+9) r(t+10)]’. end % MATRIZ GANANCIA DE RESPUESTA AL ESCALON GG=[g(1) 0 0 0 0 g(2) g(1) 0 0 0 g(3) g(2) g(1) 0 0 g(4) g(3) g(2) g(1) 0 g(5) g(4) g(3) g(2) g(1) g(6) g(5) g(4) g(3) g(2) g(7) g(6) g(5) g(4) g(3) g(8) g(7) g(6) g(5) g(4) g(9) g(8) g(7) g(6) g(5) g(10) g(9) g(8) g(7) g(6)]. % MATRIZ DE RESPUESTA LIBRE YF YF=[yf(t+1) yf(t+2) yf(t+3) yf(t+4) yf(t+5) yf(t+6).8 Problemas Resueltos 327 % RESPUESTA AL ESCALON g(1) = b1. u(k)=0.. lambda = 0. g(3) = . du=U(1).05*t)+0.005*t. I=eye(5.6.5). yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1). % CONDICIONES INICIALES for k=1:4 yf(k)=0.98. end % MATRIZ R DE SE~NALES r R=[r(t+1) r(t+2) r(t+3) r(t+4) r(t+5) r(t+6). for k=4:N2 g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3. % MATRIZ IDENTIDAD % LAZO DE CONTROL for t =4:MM+3 % TRAYECTORIA DESEADA. end alf = 0. MM = 500. % PROCESO y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) .a2*g(1) + b1 +b2+b3. g(2) = -a1*b1 + b1 + b2... yf(t+7) yf(t+8) yf(t+9) yf(t+10)]’.. y(k)=0.1. % LEY DE CONTROL U=inv(GG’*GG+lambda*I)*GG’*(R-YF).a1*g(2) . r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k). r(k)=0.

El problema a resolver es el control de velocidad del carro de .1 −0.1) plot(ejex.1 0 −0.u(4:MM)). grid xlabel(’TIEMPO : SEG’) ylabel(’u: Angulo del deflector (rad)’) print -deps -f p4pred2 4 y: Inclinación (rad) 3 2 1 0 −1 0 200 400 600 800 Control Predictivo 1000 1200 u: Angulo del deflector (rad) 0.W(4:MM).ejex.2) plot(ejex.y(4:MM)).20 muestra el proceso monorriel de dos carros descrito en el problema 3.3 La figura 3.2 0 200 400 600 TIEMPO : SEG 800 1000 1200 ´ Figura 6. ejex=ejex*tm.3 0.2 0. grid ylabel(’y: Inclinacion (rad) ’) subplot(2.5.1. subplot(2.19: Angulo de inclinaci´n θ y se˜al de control (´ngulo del deflector) o n a correspondientes al problema 6.1.328 +b1*u(t)+b2*u(t-1)+b3*u(t-2). end % FIN DEL BUCLE DE CONTROL % GRAFICOS ejex=(4:MM).2. Problema 6.

a4=dend(5). a3=dend(4). M3=2600. a6=dend(7). B2=10000. [numd. El error en estado estable debe ser nulo. alfa = 1. % p7pred1a.m SOLUCION DEL PROBLEMA 6_3: CONTROL DE VELOCIDAD % DEL MONORRIEL DE DOS CARROS USANDO CONTROL PREDICTIVO % CON FUERZA DE CONTROL ESCALAR Y REFERENCIA ESCALON. M2=2600. % MODELO DEL PROCESO EN TIEMPO DISCRETO tm=0.B.tm). los cambios de velocidad deben realizarse con un tiempo de estabilizaci´n menor que 10 s y o con m´ ınimo sobreimpulso.m. Mostrar que la velocidad de la m´quina puede seguir una a determinada trayectoria predeterminada de velocidades. a1=dend(2). B23=500. Revise ese programa si desea ver detalles al respecto.3.denc]=ss2tf(A.m trata el o caso de referencia arbitraria. B12=500.C. D=[0.D. % CONSTANTE TACOMETRICA C=[ 0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa]. Para garantizar a los pasajeros un viaje confortable. B1=5000. a5=dend(6). Luego enfrente el problema n de seguimiento. B=[0 1 0 0 0 0]’. B3=10000. Simule una se˜al de referencia que cambie la velocidad de 30 a 20 m/s y demuestre n que se cumplen las especificaciones de dise˜ o. % PARA REFERENCIA ARBITRARIA VER PROGRAMA p7pred1b.C.6.1). Soluci´n: Ver el programa p7pred1a. % TIEMPO DE MUESTREO [G. % MODELO DEL PROCESO A=[0 1 0 0 0 0 -K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0 0 0 0 1 0 0 K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2 0 0 0 0 0 1 0 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3]. K23=100000.0. a2=dend(3). [numc.0]. El programa p7pred1b.m clear all % DATOS DEL PROCESO M1=1300.dend]=ss2tf(G.8 Problemas Resueltos 329 m´quinas mediante un sistema de control predictivo con fuerza de control a escalar.H. .D). K12=100000.H]=c2d(A.B.

.. g(4)*(r(t+4)-yf(t+4))+g(9)*(r(t+9)-yf(t+9))+ . u(t) = u(t-1) + du(t). end % CONDICIONES INICIALES for k=1:7 yf(k)=0. b4=numd(5). g(2)=-a1*b1+b1+b2.. g(4)=-a1*g(3)-a2*g(2)-a3*g(1)+b1+b2+b3+b4. g(2)*(r(t+2)-yf(t+2))+g(7)*(r(t+7)-yf(t+7))+ . for k=7:N2 g(k)=-a1*g(k-1)-a2*g(k-2)-a3*g(k-1)-a4*g(k-1)-a5*g(k-2).. y(k)=0. . % LAZO DE CONTROL for t=7:MM+6. % PROCESO y(t+1)= -a1*y(t) -a2*y(t-1) -a3*y(t-2) -a4*y(t-3). u(k)=0. g(5)*(r(t+5)-yf(t+5))+g(10)*(r(t+10)-yf(t+10)))/. N2 =10. % RESPUESTA AL ESCALON g(1)=b1. % HORIZONTES N1 =1. g(3)*(r(t+3)-yf(t+3))+g(8)*(r(t+8)-yf(t+8))+ . g(3)=-a1*g(2)-a2*g(1)+b1+b2+b3.... b3=numd(4).. b2=numd(3). end alf =0. b6=numd(7). (g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ..01*t)). yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3). g(6)=-a1*g(5)-a2*g(4)-a3*g(3)-a4*g(2)-a5*g(1)+b1+b2+b3+b4+b5+b6..... r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k). lambda = 0.1. g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda). Nu =1. -a6*g(k-1) + b1 + b2 + b3 + b4 + b5 + b6. REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)= 25 + 5*sign(sin(0. end % LEY DE CONTROL du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+. -a4*yf(t+k-4)-a5*yf(t+k-5)-a6*yf(t+k-6)+(b1+b2+b3+b4+b5+b6)*u(t-1). % TRAYECTORIA DESEADA.... b5=numd(6).330 Control Predictivo b1=numd(2). +b1*u(t) +b2*u(t-1) +b3*u(t-2) +b4*u(t-3).... g(5)=-a1*g(4)-a2*g(3)-a3*g(2)-a4*g(1)+b1+b2+b3+b4+b5. MM=500. -a5*y(t-4) -a6*y(t-5).... r(k)=0.

grid xlabel(’Tiempo (segundos)’) ylabel(’Control u (volt)’) print -deps -f p7pred1a 40 Y1: Velocidad (m/s) 30 20 10 0 0 331 50 100 150 150 Control u (volt) 100 50 0 −50 0 50 Tiempo (segundos) 100 150 Figura 6.6.23.3. Problema 6.u(7:MM)).22.8 Problemas Resueltos +b5*u(t-4)+b6*u(t-5).W(7:MM).2) plot(ejex. Soluci´n: El programa p7pred2a. end % GRAFICOS ejex=linspace(0.MM*tm. grid ylabel(’Y1: Velocidad (m/s)’) subplot(2.1) plot(ejex.ejex.3. subplot(2.m trata el caso de referencia arbitraria y su resultado se ilustra en la figura 6. pero esta vez usando un sistema de control predictivo con fuerza de control matricial.1. El programa p7pred2b.1.y(7:MM)).4 Resuelva nuevamente el problema 6.m resuelve el problema planteado y su o resultado se muestra en la figura 6. .MM-6).20: Velocidad del carro de m´quinas y la fuerza de control para el a problema 6.

L´gicamente. El problema a resolver es posicionar suavemente el ascensor en un piso determinado. Para no saturar al actuador (un o amplificador de potencia). lo que significa sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizaci´n menor que 10 s.7. o o tal como sucede en el caso del control predictivo del servomotor con carga no lineal (subsecci´n 6.8). la se˜al de control debe estar dentro del rango n de ± 200 volt. o % p8pred1. los resultados de la implementaci´n en tiempo o o real con tal restricci´n. La referencia es arbitraria. Es interesante anotar.22 muestra el proceso ascensor que fue tratado en el problema 3. hacer que la posici´n o controlada iguale la se˜al de referencia.3. que dicha n restricci´n origina en la simulaci´n una respuesta que sigue perfectamente o o a la referencia.5 La figura 3. tambi´n se puede usar restricci´n e o a la salida.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION % DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA % DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDA clear all .6. es decir. para cada tiempo de muestreo. no son tan perfectos como lo son en la simulaci´n. Problema 6.332 20 Velocidad (m/s) 15 10 5 0 0 Control Predictivo 50 100 150 200 250 300 60 Control u (volt) 40 20 0 −20 0 50 100 Tiempo 150 200 (Segundos) 250 300 Figura 6. Dise˜ar un sistema de control de posici´n predictivo con n o fuerza de control escalar que cumpla las especificaciones pedidas. Con el objeto de cumplir tales especificaciones.21: Velocidad del carro de m´quinas y la fuerza de control para el a problema 6.

D).2 0 0 0 1 0 0 0 2 0 -2 0 5 0 0 -5]. g(2) = -a1*b1 + b1 + b2.a2*g(1) + b1 +b2+b3.0]. D=[0]. B=[0. b1=numd(2).a2*g(2)-a3*g(1) + b1+b2+b3+b4. b3=numd(4).a1*g(3) . [numd.C.0. % RESPUESTA AL ESCALON g(1) = b1. % PROCESO EN TIEMPO DISCRETO tm=1.001. a4=dend(5). g(4) = .6. a3=dend(4).B. Nu =1. end .4.a1*g(2) . for k=5:N2 g(k) = -a1*g(k-1)-a2*g(k-2)-a3*g(k-3)-a4*g(k-4)+b1+b2+b3+b4.0. N2 =10.H]=c2d(A. g(3) = .H.22: Velocidad del carro de m´quinas y la fuerza de control para el a problema 6. % HORIZONTES DE CONTROL N1 =1. % ECUACION DE ESTADO A=[-0.dend]=ss2tf(G. b4=numd(5). b2=numd(3).8 Problemas Resueltos 40 Y1: Velocidad (m/s) 30 20 10 0 0 333 50 100 150 100 u: control 50 0 −50 0 50 Tiempo (segundos) 100 150 Figura 6.tm). C=[0 1 0 0]. a1=dend(2). [G. a2=dend(3).

% LAZO DE CONTROL for t =5:MM+4.23: Velocidad del carro de m´quinas y la fuerza de control para el a problema 6. % TRAYECTORIA DESEADA. g(2)*(r(t+2) . lambda = 0. MM=300.yf(t+2)) + g(7)*(r(t+7) .. r(k)=0. La referencia es arbitraria.yf(t+8)) + . r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k).00.. y(k)=0. end alf =0.. + (b1 + b2 + b3 + b4)*u(t-1).. % LEY DE CONTROL du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+ .. % CONDICIONES INICIALES for k=1:5 yf(k)=0. u(k)=0.02*t)).yf(t+7)) + . yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)-a4*yf(t+k-4). REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)=-3*sign(sin(0.4.. g(3)*(r(t+3) .334 20 Velocidad v1 (m/s) 15 10 5 0 0 Control Predictivo 100 200 300 400 500 600 700 800 900 1000 15 u: Fuerza de control 10 5 0 −5 0 100 200 300 400 500 600 Tiempo (Segundos) 700 800 900 1000 Figura 6.1.yf(t+3)) + g(8)*(r(t+8) . end % RESTRICCION A LA SALIDA y(t) = W(t). ...

1) plot(ejex.yf(t+10)))/.25.. Dise˜ar un controlador o n predictivo del tipo escalar con los requerimientos siguientes: tiempo de estabilizaci´n menor que 15 s..m resuelve el problema planteado y su o resultado se muestra en la figura 6. end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex=linspace(0.yf(t+5)) +g(10)*(r(t+10). sobreimpulso menor al 10 % y error en estado o ... La deducci´n del modelo o linealizado del proceso se deriv´ en el ejemplo 2. % EVITANDO LA SATURACION DEL AMPLIFICADOR if(u(t) > 200) u(t) = 200. grid xlabel(’TIEMPO EN SEGUNDOS’) ylabel(’VOLTAJE DE CONTROL’) print -deps -f p8pred1 335 Problema 6. Soluci´n: El programa p8pred2a. subplot(2. El objetivo de control o es controlar la altura H2 empleando el flujo Qo .. La sece ci´n horizontal A=9 m2 de cada tanque es constante. +b1*u(t)+b2*u(t-1)+b3*u(t-2)+b4*u(t-3).y(5:MM)).1. (g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + .MM-4).6 Resuelva nuevamente el problema 6. g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda).2) plot(ejex.yf(t+9)) + . pero esta vez usando un sistema de control predictivo con fuerza de control matricial.5...2 muestra dos tanques id´nticos colocados en cascada.8 Problemas Resueltos g(4)*(r(t+4) .W(5:MM).u(5:MM)).1. elseif(u(t) < -200) u(t) = 200.6.ejex. g(5)*(r(t+5) . end % PROCESO y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2)-a4*y(t-3)..1. u(t) = u(t-1) + du(t).7 La figura 2.yf(t+4)) + g(9)*(r(t+9) . grid ylabel(’POSICION (m)’) xlabel(’TIEMPO EN SEGUNDOS’) subplot(2.MM*tm. Problema 6.

.336 4 POSICION (m) 2 0 −2 −4 0 Control Predictivo 50 100 150 200 TIEMPO EN SEGUNDOS 250 300 VOLTAJE DE CONTROL 200 100 0 −100 −200 0 50 100 150 200 TIEMPO EN SEGUNDOS 250 300 Figura 6.5).25: Posici´n del ascensor y la fuerza de control correspondientes al o problema 6. o 4 POSICION (m) 2 0 −2 −4 0 100 200 300 400 500 600 VOLTAJE DE CONTROL 200 100 0 −100 0 100 200 300 400 TIEMPO EN SEGUNDOS 500 600 Figura 6.6.24: Posici´n del ascensor y la fuerza de control (problema 6.

% control escalar % CONDICIONES INICIALES for k=1:3 yf(k)=0. . end % LEY DE CONTROL du(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ . a2 = dend(3). [numd. g8 = -a1*g7-a2*g6+b1+b2. Estas condiciones de dise˜o deben mantenerse cuando se camn bie la referencia (por ejemplo de 3 a 2 m).7 CONTROL DE NIVEL % USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR clear all % PARAMETROS DEL SISTEMA A = 9. lambda = 0. Bc=[1 . y(k)=0. Adem´s. g9 = -a1*g8-a2*g7+b1+b2.D).H. g2 = -a1* b1 + b1 + b2.81.dend]=ss2tf(G.H. 0]. % RESPUESTA AL ESCALON g1 = b1. N2 =10.02*t)). % TIEMPO DE MUESTREO % MODELO LINEAL DISCRETO [G. Dc=[0]. T = 0.23. yf(t+k) = -a1*yf(t+k-1) . MM = 500. g5 = -a1*g4-a2*g3+b1+b2.Bc.Z -Z]. r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k). end alf = 0. % ESPACIO DE ESTADO DE LA PLANTA EN TIEMPO CONTINUO Ac = [-Z 0. g3 = -a1*g2-a2*g1+b1+b2. g6 = -a1*g5-a2*g4+b1+b2.D]=c2dm(Ac. Z=(gamma*sqrt(rho*g))/(2*A*sqrt(H)). Nu =1.Cc. g10 = -a1*g9-a2*g8+b1+b2.C.C.8 Problemas Resueltos 337 estable nulo.5 + 0. b2 = numd(3). % HORIZONTES DE CONTROL N1 = 1. Q = 3. % LAZO DE CONTROL for t =3:MM+2 % TRAYECTORIA DESEADA. REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k) = 1. b1 = numd(2).1.6.’zoh’). gamma = 0. Cc=[0 1]. a1 = dend(2).T.9.Dc. H =Q^2/(gamma^2*rho*g).5*sign(sin(0.a2*yf(t+k-2) + (b1 + b2)*u(t-1).m SOLUCION DEL PROBLEMA 6. r(k)=0. g7 = -a1*g6-a2*g5+b1+b2. u(k)=0.. g4 = -a1*g3-a2*g2+b1+b2. g = 9.4.. rho = 1. se˜al de control) no debe sobrepasar los 3 m n % p9pred1. el flujo de entrada (la a 3 /s.

yf(t+9)) + . g7^2 + g8^2 + g9^2 + g10^2 + lambda).W(3:MM). SALIDA ACTUAL (NIVEL H2) Y(t+1) = y(t+1)+W(t+1)..338 g2*(r(t+2) g3*(r(t+3) g4*(r(t+4) g5*(r(t+5) (g1^2 + Control Predictivo % % % % yf(t+2)) + g7*(r(t+7) ...1. end end % FIN DEL LAZO DE CONTROL ************** GRAFICOS ejex = linspace(0.ejex.yf(t+7)) + .MM*T.1.m resuelve el problema planteado y su reo sultado se muestra en la figura 6.u(3:MM)).. yf(t+3)) + g8*(r(t+8) . yf(t+4)) + g9*(r(t+9) .. if(u(t) > 0 & u(t) > fu) u(t) = fu.26 se describe en el proa blema 3. u(t) = u(t-1) + du(t).Y(3:MM)). Problema 6.7.0.. pero esta vez usando un sistema de control predictivo con fuerza de control matricial.MM-2).. g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + . Soluci´n: El programa p9pred2. Se pide dise˜ar un sistema de control predictivo con fuerza de n . elseif(u(t) < 0 & u(t) < -fu) u(t) = -fu..9 El proceso electromec´nico mostrado en la figura 3.8.. grid ylabel(’NIvel H2 (m)’) xlabel(’Tiempo en segundos’) subplot(2. LIMITANDO EL FLUJO DE CONTROL fu = 3.1) plot(ejex. subplot(2. PROCESO LINEALIZADO (ECUACION RESIDUAL) y(t+1)=-a1*y(t)-a2*y(t-1)+b1*du(t)+b2*du(t-1).27.8 Resuelva nuevamente el problema 6..yf(t+8)) + . yf(t+5)) + g10*(r(t+10)-yf(t+10)))/. grid ylabel(’Flujo de control (m^3/s)’) xlabel(’Tiempo en segundos’) print -deps -f p9pred1 Problema 6.2) plot(ejex.

5 NIvel H2 (m) 2 1. .27: Nivel controlado H2 y el flujo de control para el problema 6.8 Problemas Resueltos 2.6.7.5 0 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450 Flujo de control (m^3/s) 2 1 0 −1 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450 Figura 6.26: Nivel controlado H2 y el flujo de control para el problema 6. 2.5 1 0.5 0 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450 339 Flujo de control (m^3/s) 3 2 1 0 −1 −2 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450 Figura 6.5 1 0.5 NIvel H2 (m) 2 1.8.

H. b1 = numd(2). g3=-a1*g2-a2*g1+b1+b2+b3. g8 =-a1*g7-a2*g6-a3*g5+b1+b2+b3. Bc = [1/(R*C).0]. y(k) = 0. El tiempo de estabilizaci´n de la se˜al controlada (la velocidad) debe ser menor que 6 s o n y dicha respuesta debe presentar un sobrepico m´ximo de 5 %. end du(1) = 0. g9=-a1*g8-a2*g7-a3*g6+b1+b2+b3. L = 0. T = 0. R = 12. % TIEMPO DE MUESTREO % MODELO LINEAL DISCRETO [G. Kt = 0.85. g2 =-a1*b1+b1+b2. [numd.01.a2*g2-a3*g1+b1+b2+b3. Nu = 1. b2 = numd(3).01. con error en a estado estable nulo. Kw = 1. % CONDICIONES INICIALES for k = 1:4 yf(k) = 0.340 Control Predictivo control escalar. r(k) = 0. a2 = dend(3).5.dend]=ss2tf(G.8.Cc.C. u(k) = 0. g5=-a1*g4-a2*g3-a3*g2+b1+b2+b3.C.T. alf = 0. C = 0.01. g4 =-a1*g3. para controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre ± 100 volt. Dc = [0].D).1.D]=c2dm(Ac.’zoh’). Cc = [0 0 1]. g6 =-a1*g5-a2*g4-a3*g3+b1+b2+b3. g7=-a1*g6-a2*g5-a3*g4+b1+b2+b3. b3=numd(4). % LAZO DE CONTROL .m SOLUCION DEL PROBLEMA 6_9 % CONTROL DE VELOCIDAD DEL SISTEMA ELECTROMECANICO % USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR clear all % PARAMETROS DEL SISTEMA J = 0.H. g10=-a1*g9-a2*g8-a3*g7+b1+b2+b3. % MODELO DEL PROCESO EN TIEMPO CONTINUO Ac = [-1/(R*C) -1/C 0 Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke) 0 Kt/J 0]. a3=dend(4). lambda = 0.Bc. N2 = 10. a1 = dend(2). % HORIZONTES DE CONTROL N1 = 1.5. % RESPUESTA AL ESCALON g1 = b1. Ke = 0.Dc.0. % p11pred1.

.. end LEY DE CONTROL du(t) = ( g1*(r(t+1) .yf(t+3)) + g8*(r(t+8) .yf(t+8)) + ..yf(t+9)) + . yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1). g5*(r(t+5) .y(4:MM)). La trayectoria deseada debe ser una curva arbitraria (problema de seguimiento). grid ylabel(’Velocidad (rad/s)’) xlabel(’Tiempo en segundos’) subplot(2.100.yf(t+5)) + g10*(r(t+10) . elseif(u(t) < -100) u(t) = ... if(u(t) > 100) u(t)=100....1.MM-3).6.yf(t+4)) + g9*(r(t+9) .01*t)). u(t) = u(t-1) + du(t).1. (g1^2 + g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + .8 Problemas Resueltos 341 % % % % MM=1000.ejex.2) plot(ejex.MM*T. g4*(r(t+4) . REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)= 4*sign(sin(0.yf(t+6)) + .10 Resuelva nuevamente el problema 6... r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k).9. g3*(r(t+3) . grid xlabel(’Tiempo en segundos’) ylabel(’Voltaje de control’) print -deps -f p11pred1 Problema 6..u(4:MM)). end % FIN DEL LAZO DE CONTROL GRAFICOS ejex=linspace(0.W(4:MM).yf(t+7)) + . g2*(r(t+2) .yf(t+10)) )/.yf(t+2)) + g7*(r(t+7) . g7^2 + g8^2 + g9^2 + g10^2 + lambda). end PROCESO y(t+1) = -a1*y(t)-a2*y(t-1)-a3*y(t-2)+b1*u(t)+b2*u(t-1)+b3*u(t-2). subplot(2. for t =4:MM+3 TRAYECTORIA DESEADA. pero esta vez usando un sistema de control predictivo con fuerza de control matricial.1) plot(ejex...yf(t+1)) + g6*(r(t+6) .

28: Velocidad angular controlada y el voltaje de control para el problema 6. La figura 3. El objetivo de control es estabilizar la humedad del material en la banda transportadora.24(b) muestra la F. La banda transportadora. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la se˜al de voltaje vr .m resuelve el problema planteado y su o resultado se muestra en la figura 6. que se desplaza a una velocidad v = 1 m/s constante.9. Con fines de modelado del proceso. Dise˜ar dos sistemas de control predictivo basado en modelos. introduce el material a un horno de secado.7) se desea reducir la humedad h del material a granel de la tolva.11 En el proceso de la figura 3.29.342 5 Velocidad (rad/s) Control Predictivo 0 −5 0 10 20 30 40 Tiempo 50 60 en segundos 70 80 90 100 100 Voltaje de control 50 0 −50 −100 0 10 20 30 40 Tiempo 50 60 en segundos 70 80 90 100 Figura 6. el tiempo muerto puede ser descrito empleando la aproximaci´n de Pad´ de tercer orden (ver ejemplo o e . El horno puede modelarse n como un proceso de primer orden.T del proceso.24(a) (ver problema 3. uno con n fuerza de control escalar y otro con fuerza de control matricial (la selecci´n o de los valores de los horizontes es a conveniencia del problema planteado). Problemas Propuestos Problema 6. 6.9. Soluci´n: El programa p11pred2.

29: Velocidad angular controlada y el voltaje de control para el problema 6.12 Las ecuaciones del modelo linealizado para controlar la posici´n del ca˜on o n´ montado en la torreta de un tanque (ver figura 3.10.12): 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 Las especificaciones de dise˜ o para ambos sistemas de control son: tiempo de n estabilizaci´n menor que 40 s. error en estado estacionario nulo y porcentaje o de sobreimpulso menor al 5 %.9.6. La selecci´n del tiempo de muestreo y de los o horizontes de control es a conveniencia del dise˜o. a (a) Dise˜ar un sistema de control predictivo basado en modelos para conn trolar el angulo de elevaci´n θ con las especificaciones siguientes: tiem´ o po de estabilizaci´n menor que 5 s. 2.9 Problemas Propuestos 15 Velocidad (rad/s) 10 5 0 −5 0 343 20 40 60 80 Tiempo 100 120 140 en segundos 160 180 200 3 Voltaje de control 2 1 0 −1 −2 0 20 40 60 80 Tiempo 100 120 140 en segundos 160 180 200 Figura 6. Los disturbios tipo escal´n pueden actuar simult´neamente y pueden ser poso a . empleando fuerza de control escalar. n Problema 6. m´ o ınimo sobreimpulso y error en estado estacionario nulo.28) empleando un actuador hidr´ulico se detallan en el problema 3.

(c) Lo mismo que (a). En todos los casos la selecci´n del tiempo de muestreo y los horizontes de o control es a conveniencia del dise˜o. La selecci´n de los horizontes de control y del tiempo de muestreo es a o conveniencia del problema planteado. La uni´n de la carga con el eje del servomotor no es flexible. de modo tal que el p´ndulo doble permanezca en e posici´n vertical. (a) Dise˜ar un sistema de control predictivo basado en modelos para conn trolar simult´neamente las posiciones θ y τ con m´ a ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso.1. (b) Lo mismo que (a) pero empleando una fuerza de control matricial.32 muestra el proceso p´ndulo doble no lineal. El acoplamiento o e o entre los dos p´ndulos de igual longitud no es flexible. a (d) Lo mismo que (c). o e . el cual es una e extensi´n del p´ndulo simple descrito en la secci´n 3. pero en este caso para controlar el ´ngulo azimutal.13. El sistema de control dise˜ado debe ser capaz de n minimizar sus efectos. Problema 6.14 La figura 3. Las ecuaciones que describen la din´mica del a sistema son materia del problema 3.02 kg.12.3. Considerar que la carga esf´rica es de 0. La selecci´n de los horizontes de control es a conveniencia del problema o planteado. a (a) Dise˜ar un sistema de control predictivo basado en modelos para conn trolar simult´neamente las posiciones θ y τ con m´ a ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso. empleando una fuerza de control escalar.13 La figura 3. empleando para ello una fuerza de control escalar.02 kg.31 muestra el proceso servomotor con carga no lineal descrito en la secci´n 3.344 Control Predictivo itivos o negativos. Las ecuaciones que e describen la din´mica del sistema son materia del problema propuesto 3. (b) Lo mismo que (a) pero empleando fuerza de control matricial. en donde la carga no lineal posee ahora dos grados de o o libertad con Lo = 2L1 /3 y Mo =0. pero empleando fuerza de control matricial. n Problema 6.

Problema 6. Problema 6. Las ecuaciones que describen la din´mica del sistema son materia del problema propuesto 3. el cual es una u extensi´n del proceso gr´a puente escrito en la secci´n 3. La selecci´n los valores de los horizontes y el tiempo de muestreo son a o conveniencia del problema planteado.2.15 La figura 3. e (a) Dise˜ar un sistema de control predictivo basado en modelos para conn trolar simult´neamente las posiciones θ y τ con m´ a ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso empleando para ello una fuerza de control escalar. La se˜al de referencia puede ser arbitraria (pron blema de seguimiento) y la fuerza de control a dise˜ar es escalar. o (b) Lo mismo que (a) pero empleando para ello una fuerza de control matricial.16): mv(t) + bv(t) = u(t). El acoplamiento o u o entre las dos secciones iguales de la varilla no es flexible. La selecci´n de los horizontes de control y del tiempo de o muestreo es a conveniencia del problema planteado. n (b) Lo mismo que (a). de modo tal que la gr´a-puente doble permanezca u en posici´n vertical. a Considerar que la carga esf´rica es de 0.16 La figura 1.6. La selecci´n de los horizontes de control y del tiempo de muestreo es o a conveniencia del problema planteado.33 muestra el proceso doble gr´a puente no lineal. pero empleando fuerza de control matricial. entonces la din´mica del proceso puede modelarse a como (ver ejemplo 1. ˙ v= ˙ dv dt (a) Dise˜ar un sistema de control predictivo basado en modelos para conn trolar la velocidad del m´vil con m´ o ınimo tiempo de estabilizaci´n y o m´ ınimo sobreimpulso. o donde b= 50 N-s/m es el coeficiente de fricci´n. Si se o desprecia la inercia de las ruedas y se asume que la fuerza de fricci´n bv. .1 muestra un carro de masa m = 1000 kg desplaz´ndose con una a velocidad v gracias a la acci´n de la fuerza u producida por su motor.02 kg. es lo unico que se opone o ´ al movimiento del carro.9 Problemas Propuestos 345 (b) Lo mismo que (a) pero empleando una fuerza de control matricial.14.

3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. Eso se aprecia en fajas transa o portadoras o en brazos manipuladores. Las ecuaciones que gobiernan el comportamiento din´mico del motor fueron derivadas en a el ejemplo 4. para estabilizar la velocidad angular del eje del motor con las especificaciones siguientes: tiempo de estabilizaci´n menor que 4 s. . es un actuador muy popular en los sistemas de control porque su movimiento rotatorio. La selecci´n de los horizontes de control y del tiempo de muestreo o es a conveniencia del problema planteado. n (b) Repetir (a) pero en este caso empleando una fuerza de control matricial.C. mediante acoples adecuados en su eje. El n primero. puede convertirse f´cilmente en movimiento de traslaci´n.17 Control Predictivo El motor D.346 Problema 6. y el segundo para estabilizar la posici´n del eje del motor con o las mismas especificaciones de dise˜ o.1. La figura 4. o error en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %. (a) Dise˜ar dos sistemas de control predictivo basado en modelos.

dise˜os. 7. est´ dedicada al dise˜o de sistemas de u o a n control robusto para diferentes procesos. Estructura del Control con Modelo Interno La figura 7. El primero emplea la estructura de un sistema de control con modelo interno y se aplica a procesos univariables que presentan comportamiento estable.uni. La . sujeto a cargas no lineales. donde el bloque c es el controlador. de disturbio. de control (la variable manipulada). y e yγ son las se˜ales de n referencia. u. La o pen´ltima secci´n. Para tal efecto. de salida del proceso (la variable controlada). no obstante la presencia de disturbios y de incertidumbres en el modelado.1 muestra el diagrama de bloques de un sistema de control discreto convencional. y r∗ .Cap´ ıtulo 7 Control Robusto En este cap´ ıtulo se desarrollan dos procedimientos para dise˜ar sistemas de n control robusto.1. o el bloque γ(s) es un filtro pasa bajo. el sistema de control debe satisfacer los requerimientos de estabilidad y rendimiento robustos. Todos los archivos correspondientes a los ejercicios. El sistema de control robusto debe ser capaz de minimizar asint´ticamente o el error entre la salida y una trayectoria de referencia. el bloque hr0 (s) es la retenci´n (o memoria) de orden cero. problemas resueltos. En la antepen´ltima secci´n de este cap´ u o ıtulo se presenta la aplicaci´n: o control de la posici´n de un servomotor D. simulaciones y software desarrollados se n pueden descargar del sitio: http://fiee. pero su controlador se dise˜a mediante el principio de n control con modelo interno y se aplica a procesos univariables inestables.C. y de salida filtrada.pe/728681F. El segundo procedimiento usa la estructura cl´sica de un sistema de a control realimentado. el bloque p(s) es el proceso a controlar. d. problemas. respectivamente.edu.

entonces a la salida del muestreador se obtiene una secuencia ∗ o de impulsos yγ que satisface la relaci´n: ∗ yγ (t) ∞ = k=0 yγ (kT )δ(t − kT ) (7.5) .3) donde ωs = 2π/T es la frecuencia de muestreo.4) e ´ Notar que hemos usado la relaci´n b´sica z = esT . si la se˜al continua yγ (t) pasa por un muestreador con per´ n ıodo de muestreo T .m - y − 6 @ @ yγ T γ(s)  Figura 7.hr0 (s) - p(s) ? . Por ejemplo.m . Tambi´n es util recordar o a que la transformada Z de yγ (t) se puede expresar como: Z[yγ (kT )] = yγ (z) (7. notaci´n empleada responde a los fundamentos tratados en el cap´ o ıtulo 2.348 Control Robusto r ∗ d .2) Si alternativamente representamos la se˜al yγ (t) por su serie de Fourier: n ∗ yγ (t) 1 = T ∞ yγ (kT )eikωs t k=−∞ (7. entonces: ∗ ∗ L[yγ (t)] = yγ (esT ) = 1 T ∞ yγ (s + ikωs ) k=−∞ (7.1) La transformada de Laplace de yγ (t) es entonces: ∗ L[yγ (t)] = ∗ yγ (esT ) ∞ = k=0 yγ (kT )e−skT (7.1: Sistema de control discreto convencional.c(z) ∗ yγ u .

Estas relaciones son: c = q = q 1 − pq ˜ c 1 + pc ˜ (7. ı o El controlador CMI juega el rol de un controlador anticipativo y puede ser dise˜ado como tal. Si asumimos que el modelo es una representaci´n perfecta del proceso.1 Estructura del Control con Modelo Interno 349 Una funci´n racional y peri´dica posee la propiedad de que sus valores para o o frecuencias mayores que π/T se pueden determinar a partir de aquellos valores correspondiente al intervalo 0 ≤ w ≤ π/T . Observar en dicha figura que el camino ˜ paralelo que forma el modelo del proceso es para sustraer el efecto de la variable manipulada u de la salida del proceso y. n n La figura 7.2C.3A. Las relaciones entre el controlador cl´sico a a c(z) y el controlador q(z) (el controlador CMI) se obtienen de la figura 7. en donde el sistema de control incluye q(z). pero con la capacidad adicional de poder cancelar n . presenta grandes ventajas que vamos a discutir m´s adelante. si yγ (z) es a peri´dica.3A es internamente es˜ table s´ y s´lo si la planta p(s) y el controlador q(z) son estables. En esta situaci´n. Adem´s. la que comparada con la estructura convencional.2 correspondiente a la estructura de un sistema CMI (Control con Modelo Interno). el sistema se comporta como o uno de lazo abierto y los problemas usuales de estabilidad asociados con la realimentaci´n desaparecen.2B o de su forma alternativa la figura 7. entonces el sistema CMI de la figura 7.3 muestra la estructura discreta CMI. tambi´n es hermitiana. y como salida la se˜al de control u. o Sin demostraci´n se presenta el concepto de estabilidad interna para el o sistema CMI de la figura 7.8) donde p es el bloque proceso y p es el bloque modelo del proceso.2B que el controlador c tiene como entradas la referencia r∗ y la se˜al medible y.7) (7. es decir que p(s) = p(s). entonces la se˜al realimentada o n es igual a la influencia de los disturbios y no es afectada por la acci´n de o la variable manipulada. π/T < w < 2π/T (7.6) Considere ahora el diagrama de bloques mostrado en la figura 7. es decir: o e yγ (eiωT )H = yγ (e−iωT ) = yγ (ei(ωs −ω)T )H . Observar ˜ en la figura 7. Estabilidad Interna: Asumiendo que el modelo es perfecto. p(s) y γ(s).7.

m 6 .m ? .m C Figura 7. .m - − 6 p ˜ B q d r − .m - y − 6 p ˜ - p ˜ ? .m - c  u - p ? .2: Representaciones alternativas del Control con Modelo Interno.m d y - − 6 - p ˜ − A c d r .m 6 q  - p ? .m - q u - p ? .350 Control Robusto r .m .

el bloque γ(s) representa un filtro que sirve para cortar las componentes de alta frecuencia de las se˜ales continuas antes del muestreo. que el controlador sea “robusto”. n o Cuando la se˜al realimentada de la estructura CMI se compara con la se˜al n n de referencia. debido a que en la estructura CMI. Las relaciones siguientes son v´lidas para la estructura CMI: a r(z) = Z[r(s)] d(z) = Z[d(s)] dγ (z) = Z[γ(s)d(s)] y(z) = Z[y(s)] e(z) = Z[y(s) − r(s)] yγ (z) = Z[γ(s)y(s)] p pγ (z) = Z[hr0 (s)˜(s)γ(s)] ˜ pγ (z) = Z[hr0 (s)p(s)γ(s)] (7. es decir. se genera una se˜al de error que el sistema de control debe n minimizar. Si el modelo no imita perfectamente la din´mica del proceso. la se˜al de realimentaci´n lleva consigo la influencia de los disturbios.11) (7. como por el efecto de dicho error de modelado. los controladores siempre se e dise˜an basados en la informaci´n del comportamiento din´mico del pron o a ceso y de los disturbios que act´an sobre el mismo.14) (7. controlador sea insensible a esta clase de errores de modelaci´n (incertidumo bres en el modelo).13) (7. n cuando sea necesario.17) . lo que provoca una realimentaci´n real de dichos efectos que podr´ conducir al sistema a proo ıan bables problemas de estabilidad.15) (7. No interesando la t´cnica que se emplee. entonces a la se˜al de realimentaci´n se ve influida.7.12) (7. La exactitud de dicha u informaci´n var´ pero no llega a ser perfecta.9) Por otra parte. Este hecho es el que fuerza al dise˜ador a n desintonizar el controlador anticipativo ideal con el fin de lograr “robustez”. s s z = esT (7. Del cap´ ıtulo 2 sabemos que el bloque de retenci´n (o de memoria) de o orden cero tiene la forma: hr0 (s) = 1 − z −1 1 − e−sT = . tanto por los disturbios no medin o bles. Su funci´n de transferencia debe ser estable.10) (7. Por ello es deseable que el o ıa.16) (7. es decir. o las ra´ de su ecuaci´n caracter´ ıces o ıstica deben poseer parte real negativa.1 Estructura del Control con Modelo Interno 351 la influencia de los disturbios no medibles.

m y - − .3: Estructura CMI. A: Estructura muestreada. C: Estructura discreta.pγ (z) ˜ − .p(s) ˜ yγ ˜ − ? .m ? .352 Control Robusto r∗ .m ? d y - − γ(s) .m C Figura 7.m - − yγ .m . .m .p(s) ? .hr0 (s) .p(s) ? .p(s) ˜ @ @ − T γ(s)  B d r . B: Estructura equivalente a A pero no implementable.q(z) 6 u .p(s) ? .q(z) 6 u .q(z) 6 u .m .m  @ @ T A r∗ d .hr0 (s) .

1. Todos los sistemas que no son propios se denominan impropios o no causales.2. 7.2.3B presenta una configuraci´n equivao lente a la estructura mostrada en la 7. lo que puede ser significativamente peor que el comportamiento en los mismos puntos. Como las incertidumbres del modelo se describen en forma natural en el tiempo continuo.3C ilustra el sistema CMI completamente discreto. es decir.3A. 7. resulta entonces conveniente tener el modelo continuo del proceso que puede asumirse lineal e invariante con el tiempo y con presencia de tiempos muertos. los rangos de incertidumbre del modelo. El Modelo del Proceso Los m´todos de identificaci´n m´s populares generan modelos de fune o a ciones de transferencia de pulso. Formulaci´n del Problema CMI o Para dise˜ar el controlador discreto q(z) debemos tener disponibles el n modelo del proceso (que puede ser continuo o discreto).2 Formulaci´n del Problema CMI o p(z) = Z[hr0 (s)˜(s)] ˜ p p(z) = Z[hr0 (s)p(s)] 353 (7. Tales funciones son suficientes para dise˜ar n el sistema de control.2.20) II = {p : |p(jω) − p(jω)| ≤ ¯a (ω)} ˜ en donde ¯a (ω) es la incertidumbre aditiva del proceso.2. Es importante en esta parte mencionar la caracter´ ıstica causal de los sistemas.18) (7. Un sistema propio es estrictamente propio si limz→∞ g(z) = 0. y es semipropio si limz→∞ g(z) > 0. Descripci´n de Incertidumbres del Modelo o Hagamos que p(s) = p(jω) pertenezca a una familia de procesos II definida por: (7.19) Notar que la estructura de la figura 7.7. que la incertidumbre o error de modelaci´n del proceso actual p(jω) se ubique en o . pero no permiten el an´lisis del comportamiento del a sistema entre puntos de muestreo. La figura 7. 7. los tipos de entradas y los objetivos de rendimiento. Sistema Causal y Estrictamente Causal: Un sistema g(z) es propio o causal si limz→∞ g(z) es finito.

3A o 7. y luego: y(s) = p(s)q(esT ) ˜ hr0 (s)r∗ (esT ) ηr (s) = 1 − ˜r (s).9220 Observando las respuestas al escal´n en la figura 7. ∀ p II | a (jω)| ≤ La cota de la incertidumbre multiplicativa m (ω) (7.3B podemos obtener con p = p: ˜ p y(s)−r(s) = e(s) = hr0 (s)˜(s)q(esT )r∗ (esT )−r(s). o de modo equivalente: o p(jω) = p(jω) + a (jω) ˜ ¯a (ω).2707s + 14.1 Determinar las expresiones de p(s) y p(s) para el proceso servomotor D. seleccione un tiempo o de muestreo adecuado y determine la funci´n de transferencia de pulso p(z) o ˜ del modelo nominal del proceso.9.4696 = 2 + ap s + bp s + 1.C.3 e ilustrado en la fio gura 3.21) (7. podemos concluir que o un tiempo de muestreo de T = 0.24) −e(s) (7.4007 Kn 91.045 kg.25) r(s) o o donde ηr es la funci´n de sensitividad y ˜r es la funci´n de sensitividad ˜ complementaria.8133s + 17. Ejemplo 7.4375 = 2 s2 + an s + bn s + 3. ˜ ˜r (s) = r(s) = hr0 (s)r∗ (esT ) (7. El resultado es el siguiente: p(s) = p(s) = ˜ s2 Kp 30.05 s es suficiente para poder capturar la . En base a la respuesta al escal´n. ya sea del proceso o de su modelo nominal.22) del proceso se define como: (7. la cual puede variar entre 0 y 0. La unica incertidumbre del proceso a tener en cuenta es la carga ´ adicional conectada a un extremo de la varilla (una esfera de radio Ro y masa Mo ). Soluci´n: El programa ejem7 1.m determina p(s) y p(s) para el proceso en o ˜ estudio.23) ¯m (ω) = ¯a (ω)/|˜(jω)| p De las figuras 7.4.354 Control Robusto una regi´n circular acotada de radio conocido ¯a (ω). ˜ con carga no lineal variable descrito en la secci´n 3.

-N/M -(B + n^2*K*E/R)/M].4375 3. bL = 1e-5. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2.Dp). bn = denn(3). B = n^2*bm +bL. an = denn(2). b1 = numd(2).01.0.4696 1. L = 4. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2. g = 9. R = 7.7858z + 0.-N/M -(B + n^2*K*E/R)/M].2707 14. b2 = numd(3).Bn.0352e-3. Dp = [0]. % MODELO NOMINAL pn(s) (EL SUBINDICE n SIGNIFICA NOMINAL) Mo=0. Cp = [1 0].5e-7.T.071e-3. Bn = [0. N = g*Lo*(Mo+m/2).0.06377.Cn.8338e-6.Dn). m = 0. [numn. % PROCESO p(s) (EL SUBINDICE p SIGNIFICA PROCESO) Mo = 0.045. Bp = [0. % nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp) Kp = nump(3). ap = denp(2).’zoh’). a2 = dend(3).8133 17. Dn = [0]. Cn = [1 0].Bp. An = [0 1.01.1004 b1 z + b2 = 2 z 2 + a1 z + a2 z − 1.Cp.m CALCULO DE p(s) Y DE SUS MODELOS NOMINALES pn(s) Y pn(z) clear all % PARAMETROS DEL PROCESO NO LINEAL Lo = 0.9220] % MODELO NOMINAL DISCRETO pnz(z) T = 0.64e-3.9. La o o funci´n de transferencia de pulso del modelo nominal del proceso resulta: o p(z) = ˜ 0. Jm = 1.denn] = ss2tf(An. [numd.4007] % [Kn an bn] = [91. Kact = 14. [nump.dend] = c2dm(numn.776.8264 % ejem7_1.25. Jeff = n^2*Jm +JL. E = 31. K = 31.denn. cc = 0.denp]=ss2tf(Ap. % Mo = 0. bp = denp(3). N = g*Lo*(Mo+m/2).0.n*K*Kact/(R*M)]. % numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn) Kn = numn(3).05. Ro = 0. .02.741. bm = 1. JL = 3. n = 19.1070z + 0.n*K*Kact/(R*M)].81.045. % [Kp ap bp] = [30. Ap = [0 1.9062e-6.38.2 Formulaci´n del Problema CMI o 355 curva de transici´n producida por la respuesta del proceso al escal´n.7.0. % numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2) a1 = dend(2).

El sistema de control robusto ilustrado en la figura 7. n o 7.5 1 1.3.denp) xlabel(’Tiempo en segundos’) ylabel(’Respuesta del proceso’) grid subplot(2.1070 0. Control Robusto para Procesos Estables El procedimiento de dise˜o que se describe a continuaci´n es el mismo n o desarrollado en [9] y se puede aplicar a procesos estables de una entrada y una salida.1. p . asumiendo que el modelo del proceso es perfecto (˜(s) = p(s)).2) step(numn.1) step(nump.8264 0.1.5 2 Tiempo en segundos 2.1004] % GRAFICOS subplot(2.7858 0.5 3 Figura 7.4: Respuestas a la se˜al escal´n del proceso y de su modelo nominal.356 % [a1 b1 a2 b2] = [-1.3 debe ser internamente estable. Esto se logra si la planta p(s) y el controlador q(z) son estables.denn) ylabel(’Respuesta del modelo’) xlabel(’Tiempo en segundos’) grid print -f -deps ejem7_1 Control Robusto 4 Respuesta del proceso 3 2 1 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 8 Respuesta del modelo 6 4 2 0 0 0.

27) para calcular los coeficientes c1 . cm−1 . denominado estabilidad y rendimiento robustos. . donde f (z) es un filtro pasa bajo ˜ introducido para lograr estabilidad y rendimiento robustos.27) (7.27) para m = 1. denon minado rendimiento nominal. sin tener e en consideraci´n restricciones e incertidumbres en el modelo. Los ya conocidos filo tros de Butterworth y Bessel satisfacen la ecuaci´n (7.3) cuando t → ∞. . son: dn (1 − p(z)q(z)) = 0. 7. Si el sistema a lazo cerrado es estable. s→0 dsn l´ ım Dise˜ o del Prefiltro γ(s) n El objetivo principal del prefiltro γ(s) es cortar las componentes de alta frecuencia para evitar la superposici´n de frecuencias. . se selecciona un controlador de la forma q(z) = q (z)f (z).28) 0≤n<m 0≤n<m (7. Para o m > 1 se puede emplear una simple modificaci´n.7.26) (7. se selecciona un controlador q (z) que permita ˜ obtener respuestas satisfactorias del sistema a entradas de inter´s. donde m es un entero no negativo. excepto m o menos polos en s = 0. con m > 0. podemos usar (7. para un τ espec´ ıfico. las condiciones necesarias y suficientes para que el sistema sea del tipo m. En el seguno do paso. . Escribamos: o γ(s) = γ1 (s)γm (s) con: γm (s) = cm−1 sm−1 + · · · + c1 s + 1 (τ s + 1)m−1 (7. En el primero.3 Control Robusto para Procesos Estables 357 El procedimiento de dise˜o consta de dos pasos. Rendimiento Nominal Sistemas del Tipo m La propiedad asint´tica de la respuesta a lazo cerrado del sistema de cono trol robusto puede ser establecida mediante el concepto de tipo del sistema. es aquel cuya salida sigue perfectamente las entradas r(s) y d(s) (ver figura 7.1. Entonces. ˜ z→1 dz n l´ ım dn (1 − γ(s)) = 0. siempre que tal sistema posea todos sus polos en el semiplano izquierdo del plano-s. Un sistema del tipo m. .3.29) en donde γ1 (s) es un prefiltro apropiado para m=1.

}∗ denota que luego de una expansi´n en fracciones parciales del operando. h son los ceros de p(z) que est´n fuera del c´ El entero positivo N se selecciona de modo tal que pM (z) sea semipropio. que el numerador y el denominador de pM (z) posean el mismo grado. . ∗ ˜ ´ Controlador Optimo de Norma Cuadr´tica H2 : qH (z) a n El controlador optimo de norma cuadr´tica qH (z) se dise˜a resolviendo ´ a ˜ ∗ el siguiente problema de minimizaci´n de norma cuadr´tica H2 : o a qH (z) ˜ m´ ın e(z) 2= qH (z) ˜ m´ ın (1 − p(z)˜H (z))v(z) ˜ q 2 (7. . . aquellos t´rminos que posean polos que e se ubiquen dentro del c´ ırculo unitario (incluso en z = 1). es ˜ decir. ˜ .33) ˜ a ırculo unitario. . sin afectar significativamente el comportamiento de γ1 (s) en las frecuencias altas. j = 1. ˜ lo que es equivalente a decir que z N p(z) sea semipropio.30) o sujeto a la restricci´n que qH (z) sea estable y causal.358 Control Robusto Cualitativamente γm (s) adiciona algunas propiedades en ω = 0. s´lo ser´n retenidos los t´rminos que sean estrictao a e mente propios y estables. Para un valor o o de τ suficientemente grande. Notar tambi´n que e el proceso estable p(z) ha sido factorizado en una parte pasa todo pA (z) y ˜ ˜ otra parte de m´ ınima fase pM (z).32) (7. y ζj . Un filtro de segundo orden con m = 2 (entrada rampa) posee la forma: γ1 (s) = 2 ω0 2 s2 + 2ω0 ζs + ω0 La soluci´n de la ecuaci´n (7.27) determina que c1 = τ +2ζ/ω0 .31) o donde el operador {. como sigue: ˜ p p(z) = pA (z)˜M (z) ˜ ˜ donde: pA (z) = z −N Πh ˜ j=1 H (1 − (ζj )−1 )(z − ζj ) H (1 − ζj )(z − (ζj )−1 ) (7. Para ello se recomienda usar un τ grande. La minimizaci´n de la o ˜ norma anterior resulta en el siguiente controlador: qH (z) = z(pM (z)vM (z))−1 {z −1 p−1 (z)vM (z)}∗ ˜ A (7. es decir. el prefiltro γm (s) no afecta significativamente el comportamiento de γ(s) en las altas frecuencias.

35) donde ζvj . o ˜ La tabla 7. es necesario ˜ realizar una modificaci´n del controlador qH (z). .34) (7.1: Controlador qH (z) para algunas entradas t´ ˜ v(s) 1 s v(z) z z−1 Controlador qH (z) ˜ (˜M (z))−1 p (˜M (z))−1 (˜A (e−T /τ ))−1 p p (˜M (z))−1 p pA (1−˜−1 (e−T /τ )e−T /τ )z+(˜−1 (e−T /τ )−1)e−T /τ pA (1−e−T /τ )z 1 τ s+1 z/τ z−e−T /τ 1 s(τ s+1) z(1−eT /τ ) (z−1)(z−e−T /τ ) 1 s2 Tz (z−1)2 (˜M (z))−1 (N +Ω+1)z−N −Ω p z donde: = Ω d −N )| p−1 z=1 dz (˜A (z)z H (ζj )−1 −ζj h j=1 (1−ζj )(1−(ζ H )−1 ) j .7. . debido ˜ a su car´cter discreto.1 muestra la expresi´n del controlador qH (z) para algunas o ˜ entradas t´ ıpicas. Por consiguiente. Cuadro 7. . ıpicas.3 Control Robusto para Procesos Estables La entrada v(z) tambi´n se factoriza en forma similar: e v(z) = vA (z)vM (z) con: vA (z) = z −Nv Πhv j=1 H (1 − (ζvj )−1 )(z − ζvj ) H (1 − ζvj )(z − (ζvj )−1 ) 359 (7. Sin embargo. Notar que qH (z) debe ser estable y causal. 0). . hv son los ceros de v(z) que est´n fuera del c´ a ırculo Nv v(z) sea unitario y el entero positivo Nv se selecciona de modo tal que z semipropio. j = 1. este controlador puede presentar problemas de coma portamiento en las intermuestras (entre puntos de muestreo) causadas por los polos de qH (z) cercanos al punto (−1.

.1 conocemos p(z) para T = 0. m − 1. . ρ.05 s: o ˜ p(z) = ˜ b1 z + b2 z 2 + a1 z + a2 Adem´s. .36) donde q− (z) cancela todos los polos de qH (z) que posean parte real negativa ˜ ˜ y los sustituye con polos en el origen con el prop´sito de que el sistema tienda o a controlarse con m´ ınimo tiempo de estabilizaci´n.2 Control Robusto Determinar el controlador optimo cuadr´tico qH (z) para el proceso p(z) del ´ a ˜ ejemplo 7. ˜ o o . B(z) se selecciona para o preservar el tipo m del sistema.26). .1 para v(z) = p qH (z) = (˜M (z))−1 = ˜ Dise˜ o del Controlador CMI q (z) n ˜ obtenemos: z 2 + a1 z + a2 z(b1 z + b2 ) Deseamos obtener el controlador CMI q (z) postulando: ˜ q (z) = qH (z)˜− (z)B(z) ˜ ˜ q (7. Entonces podemos escribir: z − κi (7. los polos de qH (z) con parte real negativa. ˜ pM (z) = ˜ z(b1 z + b2 ) p(z) ˜ = 2 pA (z) ˜ z + a1 z + a2 z z−1 Empleando ahora la tabla 7. . N = 1. .360 Ejemplo 7. entonces ζj = 0 y: pA (z) = z −1 . o Soluci´n: Del ejemplo 7. ˜ Sean κi . i = 1. asumiendo que la entrada v(s) es un escal´n. se seleccionan de modo tal que q (z) satisfaga la ecuaci´n (7. . de modo tal que z N p(z) a ˜ ˜ p ˜ sea semipropio y por consiguiente. se debe cumplir que p(z) = pA (z)˜M (z).1. Por construcci´n.38) donde m es el tipo del sistema y los coeficientes bi . . i = 0.37) q− (z) = z −ρ Πρ ˜ i=1 1 − ki m−1 B(z) = i=0 bi z −i (7. El cero −b2 /b1 = -0.9874 de p(z) ˜ se ubica dentro del c´ ırculo unitario.

3 Control Robusto para Procesos Estables 361 qH (z) tambi´n cumple con la ecuaci´n (7. La estructura y los par´metros ˜ a del filtro se determinan para que se alcance un compromiso optimo entre ´ rendimiento y robustez. El Filtro Discreto CMI El controlador dise˜ado q (z) debe ahora ser aumentado con un filtro pasa n ˜ bajo f (z) de modo tal que q(z) = q (z)f (z). 1. B(z) = 1.42) Ejemplo 7. . . . ρ = 1 (un polo ˜ con parte real negativa que hay que sustituir con un polo en el origen). o q Soluci´n: Sabemos que q (z) = qH (z)˜− (z). ˜ z→1 dz n l´ ım n = 0.26).1 es del tipo m = 1. m − 1 (7. i =1 y κi = κ1 = −b2 /b1 .7.9874.41) B(z) = i=0 bi z −i = b0 + b1 z −1 . Entonces.3. b1 = i=1 κi 1 − κi (7. de modo que: q− (z) = z −ρ Πρ ˜ j=1 Luego: q (z) = qH (z)˜− (z) = ˜ ˜ q z − κj z − κ1 = z −1 1 − kj 1 − k1 z 2 + a1 z + a2 (b1 + b2 )z 2 7. ρ b0 = 1 − b1 . Por consiguiente. Para m = 1.3 Determinar el controlador CMI q (z) sabiendo que el proceso p(z) del ejemplo ˜ 7.26) s´ y s´lo si: o ı o dn (1 − q− (z)B(z)) = 0.39) Para los casos especiales m = 1 y m = 2 se puede obtener: B(z) = 1. .2.40) (7.43) . La forma m´s simple de f (z) es: a f (z) = (1 − α)z z−α (7. Los o ˜ ˜ polos de qH (z) son z = 0 y z = −b2 /b1 = -0. m−1 m=1 m=2 (7. q (z) debe ˜ e o ˜ satisfacer la ecuaci´n (7. Tener en cuenta que la entrada v(s) es un escal´n.

47). 0≤ω≤ π .47) donde ¯m (ω) representa la cota de la incertidumbre multiplicativa. . Para un buen rendimiento del sistema.3A o son robustamente estables. Asumiendo que todos los procesos p(s) en la ˜ familia II son estables. Una simple especificaci´n de rendimiento requiere que el sistema de lazo o cerrado sea del tipo m = 1. z=1 0≤n<m (7.44). es decir.3. w (7. .3. el filtro f (z) debe satisfacer: dn (1 − f (z)) dz n = 0. Para m = 2 y w ≥ 2 se ha determinado que: o βk = −6kα . para m ≥ 2 se debe postular: f (z) = (β0 + β1 z −1 + · · · + βw z −w ) (1 − α)z z−α (7. . podemos afirmar que si la incero tidumbre multiplicativa ¯(ω) es continua. T (7. si y s´lo si: o p q |f (ejωT )| < |˜(ejωT )˜(ejωT ) ¯m (ω)|−1 .7).2A y 7.362 Control Robusto El filtro f (z) debe preservar las propiedades asint´ticas del sistema de lazo o cerrado. . entonces los sistemas en las figuras 7. . las incertidumbres tienen que ser acotadas. Una forma simple de dise˜ar el filtro CMI es emplear un filtro f (z) con n la estructura dada en la ecuaci´n (7. que f (1) = p(1)˜(1) = γ(0) = 1. Estabilidad Robusta Dise˜ o del Filtro n La condici´n de estabilidad robusta se establece en t´rminos del controo e lador CMI q(z) = q (z)f (z). entonces existe un filtro f (z) para el cual el sistema a bucle cerrado sea del tipo m = 1. Esto. as´ como tambi´n robusı e ¯m (0) < 1.46) 7.26). el filtro de la ecuaci´n (7. la ecuaci´n (7.45) donde los coeficientes β0 . Sin embargo. siempre que donde ¯m (0) es el error multiplicativo en estado estable del sistema continuo. . tamente estable para la familia de procesos II. . que q(z) es estable y que c(z) est´ relacionado con a q(z) por la ecuaci´n (7. para que el sistema o sea del tipo m. (1 − α)(w + 1)(2w + 1) k = 1.43) cumple el o requerimiento anterior: f (1) = 1. . es decir. ˜ q Como corolario de la ecuaci´n (7. Por consiguiente. βw se seleccionan de modo tal que satisfagan la ecuaci´n (7.45) y luego variar el par´metro α de o a .44) Para un sistema del tipo m = 1.

q ˜ q 0 ≤ ω ≤ π/T (7. entonces α∗ = 0. o ˜ si (|˜(ejωT q (eiwT )| ¯m (ω))−1 decrece en la forma que lo hace un sistema de p primer orden. el controlador tiene que ser dise˜ado para n que: M (w) |ˆ(jω)| ¯a (ω) + |1 − p(jω)ˆ(jω)|W (ω) < 1.52) .4.3 Control Robusto para Procesos Estables 363 modo tal que se satisfaga la ecuaci´n (7.45) sea suficientemente grande.49) 7.50) |˜(jω)˜(ejωT )f (ejωT )| < |¯(jω)| ¯a (ω) p q podemos observar que el ancho de banda del t´rmino de la izquierda puede e ser reducido incrementando α en f (z) o dejando f (z) = 1 y aumentando T .48) Si esta cantidad nunca es menor que 1. Por ejemplo. Dicha cota tambi´n se puede obtener del gr´fico de Bode de: (|˜(ejωT q (eiwT )| ¯m (ω))−1 p ˜ (7. La selecci´n de W (w) depende de los requerimientos de o o rendimiento impuestos por el dise˜ador. hasta alcanzar un valor de 0.43). entonces: α∗ = e−T w Efecto del Muestreo Un incremento de la constante de tiempo α del filtro reduce el ancho de banda del sistema nominal.47).47) como: p (7. Es razonable usar la funci´n de n o sensitividad ideal η(s) = p(s)˜(s) como una gu´ para la b´squeda de W (ω): ˜ q ıa u ˜ q W (ω)−1 ≥ |1 − p(jω)˜(jω)| (7. α∗ puede ser determinada a partir del gr´fico de a Bode de f (z). Grandes valores del tiempo de muestreo T tambi´n reducen el ancho de banda debido a que si escribimos la ecuaci´n e o (7. (7.51) q (jω) = q (ejωT )f (ejωT )Z[hr0 (s)γ(s)] ˆ ˜ donde se ha introducido una funci´n de peso W (ω) sobre la cual se discute o a continuaci´n. Esta ecuaci´n pone una cota o o e a inferior α∗ a α. Rendimiento Robusto Para rendimiento robusto. siempre que el n´mero de o u coeficientes w en la ecuaci´n (7. Si se obtuvieran valores menores que 1.7 en ω = ω .7. Este gr´fico resulta pr´cticamente similar al obtenido con el a a filtro de primer orden dado en la ecuaci´n (7.3.

o Esta forma de variar la funci´n de peso proporciona mayor flexibilidad en o el proceso de verificaci´n del rendimiento robusto. se deben cumplir las condiciones e siguientes para m ≥ 1: W (∞)−1 ≥ 1.4 Determinar una funci´n de peso adecuada para el proceso servomotor D.54) . tal como veremos m´s o a adelante.53) Ejemplo 7. W (0)−1 ≥ 0 (7. y que robusto para ω = 0 y para cualquier peso W (ω). podr´ no existir un valor de α para que la ecuaci´n (7.52).3). Dise˜ o del Filtro n La forma m´s simple de dise˜ar el filtro f (z) es especificar su estructura a n dada en la ecuaci´n (7.2 y 7. Sin embargo. siempre que no se sobrepase la condici´n dada en (7. 7. El par´metro α debe ser sintonizado para que se satisfagan las condia ciones dadas en las ecuaciones (7. debido a o que nos permite cambiar la magnitud de la funci´n de peso usando un factor o multiplicativo.52).5s + 1 .45) sea satisıa o fecha. Soluci´n: Podemos seleccionar la siguiente funci´n de peso: o o W (s)−1 = 0. Por consiguiente. Asumiendo que q (z) y f (z) se seleccionan de modo tal que el sistema ˜ resulte del tipo m = 1 (para el cual se cumple que p(z)˜(z)f (z)|z=1 = 1) o ˜ q ¯m (0) < 1.4 0. Desde que es posible imponer la cota inferior α∗ de α.53).1s + 1 s = jω que cumple las condiciones establecidas en la ecuaci´n (7. o se recomienda emplear la forma general dada en la ecuaci´n (7. debemos a resolver el siguiente problema de optimizaci´n: o α∗ ≤α≤1 0≤ω≤π/T m´ ın m´x M (ω) a ψ(T ) (7. o sujeto a cargas no lineales (ver ejemplos 7. para determinar dicho par´metro. siempre es posible conseguir rendimiento mayor. dependiendo de ¯a e y W . 0.C.45) y luego tratar de satisfacer la ecuaci´n (7. entonces. el primer t´rmino de M (w) decrece a e mientras que el segundo t´rmino crece.364 Control Robusto Para que la condici´n anterior resulte una funci´n propia (requerimiento que o o tambi´n es necesario para cualquier W (w)).51).47) y (7. Incrementando α. entonces.1.51) varo o iando el par´metro α.

Bp = [0. Cp = [1 0]. K = 31. bm = 1. Dp = [0].5 Dise˜ar el filtro f (z) para el proceso servomotor D.5 o en la funci´n de peso W (s).denp]=ss2tf(Ap. g = 9.64e-3.54). ap = denp(2). entonces: f (z) = (1−α)z .741. cc = 0. m = 0.0.8338e-6.m ESTABILIDAD ROBUSTA Y RENDIMIENTO ROBUSTO clear all % PARAMETROS DEL PROCESO NO LINEAL Lo = 0. En el gr´fico de magnitudes a de la figura 7.T.Cp. o z−α Para determinar la estabilidad robusta del proceso. se preserva para cualquier valor de α entre 0 y 1. % PROCESO p(s) Mo = 0. o Ejemplo 7.5. tal como lo calcula el programa ejem7 5.1 al 7.06377.776.5e-7. Ro = 0. Verificar que se cumplan las condiciones de estabilidad y rendimiento robustos.Dp).n*K*Kact/(R*M)]. Jm = 1. o % ejem7_5. .05. empleamos la ecuaci´n o (7.9. bL = 1e-5.38. B = n^2*bm +bL.0.81. Soluci´n: Como el sistema es del tipo m = 1.25. usando los resultados n de los ejemplos 7. % PROCESO DISCRETO pz(z) T = 0.01.01.0. Este valor de α es la soluci´n o al problema de optimizaci´n planteado en la ecuaci´n (7. Jeff = n^2*Jm +JL. Kact = 14. [nump.0352e-3.9062e-6.045. Asumir: ¯m (ω) ≈ | m (eiω )| y ¯a (ω) ≈ | a (ω)|. podemos observar que para α = 0. bp = denp(3).9 se cumplen las condiciones de estabilidad y rendimiento robustos.m.045.02. N = g*Lo*(Mo+m/2). % Mo=0. JL = 3. Notar que en o o la verificaci´n del rendimiento robusto estamos empleando un factor de 0. [numdp. Podemos comprobar que la estabilidad robusta para el caso que nos ocupa. R = 7.4.51) con diferentes valores de α.071e-3. L = 4.dendp] = c2dm(nump.Bp.’zoh’). E = 31.7.-N/M -(B + n^2*K*E/R)/M]. n = 19. % nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp) Kp = nump(3). M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2. El mismo programa determina el rendimiento robusto del proceso. Ap = [0 1.3 Control Robusto para Procesos Estables 365 donde se ha introducido el argumento T en ψ para indicar que el valor o ´ptimo de la funci´n objeto depende del tiempo de muestreo T .denp.C.

An = [0 1. pnz = (b1*z+b2)/(z^2+a1*z+a2). for w = 0:pi/T s=i*w.05. b2 = numd(3).T. z=exp(s). % PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w. [numn. laz = pz . Dn = [0]. magf_dB(w+1) = 20*log10(abs(f)). b1 = numd(2). % MODELO NOMINAL DISCRETO pnz(z) T = 0. an = denn(2). .pnz. % CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0. bp1 = numdp(2). a2 = dend(3).Cn.00. qt = (z^2 + a1*z + a2)/((b1 + b2)*z^2).denn] = ss2tf(An.955. % numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn) Kn = numn(3). bp2 = numdp(3).denn. qt = (z^2 + a1*z + a2)/((b1 + b2)*z^2). la = p . p = Kp/(s^2 + ap*s + bp).366 Control Robusto % numdp(s)/dendp(s) = pnz(z) = (bp1*z + bp2)/(z^2 + ap1*z + ap2) ap1 = dendp(2). pn = Kn/(s^2 + an*s + bn).n*K*Kact/(R*M)]. [numd.’zoh’). bn = denn(3).Bn. Bn = [0. Cn = [1 0]. f = (1-alfa)*z/(z-alfa). pz = (bp1*z+bp2)/(z^2+ap1*z+ap2). ap2 = dendp(3). % MODELO NOMINAL pn(s) Mo=0. % numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2) a1 = dend(2). lm = la/pn. N = g*Lo*(Mo+m/2). % qt <> q~ f = (1-alfa)*z/(z-alfa). q = qt*f. % qt <> q~ mag_dB(w+1) = 20*log10(1/(abs(pnz*qt*lmz))).Dn). M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2.dend] = c2dm(numn.-N/M -(B + n^2*K*E/R)/M]. lmz = laz/pnz.pn. z=exp(s).

pi/T).3 Control Robusto para Procesos Estables W = 0. (b) Magnitud de M para verificar el rendimiento robusto.pi/T. subplot(121) semilogx(ejew.magf_dB(1:pi/T).ejew.M_dB(1:pi/T)) ylabel(’Magnitud de M en dB’) title(’ (b)’) xlabel(’Frecuencia angular (rad/s)’) grid print -f -deps ejem7_5 print -s -deps ejem7_6a (a) 40 2 0 −2 −4 −6 −8 −10 −12 −14 −16 0 10 (b) 367 30 20 Magnitud de M en dB 1 2 Magnitudes en dB 10 0 −10 −20 −30 −40 0 10 10 Frecuencia angular 10 (rad/s) 10 Frecuencia angular 1 10 (rad/s) 2 Figura 7. .’--’) ylabel(’Magnitudes en dB’) title(’ (a)’) xlabel(’Frecuencia angular (rad/s)’) grid subplot(122) semilogx(ejew.mag_dB(1:pi/T). % PARA RENDIMIENTO ROBUSTO: M_dB < 0 end % GRAFICOS ejew = linspace(0.5: (a) Magnitudes de |˜q ¯|−1 y |f (z)| (en trazos) para verificar la p˜ estabilidad. M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)).5/abs(1-pn*qt).7.

entonces el n sistema discreto tiende a comportarse como uno continuo. 7.6 Simular el sistema de control robusto dise˜ado en los ejemplos 7.m. . Como regla. . tiempos de muestreo suficientemente grandes pueden ser aceptables para conseguir estabilidad robusta y rendimiento robusto. podr´ ser imposible satisfacer los ıa requerimientos para lograr un rendimiento robusto.m) o n y los resultados de la simulaci´n en la figura 7. Ejemplo 7. . . π/T se puede seleccionar m´s grande que el ancho de bana da sobre el cual se desea un buen rendimiento. que p(s) = p(s). increment´ndose a de esta manera el rendimiento nominal del sistema. si para un determinado T ∗ resulta que ψ(T ∗ ) > 1. . . πk . entonces podemos seguir incrementando el tiempo de muestreo.7. es decir. y adem´s que p(s) y p(z) ˜ a ˜ posean κ polos inestables π1 . πk . Control Robusto para Procesos Inestables Para controlar procesos con comportamiento inestable se tiene que emplear la estructura cl´sica ilustrada en la figura 7.1 (donde c = q(1 − pγ q)−1 ) queda garantizada.1 al 7. . siempre que q(z) sea estable y que (1 − pγ (z)q(z)) posea ceros en π1 . la estabilidad interna del sistema de la figura 7. Por otra parte. Por consiguiente. que nos permita muestrear y luego n recuperar sin dificultad la curva de respuesta resultante.1.4. si el tiempo de muestreo fuera muy grande. Sin embargo. Si para un cierto tiempo de muestreo T ∗ se encuentra que ψ(T ∗ ) < 1.368 Selecci´n del Tiempo de Muestreo o Control Robusto Cuando el tiempo de muestreo es suficientemente peque˜o.6 (archivo ejem7 6a. Sin embargo. Asumiendo que el modelo a del proceso es perfecto. . Otra forma de seleccionar T es deteminar la respuesta al escal´n del proceso para poder seleccionar o un tiempo T suficientemente peque˜o. n Soluci´n: Ver el diagrama de dise˜o en la figura 7. .5. Los gr´ficos se realizan con o a el programa ejem7 6b. significa entonces que las incertidumbres asumidas en el modelo del proceso y en la estructura del controlador deben ser reajustadas. el costo computacional es mayor y la aparici´n de una alta frecuencia de muestreo del o orden de 1/T puede hacer que disminuya el rendimiento robusto.

7: Resultado de la simulaci´n del sistema de control robusto o dise˜ado en los ejemplos 7.7.s+bp Proceso p(s) Kn s2+an.2 0.4 Control Robusto para Procesos Inestables 369 + − Sum1 z2+a1.s+bn Mux q Mux Gráfico q_ej7_6 posición referencia .6: Diagrama de bloques para la simulaci´n del sistema de control o robusto dise˜ado.8 0.z+a2 (b1+b2)z2 Controlador q~(z) (1−alfa)z z−alfa Filtro u_ej7_6 control u Kp s2+ap. Modelo nominal pn(s) − + Sum2 Figura 7.5.3 0.1 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Figura 7.6 0.4 0.1 al 7.2 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Control en voltios 0. n . n 1 Posición en rad 0.

. es el mismo que para procesos estables.59) ˜ donde el operador {.4.1.3. Rendimiento Nominal El procedimiento de dise˜o del controlador robusto para procesos inestan bles.}∗ denota que luego de una expansi´n en fracciones paro ciales del operando.1.1): o p(z) = pA (z)˜M (z) ˜ ˜ p De manera an´loga factoricemos la entrada v(z): a v(z) = vA (z)vM (z) (7. Definamos: bp (z) = Πκ j=1 H (1 − (πj )−1 )(z − πj ) H (1 − πj )(z − (πj )−1 ) (7. . .56) Asumamos ahora sin p´rdida de generalidad. se puede usar la tabla 7.57) (7. Notar que para procesos estables: bp = bv = 1. El controlador resultante posee la forma: q(z) = q (z)f (z). que los polos inestables de v(z) e ubicados fuera del CU son los primeros κ1 polos πj del proceso. . Entonces el qH (z) = zbp (z)(pM (z)bv (z)vM (z))−1 {(zbp (z)pA (z))−1 bv (z)vM (z)}∗ (7.58) Asumamos adem´s que v(z) posee al menos a ∗ controlador optimo H2 (z) viene dado por: ´ polos en z=1. . ˜ ∗ ´ El Controlador Optimo H2 Asumamos que p(z) = p(z) posee κ polos π1 . Este ultimo controlador se modifica ˜ ˜ ˜ ´ con un filtro f (z) para poder garantizar estabilidad y rendimiento robustos. En esta forma obtenemos el controlador q = qH q− B(z). s´lo ser´n retenidos los t´rminos que sean estrictamente o a e propios. πk ubicados fuera del ˜ CU (c´ ırculo unitario) y un polo de multiciplicidad . exceptuando aquellos correspondiente a los polos de pA (z)−1 .370 Control Robusto 7. y definamos: bv (z) = Πκ1 j=1 H (1 − (πj )−1 )(z − πj ) H (1 − πj )(z − (πj )−1 ) (7. Primero se dise˜ a el controlador n qH y luego se le modifica de modo tal que permita evitar el problema debido ˜ a las oscilaciones que se pueden originar entre muestras.55) o y factoricemos la planta en una porci´n pasa todo pA (z) y otra porci´n o semipropia de m´ ınima fase pM (z) (ver la subsecci´n 7. Si todos los polos inestables del proceso p(s) se ubican en el origen.

. b1 . z=πi k = 0. .4 Control Robusto para Procesos Inestables Dise˜ o del Controlador CMI q (z) n ˜ El controlador CMI tiene la forma: q q (z) = qH (z)˜− (z)B(z) ˜ ˜ 371 (7. j = 0.65) −1 λ=πi . .7. el sistema tiende a controlarse con m´ ınimo tiempo de estabilizaci´n. M − 1 de (7.62) Se puede formular adem´s: a M −1 B(z) = j=0 ξ bj z −j (7. mi − 1.63) M= i=1 mi (7. . las ra´ plicidad mi correspondientes al m´ ınimo denominador com´n de p(z) y v(z) u Tener en cuenta que v(z) y p(z) poseen la misma cantidad de polos en z = 1. . . Los requerimientos para garantizar el tipo del sistema y la estabilidad interna pueden ser unificados mediante la relaci´n siguiente: o dk (1 − q− (z)B(z)) ˜ dz k = 0. k = 0. El cono trolador q− (z) se formula como: ˜ q− (z) = z −ρ Πρ ˜ i=1 z − κi 1 − ki (7. Notar que (7. ξ.62) da lugar a M ecuaciones lineales con M inc´gnitas b0 . . . (7. .63). y los sustituye con polos en el origen. ρ de qH (z) que posean ˜ parte real negativa. . . . ξ (7. . De esta forma.61) ıces inestables (incluyendo z=1) con multiSean πi .64) y computar los coeficientes bj . . . dicha o ecuaci´n es equivalente a: o dk (1 − q (λ−1 )B(λ−1 )) ˜ dλk = 0. . bM −1 . . . . mi − 1. . ξ. . . . . . i = 1. . . . i = 1.60) ˜ donde q− (z) cancela todos los polos κi . . . i = 1. . i = 1. .

3. En esta situaci´n. Observar que para ξ = 1. o Si M = 2. q (z)f (z) y (1 − p(z)˜(z)f (z)) o ˜ ˜ q deben ser estables. para garantizar estabilidad robusta se debe cumplir: |f (ejωT )| < |˜(ejωT )˜(ejωT ) ¯m (ω)|−1 . . . . mi − 1. .3 y 7. ξ (7.4.2.4. se tiene π1 = 1. . i = 1. .4. f (z) = 1 para z = π1 .67) donde πi y mi ya fueron definidos anteriormente.67). . .3.372 Control Robusto 7. . (1 − p(z)q(z)f (z))v(z) debe ser estable. . Notar que cuando k = 0. en˜ tonces: dk (1 − f (z)) dz k = 0. El Filtro Discreto CMI (1 − α)z z−α La estructura m´s simple del filtro es: a f1 (z) = (7. . p q 0≤ω≤ π . se cumpla la ecuaci´n (7. Es decir. . En otro caso. Estabilidad y Rendimiento Robustos Los requerimientos a satisfacer para garantizar estabilidad y rendimiento robustos son los mismos que rigen para procesos estables. conviene seleccionar ω ≥ 2 para evitar la soluci´n trivial.69) Los coeficientes β0 .66) En general.70) . πξ . gener´ndose M ecuaciones lineales con o a M inc´gnitas.3. βω se seleccionan de modo tal que para un determinado α. . el filtro f (z) debe satisfacer los requerimientos siguientes: 1. z=πi k = 0. .68) βj z −j (7. Seguimiento asint´tico a entradas externas al sistema (referencias y/o o disturbios). o 7. . Estabilidad interna. . Tales requisitos fueron desarrollados en las subsecciones 7. 2. Dado que q (z) cumple los requerimientos anteriores para f (z) = 1. m1 = 1 y φ(z) = 1. Resumiendo. T (7. el filtro se escoge de: f (z) = φ(z)f1 (z) donde: φ(z) = j=0 ω (7.

o determinar el modelo de la planta con sus incertidumbres y definir los tipos de las entradas (subsecci´n 7.3.4. o 3) Seleccionar la frecuencia de muestreo (subsecci´n 7.72) 7.1. n 2) Usando toda la informaci´n disponible acerca del proceso no lineal.4. o 4) Dise˜ar el controlador optimo cuadr´tico qH (z).3. para ambos casos).3.3.2. . Para procesos estables n ´ a ˜ ver la subsecci´n 7.2. o 5) Dise˜ar el controlador CMI: q (z).1. Para procesos inestables n ver la subsecci´n 7.4.5. n o o 7) Dise˜ar el filtro discreto CM I. analizando o las respuestas al escal´n del proceso y del modelo nominal del mismo.1 (en esta subsecci´n tambi´n se encuentra el o o e procedimiento para dise˜ar el prefiltro γ(s)).1.3. o o 6) Dise˜ar la funci´n de peso W (subsecci´n 7. Procedimiento de Dise˜o n El procedimiento para dise˜ar un sistema de control robusto discreto con n estructura CMI es como sigue: 1) Formular el problema (definir especificaciones de dise˜o).7.4).71) (7. o 8) Simular el sistema de control robusto. ver subseci´n 7.4.3).2). ver la subsecn ci´n 7.3 y 7.1 n o o 0 ≤ ω ≤ π/T 373 (7.4. comprobar que se cumplan los o requerimientos de estabilidad robusta y rendimiento robusto (subsecci´n 7.5 Procedimiento de Dise˜ o n Para garantizar rendimiento robusto se tiene que cumplir: |ˆ| ¯a + |1 − pq |W ≤ 1. Para procesos estables ver la subn ˜ secci´n 7. Para procesos inestables.3. Para procesos estables.4). 9) Implementar el hardware del sistema de control.3. comprobar que se cumplan los requerimientos de estabilidad o robusta y rendimiento robusto (subsecciones 7. Para procesos inestables ver la subsecci´n 7. q ˜ˆ donde: q (s) = q (esT )f (esT )Z[hr0 γ(s)] ˆ ˜ El dise˜o del prefiltro γ(s) se trat´ en la subsecci´n 7.3.

7. No se est´ considerando el efecto a . 7.6.1. es un proceso de una entrada y una salida.C. El objetivo de control es dise˜ar e implementar un sistema de control n robusto empleando una ley de control CMI (Control de Modelo Interno).374 10) Implementar el software de control. De esta manera la carga no lineal se hace variable. esta secci´n presenta el dise˜o de o n un sistema de control robusto para controlar la posici´n de un servomotor o D. sujeto a cargas no lineales.1 al 7. Simulaci´n del Sistema de Control Robusto o La simulaci´n realizada en el ejemplo 7.3.9 y descrito en la secci´n 3. con o el a˜adido de dos bloques de saturaci´n (para evitar saturar el amplificador n o de potencia) m´s una se˜al de realimentaci´n que es proporcional al torque a n o no lineal producido por la carga no lineal. o o En la siguiente simulaci´n. El sobreimpulso de la respuesta debe ser m´ ınimo no obstante la presencia de la carga no lineal variable y de las no linealidades del proceso como son las fricciones (est´tica y de Coulomb) y la saturaci´n en el amplificador del a o servomotor.C. La carga no lineal es una varilla met´lica a acoplada perpendicularmente al eje del servomotor (a manera de un brazo rob´tico de un grado de libertad).6. En el extremo libre de dicha varilla se o pueden acoplar cargas adicionales. Control Robusto 11) Realizar pruebas de funcionamiento (resultados experimentales). Control Robusto de un Servomotor No Lineal Siguiendo el procedimiento formulado..3. Dise˜o del Sistema de Control Robusto n Los pasos (2) al (7) del procedimiento de dise˜o fueron cubiertos en los n ejemplos 7. de modo tal que la varilla se posicione en una referencia predeterminada. Formulaci´n del Problema o El servomotor D.6.2.5. con carga no lineal mostrado en la figura 3. 7. la planta a considerar es su modelo no lineal. Este o servomotor posee un engranaje reductor de velocidad y puede ser controlado por el voltaje de armadura.6 consider´ una planta p(s) lineal.6. 7.

considerando el modelo no lineal del proceso. + − S1 z2+a1. Implementaci´n del Hardware o El hardware empleado en la implementaci´n en tiempo real del sistema o de control robusto es similar al empleado para la implementaci´n en tiemo po real de los sistemas de control adaptivo. o .8. que tambi´n es un componente no lineal.m. mientras que el resultado de la simulaci´n se puede ver en la o figura 7.8: Diagrama de bloques para la simulaci´n del sistema de control o robusto dise˜ado. El diagrama de simulaci´n. se debe o ejecutar previamente el programa disrob2. n 7.7.6 Control Robusto de un Servomotor No Lineal 375 de la fricci´n de Coulomb. predictivo y no lineal.8. programa disrob1.s+bn Modelo nominal pn(s) − + S2 Referencia u_disrob Control Saturación 2 Kact gan5 n*K R S3 Subsistema eléctrico n*E gan2 + − + − S4 1 1 w Ms+B s Subsistema Integrador mecánico q_disrob MATLAB Function Seno Salida q N gan3 Figura 7.9. se muestra en o la figura 7.6. debido o e a que tal efecto ser´ compensado mediante software. Dicho hardware se describe en detalle en la subsecci´n 5.m. como veremos m´s a a adelante.m. Para efectuar la simulaci´n con el programa disrob1.z+a2 (b1+b2)z2 Controlador q~(z) (1−alfa)z z−alfa Filtro u Saturación 1 Mux Graph Mux Kn s2+an.4.6.

A continuaci´n se presenta el listado del a o programa ROB.9: Resultado de la simulaci´n del sistema de control robusto emo pleando el modelo no lineal del proceso.05 0 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20 Figura 7.1 0.376 Control Robusto 1 Posición en rad 0.PRJ.15 0.2 0.7. El diagrama de flujo del software de control o se muestra en la figura 6. El listado de los programas R1LLIB. El archivo ROB.CPP y ROB. 7.H y R1LLIB.7.CPP es el que contiene el algoritmo de control. La realizaci´n de archivos ejecutables a partir de los programas fuente. Implementaci´n del Software o El software de control empleado en la implementaci´n en tiempo real o del sistema de control robusto posee la misma estructura que el software de control empleado para la implementaci´n en tiempo real de los sistemas de o control predictivo y no lineal.CPP fueron presentados en la subsecci´n 6. R1LLIB.CPP.13.25 Control en voltios 0.6. La estructura de dicho software se describe en detalle en la subsecci´n 6.7.5 0 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20 0.H. Los prograo mas necesarios para el control se estructuran en tres archivos: R1LLIB. en donde intervienen los archivos mencionados en el p´rrafo anterior. se o elabora en el ambiente de trabajo del Borland C/C++ mediante la creaci´n o de un proyecto denominado ROB. o .CPP.5.7. El software usado para la implementaci´n del algoritmo de control de o posici´n emplea el lenguaje C y se ejecuta en una PC Pentium.

h> #include <math. xn1pp. Ver especificaciones de dise~no en la subseccion resultados experimentales */ #include "r1llib. pk. float t). /***************** FUNCIONES ************/ float Aplica_Control(float u. xn1. if(u+v<-1. r. float *xn1.*19. epp. float *vel. upp.h" #include <stdio.6 Control Robusto de un Servomotor No Lineal /* ROB. float up. xn1p. if(u<0. EnviarVoltage(u+v+Ofst). int p0. float Aplica_Control(float u.4. //x2.) v = VcFC. e. float *r. b1. /* Declaracion de las variables globales */ float a1.CPP Programa del sistema de control robusto para proceso con carga maxima y referencia de 45 grados. return u.h> #include <assert.7.h> #include <alloc. else if(u>0.4) u= -1. float x1. float Fs.) v = -VcFC. float ep. float ykp). Ofst. float ykp) { float v.h> const float ESCALA= 2. w.h> #include <conio.4) u= 1. yant.*M_PI/(512.4. float t. void Mide_Variables (float *x1k. b2. N. tsimul. a2.7). else if(u+v>1. float T. /* Declaracion de las funciones propias del programa */ void Inicializa_Sistema(). alfa. float VcFC. } void Inicializa_Sistema() { 377 . float x1p.

0x271.3.8264.. *x1 = x1p + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA. 0x270.955.. xn1pp=0. a2= . /* Modelo nominal */ *xn1 = . p0 = pk. T= 1. ep=0. b2= .. float *r.7858. float t) { /* referencia: r= r(t)*/ *r = M_PI/4.378 Control Robusto /* Con Varilla*/ a1=-1. ep=e. /* Inicializacion de variables */ x1p=0. a2. upp=0. /* velocidad angular */ *vel= (5.. p0 = LeerPosicion(). w =(e+a1*ep+a2*epp)/(b1+b2). float *vel. Fs). Fs= 20.1070. up=0. /* Actualizamos los estados */ x1p=*x1. alfa=0.+5. b1. epp=0.*T).a2*xn1pp + b1*up + b2*upp. /* Ahora leo la posicion */ pk = LeerPosicion()... } .. epp=ep.15. xn1pp=xn1p./Fs.(*x1-*xn1).a1*xn1p .*(*x1-x1p)+ *vel)/(1. EnviarVoltage(Ofst). xn1p=*xn1. 0x264.. xn1p=0. Ofst= 2. b2 DEPENDEN DE LA Fs */ VcFC= . ConfigurarHardware(0x272. /* error */ e = *r . tsimul= 100. /* ATENCION: LOS VALORES DE a1. float *xn1. } void Mide_Variables( float *x1.. b1= .1004.

printf("referencia : r=%+5./M_PI. *rb. printf("Control robusto del servomotor no lineal").3f".11). upp=up. &r. if(!(k%5)) { x1b[k/5] = x1*180. printf("****************************************"). xn1p. } k++. x1*180. clrscr(). Inicializa_Sistema().) { act = NivelClock(). w. gotoxy(21. assert(NULL!=(xn1b= (float *)calloc(n/5./M_PI. N= tsimul/T. assert(NULL!=(x1b = (float *)calloc(n/5. FILE *out. float *ub. float x1p. . act = 0. assert(NULL!=(rb = (float *)calloc(n/5.r*180. assert(tsimul<120). up=u.3f".printf("posic.9). rb[k/5]=r*180.sizeof(float)))). gotoxy(21. ub[k/5]=u.3f". k.sizeof(float))))./M_PI). gotoxy(18.printf("posicion : x1=%+5. gotoxy(15.u). nominal : xn1=%+5.sizeof(float)))). assert(NULL!=(wb = (float *)calloc(n/5.6 Control Robusto de un Servomotor No Lineal 379 void main() { int ant = 0. &xn1. for(k = 0. if ((ant==0)&&(act==1)) { Mide_Variables(&x1.7). t= vel= 0./M_PI). n. wb[k/5] = w*180.x1*180. u. u= Aplica_Control(u. assert(NULL!=(ub = (float *)calloc(n/5. t += T.sizeof(float)))).printf("control : u=%+5. gotoxy(21.t). k<n.3f". r./M_PI).13).19). *xn1b. *wb. u=alfa*up+(1-alfa)*(w).15)..7. gotoxy(15. float vel. gotoxy(21. gotoxy(21. n= (int)N. vel). t). &vel.17).5).sizeof(float)))).printf("tiempo : t=%+5.3f". float *x1b. printf("****************************************")./M_PI.

o Problema 7.98J (correspondiente a la varilla con una carga esf´rica de magnitud Mo e = 0."%10f %10f %10f %10f %10f\n".printf("error de posic. o Podemos observar que la respuesta del sistema muestra sobreimpulso nulo. x1b. hasta un valor m´ximo de a 2. un tiempo estabilizaci´n menor que 4 s y error en estado estable nulo.19). } EnviarVoltage(Ofst).380 Control Robusto gotoxy(21. rb[i]-(x1b[i]-xn1b[i])). seg´n el caso.7. delete rb.printf("****************************************"). El control del angulo de inclinaci´n θ del avi´n (ver ´ o o . fclose(out).7.out".045 kg).3f".8./M_PI). i<n/5. } ant=act.21)."wt").2 presenta las ecuaciones que gobiernan la din´mica longia tudinal de un avi´n comercial volando a velocidad de crucero (altura y veo locidad constantes). xn1b. out=fopen("rob. ver la subsecci´n 6. gotoxy(15.e*180. ub[i]. x1b[i]. i*5*T.6. for (int i=0.6. o El sistema de control robusto debe ser capaz de estabilizar la posici´n o de la carga no lineal para variaciones de su inercia comprendidas entre J y 2.1 El problema 3. La figura 7. } 7. ub.98J. Resultados Experimentales La inercia de la carga no lineal puede variar desde J = 0. Para mayores detalles acerca de la carga no lineal variable. rb[i]. o 7.: e=%+5.007047 kg-m2 (correspondiente a la varilla sin carga adicional). en uno o m´s archivos con extensi´n u a o m escritos en c´digo MATLAB.10 muestra el resultado experimental del control de a posici´n robusto para una referencia de 45o en presencia de carga m´xima. la soluci´n a los o problemas se encuentra. Problemas Resueltos En la secci´n problemas resueltos de los cap´ o ıtulos 4 al 8. i++) fprintf(out. if(kbhit()) if(getch()==27) break.

sujeto a una carga no lineal m´xima.11.1 0. La selecci´n del tiempo de muestreo es a n o conveniencia del dise˜o.05 0 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50 Figura 7.2 0.1 . controle el angulo de inclinaci´n del avi´n.C. El objetivo de control es entonces dise˜ar un autopiloto que manipulando el angulo δe del deflecn ´ tor de elevaci´n.15 0. El sistema a o dise˜ado debe ser del tipo m = 1.2 rad como entrada de referencia. Asumir: ¯m (ω) ≈ | m (eiω )| y ¯a (ω) ≈ | a (eiω )|. n Soluci´n: Los rangos de variaci´n de los par´metros se muestran en el proo o a grama p4rob1. con o un error en estado estable nulo.m) es el diagrama de bloques empleado en la simulaci´n del siso tema dise˜ado y requiere que previamente se ejecute el programa p4rob1. tal como se aprecia en la figura 7.13 (obtenida con o el archivo p4rob1r. La figura 7. El sistema dise˜ado cumple los requerimientos de n estabilidad y rendimiento robustos.14) es un problema longitudinal a resolver.12 (archivo o p4rob1s. a figura 3.7 Problemas Resueltos 50 (grados) 40 30 20 10 0 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50 381 Señal de control (voltios) Posición 0. al igual que el procedimiento en detalle para dise˜ar el conn trolador robusto cuando la entrada v es un escal´n.m SOLUCION AL PROBLEMA 7. Se pide dise˜ar o ´ o o n un sistema de control robusto con modelo interno que genere una fuerza de control tal que la salida del proceso (el angulo de inclinaci´n θ) presente un ´ o sobreimpulso menor al 10 % y un tiempo de estabilizaci´n menor que 4 s. Realizar el c´lculo del controlador para una entrada v escal´n. Tomar 0.m).m.7.m. % p4rob1.10: Resultado experimental del sistema de control de posici´n roo busto del servomotor D. n Los resultados de la simulaci´n se muestran en la figura 7.

[numd.9704 y -0. cn=0. denn=[1 cn dn 0]. pn=(an*s+bn)/(s^3+cn*s^2+dn*s) ap=1. b2=numd(3).95. cp=0. % CALCULO DE qtilde=qtilde_H*qtilde_*B(z) PARA m=1: % B(z)=1. b3=numd(4). qtilde=qtilde_H*qtilde_= % (z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^3+b2*z^2+b3*z)*z*(1-k1)) .9416 COMO pnz NO POSEE CEROS FUERA DEL CU.1. % PARA EL PROCESO NOMINAL numn=[0 0 an bn].739s^2+0. vM=z/(z-1) CALCULO DE qtilde_H=z(pM*vM)^(-1){z^(-1)pA^(-1)vM}*: z(pM*vM)^(-1)=(z-1)pM^(-1) {z^(-1)pA^(-1)vM}*={z/(z-1)}*={1+1/(z-1)}*=1/(z-1) qtilde_H=pM^(-1)=(z^3+a1*z^2+a2*z+a3)/(b1*z^3+b2*z^2+b3*z) CALCULO DE qtilde_: (b1*z^2+b2*z+b3)=(z-0. LUEGO pA=z^(-1) Y pM=pnz/pA=z*(b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3) CALCULO DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON: vA=1. % PARA EL PROCESO nump = [0 0 ap bp]. Y COMO z^N*pnz DEBE SER SEMIPROPIO.2. k1=-0. p= (ap*s+bp)/(s^3+cp*s^2+dp*s) MODELO NOMINAL DISCRETO pnz(z) T = 0. PROCESO DISCRETO [numdp.9. DEBEMOS CANCELAR z=-0...T.151s+0.denn.9704)(z+0. rho=1.2. DETERMINACION DE pnz(z)=pA(z)*pM(z): roots(numd): 0. a2=dend(3).9416. denp=[1 cp dp 0].’zoh’).3. bp1=numdp(2). a3=dend(4). dp=0. bp2=numdp(3). numdp(z)/dendp(z) = pz(z) = (bp1*z^2+bp2*z+bp3)/.denp. LUEGO qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1) k1=-0. bp=0. bp3=numdp(4). ESTO ES. N=1. dn=0.382 Control Robusto % % % % % % % % % % % % % % % % % % % % % % % % % % clear all FT (FUNCION DE TRANSFERENCIA) DEL PROCESO: theta/deltae=(1.1774)/(s^2+0.8.T.9416.’zoh’). b1=numd(2).921s) -->dato theta/deltae=(a*s+b)/(s^3+c*s^2+d*s): ESTRUCTURA DE LA FT SE DESEA ROBUSTEZ EN TODOS LOS PARAMETROS: an=1. ap3=dendp(4).dend] = c2dm(numn.9416). ap2=dendp(3).7. bn=0. numd(z)/dend(z) = pnz(z) = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3) a1=dend(2).9416 Y SUSTITUIRLO CON z=0.dendp] = c2dm(nump. (z^3+ap1*z^2+ap2*z+ap3) ap1=dendp(2).

magf_dB(1:pi/T). % PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T % pi/T = s=i*w. end % GRAFICOS ejew = linspace(0. POR ELLO % PARA EL DISE~NO FINAL EL PARAMETRO SE FIJA EN: alfa=0. % FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) % CONDICIONES: w^(-1)(infty) MAYOR QUE 1.5 for w = 0:pi/T % pi/T = s=i*w. z=exp(s). mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz))). p= (ap*s+bp)/(s^3+cp*s^2+dp*s). qtilde=(z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^2+b2*z+b3)*z*(1-k1)). W = G/abs(1-pn*qtilde).7. G = 0. magf_dB(w+1) = 20*log10(abs(f)). f = (1-alfa)*z/(z-alfa).pn.pi/T). W(0)^(-1) MAYOR QUE 0 % CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0.pi/T. q = qtilde*f. qtilde=(z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^2+b2*z+b3)*z*(1-k1)).7 Problemas Resueltos 383 % CALCULO DEL FILTRO PARA m=1: f(z)=(1-alfa)*z/(z-alfa). z=exp(s).33. f = (1-alfa)*z/(z-alfa). la = p . pnz = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3).1. pz = (bp1*z^2+bp2*z+bp3)/(z^3+ap1*z^2+ap2*z+ap3). pn=(an*s+bn)/(s^3+cn*s^2+dn*s).mag_dB(1:pi/T). % PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)). lmz = laz/pnz.’--’) ylabel(’Magnitudes en dB’) title(’ (a)’) xlabel(’Frecuencia angular (rad/s)’) . lm = la/pn. subplot(121) semilogx(ejew. % CUMPLE CONDICIONES DE ESTABILIDAD Y RENDIMIENTO % ROBUSTOS PERO REQUIERE DE UNA ENTRADA U MUY GRANDE.pnz.ejew. laz = pz .

.384 grid subplot(122) semilogx(ejew. que se desplaza a una velocidad v= 1 m/s constante.24(b) muestra la F.24(a). El objetivo de control es reducir la humedad h del material a granel de la tolva. La figura 3. El horno puede modelarse como n un proceso de primer orden.1.T del proceso. introduce el material a un horno de secado.2 El proceso reductor de humedad descrito en el problema 3. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la se˜al de voltaje vr .7 se muestra en la figura 3.M_dB(1:pi/T)) ylabel(’Magnitud de M en dB’) title(’ (b)’) xlabel(’Frecuencia angular grid print -f -deps p4rob1f print -s -deps p4rob1s (a) 40 5 Control Robusto (rad/s)’) (b) 30 0 20 Magnitud de M en dB 1 2 Magnitudes en dB −5 10 −10 0 −15 −10 0 10 10 Frecuencia angular 10 (rad/s) −20 0 10 10 Frecuencia angular 1 10 (rad/s) 2 Figura 7. a Problema 7.11: Condici´n de estabilidad robusta (gr´fico de la izquierda) y o a rendimiento robusto (gr´fico de la derecha) para el problema 7. La banda transportadora.

s+bn s3+cn.5 Deflector (rad) 1 0.s+bp s3+cp.13: Angulo de inclinaci´n (salida controlada) y angulo del deflector o ´ de elevaci´n (se˜al de control) para el problema 7.1).5 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 ´ Figura 7. (1−k1)*b1z4+(1−k1)*b2z3+(1−k1)*b3z2 Controlador q~ u_p4rob1 Control u u ap.2 0.1 0.7.1.s2+dp.5 0 −0.7 Problemas Resueltos 385 + − S1 Referencia (1−alfa)z z−alfa Filtro z4+(a1−k1)z 3+(a2−a1*k1)z 2+(a3−a2*k1)z−a3*k1 .05 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 1.s Modelo nominal pn(s) y_p4rob1 Salida y Mux Graph Mux − + S2 Figura 7.12: Diagrama de bloques para simular el sistema de control robusto con modelo interno (problema 7. 0.15 0.s 2+dn. o n .25 Inclinación (rad) 0.s Proceso p(s) an.

T. % p=K*exp(-Tp*s)/(s^2+a*s+b) % MODELO NOMINAL DISCRETO pnz(z) T = 0. a=1. % z = exp(T*s) => exp(Tn*s)=z^(Tn/T)=z^18 [numd.dendp] = c2dm(nump. Asuma como valor nominal Tn = 9 s y como tiempo muerto del proceso Tp = 11 s.m). La selecci´n del tiempo de muestreo es a conveniencia o del dise˜o. z = exp(T*s) => exp(Tp*s)=z^(Tp/T)=z^22 [numdp.5. El sistema dise˜ado debe a o n ser del tipo m = 1. % DESEAMOS ROBUSTEZ EN EL TIEMPO MUERTO CON RANGO: Tn=9. n El resultado de la simulaci´n se muestra en la figura 7. denp=[1 a b]. % pn=K*exp(-Tn*s)/(s^2+a*s+b) nump=[0 0 K]. % numdp(z)/dendp(z)=(bp1*z+bp2)/(z^2+ap1*z+ap2) ap1=dendp(2).5.dend] = c2dm(numn.T.2 clear all % FT (FUNCION DE TRANSFERENCIA) DEL PROCESO % vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FT K=10. Tp=11. tal como se aprecia en la figura 7. Realizar el c´lculo del controlador para una entrada v escal´n. % (n: NOMINAL. n Soluci´n: El programa p10rob1.5.5.denn. El unico par´metro ´ a incierto a considerar es el tiempo muerto v/d. La figura 7. Las especificaciones de dise˜o son: tiempo de estabilizaci´n menor que 40 s. a2=dend(3).16.denp. error en estado n o estacionario nulo y porcentaje de sobreimpulso menor al 5 %. .’zoh’). % numD(z)/denD(z)=pnz(z)=z^(-Tn/T)*numd(z)/dend(z) % pnz(z) = z^(-Tn/T)*(b1*z+b2)/(z^2+a1*z+a2) % = (b1*z+b2)/(z^20+a1*z^19+a2*z^18) % PROCESO DISCRETO pz(z) % T = 0.386 Control Robusto Dise˜ar un sistema de control robusto con modelo interno para controlar n la humedad del material en la banda transportadora. % p10rob1. p: PROCESO) numn=[0 0 K].16 (obtenida con el o archivo p10rob1r.’zoh’).m) es el diagrama de bloques empleado en la simulaci´n del siso tema dise˜ado y requiere previamente que se ejecute el programa p10rob1. ap2=dendp(3). El sistema dise˜ado cumple los requerimientos de esn tabilidad y rendimiento robustos.m SOLUCION AL PROBLEMA 7. b1=numd(2). b=0.m detalla el procedimiento para dise˜ar el o n controlador robusto cuando la entrada v es un escal´n. b2=numd(3). % numd(z)/dend(z)=(b1*z+b2)/(z^2+a1*z+a2) a1=dend(2).m. denn=[1 a b].15 (archio vo p10rob1s. Asumir: ¯m (ω) ≈ | m (eiω )| y ¯a (ω) ≈ | a (ω)|.

k1=-0. mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz))). LUEGO pA=z^(-N) Y pM=pnz/pA=z^19*(b1*z+b2)/(z^20+a1*z^19+a2*z^18) DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON: SE SABE POR EJERCICIOS ANTERIORES QUE vA=1.pnz. rho=1. z=exp(s). laz = pz . for w = 0:pi/T % pi/T = s=i*w. f = (1-alfa)*z/(z-alfa). bp2=numdp(3).1353. (z*(b1*z^20+b2*z^19)*(1-k1)). CALCULO DE qtilde=qtilde_H*qtilde_*B(z) (PARA m=1): PARA QUE EL SISTEMA SEA DEL TIPO m=1. pn=K*exp(-Tn*s)/(s^2+a*s^2+b*s).7 Problemas Resueltos bp1=numdp(2).1353 Y SUSTITUIRLO CON z=0. B(z)=1. pnz = (b1*z+b2)/(z^(Tn/T)*(z^2+a1*z+a2)). qtilde_H=(z^20+a1*z^19+a2*z^18)/(b1*z^20+b2*z^19) CALCULO DE qtilde_: (b1*z^4+b2*z^3)=z^3*(b1*z+b2) => CANCELAR z=-b2/b1=-0. CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) CONDICIONES: W^(-1)(infty) MAYOR QUE 1. vM=z/(z-1) CALCULO DE qtilde_H=(pM(z))^(-1): SEGUN TABLA. magf_dB(w+1) = 20*log10(abs(f)).7.. ENTONCES N=19. ESTO ES. W(0)^(-1) MAYOR QUE 0 % CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0.1353. Y qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1) k1=-0. % numDp(z)/denDp(z)=pz(z)=z^(-Tp/T)*numdp(z)/dendp(z) % pz(z) = z^(-Tp/T)*(bp1*z+bp2)/(z^2+ap1*z+ap2) % = (bp1*z+bp2)/(z^24+a1*z^23+a2*z^22) % % % % % % % % % % % % % % % % % % % % 387 DETERMINACION DE pnz(z)=pA(z)*pM(z): roots(numD): -0. . ENTONCES: qtilde=qtilde_H*qtilde_= (z^20+a1*z^19+a2*z^18)*(z-k1)/(z*(b1*z^20+b2*z^19)*(1-k1)) CALCULO DEL FILTRO CON m=1: f(z)=(1-alfa)*z/(z-alfa). pz = (bp1*z+bp2)/(z^(Tp/T)*(z^2+ap1*z+ap2)).. p= K*exp(-Tp*s)/(s^2+a*s^2+b*s).95. lmz = laz/pnz.1353 COMO pnz NO POSEE CEROS FUERA DEL CIRCULO UNITARIO (CU) Y COMO z^N*pnz DEBE SER SEMIPROPIO. qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/.

Para garantizar a los pasajeros un viaje confortable.ejew.9. grid ylabel(’Magnitud de M en dB’) title(’ (b)’) xlabel(’Frecuencia angular (rad/s)’) print -f -deps p10rob1f print -s -deps p10rob1s Problema 7.mag_dB(1:pi/T). El error en estado estable debe ser nulo. G = 0.3 La figura 3. grid ylabel(’Magnitudes en dB’) title(’ (a)’) xlabel(’Frecuencia angular (rad/s)’) subplot(122) semilogx(ejew. f = (1-alfa)*z/(z-alfa).’--’). (z*(b1*z^20+b2*z^19)*(1-k1)). % PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)). qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/. los cambios de velocidad deben realizarse con un tiempo de estabilizaci´n menor que 6 segundos y o con m´ ınimo sobreimpulso. q = qtilde*f. W = G/abs(1-pn*qtilde)...388 Control Robusto % PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w. p= K*exp(-Tp*s)/(s^2+a*s^2+b*s).20 muestra un monorriel de dos carros descrito en el problema 3. z=exp(s).pi/T. end % GRAFICOS ejew = linspace(0. El problema a resolver es el control de velocidad del carro de m´quinas a mediante un sistema de control robusto empleando modelo interno. lm = la/pn.magf_dB(1:pi/T).5.pi/T). la = p . Tener . pn=K*exp(-Tn*s)/(s^2+a*s^2+b*s).pn. subplot(121) semilogx(ejew.M_dB(1:pi/T)).

z 20 +b2. a + − S1 Referencia z20 +a1. b1.15: Diagrama de bloques para simular el sistema de control robusto con modelo interno (problema 7.7 Problemas Resueltos 389 (a) 15 10 0 5 0 −5 −10 −15 −20 −25 −10 −30 −35 0 10 Frecuencia angular (rad/s) −12 0 10 Magnitud de M en dB Magnitudes en dB −2 2 (b) −4 −6 −8 10 1 10 Frecuencia angular (rad/s) 1 Figura 7.z 18.z19 Controlador q~H (1−alfa)z z−alfa Filtro u K s2+as+b Proceso p(s) K s2+as+b Tp Mux Graph Mux y_p10rob Salida y − + S2 z−k1 (1−k1)z Controllador q~_ Modelo nominal pn(s) Tn u_p10rob Control u Figura 7.2.14: Condici´n de estabilidad robusta (gr´fico de la izquierda) y o a rendimiento robusto (gr´fico de la derecha) para el problema 7.z 19 +a2.7.) .2.

El sistema dise˜ado cumple los requerimientos de estabilidad y rendimiento robustos. en cuenta que debido al peso de los pasajeros. La selecci´n del tiempo de muestreo es a conveniencia del dise˜o.m SOLUCION AL PROBLEMA 7. M2=3200.2. . M3=3200 (CARROS CON PASAJEROS). n tal como se puede apreciar en la figura 7.390 Control Robusto 1 Humedad 0.19 (obtenida con el archivo p7rob1r. M1=1300.m muestra el rango de variaci´n de tales o o masas y detalla el procedimiento para dise˜ar el controlador robusto cuando n la entrada v es un escal´n. El resultado de la simulaci´n o se muestra en la figura 7. Realizar el c´lculo del o a controlador para una entrada v escal´n.3 clear all % ROBUSTEZ EN LOS PESOS M2 Y M3 DADO QUE VARIAN CON EL PESO % PROCESO: M2=3200. % p7rob1.m. podemos considerar un rango de variaci´n en la masa de los carros de pasajeros. K12=100000.16: Flujo calor´ ıfico (se˜al de control) y humedad sensada (salida n controlada) para el problema 7.02 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100 Figura 7.m).18 (archivo p7rob1s.m) es el diagrama o de bloques empleado en la simulaci´n del sistema dise˜ado y requiere previo n amente que se ejecute el programa p7rob1. M3=3200.5 0 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100 0. o n ¯m (ω) ≈ | m (eiω )| y ¯a (ω) ≈ | a (ω)|.17.02 0 −0. El sistema dise˜ado debe ser del tipo o n m = 1. K23=100000. La figura 7.06 Flujo calorífico 0. Asumir: Soluci´n: El programa p7rob1.04 0.

D]=c2dm(A. bz3 = numz(4). MODELO NOMINAL DEL PROCESO: M2=2600.T.C. 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]. B1=5000.7. bz6 = numz(7).H. bp6=nump(7). B23=500. az3 = denz(4). bn5=numn(6). bz1 = numz(2).C. ap4=denp(5).denn]=ss2tf(A. bn3=numn(4).B. B2=10000. B3=10000. M1=1300. numz/denz=pz=(bz1*z^5+bz2*z^4+bz3*z^3+bz4*z^2*bz5*z+bz6)/. PROCESO DISCRETO T = 0. (s^6+ap1*s^5+ap2*s^4+ap3*s^3+ap4*s^2+ap5*s+ap6). an2=denn(3). M2=2600.denp]=ss2tf(A. B1=5000. B3=10000.B. % PERIODO DE MUESTREO [G. az4 = denz(5). M3=2600. K12=100000.2. [numn... p=(bp1*s^5+bp2*s^4+bp3*s^3+bp4*s^2+bp5*s+bp6)/. alfa = 1. az5 = denz(6). % CONSTANTE TACOMETRICA C=[0 alfa 0 0 0 0].. [numz. ap6=denp(7). B23=500. M3=2600.B. az6 = denz(7). 391 % % % % % % % .C. [nump. D=[0]. an1=denn(2). pn=(bn1*s^5+bn2*s^4+bn3*s^3+bn4*s^2+bn5*s+bn6)/.C.7 Problemas Resueltos B12=500. ap1=denp(2). 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]. bp2=nump(3). an5=denn(6). bn1=numn(2). ap5=denp(6). bn6=numn(7). bp4=nump(5). B12=500. bz5 = numz(6).. bn4=numn(5). (z^6+az1*z^5+az2*z^4+az3*z^3+az4*z^2+az5*z+az6).H.’zoh’).D). az2 = denz(3). bz2 = numz(3). K23=100000.D). az1 = denz(2). % CONSTANTE TACOMETRICA C=[0 alfa 0 0 0 0]. bz4 = numz(5). bp5=nump(6). an4=denn(5). bp1=nump(2). B2=10000. an3=denn(4). ap3=denp(4). ap2=denp(3). D=[0]. an6=denn(7). B=[0 1 0 0 0 0]’.C.D).denz]=ss2tf(G. B=[0 1 0 0 0 0]’. alfa = 1...D. bp3=nump(4). bn2=numn(3).

5702i.4916 + 0.’zoh’).2. b5 = num(6).4916 .D. COMO bp=bv=1. LUEGO: % pM=pnz/pA=z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/. ENTONCES bv(z)=1 % CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}*: % NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1.4604i. qtilde=qtilde_H*qtilde_= % % % % .0. a6 = den(7)..H. m1=1 (MULTIPLICIDAD) y B(z)=b0=1. b3 = num(4).T. b2 = num(3).C. -0. b4 = num(5).0. a2 = den(3). % DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON: % SE SABE POR EJEMPLOS ANTERIORES QUE: vA=1.5702i.0000 r=2 POLOS DE qtilde_H CON PARTE REAL NEGATIVA. % qtilde_H=pM^(-1)=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)/.den]=ss2tf(G. vM=z/(z-1) % DETERMINACION DE bv(z) % COMO v(z) NO POSEE POLOS FUERA DEL CU. % (z*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)).2943 . *(z-kr)/(1-kr)): roots([b1 b2 b3 b4 b5 b6]): -0.. a4 = den(5).C.. k2=k1 => qtilde_=z^(-2)*(z-k1)^2/(1-k1)^2 k1=-0. b1 = num(2). % num/den=pnz=(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/... b6 = num(7).2943. % (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6).B. % (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6).4604i. a5 = den(6)..D]=c2dm(A.392 Control Robusto % (s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6). % MODELO NOMINAL DISCRETO T = 0. 0.D).H. a3 = den(4)..C.. % % % % % CALCULO DE qtilde_= z^(-r)*((z-k1)/(1-k1)* . k1=-0. 1. 0. a1 = den(2). [num. CALCULO DE qtilde=qtilde_H*qtilde_*B(z): EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES ES: (z-piz)=(z-1) => z=piz=1. % PERIODO DE MUESTREO [G. % DETERMINAION DE bp(z) % roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL % CU (CIRCULO UNITARIO) => bp(z)=1 % CALCULO DE pnz(z)=pA(z)*pM(z): % z^N*pnz DEBE SE SEMIPROPIO.2943.2943 + 0. ENTONCES N=1 Y pA=z^(-1).

% (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2)...8. mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz))).. (z^6+az1*z^5+az2*z^4+az3*z^3+az4*z^2+az5*z+az6).72. W(0)^(-1) MAYOR QUE 0 % CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0. (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2). laz = pz .. lm = la/pn.pn. for w = 0:pi/T % pi/T = s=i*w. z=exp(s).. lmz = laz/pnz. (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6). magf_dB(w+1) = 20*log10(abs(f))..7... % PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)). q = qtilde*f. (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2). pn=(bn1*s^5+bn2*s^4+bn3*s^3+bn4*s^2+bn5*s+bn6)/. W = G/abs(1-pn*qtilde).. z=exp(s). pz=(bz1*z^5+bz2*z^4+bz3*z^3+bz4*z^2*bz5*z+bz6)/.pnz. la = p . f = (1-alfa)*z/(z-alfa)... % PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w.7 Problemas Resueltos % (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/. p=(bp1*s^5+bp2*s^4+bp3*s^3+bp4*s^2+bp5*s+bp6)/. end % CALCULO DEL CONTROLADOR c=q/(1-pnz*q) .. G = 0. (s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6). qtilde=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/. qtilde=(z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/. f = (1-alfa)*z/(z-alfa).. 393 % CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) % CONDICIONES: w^(-1)(infty) MAYOR QUE 1.. pnz=(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)/. % DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa). (s^6+ap1*s^5+ap2*s^4+ap3*s^3+ap4*s^2+ap5*s+ap6).

3. grid ylabel(’Magnitud de M en dB’).den1). subplot(121) semilogx(ejew.pi/T. [(1-k1)^2 -((1-k1)^2*alfa+(1-alfa)) (1-alfa)*2*k1 -(1-alfa)*k1^2].17: Condici´n de estabilidad robusta (gr´fico de la izquierda) y o a rendimiento robusto (gr´fico de la derecha) para el problema 7.den1).num.num1).394 Control Robusto % NOTAR QUE q*pnz=(z-k1)^2*(1-alfa)/(z^2*(1-k1)^2*(z-alfa)) num1=(1-alfa)*[1 -2*k1 k1^2]. % GRAFICOS ejew = linspace(0. title(’ (b)’) xlabel(’Frecuencia angular (rad/s)’) print -f -deps p7rob1f print -s -deps p7rob1s (a) 40 0 −1 30 −2 −3 Magnitud de M en dB 20 Magnitudes en dB −4 −5 −6 −7 −8 −10 −9 −20 0 10 −10 0 10 (b) 10 0 10 Frecuencia angular 1 10 (rad/s) 2 10 Frecuencia angular 1 10 (rad/s) 2 Figura 7.M_dB(1:pi/T)).magf_dB(1:pi/T).denc]=series(den.mag_dB(1:pi/T).pi/T). [numc. % numc=conv(den.. denc=conv(num. title(’ (a)’) xlabel(’Frecuencia angular (rad/s)’) subplot(122) semilogx(ejew.’--’). den1= .. a .ejew. grid ylabel(’Magnitudes en dB’).num1.

19: Velocidad del carro de m´quinas y fuerza de control para el a problema 7. 15 Velocidad (m/s) 10 5 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 300 250 Fuerza (N) 200 150 100 50 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Figura 7.7 Problemas Resueltos 395 + r − S1 numc(z) denc(z) Controlador c(z) u_p7rob1 .7.3. .3. Control u u nump(s) denp(s) Proceso p(s) y Mux Graph Mux y_p7rob1 Salida y Figura 7.18: Diagrama de bloques para simular el sistema de control robusto con modelo interno del problema 7.

az3=denz(4). .0. Sin embargo.m. [nump.D]=c2dm(Ac. bz3=numz(4).0].Bc. % PROCESO DISCRETO T = 0.22 muestra el proceso ascensor tratado en el problema 3. bz1 = numz(2).22 (obtenio da con el archivo p8rob1r. para este problema considere que el actuador posee la siguiente funci´n de transferencia: o Ka x1 (s) = . az2 = denz(3). bz2 = numz(3).4 Control Robusto La figura 3. v(s) s + 0.2 0. bp3=nump(4). lo que significa sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizaci´n menor que 8 s.T.m).H.m) es el diagrama de bloques empleado en la simulaci´n o del sistema dise˜ado y requiere pque reviamente se ejecute el programa de n p8rob1. El resultado de la simulaci´n se muestra en la figura 7.Dc). Asumir: n y ¯a (ω) ≈ | a (ω)|. La figura 7.008 ≤ Ka ≤ 0. % TIEMPO DE MUESTREO [G.m SOLUCION AL PROBLEMA 7.4 clear all % PROCESO Ac = [-0. Cc = [0 1 0 0]. ap4=denp(5). La selecci´n del o n o ¯m (ω) ≈ | m (eiω )| tiempo de muestreo es a conveniencia del dise˜ o. bp4=nump(5).0. bp2=nump(3).Dc. % p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s). % p8rob1. Dise˜ar un sistema de control robusto que cumpla las esn pecificaciones pedidas.D).8.396 Problema 7. Dc = [0]. tal como se aprecia en la figura 7. [numz. la se˜al de control debe estar dentro del rango n de ± 200 volt. Para no saturar al actuador (un o amplificador de potencia).5 0 0 -5].21 o (archivo p8rob1s. Soluci´n: El programa p8rob1.C.Bc. bz4=numz(5). El sistema dise˜ado cumple los requerimientos n de estabilidad y rendimiento robustos. ap3=denp(4). Realizar el c´lculo del controlador para una entrada a v escal´n.denz]=ss2tf(G.2 0 -2 0. El sistema dise˜ado debe ser del tipo m = 1.m detalla el procedimiento para dise˜ar o n el controlador robusto cuando la entrada v es un escal´n.denp]=ss2tf(Ac.C.20. ap1=denp(2). az1 = denz(2).Cc. az4=denz(5).012 El problema a resolver es posicionar suavemente el ascensor en un piso determinado.012. Bc = [0.’zoh’).Cc.H.6.1 0 0 0.2 0 0 0. ap2=denp(3).

C.. qtilde=qtilde_H*qtilde_= (z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/. % DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA ENTRADA ESCALON: % SE SABE POR EJEMPLOS ANTERIORES QUE vA=1 Y vM=z/(z-1) % % % % % % % % % % % % % % DETERMINACION DE bV(z): COMO v(z) NO POSEE POLOS FUERA DEL CU. bv(z)=1 CALCULO DE qtilde_H=z*bp*(pM*bv*vM)^(-1){(z*bp*pA)^(-1)*vM}* NOTAR QUE pnz(z) Y v(z) POSEEN 1 POLO EN z=1. *(z-kr)/(1-kr)) rr=roots([b1 b2 b3 b4]). % (z^4+a1*z^3+a2*z^2+a3*z+a4).0]. % MODELO NOMINAL DISCRETO T = 0. b2 = num(3). Cc = [0 1 0 0]. an3=denn(4). a4=den(5).Dc). a3=den(4).Bc. [numn. bn4=numn(5)..C. ENTONCES N=1 Y pA=z^(-1). Dc = [0].2 0 -2 0.Bc.2 0 0 0.T.. % (z^4+a1*z^3+a2*z^2+a3*z+a4).Dc. % (z^4+az1*z^3+az2*z^2+az3*z+az4). k1=rr(1).D). bn3=numn(4).. [num. a2 = den(3). bn2=numn(3)..denn]=ss2tf(Ac.H. % pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s). COMO bp=bv=1: qtilde_H=pM^(-1)=(z^4+a1*z^3+a2*z^2+a3*z+a4)/. z*(b1*z^3+b2*z^2+b3*z+b4). r=1 POLOS DE qtilde_H CON PARTE REAL NEGATIVA. % TIEMPO DE MUESTREO [G.den]=ss2tf(G.008.8.’zoh’).0.0.... b3=num(4). an2=denn(3). => qtilde_=z^(-1)*(z-k1)/(1-k1)=(z-k1)/(z*(1-k1)) CALCULO DE qtilde=qtilde_H*qtilde_*B(z) EL MINIMO COMUN DENOMINADOR DE pnz Y v CON RAICES INESTABLES ES: (z-piz)=(z-1) => z=piz=1. Bc = [0.7 Problemas Resueltos 397 % numz/denz=pz=(bz1*z^3+bz2*z^2+bz3*z+bz4*z)/. an1=denn(2). a1 = den(2). CALCULO DE qtilde_= z^(-r)*((z-k1)/(1-k1)* . % num/den=pnz=(b1*z^3+b2*z^2+b3*z+b4*z)/. b1 = num(2).. LUEGO: % pM=pnz/pA=z*(b1*z^3+b2*z^2+b3*z+b4*z)/. MULTIPLICIDAD m1=1 Y B(z)=b0=1.H. % DETERMINAION DE bp(z) % roots(den): pn(z) POSEE 1 POLO EN z=1 Y NINGUNO FUERA DEL % CIRCULO UNITARIO => bp(z)=1 % CALCULO DE pnz(z)=pA(z)*pM(z): % z^N*pnz DEBE SER SEMIPROPIO.1 0 0 0. b4=num(5)..D]=c2dm(Ac.7.Cc. % PROCESO NOMINAL Ac = [-0. ..5 0 0 -5].Cc..

magf_dB(w+1) = 20*log10(abs(f)). (z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4)). qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/. z=exp(s). end CALCULO DEL CONTROLADOR c=q/(1-pnz*q) NOTAR QUE q*pnz=(z-k1)*(1-alfa)/(z*(1-k1)*(z-alfa)) num1=(1-alfa)*[1 -k1]. la = p . z=exp(s). (z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4)).pi/T. para estabilidad robusta: magf_dB(w+1) < mag_dB(w+1) end CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w.num.pnz. denc=conv(num. G = 0.den1).den1).num1). mag_dB(w+1) = -20*log10(abs(pnz*qtilde*lmz)). f = (1-alfa)*z/(z-alfa)..75. lm = la/pn.7.pn. pnz=(b1*z^3+b2*z^2+b3*z+b4)/(z^4+a1*z^3+a2*z^2+a3*z+a4). laz = pz ... for w = 0:pi/T s=i*w. PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)). pz=(bz1*z^3+bz2*z^2+bz3*z+bz4)/(z^4+az1*z^3+az2*z^2+az3*z+az4). W(0)^(-1) MAYOR QUE 0 CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0. W = G/abs(1-pn*qtilde).398 % % % % % % Control Robusto (z^2*(1-k1)*(b1*z^3+b2*z^2+b3*z+b4*z)). % % % % % % % . f = (1-alfa)*z/(z-alfa). numc=conv(den. qtilde=(z^4+a1*z^3+a2*z^2+a3*z+a4)*(z-k1)/. q = qtilde*f. CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) CONDICIONES: w^(-1)(infty) MAYOR QUE 1. den1=[(1-k1) -((1-k1)*alfa+(1-alfa)) (1-alfa)*k1]. GRAFICOS ejew = linspace(0. lmz = laz/pnz.pi/T). DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa). pn=(bn2*s^2+bn3*s+bn4)/(s^4+an1*s^3+an2*s^2+an3*s).num1. p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s).. [numc.denc]=series(den.

M_dB(1:pi/T)).20: Condici´n de estabilidad robusta (gr´fico de la izquierda) y o a rendimiento robusto (gr´fico de la derecha) para el problema 7. grid ylabel(’Magnitud de M en dB’).5 El problema 3.8. grid ylabel(’Magnitudes en dB’).5 −2 −2.1 describe en detalle las ecuaciones que gobiernan la din´mica a del sistema de suspensi´n de un bus (ver figura 3. a 7.5 −3 −3.5 0 10 Frecuencia angular (rad/s) (b) 399 0 −5 10 1 10 1 Figura 7.mag_dB(1:pi/T).12).magf_dB(1:pi/T).ejew. title(’ (b)’) xlabel(’Frecuencia angular (rad/s)’) print -f -deps p8rob1f print -s -deps p8rob1s (a) 15 0.4. Problemas Propuestos Problema 7. Dise˜ar un sistema de o n control robusto con modelo interno para lograr el objetivo de control que se formula a continuaci´n.’--’).5 0 10 −0.5 −10 −4 −15 0 10 Frecuencia angular (rad/s) −4.8 Problemas Propuestos subplot(121) semilogx(ejew.5 −1 Magnitud de M en dB 5 Magnitudes en dB −1. title(’ (a)’) xlabel(’Frecuencia angular (rad/s)’) subplot(122) semilogx(ejew. La salida del proceso y = x2 −x1 (referencia nula) no o .7.

las oscilaciones originadas por un disturbio escal´n de 10 cm o provocada por imperfecciones en la pista. pr´cticamente deben desaparecer.22: Posici´n del ascensor y fuerza de control (problema 7. Realizar el c´lculo a del controlador para una entrada v escal´n.4.400 Control Robusto + r − S1 numc(z) denc(z) Controlador c(z) u_p8rob1 u nump(s) denp(s) Proceso p(s) y Mux Graph Mux y_p8rob1 Salida y . la que sin pasajeros es a de m1 = 2500 kg y lleno de pasajeros cambia a 3500 kg. Luego de aproximadamente 20 segundos. o debe presentar sobreimpulsos mayores que 5 %. .4). El sistema dise˜ado debe ser del o n tipo m=1. Control u Figura 7. 3 2. Seleccionar un tiempo de muestreo conveniente.21: Diagrama de bloques para simular el sistema de control robusto con modelo interno del problema 7.5 1 0.5 Posición (m) 2 1. a El par´metro incierto del proceso es la masa del bus.5 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 200 Voltaje de control 150 100 50 0 −50 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Figura 7.

El voltaje de control no debe sobrepasar los ± 40 voltios y la masa de la bola puede variar en ± 15 %.1.8 Problemas Propuestos Problema 7. n . Realizar el c´lculo del controlador para una entrada v escal´n. El flujo de entrada (la se˜al de control) n 3 /s. Evidentemente. El par´metro a incierto es la inercia J de la carga que puede variar en ± 12 %.7.8 El problema 3.2 muestra dos tanques id´nticos colocados en cascada. sobreimpulso menor al n o 5 % y error nulo en estado estable. La selecci´n del tiempo de muestreo es a conveniencia del o dise˜o.16. Las especificaciones de dise˜o son: tiempo de estabilizaci´n menor que 15 s.3 describe el proceso de la bola rodando a lo largo de una barra con un grado de libertad.6 401 La figura 2.8. la oscilaci´n o de la bola debe estar restringida sobre la barra. El sistema dise˜ado debe ser del tipo m=1 y la o n selecci´n del tiempo de muestreo es a conveniencia del dise˜o.7 El proceso electromec´nico mostrado en la figura 3. El objetivo de control horizontal A=9 m es controlar la altura H2 empleando el flujo Qo . a Dise˜ar un sistema de control robusto que pueda posicionar la bola a 0. La secci´n e o 2 de cada tanque es constante. El sistema a o dise˜ado debe ser del tipo m = 1 y la selecci´n del tiempo de muestreo es a n o conveniencia del dise˜o. La salida cono n trolada no debe presentar sobreimpulso ni error estacionario. Dise˜ar un sistema de control robusto con modelo interno para n controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre ± 100 volt. n Problema 7. La deducci´n del modelo o linealizado del proceso se describe en el ejemplo 2. El sistema dise˜ado debe ser o n del tipo m = 1. Problema 7. Realizar el c´lculo del controlador a para una entrada v escal´n. tal como se muestra en la figura 3.5 m n de un extremo de la barra de 1 m de longitud.26 se describe en el proa blema 3. Realizar el c´lculo a del controlador para una entrada v escal´n. Una leva conecta la barra con un engranaje que est´ accionado por un servomotor. Dise˜ ar un controlador robusto con modelo no debe sobrepasar los 3 m n interno que logre cumplir los requerimientos anteriores.

a Dise˜ar un sistema de control robusto con modelo interno para controlar n . Considerar que todos los n par´metros poseen incertidumbre de ± 5 %. a Problema 7. Realizar el c´lculo del controlador para una entrada v escal´n. o Las ecuaciones que describen la din´mica del sistema fueron requeridas en a el problema 3. Problema 7. El acoplamiento entre o e o los dos p´ndulos de igual longitud no es flexible.9 Control Robusto Las ecuaciones del modelo linealizado para controlar la posici´n del ca˜on o n´ montado en la torreta de un tanque (ver figura 3.13.402 Problema 7. Los disturbios tipo escal´n pueden actuar o simult´neamente o no y pueden ser positivos o negativos. Considerar (a su criterio) variaciones en la carga adicional Mo . pero en este caso para controlar el ´ngulo azimutal.31 muestra el proceso servomotor con carga no lineal descrito en la secci´n 3.12. Dise˜ar un sistema de control robusto con modelo interno n para controlar simult´neamente las posiciones θ y τ con m´ a ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso. m´ o ınimo sobreimpulso y error en estado estacionario nulo. a (b) Lo mismo que (a). y (b) cuando no lo es.1. La uni´n de la carga con el eje del servomotor no es flexible. el sistema de control dise˜ ado debe ser capaz de minimizar sus n efectos.28) empleando un actuador hidr´ulico se detallan en el problema 3. a o El sistema dise˜ado debe ser del tipo m = 1 y la selecci´n del tiempo n o de muestreo es a conveniencia del dise˜o.10 La figura 3. a (a) Dise˜ar un sistema de control robusto con modelo interno para conn trolar el angulo de elevaci´n θ con las especificaciones siguientes: tiem´ o po de estabilizaci´n menor que 8 s. en donde la carga no lineal posee ahora dos grados de libertad o con Lo = 2L1 /3. Considerar dos casos: (a) n cuando la inductancia de armadura es despreciable.32 muestra el proceso p´ndulo doble no lineal que es una exe tensi´n del p´ndulo simple descrito en la secci´n 3.9. Las ecuaciones que dese criben la din´mica del sistema son materia del problema propuesto 3.11 La figura 3. El sistema dise˜ado debe ser del tipo m = 1 y la selecci´n del o n o tiempo de muestreo es a conveniencia del dise˜ o. Para cada a caso. Realizar el c´lculo del controlador para una entrada a v escal´n.3.

El acoplamiento o u o entre los dos p´ndulos de igual longitud no es flexible.12 La figura 3.8 Problemas Propuestos 403 simult´neamente las posiciones θ y τ con m´ a ınimo tiempo de estabilizaci´n o y m´ ınimo sobreimpulso. Las ecuaciones que e describen la din´mica del sistema son materia del problema propuesto 3.33 muestra el proceso doble gr´a-puente no lineal que es una exu tensi´n del proceso gr´a-puente descrito en la secci´n 3. Considerar una incertidumbre de ± 5 % en todos los par´metros. de modo tal que la doble gr´a puente permanezca en u posici´n vertical cuando el carro realiza un recorrido predeterminado. n Problema 7. a o El sistema dise˜ado debe ser del tipo m = 1 y la selecci´n del tiempo de n o muestreo es a conveniencia del dise˜o.1 muestra un carro de masa m = 1000 kg desplaz´ndose con una a velocidad v gracias a la acci´n de la fuerza u producida por su motor. ˙ v= ˙ dv dt Dise˜ar un sistema de control robusto con modelo interno para controlar la n velocidad del m´vil con m´ o ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso.02 kg var´ en ± 6 %. n Problema 7. o donde b= 50 N-s/m es el coeficiente de fricci´n. Realizar el e ıa c´lculo del controlador para una entrada v escal´n. Cono siderar que la carga adicional esf´rica de 0.2. a Realizar el c´lculo del controlador para una entrada v escal´n. Si se o desprecia la inercia de las ruedas y se asume que la fuerza de fricci´n bv.16): mv(t) + bv(t) = u(t). a Dise˜ar un sistema de control robusto con modelo interno para controlar n simult´neamente las posiciones θ y τ con m´ a ınimo tiempo de estabilizaci´n y o m´ ınimo sobreimpulso. es lo unico que se opone o ´ al movimiento del carro.14. Considerar que la carga adicional esf´rica de 0. El sistema a o dise˜ado debe ser del tipo m = 1 y la selecci´n del tiempo de muestreo es a n o conveniencia del dise˜o. El sistema dise˜ado debe a o n ser del tipo m = 1 y la selecci´n del tiempo de muestreo es a conveniencia o del dise˜o. Realizar el c´lculo del controlador para una entrada v escal´n.13 La figura 1. de modo tal que el p´ndulo doble permanezca en e posici´n vertical.02 kg var´ o e ıa en ± 6 %. entonces la din´mica del proceso puede modelarse a como (ver ejemplo 1. n .7.

3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. error en estado eso table menor al 1 % y sobreimpulso de la salida menor al 5 %. τs + 1 v(z) = z/τ . .14 Control Robusto El motor D. Realizar el c´lculo del a a controlador para una entrada v escal´n. Eso se aprecia en fajas transa o portadoras o en brazos manipuladores.C. pero en este caso para estabilizar la posici´n del eje del motor. mediante acoples adecuados a su eje.1. puede convertirse f´cilmente en movimiento de traslaci´n. n (b) Dise˜ar un sistema de control robusto con las especificaciones anterion res. o Problema 7.1 al 7.1 al 7.404 Problema 7. z − e−T //tau τ = 100T donde T es el tiempo de muestreo. (a) Dise˜ar un sistema de control robusto con modelo interno para estan bilizar la velocidad angular del eje del motor con las especificaciones siguientes: tiempo de estabilizaci´n menor que 4 s. Considere variaciones de ± 7 % en los par´metros b y J. Tomar como se˜al de referencia una rampa de n pendiente unitaria. La figura 4. s2 v(z) = Tz (z − 1)2 y el tipo del sistema es m=2. Las ecuaciones que gobiernan el comportamiento din´mico del motor fueron derivadas en a el ejemplo 4. El sistema dise˜ado debe ser o n del tipo m = 1 y la selecci´n del tiempo de muestreo es a conveniencia o del dise˜o. es un actuador muy popular en los sistemas de control porque su movimiento rotatorio.14 cuando la entrada v toma las formas: v(s) = 1 .15 Repetir los problemas 7.16 Repetir los problemas 7. Problema 7.14 cuando la entrada v toma las formas: v(s) = 1 .

simulaciones y software desarrollados se pueden descargar n del sitio: http://fiee. es linealizar (hallar un modelo lineal equio o valente) el proceso (parcial o totalmente. o bien. o La pen´ltima secci´n. de modo tal que el proceso resultante (su forma normal) nos permita aplicar t´cnicas de control lineal (en el caso de linealizaci´n completa del proe o ceso). problemas resueltos.edu.C. dise˜os. . En la ultima secci´n se pro´ o ponen proplemas de dise˜o. si fuera posible) mediante un cambio adecuado de coordenadas y una realimentaci´n del vector de estado de dicho o proceso. As´ podemos dise˜ar sistemas de control no lineal empleando diversas ı n t´cnicas tales como [13]: el m´todo directo de Liapunov.pe/728681F. La idea fundamental del control de procesos no lineales empleando la t´cnica e de linealizaci´n por realimentaci´n. el siguiente paso es encontrar un modelo que sea capaz de capturar la din´mica del proceso a en el rango de operaci´n. est´ dedicada al dise˜o de sisu o a n temas de control no lineal para diferentes procesos.. control deslizante. n problemas. sujeto a la acci´n de una carga no lineal y al efecto que o producen algunas no linealidades inherentes al proceso. e e control adaptivo (cap´ ıtulo 5) y linealizaci´n de la realimentaci´n (materia de o o este cap´ ıtulo). En realidad todos los procesos son no lineales y o muchas veces resulta m´s conveniente trabajar directamente con el modelo no a lineal.Cap´ ıtulo 8 Control No Lineal Luego de formulado el problema de control a resolver. atacar los problemas de control con un grado de dificultad menor (en el caso de linealizaci´n parcial). o El procedimiento de dise˜o sugerido se aplica al control no lineal de posici´n n o de un servomotor D. Todos los archivos correspondientes a los ejercicios. tales como saturaci´n o del amplificador y fricci´n de Coulomb.uni.

La notaci´n: o f : Rn → Rn (8.2) El jacobiano de f (x) tiene la forma:  ∇f = ∂f  = ∂x ∂f1 ∂x1 ··· ··· .1) indica que a cada funci´n vectorial f le corresponde un campo vectorial en el o e espacio n-dimensional Rn . nosotros podemos definir una nueva funci´n escalar Lf h = ∇h f denominada la derivada de Lie. o simplemente la o derivada direccional de h a lo largo de la direcci´n del vector f . . Por esta raz´n es e o o o que esas matem´ticas no se incluyeron como parte del cap´ a ıtulo 1. Herramientas Matem´ticas a Las herramientas matem´ticas a discutir corresponden a la geometr´ a ıa diferencial y a la topolog´ S´lo se tratan los puntos directamente involuıa. ∂f1 ∂xn    (8. . 2. . ∂h ∂xn (8. . . o Sucesivas derivadas de Lie pueden ser definidas recursivamente: L0 h = ∇h f 0 = h f Li h = Lf (Lf i−1 h) = ∇(Li−1 h) f .406 Control No Lineal 8. . Derivadas y Corchetes de Lie Definici´n 8. f f i = 1.1. la funci´n escalar Lg Lf h(x) o es: Lg Lf h(x) = ∇(Lf h) g (8.3) . . ∂fn ∂x1 ∂fn ∂xn 8.4) Del mismo modo.1. o Si h(x) es una funci´n escalar de variable vectorial suave. entonces su gradiente es: ∇h = ∂h = ∂x ∂h ∂x1 . Un campo vectorial f (x) es suave cuando tal funci´n vectorial posee infinitas derivadas parciales continuas. o crados con la t´cnica de linealizaci´n por realimentaci´n. Los campos vectoriales de inter´s para nosotros son los denominados suaves. donde x es el o vector de estado. si g es otro campo vectorial. . (8.5) .1. .1 Dada una funci´n escalar suave h(x) : Rn → R y un campo o o vectorial suave f (x) : Rn → Rn .

adf i−1 g]. Sucesivos corchetes de Lie se pueden definir recursivamente: adf 0 g = g adf i g = [f . El corchete de o Lie de f y g se define como un tercer campo vectorial de la forma: [f . a −2 + cosx1 x2 sinx1 −cosx1 acos(2x1 ) cosx1 cos(2x1 ) − 2sen(2x1 )(−2x1 + ax2 + senx1 ) .1 407 Determinar las dos primeras derivadas de Lie de la salida y para el proceso siguiente: x = f (x). . donde e ad significa adjunta. ˙ y = h(x) Soluci´n: Las derivadas de la salida son: o y= ˙ ∂h x = Lx h = Lf h ˙ ˙ ∂x ∂[Lf h] x = L2 h ˙ f ∂x y= ¨ Definici´n 8. g= 0 cos(2x1 ) i = 1. g] = − = 0 0 −2sin(2x1 ) 0 −2x1 + ax2 + senx1 −x2 cosx1 0 cos(2x1 ) −2x1 + ax2 + senx1 −x2 cosx1 . g] = ∇g f − ∇f g = adf g Observar que al corchete de Lie se le denota tambi´n como adf g. 2.1 Herramientas Matem´ticas a Ejemplo 8. donde: ˙ f= Soluci´n: o [f .2 Sean f y g dos campos vectoriales en Rn . g] para el proceso no lineal x = f (x) + gu.8. .2 Determinar [f . Ejemplo 8. .

El siguiente lema permite determinar difeomorfismos locales.2 Sea φ(x) una funci´n suave definida en una regi´n Ω en Rn . Bilinealidad: [α1 f1 + α2 f2 . o 8.1 Los corchetes de Lie satisfacen las propiedades siguientes: 1. o o Si el jacobiano ∇φ es no singular en un punto x = x de Ω. g] = α1 [f1 . g1 ] + α2 [f . Si φ(x) se define en una regi´n finita y o para un punto dado. f ] 3. g2 ] 2. Identidad de Jacobi: Ladf g h = Lf Lg h − Lg Lf h donde f . α1 g1 + α2 g2 ] = α1 [f . g] [f .3 Determinar el difeomorfismo local alrededor del origen para el sistema siguiente: z1 2x1 + 5x1 x2 2 = φ(x) = z2 3senx2 . Si Ω = Rn . Difeomorfismo y Transformaci´n de Estados o El concepto de difeomorfismo. entonces φ(¯) ¯ x define un difeomorfismo local en una regi´n de Ω. entonces el difeomorfismo es local. Anticonmutatividad: [f . g] = −[g. que puede ser visto como una generalizaci´n del concepto familiar de transformaci´n de coordenadas. g] + α2 [f2 . Lema 8. g1 y g2 son campos vectoriales. entonces φ(x) es un difeomorfismo global.2. f1 . es el sio o guiente: o Definici´n 8. g. α1 y α2 son constantes escalares y h(x) es una funci´n diferenciable. se deo o nomina un difeomorfismo si φ y su inversa son suaves.408 Control No Lineal Lema 8. o Ejemplo 8. f2 .3 Una funci´n φ: Rn → Rn definida en una regi´n Ω.1.

6) obtenemos: o o z = ˙ = ∂φ ∂x ∂φ ∂x x(t) ˙ x(t) ¯ f (x(t)) + x(t) ¯ ∂φ ∂x m gj (x(t))uj (t) x(t) j=1 ¯ (8. . (8. hp ]T corresponden a campos vectoriales infinitamente diferenciables. . xn (t)]T es el vector de estado del proceso de orden n. .1 Herramientas Matem´ticas a Soluci´n: El jacobiano de φ para x = (0. . . xn ) donde la funci´n de transformaci´n φ es invertible y tanto φ como su inversa o o o φ−1 son infinitamente diferenciables. .0) ¯ 409 2 0 0 3 que posee rango 2.1. . en t´rminos de un nuevo vector de estado. . . . tal como lo es el proceso original. e Empleando la transformaci´n z = φ(x) en la ecuaci´n (8. yp (t)]T es el vector de salida del proceso (la variable controlada) de orden p y las funciones f = [f1 . Asumamos la siguiente transformaci´n no lineal de estados: o   φ1 (x1 . gm ]T ] y h = [h1 .6) donde u(t) = [u1 (t). . .2. . . . . 0) es: o ¯ ∂φ = ∂x 2 + 5x2 10x1 x2 2 0 3cosx2 = x=(0. x(t) = [x1 (t). y(t) = [y1 (t). um (t)]T es el vector de control (la variable manipulada) del proceso de orden m. . . xn )   . . Transformaci´n no Lineal de Estados o Un difeomorfismo puede ser usado para transformar una representaci´n o no lineal en otra. Mientras que la propiedad de inversi´n o o de φ permite un retorno a los estados originales. indic´ndonos que φ posee inversa porque es no singular a y constituye un difeomorfismo local de acuerdo al lema 8.8) . . Notar que la transformaci´n dada en la ecuaci´n (8.7) z = φ(x) =   . .3. g = [g1 . φn (x1 . . . . . . . . . y(t) = h(x(t)) (8. fn ]T ].7) es un difeomorfismo.8. Consideremos e que el proceso no lineal sea descrito por la siguiente representaci´n en el o espacio de estado: m x = f (x(t)) + ˙ j=1 gj (x(t))uj (t). . . la propiedad de diferenciaci´n garantiza que la descripci´n del proceso con las nuevas coordenadas o o sea tambi´n infinitamente diferenciable. . 8. .

. hn−m (x) que satisfacen el siguiente sistema de ecuaciones diferenciales parciales: ∇hi fj = 0 donde 1 ≤ i ≤ n − m.4 Se dice que un conjunto linealmente independiente de camo o pos vectoriales [f1 . si y s´lo si existen funciones escalares αijk : Rn → Rn tales que: m [∇g f − ∇f g](x) = [f . 1 ≤ j ≤ m. lo que significa que su inversa existe.5 Se dice que un conjunto linealmente independiente de camo o pos vectoriales [f1 . e La definici´n anterior implica la existencia de n(m − n) ecuaciones difereno ciales parciales de la forma ∇hi fj = 0. ∀ i. . . .9) constituye un nuevo sistema no lineal con un vector de estado z. fm ] en Rn es completamente integrable. . 8. j . Antes de presentar el teorema en cuesti´n se requiere de las siguientes definiciones: o Definici´n 8. h2 (x). podemos obtener la siguiente representaci´n no lineal para el vector de estado z. El Teorema de Frobenius El teorema de Frobenius es una herramienta importante para el tratamiento formal de la linealizaci´n por realimentaci´n de procesos de orden n. . . fm ] en Rn es involutivo. Definici´n 8. los gradientes ∇hi son o tambi´n linealmente independientes. . . . g](x) = k=1 αijk (x)fk (x). En adici´n. .410 Control No Lineal donde x es un punto de equilibrio para el cual la matriz jacobiana es no ¯ singular. si y s´lo si existen (n − m) funciones escalares h1 (x).9) ˜(z) = f gj (z) = ˜ ∂φ f (φ−1 (z)) ∂x ∂φ gj (φ−1 (z)) ∂x ˜ h(z) = h(φ−1 (z)) Observar que (8. ˜ ˜ y(t) = h(z(t)) (8. como sigue: o m z = ˜(z(t)) + ˙ f j=1 gj (z(t))uj (t). Luego. Este o o teorema proporciona las condiciones necesarias y suficientes para resolver una clase especial de ecuaciones con derivadas parciales.4.1. .

implica que para todo i. . Si un conjunto de campos vectoriales [f1 . fm ] es involutivo. fm (x). son siempre involutivos puesto que: m [f . . . encontramos que: o [f1 . i. .8. g](x) = 0 = k=1 αijk (x)fk (x). . . fm ] un conjunto de campos vectoriales linealmente independientes. este conjunto de campos vectoriales es involutivo. j 2. f2 = [−x1 (x2 − 3x2 ) 3 2x3 ]T Determine si tal conjunto de ecuaciones diferenciales parciales es solucionable (o en otras palabras. j: rango [f1 (x). ∀ x. [fi . f2 ] = [−12x3 3 0]T Dado que [f1 . . Soluci´n: Operando. . Un conjunto compuesto por un solo campo vectorial f es involutivo porque [f . fj ]] Ahora s´ podemos formular el teorema de Frobenius: ı Teorema 8. .1 (Frobenius) Sea [f1 . f2 . f ] = 0.1 Herramientas Matem´ticas a 411 Ya vimos que la notaci´n [f . f2 ] = −3f1 + 0f2 .4 Considere el conjunto de ecuaciones diferenciales parciales: 4x3 −x1 ∂h ∂h − =0 ∂x1 ∂x2 ∂h ∂h ∂h + (x2 − 3x2 ) + 2x3 =0 3 ∂x1 ∂x2 ∂x3 donde sus campos vectoriales asociados poseen la forma: f1 = [4x3 −1 0]T . . Partiendo o de la definici´n anterior se puede deducir que: o 1. Por consiguiente. . . f2 ] es completamente integrable). . si fk y gk son constantes para cualquier k = 1. es decir. . . . . . g] es conocida como el corchete de Lie. las ecuaciones diferenciales parciales dadas son solucionables. 3. Los campos vectoriales constantes. m. o Ejemplo 8. Se dice que tal conjunto es integrable si y s´lo si es involutivo. fm (x)] = rango [f1 (x). . si [f1 . . .

Grado Relativo Dado el siguiente proceso no lineal de una entrada y una salida: x = f (x) + g(x)u. . 2. se debe seguir derivando la salida hasta que en la r-´sima derivada e la entrada u aparezca en forma expl´ ıcita.6 El grado relativo del proceso univariable no lineal dado en o la ecuaci´n (8. entonces se obtiene la relaci´n deseada entre y y u. ˙ y = h(x) (8. i = 1.10).11) f Lg Lr−1 h(x) = 0 f para todo x que pertenezca a una regi´n Ω de Rn . entonces se tiene la relaci´n deseada. es el n´mero de veces r que hay que derivar la salida o u hasta obtener: Lg Li h(x) = 0. si Lg Lf h(x) = 0. . como sigue: y r = Lr h(x) + Lg Lr−1 h(x)u.10) se desea obtener una relaci´n directa entre la entrada u y la salida y. Para o ello derivamos la salida como sigue: y = ˙ ∂h(x) ∂h(x) ∂h(x) ˙ x= f (x) + g(x)u ∂x ∂x ∂x = Lf h(x) + Lg h(x)u o Si Lg h(x) = 0. . . r − 2 (8. En caso o contrario. o (8.12) . debemos seguir derivando la salida remanente y = Lf h(x) como ˙ se muestra a continuaci´n: o y = ¨ ∂ Lf h(x)x ˙ ∂x ∂ ∂ Lf h(x)f (x) + Lf h(x)g(x)u = ∂x ∂x = L2 h(x) + Lg Lf h(x)u f Nuevamente. f f Lg Lr−1 h(x) = 0 f Definici´n 8.2. en caso contrario.412 Control No Lineal 8.

14) . es un difeomorfismo basado en la hip´tesis de que el orden o del sistema es r = n. . Lf h(x).8.3. o r−1 involucra los t´rminos h(x). . tal transformaci´n depende del grado relativo o r del proceso. . Lf h(x). . donde n es el a orden del proceso. · · · . Por consiguiente. . xn ]T .10)) a su forma normal. Empezaremos por el caso m´s simple: r = n. ∂φn−1 (x) ˙ x = ∂x n−2 ∂Lf h(x) [f (x) + g(x)u] = ∂x n−1 n−2 n−1 = Lf h(x) + Lg Lf h(x)u = Lf h(x) = φn (x) = zn n−1 zn = Ln h(x) + Lg Lf h(x)u ˙ f n−1 = Ln h(φ−1 (z)) + Lg Lf h(φ−1 (z))u = b(z) + a(z)u f y = z1 (8. . .3 Forma Normal de Procesos No lineales 413 8. x2 . n−1 φn (x) Lf h(x) o con x = [x1 .13) = . tal como veremos m´s e a adelante. Forma Normal de Procesos No lineales La t´cnica de linealizaci´n por realimentaci´n requiere de una repree o o sentaci´n no lineal bastante util del proceso a controlar: la forma normal. .10) a la forma siguiente: o z1 = ˙ ∂φ1 (x) ˙ x ∂x ∂φ1 (x) = [f (x) + g(x)u] ∂x = Lf h(x) + Lg h(x)u = Lf h(x) = φ2 (x) zn−1 ˙ = z2 . dicha transformaci´n puede llevar al o proceso descrito en la ecuaci´n (8. Por consiguiente. o ´ La transformaci´n no lineal de coordenadas que permite llevar un proceso o no lineal de una entrada y una salida (ecuaci´n (8. es decir.     . La siguiente transformaci´n de coordenadas: o     h(x) φ1 (x)  φ2 (x)   Lf h(x)      z = φ(x) =  y = h(x) (8. cumple con las condiciones de una transformaci´n no lineal. . . .

es posible agregar n − r funciones de la forma φr+1 (x).13) y aplicado al proceso no lineal de la ecuaci´n o o (8. 8. zn = wn−r (z) ˙ y = z1 (8. Sin embargo.15) donde w1 . descrito en la ecuaci´n (8. Con ello. . o en vista de que s´lo se pueden definir r funciones de la forma φ1 (x).10). Hemos visto que un cambio de coordenadas de la forma z = φ(x). Nosotros s´lo nos u u o ocuparemos del caso univariable. . Linealizaci´n Exacta y la Ley de Control o La linealizaci´n exacta se refiere a tratar con procesos no lineales de o grado r = n. . Cuando el proceso no lineal posee rango r < n. entonces el cambio de coordenadas desarrollado anteriormente conduce a una transformaci´n parcial.14). . . φr+2 (x). de modo tal que φ(x) sea un difeomorfismo. . . ecuaci´n que o . En tales procesos es posible determinar una adecuada realimentaci´n no lineal que conduzca a una linealizaci´n exacta del proceso o o original. El proceso puede ser univariable (con una entrada y una salida) o multivariable (con m´ltiples entradas y m´ltiples salidas). a(z) = 0 por definici´n. w2 .4. .10) resulta en la siguiente representaci´n en el espacio de estado: o z 1 = z2 ˙ z 2 = z3 ˙ . . la forma normal del proceso (8. wn−r son funciones suaves que dependen del nuevo estado z y no de la entrada manipulada u.414 Control No Lineal Notar que en la ecuaci´n anterior. φr (x) o linealmente independientes. . . . ya que en este o o caso r = n. produce un conjunto de nuevas coordenadas (la nueva representaci´n o en el espacio de estado) que poseen la forma dada en (8. . . zr−1 = zr ˙ zr = Lr h(φ−1 (z)) + Lg Lr−1 h(φ−1 (z))u = b(z) + a(z)u ˙ f f zr+1 = w1 (z) ˙ . φn (x). . .

. . ..16) Si se define una se˜al de realimentaci´n u (la ley de control no lineal) de la n o forma: 1 u= [−b(z) + v] (8. 0 0 (8. . . B =  . 0 1     . . .... entonces el nuevo conjunto de ecuaciones viene a ser: z 1 = z2 ˙ z 2 = z3 ˙ . .17) a(z) donde v es una nueva entrada. ... 1 . y = Cx (8.8.1 muestra el proceso de linealizaci´n descrito hasta ahora.. zn−1 = zn ˙ n−1 zn = Ln h(φ−1 (z)) + Lg Lf h(φ−1 (z))u = b(z) + a(z)u ˙ f 415 y = z1 (8. C =   1 0 . . 0 0 0 0 0 0 Observar que la nueva entrada del proceso lineal es v. o . 0    .. . . . La figura 8.19) es completamente controlable y completamente observable.. .   0 .4 Linealizaci´n Exacta y la Ley de Control o volvemos a reescribir a continuaci´n: o z1 = z2 ˙ z 2 = z3 ˙ .   . .20) 0 1 0 0 0 1 . El proceso lineal de la o ecuaci´n (8. zv = v ˙ y = z1 (8.19) donde:     A=     .   . .18) que en forma compacta resulta en la siguiente representaci´n lineal en el o espacio de estado: ˙ z = Ax + Bv. . . 0 0  0 . .

416 Control No Lineal ya que sus matrices de controlabilidad [B AB .× .1: Linealizaci´n por realimentaci´n. la realimentaci´n no lineal requiere de todo el vector de o estado z. .) 1 a(.1) es lineal. estamos obligados a estimarlos empleando un observador no lineal. ya sea de regulaci´n o de seguimiento o de trayectorias. An−1 B] y de observabilidad [C T AT C T . Por consiguiente.C Figura 8.21) v(s) s v   u . el problema de control a resolver.) a(. queda resuelto dise˜ando v con cualquier t´cnica de n e control lineal conocida. a Condiciones para Linealizaci´n Exacta o La linealizaci´n desarrollada anteriormente fue posible debido a la exiso tencia de una funci´n de salida h(x) respecto a la cual el proceso no lineal o . Por otra parte. . En general. como veremos m´s adelante. . (AT )n−1 C T ] poseen rango n (rango completo).)  x = f (x) + g(x)u ˙  x z z = φ(x)  y - ? . el proceso resultante es un integrador de orden n debido a que su funci´n de transferencia resulta: o 1 y(s) = C[sI − A]−1 B = n (8.+   6 − 6 b(. o o Respecto al proceso de linealizaci´n desarrollado. . debemos remarcar lo o siguiente: El sistema de lazo cerrado resultante (figura 8. De lo contrario. completamente controlable y completamente observable. por lo que es necesario que todos sus elementos sean medibles.

. satisface: o ¯ n−2 Lg h(x) = Lg Lf h(x) = · · · = Lg Lf h(x) = 0 n−1 x Lg Lf h(¯) = 0 (8. para un entorno alrededor del punto de operaci´n x. . El conjunto: n−2 [g. Teorema 8.8. adf g. Para sistemas lineales. Resaltemos que un proceso no lineal univariable como el de la ecuaci´n (8. adf g] son linealmente independientes en Ω. adf g] es involutivo en Ω. .10): o x = f (x) + g(x)u ˙ donde f (x) y g(x) son campos vectoriales suaves.10) posee grado r = n cuando la funci´n o o h(x).6). . no se puede decir lo mismo cuando se trata con procesos no lineales.3. adf g] aplicados a procesos lineales se convierten en la conocida matriz de controlabilidad [B. mientras que su modelo linealizado no lo es. . Por ello. o La condici´n involutiva es menos intuitiva. AB. tal o condici´n se satisface trivialmente ya que los campos vectoriales son conso tantes. . . . Pero. . puede ocurrir que un sistema o no lineal sea controlable. La primera condici´n puede ser interpretada como una condici´n de cono o n−1 trolabilidad dado que los campos vectoriales [g.22) Las condiciones para linealizaci´n exacta pueden ahora ser rigurosamente o formalizadas. . An−1 B]. El rango de esta matriz debe ser n para que el proceso lineal (entendi´ndose que el modelo del proceso es lineal) sea completamente e controlable (subsecci´n 2. en general. . lo que equivale a decir. es linealizable si y s´lo si o existe una regi´n Ω en donde se cumplen las condiciones siguientes: o 1. . 2. adf g.] debe ser igual al orden n del proceso. la primera condici´n puede considerarse como una generalizaci´n de la o o condici´n de controlabilidad.4 Linealizaci´n Exacta y la Ley de Control o 417 original tiene grado relativo r = n. Sin embargo. . . . Los campos vectoriales: n−1 [g. que el rango de la matriz resultante [. .2 El proceso univariable no lineal de la ecuaci´n (8. adf g. .

 . En tal caso.   . . que para sistemas univariables no forzados de la forma: x = Ax(t). ˙ y(t) = Cx(t) se define como:    N =  C CA .25) se igualan.26)   . = . ˙ y(t) = h(x) (8.24)      (8. n−1 Lf h(x) (8.25) Es f´cil demostrar que si f (x) = Ax y h(x) = Cx. . la descripci´n en el espacio de estado ıa o o para las nuevas coordenadas (notar que g = 0) es:     z2 z1 ˙   z2   z3   ˙     . Supongamos que la matriz O(x) posea inversa para todo x. .5. las matrices de a observabilidad de las ecuaciones (8.     zn−1   ˙ zn zn ˙ Ln h[φ−1 (z)] f . la transformaci´n o definida por:   h(x) ∂  Lf h(x)    z = φ(x) = (8. CAn−1 El caso no lineal y no forzado que nos ocupa posee la descripci´n: o x = f (x).27) y = z1 . Empleando los resultados anteriores y en analog´ con la ecuaci´n (8. n−1 Lf h(x) representa un cambio de coordenadas. Observadores No Lineales El estudio de la observabilidad en sistemas lineales tiene su base en la matriz de observabilidad.418 Control No Lineal 8. . ∂x   . .16).23) cuya correspondiente matriz de observabilidad generalizada es:   h(x) ∂  Lf h(x)    O(x)   .23) y (8. (8.   . ∂x   .

32) . ˙ f donde:     A=   0 1 0 0 0 1 . .29) Se puede demostrar que la matriz de observabilidad del proceso descrito en la ecuaci´n (8.   0 . .. . 0 1     .5 Observadores No Lineales que posee la forma matricial siguiente: z = Az + BLn h(φ−1 (z)). . B =  . Conforme a las relaciones (8. ..31) f dt donde observamos que el t´rmino L[y − Cˆ] es proporcional al error entre la e z salida del proceso y y la salida del observador y ...30) El observador a dise˜ar debe estimar el vector de estado z.. para el observador no lineal podemos considerar o la din´mica siguiente : a dˆ z = Aˆ + BLn h(φ−1 (z)) + L[y − Cˆ].25) y (8. . z z y = Cˆ ˆ x (8. 0 0 0 0 0 0   . .. 0 0   0 . 0 0 y = Cz 419 (8. . Haciendo una extensi´n de los bien conocidos observadores o lineales (subsecci´n 2.8. . . C =   1 0 .24).6).26) se tiene que: ∂φ x = O(x)f (x) ˙ z = ˙ ∂x = Az + BLn h(φ−1 (z)) f y = Cz (8. debe n determinar su estimado ˆ empleando las mediciones a la entrada y a la saliz da del proceso.. 0   .31) obtenemos: o dˆ x dt = O−1 (ˆ){Aˆ + BLn h(φ−1 (z)) + L[y − Cˆ]} x z z f x x x z = O−1 (ˆ){O(ˆ)f (ˆ) + L[y − Cˆ]} = f (ˆ) + O−1 (ˆ)L[y − h(ˆ)] x x x (8. Por consiguiente. (8.28) es la matriz identidad.. . 1 .30) que nos permite despejar el vector de o o estado estimado dˆ/dt como sigue: x dˆ z dˆ x = O−1 (ˆ) x dt dt y usando la relaci´n (8.3. . empleamos la versi´n estimada de la ecuaci´n (8. Para obtener la expresi´n ˆ o del observador para los estados x(t) del proceso no lineal. .   .   . ... es decir. tal proceso es o completamente controlable.28) (8.

˙ tiene la forma: dˆ z n−1 = Aˆ + BLn h(φ−1 (ˆ)) + Lg Lf h(φ−1 (ˆ))u + L[y − Cˆ] z z z z f dt (8. con condici´n inicial x(0). y: N= CT AT C T · · · (AT )n−1 C T (8. C] dado en (8. La ecuaci´n del observador para el o sistema original toma la forma siguiente: dˆ x x = f (ˆ) + g(ˆ)u + O−1 L[y(t) − h(ˆ)] x x dt para una condici´n inicial x(0). L = (W N T )−1  (8.31)).420 Control No Lineal que es la ecuaci´n del observador no lineal para el sistema no forzado o x = f (x).29) es completamente observable. y = h(x). ˙ o ˆ Notar que tambi´n hemos usado el hecho de que: e y = h(ˆ) = h(φ−1 (ˆ)) = Cˆ ˆ x z z Para el caso de procesos no lineales forzados con grado relativo r = n.34) y = h(x) que debe cumplir con los requerimientos siguientes: que el proceso posea grado relativo r = n. por extensi´n (ver ecuaci´n (8.36)  . siempre que O−1 (x) exista. o ˆ C´lculo de la Matriz de Ganancia L del Observador a Dado que el par [A. la din´mica del observador para o o a el sistema forzado: x = f (x) + g(x)u. una forma de obtener L es aplicar la conocida f´rmula del observador lineal [3]: o   αn − an   . que su matriz de observabilidad sea invertible y que la entrada u sea uniformemente acotada. y teniendo en cuenta la transformaci´n acostumbrada z = φ(x). entonces el o sistema con las nuevas coordenadas resulta: n−1 ˙ z = Az + B[Ln h(φ−1 (z)) + Lg Lf h(φ−1 (z))u] f (8. . α1 − a1 donde n es el orden del proceso.33) Luego.35) .

i = 1. .2). . . 1 a1 1 0  · · · a1 1 ··· 1 0   .4). i = 1. . se determinan a partir de las a ıces conforman la ra´ ıces deseadas del observador µi . . o 7) Dise˜ar el observador no lineal de estados (si fuera necesario).3). se obtienen de la ecuaci´n: a |sI − A| = sn + a1 sn−1 + · · · + an−1 s + an mientras que los par´metros αi . .  ··· 0 0  ··· 0 0 421 o Los par´metros ai . .  . . n 2) Determinar el modelo no lineal continuo del proceso. .  . n. n.6 Procedimiento de Dise˜ o n     W =   an−1 an−2 an−2 an−3 . .4). n. Estas ra´ ecuaci´n caracter´ o ıstica del observador: (s − µ1 ) · · · (s − µ1 ) = sn + α1 sn−1 + · · · + αn−1 s + αn y deben tener parte real negativa para garantizar la estabilidad del observador no lineal. . . 3) Determinar el grado relativo del modelo no lineal continuo del proceso (subsecci´n 8. . n 8) Simular el sistema de control no lineal con el prop´sito de predecir un o rendimiento satisfactorio. . i = 1.6. .8. . o 4) Comprobar que se cumplen las condiciones de linealizaci´n exacta del o modelo no lineal continuo del proceso (subsecci´n 8. o 5) Determinar la forma normal del proceso no lineal (subsecci´n 8. Procedimiento de Dise˜o n El procedimiento para dise˜ar el sistema de control no lineal basado en n la t´cnica de linealizaci´n por realimentaci´n es como sigue: e o o 1) Formular el problema (definir especificaciones de dise˜o). . . o 6) Implementar la linealizaci´n por realimentaci´n de estado y la ley de o o control no lineal (subsecci´n 8. . 8. . .

8.C.2.1. como las fricciones est´tica y de Coulomb. Asumiendo a que la se˜al de control u va a ser compensada en software de los efectos de la n . El sobreimpulso de la respuesta debe ser m´ ınimo no obstante la presencia de la carga no lineal y de las no linealidades del proceso.422 9) Implementar el hardware. En el extremo libre de dicha varilla se o pueden acoplar cargas adicionales.9 y descrito en la secci´n 3. De esta manera la carga no lineal se hace variable. Las derivaciones que siguen a continuaci´n corresponden a dos casos del o proceso: 1. La carga no lineal es una varilla met´lica a acoplada perpendicularmente al eje del servomotor. La tabla 3. es un proceso de una entrada y una salida. 8. El objetivo de control es dise˜ar e implementar un sistema de control n no lineal basado en la t´cnica de linealizaci´n por realimentaci´n. Modelo del Proceso Modelo No Lineal de Tercer Orden (L = 0) La figura 3.7. Control No Lineal 11) Realizar pruebas de funcionamiento (resultados experimentales). con carga no lineal mostrado en la figura 3.7.2 describe las variables y los valores de los par´metros.9 presenta la estructura del proceso no lineal a controlar. Control No Lineal de un Servosistema Formulaci´n del Problema o El servomotor D. Modelo no lineal de tercer orden del proceso cuando consideramos que la inductancia de armadura L es no despreciable. Modelo no lineal de segundo orden del proceso cuando se desprecia la inductancia L. 2. Este o servomotor posee un engranaje reductor de velocidad y puede ser controlado por el voltaje de armadura.7. a manera de un brazo rob´tico de un grado de libertad. y la saturaci´n en el a o amplificador de potencia. 8.3. 10) Implementar el software de control. de modo e o o tal que la varilla se posicione en una referencia predeterminada o siga una trayectoria en el rango de 0 a 2π rad.

8. respectivamente. g(x) = 0 nKact K MR Al igual que en el caso anterior (L no despreciable).38) o Los elementos del vector de estado [x1 x2 x3 ]T son la posici´n angular. El t´rmino no lineal TN debido a las fricciones est´tica y de Coulomb. e a puede no considerarse. dado que sus efectos van a ser compensados por software cuando el sistema de control no lineal se implemente en tiempo real. y Kact u es la tensi´n de armadura.37) (8. Notar que el modelo del proceso no lineal es continuo o y diferenciable. entonces el proceso no lineal puede o a o ser descrito mediante la siguiente representaci´n en el espacio de estado: o x = f (x) + g(x)u. ˙ donde:  x2 N B f (x) =  −( M )senx1 − M x2 + nK x3  M nE − L x2 − R x3 L   0 h(x) = x1 g(x) =  0  . puede no ser tomado en cuenta. .7 Control No Lineal de un Servosistema 423 fricci´n est´tica y fricci´n de Coulomb.3): o x = ˙ 2 − BR+nRKE x2 M − TN M x2 − N M senx1 + nKact K MR u = f (x) + g(x)u (8. el t´rmino no lineal e a TN debido a las fricciones est´tica y de Coulomb. Modelo No Lineal de Segundo Orden (L = 0) El modelo no lineal de segundo orden del proceso es (subsecci´n 3. dado que su efecto va a ser compensado por software.  Kact L y = h(x) (8.39) y = h(x) = x1 donde: f (x) = 2 − BR+nRKE x2 M x2 − TN − M N M senx1 . la velocidad angular y la corriente de armadura.

o 8. empleamos las derivadas o de Lie en el modelo del proceso no lineal de tercer orden como sigue: Lf h(x) = ∇h(x)f (x) = x2 Lg Lf h(x) = ∇(Lf h(x))g(x) = 0 L2 h(x) = ∇(Lf h(x))f (x) = − f (8.42) M M M nK =0 (8.7. g] = ∇g f − ∇f g      0 0 1 0 0 N B nK =  − M cosx1 − M nK   0  =  − M L  M 1 R 0 − nE −R L L L L2 ad2 g = [f .41) N B nK senx1 − x2 + x3 (8. o Grado Relativo del Proceso No Lineal de Segundo Orden De acuerdo a lo establecido en la subsecci´n 8.7. empleamos las derivadas o de Lie en el modelo del proceso no lineal de segundo orden como sigue: Lf h(x) = ∇h(x)f (x) = x2 nKact K =0 Lg Lf h(x) = ∇(Lf h(x))g(x) = MR (8.43) Lg L2 h(x) = ∇(L2 h(x))g(x) = f f ML por consiguiente. el rango del proceso respecto a la salida y es r = 3. Ello implica que el proceso en cuesti´n es completamente linealizable. Ello implica que el proceso en cuesti´n es completamente linealizable.3.2.2.4.44) (8.40) (8.424 Control No Lineal 8.45) Por consiguiente. el rango del proceso respecto a la salida y es r = 2.2. Determinaci´n del Grado Relativo o Grado Relativo del Proceso No Lineal de Tercer Orden De acuerdo a lo establecido en la subsecci´n 8. debemos calcular: adf g = [f . Comprobar Linealizaci´n Exacta o Linealizaci´n Exacta del Modelo Lineal de Tercer Orden o Para aplicar las condiciones de linealizaci´n establecidas en el teorema o 8. adf g] = ∇(adf g) f − ∇f adf g f .

Por otra parte. debemos calcular: adf g = [f .46) . como sigue: o       x1 h(x) z1  x2 z =  z2  = φ(x) =  Lf h(x)  =  N B nK 2 h(x) z3 Lf − M sinx1 − M x2 + M x3 (8. 8. para aplicar las condiciones de linealizaci´n o establecidas en el teorema 8. Linealizaci´n Exacta del Modelo Lineal de Segundo Orden o Como en el caso anterior. el conjunto [g adf g] es involutivo porque es constante.7 Control No Lineal de un Servosistema 0 1 N B =  − M cosx1 − M 0 − nE −R L L  0 nK M 425      0 [g adf g ad2 g] =  0 f Dado que:  1 L nK ML nKB nK  − ML =  − M 2 L − nKR M L2 2 2 R − n KE + R3 2 2 L ML L  nK 0 ML nK − M L − nKB − nKR  2 M2 L M L2 2 R − n KE + R3 2 2 L ML L 0  n2 K 2 M 3 L3 entonces tal conjunto est´ conformado por campos vectoriales linealmente a independientes.7.2. Por otra parte. g] = ∇g f − ∇f g Es f´cil demostrar que: a det[g adf g] = − nKact K MR 2 lo que significa que tal conjunto est´ conformado por campos vectoriales a linealmente independientes.8. La Forma Normal Forma Normal del Modelo No Lineal de Tercer Orden La forma normal del proceso en estudio puede ser obtenida mediante la transformaci´n no lineal z = φ(x) del estado x. el conjunto: det[g adf g ad2 g] = f [g adf g] es involutivo porque es constante.5.

. la forma normal del proceso resulta: z 1 = z2 ˙ z 2 = z3 ˙ z3 = − ˙ N NR cosz1 z2 − senz1 − M ML nKact K u + ML y = z1 BR n2 KE + ML ML z2 − R B + M L z3 − nE R x2 − x3 L L (8.49) Forma Normal del Modelo No Lineal de Segundo Orden El modelo no lineal de segundo orden del proceso.48) L3 h(x) = ∇(L3 h(x)) f (x) f f nK N N B B nK = − cosx1 x2 − − senx1 − x2 + x3 + M M M M M M nKact K Lg L2 h(x) = f ML Luego. las nuevas coordenadas resultan: o z 1 = z2 ˙ z 2 = z3 ˙ z3 = L3 h(φ−1 (z)) + Lg L2 h(φ−1 (z))u ˙ f f donde: (8.426 Control No Lineal Notar en la ultima ecuaci´n que el nuevo estado z posee significado f´ ´ o ısico. z2 es su velocidad angular y z3 su aceleraci´n. sin considerar el t´rmie o no no lineal TN es (ver ecuaci´n 8.3.50) que de hecho ya se encuentra en su forma normal. o puesto que z1 es la posici´n del eje del servomotor.47) (8. El estado original x expresado en funci´n del nuevo o o estado z est´ dado por: a     z1 x1  z2 x =  x2  = φ−1 (z) =  B M N x3 nK senz1 + nK z2 + nK z3 De acuerdo a la subsecci´n 8.39): x= ˙ − BR+nRKE x2 − M 2 x2 N M senx1 + nKact K MR u = f (x) + g(x)u y = h(x) = x1 (8.

0 0 0   y = Cz (8.2. obtenemos: z 1 = z2 ˙ z2 = z3 ˙ z3 = v ˙ y = z1 o lo que es equivalente: z = Az + Bv.53) dt El proceso de linealizaci´n desarrollado se ilustra en la figura 8.8.51) donde v es una entrada equivalente. Reemplazamos en dicha ecuaci´n la siguiente ley de control: o o u = = + 1 [v − L2 h(φ−1 (z))] f Lg L2 h(φ−1 (z)) f N NR ML cosz1 z2 + senz1 v+ nKKact M ML BR R n2 KE B + z2 + + z3 ML ML M L (8.7.6.7 Control No Lineal de un Servosistema 427 8. o Ahora se debe dise˜ar v de modo tal que y = z1 siga una trayectoria n deseada r(t). La ley de Control No Lineal Ley de Control No Lineal para el Modelo de Tercer Orden La forma normal para linealizaci´n exacta del proceso est´ dada en la o a ecuaci´n (8.54) O lo que es lo mismo: .52)  0 B =  0 . ˙ donde:  0 1 0 A =  0 0 1 .C = 1 1 0 0 La funci´n de transferencia del proceso lineal equivalente se obtiene de: o 1 y(s) = C(sI − A)−1 B = 3 v(s) s d3 y(t) =v (8. El siguiente control logra tal objetivo: v= d2 (r − y) d(r − y) d3 r − K3 (r − y) − K1 − K2 dt3 dt2 dt (8.49).

v) z z = φ (x ) Proceso no lineal x y v Proceso lineal equivalente 1 s3 y Figura 8. o Reemplazando (8. d2 r dr d3 r + K1 2 + K2 + K3 r − Kz 3 dt dt dt  y ˙ z= y  y ¨  (8. Por ejemplo. si deseamos que los eigenvalores sean s1 = s2 = s3 = −4. entonces los eigenvalores de la ecuaci´n o anterior deben poseer parte real negativa. lo que resulta en: u = ML nKKact d3 r N d2 r dr cosz1 z2 + K1 2 + K2 + K3 r − Kz + 3 dt dt dt M .55) n en (8. K2 = 48 y K3 = 64.428 Control No Lineal v Realimentacion no lineal u = u(z. La expresi´n de v en funci´n de la trayectoria de o o referencia resulta: v= donde: K= K3 K2 K1 .55) Finalmente. K2 y K3 determinan la din´mica del error r −y.2: Linealizaci´n del proceso no lineal y su proceso lineal equivalente.51). de donde se obtiene: K1 = 12. la se˜al de control u puede ser obtenida reemplazando (8. Si a se desea que y → r cuando t → ∞.53) obtenemos la ecuaci´n del sistema de lazo o cerrado: d2 (r − y) d(r − y) d3 (r − y) − K3 (r − y) = 0 − K1 − K2 3 2 dt dt dt a donde los par´metros K1 . entonces la ecuaci´n del sistema de o lazo cerrado resulta s3 + 12s2 + 48s + 64.54) en (8.

donde v es una nueva entrada por dise˜arse. entonces los eigenvalores de la ecuaci´n anterior deben o poseer parte real negativa. Al aplicar la se˜al de control anterior. el n n modelo del proceso completamente linealizado queda como: x1 = x2 ˙ x2 = v ˙ y = x1 Tal conjunto de ecuaciones representa un doble integrador. entonces la ecuaci´n del sistema de lazo cerrado resulta o 2 +8s+16.8. Por ejemplo.58) logra que el sistema de lazo cerrado tenga la forma: d(r − y) d2 (r − y) + K2 (r − y) = 0 + K1 dt2 dt a donde K1 y K2 determinan la din´mica del error (r − y).59) .50).7 Control No Lineal de un Servosistema NR senz1 + ML BR n2 KE + ML ML R B + M L 429 + z2 + z3 (8. Es decir: d2 y =v dt2 La se˜al v debe dise˜arse de modo tal que y = x1 siga una trayectoria de n n referencia r(t). La siguiente se˜al v: n v= d(r − y) d2 r − K2 (r − y) − K1 2 dt dt (8. Si se desea que y → r cuando t → ∞. si deseamos que los eigenvalores sean s1 = s2 = −4. La expresi´n s o 1 2 3 de v en funci´n de la trayectoria de referencia resulta entonces: o v= dr d2 r + K1 + K2 r − Kx dt2 dt (8.57) linealiza completamente el modelo del proceso dado en (8.56) Ley de Control No Lineal para el Modelo de Segundo Orden La siguiente ley de control: u= BR + n2 KE N MR v+ x2 + senx1 nKactK MR M (8. de donde se obtiene: K = 8 y K = 16 y K = 64.

Dise˜o del Observador No Lineal de Estados n Observador No Lineal para el Modelo de Tercer Orden Dado el modelo no lineal del proceso de tercer orden: x = f (x) + g(x)u.59) en n (8. ˙ su correspondiente matriz de ecuaci´n (8. lo que resulta en: u = + d2 r dr MR + K1 + K2 r − Kx nKact K dt2 dt 2 KE BR + n N x2 + senx1 MR M (8.61) (8. z= y y ˙ Control No Lineal Finalmente.7. Esta inversa es:   1 0 0 0 1 0  O−1 (x) =  M N B − nK cosx1 − nK nK det[O(x)] = Por consiguiente.7.430 donde: K= K2 K1 . la ecuaci´n del observador es: o dˆ x = f (ˆ) + g(ˆ)u + O−1 L[y(t) − h(ˆ)] x x x dt y = h(ˆ) ˆ x y = h(x) observabilidad puede obtenerse aplicando la x1 = ∂  x2 ∂x N B − M senx1 − M x2 +  0 0 1 0  nK B −M M     nK M x3 (8.25) como sigue: o  h(x) ∂  Lx h(x) O(x) = ∂x L2 h(x) x  1 0 =  N − M cosx1 Claramente vemos que: nK =0 M lo que significa que O(x) posee inversa.57).60) 8. la se˜al de control u puede obtenerse reemplazando (8.62) .

63) 1 0 B 0 1− M La din´mica del observador queda descrita entonces por: a dˆ x = f (ˆ) + g(ˆ)u + O−1 L[y(t) − h(ˆ)] x x x dt y = h(ˆ) ˆ x (8. que posee la forma: x = f (x) + g(x)u.64) Cabe anotar que en este caso el observador es util para estimar la veloci´ dad angular x2 .7 Control No Lineal de un Servosistema Observador No Lineal para el Modelo de Segundo Orden 431 Como en el caso anterior.8. por software podemos tambi´n estimar x2 . K3 = 12000 . consideremos el modelo no lineal del proceso de segundo orden.8. s3 = −10 2 + 10j Por consiguiente. Se desea que los polos del sistema realimentado linealizado sean: √ √ s1 = −40. Simulaci´n del Sistema de Control No Lineal o Simulaci´n Empleando el Modelo No Lineal de Tercer Orden o La figura 8. ˙ y = h(x) La correspondiente matriz de observabilidad puede obtenerse aplicando la ecuaci´n (8. el polinomio caracter´ ıstico toma la forma: (s − s1 )(s − s2 )(s − s3 ) = s3 + K1 s2 + K2 s + K3 de donde resulta: √ K1 = 40 + 20 2. s2 = −10 2 − 10j.3 muestra el diagrama de bloques del sistema de control no lineal a simular. √ K2 = 300 + 800 2. 8.25) como sigue: o O(x) = = ∂ ∂x h(x) Lx h(x) = nK M ∂ ∂x x1 x2 (8. Sin embargo.7. e sabiendo que es la derivada de x1 .

4 (archivo disnl1.9. en tanto que la magnitud de la se˜al de control n n u no sobrepasa el l´ ımite previamente establecido de u < |1. % disnl1p. n = 19. cada subo sistema de la figura 8. Para iniciar la simulaci´n empleando la figura 8. Mo = 0.81. Jeff = n^2*Jm +JL. E = 31. % GANANCIA DEL SISTEMA LINEALIZADO K1=40+20*sqrt(2).25.4 puede ser visualizado a voluntad.v) z u Proceso no lineal x y z = φ (x) Figura 8.38. load disnl1_u. previamente se requiere ejecutar o el programa de datos disnl1p. Ro = 0.8338e-6. Kact = 14. La figura 8.3) Lo = 0. R = 7. K2=300+800*sqrt(2).741. m = 0. z ) z v Realimentacion no lineal u = u( z . L = 4.4| volt.06377.432 Control No Lineal Sistema lineal equivalente r Realimentacion lineal v = v(r.071e-3.035e-3. bL = 1e-5. JL = 3.m) muestra el diagrama SIMULINK para la simulaci´n del sistema. B = n^2*bm + bL.5e-7. load disnl1_r.m. Jm = 1.0. % GRAFICOS load disnl1_x1. Los o resultados de la simulaci´n se muestran en la figura 8. donde podemos o observar que la se˜al controlada sigue exactamente a la trayectoria de refen rencia (una se˜al sinusoidal).64e-3. g = 9. En el ambiente de trabajo de MATLAB. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2.9062e-6.776.3: Sistema de control no lineal.5. K3=12000. bm = 1. cc = 0. N = g*Lo*(Mo+m/2). K = 31.4.m PARAMETROS PARA LA SIMULACION DEL SISTEMA DE % CONTROL NO LINEAL DE TERCER ORDEN clear all % PARAMETROS DEL PROCESO (TABLA 3. En el subsistema Proceso no lineal se ha colocado la condici´n inicial x1 (0) = 1 rad. .01.

2) plot(ejex.1) plot(ejex. s2 = −10 2 + 10j Por consiguiente.eps Simulaci´n Usando el Proceso de Tercer Orden con Observador o La figura 8. Se desea que los polos del sistema realimentado linealizado sean: √ √ s1 = −40.disnl1_r.lg).disnl1_x1). grid ylabel(’Se~nal de control (voltios)’) xlabel(’Tiempo en segundos’) print -f -deps disnl1r % CREA ARCHIVO disnl1r. % LONGITUD DE LAS MUESTRAS ejex = linspace(0.’-’.1). Notar que se ha incluido el observador no lineal.ejex. grid ylabel(’Posicion (radianes)’) xlabel(’Tiempo en segundos’) subplot(2.1.8.1. subplot(2. el polinomio caracter´ ıstico toma la forma: (s − s1 )(s − s2 )(s − s3 ) = s3 + K1 s2 + K2 s + K3 .7 Control No Lineal de un Servosistema 433 disnl1_u u disnl1_x x Mux Señal v Señal de Proceso control u no lineal Mux gráfico Referencia r Conversión de x a z disnl1_r referencia r Figura 8. o lg = size(disnl1_x1.4: Simulaci´n del sistema de control no lineal de orden 3.disnl1_u).6 muestra el diagrama de bloques del sistema de control no lineal a simular.20. s2 = −10 2 − 10j.

5 0 −0. Sistema lineal equivalente r Realimentacion lineal v = v(r.v) ^ z u Proceso no lineal y ^ ^ z = φ (x) ^ x Observador no lineal Figura 8.5 Posición (radianes) 1 0.5 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20 Figura 8.7 puede ser visualizado a voluntad.5: Resultado de la simulaci´n del sistema de control no lineal emo pleando un modelo no lineal de tercer orden.5 −1 −1. En el ambiente de trabajo de MATLAB. de donde resulta: √ K1 = 40 + 20 2.5 0 −0. K3 = 12000 La figura 8.434 1.m) muestra el diagrama SIMULINK para la simulaci´n. Los resultados de la simulaci´n o . cada susbsistema de la o figura 8. ^ ) z ^ z v Realimentacion no lineal u = u( z .5 1 0.5 −1 0 2 4 6 8 10 12 Tiempo en segundos 14 16 Control No Lineal 18 20 Señal de control (voltios) 1. √ K2 = 300 + 800 2.6: Sistema de control no lineal con observador.7 (archivo disnl2.

Kact = 14.9062e-6.06377. cc = 0.0. bL = 1e-5.7 Control No Lineal de un Servosistema 435 se muestran en la figura 8. K = 31. n = 19. g = 9. donde podemos observar que la se˜al contron lada sigue exactamente a la trayectoria de referencia (una se˜al sinusoidal). pues en este programa se encuentran los valores de los par´metros del sistema.38.7: Simulaci´n del sistema de control no lineal de tercer orden con o observador.9. bm = 1. n Para iniciar la simulaci´n empleando la figura 8. % disnl2p. Ro = 0.64e-3. previamente se requiere o ejecutar el programa de datos disnl2p.035e-3. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2.8. L = 4.7. Mo = 0. Jeff = n^2*Jm +JL.741. as´ como tambi´n el c´lculo a ı e a de la matriz de ganancia L.81. JL = 3.8338e-6. % MODELO LINEAL EQUIVALENTE DE TERCER ORDEN .m. B = n^2*bm + bL. disnl2_u u Mux Señal u Señal v Proceso no lineal Mux gráfico disnl2_x1 x1 disnl2_r Referencia r Conversión Observador de x a z no lineal r Figura 8.071e-3. R = 7. Jm = 1.01.25.8.776. N = g*Lo*(Mo+m/2). E = 31.3) Lo = 0.5e-7.m PARAMETROS PARA SIMULAR EL SISTEMA DE CONTROL % NO LINEAL DE TERCER ORDEN CON OBSERVADOR clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3. m = 0.

2) plot(ejex. GRAFICOS load disnl2_x1.a1 1 0.0. L1=LL(1). L2=LL(2). % LONGITUD DE LAS MUESTRAS ejex = linspace(0.eps Simulaci´n Empleando el Proceso de Segundo Orden o La figura 8.3 muestra diagrama de bloques del sistema de control no lineal a simular.1. el polinomio caracter´ la forma: (s − s1 )(s − s2 ) = s2 + K1 s + K2 .1 0 0]. a3=p(4). rangoNN = rank(NN). a1=p(2). GANANCIA DEL OBSERVADOR NO LINEAL LL = inv(W*N’)*[aa3-a3. aa1=JJ(2). Por consiguiente. aa3=JJ(4).0 0 0].1) plot(ejex. K2=300+800*sqrt(2).0 0 1. load disnl2_u.C. % es n=3 => EL PROCESO ES C. GANANCIA DEL SISTEMA LINEALIZADO K1=40+20*sqrt(2).1). subplot(2. aa2=JJ(3). D = [0]. NN = [Cc’ Ac’*Cc’ (Ac’)^2*Cc’].1]. lg = size(disnl2_x1.aa1-a1].disnl2_r. CALCULO DE LAS GANANCIAS L1. L3=LL(3).436 Control No Lineal % % % % Ac = [0 1 0.1. K3=12000.’-’. a2=p(3). W = [a2 a1 1.ejex. L2 y L3 p = poly(Ac).disnl2_x1) ylabel(’Posicion (radianes)’) xlabel(’Tiempo en segundos’) grid subplot(2. Se desea que los polos del sistema realimentado linealizado ıstico toma sean s1 = −4 y s2 = −4.disnl2_u) ylabel(’Se~nal de control (voltios)’) xlabel(’Tiempo en segundos’) grid print -f -deps disnl2r % CREA ARCHIVO disnl2r.lg). load disnl2_r. Cc = [1 0 0]. J = [-15+10j 0 0 0 -19 0 0 0 -15-10j].aa2-a2.20. Bc = [0. % RAICES DESEADAS JJ = poly(J).

m realiza la simulaci´n del sistema y los resultados se pueden o ver en la figura 8. La raz´n es que la implementaci´n o o o en tiempo real del sistema de control se va a realizar digitalmente. Es importante anotar que en el programa de simulaci´n o disnl3.9.8.5 −1 0 437 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20 Señal de control (voltios) 3 2 1 0 −1 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20 Figura 8. o n Con el prop´sito de suavizar los efectos de las derivadas presentes en o la se˜al de control u emplearemos la siguiente f´rmula no recursiva para la n o derivada: dr ∼ 1 [r(k) + 3r(k − 1) − 3r(k − 2) − r(k − 3)] = dt 6T donde T es el tiempo de muestreo. Tal f´rmula se obtiene calculando el o promedio temporal r: ¯ 1 r = [e(k) + e(k − 1) + e(k − 2) + e(k − 3)] ¯ 4 .8: Resultado de la simulaci´n del sistema de control no lineal de o tercer orden. El programa disnl3.7 Control No Lineal de un Servosistema 1 Posición (radianes) 0. de donde resulta: K1 = 8 y K2 = 16.5 0 −0.m se ha incluido la compensaci´n de la fricci´n no lineal de Coulomb o o y la limitaci´n de la se˜al de control para evitar saturar el amplificador. Esta vez vamos a simular el sistema de control no lineal mediante discretizaci´n directa del sistema continuo.

L = 4. Kact = 14. E = 31. M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2. bL = 1e-5.741. dr(4)=0.2*k*T). ddr(3)=0. x1(1) =0.438 Control No Lineal para luego aproximar la derivada con relaci´n a r. % POLINOMIO CARACTERISTICO K1 = pol(2).64e-3.81. ddr(1)=0.5T 0.01. ddr(k) = (dr(k) + 3*dr(k-1) .0.071e-3. 20. x1(2)=0.3*dr(k-2) . Mo = 0. % TRAYECTORIA DE REFERENCIA % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) .. % CONDICIONES Y PARAMETROS INICIALES r(1) =0. %4. .38. % POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -4 y -4 pol = conv([1 4].5e-7.05. x2(1) =0. % LAZO DE CONTROL for k=4:MM r(k) = sin(0. TN = cc*sign(x2(k)).dr(k-3))/(6*T). m = 0.64e-1.. T = 0.3) Lo = 0.K1*x2(k) .035e-3. ddr(4)=0.06377. n = 19. B = n^2*bm + bL. r(4)=0. + (B*R+n^2*K*E)/(M*R)*x2(k) + (N/M)*sin(x1(k)) ). JL = 3.25.K2*x1(k) .8338e-6.5T % disnl3. R = 7. dr(3)=0..m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL % EMPLEANDO MODELO DE SEGUNDO ORDEN DEL PROCESO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3. N = g*Lo*(Mo+m/2). Jm = 1. % torque de fricci´n de Coulomb o % COMPENSANDO FRICCION if(x2(k) > 0) u(k) = u(k) + R*cc/(n*K*Kact). x2(4)=0.3*r(k-2) . K2 = pol(3). Jeff = n^2*Jm +JL. dr(1) =0.r(k-3))/(6*T). x1(3)=0. cc = 0. x2(2)=0. g = 9. 45. Ro = 0. e K = 31. % tambi´n 10. r(3)=0. elseif(x2(k) < 0) .9.[1 4]). % SE~NAL DE CONTROL u(k) = (M*R/(Kact*n*K))*(ddr(k) + K1*dr(k) + K2*r(k) . bm = 1.776..5T 0. x2(3)=0. r(2)=0. ddr(2)=0.9062e-6. como sigue: o ¯ ¯ ¯ ¯ ¯ dr ∼ 1 r(k) − r r(k − 1) − r r(k − 2) − r r(k − 3) − r + + + ] = [ dt 4 1. MM=1000. dr(2)=0. x1(4)=0.5T 1.

8.4) u(k) = 1.6.(N/M)*sin(x1(k)) .x1(4:MM)). subplot(2..8. Implementaci´n del Software o El software de control empleado en la implementaci´n en tiempo real del o sistema de control no lineal posee la misma estructura que el software de control empleado para la implementaci´n en tiempo real de los sistemas de o control predictivo y robusto. .MM-3). Dicho hardware se describe en detalle en la subsecci´n 5. end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex = linspace(0. end % PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO x1(k+1) = x1(k) + T*x2(k).4) u(k) = -1.7. grid ylabel(’Se~nal de control (voltios)’) xlabel(’Tiempo en segundos’) print -f -deps disnl3 % crea disnl3.(1/M)*TN + n*K*Kact/(M*R)*u(k) ).ejex.eps 439 8.9.1. o 8. Implementaci´n del Hardware o El hardware empleado en la implementaci´n en tiempo real del sistema o de control no lineal es similar al empleado para la implementaci´n en tiempo o real de los sistemas de control adaptivo.u(4:MM)).7..10.13. predictivo y robusto.7. grid ylabel(’Posicion (radianes)’) xlabel(’Tiempo en segundos’) subplot(2. x2(k+1) = x2(k) + T*( . end % EVITANDO SATURACION DEL ACTUADOR if(u(k) > 1.(B/M + n^2*K*E)/(M*R)*x2(k) . El diagrama de flujo del software de control o se muestra en la figura 6.7.7 Control No Lineal de un Servosistema u(k) = u(k) .4.1..1) plot(ejex.MM*T.R*cc/(n*K*Kact). .2) plot(ejex. La estructura de dicho software se describe en detalle en la subsecci´n 6..4. elseif(u(k) < -1.r(4:MM). .

en donde intervienen los archivos mencionados en el p´rrafo anterior.h> . La realizaci´n de archivos ejecutables a partir de los programas fuente.H. Ver especificaciones de dise~no en la subseccion resultados experimentales. R1LLIB.CPP es el que contiene el algoritmo de control.CPP Programa del sistema de control no lineal de posicion.CPP y DISNL.h> #include <assert.440 2 Posición (radianes) 1 0 −1 −2 0 Control No Lineal 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50 0. se o elabora en el ambiente de trabajo del Borland C/C++ mediante la creaci´n o de un proyecto denominado DISNL.h" #include <stdio.2 −0. El listado de los programas R1LLIB.4 Señal de control (voltios) 0.h> #include <math.PRJ.h> #include <conio.CPP.4 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50 Figura 8.CPP. El software usado para la implementaci´n del algoritmo de control de o posici´n emplea el lenguaje C y se ejecuta en una PC Pentium. El archivo DISNL. A continuaci´n se presenta el listaa o do del programa DISNL.h> #include <alloc.7.9: Resultado de la simulaci´n del sistema de control no lineal emo pleando un modelo no lineal de segundo orden. o /* DISNL.CPP fueron presentados en la subsecci´n 6.H y R1LLIB.7. Los prograo mas necesarios para el control se estructuran en tres archivos: R1LLIB. */ #include "r1llib.2 0 −0.

38. tsimul= 100.4. R = 7.*19. yp. B = (n*n)*bm+bL. void Mide_Variables(float *yk. float T. rpp.. } void Inicializa_Sistema() { VcFC = . /*************** FUNCIONES ******/ float Aplica_Control(float u) { float v. Kact.7 Control No Lineal de un Servosistema const float ESCALA= 2.035e-3. else if(u+v>1.*M_PI/(512. float t). Mo. E. /* Declaracion de las funciones propias del programa */ void Inicializa_Sistema(). bm.0. float t. T = 1. tsimul. float *r.741.) v = -VcFC. return u.8.776. N. K = 31. drppp. E = 31. Wth. float Fs. rppp. /* Parametros del proceso no lineal */ Lo = 0. float ykp). 441 .06377.071e-3.4) u = 1. float up. Ro = 0. K. float Jeff. K1 = 28. float Aplica_Control(float u. Ro.5) u = -1.15. bL = 1e-5. Jm. JL. K2 = 300. M = Jeff+(1/3)*m*Lo*Lo + Mo*Lo*Lo + (2/5)*Mo*Ro*Ro.5. float rp. m. float ykp if(u<0. x2p. r.) v = VcFC. float bL. Lo. if(u+v<-1. n = 19. float VcFC.01. bm = 1. M. Ofst. R. K2. pk. EnviarVoltage(u+v+Ofst). Mo = 0. K1. Kact = 14.. float *x2k. Jm = 1. k.2843. drpp. g = 9. Ofst = 2. TN. m = 0.7)./Fs. VcFE.9. n. Jeff = n*n*Jm+JL. int p0. upar.3. else if(u>0. x2.8338e-6.81. /* Declaracion de las variables globales */ float y. B.9062e-6. Fs = 20. g. float drp.

dr.sizeof(float)))).2*cos(2*k*T)+2. p0 = pk. . } void main() { int ant=0. x2p =* x2. float *yb. la referencia: r = r(t)*/ *r = . k<nd. x2p = 0. float t ) { /* En primer lugar.442 N = g*Lo*(Mo + m/2). float *r. nd = (int)tsimul/T.sizeof(float)))). act=0. Fs). /* Ahora leo la posicion */ pk = LeerPosicion(). EnviarVoltage(Ofst). x2p. Inicializa_Sistema().. t = 0. *rb. assert(NULL!=(rb= (float *)calloc(n/5. rppp = 0. *y = yp + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA. for(k=0. r... Control No Lineal ConfigurarHardware(0x272. rp =0.. /* Inicializacion de variables */ yp =0. nd. float yp. assert(tsimul<120).2*exp(-2*k*T) . clrscr(). drppp = 0... k. 0x270. float *ub.) { act = NivelClock(). assert(NULL!=(ub= (float *)calloc(n/5. 0x264. u. y. rpp = 0.. drpp = 0. x2. 0x271. float ddr. FILE *out. p0= LeerPosicion().. assert(NULL!=(yb= (float *)calloc(n/5..sizeof(float)))). float *x2. drp =0.. up =0. /* Actualizamos los estados */ yp =* y. } void Mide_Variables(float *y.

3f". gotoxy(18. i<n/5. } k++.C. gotoxy(21. i++) fprintf(out.printf("tiempo : t=%+5.out"./M_PI)./M_PI."%10f %10f %10f %10f\n". rb[k/5] = r*180.17).11. printf("Control no lineal de un servomotor D. yb[i]. ub[k/5] = u. i*5*T.t). if(!(k%5)) { yb[k/5] = y*180. printf("****************************************"). ub[i]).y*180. gotoxy(15. up = u. gotoxy(21."wt"). gotoxy(21.15). ub. upar = (ddr+K1*dr+K2*r-K2*(y)-K1*x2+(B*R+n*n*K*E)/ (M*R)*x2+(N/M)*sin(y)).r*180.7 Control No Lineal de un Servosistema 443 if ((ant == 0)&&(act == 1)) { Mide_Variables(&y.printf("posicion : y=%+5.3f"./M_PI). gotoxy(21. &r./M_PI.5). &x2. yb.9).13). printf("****************************************"). La trayectoria de referencia posee la forma: o r(t) = −3e−2t + 2sen(2t) + 2 . } 8. u = Aplica_Control(u).u). delete rb. u = (M*R/(Kact*n*K))*upar. for (int i=0. if(kbhit()) if(getch()==27) break. Resultados Experimentales La figura 8.7. fclose(out).7).printf("se~nal de control: u=%+5. gotoxy(15. t += T."). out = fopen("disnl. rb[i].11).printf("referencia : r=%+5.printf("****************************************"). } ant = act.3f".21).10 muestra el resultado experimental obtenido con el sistema de control de posici´n no lineal.3f". t).8. gotoxy(15. } EnviarVoltage(Ofst).

5 1 1.444 Control No Lineal √ Los polos√ sistema lineal equivalente se ubicaron en p1 = −10 2 − 10i y del o ıstica correspondiente a tales polos p2 = −10 2 + 10i.2843 y K2 = 300.5 5 1.1 El proceso p´ndulo no lineal mostrado en la figura 2. cuyo modelo se dese cribe en el ejemplo 2.5 Señal de control (voltios) 1 0.5 2 2.10: Resultado experimental del sistema de control de posici´n no o lineal para el servomotor D. tiempo de estabilizaci´n menor que 0.C. accionando una carga no lineal. Problemas Resueltos En la secci´n problemas resueltos de los cap´ o ıtulos 4 al 8. en uno o m´s archivos con extensi´n u a o m escritos en c´digo MATLAB. o 300 Posición (grados) 200 100 0 −100 0 0. o Problema 8.5 4 4. la soluci´n a los o problemas se encuentra.4 s y error en estado estable nulo.5 2 2.2. seg´n el caso.5 0 −0.5 3 Tiempo en segundos 3.5 5 Figura 8. Podemos observar en la figura 8. puede rotar libremente alrededor del pivote gracias a . 8.5 3 Tiempo en segundos 3.10 que la respuesta presenta sobreimpulso nulo.3.5 −1 0 0.5 4 4.2843s + 300 = 0 de donde obtenemos: K1 = 28.5 1 1.8. La ecuaci´n caracter´ es: s2 + 28.

65) que es una ecuaci´n no lineal debido al t´rmino senΘ. En la o figura 2. En dicha figura Bp =1.6350 m es la longitud o de la varilla de peso despreciable.3(a).8. X2 = Θ y como salida Y = X1 . Para la situaci´n mostrada en la figura 2. Mo =0.3(a) el torque resultante alrededor del pivote es: ¨ ˙ U = Mo L2 Θ + Bp Θ + Mo gLo senΘ o (8.81 o e o m/s2 es la aceleraci´n de la gravedad. Lo =1. La salida de inter´s es la posici´n angular θ del p´ndulo. Soluci´n: El proceso en estudio es univariable. Seleccionando como o e ˙ variables de estado X1 = Θ. f= f1 f2 = g − Lo senX1 − Bp x Mo L2 2 o X2 + 1 U Mo L2 o La ecuaci´n anterior posee una forma normal. una sola entrada o U actuando sobre el proceso y una sola salida: la posici´n angular. empleando o la siguiente ley de control: U = BX2 + M LgsenX1 + M L2 V ˙ obtenemos X2 = V .8 Problemas Resueltos 445 la acci´n de un torque externo U . se obtiene: ˙ X 1 = X2 Bp g 1 ˙ X2 + U X2 = − senX1 − Lo Mo L2 Mo L2 o o Y = X1 = h ˙ cuya representaci´n compacta resulta: X = f.3366 N-m/rad/s es o la fricci´n viscosa rotacional en el punto pivote. dise˜ar e o n un sistema de control no lineal empleando el m´todo de linealizaci´n por e o realimentaci´n. Definiendo e = r − X1 . donde: o X= X1 X2 . es decir. donde r es una trayectoria de referencia y seleccionando la se˜al V como: n ˙ V = r + K1 e + K2 e = X2 ¨ ˙ ¨ entonces la ecuaci´n del sistema lineal equivalente realimentado resulta: o ˙ e + K1 e + K2 e = 0.5 kg es la masa de la esfera y g=9. Por consiguiente. Los eigenvalores del sistema lineal equivalente realimentado o deben estar ubicados en 8 ± 8i. ¨ (s2 + K1 s + K2 )e(s) = 0 .

X1(4)=0. X2(1) =0. entonces: (s + 8 + 8i)(s + 8 − 8i) = s2 + 16s + 128.. Mo=0. dr(4)=0.01. X1(2)=0. X2(4)=0.3*dr(k-2) . X1(3)=0.[1 8-8i]).6350. ddr(k) = (dr(k) + 3*dr(k-1) .MM-3)..446 Control No Lineal Si las ra´ ıces del sistema realimentado son s1. ddr(4)=0. % POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5 pol = conv([1 8+8i]. MM=1000.MM*T.m SOLUCION DEL PROBLEMA 8. % PROCESO NO LINEAL DE ORDEN 2 DICRETIZADO X1(k+1) = X1(k) + T*X2(k). % LAZO DE CONTROL for k=4:MM r(k) = 2*sin(0. dr(3)=0.5. U(k) = Bp*X2(k)+Mo*Lo*g*sin(X1(k))+Mo*Lo^2*(ddr(k)+K1*dr(k). K2 = 128 Y = X1 = Θ . % CONDICIONES INICIALES: r(1) =0. r(2)=0. % trayectoria de referencia % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) . g=9.1 (PENDULO NO LINEAL) clear all % PARAMETROS DEL PROCESO Bp=1.r(k-3))/(6*T). ddr(3)=0. X2(2)=0. r(4)=0. % p8_1.m simula el sistema de control no lineal y los resultados se muestran en la figura 8. +K2*r(k)-K2*X1(k)-K1*X2(k)).3366.8*k*T).81.2 = −8 ± 8i. X2(3)=0. T = 0.11. K2 = pol(3). % POLINOMIO CARACTERISTICO K1 = pol(2). La se˜al V viene a ser: n ˙ V = r + K1 r + K2 r − K1 X1 − K2 X2 . X2(k+1) = X2(k) + T*(-(Bp/Mo*Lo^2)*X2(k)-(g/Lo)*sin(X1(k)).dr(k-3))/(6*T). ddr(1)=0. dr(2)=0. r(3)=0. dr(1) =0. +(1/Mo*Lo^2)*U(k))... Lo=1.3*r(k-2) . X1(1) =0. ddr(2)=0. K1 = 16. ¨ La ley de control toma la forma siguiente: r ˙ u = BX2 + M LgsenX1 + M L2 (¨ + K1 r + K2 r) − M L2 (K2 X1 + K2 X2 ) El programa p8 1. end % fin del lazo de control % GRAFICOS ejex = linspace(0.

11: Trayectoria de posici´n del p´ndulo (problema de seguimiento) o e y se˜al de control correspondiente al problema 8.U(4:MM)).2) plot(ejex.r(4:MM). grid ylabel(’Se~nal de control (N)’) xlabel(’Tiempo en segundos’) print -f -deps p8_1 % CREA EL ARCHIVO p8_1.8 Problemas Resueltos subplot(2. El objetivo de control es horizontal A=9 m controlar la altura H2 empleando el flujo Qo como se˜al de control.2 muestra dos tanques id´nticos colocados en cascada. El flujo de control no debe sobrepasar los 5 m3 /s y el tiempo o de estabilizaci´n de la salida debe ser menor que 20 s con error en estado o estable pr´cticamente nulo. grid ylabel(’Posicion (radianes)’) xlabel(’Tiempo en segundos’) subplot(2.ejex.X1(4:MM)). La secci´n e o 2 de cada tanque es constante.eps 4 Posición (radianes) 2 0 −2 −4 0 447 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 400 Señal de control (N) 200 0 −200 −400 −600 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10 Figura 8.8.1. Seleccionar apropiados tiempo de muestreo y a eigenvalores del sistema realimentado.1) plot(ejex.1.1 n Problema 8. Dise˜ar n n el sistema de control no lineal empleando el m´todo de linealizaci´n por e o realimentaci´n. .2 La figura 2.

z2 = φ2 (H) = Lf h(H) = c H1 − c z2 √ 2 + z1 ) c H2 Los estados originales en funci´n de los nuevos estados vienen a ser: o H2 = φ−1 (z) = z1 . ρ=1. f2 = f1 = − A A √ Operando con c = γ ρg/A obtenemos: h(H) = H2 . A g2 = 0 Lf h(H) = ∇(H)f = f2 c √ =0 2A H1 Lg Lf h(H) = ∇(f2 ) g = Luego. Y = h(H) = H2 . el sistema es completamente linealizable dado que su grado relativo es dos. o (la densidad del l´ ıquido) y g=9. g1 = 1 .448 Control No Lineal Soluci´n: En el ejemplo 2. 1 H1 = φ−1 (z) = ( 2 y la ecuaci´n de estado del nuevo sistema resulta: o z 1 = z2 ˙ z˙2 = L2 h(φ−1 (z)) + Lg L2 h(φ−1 (z)) = b(φ−1 (z)) + a(φ−1 (z))U f f donde: b(φ−1 (z)) = c2 2 cz2 √ −1 .4 (una constante que depende de la geometr´ del orificio). U = Qo donde: f = [f1 f2 ]T . H2 ]. g = [g1 g2 ]T . Seguimos operando: √ c2 H 2 √ 1 −2 Lf h(H) = ∇(Lf h(H)) f = ∇f2 f = 2 H2 c2 4A H1 H2 1 El nuevo conjunto de variables de estado resulta: Lg L2 h(H) = ∇(L2 h(H)) g = f f z1 = φ1 (H) = h(H) = H2 .23 ıa 2 (la aceleraci´n de la gravedad).81 m/s resultando: ˙ H = f + gU . siendo: √ √ γ ρg γ ρg [ H1 − H1 .1 se deriv´ el modelo no lineal del proceso con o o γ=0. z1 a(φ−1 (z)) = c2 √ √ 4A z1 (z2 /c + z1 ) .

% LEY DE CONTROL V(k) = ddr(k) + K1*dr(k) + K2*r(k) .m simula el sistema de control no lineal. ddr(4)=0.% K1=K2=0.6. ddr(1)=0. c=gamma*sqrt(rho*g)/A. % TRAYECTORIA DE REFERENCIA % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) .12. K2 = pol(3). MM=1000. . rho=1. T = 0.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL % PARA EL PROCESO HIDRAULICO (PROBLEMA 8_2) clear all % PARAMETROS DEL PROCESO NO LINEAL A=9.K1*z2(k).39 ˙ La se˜al V . con Y = H2 = z1 e Y = z˙1 = z2 .2 = −0. H1(4)=2. gamma=0.23.8.6) = s2 + 1. g=9. r(3)=0.25s + 0. El programa p8 2p9. r(2)=0.39. ddr(k) = (dr(k) + 3*dr(k-1) .25.6]. dr(2)=0.6)(s + 0. ¨ e=r−Y 449 se da lugar a la siguiente ecuaci´n caracter´ o ıstica del sistema linealizado realimentado: e + K1 e + K2 e = 0 ¨ ˙ Si las ra´ ıces deseadas del sistema son s1.[1 0. toma la forma final: n V = r + K1 r + K2 r − K2 z1 − K1 z2 ¨ ˙ 1 y la ley de control resulta: U = a (V − b). H2(4)=2. % CONVERSION DE ESTADOS z1(k)=H2(k). % p8_2p9.3*dr(k-2) . r(4)=0. % POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -8-8i y -8+8i pol = conv([1 0.3*r(k-2) . z2(k)=c*(sqrt(H1(k))-sqrt(H2(k)) ).6.dr(k-3))/(6*T). ddr(3)=0. Los resultados se muestran en la figura 8.05. % LAZO DE CONTROL for k=4:MM r(k) = 3. dr(4)=0. dr(1) =0.65]).r(k-3))/(6*T). % POLINOMIO CARACTERISTICO K1 = pol(2).81. dr(3)=0. T=0.01-0.8 Problemas Resueltos Definiendo una se˜al equivalente V con Y = H2 : n ¨ ˙ V = Y = r + K1 e + K2 e.K2*z1(k) . ddr(2)=0. entonces: (s + 0.07 Ts=20 % CONDICIONES Y PARAMETROS INICIALES r(1) =0. K1 = 1. K2 = 0.4.

eps Problema 8.MM*T. end % fin del lazo de control % GRAFICOS ejex = linspace(0.c*sqrt(H2(k)) ).ejex. elseif(U(k) < -Q) U(k)=Q.1.MM-3).r(4:MM). Q=5.H2(4:MM)).2) plot(ejex. grid ylabel(’Nivel (m)’) xlabel(’Tiempo en segundos’) subplot(2.2 respecu tivamente.1) plot(ejex. a(k) = c^2/( 4*A*sqrt(z1(k))*(z2(k)/c+sqrt(z1(k)) ) ). Se sabe que la salida es la posici´n x3 . if(U(k) > Q) U(k)=Q. o Soluci´n: La ecuaci´n de estado que describe al p´ndulo no lineal es: o o e  x1 ˙   x2   ˙     x3  =  ˙  x4 ˙   M2 (sin x1 )(cos x1 )x2 −Bx (cos x1 )x4 −(M1 +J2 )g(sin x1 )+Kx (cos x1 )KA u 2 (M2 (cos2 x1 )−(M1 +J2 )J1 )/M2 x2       x4 2 M2 g(sin x1 )(cos x1 )−J1 M2 (sin x1 )x2 +J1 Bx x4 −J1 Kx KA u 2 2 M2 (cos2 x1 )−(M1 +J2 )J1 De la ecuaci´n anterior de orden n=4 es f´cil deducir las expresiones de las o a funciones vectoriales f (x) y g(x).U(4:MM)). end % PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO H1(k+1) = H1(k) + T*(-c*sqrt(H1(k)) + (1/A)*U(k)). U(k) = (V(k)-b(k))/a(k). H2(k+1) = H2(k) + T*(c*sqrt(H1(k)) .450 Control No Lineal b(k) = (c^2/2)*( c*z2(k)/sqrt(z1(k))-1 ). Un proceso es exactamente linealizable .3 Determinar si es posible una linealizaci´n exacta de los procesos p´ndulo o e invertido no lineal y gr´a-puente descritos en las secciones 3. grid ylabel(’Flujo de control (m^3/s)’) xlabel(’Tiempo en segundos’) print -f -deps p8_2p9 % crea p8_2p9.1 y 3.1. subplot(2.

30 muestra el proceso servomotor con carga no lineal descrito en la secci´n 3.5 2 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50 5 Flujo de control (m^3/s) 0 −5 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50 Figura 8. u 8. Empleando el criterio de grado relativo en el proceso p´ndulo obtenemos: e h(x) = x4 Lf h(x) = ∇h(x) f = f4 (x) Lg Lf h(x) = ∇f4 (x) g(x) = 0 Luego. que es menor que el orden del proceso: n = 4. Por consiguiente.5 N/m/s.12: Nivel de salida y flujo de control para el problema 8. Lo mismo podemos aseverar para el proceso gr´a-puente. Problemas Propuestos Problema 8.2.5 451 Nivel (m) 3 2. Dise˜ar un sistema n . el proceso p´ndulo invertido no es exactamente e linealizable.9.8. en donde el eje de salida del mecanismo de reducci´n est´ suo o a jeto a la carga no lineal mediante una junta flexible que puede ser modelada como un resorte rotacional de constante Kω =0. si su grado relativo es igual al orden del proceso.4 La figura 3.9 Problemas Propuestos 3. el grado relativo resulta r = 2.3.

452 Control No Lineal de control no lineal que emplee el m´todo de linealizaci´n por realimentaci´n e o o para controlar la posici´n angular de la carga no lineal. Determinar si el proceso descrito es completamente linealizable. Considerar dos casos: (a) cuando la inductancia de armadura es despreciable. La uni´n de la carga con el eje del servomotor no es flexible. y (b) cuando no lo es Problema 8. y (b) cuando no lo es. Problema 8. Seleccionar el tiempo n de muestreo y los eigenvalores apropiados del sistema lineal equivalente realimentado. en donde la carga no lineal posee ahora dos grados de o o libertad con Lo = 2L1 /3 y Mo =0. Si lo es.5 Demostrar las propiedades de bilinealidad. anticonmutatividad y de Jacobi establecidas en el lema 8. Las especificaciones o de dise˜o son: error en estado estacionario nulo y tiempo de establecimiento n menor que 1 s para una se˜al de referencia arbitraria. Considere dos casos: (a) cuando la inductancia de armadura es despreciable.6 La figura 3.2. Las ecuaciones que describen la din´mica del a sistema son materia del problema 3.02 kg. .12. dise˜ar un sistema de control no lineal n con linealizaci´n de la realimentaci´n para controlar simult´neamente las o o a posiciones θ y τ con m´ ınimo tiempo de estabilizaci´n y m´ o ınimo sobreimpulso.31 muestra el proceso servomotor con carga no lineal descrito en la secci´n 3.3.1 y luego demostrar el teorema 8.

Englewood Cliffs. Facultad de Ingenier´ El´ctrio ıa e ca y Electr´nica de la Universidad Nacional de Ingenier´ Per´. 1889–1913. Sofonov. 1987. Per´. UK: The MIT Press Cambridge. Control No Lineal de Servosistemas. Digital Control System Analysis and Design. [6] M. Tupayachi-Calder´n. u Cap´ ıtulo III. Prentice Hall. Ponce-Dioses . [3] Katsuhiko Ogata. Tesis para o optar el T´ ıtulo de Ingeniero Electr´nico. Sistemas de Control en Tiempo Discreto. J. 1996-II. 1996 e o [4] Charles L. Grant Fisher. Rao Sripada y D. 6. 46. u ıtulo VI. M´xico. Springer-Verlag London Limited 1999.A. Tesis para optar el T´ ıtulo de Ingeniero Electr´nico. Model Predictive Control. Stability and Robustness of Multivariable Feedback Systems. u [8] Eduardo F. Control de Servo Sistemas No Lineales Usando Redes Neuronales. De Keyser. Piura. Cap´ ıa. Phillips y H. Troy Nagle. no. MA. Facultad de Ingenier´ El´ctrica y Electr´nica de la Universidad o ıa e o Nacional de Ingenier´ Per´. In PADI2 International Conference on Control Engineering and Signal Processing. “A Gentle Introduction to Model Based Predictive Control”. Dic. segunda edici´n. vol. o ıa. . 1998. Prentice Hall Hispanoamericana S. [7] R. Control.Bibliograf´ ıa [1] Omar A. London. 1980. “Improved Least Squares Identification”. G. pp. segunda edici´n. 1995-I.. o Aplicaci´n: Manipulador de Robot de un Grado de Libertad. Camacho y Carlos Bordons. Int. New Jersey. 1990 o [5] N. [2] Alexander L.

Chicago. Louis y otras. Springer-Verlag. New York St. San Francisco. [18] Murray R. Prentice Hall. McGraw-Hill. McGraw-Hill M´xico Panam´ Bogot´ y otras. Volume 1. 1986. 1988. Rinehart and Winston. Barrera Rivera.A. 1983. Ph. M´xico. Hostetter. An´lisis de Sistemas Din´micos a a y Control Autom´tico. segunda edici´n. e a a 1973 (o ediciones m´s recientes). a McGraw-Hill M´xico Panam´ Bogot´ y otras. UT.D.. Digital Control Systems. Canales Ruiz y R. Germany. Oppenheim y Alan S. S. Rojas-Moreno. Sydney. a . New York. serie de compendios Schaum. Brian P. New Jersey 07632. 1977. An Introduction to StateSpace Methods. Philadelphia. 1989. a e [11] A. Cambridge. Inc. Holt. Design of Self-tuning Controllers for Processes Having Multiple Unknown Time-varying Delays. [15] Gene H. New Jersey 07632. Tokyo. Editorial Limusa. a McGraw-Hill M´xico Panam´ Bogot´ y otras.454 BIBLIOGRAF´ IA [9] Manfred Morari y Evanghelos Zafiriou. [16] William H. M´xico-Englewood Cliffs-Londres-Sidney e y otras. Willsky. [12] Rolf Isermann.. Spiegel. An´lisis Vectorial. Spiegel. [20] Donald M. Inc. Wiberg. Espacio de Estado y Sistemas Lineales. Toronto. Press. [10] R. 1973 (o ediciones m´s e a a a recientes). serie de compendios Schaum. Logan. [19] Murray R. 1988. 1995. Montreal. PTR Prentice Hall. Teukolosky.. 1991. Applied Nonlinear Control. [14] Alan V. Englewood Cliffs. London. serie de compendios Schaum. Cambridge University Press. Control System Design. Se˜ales y Sistemas Prenticen Hall Hispanoamericana. Numerical Recipes in C. Slotine y Weiping Li. 1989 o [13] Jean-Jacques E. C´lculo Superior. Flannery y Saul A. Robust Process Control. 1973 (o ediciones m´s e a a a recientes). Digital Control System Design. Utah State University. Englewood Cliffs. [17] Bernard Friedland. Thesis.

o . 1998. Prentice Hall. a [23] MathWorks. primera edici´n. Inc. New Jersey. o [24] MathWorks. 1973 (o ediciones m´s recientes). e a a a [22] Murray R. McGraw-Hill M´xico Panam´ Bogot´ y otras. SIMULINK User’s Guide. Prentice Hall. o [25] Lab-PC+ User Manual. MATLAB Reference Guide. Transformada de Laplace.. Matrices. Englewood Cliffs. Part Number 320502B-01.BIBLIOGRAF´ IA 455 [21] Frank Ayres Jr. Inc. Spiegel. serie de compendios Schaum. Englewood Cliffs. serie de compendios Schaum.. primera edici´n. National Instruments Corporation.. 1973 (o edie a a ciones m´s recientes). McGraw-Hill M´xico Panam´ Bogot´ y otras. edici´n de agosto de 1994. 1996. New Jersey.

358 para procesos inestables. o 294 salida del modelo en el. 289 modelo paralelo en el. 408 Campos vectoriales integrables. 66 ˜ Controlador optimo H2 : qH (z). 300 Control predictivo:respuesta libre del. 299 Control robusto para procesos estables. 290 Control predictivo basado en modelos. 286 a Control no lineal de un servosistema de posici´n. 127 Control adaptivo de un servomotor no lineal. 353 incertidumbres del modelo en el. 303 modelo CARIMA del.´ Indice alfab´tico e Actuador. 376 Controlabilidad. 412 involutivos. 129 no estacionario. 126 estacionario. 126 Control optimo cuadr´tico. 147 e discreto. 293 predicci´n del disturbio en el. 224 Control con modelo interno estructura del. 304 ley de control del. 126 ´ a de la gr´a puente. 372 ´ . 290 modelo del predictor en el. 231 Amplificador de potencia. 355 representaciones del. 160 Campo vectorial suave. 351 Control matricial din´mico. 355 modelo del proceso en el. 413 CMI: control con modelo interno. 292 modelo del proceso del. 292 modelo serie/paralelo en el. 424 o Control predictivo del servomotor no lineal. 286 Control predictivo:respuesta forzada del. 289 ley de control con restricciones del. 181 u del p´ndulo invertido. 370 Control robusto de un servomotor no lineal. 235 ´ Control optimo ´ concepto. 285 principios del. 351 estructuras alternativas del. 351 Codificador optico. 306 disturbio del proceso en el. 159 ´ codificador optico.

129 Funci´n de transferencia de pulso. 161. 416 Frobenius teorema de. 363. 33 o . 5 de una matriz. 140 ´ Ley de control no lineal. 58 o espacio de. 361 Controlador CMI q (z). 20 o Forma cuadr´tica. 374 Forma bilineal. 21 o Definici´n de matrices. 79 Grado relativo. 362. 221 proporcional integral. 34 Ecuaci´n de Riccati. 58 o Ecuaci´n de transferencia. 410 Discretizaci´n directa. 19 Eigenvector. 62 diagonal. 126 o cuadr´tica discreta. 413 Funci´n de costo. 55 variables de. 33. 298 funci´n de costo del. 223 Controlador optimo cuadr´tico H2 : ´ a qH (z). 5 propiedades. 221 o 457 Filtro de Kalman. 61 Forma can´nica de Jordan. 21 Forma can´nica.´ ´ INDICE ALFABETICO Controlador optimo cuadr´tico ´ a proporcional. 443 Independencia de vectores. 298 a n Corchete de Lie. o 53 Gr´a-puente. 155. 33. 373 ˜ Controlador predictivo. 79 u modelo. 43 o Ecuaci´n caracter´ o ıstica. 6 Diagonalizaci´n de matrices. 20 a Forma normal. 410 Definici´n de Matrices. 408 Determinante. 34 o Ecuaci´n del observador no lineal. 33 ecuaci´n de. 236 Jacobiano. o 422 Eigenvalor. 417 Linealizaci´n de procesos. 33 vector de. 364 Estabilidad robusta. 415 Hardware del sistema de control. 60 o controlable. 33. 21 o Derivada de Lie. 61 observable. 16 Interfaz Lab-PC+. 377. 360 ˜ para entradas t´ ıpicas. 314. 129 o Ecuaci´n de salida. 55 Estabilidad interna. 410 local. 374 Estado. 351 Estabilidad Robusta. 19 Espacio de estado discreto. 127 a m´ ınima. 15 Ley de control optima. 221 Filtro discreto CMI. 60 de Jordan. 127. 298 o objetivo del. 19 o Difeomorfismo. 128. 409 Corchetes de Lie propiedades de los. 33 Estimaci´n de estados. 298 par´metros de dise˜o del.

4 unitaria. 290 Muestreo y reconstrucci´n. 420 Linealizaci´n por realimentaci´n. 5 identidad. 3 P´ndulo invertido. 3 Matriz. 14 diagonal. 68 Observador optimo cuadr´tico. 34 de observabilidad generalizada. 1 antihermitiana. 21 integral de una. 5 peri´dica. 3 jacobianas. 138 ´ a Observadores no lineales. 21 derivada de una. 72 Plano de fase. 4 triangular superior. 5 indefinida. 1 Observabilidad. 213 Matrices. 209 Modelo CARIMA. 210 e m´todo mejorado de los. 34 lema de inversi´n de. 7 o multiplicaci´n de. 21 sim´trica. 5 orden de una. 19 forma can´nica de Jordan. 5 e cero. 20 o ´ ´ INDICE ALFABETICO hermitiana. algoritmo. 132 o diagonalizaci´n de. 40 o Nomenclatura. 420 Operaci´n con vectores. 5 transpuesta. 4 traza de una. 34 definida negativa. 5 norma de una. 3 o que conmutan. 3 de ponderaci´n. 5 antisim´trica. 6 nilpotente. 213 e mejorado. 21 definida positiva. 19 suma de. 14 inversa de una. 5 o rango de una. 34 de estado. 34 de disturbios. 71 e control optimo del. 211 m´todo de los. 417 o condiciones para. 33 Predictor. 4 de control. 19 o iguales. 16 o Operaciones con matrices. 1 ortogonal. 147 ´ modelo. 21 semidefinida positiva. 3 similares. 3 cuadrada. 4 triangular inferior. 18 normal. o o 407 M´ ınimos cuadrados recursivo algoritmo. 18 semidefinida negativa.458 Linealizaci´n exacta. 292 Prefiltro . 34 de transferencia. 4 eigenvalor de una. 5 Modelando procesos no lineales. 19 eigenvector de una. 5 e singular. 420 de salida.

359. 359 Tipos de matrices. 378. 27 o inversa. 162. 208 con autosintonizaci´n. 131 proporcional integral. 34 Vector. 375 Respuestas libres y forzadas. 365. 141 Rendimiento nominal. 33 Regulador optimo cuadr´tico ´ a proporcional. 47 o f´rmulas notables. 42 Tipo de sistemas.´ ´ INDICE ALFABETICO dise˜o del. 8 Variables residuales. 299 Retenci´n de orden cero. 208 o Software de control. 411 Transformada de Laplace. 16 o ortonormales. 27 propiedades. 16 459 . 49 definici´n. 86 Sistema causal y estrictamente causal. 355 Sistema de control adaptivo. 86 modelo. 210 o de par´metros. 4 Transformaci´n no lineal de estao dos. 47 de secuencias. 235 o Servomotor DC no lineal. 35 Proceso multivariable. 58 Teorema del muestreo. 43 o Sensor(es) de posici´n. 33 Proceso univariable. 359 n Proceso estable e inestable. 443 Soluci´n de la ecuaci´n de estado. 27 f´rmulas notables. 65 Puntos de equilibrio. 15 norma de un. 237. 372 Rendimiento robusto. 2 de informaci´n. 27 Transformada Z. 51 propiedades. 17 Vectores. 16 independencia de. 16 operaci´n con. 314. 158. o o 55. 210 a derivada de un. 50 o inversa. 48 Valor absoluto. 34 Procesos con tiempo muerto. 15 integral de un.

Sign up to vote on this title
UsefulNot useful