Вы находитесь на странице: 1из 473

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
Diseo y Aplicaciones en Tiempo Real n
Copyright c 2001 Arturo Rojas-Moreno. Reservados todos los derechos. ISBN 9972931803 Ni todo el libro ni parte de esta publicacin puede ser reproducida, archivada, o transmitida o distribuida en forma alguna o mediante algn medio electrnico, u o mecnico, o de otra a ndole, sin que exista previamente y por escrito el permiso de autorizacin del autor. o

Dedicatoria

A mi Familia A mi Alma Mater

Indice general
Dedicatoria Prefacio 1. Matemtica Asistida con Computadora a 1.1. Clculo 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. Anlisis Vectorial . . . . . . . . . . . . . . . . . . . . . . . a 1.2.1. Independencia, Ortonormalidad y Normas . . . . . 1.2.2. Rango de una Matriz, Eigenvalores y Eigenvectores 1.2.3. Diagonalizacin de Matrices . . . . . . . . . . . . . o 1.2.4. Formas Cuadrticas y Bilineales . . . . . . . . . . a 1.3. La Transformada de Laplace . . . . . . . . . . . . . . . . 2. Sistemas Discretos 2.1. Diseo de Sistemas de Control Digital . . n 2.2. Concepto de Estado y Variables de Estado 2.2.1. Linealizacin de Procesos . . . . . o 2.3. Fundamentos de Sistemas Discretos . . . . 2.3.1. Muestreo y Reconstruccin . . . . o 2.3.2. La Transformada Z . . . . . . . . . 2.3.3. La Transformada Z Inversa . . . . 2.3.4. Funcin 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 Pndulo Invertido . . . . . . . . . . e 3.1.1. Modelo del Subsistema Carro-Pndulo . . . . . . e 3.1.2. Modelo del Subsistema Motor-Polea . . . . . . . 3.1.3. Representacin en el Espacio de Estado . . . . . o 3.1.4. Obtencin del Modelo Lineal . . . . . . . . . . . o 3.1.5. El Modelo en el Espacio de Estado Discreto . . . 3.2. Modelo del Proceso Gra-Puente . . . . . . . . . . . . . u 3.2.1. Modelo del Subsistema Carro-Varilla . . . . . . . 3.2.2. Modelo del Subsistema Motor-Polea . . . . . . . 3.2.3. Representacin en el Espacio de Estado . . . . . o 3.2.4. Obtencin del Modelo Lineal . . . . . . . . . . . o 3.2.5. El Modelo en el Espacio de Estado Discreto . . . 3.2.6. Resumen de Variables y Parmetros . . . . . . . a 3.2.7. Identicacin de la Zona Muerta del Servomotor o 3.3. Modelo del Servomotor D.C. No Lineal . . . . . . . . . . 3.3.1. El Subsistema Mecnico . . . . . . . . . . . . . . a 3.3.2. El Subsistema Elctrico . . . . . . . . . . . . . . e 3.3.3. Conversin de Energ Elctrica en Mecnica . . o a e a 3.3.4. Modelo y Compensacin de no Linealidades . . . o 3.3.5. Linealizacin y Discretizacin del Proceso . . . . o o 3.4. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . 3.5. Problemas Propuestos . . . . . . . . . . . . . . . . . . . 4. Control Optimo 4.1. Introduccin . . . . . . . . . . . . . . . . . . o 4.2. Control Optimo Cuadrtico No Estacionario a 4.3. Control Optimo Cuadrtico Estacionario . . a 4.4. El Regulador Optimo Proporcional . . . . . 4.5. 4.6. 4.7. 4.8. 4.9.

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

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

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seleccin de las Matrices de Ponderacin . . . . . . . . . . o o Diseo del Observador Optimo Cuadrtico . . . . . . . . . n a El Regulador Optimo Proporcional Integral . . . . . . . . Procedimiento de Diseo e Implementacin . . . . . . . . n o Control Optimo Cuadrtico del Pndulo Invertido . . . . a e 4.9.1. Formulacin del Problema . . . . . . . . . . . . . . o 4.9.2. El Modelo del Proceso a Controlar . . . . . . . . . 4.9.3. Clculo de la Matriz de Ganancia del Controlador a 4.9.4. Clculo la Matriz de Ganancia del Observador . . a

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

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

INDICE GENERAL 4.9.5. Simulacin del Sistema de Control Optimo . . . . o 4.9.6. El Hardware del Sistema de Control . . . . . . . . 4.9.7. Implementacin del Software de Control . . . . . . o 4.9.8. Resultados Experimentales . . . . . . . . . . . . . 4.10. Control Optimo Cuadrtico de la Gra-Puente . . . . . . a u 4.10.1. Formulacin del Problema . . . . . . . . . . . . . . o 4.10.2. Simulacin 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. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . o 5.2. Modelando Procesos No Lineales . . . . . . . . . . . . . 5.3. Procedimientos de Estimacin . . . . . . . . . . . . . . . o 5.3.1. El Mtodo de los M e nimos Cuadrados Recursivo 5.3.2. M nimos Cuadrados Recursivo Mejorado . . . . . 5.3.3. Estimacin de Estados . . . . . . . . . . . . . . . o 5.4. La Ley de Control . . . . . . . . . . . . . . . . . . . . . 5.5. Procedimiento de Diseo . . . . . . . . . . . . . . . . . . n 5.6. Control Adaptivo de un Servomotor No Lineal . . . . . 5.6.1. Formulacin del Problema . . . . . . . . . . . . . o 5.6.2. El Modelo del Proceso . . . . . . . . . . . . . . . 5.6.3. Estimacin de Parmetros . . . . . . . . . . . . . o a 5.6.4. Estimacin de Estados . . . . . . . . . . . . . . . o 5.6.5. La Ley de Control . . . . . . . . . . . . . . . . . 5.6.6. La Ley de Control Residual . . . . . . . . . . . . 5.6.7. Simulacin del Sistema de Control Adaptivo . . . o 5.6.8. Implementacin del Hardware . . . . . . . . . . . o 5.6.9. Implementacin 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. Prediccin de y(t + k/t) . . . . . . . . . . . . o 6.4.2. Prediccin 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 Diseo . . . . . . . . . . . . . . . . n 6.7. Control de Posicin de un Servomotor . . . . . . . . o 6.7.1. Formulacin del Problema . . . . . . . . . . . o 6.7.2. Respuesta Libre del Proceso . . . . . . . . . . 6.7.3. Respuesta del Proceso al Escaln . . . . . . . o 6.7.4. La Ley de Control . . . . . . . . . . . . . . . 6.7.5. Simulacin del Sistema de Control Predictivo o 6.7.6. Implementacin 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. Formulacin del Problema CMI . . . . . . . . . . o 7.2.1. El Modelo del Proceso . . . . . . . . . . . 7.2.2. Descripcin 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 Diseo . . . . . . . . . . . . . . n 7.6. Control Robusto de un Servomotor No Lineal . . 7.6.1. Formulacin del Problema . . . . . . . . . o 7.6.2. Diseo del Sistema de Control Robusto . n

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

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

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

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

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

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

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

INDICE GENERAL 7.6.3. Simulacin del Sistema de Control Robusto o 7.6.4. Implementacin del Hardware . . . . . . . . o 7.6.5. Implementacin 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 Matemticas . . . . . . . . . . . . . . a 8.1.1. Derivadas y Corchetes de Lie . . . . . . . . . 8.1.2. Difeomorsmo y Transformacin de Estados . o 8.1.3. Transformacin 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. Linealizacin Exacta y la Ley de Control . . . . . . . o 8.5. Observadores No Lineales . . . . . . . . . . . . . . . 8.6. Procedimiento de Diseo . . . . . . . . . . . . . . . . n 8.7. Control No Lineal de un Servosistema . . . . . . . . 8.7.1. Formulacin del Problema . . . . . . . . . . . o 8.7.2. Modelo del Proceso . . . . . . . . . . . . . . . 8.7.3. Determinacin del Grado Relativo . . . . . . o 8.7.4. Comprobar Linealizacin Exacta . . . . . . . o 8.7.5. La Forma Normal . . . . . . . . . . . . . . . 8.7.6. La ley de Control No Lineal . . . . . . . . . . 8.7.7. Diseo del Observador No Lineal de Estados n 8.7.8. Simulacin del Sistema de Control No Lineal o 8.7.9. Implementacin del Hardware . . . . . . . . . o 8.7.10. Implementacin del Software . . . . . . . . . o 8.7.11. Resultados Experimentales . . . . . . . . . . 8.8. Problemas Resueltos . . . . . . . . . . . . . . . . . . 8.9. Problemas Propuestos . . . . . . . . . . . . . . . . . . . Bibliograf a Indice alfabtico 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 dramtico y pera manente desarrollo de dispositivos y equipos basados en tcnica digital, tales e como microcontroladores, tarjetas de desarrollo para procesamiento digital de seales, sistemas encapsulados, computadoras industriales, sistemas de n adquisicin de datos, entre otros. Tales dispositivos y equipos, que cada vez o son ms pequeos y de menor costo, pero paradjicamente ms potentes, a n o a han provocado que actualmente la gran mayor de los sistemas de control a se diseen basados en tcnicas digitales. n e Con respecto a las tcnicas empleadas en el dise o de los sistemas de cone n trol, podemos observar en la industria que cada vez son ms las aplicaciones a basadas en tcnicas no tradicionales, las cuales denominaremos tcnicas de e e control avanzado. En este contexto, las tcnicas de control avanzado que e han logrado mayor aceptacin son las siguientes: control predictivo, control o no lineal, control robusto, control adaptivo, control optimo, entre otras. La literatura tcnica y las publicaciones para cada una de ellas, es de hecho e abundante pero lamentablemente esparcida, de modo que el tratamiento aislado de cada tcnica puede consumir gran cantidad de tiempo y esfuerzo. e Esta publicacin integra en un solo volumen, los fundamentos y los proo cedimientos encaminados al diseo de sistemas de control avanzado y su n correspondiente implementacin en tiempo real. El material desarrollado o basa sus fundamentos en la representacin de los sistemas de control en el o espacio de estado discreto. Sin embargo, no se deja de mencionar y de tratar el punto de vista tradicional, cuando sea necesario. He sido muy cuidadoso en cubrir con amplitud y con la claridad del caso, empleando muchas veces ejemplos explicativos, aquellos conceptos fundamentales requeridos para un mejor entendimiento del material presentado. Las aplicaciones en tiempo real desarrolladas para validar los mtodos de e

XII

Prefacio

diseo presentados en los cap n tulos del cuatro al ocho, constituyeron proyectos de investigacin realizados en la Seccin de Postgrado de la Facultad de o o Ingenier Elctrica y Electrnica de la Universidad Nacional de Ingenier a e o a (http://ee.uni.edu.pe), casa de estudios de la cual soy docente. Herramientas Computacionales La gran mayor de los ejercicios y problemas formulados en este libro se a desarrollan con el auxilio de la computadora personal. Espec camente, para el desarrollo de los ejemplos y problemas, y para la simulacin de las aplicao ciones, se emplea el software MATLAB (versin 4.2) con sus herramientas o Control Systems, Signal Processing y SIMULINK. El software para las aplicaciones en tiempo real est escrito en C/C++ de Borland, versin a o 4.52. Evidentemente, los programas elaborados tambin pueden ejecutarse e en versiones de software ms actualizadas. Los programas fuente se pueden a descargar de mi pgina web: http:/ee.uni.edu.pe/728681F. Antes de a emplear tales programas, leer el archivo README.TXT. Sistema de Unidades y Acentuacin en Programas Fuente o Esta publicacin emplea el Sistema Internacional (SI) de unidades. Para o separar la parte entera de la parte decimal de los nmeros decimales, seguireu mos usando el punto (.) en lugar de la coma (,), debido a que los paquetes de software MATLAB y Borland C/C++ slo permiten emplear el puno to (.) para expresar nmeros decimales. Como tales paquetes de software u no emplean el acento ortogrco, en los listados de los programas fuente a prescindiremos de tal acentuacin. o Sobre el Contenido de los Cap tulos Cap tulo 1: Matemtica Asistida con Computadora. Describe a en forma sucinta algunos tpicos de matemticas aplicadas (bsicamente o a a anlisis matricial y vectorial) necesarios para el desarrollo de los cap a tulos posteriores. La mayor de los ejemplos se desarrollan con el auxilio del a software MATLAB. De all la razn del nombre del cap o tulo. Cap tulo 2: Sistemas Discretos. Presenta los conceptos fundamentales acerca de los sistemas de control realimentados operando en el tiempo discreto, y la representacin de los mismos en el espacio de estado. o Cap tulo 3: Modelacin de Procesos. En este cap o tulo se desarrolla la modelacin de los tres procesos, cuyos sistemas de control avanzado van a o

XIII

ser implementados en tiempo real. Tales procesos son: el pndulo invertido, e la gra-puente y el servomotor D.C. (Direct Current) sujeto a cargas no u lineales. En su seccin problemas, el cap o tulo presenta la modelacin de o diversos procesos t picos. Cap tulo 4: Control Optimo. Desarrolla los fundamentos del control o ptimo cuadrtico discreto y dos aplicaciones en tiempo real: control optimo a de posicin del pndulo invertido y control optimo de posicin de la grao e o u puente. En su seccin problemas, el cap o tulo desarrolla diseos de sistemas n de control optimo cuadrtico para varios procesos t a picos. Cap tulo 5: Control Adaptivo. Discute brevemente acerca de los principales sistemas de control adaptivo, para luego presentar en detalle el procedimiento de diseo de un sistema de control adaptivo con autosinn tonizacin. El procedimiento desarrollado se aplica para implementar en o tiempo real el control adaptivo con autosintonizacin de la posicin de un o o servomotor D.C. operando con carga no lineal y variable. En su seccin o problemas, el cap tulo presenta diseos de sistemas de control adaptivo con n autosintonizacin para varios procesos t o picos. Cap tulo 6: Control Predictivo. Presenta los fundamentos del control predictivo basado en modelos y desarrolla una aplicacin en tiempo o real: control predictivo de la posicin de un servomotor D.C. sujeto a cargas o no lineales empleando el algoritmo de la matriz dinmica de control. En su a seccin problemas, el cap o tulo desarrolla diseos de sistemas de control pren dictivo para diversos procesos t picos, naturalmente, empleando el algoritmo de la matriz dinmica de control. a Cap tulo 7: Control Robusto. Trata los fundamentos del control robusto basado en la tcnica de control con modelo interno. A continuacin, e o dicha tcnica se aplica para el control robusto en tiempo real de la posicin e o de un servomotor D.C. modelado con incertidumbres. Tambin, en su sece cin problemas, el cap o tulo desarrolla diseos de sistemas de control robusto n para diversos procesos t picos, empleando el algoritmo de control con modelo interno. Cap tulo 8: Control No Lineal. Desarrolla los fundamentos relacionados con el control no lineal de procesos empleando la tcnica denominae da linealizacin por realimentacin. Para validar los fundamentos de dicha o o tcnica, se desarrolla el diseo e implementacin del sistema de control por e n o linealizacin de la realimentacin de la posicin de un servomotor D.C. no o o o lineal. En su seccin problemas, el cap o tulo desarrolla diseos de sistemas n de control no lineal para diversos procesos t picos.

XIV

Prefacio

Pre-requisitos y Conguracin de Cursos o Por su contenido y su presentacin, este volumen puede ser usado como libroo texto en las especialidades de Ingenier Elctrica, Electrnica, Mecnica a e o a y/o Mecatrnica, para el dictado de un curso semestral, tanto de antegrado o (a llevarse en los ultimos semestres) como de postgrado. Para un curso de antegrado se sugiere desarrollar los cap tulos 1, 2, 3, 4 y 6, y tratar sucintamente los cap tulos 5, 7 y 8. Para un curso de postgrado se sugiere cubrir los cap tulos 3 al 8, quedando los cap tulos 1 y 2 como medio de consulta. Por su carcter aplicativo, por el tratamiento claro y fcilmente coma a prensible del material presentado y gracias a la gran cantidad de ejemplos, problemas y aplicaciones desarrollados, este libro puede ser empleado tambin por la gran audiencia de ingenieros y tcnicos especializados que ejercen e e en la industria y por los investigadores de otras areas (f sicos, matemticos, a entre otros) que deseen familiarizarse con las tcnicas digitales para disear e n e implementar en tiempo real sistemas de control avanzado. Agradecimientos La publicacin de este libro fue nanciada en parte por el Instituto Geneo ral de Investigacin de la UNI. Mi agradecimiento a su Director, Dr. Guillero mo Lira. Mi gratitud especial a mis alumnos que colaboraron con esta publicacin: Leonardo Gushiken (cap o tulos 3 y 4), Omar Tupayachi (cap tulos 3 y 8) y Ral Benitez (cap u tulos 6 y 7). Luis Lecina (alumno de la Universidad Politcnica de Catalua) colabor con el cap e n o tulo 5. La revisin de todo lo o escrito estuvo a cargo de mi alumna Claudia Crdova, mientras que Rommel o Romero (mi futuro alumno) se encarg de todo lo relativo a la impresin del o o libro. Arturo Rojas Moreno, Ph.D. arojasm@viabcp.com arojas@uni.edu.pe http://ee.uni.edu.pe/728681F

Cap tulo 1

Matemtica Asistida con a Computadora


Este cap tulo es una breve exposicin de los fundamentos matemticos relao a cionados con el anlisis matricial, el anlisis vectorial y la transformada de a a Laplace. El material seleccionado est estrechamente relacionado con el matea rial a desarrollarse en los cap tulos siguientes. Para mayores detalles del material cubierto se recomienda consultar las referencias [18], [19], [20], [21], [22], [14] y el apndice A de [3]. Los clculos, en su gran mayor se realizan con el auxe a a, ilio del paquete MATLAB. Todos los archivos correspondientes a los ejercicios desarrolados se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

1.1.
1.1.1.

Clculo Matricial a
Operaciones y Tipos de Matrices

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

Matemtica Asistida con Computadora a

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

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

donde el asterisco denota la operacin convolucin, t y k son los tiempos o o continuo y discreto, s y z son las variables laplaciana y zeta, G(s) y G(z) son funciones de transferencia y, g(t) y g(k) son las respuestas del sistema a un impulso unitario. Ms adelante veremos que el asterisco tambin denota a e la operacin conjugada en expresiones complejas. 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. Por ejemplo, los estados de equilibrio de A(k) e Y(k) son A(k) e Y(k) respectivamente. En muy contados casos, la barra sobre una variable tiene el signicado de seal reconstruida por un dispositivo de retencin. n o En el caso de vectores variantes con el tiempo (continuo o discreto), y cuando sea necesario, emplearemos variables reducidas (escritas con letra minscula), las cuales tambin se denominan variables de desviacin o u e o perturbacionales. Por ejemplo, la variable reducida de Y(k) es: y(k) = Y(k) Y(k)

1.1 Clculo Matricial a

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

cij =
k=1

aik bkj ;

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

Por ejemplo: a11 a12 a13 a21 a22 a23

b11 b21 = b31

c11 c21

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

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

Matemtica Asistida con Computadora a

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

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

1.1 Clculo Matricial a

La matriz identidad I, denotada tambin como In (n es el orden de e la matriz), es una matriz diagonal que slo posee unos. Si A es cuadrada, o AI = IA, y en general se cumple que: A es simtrica si: e A es antisimtrica si: e A es ortogonal si: A es peridica si: o A es nilpotente si: A es hermitiana si: A es antihermitiana si: A es unitaria si: A es normal si: A1 es inversa de A si: A es singular si: AT = A AT = A AAT = AT A = I A+1 = A; A = 0;
T

es un entero positivo es un entero positivo

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

donde det(A) denota el determinante de A, punto que se trata en la siguiente subseccin. o Una matriz cuadrada A con elementos complejos puede ser escrita como la suma de una matriz hermitiana B = 1 (A + AH ) ms una matriz a 2 antihermitiana C = 1 (A AH ). Es decir: 2 1 1 A = B + C = (A + AH ) + (A AH ) 2 2

1.1.2.

Determinantes y Matriz Inversa

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

Para obtener el determinante de una matriz de orden n > 2 podemos emplear el mtodo de la expansin. Si tomamos como base la primera la, 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 ) +

Matemtica Asistida con Computadora a

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

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

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

1.1 Clculo Matricial a Si A es una matriz no singular de orden 3:


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

e h d g d g

f i f i e h

det det det

b h a g a g

c i c i b h

det det det

b e a d a d

c f c f b e

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

(1.5)

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

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

Valor Absoluto. Si g = gr + jgi es un nmero o una funcin real o u o compleja, su valor absoluto, conocido tambin como mdulo o magnitud y e o denotado como |g|, es un nmero real positivo o cero. El angulo de g en rad u se denota como g. Si e[.] e m[.] son los operadores real e imaginario respectivamente, entonces se cumple que: e[g] = gr ; |g| = m[g] = gi ; g = e[g] + j m[g] = |g|g g = arctan m[g] e[g]

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

Matemtica Asistida con Computadora a

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

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

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

Solucin: El programa en MATLAB para calcular B es el siguiente: o


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

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

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

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

1.1 Clculo Matricial a

Cuadro 1.1: Comandos para cmputo matricial o Operacin o Suma Resta Multiplicacin o Multiplicacin o Conjugada Transpuesta (A real) Transpuesta (A compleja) Hermitiana Potencia Determinante Inversa Divisin izquierda o Divisin derecha o Valor absoluto Angulo Parte real Parte maginaria Traza Matriz identidad Cdigo MATLAB o A + B A - B A*B kappa*A conj(A) A conj(A); A. A A^n det(A) inv(A) A*X = B; X = A\B X*A = B; X = B/A abs(A) angle(A) real(A) imag(A) trace(A) eye(n)

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

|A| A [A] [A]


n i=1 aii

In

10

Matemtica Asistida con Computadora a

Solucin: Las matrices pedidas son: o 1 B = (A + AH ); 2


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

1 C = (A AH ) 2

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

Ejemplo 1.3 Multiplicacin con Particin de Matrices.- 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= B= ; . . . . Ann m1 Ann mm Bmm p1 Bmm pp La condicin necesaria para realizar el producto Cnp = Anm Bmp empleando o particiones, es que las columnas de A y las las de B sean particionadas en la misma forma. Por tanto, n = n1 + + nn , m = m1 + + mm y p = p1 + + pp . Determinar si el producto siguiente es vlido y si lo es, a obtener C = AB. B22 B23 A22 A23 A21 AB = A32 A33 A31 B32 B33 A42 A43 A41 B12 B13 Solucin: Podemos notar que para A: n = 2 + 3 + 4 = 9, m = 2 + 3 + 1 = 6, o y para B: m = 2 + 3 + 1 = 6 y p = 2 + 3 = 5. Por consiguiente, la particin o es correcta. La multiplicacin 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 notacin MATLAB, conociendo las matrices particionadas, el producto o resulta:

1.1 Clculo 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];

11

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

Solucin: 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.5 e Si los i son los eigenvalores de la matriz A de orden n, comprobar numricamente que: i = 1, . . . , n det(A) = 1 2 . . . n ; Solucin: Ver el programa ejem1 5.m. o
% ejem1_5.m COMPRUEBA QUE det(A)=L(1)L(2)L(3)L(4) clear all A = [1-j 2-j 3-j -3+8j 4j -2 3+5j 4-2j 6-j 7-j 8+3j 3+j 2 -1 j 0]; L = eig(A); % DETERMINA LOS EIGENVALORES DE A detA = det(A); P = L(1)*L(2)*L(3)*L(4); % SE DEBE CUMPLIR QUE: P = detA

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

12

Matemtica Asistida con Computadora a

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

Ejemplo 1.7 Demostrar numricamente que: e A B 0 D A 0 C D


1

=
1

A1 A1 BD1 0 D1 A1 0 1 CA1 D 1 D

Solucin: Ver el programa ejem1 7.m. o

1.1 Clculo Matricial a


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

13

Ejemplo 1.8 Demostrar numricamente que: e


A C A C B D B D
1

=
1

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

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

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

Solucin: Ver en el siguiente programa la demostracin pedida. o o


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

14

Matemtica Asistida con Computadora a

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

1.1.3.

Derivadas e Integrales con Matrices y Vectores

d dt a11 (t)

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


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

. . .

A(t) =

a11 (t) . . .

d dt an1 (t)

d dt anm (t)

an1 (t)

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

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

(1.8)

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

(1.9)

1.2 Anlisis Vectorial a Derivada parcial de una funcin escalar J(x) de variable vectorial: o 2J J 2J 2J x1 xn x1 x2 x2 x1 1 2J J . . . . . . . = . ; = . . . . x x2 J 2J 2J 2J xn xn x1 xn x2 x2
n

15

(1.10)

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


T

dx dt

(1.11)

Jacobiano de una funcin 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 . = (1.12) . . . . x . . . .
f1 xn f2 xn

fm xn

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

1.2.
1.2.1.

Anlisis Vectorial a
Independencia, Ortonormalidad y Normas

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

ci xi = 0
i=1

16

Matemtica Asistida con Computadora a

La ecuacin anterior implica que las constantes ci = 0, i = 1, . . . , n, o que o det([x1 . . . xn ]) = 0. Operacin 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

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


n

x1 x 1

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

(1.15)

x T y = yT x =
i=1

xi yi ; x1 x2 . . .

xT x =
i=1

x2 i

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

x2 1

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

(1.16)

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

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

1.2 Anlisis Vectorial a x = 0 si y slo 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 ms 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; Q = P H P = QH

Otras normas pueden ser denidas como:


n

x =
i=1

|xi |;

mx |xi |; a
i n 1/p

m |xi | n
i

p= i=1

|xi |

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

Tal norma cumple las propiedades de la norma de un vector. En adicin, o tambin cumple: e A = AH ; A
2

A = AT ; = mx[xH AH Ax], a x

Ax A si xH x = 1

|| A ,

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

Otras normas para una matriz A de orden n son:


n n

A =
i=1 j=1

|aij |;

F=

i=1 j=1

18
m

Matemtica Asistida con Computadora a |aij | ;


i=1 n j=1

|aij |

1=

mx a
j

mx a
i

2=

mx a
i

i (AH A)

1.2.2.

Rango de una Matriz, Eigenvalores y Eigenvectores

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

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

Factorizando x obtenemos la ecuacin caracter o stica de A: det(I A) (1.19)

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

1.2 Anlisis Vectorial a

19

1.2.3.

Diagonalizacin 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 . Sea A una matriz de orden n que posee n eigenvalores distintos. Sea E = [e1 . . . en ] una matriz formada con los eigenvectores de A y sea una matriz diagonal cuyos elementos son los eigenvalores de A. Entonces se dice que A y son similares porque: 1 0 . . . 0 0 2 . . . 0 1 (1.20) E AE = = . EE 1 = A . . ; . . . . . . 0 0 . . . n

Forma Cannica de Jordan o Si una matriz A de orden n posee r eigenvectores linealmente independientes, la forma de Jordan es una matriz J que posee n r unos sobre la diagonal, con todos los dems elementos iguales a cero. Por ejemplo, si los a valores propios de A de orden n = 5 son 1 , 1 , 1 , 2 , 3 , entonces son posibles varias formas de J (se muestran cuatro): 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 J1 = 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 independienco, la tes, la matriz diagonal J3 cinco y J2 cuatro. Para un problema espec forma correcta de la matriz J se determina de acuerdo a las reglas siguientes: 1. Si una matriz cuadrada A de orden k posee k eigenvalores mltiples, u y si el rango de [I A] es k s, donde 1 s k, entonces exis-

20

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

2. 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.14).

1.2.4.

Formas Cuadrticas y Bilineales a

Formas Cuadrticas a Una forma cuadrtica es un polinomio real que contiene trminos de la a e forma aij x xj . Si A = [aij ] = AH es una matriz hermitiana de orden n y x i es un vector complejo de orden n, entonces:
n n

x Ax =
i=1 j=1

aij x xj ; i

aji = a ij

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


n n

xT Ax =
i=1 j=1

aij xi xj ;

aji = aij

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

xH Ay =
i=1 j=1

aij x yj i

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

xT Ay =
i=1 j=1

aij xi yj

1.2 Anlisis Vectorial a Denicin y Semidenicin de Matrices o o

21

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

Ejemplo 1.9 Resolver el siguiente sistema (ms incgnitas 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 Solucin: Ver el programa ejem1 9.m. o
% ejem1_9.m SISTEMA DE ECUACIONES: MAS INCOGNITAS QUE ECUACIONES clear all A = [5-j 2+3j 3-j -1+4j -6+j 4j -2 3+5j -7j 8-2j 6-j 7-j 8-3j 3-j 1+4j];

22

Matemtica Asistida con Computadora a

Cuadro 1.2: Comandos para cmputo matricial y vectorial o Operacin o Producto interno complejo Producto interno real Producto por elemento Divisin 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 . . . en ] xH y xT y aij bij aij /bij (aij A A A A x x x x )bij
m a 1 = mxj i=1 |aij | a i (AH A) 2 = mxi n a = mxi j=1 |aij | 1/2 2 F= ij |aij | n p 1/p p = ( i=1 |xi | ) 2=

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

xH x m i |xi | n

mxi |xi | a

1.2 Anlisis Vectorial a


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

23

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

x1; x2 x3 x4 x5

Ejemplo 1.10 Resolver el siguiente sistema (menos incgnitas 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 Solucin: Ver el programa ejem1 10.m. o
% ejem1_10.m SISTEMA DE ECUACIONES: MENOS INCOGNITAS QUE ECUACIONES clear all A = [5-j 2+3j 3-j 4j -2 3+5j 6-j 7-j 8-3j -1+4j -6+j 3-j -7j 8-2j 1+4j]; B = [2-9j;4-j;3+j;-3+7j;-9]; X = A\B; % X = % 1.2270 - 2.1969i --> x1 % 0.6871 + 1.2202i --> x2 % -0.9472 + 0.4153i --> x3

Ejemplo 1.11 Comprobar numricamente que: e xH y = (yH x) = yT x Solucin: Ver el programa ejem1 11.m. o

24

Matemtica Asistida con Computadora a

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

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


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

Ejemplo 1.13 Sean las matrices Anm , Bmp y Cmm . Demostrar numricamente las siguiene tes propiedades del rango: rango(A) m n(n, m); rango(A) = rango(AH ); rango(AB) min(rango(A), rango(B)); rango(CB) = rango(B). Solucin: El siguiente programa presenta las demostraciones pedidas. o

1.2 Anlisis Vectorial a


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

25

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


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

26
% %

Matemtica Asistida con Computadora a

% % % %

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

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

2 4 6

1.3.

La Transformada de Laplace

La transformada de Laplace de una funcin g(t) se dene como: o g(s) = L[g(t)] =


0

g(t)est dt

(1.21)

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

]=
0

at st

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

=
0

1 s+a

1.3 La Transformada de Laplace

27

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

Descripcin o Impulso unitario Escaln unitario o Rampa unitaria

1
1 s 1 s2

Rampa de orden n Exponencial Seno Coseno Seno amortiguado Coseno amortiguado

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

Cuadro 1.4: Propiedades de la transformada de Laplace Propiedad Descripcin o Derivacin o Derivacin de orden n o L L
dg dt dn g dtn

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

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

L[g(t t0 )(t t0 )] = et0 s g(s) L[eat g(t)] = g(s + a) l t0 g(t) = l s sg(s) m m l t g(t) = l s0 sg(s) m m

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

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

28

Matemtica Asistida con Computadora a

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

Determinar la funcin de transferencia del proceso y su respuesta a un eso caln de 1 m/s, sabiendo que la entrada es u y la salida es v. o
v velocidad friccion bv m u

Figura 1.1: Mvil en movimiento. o Solucin: La funcin de transferencia del proceso se obtiene aplicando la o o propiedad de derivacin de orden n (tabla 1.4), con todas las condiciones o iniciales iguales a cero: msv(s) + bv(s) = u(s); 1 v(s) = u(s) ms + b

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

y empleando la tabla 1.3 obtenemos: 1 v(t) = (1 ebt/m ) b Ejemplo 1.17 Empleando las propiedades del valor inicial y del valor nal, determinar tales valores para la velocidad del mvil del problema anterior. o m Solucin: El valor inicial se determina de: l t0 v(t) = l s sv(s) = 0. o m El valor nal se obtiene de: l t v(t) = l s0 sv(s) = 1 . m m b

Cap tulo 2

Sistemas Discretos
En este cap tulo se exponen los conceptos de variables de estado, muestreo y reconstruccin de seales en los procesos a controlar. Tambin se trata la diso n e cretizacin directa de procesos continuos, la transformada Z como herramienta o de discretizacin, las formas cannicas de los procesos en el espacio de estado o o discreto y los conceptos de controlabilidad y observabilidad. El material expuesto pretende dar una base slida acerca de los sistemas de control en el dominio o discreto. Todos los archivos correspondientes a los ejercicios desarrollados en este cap tulo se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

2.1.

Diseo de Sistemas de Control Digital n

La gura 2.1 muestra la estructura de un sistema de control digital, cuyo objetivo de control es lograr que la seal de salida Y del proceso (de n carcter continuo, como en la mayor de los casos) siga a la seal de rea a n ferencia r cumpliendo determinadas especicaciones de diseo, tales como: n m nimo tiempo de estabilizacin, m o nimo sobreimpulso y/o error en estado estacionario nulo en Y . En otras palabras, el algoritmo de control implementado, en este caso digitalmente, debe ser capaz de crear una seal de control n U (la variable manipulada), la cual actuando sobre el proceso a travs de un e actuador, minimice la seal de error e. El bloque de ltraje es util para elin minar las componentes contaminantes de alta frecuencia de la seal de ruido n de medicin n. El ltro de ruido puede ser analgico o digital y su inclusin o o o depende de la magnitud del ruido y su relevancia dentro del funcionamiento del sistema de control.

30

Sistemas Discretos
Disturbios

Muestreador y A/D

Computadora Digital

D/A y Retencion

Actuador y Proceso

n
Filtraje Medicion

Figura 2.1: Estructura de un sistema de control digital. En la estructura de control descrita en el prrafo anterior, el algorita mo de control se implementa en un dispositivo digital que puede ser una computadora personal, una computadora de procesos (con capacidad para manejar varios lazos de control), un microcontrolador o una tarjeta PDS (Procesamiento Digital de Seales). El procesamiento digital del algoritmo n de control requiere de la presencia de los dispositivos de adquisicin de datos: o muestreadores, conversores de se al A/D (analgico a digital) y D/A (digital n o a analgico) y retenedores (reconstructores) de se al. o n La conguracin mostrada en la gura 2.1 no es unica. Por ejemplo, dado o el caso, la seal de referencia y la comparacin de seales pueden ser genen o n radas dentro de la computadora digital. En otros casos, si el actuador y los dispositivos de medicin son capaces de procesar seales digitales, entonces o n tales dispositivos pueden actuar directamente sobre el proceso, dando lugar a nuevas conguraciones. En las aplicaciones descritas en este libro, el dispositivo de procesamiento digital es una computadora personal, los sensores de seal son decodicadores electrnicos de pulsos (encoders), mientras que n o el actuador es una combinacin de un servomotor D.C. (de corriente directa) o con un amplicador electrnico PWM (Pulse Width Modulation). o El empleo del procesamiento digital permite la realizacin de algorito mos de control sosticados existentes en la teor de control moderna, pero a tambin refuerza la interrogante sobre qu algoritmo de control es adecuado e e para determinada aplicacin. Una respuesta a esta interrogante slo es posio o ble si se tiene conocimiento suciente del modelo de la dinmica del proceso a a controlar y de sus seales. Tal conocimiento va a permitir la seleccin aden o cuada de un algoritmo de control que sea capaz de hacer cumplir el objetivo de control con el menor gasto (computacional, por ejemplo) y con el mayor rendimiento (satisfaccin de las especicaciones de dise o). o n

2.2 Concepto de Estado y Variables de Estado

31

2.2.

Concepto de Estado y Variables de Estado

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

2.2.1.

Linealizacin de Procesos o

La representacin linealizada en el espacio de estado de (2.1), sin la o presencia de parmetros variantes con el tiempo, es la siguiente: a x = Ax + Bu + Ev

32 y = Cx + Du + F w

Sistemas Discretos (2.3)

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

. . .

fn Xn h1 Xn

(X,U)

D=

fn U1 h1 U1

. . .

fn Um h1 Um

(X,U)

. . .

. . .

. . .

. . .

(2.4)

hr X1

hr Xn

(X,U)

hr U1

hr Um

(X,U)

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

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

donde det es la operacin determinante. Las ra o ces de (2.6) son tambin e conocidas como ra ces caracter sticas, eigenvalores, valores propios, modos,

2.2 Concepto de Estado y Variables de Estado

33

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

H1

p
1

p Q
0

Tanque 1 g
1

H2 p
2

Tanque 2
2

Figura 2.2: Proceso hidrulico. a Solucin: Los ujos de salida Q1 y Q2 de los tanques se pueden modelar o

34 como: Q1 = P1 P0 ; Q2 =

Sistemas Discretos

P2 P0

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

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

Denamos las siguientes variables residuales: h1 = H1 H1 , h2 = H2 H2 , 0 . Conociendo Q0 = 3 m3 /s, 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, el proceso linealizado resulta: h = P h + B q0 ; y = h2 = C h

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


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

35

=
(H1 ,H2 )

g 2A H1 g 2A H1

0
g 2A H2

B=

=
Q0

1/A 0

C = [0 1];

D = [0]

Ejemplo 2.2 El proceso pndulo no lineal mostrado en la gura 2.3 puede rotar libree mente alrededor del pivote gracias a la accin de un torque externo U . En o o dicha gura Bp =1.3366 N-m/rad/s es la friccin viscosa rotacional en el punto pivote, Lo =1.6350 m es la longitud de la varilla de peso despreciao ble, Mo =0.5 kg es la masa de la esfera y g=9.81 m/s2 es la aceleracin de la gravedad. La salida de inters es la posicin angular del pndulo. e o e Para las situaciones mostradas en las guras 2.3(a) y 2.3(b) determine: las ecuaciones no lineales de estado y de salida, los puntos de equilibrio, las ecuaciones linealizadas de estado y de salida, las funciones de transferencia, las ecuaciones caracter sticas, y la estabilidad del proceso.

1 0 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.3: Pndulo no lineal en posicin de equilibrio estable (gura (a)) y e o en posicin de equilibrio inestable (gura (b)). o Solucin: El proceso en estudio es univariable; es decir, una sola entrada o U actuando sobre el proceso, y una sola salida: la posicin angular. Primero o analizaremos la situacin mostrada en la gura 2.3(a). El torque resultante o alrededor del pivote es: U = Mo L2 + Bp + Mo gLo sen o (2.7)

36

Sistemas Discretos

Notar que (2.7) es no lineal debido al sen. Seleccionando en (2.7) como variables de estado X1 = , 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 representacin compacta (ecuacin (2.1) con v = w = 0) resulta: o o X = f; donde: X= X1 X2 ; f= f1 f2 =
g Lo senX1

(2.8)

Y = X1 = h

Bp x Mo L2 2 o

X2

1 U Mo L2 o

(2.9)

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

(2.10)

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

y = Cx + Du

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

0 g Lo

1 M op 2 L
B
o

B = C = D =

=
0 h X2

1 0 (2.11)

h U

= [0]
0

2.2 Concepto de Estado y Variables de Estado La funcin 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 Mo L2 o

1 + Bp s + Mo gLo

(2.12)

La ecuacin caracter o stica se determina de (2.6): det(sI A) = Mo L2 s2 + Bp s + Mo gLo = 0 o (2.13)

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

Con el procedimiento empleado para la situacin mostrada en la gura o 2.3(a), fcilmente podemos determinar que: a A= 0
g Lo

1 Mo p 2 L
B
o

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

38

Sistemas Discretos

2.3.
2.3.1.

Fundamentos de Sistemas Discretos


Muestreo y Reconstruccin o

La gura 2.4 muestra un lazo de control que incluye una computadora digital equipada con los dispositivos de adquisicin de datos necesarios. o La seal controlada y, luego de ser sensada, pasa por un muestreador, genn erndose un tren de impulsos y separados uno del otro en T segundos (el a tiempo de muestreo). Luego, el tren de impulsos es digitalizado por medio del dispositivo A/D, lo que resulta en la seal yd , la cual ya puede ser n procesada por la computadora con el n de generar el algoritmo de control. La seal 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 . Mediante un dispositivo de retencin de orden cero, que se describe ms o a adelante, la seal de control es reconstruida, lo que resulta en una seal de n n control continua u capaz de actuar sobre el actuador-proceso continuo. Notar que la seal de referencia digitalizada rd se genera internamente. n Si la referencia fuera una seal externa, entonces debe ser procesada como n la seal y. En lo que sigue, asumiremos que el tiempo de muestreo T es el n mismo para todos los muestreadores y que dichos muestreadores operan sincrnicamente; es decir, que el retardo entre la operacin de un muestreador o o con respecto a otro es despreciable. Es importante anotar que los convertidores de seal, muestreadores y dispositivos de retencin, son parte de la n o interfaz (tarjeta de adquisicin de datos, por ejemplo) de la computadora o digital con su mundo circundante (el proceso-actuador y los dispositivos de medicin). o Un tren de impulsos, por ejemplo la seal u , puede modelarse como: n u (t) =
k=0

u(kT )(t kT )

(2.15)

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

2.3 Fundamentos de Sistemas Discretos

39

COMPUTADORA

DIGITAL

ALGORITMO DE CONTROL

rd

ud

D A D

u*
T

RETENCION

ACTUADOR

PROCESO

FILTRAJE A

MEDICION

yd

y* T

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

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


k=0

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

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

=
k=0

u(kT )ekT s = u (esT )

La frecuencia de muestreo se determina de la relacin: o s = 2 T (2.17)

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

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

u(s + is )
k=

(2.19)

a La seal u (s) posee dos propiedades importantes. La primera es su carcter n peridico, que puede demostrarse reemplazando en la ecuacin (2.16) la o o

40

Sistemas Discretos

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


=0 sT

u(kT )e

kT (s+js )

=
=0

u(kT )ekT s ekT js (2.20)

= u (e )

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

u(s + is ) =
k=

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

+ + u(s js ) + u(s 2js ) + ] e o Si u(s) posee un polo en s = s1 , entonces cada trmino de la expansin contribuye con un polo en s = s1 + js . La gura 2.5 muestra la respuesta en frecuencia de las seales u(t) y n a u (t), asumiendo que u(t) es de banda limitada. Del grco de |u (ej )| podemos extraer la siguiente conclusin referente al teorema fundamental o del muestreo: Para que la seal continua original u(t) pueda ser reconstruida comn pletamente a partir de sus muestras, la frecuencia de muestreo tiene que seleccionarse de modo tal que: s 2max T max (2.21)

La gura 2.6 muestra en detalle el proceso de muestreo y reconstruccin o de la seal u empleando un dispositivo de retencin de orden cero, el cual n o reconstruye la seal mediante aproximaciones rectangulares. Tener en cuenta n que u es una seal genrica. Podemos detrerminar la funcin de transferencia n e o o gr0 (s) de la retencin como sigue. El area del pulso rectangular de base (k + 1)T kT es u(kT )[(t KT ) (t (k + 1)T )], donde (.) es la funcin o escaln unitario que se dene como: o (t kT ) = 1 si t kT 0 si t < kT

2.3 Fundamentos de Sistemas Discretos


u(t) u(j )

41

max

max

u*(t)
s
2

u*(e
2

s max s

max

Figura 2.5: Respuesta en frecuencia de las seales u(t) y u (t) para ilustrar n el teorema del muestreo. El area total de la seal u a la salida de la retencin es: n o

u(t) =
k=0

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


ekT s s ,

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

la transforma-

u(s) =
k=0

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

Por consiguiente, la funcin de transferencia de la retencin de orden cero o o viene a ser: 1 esT u(s) = Gr0 (s) = (2.22) u (s) s Este ultimo resultado ser usado posteriormente. a Discretizacin Directa o Es bastante util discretizar directamente expresiones que contengan in tegrales y derivadas. La aproximacin rectangular calcula el area debajo de o una cierta curva e(t) mediante la suma de rectngulos de la forma T e(iT T ) a (T es el tiempo de muestreo), tal como se ilustra a continuacin. Por consio guiente, trminos que contengan integracin pueden discretizarse empleando e o

42
u(s) u*(s)

Sistemas Discretos
_ u(s) 1 e- 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)

2T

3T

4T

Figura 2.6: Proceso de muestreo y reconstruccin. o aproximacin rectangular como sigue: o


t

u(t) =
0 k

e( )d
k1

u(kT )
i=0

T e(iT T );

u(kT T ) T
i=0

e(iT T )

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

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

En la ultima expresin hemos obviado en el argumento su dependencia con o el tiempo de muestreo T , pues se sobreentiende que todos los trminos se dise cretizan empleando el mismo tiempo de muestreo. Trminos 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 . . . (2.24) = e(t)

Si la discretizacin de la derivada se realiza por adelanto, entonces las difeo rencias son de la forma: x(kT + T ) x(kT ); Ejemplo 2.3 Discretizar el modelo no lineal del proceso pndulo descrito en el ejemplo 2.2 e y gracar diez segundos de su respuesta a un torque tipo escaln unitario. o x(k + 1) x(k)

2.3 Fundamentos de Sistemas Discretos

43

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

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


t 0

e(t)dt + TD

de(t) dt

(2.25)

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

e(i 1) +
i=0

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

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

Sistemas Discretos

100

200

300

400 500 600 Tiempo discreto k

700

800

900

1000

Figura 2.7: Respuesta del pndulo no lineal al escaln. 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 ); T q1 = K(1 + 2 T TD ); T TI q2 = K TD T (2.26)

Si la integracin emplea el mtodo trapezoidal (aproximacin de segmeno e o tos de rea mediante trapezoides), 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)

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

45

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

2.3.2.

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

Es util introducir la siguiente relacin: o

Reemplazando en la ecuacin (2.16) la seal u por una variable genrica g, o n e llegamos a la siguiente denicin 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.28) converge si |g(kT )| se restringe a valores nitos y si |z| > 1. Las sumatorias siguientes son bastante utiles para resolver problemas relacionados con la transformada Z:
N 1

ak =
k=0

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

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

ak =
k=0

kak =
k=0 N2

ak =
k=N1

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

ak =
k=N1

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

Z[(kT )] =
k=0

(kT )z k = z 0 = 1

46

Sistemas Discretos

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

Z[(kT )] =
k=0

z k =

1 z = 1 z 1 z1

la cual es vlida para |z 1 | < 1 (o |z| > 1), pues la serie debe ser convera gente. La tabla 2.1 ilustra la transformada Z de algunas secuencias notables, mientras que la tabla 2.2 presenta la relacin existente entre la transformada o Z y la transformada de Laplace. A continuacin 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), d 0 (3) Desplazamiento a la izquierda: Z[g(kT + dT )] = z d [g(z) d1 g(T )z ], =0 (4) Amortiguamiento: Z[g(kT )eakT ] = g(zeaT ) (5) Multiplicacin por una variable: o Z[kg(kT )] = z dg(z) dz (6) Multiplicacin por una exponencial: o z Z[ak g(kT )] = g( a ) (7) Teorema del valor inicial: l k0 x(kT ) = l z x(z) m m (8) Teorema del valor nal: m l k g(kT ) = l z1 m
z1 z g(z)

d0

= l z1 (1 z 1 )g(z) m

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

z2

z(z acos) 2zacos + a2

2.3 Fundamentos de Sistemas Discretos

47

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

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

48

Sistemas Discretos

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

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

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

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

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

2.3 Fundamentos de Sistemas Discretos

49

La forma general para obtener Z[g(s)] es mediante el mtodo de los e residuos (derivado de la integral de convolucin). Si se tiene: o g(s) = q(s) p(s)

donde el grado del polinomio p(s) es mayor que el de q(s), y adems si a suponemos que todas las ra de q(s) poseen parte real negativa, 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.30)
s=bj

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

Solucin: Para este caso P = 1, a1 = 1, Q = 1, b1 = 0, m1 = 2. 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 ze (z 1)2

2.3.3.

La Transformada Z Inversa

En el dominio continuo, la transformada de Laplace g(s) = L[g(t)] posee una inversa L1 [g(s)] = g(t) que es unica. En contraste, la transformacin o 1 [g(z)] = g(t) que no es unica debido a Z[g(t)] = g(z) posee una inversa Z que la seal discreta no est denida entre muestras. En el dominio discreto, n a sin embargo, la transformacin g(z) = Z[g(kT )] posee una unica inversa o Z 1 [g(z)] = g(kT ).

50

Sistemas Discretos

Una forma de determinar g(kT ) es dividir el numerador de g(z) entre su denominador. Otra forma es expandir g(z) en fracciones parciales y obtener e e la transformada Z 1 de cada uno de los trminos resultantes. Un mtodo generalizado para determinar la inversa de g(z) consiste en factorizar g(z) en factores de primer orden; luego, usar la siguiente frmula de inversin: o o
P

g(kT ) =
i=1 Q

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

+
j=1

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

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

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


z=1

zk z1

= 1 + 2k
z=2

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


z=1

d k (z ) dz

=k
z=1

2.3 Fundamentos de Sistemas Discretos

51

2.3.4.

Funcin de Transferencia de Pulso o

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

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

Determinar la salida muestreada para los casos ilustrados en las guras 2.8(a)-(f). Solucin: En la gura (a) se tiene: y(s) = G2 (s)x (s) y x(s) = G1 (s)u(s), o donde x(s) es una seal auxiliar. 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), y luego muestreando y(s) obtenemos una expresin en el dominio discreto, a saber: y (s) = G (s)G (s)u (s). o 2 1 Esta ultima relacin es equivalente a: o y(z) = G2 (z)G1 (z)u(z)

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

Sistemas Discretos

G 1 (s)

G 2 (s)

y(s) y(s)

G 2 (s)

G 2 (s)

y(s)

T u(s) u*(s)

D(z)

1-e s (d)

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


+ -

y(s)

u(s)
+ -

x(s)

T x*(s) G(s)

y(s)

G(s) H(s) (f)

y(s) T y*(s)

H(s) (e)

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

2.3 Fundamentos de Sistemas Discretos

53

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

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

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

2.3.5.

El Espacio de Estado Discreto

En la seccin 2.2 vimos que la dinmica linealizada de un proceso (sin la o a presencia de disturbios) puede ser representada en el espacio de estado por la ecuacin (2.3): o x = Ax + Bu; y = Cx + Du (2.33)

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

eA Bu( )d (2.34)

(t )Bu( )d

[(sI A)

]=e

A(tt0 )

=
=0

A (t t0 ) !

es la matriz de transicin. Para demostrar que efectivamente (2.34) es una o solucin de la ecuacin de estado (2.33), basta derivar la expresin (2.34) o o o con respecto al tiempo, para as obtener x = Ax + Bu.

54

Sistemas Discretos

La representacin de la ecuacin 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 = 3et , 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. Gracar la respuesta y(t) y compararla con las respuestas obtenidas mediante discretizacin para los o tiempos de muestreo de 0.1 s y 0.04 s. o Solucin: Segn la tabla 2.2: L[3et ] = 3/(s + 1). Aplicando la ecuacin 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 +s2 (s+1)(s+3)(s+4) s2 +77s14 (s+1)(s+3)(s+4) 6s2 +s2 (s+1)(s+3)(s+4) s2 +77s14 (s+1)(s+3)(s+4)

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

3 4

3 s+1

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

2.3 Fundamentos de Sistemas Discretos

55

Las respuestas mostradas en la gura 2.9 se realizaron con el programa ejem2 9.m. Para T 0,04 s, las respuestas y(t) e y(kT ) prcticamente coina ciden. Conforme T aumenta, la diferencia entre y(t) e y(kT ) es ms 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

Solucin de la Ecuacin de Estado Discreta o o Discretizando la ecuacin (2.33) para un tiempo discreto k = t/T y o asumiendo que entre muestras la seal de control u es constante, entonces n para la seal 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 ecuacin de estado se convierte o

56
10

Sistemas Discretos

10 y Salida 20 30 40 50 0

4 Tiempo

5 6 en segundos

10

Figura 2.9: Respuestas y(t) para el ejemplo 2.9. Curva slida: 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 slo interesa la solucin 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 ecuacin 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

G1 Hu(k )

(2.38)

donde Gk es la denominada matriz de transicin discreta. Una segunda altero nativa de solucin 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 ecuacin 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) vericamos que: Gk = Z 1 [(zI G)1 z] (2.41) (2.40) (2.39)

La matriz de transferencia de pulso se determina haciendo x(0) = 0 en (2.40): (2.42) y(z) = Gp (z)u(z) = [C(zI G)1 H + D]u(z) mientras que la ecuacin 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 = eT ejT = |z|z y como |z| 1 cuando 0 para cualquier z, entonces la zona de estabilidad en el plano z resulta un c rculo de radio unidad: Un sistema discreto es estable si las ra de su ecuacin caracter ces o stica, los eigenvalores, se encuentran dentro del crculo unitario (en el dominio de z). En otro caso, el sistema no es estable.

58

Sistemas Discretos

Formas Cannicas en el Espacio de Estado Discreto o La forma general de la funcin de transferencia de pulso para un proceso o es: b0 + b1 z 1 + + bn z n y(z) b0 z n + b1 z n1 + + bn = = n u(z) 1 + a1 z 1 + + an z n z + a1 z n1 + + an (2.44) y su correspondiente ecuacin de diferencias toma la forma: o Gp (z) = y(k+n)+a1 y(k+n1)+ +an y(k) = b0 u(k+n)+b1 u(k+n1)+ +bn u(k) (2.45) Conforme a la seleccin de las variables de estado, un proceso posee diversas o representaciones en el espacio de estado. Las formas cannicas ms notables, o a con relacin a la funcin de transferencia de pulso dada en (2.44), se descrio o ben a continuacin. o Primera Forma Cannica Controlable: o
x(k + 1) = 0 0 . . . 0 an 1 0 . . . 0 an1 0 1 . . . 0 an2 1 xn1 (k) a1 xn (k) b1 a1 b0 0 0 . . . x1 (k) x2 (k) . . . + 0 1 0 0 . . . u(k) (2.46) (2.47)

y(k) =

bn an b0

bn1 an1 b0

x(k) + b0 u(k)

Segunda Forma Cannica Controlable: o


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

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

2.3 Fundamentos de Sistemas Discretos Tercera Forma Cannica Controlable: o


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

59

u(k) (2.50) (2.51)

b1 a1 b0

b2 a2 b0

bn an b0

x(k) + b0 u(k)

Primera Forma Cannica Observable: o


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

y(k) =

x(k) + b0 u(k)

Segunda forma cannica observable: o


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

y(k) =

1 0

x(k) + b0 u(k)

Forma Cannica Diagonal (eigenvalores no repetidos) o


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

60

Sistemas Discretos

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

ci ; z pi

ci = l m

zpi

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

(2.58)

Forma Cannica de Jordan (eigenvalores repetidos).- En la subseccin 1.2.3 o o vimos que si la matriz de estado A de orden n de un proceso con funcin 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 dems 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 funcin 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 ecuacin o

2.3 Fundamentos de Sistemas Discretos

61

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

62

Sistemas Discretos

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

Ejemplo 2.11 Conocidas las matrices G, H, C y D (ver programa ejem2 11.m), determine la ecuacin de estado y la ecuacin de salida de su forma cannica de Jordan. 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 funcin de transferencia de pulso. o Solucin: El siguiente programa resuelve las preguntas planteadas. o
% ejem2_11.m FORMAS CANONICAS DE JORDAN clear all % x(k+1) = G*x(k) + H*u(k); y(k) = C*x(k) + D*u(k); G = [0 1 0 3 0 -1 1 1 0 0 0 1 0 0 -1 -2]; H = [1;0;-4;0]; C = [1 0 0 0]; D = [-2]; [num,den] = ss2tf(G,H,C,D); eigG = eig(G); % eigG = EIGENVALORES DE G: -1, -1, -1, 0 rangG = rank(G); % rankA = 3 => G POSEE 3 VECTORES PROPIOS % LINEALMENTE INDEPENDIENTES => 4-3=1 (UN 1 SOBRE LA DIAGONAL) [c,p,k] = residue(num,den); % EXPANSION EN FRACCIONES PARCIALES % c = [-8.0000 -8.0000 0.0000 9.0000]; % p = [-1.0000 -1.0000 -1.0000 0]; % k = -2; c1=c(1); c2=c(2); c3=c(3); c4=c(4);

2.3 Fundamentos de Sistemas Discretos


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

63

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

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

64

Sistemas Discretos

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

2.3.6.

Controlabilidad y Observabilidad

Concepto de Controlabilidad Un proceso dinmico lineal se dice que es controlable, 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 nal x(N ) en un tiempo nito N .

2.3 Fundamentos de Sistemas Discretos

65

10 2s+1 u Proceso parcial Tiempo muerto

yd_ yd yd

Mux Graph Mux yda_ yda yda

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

Figura 2.10: Comparacin de las respuestas a un escaln del proceso y de o o su modelo aproximado mediante una relacin Pad de tercer orden (ejemplo o e 2.12).
12

10

8 Respuestas al escalon

2 0

6 Tiempo en segundos

10

12

Figura 2.11: Comparacin de las respuestas a un escaln del proceso (curva o o slida) y de su modelo aproximado (curva en trazos) mediante una relacin o o Pad de tercer orden (ejemplo 2.12). e

66

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

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

donde n es el orden del proceso. Para N < n no existe solucin para u, y o para N > n la solucin no es unica. o La determinacin de la controlabilidad completa en el espacio de estado o continuo es similar. Basta reemplazar en M , A por G y B por H. Concepto de Observabilidad Un proceso lineal dinmico con salida y(k) se denomina observable si a algn estado x(k) puede ser obtenido a partir de un nmero nito de salidas u u y(k), y(k 1), . . . , y(k n). Consideremos la siguiente ecuacin de salida: o y(k) = Cx(k) Empleando la ecuacin de estado x(k + 1) = Gx(k) + Hu(k), 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) . . . y(k + n 1) = CGn1 x(k) + [0, CH, CGH, . . . , CGn2 H]Un (2.63) donde (asumiendo que los vectores de entrada son completamente conocidos) Un = [u(k + n 1) . . . u(k + 1) u(k)]T

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

67

(2.64)

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

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

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

68

Sistemas Discretos

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

Cap tulo 3

Modelado de Procesos
Este cap tulo presenta la derivacin de modelos dinmicos de procesos cono a tinuos con su correspondiente linealizacin y discretizacin. Tambin 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, empleando como herramienta de clculo la computadora. Las tres primeras secciones se dedican a los procesos a cuyos sistemas de control avanzado van a ser implementados en tiempo real. Tales procesos son: el pndulo invertido, la gra-puente y el servomotor de core u riente continua sujeto a cargas no lineales. En su seccin problemas resueltos o se presenta la modelacin de diversos procesos, cuyos sistemas de control sern o a diseados en los cap n tulos siguientes. La ultima seccin propone la derivacin o o de modelos dinmicos de otros procesos. Todos los archivos correspondientes a a los ejercicios y problemas desarrollados en este cap tulo se pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

3.1.

Modelo del Proceso Pndulo Invertido e

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

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

Modelado de Procesos

Pendulo F Carro

Figura 3.1: Proceso pndulo invertido. e

3.1.1.

Modelo del Subsistema Carro-Pndulo e

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

l v /2 0 P

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

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

3.1 Modelo del Proceso Pndulo Invertido e

71

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

d2 mi 2 ri = dt

Fj
j=1

(3.3)

e cula, ri es la posicin 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. Aplicando la ecuacin (3.3) a nuestro sistema (en la direccin z) o o obtenemos: d2 d2 d2 (3.4) mc 2 z + me 2 ze + mv 2 zv = F dt dt dt o o o Luego, sustituyendo ze (ecuacin (3.1)) y zv (ecuacin (3.2)) en la ecuacin (3.4) obtenemos: mc lv d2 d2 d2 z + me 2 (z + le sen ) + mv 2 (z + sen ) = F dt2 dt dt 2 (3.5)

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

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

d2 Ji 2 i = dt

j
j=1

(3.7)

e donde j es el j-simo torque externo, 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. Para aplicar esta ley al movimiento rotatorio de la varilla alrededor del punto P utilizamos la tercera ley de Newton, la cual nos permite remplazar el efecto de la aceleracin del sistema o de referencia Z Y por una fuerza mi z aplicada en el centro de gravedad de

72

Modelado de Procesos

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

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


2 lv 3

(3.9)

(3.10)

3.1.2.

Modelo del Subsistema Motor-Polea

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

u
-

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

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

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

73

(3.14) (3.15)

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

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

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

Substituyendo la ultima relacin en (3.18), obtenemos la ecuacin general o o del subsistema servomotor, 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.20)

Las ecuaciones (3.6), (3.9) y (3.20) representan el modelo matemtico a del proceso pndulo invertido controlado por la corriente de armadura. 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.21) (3.22) (3.23)

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

Modelado de Procesos

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

lv 2

(3.24)

(3.25)

Kx =

Bx =

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

(3.26)

3.1.3.

Representacin en el Espacio de Estado o

Las ecuaciones obtenidas pueden ser representadas en el espacio de estado mediante la siguiente asignacin de variables de estado: o x1 = x2 = x3 = z x4 = z Escribiendo dichas ecuaciones en el espacio de estado, obtenemos: x1 x2 x3 = x4 x2 (3.27) (3.28) (3.29) (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.31) y puesto que en nuestro sistema tenemos como salidas disponibles el desplazamiento angular de la varilla y el desplazamiento del carro, la ecuacin de o salida toma la forma siguiente: y = Cx donde: C= 1 0 0 0 0 0 1 0 (3.33) (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

3.1 Modelo del Proceso Pndulo Invertido e

75

3.1.4.

Obtencin del Modelo Lineal o

Para poder analizar la ecuacin matricial (3.31) empleando tcnicas de o e control lineal, es necesario obtener un modelo lineal del proceso. Suponiendo que las variables de estado se desv levemente con respecto a una condian cin de operacin (un estado de equilibrio, por ejemplo), la aproximacin o o o lineal se puede obtener mediante la expansin en series de Taylor, despreo ciando los trminos de orden superior. Consideremos que nuestro proceso e sea representado por la siguiente expresin: o x = f(x, u) x = f = x1 x2 x3 x4 f1 f2 f3 f4
T T

(3.34)

x1 x2 x3 x4

en donde u es la seal de control, x es el vector de estados y f es una funcin n o vectorial de variable vectorial. La expansin en serie de Taylor alrededor del o punto de operacin ( , u) resulta: o x x = f (, u) + x f (, u) x f (, u) x (x x) + (u u) + x u

1 2 f (, u) 2 f (, u) 2 f (, u) x x x (x x)(u u) + (x x)2 + 2 (u u)2 + 2 2! x xu u2 (3.35) Si la variacin de las variable residuales (x ) y (u u) es pequea, entonces o x n se pueden despreciar los trminos de orden superior. En el caso que nos e ocupa, el punto de operacin (o estado de equilibrio) se ubica alrededor del o o origen: x = [0, 0, 0, 0]T = 0 y u = 0, entonces la ecuacin (3.35) se puede escribir como: f (0, 0) f (0, 0) x+ u (3.36) x = f (0, 0) + x u Dado que f (x, u) es una funcin de variable vectorial, su derivada parcial o con respecto a x y u viene a representar la operacin jacobiana (ver ejemplos o 2.1 y 2.2). Entonces, la ecuacin (3.35) se convierte en: o f1 (0,0) f1 (0,0) f1 (0,0) f1 (0,0) f1 (0,0) x1 x2 x3 x4 u f2 (0,0) f2 (0,0) f2 (0,0) f2 (0,0) f2 (0,0) x x2 x3 x4 u 1 x = f (0, 0) + f3 (0,0) f3 (0,0) f3 (0,0) f3 (0,0) x + f3 (0,0) u x1 x2 x3 x4 u
f4 (0,0) x1 f4 (0,0) x2 f4 (0,0) x3 f4 (0,0) x4 f4 (0,0) u

(3.37)

76

Modelado de Procesos

Luego, aplicando la ultima expresin a la ecuacin (3.31), obtenemos el o o siguiente modelo lineal para el sistema de pndulo invertido: e x = Ax + Bu donde: A= 0
(M1 +J2 )M2 g 2 (M1 +J2 )J1 M2
2 M2 g

(3.38) 0 (3.39)

1 0 0 0 0 0 0 0 0

Bx M2 2 (M1 +J2 )J1 M2

2 (M1 +J2 )J1 M2

J1 Bx 2 (M1 +J2 )J1 M2

B=

Kx M2 KA 2 (M1 +J2 )J1 M2

(3.40)

J1 Kx KA 2 (M1 +J2 )J1 M2

3.1.5.

El Modelo en el Espacio de Estado Discreto

La obtencin del modelo del proceso en el espacio de estado discreto o ya ha sido explorada en la subseccin 2.3.5. En resumen, las ecuaciones de o estado en tiempo continuo del proceso estn dadas por: a x(t) = Ax(t) + Bu(t) y(t) = Cx(t) + Du(t) La solucin de tales ecuaciones es: o x(t) = (t t0 )x(t0 ) + donde t0 es el tiempo inicial, y: (t t0 ) = eA(tt0 ) =
k=0 t t0

(3.41) (3.42)

(t )Bu( )d

(3.43)

Ak (t t0 )k k!

(3.44)

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

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

3.2 Modelo del Proceso Gr a-Puente u


T

77

H=
0

()(d) B

(3.47)

La ecuacin de salida en tiempo discreto viene a ser: o y(kT ) = Cx(kT ) + Du(kT ) (3.48)

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

3.2.

Modelo del Proceso Gra-Puente u

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

F Carro y Grua puente

Figura 3.4: Proceso gra-puente. u

3.2.1.

Modelo del Subsistema Carro-Varilla

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

78
y z y

Modelado de Procesos

P
0

F lv
2

111 000 111 000 111 000 m g 111 000 v


me g

le lv

Figura 3.5: Subsistema carro-varilla de la gra-puente. u lv sen (3.50) 2 Aplicando la ley de Newton para el movimiento lineal dada por la ecuacin o (3.3) en la direccin z, obtenemos: o zv = z mc d2 d2 d2 z + me 2 ze + mv 2 zv = F dt2 dt dt (3.51)

Luego, sustituyendo ze y zv en funcin 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.52)

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

Ahora, aplicando en la gura 3.5 la segunda ley de Newton para el movimiento rotatorio dada por la ecuacin (3.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.54)

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


2 Je = me le ;

79

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


2 lv 3

(3.55)

3.2.2.

Modelo del Subsistema Motor-Polea

Este subsistema es el mismo que se desarroll para el pndulo invertido o e en la subseccin 3.1.2, ecuacin (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.53), (3.55) y (3.20) representan el modelo matemtico del a proceso gra-puente controlado por la corriente de armadura. 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 ; J1 = Je + Jv ; Kx = Km ; Ra nrp Bx = M2 = me le + mv J2 = Jeq 2 n 2 rp lv 2 (3.56) (3.57) (3.58)

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

3.2.3.

Representacin en el Espacio de Estado o

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

80

Modelado de Procesos

Escribiendo las ecuaciones en el espacio de estado: x2 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.63) y puesto que tenemos como salidas disponibles el desplazamiento angular de la varilla y el desplazamiento del carro, tendremos entonces como ecuacin o de salida la siguiente expresin: o y = Cx donde: C= 1 0 0 0 0 0 1 0 (3.65) (3.64)

3.2.4.

Obtencin del Modelo Lineal o

Para obtener el modelo lineal del sistema gra-puente, empleamos la u ecuacin (3.36) desarrollada en la subseccin 3.1.4, como sigue: o o x = Ax + Bu donde: A= y 0
(M1 +J2 )M2 g 2 (M1 +J2 )J1 M2
2 M2 g

(3.66) 0 (3.67)

1 0 0 0 0 0 0 0 0

Bx M2 2 (M1 +J2 )J1 M2

2 (M1 +J2 )J1 M2

J1 Bx 2 (M1 +J2 )J1 M2

B=

(3.68)

Kx M2 KA 2 (M1 +J2 )J1 M2

J1 Kx KA 2 (M1 +J2 )J1 M2

3.2.5.

El Modelo en el Espacio de Estado Discreto

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

3.2 Modelo del Proceso Gr a-Puente u

81

3.2.6.

Resumen de Variables y Parmetros a

La tabla 3.1 muestra las variables y parmetros para los procesos pndulo a e invertido y gra-puente. Los valores de los parmetros se obtuvieron de las u a hojas de especicaciones y por medicin. o

3.2.7.

Identicacin de la Zona Muerta del Servomotor o

Al analizar la curva velocidad vs. voltaje de entrada del servomotor (guras 3.6 y 3.7) se puede observar una zona muerta originada por la friccin o esttica . Tal friccin iguala al torque necesario para comenzar a mover el a o servomotor; es decir, debido a la presencia de la friccin esttica, 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

200

400

600

800 2

1.5

0.5

0 entrada

0.5

1.5

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

82

Modelado de Procesos

Cuadro 3.1: Variables y parmetros valorados para los procesos pndulo a e invertido y gra-puente. 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 Descripcin o posicin angular de la varilla o fuerza aplicada al carro posicin angular del motor o posicin 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 amplicador resistencia del motor inductancia del motor constante contraelectromotriz constante de torque del motor inercia del eje primario del motor friccin viscosa del eje primario o inercia del eje secundario friccin viscosa del eje secundario o factor de reduccin de velocidad o radio de la polea inercia de la polea momento de inercia equivalente friccin viscosa equivalente o momento de inercia de la esfera momento de inercia de la varilla Valor/Frmula o

0.767 m

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

3.2 Modelo del Proceso Gr a-Puente u


entrada vs salida 150

83

100

50

salida

50

100

150 0.4

0.3

0.2

0.1

0 entrada

0.1

0.2

0.3

0.4

Figura 3.7: Vista ampliada de la gura 3.6.

entrada vs salida 800

600

400

200 salida

200

400

600

800 2

1.5

0.5

0 entrada u

0.5

1.5

Figura 3.8: Respuesta del servomotor con zona muerta compensada.

84

Modelado de Procesos

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

3.3.

Modelo del Servomotor D.C. No Lineal

El servomotor D.C. (Direct Current) con carga no lineal es un proceso de una entrada y una salida que comprende un subsistema elctrico y un e subsistema mecnico. El subsistema elctrico est compuesto por un genea e a rador PWM (Pulse Width Modulation), que opera conjuntamente con un amplicador de potencia) y por un servomotor D.C. controlado por voltaje de armadura. El subsistema mecnico presenta un engranaje reductor de a velocidad y una varilla metlica acoplada al eje del servomotor, a manera a de un brazo robtico de un grado de libertad. En el extremo de la varilla se o pueden acoplar cargas esfricas adicionales de masa Mo y radio Ro . e La gura 3.9 presenta la estructura del proceso no lineal a controlar. La tabla 3.2 describe las variables y los valores de los parmetros. 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.9: Proceso: servomotor con carga no lineal.

3.3.1.

El Subsistema Mecnico a

La ecuacin del subsistema mecnico se puede obtener aplicando la seo a gunda ley de Newton en el punto donde se acopla el eje del servomotor con

3.3 Modelo del Servomotor D.C. No Lineal

85

Cuadro 3.2: Parmetros 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 Descripcin o tensin de entrada al proceso o ganancia del amplicador tensin de armadura o resistencia de armadura inductancia de armadura corriente de armadura constante del torque motor torque motor torque de inercia motrica 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 friccin del motor o coef. de friccin 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 relacin de engranajes o aceleracin de la gravedad o velocidad angular de la carga velocidad angular del eje posicin angular del eje o posicin angular de la carga o Valor/Frmula o 14.9 Va = Kact u 7.38 ohm 4.64102 H 31.071103 N-m/A T = KI

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

86

Modelado de Procesos

la varilla metlica (gura 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 ecuacin (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 Elctrico e

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

3.3 Modelo del Servomotor D.C. No Lineal

87

3.3.3.

Conversin de Energ Elctrica en Mecnica o a e a

La ecuacin de conversin en energ elctrica en mecnica 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 representacin: o x = F (x) + G(x)u; y = H(x) (3.84)

Eligiendo como variables de estado: x1 = q (posicin 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 posicin 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 matemtico del proceso a considerando carga no lineal. La gura 3.10 muestra el diagrama de simulacin del proceso (archivo servsim.m) y la gura 3.11 muestra la respuesta o

88

Modelado de Procesos

del proceso a un escaln para los casos con L = 0 y L = 0. Dichas respuestas o resultan muy similares debido a que la inductancia L es muy pequea y para n nes prcticos 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 friccin de Coulomb w 1 q 1 + Ms+B s sum2 subsistema Integrador mecnico N gan3 MATLAB Function seno

Kact gan5

n*K R sum1subsistema elctrico n*E gan2

grfico

Figura 3.10: Diagrama de bloques del proceso no lineal.

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

0.8

0.6 u 0.4

0.2

0 0

4 Tiempo

5 6 en segundos

10

Figura 3.11: Respuesta del proceso no lineal a un escaln. o

3.3 Modelo del Servomotor D.C. No Lineal Considerando L=0, la corriente de armadura resulta: I= y la ecuacin (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 Compensacin de no Linealidades o

El torque TN se origina por la friccin esttica TF y por la friccin 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 friccin de Coulomb TC oponindose a dicho movimiento. Tales o torques pueden modelarse como: TF = CF sign(u); TC = CC sign(w) (3.89)

donde la funcin 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 ecuacin (3.88). Para ello denimos: o u=v+ R TN ; nKKact (3.90)

Reemplazando la ecuacin (3.90) en (3.88) obtenemos una ecuacin 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 trmino no lineal resulta: a e RCC sign(w) = 0,12sign(w) nKKact (3.92)

90

Modelado de Procesos

La ecuacin 3.92 indica que en la implementacin del software del sistema o o de control debemos compensar la seal 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 seal de control u n pueden saturar al servomotor, es que se requiere un limitador de la tensin o de control u. Este limitador puede tambin implementarse en el software e de control. Se ha determinado experimentalmente que para no entrar en la zona de saturacin del servomotor, la seal de control compensada no debe o n sobrepasar el umbral de 1.4 voltios.

3.3.5.

Linealizacin y Discretizacin del Proceso o o

Asumiendo que la seal de control u est debidamente compensada de n a no linealidades y despreciando la inductancia L del servomotor, entonces, para desviaciones pequeas alrededor del origen se cumple que senx1 x1 . n Aplicando tal aproximacin en la ecuacin (3.88) obtenemos una ecuacin o o o o de estado lineal de la forma x = Ac x+Bc u y una ecuacin 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 tambin se puede llegar si aplicramos la tcnica del jacoe a e biano. La funcin de transferencia Gp (s) del proceso puede determinarse o mediante la relacin: o Gp (s) = y(s) = Cc [sI Ac ]1 Bc u(s) (3.94)

La funcin 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 funcin 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 ecuacin 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 mltiples representaciones de estau do, a partir de la ecuacin (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 representacin cannica controlable o o del proceso (primera forma, ver la subseccin 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 cannica controlable (subseccin 2.3.5): o o G= 0 1 a2 a1 ; H= b1 b2 a1 b1 ; C= 1 0 ; D = [0]

(3.101) La funcin de transferencia de pulso del proceso tambin 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 pndulo invertido, gra-puente y servomotor con carga no e u lineal descritos en las secciones anteriores, sern usados en las aplicaciones en a tiempo real. Los procesos que a continuacin se describen sern 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 eleccin del tiempo de o muestreo es a conveniencia del algoritmo empleado. Gracar las respuestas del proceso continuo y del proceso discretizado cuando las seales de entrada son del tipo escaln. n o

La solucin a cada problema se presenta en archivos m (con extensin m), o o los cuales pueden ser ejecutados en el ambiente de trabajo de MATLAB. Las respuestas al escaln se muestran en las guras correspondientes. o Problema 3.1 La gura 3.12 muestra el diagrama de cuerpo libre del sistema de suspensin 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 suspensin, m2 = 320 kg es la masa del sistema de suspensin, k1 = 80000 o o N/m es la constante del resorte de suspensin, k2 = 500000 N/m es la conso tante del resorte del aro ms la rueda, b1 = 350 N-s/m es la constante de a amortiguamiento de la suspensin y b2 = 15020 N-s/m es la constante de o amortiguamiento del aro ms la rueda. Este modelo se encuentra en el sitio a www.engin.umich.edu/group/ctm/index.html. Un buen sistema de suspensin debe tratar de eliminar en el tiempo ms 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 deformacin 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 escaln. 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 suspensin 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

Figura 3.12: Sistema de suspensin 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 escaln para el sistema de suspensin. o o

96 Problema 3.2

Modelado de Procesos

La dinmica de un avin 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 inclinacin del avin mostrado en la gura 3.14 es un problema o o longitudinal.
Empuje x Impulso x
e

Arrastre e z z Peso

Figura 3.14: Avin comercial en pleno vuelo. o Asumiendo que el avin 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 elevacin se iguala con el peso (ver o gura 3.14). Con tales consideraciones, se puede asumir que las ecuaciones longitudinales del movimiento del avin (los datos corresponden a un avin o o comercial Boeing) son: = 0,313 + 56,7q + 0,232e q = 0,0139 0,426q + 0,0203e = 56,7q donde es el ngulo de ataque, q es la relacin de inclinacin, es el ngulo a o o a de inclinacin y e es el ngulo del deector de elevacin. La funcin 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

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 escaln para el angulo de inclinacin del avin o o o comercial en vuelo. Problema 3.3 La bola mostrada en la gura 3.16 puede rodar a lo largo de la barra con un grado de libertad. Una leva conecta la barra con un engranaje que est aca cionado por un servomotor. Se desea disear un sistema de control que pueda n mantener la bola sobre la barra. Asumir que la bola rueda libre de friccin. o Los parmetros 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, aceleracin 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.99106 kg-m2 . Las variables del proceso son: posicin de la barra r, coordenada angular de la barra o y posicin 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 balancendose sobre una barra. a La ecuacin dinmica que describe el proceso es: o a 0= J +M R2 rM gsen M r2

Cuando es pequeo, sen . Luego: n 0= J +M R2 rM g M r2

Por tanto, la ecuacin que relaciona con puede aproximarse mediante la o siguiente relacin lineal: o d = L La funcin de transferencia del proceso resulta: o 1 r(s) M gd = J (s) L R2 + M s2 y la ecuacin de estado del proceso viene a ser: o r r = 0 1 0 0 r r 0 +
L M gd
J +M R2

100

Modelado de Procesos

Sin embargo, usaremos cuatro estados, pues en lugar de controlar la posicin o a travs de , lo haremos a travs de , lo que en esencia signica que e e queremos controlar el torque de la barra. Las ecuaciones de estado y de salida para esta situacin 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.engin.umich.edu/group/ctm/index.html. a


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

0.1000 1.0000

0.0010 0.0209

0.0000 0.0010

3.4 Problemas Resueltos


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

101

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

0.8 0.6 0.4 0.2 0 0

y(t) continua

0.5

1.5 2 Tiempo en segundos

2.5

0.8 0.6 0.4 0.2 0 0

y(k) discreta

0.5

1.5 2 Tiempo en segundos

2.5

Figura 3.17: Respuestas al escaln de la posicin de la bola sobre la barra. o o

102 Problema 3.4

Modelado de Procesos

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

donde i es la temperatura interior en K o en o C, o es la temperatura exterior en K o en o C, Qc es el ujo de calefaccin en J/s o watt, Qe es el o ujo de prdida en J/s o watt, c es la capacidad trmica en J/K, r es la e e resistencia trmica en K/watt, R es la resistencia elctrica en ohm y Vc es el e e voltaje de calefaccin. Notar que podemos usar K o o C, pues las operaciones o derivada o diferencia eliminan el valor 273 de: K = 273 + o C.

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.18: Horno de laboratorio.

a Si o se considera constante, la dinmica del horno se describe como: 1 di 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.3 contiene datos experimentales de la ca de temperatura cuanda do se apaga el horno. La tabla 3.4 tabula el voltaje de calentamiento versus la temperatura interior en estado estable. Para ambas tablas la temperatura exterior es de 30 o C.

3.4 Problemas Resueltos

103

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

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

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

Entonces, la ecuacin linealizada empleando el jacobiano para el punto de o i = 50 o C, e = 30 o C, Vc = 20 volt, resulta: operacin o f di = dt i i + f o o + f Vc vc

Vc

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

104

Modelado de Procesos

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

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

3.4 Problemas Resueltos


2 1.5 1 0.5 0 0

105

y(t) continua

2000

4000

6000 8000 10000 Tiempo en segundos

12000

14000

16000

2 1.5 1 0.5 0 0

y(k) discreta

2000

4000 6000 8000 Tiempo en segundos

10000

12000

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

K12 M1 0 A = K12 M2 0 0

+B B1M1 12 0 B12 M2

0
K12 M1

0
B12 M1

0 0

K12 +K23 M2 0
K23 M3

B2 +B23 +B12 M2 0
B23 M3

0 0 0
K23 M2

0 0 0
B23 M2 +B B3M3 23

K23 M3 v 3 ]T

x = [x1 B = [0

v1 1

x2 0

v2 0

x3 0

0]T

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. CARRO 1er. 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.20: Proceso monorriel de dos carros ms un carro de mquinas. a a

Si ubicamos tacmetros en una o de salida toma la forma: y1 y2 = y3

rueda de cada carro, entonces la ecuacin o 0 0 0 0 0 0 0 0 0 0 x 0 0 0 0 0 i = 1, 2, 3

yi = i vi ,

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

3.4 Problemas Resueltos

107

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

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

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

Modelado de Procesos

Salidas

2.5

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

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

Observar en la gura 3.22(d) que la velocidad y posicin del elevador se o miden separadamente. Entre pisos, el amplicador de potencia se encuentra en estado de saturacin, generando 200 volt, dependiendo de si el o ascensor est subiendo o bajando. Cuando el ascensor se aproxima al piso a donde debe parar, la operacin del amplicador pasa a la zona lineal. En o esta situacin debe actuar un controlador para posicionar suavemente al aso censor empleando las mediciones de velocidad y posicin del ascensor. Tales o mediciones, as como tambin la medicin del voltaje de armadura en la zona e o de saturacin, estn disponibles para cada piso. La gura 3.22(d) muestra el o a sistema de control digital del ascensor. Las ecuaciones de estado y de salida del ascensor son: 3 x1 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

3.4 Problemas Resueltos y= 0 1 0 0 x

109

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

0 1.0000 0 0

0 0 0.6703 0

0 0 0 0.3679

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

110

Modelado de Procesos

Voltaje de entrada u

v u Amplificador de potencia con saturacion

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

Velocidad del ascensor 1 x1 s

Posicion del ascensor x

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

10 (c)

15

x4

D/A con memoria

Posicion del ascensor Actuador mas sensores x x4 2

Computador digital x3 A/D

Amplificador Voltaje de armadura sensor de velocidad

sensor de (d)

posicion

x3

Figura 3.22: Proceso ascensor.

3.4 Problemas Resueltos


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

111

0.15 Salidas continuas

0.1

0.05

0 0

10

15 20 Tiempo en segundos

25

30

0.2 Salidas discretas 0.15 0.1 0.05 0 0

10

15

20 25 30 Tiempo en segundos

35

40

45

Figura 3.23: Respuestas al escaln de la posicin del ascensor. o o

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

112

Modelado de Procesos

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

Controlador Sensor

Referencia

Deposito (b) hr 10 s + 0.5 Sensor vr

1 s+1 Horno

hs

e -(d/v)s

Tiempo muerto

Figura 3.24: Sistema reductor de humedad.


% P3_7P10.m clear all SOLUCION AL PROBLEMA 3.7

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

3.4 Problemas Resueltos


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

113

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

Problema 3.8 Los parmetros valorados del proceso mostrado en la gura 3.26 son: momena to de inercia del rotor J = 0.01 kg-m2 /s2 , constante electromotriz Ke = Kt = 0.01 N-m/A, resistencia R = 12 ohm, resistencia de armadura RA R, condensador C = 0.5 F, inductancia de armadura L = 0.5 H, constante torsional K = 1.8 N-m/rad. Las ecuaciones que gobiernan la dinmica del proceso electromecnico a a mostrado en la gura 3.26 se describen a continuacin. Subproceso elctrico: o e IR = 1 (v vC ); R C vC = IR IM ; dt L dIM = vC e dt

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

Modelado de Procesos

Humedad

16

18

20

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

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

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

y = Cx
Ke K LK +Kt Ke

0 0

K LK +Kt Ke 1 RC

B = 0 ; 0

C=

0 0 1

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

3.4 Problemas Resueltos

115

+ v -

IR

R C

L + e -

IM

K 2

T 1
Figura 3.26: Sistema electromecnico. a

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

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

Modelado de Procesos

3.5.

Problemas Propuestos

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

3.5 Problemas Propuestos


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

117

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

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

Lv = 1

donde es el ngulo de la torreta, es la velocidad angular de la torreta, p a es la aceleracin angular producida por el actuador hidrulico, q es el deso a plazamiento de la servovlvula, Km = [8.46106 , 1.96106 ] (el primer valor a

118

Modelado de Procesos

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

Torreta del tanque

Angulo de elevacion

Azimut: angulo de posicionamiento horizontal

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

Problema 3.10 Una columna de destilacin es un proceso complejo que requiere una gran o cantidad de variables (ms de 100) para describir su comportamiento en a forma muy aproximada. Sin embargo, haciendo las simplicaciones del caso (tales como reduccin del nmero de variables y linealizacin de los puntos o u o de operacin) se puede llegar a un modelo reducido que pueda ser empleado o para el control del proceso. Ese es el caso de una columna de extraccin o

3.5 Problemas Propuestos

119

para la separacin del isopropanol de una mezcla con contenido de agua, o empleando glycol como un extractante (ver gura 3.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

u 1 : vapor de calentamiento Producto (glycol)

Figura 3.29: Columna de destilacin con los perles de concentracin y de o o temperatura. Las ecuaciones de estado y de salida que gobiernan el proceso en cuestin o son las siguientes: x = Ax + Bu + F d; donde: Q1 V1 x= z1 ; z2 y = Cx

u=

u1 S 0 a22 a32 a42 ) 0 0 0 0

; 0 0 ; 0 0

d=

xF A1 FA

y=

T1 T2

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

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

0 0 ; f32 f42

C=

120

Modelado de Procesos

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

m eb

u
-

Va L

Mo Ro Lo m

Jm Bm

K
2

BL JL

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

3.5 Problemas Propuestos

121

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

Ro

m eb

u
-

Va L

Union no flexible

Lo m BL JL

Jm Bm

Figura 3.31: Servomotor con carga no lineal de dos grados de libertad. El acoplamiento de la carga al eje del motor no es exible. Problema 3.13 La gura 3.32 muestra el proceso pndulo doble no lineal. Las ecuaciones e que describen la dinmica del proceso pndulo simple fueron deducidas en la a e seccin 3.1. Para deducir el modelo matemtico del proceso pndulo doble o a e conviene emplear las ecuaciones de Lagrange de la mecnica clsica. El a a acoplamiento entre los dos pndulos no es exible. Los dos pndulos poseen e e la misma longitud y la masa esfrica es de 0.02 kg. e Problema 3.14 La gura 3.33 muestra el proceso doble gra-puente no lineal. Las ecuaciones u que describen la dinmica del proceso gra-puente fueron deducidas en la a u seccin 3.2. Para deducir el modelo matemtico del proceso doble grao a u puente conviene emplear las ecuaciones de Lagrange de la mecnica clsica. a a El acoplamiento entre las dos secciones de la varilla no es exible. Las dos varillas poseen la misma longitud y la masa esfrica adicional es de 0.02 kg. e

122

Modelado de Procesos

+ Fuerza de u control Servomotor D.C. y

F Carro

Figura 3.32: Proceso pndulo doble no lineal. e

+ Fuerza de u control Servomotor D.C. y

F Carro

z y

Doble grua puente

Figura 3.33: Proceso doble gra-puente. u

Cap tulo 4

Control Optimo
Este cap tulo desarrolla un procedimiento para disear sistemas de conn trol optimo estacionarios y no estacionarios, usando una ley de control optima cuadrtica que emplea las seales del proceso medidas directamente o estimadas a n mediante un observador optimo. Las conguraciones usadas para el diseo son n el regulador optimo proporcional y el regulador optimo proporcional integral. La ultima conguracin aade un integrador al controlador con el propsito de re o n o ducir el error en estado estable. El procedimiento de diseo desarrollado, puede n ser aplicado tanto a sistemas univariables como a sistemas multivariables. Dos aplicaciones validan el procedimiento de diseo desarrollado: control n o ptimo de los procesos pndulo invertido y gra puente. La penltima seccin, e u u o problemas resueltos, est dedicada al diseo de sistemas de control ptimo a n o estacionarios para diferentes procesos. La ultima seccin propone problemas de o diseo a resolver. Todos los archivos correspondientes a los ejercicios, problen mas, diseos, simulaciones y software desarrollados se pueden descargar del sitio n http://ee.uni.edu.pe/728681F.

4.1.

Introduccin o

El control optimo trata de determinar el mejor sistema de control emple ando una tcnica ptima de diseo. Esta tcnica asume la formulacin de una e o n e o funcin matemtica denominada la funcin de costo, tambin conocida como o a o e funcin de rendimiento, o ndice de rendimiento o ndice de funcionamiento, entre otras denominaciones. El procedimiento de diseo del sistema de conn trol optimo trata de encontrar un extremo (un m nimo o un mximo, dado el a caso) de una funcin de costo con el propsito de determinar los parmetros o o a

124

Control Optimo

o ptimos de una ley de control; de all el trmino optimo. En la mayor de e a los casos, sin embargo, la bsqueda de la funcin de costo involucra proceu o dimientos de error y correccin; esto signica que no siempre podemos estar o seguros acerca de la forma exacta que deber poseer la funcin de costo. a o Para sistemas de control discretos, la funcin de costo generalmente posee o la forma siguiente:
N

J=
k=0

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

(4.1)

donde k es el tiempo discreto, N es el tiempo discreto nal, x(k) es el vector de estado, r(k) es el vector de referencia (entrada al sistema de control) y u(k) es el vector de control ptimo. Esta ley de control (denominada tambin o e fuerza o seal de control) constituye la entrada al proceso a controlar. n Para aplicaciones prcticas, el vector de control u debe estar siempre a acotado. Por ejemplo, |ui (k)| Ui (4.2)

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

en donde cada elemento Mi es una constante dada. En cualquier caso, el vector de control u debe satisfacer ciertas restricciones para poder ser un vector de control admisible. En este cap tulo se desarrolla el procedimiento de diseo de un sistema n de control optimo cuadrtico discreto, denominado as porque emplea una a funcin de costo cuadrtica de dominio discreto. El resultado del diseo o a n proporciona una matriz de ganancia que multiplicada por el vector de estado (real o estimado) del proceso, resulta en una ley de control optima cuadrtica. El vector de estado estimado se determina usando un observador a o ptimo. Para demostrar la validez del procedimiento de diseo, se presentan dos n aplicaciones: diseo del sistema de control ptimo cuadrtico para el proceso n o a pndulo invertido y para el proceso gra-puente. e u

4.2 Control Optimo Cuadrtico No Estacionario a

125

4.2.

Control Optimo Cuadrtico No Estacionario a

El problema del control optimo cuadrtico discreto no estacionario con a siste en encontrar una adecuada ley de control optima que sea capaz de trasladar la dinmica del proceso desde un estado inicial x(0) hacia un esa tado nal deseado x(N ). La fuerza de control optima u(k) se determina a partir de la minimizacin de una funcin de costo cuadrtica discreta. Esta o o a fuerza de control aplicada al proceso a controlar, provoca que dicho proceso responda en forma optima (o lo ms cercano al ptimo). El control optimo a o cuadrtico discreto se basa en la siguiente funcin 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.4)

donde x(k) es el vector de estado de dimensin n y u(k) es el vector de o control de dimensin r. Mientras que la matriz hermitiana semidenida poso itiva S (de dimensin n n) pondera la importancia del estado nal x(N ), o la matriz hermitiana semidenida positiva Q (de dimensin n n) pondera o la importancia del vector de estado x(k), y la matriz hermitiana denida positiva R (de dimensin r r) pondera la importancia de la seal de cono n trol u(k). La denicin de matrices se trat en la subseccin 1.2.4. La ley o o o del control optima a usar emplea la realimentacin del vector de estado x(k) o en su formulacin y posee la forma siguiente: o u(k) = K(k)x(k) (4.5)

donde K(k) (de dimensin rn) es la matriz de ganancia del controlador, deo nominada tambin matriz de realimentacin de estados. Cuando la dinmica e o a del sistema de control es nita, K(k) es una matriz variante en el tiempo; pero cuando dicha dinmica alcanza su estado estacionario (es decir, cuando a N ), entonces K(k) se convierte en una matriz constante K. En esta ultima situacin, estaremos frente al denominado control optimo en estado o estacionario, y es el que usaremos en nuestras aplicaciones. Una condicin o necesaria para poder aplicar el control por realimentacin de estados es que o el proceso sea completamente controlable. Por consiguiente, ser necesario a vericar dicha condicin en el proceso antes de iniciar el procedimiento de o diseo. n La realimentacin de estados requiere adems que todos los estados sean o a disponibles y medibles. Si en el sistema a controlar existieran estados que

126

Control Optimo

no pudieran ser medidos directamente, ser necesario estimarlos. Esta estia macin puede ser realizada empleando la tcnica de observacin de estados o e o que ser tratada en la seccin 4.6. El requerimiento en esta parte es que el a o proceso sea completamente observable. La solucin al problema de control optimo cuadrtico puede obtenerse o a empleando varios enfoques, tales como el mtodo de minimizacin usando e o multiplicadores de Lagrange o mediante el principio de optimalidad [3],[4]. Asumamos que el proceso puede ser modelado mediante la siguiente ecuacin o de estado discreta: x(k + 1) = Gx(k) + Hu(k); x(0) = c (4.6)

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

posea rango completo; es decir, el rango de M debe ser igual al orden n del proceso. La solucin al problema del control optimo cuadrtico 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 denida positiva de dimensin o n n. Dicha matriz es solucin de la siguiente ecuacin matricial de Riccati: o o P (k) = Q+GT P (k +1)GGT P (k +1)H[R+H T P (k +1)H]1 H T P (k +1)G (4.9) La matriz P (K) de la ecuacin (4.9) puede determinarse recursivamente o partiendo de la siguiente condicin terminal para k = N : o P (N ) = S (4.10)

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

4.3 Control Optimo Cuadrtico Estacionario a

127

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

4.3.

Control Optimo Cuadrtico Estacionario a

En la seccin anterior vimos que cuando la dinmica del sistema de o a control evoluciona en un tiempo N nito, la ganancia de realimentacin de o estados K(k) es una matriz variante en el tiempo. Sin embargo, cuando la dinmica del sistema de control evoluciona hasta un tiempo N innito, la a solucin del control optimo cuadrtico pasa a ser una solucin de estado o a o estacionario. En este caso, la ganancia K(k) se convierte en una matriz constante K. Para N innito, el trmino xT (N )Sx(N ) de la ecuacin (4.4) e o desaparece debido a que x() = 0. Por consiguiente, la funcin de costo o para el estado estacionario toma la forma: 1 J= 2

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

(4.12)

Por otra parte, en el estado estacionario la matriz P (k) resulta una matriz constante P . De este modo la ecuacin 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 funcin de costo m o nima viene a ser: 1 Jmin = xT (0)P x(0) 2 (4.16) (4.14) (4.15) (4.13)

128

Control Optimo

Una forma de obtener la matriz P de la ecuacin matricial (4.13), es emo pleando la ecuacin de Riccati en estado no estacionario dada en la ecuacin o o (4.9), pero invirtiendo la direccin 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.17) La ecuacin (4.17) permite determinar una matriz P de magnitud convero gente usando clculo recursivo como sigue. Asumiendo inicialmente para k a = 0 que P (0) = 0, podemos obtener P (1); luego usar P (1) para obtener P (2), y asi sucesivamente, hasta llegar a un tiempo discreto k para el cual P (k) = P (k + 1) = P (k + 2) = . Con la matriz P as determinada, pode mos calcular ahora la ganancia K usando la ecuacin (4.14), para luego o obtener la ley de control dada por la ecuacin (4.15). El diagrama de bloo ques del control optimo de estado estacionario se representa en la gura 4.1, en donde se asume que todos los estados se encuentran disponibles. Para operacin satisfactoria del sistema de lazo cerrado mostrada en dicha gura, o todas las ra ces de su ecuacin caracter o stica: det[zI G + HK] = 0 (4.18)

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

G -K

Figura 4.1: Sistema de control optimo a lazo cerrado.

4.4.

El Regulador Optimo Proporcional

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

4.4 El Regulador Optimo Proporcional

129

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

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

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

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

130

Control Optimo

La condicin para que y = R es que C(I G + HK)1 Hk1 = 1, que no o siempre se cumple. Por ello, es necesario afectar a la seal 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.1 y 4.2. a (4.23)

4.5.

Seleccin de las Matrices de Ponderacin o o

La funcin de costo para determinar la ganancia K del controlador optio mo estacionario est dada en la ecuacin (4.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 seal de control n u(k) mientras que la matriz hermitiana Q pondera el vector de estado x(k). En la subseccin 1.1.2 vimos que una matriz es hermitiana cuando su conjuo gada transpuesta (o su transpuesta conjugada) resulta en la misma matriz. Por tanto, es vlido que (R )T = (RT ) = R y (Q )T = (QT ) = Q. Cuando a las matrices R y Q son reales, entonces ambas deben ser simtricas y se e o verica que RT = R y QT = Q. Asimismo, en la subseccin 1.2.4 se dijo que una matriz cuadrada R es denida positiva si las ra ces de su ecuacin o caracter stica |zI R| = 0 son todas positivas, mientras que una matriz cuadrada Q es semidenida positiva si las ra de su ecuacin caracter ces o stica |zI Q| = 0 son positivas o nulas (sin embargo, no todas las ra deben ces ser nulas). La matriz R, por conveniencia, puede tomar la forma de una matriz real diagonal: r1 0 . . . 0 . . 0 r2 . R= . .. . . . 0 ... rp donde los elementos r1 , r2 ,. . . ,rp deben ser todos positivos para que R sea una matriz simtrica denida positiva. Para sistemas con una sola seal de e n entrada, R resulta un escalar de valor positivo.

4.5 Seleccin de las Matrices de Ponderacin o o La matriz Q puede tomar tambin una forma diagonal: e q1 0 . . . 0 . . 0 q2 . Q= . . .. . . 0 ... qn

131

donde los elementos qi pueden ser positivos y algunos de ellos nulos para que Q sea una matriz simtrica semidenida positiva. e a Cada elemento qi o cada elemento ri dar un peso correspondiente a cada variable de estado xi o a cada seal de control ui , respectivamente. El criterio n para escoger los pesos est en relacin con la importancia que le demos a a o cada variable o seal en cuestin. Para el caso del observador de estados, n o las matrices de ponderacin Re y Qe deben ser elegidas de tal forma que o la respuesta del observador sea dos o tres veces ms rpida (regla prctica) a a a en comparacin con la respuesta del proceso. Es decir, la salida y(k) del o proceso (ver gura 4.6) debe alcanzar su estado estacionario despus que la e salida y (k) del observador ya la haya alcanzado. Generalmente para que esto ocurra, los elementos de Re deben ser bastante menores que los elementos de Qe . Debemos tener en cuenta que un mayor peso en una de las variables ocasiona una mejor respuesta con relacin a tal variable, pero disminuye el o desempeo de las dems. Es entonces necesario balancear en forma adecuada n a los pesos, de manera tal que obtengamos un desempe o general del sistema, n que se acerque en lo posible al optimo y que evidentemente, cumpla las especicaciones de diseo. n Ejemplo 4.1 El motor D.C. es un actuador muy popular en los sistemas de control porque su movimiento rotatorio, mediante acoples adecuados en su eje, puede convertirse fcilmente en movimiento de traslacin. Eso se aprecia en fajas transa o portadoras o en brazos manipuladores. La gura 4.3 muestra el circuito de armadura del motor acoplado a una carga. Los parmetros del motor fueron a determinados experimentalmente, resultando: momento de inercia del rotor o J = 0.01 kg-m2 /s2 , coeciente de friccin b = 0.1 N-s/m, constante electromotriz K = Ke = Kt = 0.01 N-m/A, resistencia de armadura R = 1 ohm e inductancia de armadura L = 0.5 H. Cabe anotar que el motor de este ejemplo no es el servomotor que estamos usando para implementar los sistemas de control de los procesos descritos en

132

Control Optimo

+ V I

L + . e=K -

T . b J b

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

x1 x2

1 L

4.5 Seleccin de las Matrices de Ponderacin o o x1 x2

133

y = x1 =

1 0

+ DV ;

D = [0]

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

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

Control Optimo

0.05 0 0

0.5

1.5

2.5

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

40 V (voltios)

20 0 0

0.5

1.5 Tiempo

2 (s)

2.5

Figura 4.4: Respuesta yRpta (a lazo abierto) del motor D.C. a un escaln o de 1 rad/s. La velocidad angular controlada es y; la seal de control es V . n Ejemplo 4.2 Determine el controlador optimo cuadrtico estacionario que estabilice la a posicin angular del eje del motor (descrito en el ejemplo 4.1) a 1 rad, con o las especicaciones siguientes: tiempo de estabilizacin menor que 2 s, error o en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %. Solucin: Eligiendo x1 = , 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 = , las ecuaciones de estado y de

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

4.5 Seleccin de las Matrices de Ponderacin o o

135

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

136
1.5

Control Optimo

y (rad)

0.5

0 0

0.5

1.5

2.5

60 40 20 0 20 0

V (voltios)

0.5

1.5 Tiempo

2 (s)

2.5

Figura 4.5: Salida controlada y (posicin angular) y seal de control V para o n el motor D.C.

4.6.

Diseo del Observador Optimo Cuadrtico n a

En muchos casos prcticos, slo unas cuantas variables del vector de a o estado x(k) del proceso son susceptibles de ser medidas en forma directa. En tales situaciones necesitamos estimar dicho vector de estado; es decir, requerimos hallar un vector de estado estimado x(k). Esto puede lograrse mediante el empleo de un observador discreto de estados. El diseo de dicho n observador implica determinar su matriz de ganancia Ke , que puede ser calculada a partir de la minimizacin de una funcin de costo cuadrtica. El o o a diagrama de bloques del observador de estados se representa en la gura 4.6, donde podemos notar que el observador emplea las mediciones de la salida y(k) y de la seal de control u(k). n De la gura 4.6 podemos formular: x(k + 1) = Gx(k) + Hu(k) y(k) = Cx(k) mientras que la ecuacin del observador toma la forma: o x(k + 1) = G (k) + Hu(k) + Ke [y(k) C x(k)] x (4.26) (4.24) (4.25)

4.6 Dise o del Observador Optimo Cuadrtico 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)

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

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

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

138

Control Optimo

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

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

(4.31)

Empleando tales modicaciones en las estructuras de la ecuacin de estado o del proceso x(k+1) = Gx(k)+Hu(k), de su ecuacin de salida y(k) = Cx(k) o y de su ley de control u(k) = Kx(k), obtendremos la siguiente ecuacin 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.33)

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

T (k)Qe (k) + T (k)Re (k)


k=0

(4.34)

entonces la correspondiente ecuacin 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.36) (4.35)

4.7 El Regulador Optimo Proporcional Integral

139

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

4.7.

El Regulador Optimo Proporcional Integral

Generalmente es necesario aadir accin integral, al regulador proporn o cional visto en la seccin anterior, debido a que errores de estado permanente o

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

Control Optimo

10

15

20 Muestras

25 k

30

35

40

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

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

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

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 seal 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.38) (4.39)

(4.40)

(4.41)

La ecuacin 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.43) ( Empleando las ecuaciones (4.38) y (4.40) obtenemos: x(k + 1) = Gx(k) + H[Kx(k) + KI v(k)] = (G HK)x(k) + HKI v(k) y de las ecuaciones (4.43) y (4.44) y (4.39) deducimos: x(k + 1) v(k + 1) = G HK HKI CG + CHK 1 CHKI y(k) = C 0 x(k) v(k) x(k) v(k) + 0 1 r(k + 1) (4.45) (4.46) (4.44) (4.42)

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

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

Control Optimo

(4.48) (4.49)

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

G 0 CG I

K KI

La ecuacin (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.53) (4.54) (4.55) (4.56) (4.51) (4.52)

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

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

(4.57)

4.7 El Regulador Optimo Proporcional Integral

143

Debemos entonces calcular una matriz K adecuada de forma tal que minimice la funcin de costo dada en la ecuacin (4.57). Empleando el mismo o o procedimiento usado en la seccin 4.3, es posible formular la ecuacin de o o Riccati y la ecuacin de ganancia del controlador K para el regulador, como o sigue: (4.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.59)

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

144

Control Optimo

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

y (rad/s)

0.5

0 0

0.5

1.5

2.5

25 20 15 10 5 0

V (voltios)

0.5

1.5 Tiempo

2 (s)

2.5

Figura 4.9: Salida controlada y y seal de control V para el ejemplo 4.4. n

4.8 Procedimiento de Dise o e Implementacin n o

145

4.8.

Procedimiento de Diseo e Implementacin n o

El procedimiento de diseo e implementacin en tiempo real de un sisn o tema de control ptimo cuadrtico comprende los pasos siguientes: o a 1) Formular el problema (determinar especicaciones de diseo). n 2) Determinar el modelo matemtico del proceso a controlar (secciones a 3.1 y 3.2) y determinar si es completamente controlable y completamente observable (seccin 2.3.6). o 3) Calcular la matriz de ganancia optima K de control (seccin 4.7). o o 4) Calcular la matriz de ganancia optima Ke del observador (seccin 4.3). 5) Simular el sistema de control optimo cuadrtico. a 6) Implementar el hardware del sistema (subseccin 4.9.6). o 7) Implementar el software del sistema (subseccin 4.9.7). o 8) Realizar pruebas de funcionamiento (obtener resultados experimentales satisfactorios).

4.9.

Control Optimo Cuadrtico del Pndulo Ina e vertido

En esta seccin nos ocuparemos del diseo del control optimo cuadrtico o n a del proceso pndulo invertido empleando el procedimiento de diseo descrito e n en la seccin 4.8. o

4.9.1.

Formulacin del Problema o

Dado el proceso pndulo invertido, conformado por una varilla montada e en un carro impulsado por un servomotor D.C. controlado por voltaje de armadura, se desea disear un servocontrolador que sea capaz de mantener n el pndulo invertido en posicin vertical (tanto como sea posible), y al mise o mo tiempo, mantener el carro en una posicin referencial. En el problema o planteado, el pndulo se mueve en el mismo plano que la trayectoria del e carro. El sistema de control ser diseado empleando la tcnica de control a n e

146

Control Optimo

o ptimo cuadrtico y la conguracin de un servosistema. La entrada al proa o ceso (la seal de control) es el voltaje de armadura del servomotor D.C. y las n salidas del servosistema son la posicin angular del pndulo y la trayectoria o e horizontal del carro. Se desea un tiempo de estabilizacin de la posicin del o o carro de aproximadamente 6 segundos con el menor sobreimpulso posible. Cabe anotar que para alcanzar las especicaciones de diseo planteadas, n se requiere seleccionar adecuadamente las matrices de ponderacin, como o veremos ms adelante. a

4.9.2.

El Modelo del Proceso a Controlar

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e


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

147

C=

0 0 1 0

4.9.3.

Clculo de la Matriz de Ganancia del Controlador a

En la seccin 4.7 vimos que la estructura del servosistema a emplear en o el diseo del controlador optimo se describe mediante las ecuaciones (4.51) n y (4.52), a saber: (k + 1) = G(k) + Hw(k); donde: G(k) = G 0 CG I ; H(k) = H CH ; 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, que debe ser 5. El clculo se realiza como sigue: a
G1 = [G zeros(4,1) -Cc*G 1]; H1 = [H;-Cc*H]; % MATRIZ DE CONTROLABILIDAD M = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1]; rM = rank(M); % rM = 5 => COMPLETAMENTE CONTROLABLE = G 1,0002 0,0995 0,0000 0,0019 0,0000 0,0050 1,0002 0,0000 0,0000 0,0000 0 0 1,0000 0 1,0000 0,0002 0,0963 0,0049 0,9508 0,0049 0 0 0 0 1,0000 ; = H 0,0004 0,1497 0,0002 0,0765 0,0002

148

Control Optimo

Para determinar la matriz de ganancia K del controlador de realimentacin o de acuerdo a lo establecido en la seccin 4.7, seleccionamos antes las matrices o de ponderacin R y Q como sigue: o 200 0 0 0 0 0 0 0 0 0 0 R = [100]; Q = 0 0 100 0 0 0 0 0 0 0 0 0 0 0,01 En la matriz Q observamos que se est dando mayor peso al angulo del a pndulo (200). La posicin del carro recibe un peso de 100 mientras que e o al integrador se le asigna 0.01. Con el propsito de evitar la saturacin del o o amplicador, tenemos que reducir la amplitud de la seal de entrada (o de n control) a dicho amplicador, pues de otro modo se originar efectos no an lineales indeseados en el sistema. Para tal propsito, R toma el valor de 100, o dando as mayor nfasis a la seal de control en el proceso de optimizacin. e n o Para calcular la matriz K debemos resolver la ecuacin de Riccati (4.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.60) El programa siguiente (en cdigo MATLAB) calcula el valor estacionario de o la matriz solucin P (k), donde P (0) es una condicin inicial arbitraria: o o
P = zeros(5,5); for i = 1:1000 P = Q + G1*P*G1 - G1*P*H1*inv(R + H1*P*H1)*H1*P*G1 end

donde G1 G, H1 H, P P , Q Q y R R. As obtenemos:
= 105 P 1,3774 0,3112 0,9019 0,5082 0,0035 0,3112 0,0727 0,2107 0,1197 0,0008 0,9019 0,2107 0,9352 0,3735 0,0041 0,5082 0,1197 0,3735 0,2000 0,0015 0,0035 0,0008 0,0041 0,0015 0,0000

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e

149

4.9.4.

Clculo la Matriz de Ganancia del Observador a

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

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

Re =

1 0 0 10

Podemos observar que en la matriz Re se da un peso de 10 a la medicin de o la posicin del carro, pues es ms exacta que la medicin del angulo, debido o a o a que el sensor usado para medir dicho angulo posee un error de cuantizacin o mayor. En la matriz Qe se asigna un peso de 1000, el mayor en Qe , tanto a la velocidad angular de la varilla como a la velocidad del carro, porque stas e son las variables que no son posibles de medir directamente y necesitamos que tengan una mayor inuencia en el proceso de estimacin. Notar tambin o e que la posicin del carro posee un peso de 0.9, algo menor comparado con o el peso de 1 atribu al angulo de la varilla, dado que el sensor de posicin do o del carro es ms exacto que el sensor de posicin de la varilla. a o Para calcular la matriz de ganancia del observador Ke calculamos previamente la matriz Pe a partir de la ecuacin (4.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 cdigo MATLAB) calcula el valor estacionario de o la matriz solucin 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

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


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

Control Optimo

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

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

4.9.5.

Simulacin del Sistema de Control Optimo o

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e


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

151

152

Control Optimo

% %

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e


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

153

10 Tiempo

12 (s)

14

16

18

20

Figura 4.10: Simulacin del sistema pndulo invertido: posicin del carro. o e o

4.9.6.

El Hardware del Sistema de Control

La gura 4.13 muestra los componentes f sicos (el hardware) del sistema de control. Tales componentes son: el proceso a controlar (pndulo invere tido o gra-puente), los sensores de posicin, el amplicador de potencia, la u o tarjeta de adquisicin de datos Lab-PC+, y una computadora personal con o microprocesador Pentium. El proceso pndulo invertido (o gra-puente) se e u muestra esquematizado en la gura 4.14 y comprende: Un servomotor D.C. Pittman de imn permanente de aproximadaa mente 350 rpm, que posee reduccin de velocidad interna y codicador o o ptico incorporado, cuya operacin explicaremos ms adelante. o a Dos poleas de radio igual a 6.48 cm, una de las cuales est unida al a eje del motor y la otra, al otro extremo de un carril. Un carril de metal por donde se desliza el carro porta-pndulo. e

154
0.15

Control Optimo

0.1 Posicin angular del pndulo

0.05

0.05

0.1 0

10 Tiempo

12 (s)

14

16

18

20

Figura 4.11: Simulacin del sistema pndulo invertido: posicin angular del o e o pndulo. e
0.7 0.6 0.5 0.4 Seal de control u 0.3 0.2 0.1 0 0.1 0.2 0

10 Tiempo

12 (s)

14

16

18

20

Figura 4.12: Simulacin del sistema pndulo invertido: seal de control. o e n

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e

155

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

PA COMPUERTAS DIGITALES DE ENTRADA Y SALIDA

16 bits

PC

Figura 4.13: Implementacin del sistema de control. o

156

Control Optimo

SERVOMOTOR

PENDULO POLEA

CARRO CARRIL

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

Servomotor D.C

Reductor de velocidad

Figura 4.15: Servomotor con codicador optico y polea.

Los Sensores de Posicin o El sistema de control posee dos sensores de posicin, uno de los cuales se o encarga de medir la posicin angular del motor y el otro se encarga de medir o

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e

157

Pendulo

Codificador optico

Ruedas

Figura 4.16: Esquema del carro. la posicin angular de la varilla. Cada sensor consiste de un codicador optio co rotatorio, compuesto de un disco metlico con un nmero determinado a u de ranuras igualmente espaciadas y ubicadas en el per metro del disco, y un emisor-sensor ptico que genera un haz de luz perpendicular al disco (ver o gura 5.13).
Canal A Canal B Fuente de luz Transistor o ptico Eje del servomotor Disco con mascara

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

158

Control Optimo

permiten el paso de luz a travs del disco. Dicho haz activa el transistor e o ptico del emisor-sensor, generando un pulso de corriente que se constituye as en la entrada a un contador de pulsos. El nmero de ranuras que posee el u sensor de la varilla es 256, mientras que el sensor del servomotor posee 512 ranuras. Hay que tomar en cuenta adems que el codicador incorporado en a el motor es solidario al eje primario; es decir, para obtener el angulo de giro en el eje de salida, se tiene que aplicar un factor de reduccin cuyo valor o numrico se da en la seccin 3.2.6. e o El codicador 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, de acuerdo al sentido de giro del disco. Estos dos trenes de pulsos pasan luego a un decodicador de cuadratura LS7083 que genera las seales Clock Up o Clock Down, segn n u sea positivo o negativo el sentido de giro del disco (ver gura 5.14). Las seales 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. Los dos codicadores opticos poseen la circuiter descrita anteriormente, a de modo tal que para cada sensor tenemos una salida de 16 bits que se almacena en un registro. La seleccin entre una u otra salida binaria se realiza por medio de la o habilitacin de un registro, o mediante una seal proveniente de la computao n dora personal (ver gura 4.13). En conclusin, la cuenta almacenada en los o contadores es una funcin lineal proporcional a la posicin angular del eje o o del disco. Para obtener la posicin angular a partir del nmero de pulsos o u o NP dados por los contadores, podemos usar la siguiente relacin: Para la varilla, posicin angular de la varilla: (2/256) NP . o Para el motor, posicin angular del eje del motor: (2/512)NP (antes o de la reduccin). o

El Amplicador de Potencia Un amplicador de potencia basado en la modulacin PWM (Pulse o Width Modulation) alimenta al servomotor D.C. Este amplicador est coma puesto por un modulador PWM de baja potencia (el LM3524), una lgica o digital de disparo y un conmutador amplicador tipo H implementado con cuatro Mosfets. Tambin existe circuiter adicional para generar la tensin e a o de disparo en cada conmutador Mosfet.

4.9 Control Optimo Cuadrtico del Pndulo 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

74HC 193

Figura 4.18: Sensado de la posicin. o La Tarjeta de Adquisicin de Datos Lab-PC+ o La tarjeta de adquisicin de datos Lab-PC+ de National Instruments es o la interfaz empleada para el env de la seal de control y para la adquisio n cin de datos. La interconexin de la tarjeta de adquisicin de datos con el o o o amplicador y los sensores se realiza en la forma siguiente: Puerto A: recibe los 8 bits menos signicativos del sensor. Puerto B: recibe los 8 bits ms signicativos 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. bit 3: reinicia (reset) los contadores. bit 7: recibe la seal de reloj de la frecuencia de muestreo Fs n generada por OUTB0. bits 0,4,5 y 6: no usados. DAC0: env la seal de control. a n OUTB0: env la seal de reloj de muestreo. a n

160 Seleccin de la Frecuencia de Muestreo o

Control Optimo

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

4.9.7.

Implementacin del Software de Control o

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e

161

funciones NI-DAQ [25], as como tambin funciones de lectura y escritura e de puertos. El archivo FUNC PEN.H consta de las siguientes funciones: CongurarHardware: inicializa la tarjeta Lab-PC+, congura los puertos y especica la frecuencia del clock de muestreo. EnviarVoltaje: restringe y env voltajes al DAC0 del Lab-PC+. 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, con el n de seleccionar la lectura del sensor de la varilla o la del sensor del motor. NivelClock: lee el bit 7 del puerto C y recibe el clock de muestreo de OUTB0. ResetContadores: coloca un 1 o un 0 en el bit 3 del puerto C, con el n de borrar el contenido de los contadores de los sensores. El Programa de Control El programa de control se denomina PENDOI4.CPP. En el ambiente de trabajo de Borland C/C++, los archivos FUNC PEN.H, FUNC PEN.CPP y PENDOI4.CPP forman en conjunto el proyecto PENDOI4.PRJ. El programa PENDOI4.CPP comprende las partes siguientes: 1. Inicializacin o a) Inicializacin de la tarjeta de adquisicin de datos. o o b) Inicializacin de variables. o c) Establecimiento de la posicin cero del carro y de la varilla. o 2. Bucle del algoritmo de control a) b) c) d) 3. Deteccin del anco de subida del clock. o Medicin de las salidas. o Observacin de estados. o Clculo y aplicacin de la seal de control. a o n

Almacenamiento de las respuestas.

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

162

Control Optimo

INICIO INMICIALIZA: - TARJETA DE ADQUISICION DE DATOS - VARIABLES

BORRA CONTADORES

ESTABLECIMIENTO DE LA POSICION CERO DEL CARRO Y LA VARILLA

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

NO

FIN

NO

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

Figura 4.19: Diagrama de ujo del programa de control.

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e Inicializacin de la Tarjeta de Adquisicin de Datos o o

163

El hardware de la tarjeta Lab-PC+ se congura con la funcin para o inicializacin CongurarHardware(Fs), en donde se especica la frecuencia o de muestreo Fs que debe generar. Inicializacin de Variables o Se inicializan todas las variables a utilizar en el programa y se cargan las matrices que previamente fueron calculadas. Establecimiento de la Posicin Cero del Carro y de la Varilla o Se pide al usuario colocar la varilla y el carro en la posicin cero. En o el caso de la varilla, sta debe colocarse en posicin vertical y hacia arriba e o (pndulo invertido) o hacia abajo (gra-puente). Con esto se consigue que el e u programa identique la posicin de 0 grados del pndulo y de 0 metros del o e carro. Realizada esta accin, el programa pide luego colocar el pndulo o el o e carro en las posiciones iniciales deseadas, para inmediatamente comenzar el control. Deteccin del Flanco de Subida del Clock o Detecta el anco de subida del clock mediante la funcin NivelClock, lo o que nos indica el comienzo de un nuevo per odo de muestreo. Medicin de las Salidas o Para obtener la posicin angular a partir del nmero de pulsos dados o u por los contadores, podemos usar la siguiente relacin: o Para la varilla, posicin angular de la varilla: (2/256) NP . o Para el motor, posicin angular del eje del motor: (2/512)NP (antes o de la reduccin). o Para la lectura de los sensores tenemos que tomar en cuenta la saturacin o de los contadores, los cuales pueden guardar un valor mximo de 65535. a En el caso de la varilla, consideraremos como positivo los valores que resulten de un recorrido horario, y negativo los que resulten de un recorrido antihorario. Para este caso, los contadores no llegan a saturarse, pues a lo sumo la varilla podr tener un recorrido de 360o , lo que corresponde a

164

Control Optimo

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

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e

165

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

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

166 Clculo de la Se al de Control a n

Control Optimo

Para el clculo de la seal de control utilizaremos las ecuaciones (4.40) a n y (4.42), a saber: u(k) = Kx(k) + KI v(k) v(k) = v(k 1) + r(k) y(k) En el programa en cdigo C utilizamos la siguiente notacin: o o Xe[ ] = x(k); V = v(k); K[ ] = K; V ant = v(k 1); KI = KI ; r = r(k); Xe[2] = y(k) u = u(k)

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


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

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

Para aplicar la seal de control emplearemos: n


Enviarvoltaje(u+v+offset);

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e


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

167

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

168

Control Optimo

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e


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

169

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

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

170

Control Optimo

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e


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

171

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

Control Optimo

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e


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

173

174

Control Optimo

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

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

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

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e


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

175

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

176

Control Optimo

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

4.9 Control Optimo Cuadrtico del Pndulo Invertido a e

177

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

4.9.8.

Resultados Experimentales

Los resultados experimentales se obtuvieron con una seal de referenn cia escaln de 1.5 m para la posicin del carro. Los resultados del control o o o ptimo cuadrtico del sistema de pndulo invertido con observador de orden a e completo se muestran en las guras: 4.20, 4.21 y 4.22. En los resultados experimentales se observa que la posicin del carro, que o es la seal de realimentacin del servosistema, sigue a la seal de referencia n o n en menos de 6 segundos y con sobreamortiguamiento m nimo, tal como estaba propuesto en las especicaciones de diseo del sistema de control. La n posicin angular del pndulo logra estabilizarse alrededor de cero; es decir, o e se llega a posicionar en forma vertical. Observar en la respuesta estacionaria, tanto en la posicin del carro o como en la posicin angular del pndulo, la presencia de una oscilacin o e o estacionaria (ciclo l mite) que podr reducirse usando sensores ms precisos a a

178

Control Optimo

posicin del carro (medicin directa) 2

1.5

posicin (m)

0.5

0.5 0

10 12 tiempo (s)

14

16

18

20

Figura 4.20: Control optimo del pndulo invertido: posicin del carro. e o
ngulo del pndulo (medicin directa) 0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 0

ngulo (rad)

10 12 tiempo (s)

14

16

18

20

Figura 4.21: Control optimo del pndulo invertido: posicin angular del e o pndulo. e

4.10 Control Optimo Cuadrtico de la Gr a-Puente a u


entrada 1.5

179

0.5 entrada (v)

0.5

1.5 0

10 12 tiempo (s)

14

16

18

20

Figura 4.22: Control optimo del pndulo invertido: seal de control. e n (con un tamao de paso de deteccin menor). n o El algoritmo de control lineal empleado requiere que las variables no salgan de la zona lineal impuesta por el modelo lineal. Sin embargo, el sistema de control diseado responde en forma adecuada para desviaciones de la n a posicin de la varilla de hasta 20o , lo que est bastante fuera de la zona o lineal impuesta por el modelo.

4.10.

Control Optimo Cuadrtico de la Gra-Puente a u

En esta seccin nos ocupamos del diseo del control optimo cuadrtico o n a del proceso gra-puente empleando el procedimiento de diseo presentado u n en la seccin 4.8. o

4.10.1.

Formulacin del Problema o

Dado el sistema gra-puente, conformado por una varilla que cuelga liu bremente de un carro impulsado por un servomotor D.C. controlado por su voltaje de armadura, se desea disear un servocontrolador que sea can paz de trasladar al carro a una posicin determinada, de manera tal que o

180

Control Optimo

la oscilacin en la varilla sea m o nima. El problema en consideracin es de o dos dimensiones, dado que la varilla se balancea en el mismo plano que la trayectoria del carro. El diseo del sistema de control est basado en la teor n a a de control optimo cuadrtico. La entrada al proceso (la seal de control) es a n el voltaje de armadura del servomotor D.C. y las salidas del servosistema son la posicin angular del pndulo y la trayectoria horizontal del carro. Se o e desea un tiempo de estabilizacin de la posicin del carro de aproximadao o mente 6 segundos con el menor sobreimpulso posible. Cabe anotar que para alcanzar las especicaciones de diseo planteadas, se requiere seleccionar n adecuadamente las matrices de ponderacin. o

4.10.2.

Simulacin del Sistema Controlado o

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

4.10 Control Optimo Cuadrtico de la Gr a-Puente a u


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

181

182

Control Optimo

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

4.10 Control Optimo Cuadrtico de la Gr a-Puente a u

183

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

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

0 0 1,0000 0

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

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

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

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

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

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

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

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

K=

8,2596

4,3465

37,9206

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

KI = 0,2907

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

4.27 y 4.28.

4.10.3.

El Hardware y el Software del Sistema de Control

La implementacin del hardware, as como el diseo del software del o n sistema de control, fueron tratadas en las subsecciones 4.9.6 y 4.9.7, respectivamente. Cabe anotar que el hardware del sistema y la estructura del software es comn, tanto para el pndulo invertido como para la gra-puente. u e u Basta cambiar de signo en algunas sentencias del archivo PENDOI4.CPP (descrito en la subseccin 4.9.7) para crear el software de control del proceso o gra-puente. u

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

Control Optimo

10 Tiempo

12 (s)

14

16

18

20

Figura 4.23: Simulacin del sistema gra-puente: posicin del carro. o u o


0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0

Posicin angular de la gra puente

10 Tiempo

12 (s)

14

16

18

20

Figura 4.24: Simulacin del sistema gra-puente: posicin angular de la vao u o rilla.

4.10 Control Optimo Cuadrtico de la Gr a-Puente a u


1.4

185

1.2

Seal de control u

0.8

0.6

0.4

0.2

0.2 0

10 Tiempo

12 (s)

14

16

18

20

Figura 4.25: Simulacin del sistema gra-puente: seal de control. o u n


posicin del carro (medicin directa) 2

1.5

posicin (m)

0.5

0.5 0

10 12 tiempo (s)

14

16

18

20

Figura 4.26: Control optimo de la gra-puente: posicin del carro. u o

186

Control Optimo

ngulo de la varilla (medicin directa) 0.6

0.4

0.2 ngulo (rad)

0.2

0.4

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

Figura 4.27: Control optimo de la gra-puente: posicin angular del pndulo. u o e


entrada 1.5

0.5 entrada (v)

0.5

1.5 0

10 12 tiempo (s)

14

16

18

20

Figura 4.28: Control optimo de la gra-puente: seal de control. u n

4.11 Problemas Resueltos

187

4.10.4.

Resultados experimentales

Los resultados experimentales que se muestran a continuacin se obtuo vieron con una seal de referencia escaln de 1.5 m para la posicin del n o o carro. Los resultados del control optimo cuadrtico del sistema gra-puente a u con observador de orden completo se muestran en las guras: 4.26, Como en el caso del pndulo invertido, en los resultados experimentales e se observa que la posicin del carro, que es la seal de realimentacin del o n o servosistema, sigue a la se al de referencia en menos de 6 s y con sobreamorn tiguamiento moderado, tal como estaba propuesto en las especicaciones de diseo del sistema de control. La posicin angular del pndulo logra estan o e bilizarse alrededor de cero; es decir, se llega a posicionar en forma vertical hacia abajo. Igualmente, el algoritmo de control lineal empleado requiere que las variables no salgan de la zona lineal impuesta por el modelo lineal. Sin embargo, se comprob que el sistema de control diseado responde en forma o n adecuada para una desviacin de la posicin de la varilla de 20 grados, o o que es bastante fuera de la zona lineal impuesta por el modelo.

4.11.

Problemas Resueltos

En la seccin problemas resueltos de los cap o tulos 4 al 8, la solucin a los o problemas se encuentra, segn el caso, en uno o ms archivos con extensin u a o m escritos en cdigo MATLAB. o Problema 4.1 El problema 3.1 presenta las ecuaciones que gobiernan la dinmica del sisa tema de suspensin de un bus (ver gura 3.12). Disear un sistema de control o n o ptimo cuadrtico 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 %, y luego de alrededor de 20 segundos, las oscilaciones originadas por un disturbio escaln de 10 cm (provocada por o imperfecciones en la pista), prcticamente deben desaparecer. La seleccin a o del tiempo de muestreo es a conveniencia del dise o. n
% p3opt2.m SOLUCION DEL PROBLEMA 4.1 clear all % PARAMETROS DEL PROCESO m1 = 2500; k1 = 80000; b1 = 350; m2 = 320; k2 = 500000; b2 = 15020;

188

Control Optimo

% %

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

4.11 Problemas Resueltos


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

189

5 Posicin y (m)

x 10

10 0 x 10
4

20

40

60 80 100 Tiempo en segundos

120

140

160

1 Control u (N) 0.8 0.6 0.4 0.2

0 0

20

40

60 80 100 Tiempo en segundos

120

140

160

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

Problema 4.2 El problema 3.2 presenta las ecuaciones que gobiernan la dinmica longitudia nal de un avin comercial volando a velocidad de crucero (altura y velocidad o constantes). El control del angulo de inclinacin del avin (ver gura 3.14) o o es un problema longitudinal a resolver. El objetivo de control es disear un n o autopiloto que manipulando el angulo e del deector de elevacin, controle el ngulo de inclinacin del avin. a o o Se pide disear un sistema de control optimo cuadrtico estacionario que n a genere una fuerza de control, de modo que la salida del proceso (el angulo de inclinacin ) presente un sobreimpulso menor al 10 % y un tiempo de o

190

Control Optimo

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

4.11 Problemas Resueltos


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

191

0.15 Inclinacin (rad)

0.1

0.05

0 0

4 5 6 Tiempo en segundos

10

Angulo del deflector (rad)

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

Figura 4.30: Angulo de inclinacin controlada y angulo del deector (seal o n de control) correspondientes al problema 4.2.

192 Problema 4.3

Control Optimo

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

4.11 Problemas Resueltos


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

193

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

194

Control Optimo

0.6

Posicin (m)

0.4

0.2

0 0

4 5 6 Tiempo en segundos

10

40 Voltaje de control 20 0 20 40 0

4 5 6 Tiempo en segundos

10

Figura 4.31: Posicin de la bola y el voltaje de control para el problema 4.3. 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]; B=[0 1 0 0 0 0]; alfa = 1; % CONSTANTE TACOMETRICA C=[ 0 alfa 0 0 0 0 0 0 0 alfa 0 0 0 0 0 0 0 alfa]; D=[0;0;0]; [numc,denc]=ss2tf(A,B,C,D); % MODELO LINEAL DISCRETO T = 0.2; % perodo de muestreo [G,H,C,D]=c2dm(A,B,C,D,T,zoh); % ADICIONANDO ACCION INTEGRAL G1 = [G zeros(6,1);-C(1,:)*G 1]; H1 = [H;-C(1,:)*H]; % CALCULO DE LA GANANCIA DEL CONTROLADOR Q = [1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0

4.11 Problemas Resueltos


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

195

% %

Problema 4.5 La gura 3.22 muestra el proceso ascensor tratado en el problema 3.6. El problema a resolver es posicionar suavemente el ascensor en un piso determinado, lo que signica sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizacin menor que 10 s. Para no saturar al actuador (el o amplicador de potencia), la seal de control debe estar dentro del rango de n 200 volt. Disear un sistema de control optimo cuadrtico estacionario de n a posicin que cumpla las especicaciones pedidas. La seleccin del tiempo de o o muestreo es a conveniencia del diseo. n

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

Control Optimo

90

100

600 Fuerza de control (N)

400

200

0 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

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

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

4.11 Problemas Resueltos


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

197

% %

% %

Problema 4.6 La gura 2.2 muestra dos tanques idnticos colocados en cascada. La seccin e o horizontal A=9 m2 de cada tanque es constante. El objetivo de control

198
4 2 0 2 4 0

Control Optimo

Posicin (m)

10

15 20 25 Tiempo en segundos

30

35

40

100 Voltaje de control

100

200 0

10

15 20 25 Tiempo en segundos

30

35

40

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

4.11 Problemas Resueltos


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

199

Problema 4.7 El proceso electromecnico mostrado en la gura 3.26 se describe en el proa blema 3.8. Disear un sistema de control optimo cuadrtico estacionario n a

200
4 3 Nivel (m) 2 1 0 0

Control Optimo

10

15 20 25 Tiempo en segundos

30

35

40

1.5 Flujo de control (m^3/s)

0.5

0 0

10

15 20 25 Tiempo en segundos

30

35

40

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

4.11 Problemas Resueltos


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

201

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

Control Optimo

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

10

15 20 Tiempo en segundos

25

30

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

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

4.12.

Problemas Propuestos

Problema 4.8 Demostrar que el valor m nimo de la funcin de costo descrita en la ecuacin o o 4.11): 1 1 J = xT (N )Sx(N ) + 2 2
N 1

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

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

203

Las ecuaciones del modelo linealizado para controlar la posicin del caon o n montado en la torreta de un tanque (ver gura 3.28) empleando un actuador hidrulico se detallan en el problema 3.9. a (a) Disear un sistema de control optimo estacionario para controlar el n a ngulo de elevacin con las especicaciones siguientes: tiempo de o estabilizacin menor de 2 s, sobreimpulso y error en estado estacionario o nulos. Los disturbios tipo escaln pueden actuar simultneamente o o a no y pueden ser positivos o negativos. Para cada caso, el sistema de control optimo debe ser capaz de minimizar sus efectos. La seleccin o del tiempo de muestreo es a conveniencia del dise o. n (b) Lo mismo que (a), pero en este caso para controlar el ngulo azimutal. a Problema 4.10 El proceso columna de destilacin se describe en el problema 3.10 y se o muestra en la gura 3.29. Disear un sistema de control optimo multivan riable estacionario para controlar las temperaturas residuales T1 = c13 z1 y T2 = c24 z2 con las especicaciones siguientes: error en estado estacionario nulo, sobreimpulso menor al 5 % y tiempo de estabilizacin menor o que 0.1 horas. Considerar disturbios unitarios actuando sobre el proceso multivariable. La seleccin del tiempo de muestreo es a conveniencia del o diseo. n Problema 4.11 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la seccin 3.3, en donde la carga no lineal posee ahora dos grados de o libertad con Lo = 2L1 /3 y Mo =0.02 kg. La unin de la carga con el eje o del servomotor no es exible. Las ecuaciones que describen la dinmica del a sistema son materia del problema 3.12. Disear un sistema de control optimo n estacionario para controlar simultneamente las posiciones y con m a nimo tiempo de estabilizacin y m o nimo sobreimpulso.

204 Problema 4.12

Control Optimo

La gura 3.32 muestra el proceso pndulo doble no lineal, el cual es una exe tensin del pndulo simple descrito en la seccin 3.1. El acoplamiento entre o e o los dos pndulos de igual longitud no es exible. Las ecuaciones que describen e la dinmica del sistema son materia del problema propuesto 3.13. Disear un a n sistema de control ptimo no estacionario para controlar simultneamente o a las posiciones y con m nimo tiempo de estabilizacin y m o nimo sobreimpulso, de modo tal que el pndulo doble permanezca en posicin vertical. e o Problema 4.13 La gura 3.33 muestra el proceso doble gra-puente no lineal, el cual es una u extensin del proceso gra-puente escrito en la seccin 3.2. El acoplamiento o u o entre las dos secciones iguales de la varilla no es exible. Las ecuaciones que describen la dinmica del sistema son materia del problema propuesto 3.14. a Considerar que la carga esfrica es de 0.02 kg. Disear un sistema de control e n o ptimo estacionario para controlar simultneamente las posiciones y con a m nimo tiempo de estabilizacin y m o nimo sobreimpulso, de modo tal que la gra-puente doble permanezca en posicin vertical cuando el carro realiza u o un recorrido predeterminado.. Problema 4.14 En la seccin anterior se disearon sistemas de control optimo estacionario o n para varios procesos. Ahora abordaremos el diseo de sistemas de control n o ptimo no estacionarios. Disear un sistema de control optimo no estacionario; es decir, determin nar la ley de control u(k) que minimice la siguiente funcin de costo: o 1 1 J = [xT (N )Sx + 2 2
N 1

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


k=0

para una condicin inicial x(0) = c arbitraria y para un valor de N para o el cual la o las salidas controladas cumplan las especicaciones de dise o. n Seleccionar apropiadamente el tiempo de muestreo y las matrices de ponderacin. Gracar la o las salidas controladas y las correspondientes seales o n de control. Calcular tambin el valor m e nimo de la funcin de costo. Realizar o los clculos requeridos anteriormente para cada uno de los procesos tratados a en los problemas 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 y 4.7.

Cap tulo 5

Control Adaptivo
En este cap tulo se desarrolla un procedimiento para disear un sistema de n control adaptivo con autosintonizacin, con la capacidad de controlar procesos o no lineales univariables (de una entrada y una salida) operando en la presencia de cargas no lineales. Tales procesos pueden ser representados por ecuaciones diferenciales no lineales, donde precisamente los trminos no lineales complican e los aspectos anal ticos de modelado del proceso y de diseo del controlador. n Sin embargo, basado en el correspondiente modelo lineal del proceso, podemos estructurar un sistema de control adaptivo con autosintonizacin combinano do algoritmos lineales de control con procedimiento para estimar en linea los parmetros y los estados del proceso. a En la antepenltima seccin de este cap u o tulo se presenta una aplicacin o para demostrar la validez del procedimiento de diseo: control de posicin de n o un servomotor D.C. expuesto a cargas no lineales. La penltima seccin, prou o blemas resueltos, est dedicada al diseo de sistemas de control adaptivo con a n autosintonizacin para diferentes procesos. La ultima seccin propone probleo o mas de diseo. Todos los archivos correspondientes a los ejercicios, problemas, n diseos, simulaciones y software desarrollados se pueden descargar del sitio: n http:/ee.uni.edu.pe/728681F.

5.1.

Introduccin o

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

206

Control Adaptivo

La investigacin sobre controladores adaptivos se ha centrado en dos gruo pos principales: controladores adaptivos con un modelo referencial y controladores con autosintonizacin. En este cap o tulo se emplea la conguracin o de un sistema de control adaptivo con autosintonizacin mostrado en la o gura 5.1. Tal sistema combina en su diseo un mtodo de estimacin de n e o parmetros (el de los m a nimos cuadrados recursivo mejorado), una tcnica e de estimacin de estados (el ltro de Kalman), una representacin lineal o o del modelo del proceso, y una ley de control (el controlador proporcionalintegral optimo cuadrtico con realimentacin de estados). El objetivo del a o control es determinar una fuerza de control capaz de minimizar la diferencia entre la salida del proceso y la seal de referencia. n
^ x ESTIMADOR DE ESTADOS ESTIMACION DE U + Y + DISTURBIOS CONTROLADOR CON AUTOSINTONIZACION + u U PROCESO NO LINEAL Y ^ ESTIMADOR DE PARAMETROS MODELO LINEAL

Figura 5.1: Conguracin del sistema de control con autosintonizacin. o o El sistema de control con autosintonizacin mostrado en la gura 5.1 o opera como sigue: luego de cada tiempo de muestreo, el vector estimado de parmetros se actualiza empleando los datos proporcionados por la a entrada U del proceso y por la salida Y del mismo. Luego, los elementos de se usan para recuperar el modelo lineal del proceso, lo cual permite estimar el vector de estado del modelo del proceso x (empleando un ltro de Kalman) y el valor de equilibrio U de la ley de control actual U . 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 relacin U = U + u. o Este cap tulo est organizado como sigue. La seccin 5.2 trata con el a o problema de modelar procesos no lineales usando modelos lineales. Procedimientos para estimar en l nea (on-line) los parmetros y estados del a

5.2 Modelando Procesos No Lineales

207

modelo del proceso se desarrollan en la seccin 5.3, mientras que el algoo ritmo del controlador con autosintonizacin se deriva en la seccin 5.4. La o o seccin 5.5 presenta el procedimiento para disear un sistema de control con o n autosintonizacin. Una aplicacin se proporciona en la seccin 5.6: control o o o de posicin de un servomotor sujeto a cargas no lineales. o

5.2.

Modelando Procesos No Lineales

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

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

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

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

208 donde z es el operador de desplazamiento, con:

Control Adaptivo

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

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

(5.8)

5.3.

Procedimientos de Estimacin o

Esta seccin presenta los procedimientos para estimar (o identicar) en o l nea los parmetros y los estados del modelo del proceso. a

5.3.1.

El Mtodo de los M e nimos Cuadrados Recursivo

Para estimar los parmetros 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). Para ello, la descripcin en el espacio de estado dada por la ecuacin (5.7) tiene que ser o o reordenada para tomar la forma siguiente: Y (k) = T (k)(k) (5.9)

donde el vector de informacin (o de medicin) contiene los valores preo o sentes y pasados de la entrada U y de la salida Y como sigue: T (k) = [Y (k 1) . . . Y (k n) U (k 1) . . . U (k n) 1] y el vector contiene los parmetros a ser estimados, a saber: a (k) = [1 (k) . . . an (k) 1 (k) . . . n (k) C]T a b b (5.11) (5.10)

Notar que en la ecuacin (5.9), el orden del vector de informacin y el orden o o del vector de parmetros es 2n+1; es decir, dichos vectores han incrementado a

5.3 Procedimientos de Estimacin o

209

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

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

8) Actualizar: P (k + 1) = P (k) y (k + 1) = (k) Ejemplo 5.1 Estimar los parmetros del proceso servomotor D.C. con carga no lineal a descrito en la seccin 3.3, empleando el mtodo de los m o e nimos cuadrados recursivo. Emplee el modelo lineal de segundo orden del proceso y como seal excitadora use un escaln de magnitud 0.4. Graque la respuesta del n o proceso. Solucin: El programa ejem5 1.m estima los parmetros para el proceso o a pedido. La gura 5.2 graca la respuesta Y del proceso a un escaln U = 0.4. o Las guras 5.3 y 5.4 muestran los parmetros estimados. Podemos observar a que cada parmetro estimado converge a un valor que es aproximadamente a el valor del correspondiente parmetro del modelo discreto. a

210

Control Adaptivo

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

5.3 Procedimientos de Estimacin o


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

211

5.3.2.

M nimos Cuadrados Recursivo Mejorado

El algoritmo bsico de los m a nimos cuadrados recursivo se encuentra bastante difundido. Sin embargo, dicho algoritmo puede presentar problemas potenciales de carcter numrico que podr afectar el diseo nal del cona e an n trolador con autosintonizacin. Por tal motivo, en este cap o tulo se emplea el mtodo de los m e nimos cuadrados recursivo mejorado propuesto en [5], el cual puede implementarse en la forma siguiente:

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

Control Adaptivo

100

200

300 400 500 600 700 MUESTRAS DISCRETAS k = 0.01 s

800

900

1000

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

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

0.5 PARAMETROS ESTIMADOS

0.5

1.5

2 0

100

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

900

1000

Figura 5.3: Parmetros estimados a1 (k) (curva slida) y a2 (k). a o

5.3 Procedimientos de Estimacin o


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

213

100

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

900

1000

Figura 5.4: Parmetros estimados 1 (k) (curva slida) y 2 (k). a b o b

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

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

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

Control Adaptivo

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

(k) = 1

1 r(k) 2

r2 (k)

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

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 estimacin y para encontrar la o nueva matriz de escalamiento Nnew como sigue: sabiendo que tt es el nmero condicionante de PS , si tt (cota inferior), parar la u estimacin; en otro caso, si tt (cota superior), determinar Nnew (k) o T (a partir de la relacin PS = Nnew Nnew ), calcular los elementos nnewjj o (valor absoluto de la suma de los elementos de las las de Nnew (k)), determinar la matriz diagonal Snew con elementos snewjj = 1/nnewjj , y calcular la matriz PnewS = Snew PS Snew . Finalmente, actualizar: P = PnewS . Ejemplo 5.2 Estimar los parmetros del proceso servomotor D.C. con carga no lineal a descrito en la seccin 3.3, empleando el mtodo de los m o e nimos cuadrados recursivo mejorado. Emplee el modelo no lineal de segundo orden del proceso y como se al excitadora use un escaln de magnitud 0.4. Graque la n o respuesta del proceso. a Solucin: El programa ejem5 2.m estima los parmetros para el proceso o pedido. La gura 5.5 graca la respuesta Y del proceso a un escaln U o = 0.4. Las guras 5.6 y 5.7 muestran los parmetros estimados. Podemos a observar que cada parmetro estimado converge a un valor constante. a

5.3 Procedimientos de Estimacin o


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

215

216

Control Adaptivo

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

5.3 Procedimientos de Estimacin o


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

217

0.01 s))

0.01 s))

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

100

200

300

400

500

600

700

800

900

1000

0.15

0.1

0.05

0 0

100

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

900

1000

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

218
0.6 a2 0.4

Control Adaptivo

ESTIMADOS PARAMETROS

0.2

0.2

0.4

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

Figura 5.6: parmetros estimados a1 (k) y a2 (k). a

14 12 10 ESTIMADOS 8 6 4 2 0 2

x 10

PARAMETROS

b1

b2 4 6 0

100

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

900

1000

Figura 5.7: parmetros estimados 1 (k) y 2 (k). a b b

5.4 La Ley de Control

219

5.3.3.

Estimacin de Estados o

De la ecuacin (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.13)

El procedimiento de estimacin descrito en la subseccin anterior nos proo o porciona el vector de parmetros estimado del proceso (k). Usando los a elementos de dicho vector de parmetros, podemos reconstruir las matrices a estimadas G(k), H(k) y C(k). El vector de estado estimado x(k) puede ser obtenido empleando un ltro de Kalman [6], con ecuacin de observacin: o o x x(k) = x(k) + Ko (k)[y(k) C(k)(k)] y ecuacin de actualizacin de estados: o o x x(k + 1) = G(k)(k) + H(k)u(k) En la ecuacin (5.14), 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.16) (5.15) (5.14)

o donde Po (k) es la matriz denida positiva, solucin unica de la siguiente ecuacin 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.17) donde Qo y Ro son matrices de covarianza denidas positivas correspondiente a los disturbios v y w, respectivamente.

5.4.

La Ley de Control

Es bastante conocido [6] que el controlador proporcional optimo cuadrtico a es una matriz de ganancia Kx que nos permite formular la siguiente ley de control u = Kx x(k). Dicha matriz es el resultado de la minimizacin de la o funcin de costo: o

I=
k=0

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

(5.18)

220 sujeto a la ecuacin de restriccin: o o x(k + 1) = Gx(k) + Hu(k)

Control Adaptivo

donde la matriz Q = QT es semidenida positiva y la matriz R es denida positiva. En la subseccin 4.5 se detalla cmo seleccionar estas matrices. 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 denida-positiva solucin de la siguiente ecuacin o o matricial discreta asociada de Riccati: 0 = S GT SG + GT SHKx (5.20)

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

z(k) =
i=0

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

[y(i)];

z(k + 1) =
i=0

[y(i)]

entonces: z(k + 1) = z(k) y(k) = z(k) Cx(k) (5.21) de modo que la representacin 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.23)

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

Ha =

Por consiguiente, el problema es determinar la matriz de ganancia K a como resultado de la minimizacin de la siguiente funcin de costo: o o

I =
k=0

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

(5.25)

5.5 Procedimiento de Dise o n

221

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

Por consiguiente, la ley de control del controlador optimo cuadrtico pro a porcional integral viene a ser: u(k) = K a xa (k) y los parmetros de ponderacin de rendimiento son R y Qa . a o (5.28)

5.5.

Procedimiento de Diseo n

El procedimiento para disear el sistema de control con autosintonizacin n o ilustrado en la gura 5.1 es como sigue: 1) Formular el problema (denir especicaciones de diseo). n 2) Usando toda la informacin disponible acerca del proceso no lineal, o determinar sus modelos lineal y no lineal (seccin 5.2). o 3) Implementar el mtodo de los m e nimos cuadrados recursivo mejorado (subseccin 5.3.2) para estimar los parmetros del modelo del proceso. o a 4) Implementar el procedimiento desarrollado en la subseccin 5.3.3 para o estimar los estados del modelo del proceso. 5) Implementar la ley de control residual u(k) (seccin 5.4) dada por la o ecuacin (5.28), computar U (k) usando la ecuacin (5.8), y actualizar o o la ley de control actual empleando la relacin U (k) = u(k) + U (k). o 6) Simular el sistema de control adaptivo variando las matrices de ponderacin R, Qa , Ro y Qo , hasta obtener un rendimiento satisfactorio o del sistema. 7) Implementar el hardware. 8) Implementar el software de control. 9) Realizar pruebas de funcionamiento (resultados experimentales).

222

Control Adaptivo

5.6.
5.6.1.

Control Adaptivo de un Servomotor No Lineal


Formulacin del Problema o

El servomotor D.C. con carga no lineal (discutido ampliamente en la seccin 3.3) es un proceso de una entrada y una salida que puede ser controo lado por el voltaje de armadura. La carga no lineal es una varilla metlica a acoplada al eje del servomotor, a manera de un brazo robtico de un grado o de libertad. En el extremo de la varilla se pueden acoplar cargas adicionales. El objetivo del control es disear e implementar un sistema de control adapn tivo con autosintonizacin, de modo tal que la varilla se posicione en una o referencia predeterminada con m nimo sobreimpulso en su respuesta, a pesar de la presencia de la carga no lineal y de las no linealidades inherentes del proceso como son las fricciones esttica y de Coulomb, y saturacin en a o el amplicador del servomotor.

5.6.2.

El Modelo del Proceso

La gura 3.9 presenta la estructura del proceso no lineal a controlar. La tabla 3.2 describe las variables y los valores de los parmetros. Vimos en el a ejemplo 5.1 que el proceso no lineal puede ser descrito mediante un modelo lineal en el espacio de estado de la forma: x = Ac x + Bc u; donde: Ac = 0 N M
B ( M

y = Cc x

1 2E + KnR ) M

Bc =

0
KnKact MR

Cc =

1 0

(5.29) La funcin de transferencia de pulso Gp (z), para un tiempo de muestreo de o 0.01 s (o lo que es lo mismo, una frecuencia de muestreo de Fs = 100 Hz), tiene la forma: Gp (z) = b1 z + b2 y(z) b1 z 1 + b2 z 2 = 2 = u(z) z + a1 z + a2 1 + a1 z 1 + a2 z 2 (5.30)

y su correspondiente ecuacin de diferencias es: o y(k) = a1 y(k 1) a2 y(k 2) + b1 u(k 1) + b2 u(k 2) (5.31)

5.6 Control Adaptivo de un Servomotor No Lineal

223

donde a1 = -1.9608, a2 = 0.9626, b1 = 0.044 y b2 = 0.045. Vimos que partiendo de la ecuacin (5.30), un mismo proceso puede adoptar mltiples o u representaciones de estado de la forma: x(k + 1) = Gx(k) + Hu(k); y(kT ) = Cx(kT )

donde G, H y C son las matrices de estado, de control y de salida respectivamente, con dimensiones apropiadas. La representacin cannica controlable o o del proceso (primera forma, ecuacin (3.100) con b0 = 0) tiene la forma: o G = C = 0 1 a2 a1 ; H= ; 0 1 D = [0] (5.32)

b2 a2 b0 b1 a1 b0

5.6.3.

Estimacin de Parmetros o a

Para estimar (o identicar) los parmetros del modelo del proceso, ema pleamos el mtodo de los m e nimos cuadrados recursivo mejorado desarrollado en la subseccin 5.3.2. Como primer paso calculamos el vector inicial de o parmetros (ecuacin (5.5): a o (0) = a1 a2 b1 b2 C(0)
T

donde el valor inicial de C(0) (ecuacin (5.8) con U = 0 e Y igual a la seal o n de referencia) es: C = (1 + a1 + a2 )Y En el tercer paso jamos la 0 P = 0 0 0 matriz de covarianza inicial P de orden 5: 0 0 0 0 0 0 0 0 0 0 ; = 1000 (5.33) 0 0 0 0 0 0

Como cuarto paso obtenemos nuevas mediciones de Y (k) y de U (K) (ver ecuacin (5.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 , otros pasos (ver ejemplo 5.2) con Cmin = 15 y Cmax = 100.

224

Control Adaptivo

5.6.4.

Estimacin de Estados o

El procedimiento para la estimacin de estados se describe en la subseco cin 5.3.3. El procedimiento de estimacin (subseccin anterior) nos proporo o o ciona el vector de parmetros estimado del proceso, 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 parmetros, podemos reconstruir las a matrices estimadas G(k), H(k) y C(k) correspondientes a la representacin o cannica controlable (ecuacin (5.32)): o o G(k) = 0 1 2 (k) 1 (k) a a 2 (k) 1 (k) b b ; ; H(k) = D(k) = [0] 0 1

C(k) =

Las ecuaciones del ltro de Kalman para estimar el vector de estado x son (ver ecuaciones (5.14), (5.15) y (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.34) (5.35) (5.36)

Para cada muestra discreta, el programa de simulacin disadap.m (seccin o o 5.6.7) calcula las matrices Po (k) y Ko (k) empleando las matrices de covarianza de los disturbios v y w, a saber, Qo = 0.01 y Ro = 0.04.

5.6.5.

La Ley de Control

Para determinar el controlador proporcional- integral optimo cuadrtico a con realimentacin de estados (seccin 5.4), la representacin en el espacio o o o de estado aumentado toma la forma siguiente (ecuacin (5.23)): o xa (k + 1) = Ga (k)xa (k) + H a (k)u(k); donde: xa (k) = x(k) z(k) ; Ga (k) = H 0 ; G 0 C I C a = [C 0] y(k) = C a (k)xa (k)

Ha =

5.6 Control Adaptivo de un Servomotor No Lineal La matriz de control K a se obtiene de: K a (k) = {R + [H a (k)]T P a (k)H a (k)}1 [H a (k)]T P a (k)(k)Ga (k)

225

El programa disadap.m calcula las matrices K a (k), Ga (k) y H a (k) para cada tiempo de muestreo. En el software de control implementado, la matriz P a (k) se obtiene luego de iterar la ecuacin de Riccati 20 veces en cada per o odo de o muestro. Los valores de R y Qa para la simulacin son: 0,05 0 0 0,01 0 ; R = 0,45; Qa = 0 (5.37) 0 0 0,01

5.6.6.

La Ley de Control Residual

Para el sistema de control a lazo cerrado podemos tomar la se al Y (k) n igual a la referencia para todo k. As podemos calcular la ley de control , residual empleando la relacin u(k) = U (k) U (k) (seccin 5.4), donde o o (k) se halla en l U nea a partir de la ecuacin (5.8), como sigue: o U (k) = [1 (k) + 2 (k)]1 [1 + a1 (k) + a2 (k)]Y (k) C(k) b b Finalmente, actualizamos la ley de control actual: U (k) = u(k) + U (k).

5.6.7.

Simulacin del Sistema de Control Adaptivo o

El siguiente programa disadap.m resume todos los pasos descritos anteriormente para simular el sistema de control adaptivo. Es importante recalcar que los algoritmos de control lineal estn siendo aplicados al modelo no a lineal del proceso, con el n de darle mayor realismo al proceso de simulacin. La simulacin incluye la estrategia para no saturar el amplicador, o o pero no incluye la compensacin de la no linealidad provocada por la friccin o o de Coulomb debido a que no es necesario (conforme a los resultados de la simulacin). El programa disadap.m es autoexplicativo. o
% disadap.m SIMULACION DEL SISTEMA DE CONTROL DE POSICION % ADAPTIVO CON AUTOSINTONIZACION clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; Ra = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.02; % 0.00, 0.01, 0.045;

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

Control Adaptivo

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

5.6 Control Adaptivo de un Servomotor No Lineal


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

227

228

Control Adaptivo

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

5.6 Control Adaptivo de un Servomotor No Lineal


2 Posicin Y (rad) 1 0 1 2 0

229

10

12

14

16

18

20

Seal de control U (voltios)

2 1 0 1 2 0

8 10 12 Tiempo en segundos

14

16

18

20

Figura 5.8: Resultado de la simulacin del sistema de control adaptivo para o controlar la posicin angular del servomotor D.C. sujeto a cargas no lineales. o

5.6.8.

Implementacin del Hardware o

El sistema de control de posicin consta de un servomotor D.C. con meo canismo de reduccin, una varilla acoplada al eje del servomotor (la carga no o lineal) perpendicular al eje de giro del servomotor, una etapa de potencia (el amplicador PWM) y un sensor de posicin conformado por un codicador o o ptico (acoplado al eje del motor), un decodicador de cuadratura y un contador de 16 bits. El hardware tambin incluye una PC Pentium y una tarjeta e de adquisicin de datos Lab-PC+. A la carga no lineal (la varilla metlica) o a se le pueden acoplar cargas adicionales. El esquema de implementacin se o ilustra en la gura 5.9 mientras que el proceso (el servomotor con carga no lineal) se ilustra en la gura 5.10. El Actuador El actuador est conformado por el servomotor D.C. (de campo magntico a e permanente y escobillas conmutadas), un generador PWM y una etapa de potencia. Debido a que el motor no responde inmediatamente a una tensin o de entrada; es decir, le toma un pequeo tiempo para llegar a la mxima 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 implementacin del sistema de control de posicin. 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 codicador optico incorporado.

velocidad, es necesario usar un sistema que nos permita variar la velocidad del servomotor (entre un m nimo y un mximo) as como tambin el sentido a e de su rotacin. Dicho sistema comprende un generador PWM LM3524 y o un circuito de potencia (ver gura 5.11). Tal sistema nos permite variar la velocidad de acuerdo al ancho de pulso de la seal PWM. El circuito PWM n LM3524 genera seales moduladas por ancho de pulso de 15.4 KHz, las n cuales son luego amplicadas por el circuito de potencia, generndose una a tensin de alimentacin 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 gura 5.12. El sistema de disparo permite la conmutacin de cada par conmutador o (A o B), de forma tal que no se produzcan cortocircuitos durante la conmutacin. 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 tensin +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 conmutacin. o

conmutador A y cierra el B, el sentido de la corriente sigue la l nea segmentada, induciendo as una tensin -Vcc en el servomotor. Esto signica que el o motor recibe en sus bornes una tensin 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 Posicin o

233

El sensor de posicin esta conformado por un codicador optico roo tatorio (interno al motor), un decodicador de cuadratura y un contador UP/DOWN. El codicador optico rotatorio consiste en: Una fuente de luz que puede ser un LED infrarrojo o lser. 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 patrn de areas oscuras y transparentes impreso en el disco, o produciendo una seal digital que puede ser fcilmente 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 seal sinusoidal proveniente n de la salida del fotodetector en seal de onda cuadrada. n El esquema bsico del codicador optico se muestra en la gura 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 codicador optico rotatorio.

codicador usado en esta implementacin, 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 direccin 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 deteccin de cuadratura, la vibracin puede causar el env o o o de pulsos errticos al contador, incluso si la mquina est detenida. El coda a a icador usado tiene una resolucin de 512 ppr (pulsos por revolucin). El o o decodicador de cuadratura es el CI LS7083 que activa la cuenta ascendente o descendente del contador UP/DOWN de 16 bits, dependiendo del sentido de giro del motor, captado por el desfasaje entre los trenes de pulsos de los canales A y B. El contador UP/DOWN est 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 anloga otro grupo igual de bits conforman el bus B (ver gura 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

74HC 193

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

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

5.6 Control Adaptivo de un Servomotor No Lineal 2. 3. 4.

235

Dos puertos digitales de entrada (PA y PB) de 8 bits. Tales puertos reciben los datos provenientes del contador UP/DOWN. El terminal OUTB0, que se utiliza como salida de una seal de reloj n para el funcionamiento del sistema de control. El terminal PC0 (bit 0 del puerto C), que se utiliza como entrada de la seal de reloj Fs proveniente de OUTB0. n

La seal de reloj OUTB0 se genera a partir de una base de tiempos de 2 n MHz que activa la salida del contador/temporizador 8253. Los puertos de entrada/salida provienen de la PPI (Interfaz Paralela Programable) 8255.

5.6.9.

Implementacin del Software de Control o

Consideraciones Generales El software de control debe implementar las ecuaciones del sistema en tiempo real, incluyendo la solucin de las ecuaciones de Riccati para calcuo lar las ganancias del controlador y del observador. Ya que la simulacin del o sistema no incluye estos tipos de clculo, es necesario explicar sucintamente a las ecuaciones involucradas en el sistema de control adaptivo a ser implementado en tiempo real. El modelo lineal continuo del proceso se obtiene de la ecuacin (5.29): o M + (B + nKact K nKact K ) + N = R R

+ 3,626 + + 17,4604 = 89,09 La ecuacin de diferencias del proceso es (ver ecuacin (5.31)): o o k + a1 k1 + a2 k2 = b1 vk1 + b2 vk2 donde (k) = y(k) y v(k) = u(k) (v es la seal de control que requiere n compensacin). La ecuacin cannica controlable a emplear en el algoritmo o o o de control se da en la ecuacin (5.32): o xk = GXk1 + Huk1 ; yk = CXk

con x = Xk y u(k) = uk . a La ley de control es: uk = K a Xk con (ver ecuacin (5.26)): o K a = (R + (H a )T P a H a )1 (H a )T P a Ga

236

Control Adaptivo

a donde la matriz P a (k) = Pk se obtiene de (ver ecuacin (5.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, empezando con Pk igual a la matriz nula, iteramos 20 veces la ecuacin anterior, lo que da como resultado una nueva o a . En el siguiente per a odo de muestreo, la matv ariz resultante Pk matriz Pk se usa como matriz inicial para resolver nuevamente la ecuacin de Riccati, o a resultando luego de 20 iteraciones en una matriz Pk+1 . 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). Esta forma de clculo ahorra a tiempo de computacin. Los parmetros de optimizacin empleados para o a o el controlador optimo son R = 0.05 y Qa = 0,1 I3 , donde I3 es la matriz identidad de orden 3. La matriz de ganancia Ko del ltro de Kalman se puede obtener aplicando dualidad al problema de control. Es decir, haciendo los reemplazos siguientes:

G a GT ,

Ha CT ,

Qa Qo ,

R Ro ,

P a Po

a en las frmulas de K a y Pk+1 del controlador optimo. De esta forma reo solvemos la ecuacin de Riccati para Po (como en el caso del controlador) o para luego poder calcular Ko . Los parmetros de optimizacin usados para a o el observador optimo (ltro de Kalman) son: Qo =0.01 y Ro =0.04, mientras que para el algoritmo de estimacin son: P = 1000I5 (matriz de covarianza o inicial, ecuacin (5.33)), Cmin = 15, y Cmax = 100. o Computacionalmente, el software de control requiere de muchos clculos. a Por ejemplo, para el proceso de estimacin de parmetros se deben realizar o a dos descomposiciones de Cholesky para matrices de orden 5 empleando el mtodo de Jacobi (ver referencia [16], pgina 365), se deben calcular todos e a los valores propios y ordenarlos en una matriz simtrica. Felizmente no es e necesario efectuar inversin de matrices porque el proceso controlado es o univariable y la operaciones con matrices generalmente fueron entre matrices simtricas. e Adems de la compensacin de la no linealidad producida por la friccin a o o de Coulomb (aadiendo 0.2 voltios a la seal de control, dependiendo si n n la velocidad angular es positiva o negativa), se considera tambin el efecto e de saturacin del servomotor cuando la seal de control sobrepasa los 2.3 o n 1.4 voltios, donde los 2.3 voltios corresponden al valor que hay que agregar (valor oset) para que la velocidad inicial sea cero. Este valor oset es propio del servomotor empleado.

5.6 Control Adaptivo de un Servomotor No Lineal Los Programas Fuente

237

Los programas necesarios para la implementacin en tiempo real del siso tema de control adaptivo diseado se estructuran en tres archivos de cdigo n o fuente, los cuales son: 1. Archivo R1LLIB.H, que es un archivo de declaraciones de funciones denidas en el archivo R1LLIB.CPP. Estas funciones permiten facilitar el manejo de la tarjeta de adquisicin de datos Lab-PC+. o Archivo R1LLIB.CPP, que tambin es un archivo de deniciones de e funciones declaradas en R1LLIB.H para facilitar el manejo de la tarjeta de adquisicion de datos Lab-PC+. Este archivo emplea la librer de a funciones NI-DAQ [25] y llama a la funcin CongurarHardware para, o precisamente, congurar el hardware empleado. Archivo CON122.CPP: Constituye el software de control.

2.

3.

Ensamblaje del Software de Control El software de control emplea en su ejecucin la siguiente secuencia: o 1. 2. 3. 4. 5. Inicializa_Sistema(); Mide_Variables(&y,&r,&vel,t); Estima_Parametros(Th,y,u); Encuentra_Control(r,&u); u=Aplica_Control(u,vel);

La compilacin de archivos para hacerlos ejecutables se realiza en Boro land C/CPP mediante un proyecto que involucre todos los archivos, en nuestro caso, los archivos R1LLIB.H, R1LLIB.CPP y CON122.CPP. Una precaucin a considerar es la de especicar que la compilacin se o o ejecute con el modelo de memoria Large. Otra precaucin es asegurarse o que al inicio y al nal de la ejecucin de los programas, el servomotor debe o estar parado, lo que se logra enviando la seal oset de 2.3 voltios. n Los Programas Fuente Comentados
/*R1LLIB.H *Archivo de declaracion de funciones definidas en R1LLIB.CPP *Estas funciones permiten facilitar el manejo de la tarjeta *de adquisicion de datos Lab-PC+: Digital Input (16 bits),

238

Control Adaptivo

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

5.6 Control Adaptivo de un Servomotor No Lineal


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

239

240

Control Adaptivo

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

5.6 Control Adaptivo de un Servomotor No Lineal

241

/*Matrices de Riccati del controlador y del observador, y auxiliares de calculo */ float Vaux1[3], Vaux2[3], Vaux3[3], Vaux4[3], Raux1; /*vectores auxil. para calcular matriz soluci\on de Riccati */ /*Aplicacion del Control */ float VcFC, VcFE, Wth, Ofst; /*valores de tension equivalente a la friccion de Coulomb y a la friccion est\atica; valor del umbral de velocidad angular y valor del offset, en la aplicacion de la se~nal de control */ ***** FUNCIONES **** ********************************************************/ float Aplica_Control(float u, float ykp) { float v; if(fabs(ykp)<=Wth) { if(u<0.) v = -VcFE; if(u>0.) v = VcFE; } else { if(u<0.) v = -VcFC; if(u>0.) v = VcFC; } if(u+v<-1.5) u= -1.5; else if(u+v>1.4) u= 1.4; EnviarVoltage(u+v+Ofst); return u; } /*Inicializando parametros y variables globales (P, Pb, G, Gb, H, Hb, a1, a2, b1, b2, ...). Usa InicializaHardware */ void Inicializa_Sistema() { /*Con Varilla a1=-1.9614; a2= .9631; b1= .0044; b2= .0043; Sin Varilla */ a1=-1.6246; a2= .6246; b1= .0479; b2= .0410; /*ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */ VcFE= .2; VcFC= .15; Wth = .1; Ofst= 2.3; Fs= 100.0; U0 = 0.;

242

Control Adaptivo

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

5.6 Control Adaptivo de un Servomotor No Lineal


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

243

244

Control Adaptivo

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

5.6 Control Adaptivo de un Servomotor No Lineal

245

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

246

Control Adaptivo

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

5.6 Control Adaptivo de un Servomotor No Lineal


for(i=0, val=0.; i<j; i++) val += Nk[j][i]*Nk[j][i]; Nk[j][j]= sqrt(Nk[j][j]-val); for(i=j+1; i<5; i++) { for(k=0, val=0.; k<j; k++) val += Nk[i][k]*Nk[j][k]; Nk[i][j]= (Nk[i][j]-val)/Nk[j][j]; } } /*Y ahora encontramos la Sk*/ Sk[0]= 1./ Nk[0][0]; Sk[1]= 1./(Nk[1][0]+Nk[1][1]); Sk[2]= 1./(Nk[2][0]+Nk[2][1]+Nk[2][2]); Sk[3]= 1./(Nk[3][0]+Nk[3][1]+Nk[3][2]+Nk[3][3]); Sk[4]= 1./(Nk[4][0]+Nk[4][1]+Nk[4][2]+Nk[4][3]+Nk[4][4]); /*Y ahora la Psn y la Pk y la Thk*/ for(i=0; i<5; i++) { Thk[i]= Th[i]; for(j=0; j<5; j++) Pk[i][j]= Psn[i][j]= Sk[i]*Psk[i][j]*Sk[j]; } } /* */ ym2= ym1; ym1= Yk; um2= um1; um1= Uk; a1= -Theta[0]; a2= -Theta[1]; b1= Theta[2]; b2= Theta[3]; Cc= Theta[4];

247

G[0][0] = 0.; G[0][1]= 1.; H[0] = 0.; C[0] = b2; G[1][0] =-a2; G[1][1]=-a1; H[1] = 1.; C[1] = b1; Ge[0][0]= 0.;Ge[0][1]= 1.; Ge[0][2]=0.; He[0]= 0.; Ce[0]= b2; Ge[1][0]=-a2;Ge[1][1]=-a1; Ge[1][2]=0.; He[1]= 1.; Ce[1]= b1; Ge[2][0]=-b2;Ge[2][1]=-b1; Ge[2][2]=1.; He[2]= 0.; Ce[2]= 0.; } /*Calculando el numero condicion de la matriz de covarianza de la estimacion. Esto es: abs(max(eig(Psk))/min(eig(Psk))) */ float calculaC() { #define ROTATE(A, i, j, k, l) {g=A[i][j];h=A[k][l];A[i][j]=g-s*(h+g*tau); A[k][l]= h+s*(g-h*tau);} double D[5]; int n=5, nrot, j, iq, ip, i, k; double tresh, theta, tau, t, sm, s, h, g, c, b[5], z[5], val; int end=0;

248

Control Adaptivo

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

5.6 Control Adaptivo de un Servomotor No Lineal


if(theta<0.) t= -t; } c= 1./sqrt(1+t*t); tau= s/(1.+c); z[ip] -= h; D[ip] -= h; Psaux[ip][iq] = 0.;

249

s= t*c; h= t*Psaux[ip][iq]; z[iq] += h; D[iq] += h;

for(j= 0 ; j<ip; j++) ROTATE(Psaux, j, ip, j, iq); for(j= ip+1; j<iq; j++) ROTATE(Psaux, ip, j, j, iq); for(j= iq+1; j<n ; j++) ROTATE(Psaux, ip, j, iq, j); nrot++; } } } for(ip=0; ip<n; ip++) { b[ip] += z[ip]; D[ip] = b[ip]; z[ip] = 0.; } } if(!end) { puts("Demasiadas iteraciones en Jacobi\n"); return 1.; } /*Vamos a ordenar los VEPS y los VAPS */ for(i= 0; i<n; i++) { val= D[k=i]; for(j=i+1; j<n; j++) if(D[j]>= val) val= D[k=j]; if( k!=i ) { D[k]= D[i]; D[i]= val; } } return fabs(D[0]/D[4]); } /*La siguiente funci\on emplea el error del sistema y la nueva estimacion de los parametros */ void Encuentra_Control(float r, float *U)

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

Control Adaptivo

5.6 Control Adaptivo de un Servomotor No Lineal


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

251

252
t= u= vel= y= 0.; for(k=0; k<n;) { act=NivelClock(); if ((ant==0)&&(act==1)) { Mide_Variables(&y, &r, &vel, t); Estima_Parametros(Th, y, u); Encuentra_Control(r, &u); u= Aplica_Control(u, vel); if(!(k%5)) { yv[k/5]= y; rv[k/5]= r; uv[k/5]= u; } k++; t += Td; gotoxy(5,5); printf("%f",t); if(kbhit()) if(getch()==27) break; } ant=act; } EnviarVoltage(Ofst); out=fopen("c2.out","wt"); for (int i=0; i<n/5; i++) fprintf(out,"%10f %10f %10f %10f %10f\n", i*5*Td, rv[i], yv[i], uv[i], rv[i]-yv[i]); fclose(out); }

Control Adaptivo

5.6.10.

Resultados Experimentales

Los resultados experimentales mostrados en las guras 5.15 y 5.16 demuestran la validez del procedimiento de diseo sugerido. Dichos resultados n se obtuvieron para una seal de referencia escaln cambiante de /3 a /2. n o Dos casos extremos fueron tomados en consideracin: el control con auseno cia de carga (gura 5.15) y el control con carga no lineal (gura 5.16). En ambos casos, el controlador adaptivo es capaz de controlar la posicin del o eje del servomotor a pesar de la presencia simultnea de la carga no lineal a y de las no linealidades inherentes (las fricciones esttica y de Coulomb, y a la saturacin del servomotor). o Los experimentos se realizaron con los siguientes parmetros de optia mizacin. Para el estimador de estado se seleccion Qo = 0,01 y Ro = 0,04 o o (ecuaciones (5.16) y (5.17)) y para la ley de control optima se eligi R = 0,05 o

5.7 Problemas Resueltos

253

y Qa = 0,1I3 (ecuacin (5.27)), donde I3 es la matriz identidad de dimeno sin tres. El tiempo de muestreo, sucientemente grande como para poder o efectuar todo el cmputo requerido por muestra, fue de Ts =0.01 s. o
2 Posicin (radianes) 1.5 1 0.5 0 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

1.5 Seal de control (voltios) 1 0.5 0 0.5 1 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100

Figura 5.15: Control adaptivo de la posicin del servomotor. Primer caso: o servomotor no acciona carga alguna.

5.7.

Problemas Resueltos

En la seccin problemas resueltos de los cap o tulos 4 al 8, la solucin a los o problemas se encuentra, segn el caso, en uno o ms archivos con extensin u a o m escritos en cdigo MATLAB. En cada problema, la seleccin del tiempo o o de muestreo es a conveniencia del diseo. n Problema 5.1 El problema 3.1 presenta las ecuaciones que gobiernan la dinmica del sisa tema de suspensin de un bus (ver gura 3.12). Disear un sistema de control o n adaptivo con autosintonizacin 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 %, y luego de 20 segundos, las oscilaciones

254
2.5 Posicin (radianes) 2 1.5 1 0.5 0 0 10 20 30 40 50 60 Tiempo en segundos 70 80

Control Adaptivo

90

100

1.5 Seal de control (voltios) 1 0.5 0 0.5 1 0 10 20 30 40 50 60 Tiempo en segundos 70 80 90 100

Figura 5.16: Control adaptivo de la posicin del servomotor. Segundo caso: o servomotor acciona la carga no lineal.

originadas por un disturbio escaln de 10 cm (provocadas por imperfecciones o en la pista), prcticamente deben desaparecer. a Solucin: Ver programa p3adap1.m. Este es un problema de rechazo a los o disturbios. Es interesante anotar que el carcter adaptivo del sistema de a control diseado, permite que las especicaciones de rechazo del disturbio n se mantengan a pesar de que var la masa del bus. Supongamos que la masa e del bus sin pasajeros es m1 = 2500 kg y lleno cambia a 3500 kg. Ejecute el programa p3adap1.m con este nuevo dato y ver que el objetivo de control a prcticamente se sigue cumpliendo. a
% p3adap1.m SOLUCION DEL PROBLEMA 5.1 clear all % PARAMETROS DEL PROCESO m1 = 2500; k1 = 80000; b1 = 350; m2 = 320; k2 = 500000; b2 = 15020; a23 = (b1/m1)*(b1/m1+b1/m2+b2/m2)-k1/m1; a33 = -(b1/m1+b1/m2+b2/m2); a43 = -(k1/m1+k1/m2+k2/m2); % MODELO LINEAL A = [0 1 0 0 -b1*b2/(m1*m2) 0 a23 -b1/m1

5.7 Problemas Resueltos


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

255

% % %

% % %

256

Control Adaptivo

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

5.7 Problemas Resueltos


F = dlqe(GE,FE,CE,Sigma,Xi); xmas = xmenos + F*(y(t1+4) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; % ec (22) y ec. (23) Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t1+4) = - Ka*[xmas;z];% -Kw*w(t1+4); % ACTUALIZACION DE ESTADOS xmenos = GE*xmas + HE*u(t1+4); AE = 1 + ae1 + ae2 + ae3 + ae4; BE = be1 + be2 + be3 + be4; Uin = inv(BE)*(AE*W(t1+4) - Ce); % CALCULO DE LA SE~NAL ACTUAL DE CONTROL U U(t1+4) = u(t1+4) + Uin; end % ********** FIN DEL LAZO DE CONTROL % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,W(6:MM+5),ejex,Y(6:MM+5)); grid ylabel(Salida y = x1-x2 (m)) xlabel(Tiempo en segundos) subplot(2,1,2), grid plot(ejex,U(6:MM+5)); grid xlabel(Tiempo en segundos) ylabel(Fuerza de control (N)) print -deps -f p3adap1

257

Problema 5.2 El problema 3.2 describe las ecuaciones que gobiernan la dinmica longitudia nal de un avin comercial volando a velocidad de crucero (altura y velocidad o constantes). El control del angulo de inclinacin del avin (ver gura 3.14) o o es un problema longitudinal a resolver. El objetivo de control entonces es disear un autopiloto que manipulando el angulo e del deector de elen vacin, controle el angulo de inclinacin del avin. o o o Se pide disear un sistema de control adaptivo que genere una fuerza n de control, de modo que la salida del proceso (el angulo de inclinacin ) o presente un sobreimpulso menor al 10 % y un tiempo de estabilizacin menor o que 10 s, con un error en estado estable nulo. Por ejemplo, si la entrada de

258
0.01 Salida y = x1x2 (m) 0.005 0 0.005 0.01 0

Control Adaptivo

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

20 Fuerza de control (N)

40

60

80 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

Figura 5.17: Salida y = x1 x2 y la fuerza de control diseada, corresponn dientes al problema 5.1. referencia es 0.2 rad, entonces el angulo de inclinacin no debe exceder el o valor de 0.22 rad, y luego de 10 segundos, permanecer en 0.2 rad.
% p4adap1.m SOLUCION DEL PROBLEMA 5.2 clear all % PARAMETROS DEL PROCESO nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS NN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS % cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Sigma = 10; Xi = 1; % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke; r+nn=4 R = 400; Qa = [0 0 0 0;0 0 0 0;0 0 0.001 0;0 0 0 0.001]; % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-0.313 56.7 0;-0.0139 -0.426 0;0 56.7 0]; Bc = [0.232;0.0203;0];

5.7 Problemas Resueltos


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

259

260

Control Adaptivo

% % %

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

% GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,v1(3:MM+2),ejex,Y(3:MM+2)), grid ylabel(Inclinacion (rad)) subplot(2,1,2) plot(ejex,U(3:MM+2)), grid

5.7 Problemas Resueltos


xlabel(Tiempo en seg) ylabel(Angulo del deflector (rad)) print -deps -f p4adap1
0.4 Inclinacin (rad) 0.2 0 0.2 0.4 0

261

20

40

60

80

100

120

140

160

180

200

Angulo del deflector (rad)

1 0.5 0 0.5 1 0

20

40

60

80 100 120 Tiempo en seg

140

160

180

200

Figura 5.18: Angulo de inclinacin y seal de control (ngulo del deector) o n a correspondientes al problema 5.2. Problema 5.3 La gura 3.20 muestra un monorriel de dos carros descrito en el problema 3.5. El problema a resolver es el control de velocidad del carro de mquinas a mediante un sistema de control adaptivo con autosintonizacin. Para garano tizar a los pasajeros un viaje confortable, los cambios de velocidad deben realizarse con un tiempo de estabilizacin menor que 15 s y con m o nimo sobreimpulso. El error en estado estable debe ser nulo. Simule una seal de ren ferencia que cambie la velocidad de 30 a 20 m/s y demuestre que se cumplen las especicaciones de dise o. Luego enfrente el problema de seguimiento. n Mostrar que la velocidad de la mquina puede seguir una trayectoria prea determinada de velocidades. El programa p7adap1b.m trata el caso de referencia arbitraria. Revise tal programa si desea ver detalles al respecto.

262

Control Adaptivo

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

5.7 Problemas Resueltos


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

263

% %

264
be1=th(7); be2=th(8); be3=th(9); be4=th(10); be5=th(11); be6=th(12); Ce=th(13); ae11=0; ae12=1; ae13=0; ae14=0; ae15=0; ae16=0; ae21=0; ae22=0; ae23=1; ae24=0; ae25=0; ae26=0; ae31=0; ae32=0; ae33=0; ae34=1; ae35=0; ae36=0; ae41=0; ae42=0; ae43=0; ae44=0; ae45=1; ae46=0; ae51=0; ae52=0; ae53=0; ae54=0; ae55=0; ae56=1; ae61=-ae6; ae62=-ae5; ae63=-ae4; ae64=-ae3; ae65=-ae2; ae66=-ae1; GE = [ae11 ae21 ae31 ae41 ae51 ae61 ae12 ae22 ae32 ae42 ae52 ae62 ae13 ae23 ae33 ae43 ae53 ae63 ae14 ae24 ae34 ae44 ae54 ae64 ae15 ae25 ae35 ae45 ae55 ae65 ae16 ae26 ae36 ae46 ae56 ae66];

Control Adaptivo

% %

be11=0; be21=0; be31=0; be41=0; be51=0; be61=1; HE=[be11;be21;be31;be41;be51;be61]; ce11 =be6; ce12=be5; ce13=be4; ce14=be3; ce15=be2; ce16=be1; CE = [ce11 ce12 ce13 ce14 ce15 ce16]; DE = [0]; CALCULO DE LA GANANCIA F DEL ESTIMADOR DE KALMAN F = dlqe(GE,HE,CE,Sigma,Xi); xmas = xmenos + F*(y(t+6) - CE*xmenos); % OBSERVACION z = z -CE*xmas; % ACCION INTEGRAL CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+6) = - Ka*[xmas;z]; % ec. (27) ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+6); % ec. (15) AE = 1 + ae1 + ae2 + ae3 + ae4 + ae5 + ae6; BE = be1 + be2 + be3 + be4 + be5 + be6; Uin = inv(BE)*(AE*Yo(t+6) - Ce); CALCULO DE LA SE~NAL DE CONTROL U(k) U(t+6) = u(t+6) + Uin; end % FIN DEL LAZO DE CONTROL ********************** GRAFICOS ejex = linspace(0,MM*T,MM);

5.7 Problemas Resueltos


subplot(2,1,1) plot(ejex,Yo(7:MM+6),ejex,Y(7:MM+6)), grid ylabel(Y1: Velocidad (m/s)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,U(7:MM+6)), grid xlabel(Tiempo en segundos) ylabel(Voltaje de control u) print -deps -f p7adap1a
40 Y1: Velocidad (m/s) 30 20 10 0 0

265

50

100

150 200 Tiempo en segundos

250

300

30 Voltaje de control u 20 10 0 10 0

50

100

150 200 Tiempo en segundos

250

300

Figura 5.19: Velocidad del carro de mquinas y la fuerza de control para el a problema 5.3. Problema 5.4 La gura 3.22 muestra el proceso ascensor tratado en el problema 3.6. El problema a resolver es posicionar suavemente el ascensor en un piso determinado, lo que signica sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizacin menor que 10 s. Para no saturar al actuador (el o amplicador de potencia), la seal de control debe estar dentro del rango n de 200 voltios. Disear un sistema de control de posicin adaptivo con n o autosintonizacin que cumpla las especicaciones pedidas. o
% p8adap1.m SOLUCION DEL PROBLEMA 5.4

266
40 Y1: Velocidad (m/s) 30 20 10 0 0

Control Adaptivo

50

100

150 200 Tiempo en segundos

250

300

30 Voltaje de control u 20 10 0 10 0

50

100

150 200 Tiempo en segundos

250

300

Figura 5.20: Velocidad del carro de mquinas y la fuerza de control para el a problema 5.3. La referencia es arbitraria.

clear all % PARAMETROS GENERALES nn = 4; r=1; % nn: orden del proceso; r: NUMERO DE SALIDAS NN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS % cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS % PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 0.001; Sigma = 400; % PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke R = 1; Qa = 1*eye(r+nn,r+nn); % MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5]; Bc = [0.001;0;0;0]; Cc = [0 1 0 0]; Dc = [0]; T = 0.8; % PERIODO DE MUESTREO % MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); a4=den(5); b1 = num(2); b2 = num(3); b3=num(4); b4=num(5); % CONDICIONES INICIALES Ref = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref

5.7 Problemas Resueltos


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

267

% %

268

Control Adaptivo

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

5.7 Problemas Resueltos


xlabel(Tiempo en segundos) subplot(2,1,2), grid plot(ejex,U(3:MM+2)), grid xlabel(Tiempo en segundos) ylabel(Voltaje de control) print -deps -f p8adap1
10 8 Posicin (m) 6 4 2 0 0 100 200 300 400 500 Tiempo en segundos 600 700 800

269

200 Voltaje de control 100 0 100 200 0

100

200

300 400 500 Tiempo en segundos

600

700

800

Figura 5.21: Posicin del ascensor y la fuerza de control (problema 5.4). o Problema 5.5 La gura 2.2 muestra dos tanques idnticos colocados en cascada. La seccin e o horizontal A=9 m2 de cada tanque es constante. El objetivo de control o es controlar la altura H2 empleando el ujo Qo . La deduccin del modelo linealizado del proceso se describe en el ejemplo 2.1. Disear un controlador n adaptivo con autosintonizacin que cumpla los siguientes requerimientos: o tiempo de estabilizacin menor que 15 s, sobreimpulso menor al 5 % y error o en estado estable nulo. Estas condiciones de diseo deben mantenerse cuando n se cambie la referencia (por ejemplo de 3 a 1 m). Adems, el ujo de entrada a (la seal de control) no debe sobrepasar los 3 m3 /s. n
% p9adap1.m SOLUCION DEL PROBLEMA 5.5 clear all % PARAMETROS GENERALES

270

Control Adaptivo

% % % %

% %

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

5.7 Problemas Resueltos


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

271

272

Control Adaptivo

u(t+2) = - Ka*[xmas;z]; % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+2); % CALCULO DE Uo (VALOR D.C. DE U) % AE(z^(-1)) = 1 + ae1*z^(-1) + ae2*z^(-1); % BE(z^(-1)) = be1*z^(-1) + be2*z^(-1); % AE(z^(-1))*Y(k) = BE(z^(-1))*U(k) + Ce; Ce = th(N), N=5 % En estado estacionario: z=1, Y(k) = Yo(k) (Referencia) % entonces: U(z=1) = inv(B(z=1)*[A(z=1)*Ref - ce] AE = 1 + ae1 + ae2; BE = be1 + be2; Uin = inv(BE)*(AE*g(t+2) - Ce); % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+2) = u(t+2) + Uin; % LIMITANDO LA SE~NAL U(t) if(U(t+2) > 3) U(t+2) = 3; elseif(U(t+2) <-3) U(t+2) = -3; end end % FIN DEL LAZO DE CONTROL ********************** % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,g(3:MM+2),ejex,Y(3:MM+2)), grid ylabel(Nivel en metros) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,U(3:MM+2)), grid xlabel(Tiempo en segundos) ylabel(Flujo de control (m/s)) print -deps -f p9adap1

Problema 5.6 El proceso electromecnico mostrado en la gura 3.26 se describe en el proa blema 3.8. Disear un sistema de control adaptivo con autosintonizacin n o para controlar la velocidad angular del eje del motor mediante el voltaje de entrada que puede variar entre 100 voltios. La seal de referencia es n arbitraria (problema de seguimiento).
% p11adap1.m SOLUCION DEL PROBLEMA 5.6 clear all % PARAMETROS GENERALES

5.7 Problemas Resueltos


3 Nivel en metros 2.5 2 1.5 1 0

273

20

40

60 80 100 Tiempo en segundos

120

140

160

4 Flujo de control (m/s) 2 0 2 4 0

20

40

60 80 100 Tiempo en segundos

120

140

160

Figura 5.22: Nivel controlado H2 y el ujo de control para el problema 5.5.

nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDAS NN = 7; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS PARAMETROS DEL PROCESO: J = 0.01; % MOMENTO DE INERCIA DEL MOTORM (kgm2/s2) Ke =0.01; Kt = 0.01; % CONSTANTE ELECTROMOTRIZ (Nm/A) R = 12; % RESISTENCIA (Ohmios) C = 0.5; % CONDENSADOR (uF) L = 0.5; % INDUCTANCIA DE LA ARMADURA (H) Kw = 1.8; % CONSTANTE TORSIONAL (Nm/rad) MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUO Ac = [-1/(R*C) -1/C 0;... Kw/(L*Kw + Kt*Ke) 0 -Ke*Kw/(L*Kw + Kt*Ke);0 Kt/J 0]; Bc = [1/(R*C);0;0]; Cc = [0 0 1]; Dc = [0]; T = 0.2; % PERIODO DE MUESTREO MODELO LINEAL DISCRETO DEL PROCESO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); a3=den(4); b1 = num(2); b2 = num(3); b3=num(4); PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMAN Xi = 0.001; Sigma = 10;

274

Control Adaptivo

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

5.7 Problemas Resueltos


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

275

% %

% %

276

Control Adaptivo

end % FIN DEL LAZO DE CONTROL ********************** % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)); grid ylabel(Velocidad (rad/s)) subplot(2,1,2) plot(ejex,U(3:MM+2)); grid xlabel(Tiempo en seg) ylabel(Voltaje de control) print -deps -f p11adap1
8 Velocidad (rad/s) 6 4 2 0 2 0 10 20 30 40 50 60 70 80

40 Voltaje de control 20 0 20 40 0

10

20

30

40 50 Tiempo en seg

60

70

80

Figura 5.23: Velocidad angular controlada y el voltaje de control para el problema 5.6. Problema 5.7 En el problema 3.3 se describe el proceso de la bola rodando a lo largo de una barra con un grado de libertad, tal como se muestra en la gura 3.16. Una leva conecta la barra con un engranaje accionado por un servomotor. Se desea disear un sistema de control adaptivo que pueda posicionar la n bola a 0.5 m de un extremo de la barra de 1 m de longitud. Evidentemente, la oscilacin de la bola debe estar restringida sobre la barra. El voltaje de o control no debe sobrepasar los 40 voltios.

5.7 Problemas Resueltos


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

277

278

Control Adaptivo

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

5.8 Problemas Propuestos


z = z -CE*xmas; % ACCION INTEGRAL % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn,r);-CE eye(r,r)]; Ha = [HE;zeros(r,r)]; Ca = [CE zeros(r,r)]; Ka = dlqr(Ga,Ha,Qa,R); % CALCULO DE LA LEY DE CONTROL RESIDUAL u(t+4) = - Ka*[xmas;z]; % ec. (27) % ACTUALIZANDO ESTADOS xmenos = GE*xmas + HE*u(t+4); % ec. (15) AE = 1 + ae1 + ae2 + ae3 + ae4; BE = be1 + be2 + be3 + be4; Uin = inv(BE)*(AE*Yo(t+4) - Ce); % CALCULO DE LA SE~NAL DE CONTROL U(t) U(t+4) = u(t+4) + Uin; end end % FIN DEL LAZO DE CONTROL ************************* % GRAFICOS ejex = linspace(0,MM*T,MM); subplot(2,1,1) plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)), grid ylabel(Posicion (m)) subplot(2,1,2) plot(ejex,U(3:MM+2)), grid xlabel(Tiempo en seg) ylabel(Voltaje de control) print -deps -f p5adap1

279

5.8.

Problemas Propuestos

Problema 5.8 En el proceso de la gura 3.24(a) se desea reducir la humedad h del material a granel de la tolva (ver problema 3.7). La banda transportadora, que se desplaza a una velocidad constante de v= 1 m/s, introduce el material a un horno de secado. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la seal de voltaje vr . El horno puede ser modelado n como un proceso de primer orden. La gura 3.24(b) muestra la F.T del proceso. Disear un sistema de control adaptivo con autosintonizacin con el n o propsito de estabilizar la humedad del material en la banda transportadora, o a pesar de que el tiempo muerto T = v/d var entre 9 y 11 s. Para propsitos a o

280
1 0.8 Posicin (m) 0.6 0.4 0.2 0 0 50 100 150 200

Control Adaptivo

250

10 Voltaje de control 5 0 5 10 15 0 50 100 150 Tiempo en seg 200 250

Figura 5.24: Posicin de la bola y el voltaje de control para el problema 5.7. o del modelado del proceso, el tiempo muerto puede ser descrito mediante la aproximacin de Pad de tercer orden (ver ejemplo ??): o e eT s 1 Tt s/2 + (Tt s)2 /10 (Tt s)3 /120 num(s) = den(s) 1 + Tt s/2 + (Tt s)2 /10 + (Tt s)3 /120

Especicaciones de diseo: tiempo de estabilizacin menor que 40 s, error n o en estado estacionario nulo y porcentaje de sobreimpulso menor al 5 %. Problema 5.9 Las ecuaciones del modelo linealizado para controlar la posicin del caon o n montado en la torreta de un tanque (gura 3.28), empleando un actuador hidrulico se detallan en el problema 3.9. a (a) Disear un sistema de control adaptivo con autosintonizacin para n o controlar el angulo de elevacin con las especicaciones siguientes: o tiempo de estabilizacin menor que 5 s, m o nimo sobreimpulso en la respuesta y error de estado estacionario nulo. Los disturbios tipo escaln o pueden actuar simultneamente o no, y pueden ser positivos o negaa tivos. Para cada caso, el sistema de control diseado debe ser capaz n de minimizar sus efectos.

5.8 Problemas Propuestos

281

(b) Lo mismo que (a), pero en este caso para controlar el ngulo azimutal. a Problema 5.10 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la seccin 3.3, en donde la carga no lineal posee ahora dos grados de libertad o o con Lo = 2L1 /3 y Mo =0.02 kg. La unin de la carga con el eje del servomotor no es exible. Las ecuaciones que describen la dinmica del sistema a son materia del problema 3.12. Disear un sistema de control adaptivo con n autosintonizacin para controlar simultneamente las posiciones y con o a m nimo tiempo de estabilizacin y m o nimo sobreimpulso en la respuesta. Problema 5.11 La gura 3.32 muestra el proceso pndulo doble no lineal que es una extene sin del pndulo simple descrito en la seccin 3.1. El acoplamiento entre los o e o dos pndulos de igual longitud no es exible. Las ecuaciones que describen la e dinmica del sistema son materia del problema propuesto 3.13. Considerar a que la carga esfrica es de 0.02 kg. Disear un sistema de control adaptivo e n con autosintonizacin para controlar simultneamente las posiciones y o a con m nimo tiempo de estabilizacin y m o nimo sobreimpulso en la salida, de modo tal que el pndulo doble permanezca en posicin vertical. e o Problema 5.12 La gura 3.33 muestra el proceso doble gra puente no lineal que es una exu tensin del proceso gra-puente descrito en la seccin 3.2. El acoplamiento o u o entre las dos secciones iguales de la varilla no es exible. Para poder determinar un modelo no lineal dinmico para este proceso, conviene emplear las a ecuaciones de Lagrange de la mecnica clsica (ver problema 3.14). Considea a rar que la carga esfrica es de 0.02 kg. Disear un sistema de control adaptivo e n con autosintonizacin para controlar simultneamente las posiciones y o a con m nimo tiempo de estabilizacin y m o nimo sobreimpulso, de modo tal que la doble gra-puente permanezca en posicin vertical cuando el carro u o realiza un recorrido predeterminado. Problema 5.13 La gura 1.1 muestra un carro de masa m = 1000 kg desplazndose con una a velocidad v gracias a la accin de la fuerza u producida por su motor. Si se o

282

Control Adaptivo

desprecia la inercia de las ruedas y se asume que la fuerza de friccin bv, o donde b= 50 N-s/m es el coeciente de friccin, es lo unico que se opone o al movimiento del carro, entonces la dinmica del proceso puede modelarse a como (ver ejemplo 1.16): mv(t) + bv(t) = u(t); v= dv dt

Disear un sistema de control adaptivo con autosintonizacin para contron o lar la velocidad del mvil con m o nimo tiempo de estabilizacin y m o nimo sobreimpulso en la salida. La seal de referencia puede ser arbitraria (pron blema de seguimiento). Problema 5.14 El motor D.C. es un actuador muy popular en los sistemas de control, ya que su movimiento rotatorio, mediante acoples adecuados en su eje, puede convertirse fcilmente en movimiento de traslacin como por ejemplo, en a o fajas transportadoras y en brazos manipuladores. La gura 4.3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. Las ecuaciones que gobiernan el comportamiento dinmico del motor fueron a derivadas en el ejemplo 4.1. Disear dos sistemas de control adaptivo con n autosintonizacin. El primero para estabilizar la velocidad angular del eje del o motor con las especicaciones siguientes: tiempo de estabilizacin menor que o 4 s, error en estado estable menor al 1 % y sobreimpulso en la salida menor al 5 %. El segundo sistema de control adaptivo a disear debe estabilizar la n posicin del eje del motor con las mismas especicaciones de dise o. o n

Cap tulo 6

Control Predictivo
En este cap tulo se desarrolla un procedimiento para disear un sistema n de control predictivo basado en modelos. El algoritmo de control predictivo empleado es el denominado control matricial dinmico, el cual puede ser tambin a e del tipo escalar. Para validar el procedimiento de diseo propuesto, se presenta n una aplicacin: control predictivo de la posicin angular de un servomotor sujeto o o a cargas no lineales variables. La penltima seccin, problemas resueltos, trata el diseo de sistemas de u o n control predictivo para diferentes procesos empleando leyes de control escalar y matricial. Todos los archivos correspondientes a los ejercicios, problemas, diseos, simulaciones y software desarrollados se pueden descargar del sitio: n http://ee.uni.edu.pe/728681F.

6.1.

Control Predictivo Basado en Modelos

El Control Predictivo Basado en Modelos [7], [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, dos de los cuales son: Empleo de un modelo del proceso para pronosticar su salida a controlar en instantes de tiempo futuro. Clculo de una accin de control optima basada en la minimizacin a o o de funciones de costo, posiblemente incluyendo restricciones en las variables del proceso.

284

Control Predictivo

Los diferentes miembros de la familia del Control Predictivo Basado en Modelos dieren principalmente en el modelo usado para representar el proceso con sus perturbaciones, y en las funciones de costo a ser minimizadas (con o sin restricciones). En lo que sigue del cap tulo, se desarrollan los principios del Control Predictivo Basado en Modelos para su aplicacin o en sistemas univariables. De la gama de algoritmos de control predictivo existentes, nos ocupamos en particular del denominado Control Matricial Dinmico (Dynamic Matrix Control). Para validar el procedimiento de a diseo propuesto, se presenta y discute una aplicacin: control predictivo de n o la posicin angular de un servomotor sujeto a cargas no lineales variables. o Es importante resaltar que el control predictivo es de naturaleza abierta y cuenta con muchas contribuciones, tanto en lo acadmico como tambin en e e el mundo industrial. Muchas aplicaciones del control predictivo son usadas hoy en todos los campos de la actividad industrial. El buen rendimiento de tales aplicaciones es muy apreciada; por ello, actualmente existe un creciente inters en esta metodolog si bien el trabajo pionero se inici alrededor de e a, o hace dos dcadas. e

6.2.

Principios del Control Predictivo Basado en Modelos

El control predictivo pronostica la salida de la planta en un escenario de tiempo de duracin N2 (el horizonte de tiempo N2 ). Tal prediccin deo o pende de las salidas y entradas pasadas, pero tambin del escenario del e control futuro. La obtencin del modelo que reeje lo ms elmente posible o a la evolucin dinmica de la planta, es la llave del xito en las aplicaciones. o a e La notacin usada para derivar los principios del control predictivo es la o siguiente: t, representa el tiempo discreto (t = 0, 1, 2, . . . ). u(t), denota la entrada al proceso y constituye la variable manipulada o seal de control. n y(t), es la salida del proceso y constituye la la variable controlada. w(t), representa la trayectoria deseada (set point). r(t), denota la trayectoria de referencia.

6.2 Principios del Control Predictivo Basado en Modelos

285

u(t + k/t), denota los valores futuros de la entrada en el tiempo t + k postulados en el tiempo t, o simplemente, dado t. y(t + k/t), denota los valores futuros de la salida basado en las mediciones disponibles en el tiempo t: {y(t), y(t 1), . . . , u(t 1), u(t 2), . . .} y en los valores futuros de la entrada postulados en el tiempo t: {u(t/t), u(t + 1/t), . . .} Con relacin a la gura 6.1, 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.1: Estrategia del control predictivo. En cada tiempo t, la salida del proceso y(t + k) se pronostica sobre un horizonte k = 1 . . . N2 . Los valores pronosticados se denotan como y(t + k/t) y a N2 se le denomina el horizonte de prediccin. o La prediccin se realiza mediante el modelo del proceso, el cual se o asume que est disponible. El pronstico en cuestin depende de las a o o entradas y salidas pasadas, pero tambin del escenario del control fue turo u(t + k/t), k = 0, . . . , N2 1; es decir, de las acciones de control que se intentan aplicar a partir del tiempo t.

286

Control Predictivo Una trayectoria de referencia r(t + k/t), k = 1, . . . , N2 , que se inicia en r(t/t) = y(t) y se dene sobre el horizonte de prediccin. Esta o trayectoria describe la forma de guiar la salida del proceso desde su valor actual y(t) hasta la trayectoria deseada w(t). El vector de control u(t + k/t), k = 0, . . . , N2 1, se calcula para minimizar una funcin de costo espec o ca que depende del error del control predictivo r(t + k/t) y(t + k/t), k = 1, . . . , N2 . Al proceso real slo se le aplica el primer elemento del vector de control o o ptimo calculado u(t + k/t), k = 0, . . . , N2 1, mientras que se dejan de lado los dems elementos de dicho vector. En el prximo instante de a o muestreo, todas las secuencias temporales se desplazan para dar cabida a las nuevas mediciones de la salida y(t+1) y a las del vector de control u(t + k + 1/t + 1), cuyo primer elemento es generalmente diferente al primer elemento del vector u(t + k/t), previamente calculado. Este principio se denomina estrategia del horizonte retroactivo.

La estrategia del control predictivo comprende: el proceso de prediccin a travs de un modelo del proceso, la especicacin de una trayectoria o e o de referencia, la estructuracin de la futura ley de control, la denicin de o o la funcin de costo (y sus restricciones) y el clculo del escenario de cono a trol optimo. Tal estrategia puede ser visualizada en el diagrama de bloques mostrado en la gura 6.2.

Entradas y salidas pasadas MODELO Entradas futuras OPTIMIZADOR Funcion de costo

+ Trayectoria de Salidas referencia predecidas -

restricciones

Figura 6.2: Estrategia del Control Predictivo Basado en Modelos

6.3 El Modelo del Proceso

287

6.3.

El Modelo del Proceso

El proceso de una entrada y una salida, probablemente no lineal, puede modelarse como: y(t) = x(t) + n(t) (6.1) tal como se ilustra en la gura 6.3, donde y(t) es la salida medible del proceso, u(t) es la entrada al proceso (la seal de control), x(t) es la salida n del modelo y n(t) es el disturbio en el proceso.

n u MODELO
Figura 6.3: Modelo del proceso bajo perturbaciones.

El Disturbio n(t) La seal de disturbio n(t) incluye todos los efectos no deseados en la salin da y(t). Esta seal representa el efecto conjunto de todos los disturbios sobre n el proceso, otras entradas no medibles, ruido de medicin, errores de modeo lado, incertidumbres, etc. El disturbio n(t), que es de carcter estocstico, a a puede ser modelado mediante un ltro coloreado de la forma: C(z 1 ) n(t) = e(t) D(z 1 ) (6.2)

donde z 1 es el operador de desplazamiento, e(t) es un ruido blanco no correlacionado con media cero, y los polinomios son de la forma: C(z 1 ) = 1 + c1 z 1 + + cnc z nc D(z
1

(6.3) (6.4)

) = 1 + d1 z

+ + dnd z

nd

El ltro de disturbio debe disearse: para eliminar disturbios en el estado n estable (cuando z = 1), como ltro selectivo (para eliminar una determinada frecuencia) y para incrementar la robustez del sistema en la presencia de errores de medicin. Estructuras t o picas de los polinomios del ltro pueden ser: C(z 1 ) = 1 + cz 1 ; D(z 1 ) = (1 + dz 1 )(1 z 1 )

288 La Salida x(t) del Modelo

Control Predictivo

La seal x(t) representa el efecto del proceso en la salida y(t) debido a la n entrada u(t). De nuevo, x(t) no es una seal medible. En general, la relacin n o entre u(t) y x(t) puede representarse mediante un modelo dinmico genrico a e de la forma: x(t) = f (x(t 1), x(t 2), . . . , u(t 1), u(t 2), . . .) (6.5)

donde f (.) es una funcin que puede estructurarse de diversas formas. Es o decir, f (.) puede ser una ecuacin de diferencias, una red neuronal o una o caja negra con parmetros a ser estimados. a El Modelo CARIMA El modelo CARIMA, del ingls Controlled Autoregressive Integrated e Moving Average, es un modelo lineal bsico y bastante extendido en su a aplicacin y es precisamente el que emplearemos. 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.6)

A(z 1 ) = 1 + a1 z 1 + ... + ana z na B(z 1 ) = b1 z 1 + ... + bnb z nb

(6.7) (6.8)

El origen del trmino CARIMA se debe a que la ecuacin de diferencias e o del modelo del proceso presenta tres componentes, a saber, la componente salida autoregresiva: y(k) = a1 y(k 1) a2 y(k 2) ... ana y(k na ) el componente promedio temporal de control: + b0 u(k 1) + b1 u(k 2) + ... + bnb u(k nb 1) y el componente promedio temporal integrado del error e(t): + e(k) + c1 e(k 1) + c2 e(k 2) + ... + cnc e(k nc ) 1 z 1

6.3 El Modelo del Proceso

289

Por ejemplo, para un proceso de segundo orden sin presencia de perturbao ciones; es decir, con C(z 1 ) = 0, la representacin 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.9)

la cual conduce a la ecuacin 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 ms 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.11) (6.10)

Notar en (6.11) que la salida y(t) del modelo tambin cumple que (ver e ecuacin (6.1): o y(t) = x(t) + n(t)
y donde: u = sin es: o B AF

n e

C AD .

La representacin predictiva de la ultima expreo (6.12)

y(t + k/t) = x(t + k/t) + n(t + k/t)

Ejemplo 6.1 El modelo lineal de orden 2 del servomotor D.C. sujeto a cargas no lineales descrito en la seccin 3.3 es: o q = w w = N q M n2 KE B + M MR w+ nKact K u RM

Asumiendo que el ruido de medicin n(t) en la posicin del eje del servomotor o o (la salida del proceso) es coloreado: n(t) = determine su modelo CARIMA. Solucin: La funcin 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

290 y aadiendo el ruido de medicin 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. La ecuacin 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 seal n(t) resultante. n

6.4.

El Modelo del Predictor

El predictor y(t + k/t) de la seal de salida y el predictor n(t + k/t) de n la seal de perturbacin pueden ser modelados empleando representaciones n o serie y serie/paralelo como se detalla a continuacin. o

6.4.1.

Prediccin de y(t + k/t) o

Para predecir y(t+k/t) existen dos posibles esquemas de implementacin, o los cuales se muestran en la gura 6.4 para un modelo de segundo orden.
x(t+k-1/t) x(t+k-2/t) u(t+k-1/t) u(t+k-2/t) MODELO PARALELO x(t+k/t) u(t+k-1/t) u(t+k-2/t) y(t+k-1/t) y(t+k-2/t) MODELO SERIE / x(t+k/t) PARALELO

Figura 6.4: Representacin de los modelos paralelo y serie/paralelo. o

El Modelo Paralelo El modelo paralelo, llamado algunas veces modelo independiente, puede ser usado para procesos estables y es el que se implementa por defecto. En

6.4 El Modelo del Predictor este modelo la salida y(t) se realimenta a s misma. Su expresin es: o y(t) = B(z 1 ) 1 u(t) + e(t) = x(t) + n(t) 1 ) A(z 1 z 1

291

(6.13)

la cual se obtiene de la ecuacin (6.6)) con C(z 1 ) = 1, AD(z 1 ) = (1z 1 ), o B(z 1 ) 1 n(t) = 1z 1 e(t), y x(t) = A(z 1 ) u(t). Por consiguiente, 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 expresin genrica 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.15) El Modelo Serie/Paralelo El modelo serie/paralelo puede ser empleado para procesos estables o C(z 1 inestables. En este caso, el modelo del disturbio n(t) = D(z 1) e(t) se es) coge diferente al del modelo paralelo. El modelo serie/paralelo se obtiene reescribiendo el modelo paralelo como sigue: A(z 1 )y(t) = B(z 1 )u(t) + A(z 1 ) e(t) 1 z 1 (6.16) (6.14)

que es la ecuacin (6.6) cuando C(z 1 ) = A(z 1 ) y D(z 1 ) = 1 z 1 . 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 relacin: 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.19) (6.18) Por consiguiente, la expresin predictiva del modelo serie/paralelo es: o A(z 1 ) e(t) = y(t) + n(t) (6.17) 1 z 1

292

Control Predictivo

La diferencia del modelo serie/paralelo con respecto al modelo paralelo puede deducirse de la gura 6.5.
u
PROCESO

u
PROCESO

+ x u
MODELO PARALELO

y u

MODELO SERIE / PARALELO

Figura 6.5: Implementacin de los modelos paralelo y serie/paralelo. o

6.4.2.

Prediccin de n(t + k/t) o

Para cualquier tiempo t, se puede calcular x(t) usando los datos disponibles del modelo: [x(t 1) . . . x(t na ) u(t 1) . . . u(t nb )] Luego, usando las mediciones y(t) (por ende y(t + k/t)), podemos calcular la perturbacin n(t) mediante la relacin: o o n(t) = x(t) y(t) (6.20)

Como ya se tienen disponibles los valores previos n(t 1), n(t 2), . . ., ello nos permite computar: D(z 1 ) e(t) = n(t) C(z 1 ) e(t) = c1 e(t1)c2 e(t2) +n(t)+d1 n(t1)+d2 n(t2)+ (6.21) donde e(t) es un ruido blanco no correlacionado con media nula. Esto signica que la mejor prediccin de e(t) es: o e(t + k/t) = 0, k = 1, . . . , N2 (6.22)

Por extensin, la mejor prediccin del disturbio se obtiene de: o o n(t + k/t) = C(z 1 ) e(t + k/t), k = 1, . . . , N2 D(z 1 ) = d1 n(t + k 1/t) d2 n(t + k 2/t) + e(t + k/t) +c1 e(t + k 1/t) + c2 e(t + k 2/t) + (6.23)

6.4 El Modelo del Predictor

293

El clculo recursivo toma en cuenta que para cualquier k, e(t + k/t) = 0. a Por consiguiente, para: k = 1, k = 2, n(t + 1/t) = d1 n(t/t) d2 n(t 1/t) n(t + 2/t) = d1 n(t + 1/t) d2 n(t/t) . . . n(t + N2 /t) = d1 n(t + N2 1/t) d2 n(t + N2 2/t)

k = N2 ,

Ejemplo 6.2 Comparar las respuestas a una sinusoide del proceso servomotor D.C. no lineal del ejemplo 6.1, cuando la salida y no es ruidosa y cuando lo es. El tiempo de muestreo es T = 0.01 s. Considerar ruido blanco gaussiano. Solucin: Empleando el resultado del ejemplo 6.1, la solucin a este probleo o ma se detalla en el programa ejem6 2.m. Los resultados se muestran en las guras 6.6, 6.7 y 6.8. Observar en la ultima gura que el ruido e(t) empleado posee media cero y una funcin de distribucin gaussiana. o o
% ejem6_2.m SOLUCION EJEMPLO 6.2 clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Lo = 0.776; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.045; % 0, 0.01, 0.02 K = 31.071e-3; n = 19.741; L = 4.64e-2; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO NO LINEAL DEL PROCESO CONTINUO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bc = [0;n*K*Kact/(R*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); % CONDICIONES INICIALES NULAS q(1)=0; q(2)=0; q(3)=0; u(1)=0; u(2)=0; u(3)=0;

294

Control Predictivo

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

6.4 El Modelo del Predictor


4 Posicin en rad 2 0 2 4 0

295

4 5 6 Tiempo en segundos

10

1 Entrada (voltios) 0.5 0 0.5 1 0

4 5 6 Tiempo en segundos

10

Figura 6.6: Respuesta no ruidosa del proceso a una sinusoide.

4 Posicin ruidosa (rad) 2 0 2 4 6 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

1 Entrada (voltios) 0.5 0 0.5 1 0

4 5 6 Tiempo en segundos

10

Figura 6.7: Respuesta ruidosa del proceso a una sinusoide.

296
0.4 0.2 0 0.2 0.4 0

Control Predictivo

Ruido gausiano e(t) (rad)

4 5 6 Tiempo en segundos

10

300 Distribucin de e(t)

200

100

0 0.4

0.3

0.2

0.1 0 0.1 < e(t) >

0.2

0.3

0.4

Figura 6.8: Ruido blanco e(t) con media cero y distribucin gaussiana. o

6.5.
6.5.1.

El Controlador Predictivo
Objetivo del Controlador

El objetivo del controlador predictivo es determinar el vector de control u(t + k/t), k = 0, . . . , N2 1, que minimice la siguiente funcin 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.24)

donde : u(t + k/t) = u(t + k/t) u(t + k 1/t) (6.25) a con u(t + k/t) = 0 para k Nu . La trayectoria de referencia est representada por la ecuacin: o r(t + k/t) = r(t + k 1/t) + (1 )w(t + k/t) evaluada para k = 1, . . . , N2 , con r(t/t) = y(t). Los parmetros de diseo son: a n N1 : horizonte de prediccin m o nimo. (6.26)

6.5 El Controlador Predictivo

297

N2 : horizonte de prediccin mximo; por defecto podemos considerar o a N2 = N1 + 1, . . . , N1 + 10. Nu : horizonte de control; por defecto considerar Nu = 1. N1 , . . . , N2 : horizonte de coincidencia; por defecto considerar N1 (tiempo muerto). : parmetro de ponderacin; por defecto considerar cero. a o : parmetro de ltraje; por defecto considerar cero. a Si la trayectoria deseada w(t) se programa previamente, entonces los valores futuros w(t + k) se pueden emplear para determinar w(t + k/t). Es decir, w(t + k/t) = w(t + k) para k = 1, . . . , N2 . Si no deseamos una estrategia de control predictivo en avance, el valor actual w(t) se puede usar como un valor de prediccin w(t + k/t) = w(t) para k = 1, . . . , N2 . o Es importante observar adems que: a 1. La trayectoria de referencia dada en (6.26) constituye un ltro de primer orden para w(t). Este ltro se puede representar mediante la siguiente funcin de transferencia: o 1 z(1 ) r(z) = = 1 w(z) 1 z z 2. (6.27)

El ltro para w(t) se puede implementar fuera del lazo de control, no afectando de esta manera a la estabilidad del sistema, pero s con tribuyendo al rechazo del ruido. La gura 6.9 ilustra el objetivo del control predictivo basado en modelos.

6.5.2.

Respuesta Libre y Respuesta Forzada

Conceptualmente, la respuesta futura y(t + k/t) puede ser considerada como el resultado acumulativo de dos efectos: y(t + k/t) = ylibre (t + k/t) + yf orz (t + k/t) (6.28)

donde el sub ndice forz indica forzada. La respuesta libre ylibre (t + k/t) aparece como consecuencia de los factores siguientes: El efecto debido a las seales de control pasadas u(t 1), u(t 2), . . . n

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.9: Objetivo del control predictivo basado en modelos.

El efecto debido a un escenario de control futuro. Por defecto se tiene u(t/t) = u(t 1), u(t + 1/t) = u(t 1), u(t + 2/t) = u(t 1), . . .; esto es, u(t/t) = u(t + 1/t) = . . . = u(t + Nu 1/t) = 0 El efecto debido a las perturbaciones futuras del ruido n(t + k/t). La componente forzada yf orz (t + k/t) aparece debido al resultado de dos efectos. El primero, causado por la accin del control futuro; es decir, o causado por las seales u(t/t), u(t+1/t), . . . , u(t+Nu 1/t). El segunn do efecto se debe a las respuestas del proceso a una secuencia de entradas escaln, como sigue: o Un escaln con amplitud u(t/t) aplicado al proceso en el tiempo o t, resulta en una contribucin gk u(t/t) en la salida del proceso en o el tiempo t + k. Es decir, k tiempos de muestreo ms tarde (gura a 6.10(a)). Un escaln con amplitud u(t + 1/t) aplicado al proceso en el tiempo o t + 1, resulta en una contribucin gk u(t + 1/t) para la salida del o proceso en el tiempo t + k 1. Es decir, k 1 tiempos de muestreo ms tarde (gura 6.10(b)). a etc.

6.5 El Controlador Predictivo


u(t/t) Entrada escalon g u(t/t) k Respuesta al escalon k Muestras t u(t+1/t) t+k (a) Entrada escalon g u(t+1/t) k Respuesta al escalon
(k-1) Muestras

299

Tiempo

Tiempo

t+k
(b)

Figura 6.10: El efecto de las entradas tipo escaln en la salida forzada. o

Por consiguiente, el efecto acumulativo de todos los escalones es: yf orz (t+k/t) = gk u(t/t)+gk1 u(t+1/t)+ +gkNu +1 u(t+Nu 1/t) (6.29) donde los parmetros g1 , . . . , gN2 son los coecientes de la respuesta del a sistema al escaln unitario. Es decir, la respuesta de la salida del sistema a o los cambios tipo escaln unitario en la entrada. o Para un sistema lineal, la respuesta al escaln unitario no depende del o punto de operacin. Este punto es jo y puede ser calculado fuera de l o nea (o-line) usando el modelo del sistema. Para un sistema no lineal, como en el caso de una red neuronal, la respuesta al escaln unitario es diferente para cada punto de operacin. Esta o o respuesta tiene que ser calculada en cada tiempo de muestreo (on-line), aplicando en cada instante de muestreo un cambio escaln (cticio) a la o entrada actual del proceso y calculando su efecto en la salida respectiva.

300

Control Predictivo

De la ecuacin (6.29) se puede obtener la siguiente expresin para la o o componente forzada: (6.30) Yf orz = GU donde: Yf orz = yf orz (t + N1 /t) yf orz (t + N1 + 1/t) yf orz (t + N2 /t) gN1 gN1 1 . . . ... g gN1 ... ... G = N1 +1 ... ... ... ... gN2 gN2 1 . . . gN2 Nu +1 u(t/t) u(t + 1/t) u(t + Nu 1/t)
T T

U=

y empleando la ecuacin (6.28), podemos escribir: o Y = Y + GU donde:

(6.31)

Y = [y(t + N1 /t) . . . y(t + N2 /t)]T ; U = [u(t/t) . . . u(t + Nu 1/t)]T Y = [ylibre (t+N1 /t) . . . ylibre (t+N2 /t)]T ; R = [r(t+N1 /t) . . . r(t+N2 /t)]T Ejemplo 6.3 o Determinar la respuesta libre y los coecientes gk de la respuesta al escaln para el proceso servomotor D.C. descrito en el ejemplo 6.1. Solucin: La ecuacin 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. Luego, los coecientes g(k) se determinan de: g(k) = a1 g(k 1) a2 g(k 2) + b1 u(k 1) + b2 u(k 2) As podemos obtener que g(0) = 0, g(1) = b1 , g(2) = a1 b1 + b1 + b2 , y: g(k) = a1 g(k 1) a2 g(k 2) + b1 + b2 ; La condicin para respuesta libre es que: o u(t/t) = u(t + 1/t) = = u(t + N2 /t) = u(t 1) Aplicando tal condicin en la ecuacin de diferencias del proceso, determio o namos la respuesta libre ylibre como sigue: ylibre (t + 1) = a1 ylibre (t) a2 ylibre (t 1) + (b1 + b2 )u(t 1) k3

6.5 El Controlador Predictivo

301

6.5.3.

La Ley de Control

Con la notacin anterior, la funcin de costo (ecuacin (6.24)) resulta: o o o (RY)T (RY)+UT U = [(RY)GU]T [(RY)GU]+UT U (6.32) la cual es una forma cuadrtica en U, cuya minimizacin por diferenciacin a o o resulta en la siguiente solucin 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). El mismo procedimiento se repite para la nueva medicin y(t + 1) en el prximo o o instante de tiempo t + 1. Este procedimiento se denomina el principio del horizonte retroactivo. La matriz [GT G + I] a ser invertida tiene dimensin Nu Nu . Para el o caso por defecto, es decir, para Nu = 1, se obtiene una ley de control escalar (con muy buenos resultados en muchos casos prcticos) de la a forma: u(t) =
N2 k=N1

(6.33)

gk [r(t + k/t) ylibre (t + k/t)]


N2 k=N1 2 gk +

(6.34)

Otra aproximacin para la estructuracin del escenario de control cono o siste en el empleo de funciones base de la forma: u(t + k/t) =
i

i Bi

(6.35)

La optimizacin de la seal de control u(t + k/t) es ahora con respecto o n a los parmetros i . a El control predictivo muestra diferentes propiedades dependiendo de la seleccin de N1 , N2 y Nu . Por ejemplo: o Si N1 = n, N2 = 2n 1, Nu = n y = 0, la salida entonces alcanza la referencia despus de n muestras y se mantiene en este estado, propore cionando una vigorosa accin de control. Este caso es muy apropiada o para aplicaciones que requieran alto rendimiento, como en la robtica. o

302

Control Predictivo Si escogemos N1 = Nu = 1, N2 = y = 0, obtendremos una respuesta transitoria de la variable controlada, caracterizada por un tiempo de subida rpido y un tiempo de estabilizacin lento. Este a o hecho es relevante en el control de procesos industriales.

La Ley de Control con Restricciones El problema de control presentado en la subseccin anterior fue formuo lado bajo condiciones de control sin restricciones; es decir, considerando que todas las seales poseen rango ilimitado. Sin embargo, esto no es realista. En n la prctica, todos los procesos estn sujetos a restricciones. Por ejemplo, en a a el caso de un servosistema no lineal, si la seal de control u(t) es demasiado n grande, entonces el amplicador del voltaje de armadura se puede saturar producindose su deterioro. e En presencia de restricciones no es posible la solucin anal o tica del problema de minimizacin, debiendo recurrirse a dos posibles soluciones. La o primera solucin es tratar a todas las variables como si no tuvieran restrico ciones. Posteriormente, conforme a rangos previamente especicados (las restricciones), proceder mediante software, con el corte o la limitacin de o las magnitudes de las variables con restricciones. La otra solucin requiere o el empleo de tcnicas numricas, tales como la programacin cuadrtica. e e o a Nosotros no trataremos esta alternativa. Ejemplo 6.4 Determinar la matriz dinmica de control para el proceso del ejemplo 6.1 a empleando los datos siguientes: N1 = 7, N2 = 12, Nu = 6.
% ejem6_4.m SOLUCION DEL EJEMPLO 6.4 clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; RR = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.045; % tambien 0,.01,.02 K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO NO LINEAL DEL PROCESO CONTINUO DE TERCER ORDEN

6.6 Procedimiento de Dise o n


% Acc = [0 1 0;-N/M -B/M n*K/M;0 -n*E/L -RR/L]; % Bcc = [0;0;Kact/L]; % Ccc = [1 0 0]; Dcc = [0]; % MODELO LINEAL CONTINUO DE SEGUNDO ORDEN DEL PROCESO Ac = [0 1;-N/M -(B + n^2*K*E/RR)/M]; Bc = [0;n*K*Kact/(RR*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % periodo de muestreo [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); N1 = 6; N2 =12; Nu =7; % HORIZONTE DE CONTROL % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; for k=3:12 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2; end % LUEGO, LA MATRIZ G TIENE LA FORMA: G = [g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1+5) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N2) g(N2-1) g(N2-2) g(N2-3) g(N2-4) g(N2-5)

303

0 g(N1-5) g(N1-4) g(N1-3) g(N1-2) g(N1-1) g(N2-Nu+1)];

6.6.

Procedimiento de Diseo n

El procedimiento para disear un sistema de control predictivo basado n en modelos, empleando la matriz dinmica de control es: a 1) Formular el problema (denir las especicaciones de diseo). n 2) Determinar el modelo CARIMA del proceso (subseccin 6.3). o 3) Calcular la respuesta libre del proceso (subseccin 6.5.2). o 4) Calcular la respuesta del proceso al escaln (subseccin 6.5.2). o o 5) Determinar la ley de control (subseccin 6.5.3). o 6) Simular el sistema de control predictivo, incluyendo las restricciones.

304 7) Implementar el hardware. 8) Implementar el software de control.

Control Predictivo

9) Realizar pruebas de funcionamiento (resultados experimentales).

6.7.
6.7.1.

Control de Posicin de un Servomotor o


Formulacin del Problema o

El servomotor D.C. con carga no lineal (discutido ampliamente en la seccin 3.3) es un proceso de una entrada y una salida que puede ser controo lado por el voltaje de armadura. La carga no lineal es una varilla metlica a acoplada al eje del servomotor, a manera de un brazo robtico de un grado o de libertad. En el extremo de la varilla se pueden acoplar cargas adicionales. El objetivo de control es disear e implementar un sistema de control pren dictivo basado en modelos, empleando una ley de control escalar dinmica, a de modo tal que la varilla se posicione en una referencia predeterminada. El sobreimpulso de la respuesta debe ser m nimo, no obstante la presencia de la carga no lineal y de las no linealidades del proceso como son las fricciones esttica y de Coulomb, y la saturacin en el amplicador del servomotor. a o

Modelo del Proceso


La gura 3.9 presenta la estructura del proceso no lineal a controlar. La tabla 3.2 describe las variables y los valores de sus parmetros. Asumiendo a que la seal de control u est compensada por las no linealidades y desn a preciando la inductancia L del servomotor, el proceso no lineal puede ser descrito mediante el siguiente modelo lineal (subseccin 3.3.5): o x = Ac x + Bc u; Ac = 0 N M
B ( M

y = Cc x 0
KnKact MR

1 2E + KnR ) M

Bc =

Cc =

1 0

2 1 m 2 M = Jef f + M L2 + M Ro + mL2 ); N = gLo (M + ) o o 5 3 2 2 2 B = n bm + bL Jef f = n Jm + JL ; La funcin de transferencia Gp (s) del proceso puede determinarse de: o Gp (s) = y(s) = Cc [sI Ac ]1 Bc u(s)

6.7 Control de Posicin de un Servomotor o

305

mientras que la funcin 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[.] es la operacin transformada Z. Dicha funcin 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, con A(z 1 ) = 1 + a1 z 1 + a2 z 2 ; B(z 1 ) = b1 z 1 + b2 z 2

Su correspondiente ecuacin 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), los parmetros poseen los valores a siguientes: a1 =-1.9614 , a2 =0.9614 , b1 =0.0044 y b2 =0.0043 .

6.7.2.

Respuesta Libre del Proceso

La expresin para determinar la respuesta libre del proceso en cuestin se o o determin en el ejemplo 6.3. El siguiente programa determina recursivamente o la trayectoria deseada W (t), la trayectoria de referencia r(t) y la respuesta libre ylibre . Por simplicidad, emplearemos la notacin: yf = ylibre . o
% CONDICIONES Y PARAMETROS INICIALES yf(1)=0; yf(2)=0; yf(3)=0; % yf: RESPUESTA LIBRE r(1) =0; r(2) =0; r(3)=0; % r : REFERENCIA alf = 0.01; frec = 0.0063; GW = 1; MM = 1000; n1=1; n2=20; % REFERENCIA, SALIDA LIBRE Y RESPUESTAS AL ESCALON for t = 3:MM+2 for k = n1:n2 W(t+k) = GW*sign(sin(frec*(t))); % TRAYECTORIA DESEADA r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k) = - a1*yf(t+k-1)-a2*yf(t+k-2)+(b1 + b2)*u(t-1); end end

306

Control Predictivo

6.7.3.

Respuesta del Proceso al Escaln o

La expresin para determinar los coecientes de la respuesta al escaln o o del proceso en cuestin, se determin en el ejemplo 6.3. En cdigo MATLAB o o o el clculo se efecta como sigue: a u
N1 = 6; N2 = 12; % HORIZONTE DE CONTROL % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; for k=3:N2 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2; end

6.7.4.

La Ley de Control

La ley de control a emplear es del tipo escalar (Nu = 1) con N1 = 1 y N2 = 12. La forma de la ley de control es: u =
N2 k=N1

g(k)[r(t + k/t) ylibre (t + k/t)]


N2 k=N1

g 2 (k) +

6.7.5.

Simulacin del Sistema de Control Predictivo o

Primera Simulacin o El programa dispred1.m simula el sistema de control predictivo empleando la ley de control descrita en la subseccin 6.7.4 y un modelo lineal de o segundo orden del proceso. La carga no lineal a posicionar es mxima. Se a est empleando restriccin en la fuerza de control para evitar la saturacin a o o del amplicador de potencia. El resultado de esta simulacin se muestra en o la gura 6.11.
% dispred1.m PRIMERA SIMULACION DEL SISTEMA DE CONTROL PREDICTIVO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; RR = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.045; % tambien 0,.01,.020 K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;

6.7 Control de Posicin de un Servomotor o


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

307

308

Control Predictivo

fu = 1.4; if(u(t) > 0 & u(t) > fu) u(t) = fu; elseif(u(t) < 0 & u(t) < -fu) u(t) = -fu; end % PROCESO LINEAL q(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1); end % GRAFICOS ejex = (3:MM); ejex = ejex*T; subplot(2,1,1) plot(ejex,W(3:MM),ejex,q(3:MM)); grid ylabel(Posicion q(t) (rad)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(3:MM)); grid ylabel(Control u(t) (voltios)) xlabel(Tiempo en segundos) print -f -deps dispred1

2 Posicin q(t) (rad) 1 0 1 2 0

8 Tiempo

10 12 en segundos

14

16

18

20

2 Control u(t) (voltios) 1 0 1 2 0

8 10 12 Tiempo en segundos

14

16

18

20

Figura 6.11: Primera simulacin del sistema de control predictivo. La carga o no lineal es mxima. a

6.7 Control de Posicin de un Servomotor o Segunda Simulacin o

309

El programa dispred3.m tambin simula el sistema de control predictivo e empleando la ley de control descrita en la subseccin 6.7.4 y un modelo o no lineal de segundo orden del proceso. La carga no lineal a posicionar es mxima. En esta simulacin se emplea restriccin en la fuerza de control a o o diseada para no saturar el amplicador de potencia. Tambin se emplea n e compensacin para minimizar el efecto de la fuerza de friccin de Coulomb o o en la seal de control y restriccin del tipo y(t) = r(t) (la salida iguala a n o la referencia). El resultado de esta simulacin se muestra en la gura 6.12. o Notar que la fuerza de control generada no sobrepasa el rango de 1,4 volts, por lo que su implementacin no va a saturar al amplicador de potencia a o emplear. Esta es la conguracin que se va a implementar. o
% dispred3.m clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; RR = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.045; % tambien 0,.01,.020 K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO NO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDEN Ac = [0 1;-N/M -(B + n^2*K*E/RR)/M]; Bc = [0;n*K*Kact/(RR*M)]; Cc = [1 0]; Dc = [0]; % MODELO LINEAL DISCRETO DEL PROCESO DE SEGUNDO ORDEN T = 0.01; % PERIODO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [num,den]=ss2tf(G,H,C,D); a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3); % HORIZONTES N1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; for k=3:N2 g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2; end

310

Control Predictivo

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

6.7 Control de Posicin de un Servomotor o


w(t+1) = w(t) + T*( - (N/M)*sin(q(t)) ... - (B/M + n^2*K*E/(M*RR))*w(t) ... - (1/M)*TN + (n*K*Kact/(M*RR))*u(t) ); end % GRAFICOS ejex = (3:MM); ejex = ejex*T; subplot(2,1,1) plot(ejex,W(3:MM),ejex,q(3:MM)); grid ylabel(Posicion q(t) (rad)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(3:MM)); grid ylabel(Control u(t) (voltios)) xlabel(Tiempo en segundos) print -f -deps dispred3
1 Posicin q(t) (rad) 0.5 0 0.5 1 0

311

8 Tiempo

10 12 en segundos

14

16

18

20

2 Control u(t) (voltios) 1 0 1 2 0

8 10 12 Tiempo en segundos

14

16

18

20

Figura 6.12: Segunda simulacin del sistema de control predictivo. La carga o no lineal es mxima. a

6.7.6.

Implementacin del Hardware o

El hardware empleado en la implementacin en tiempo real del sistema o de control predictivo es similar al empleado para la implementacin en tiemo

312

Control Predictivo

po real de los sistemas de control adaptivo, robusto y no lineal. Dicho hardware se describe en detalle en la subseccin 5.6.8. o

6.7.7.

El Software de Control

El software usado para la implementacin del algoritmo de control de o posicin emplea el lenguaje C y se ejecuta en una PC Pentium. Los proo gramas necesarios para el control se estructuran en tres archivos escritos en C: R1LLIB.H, R1LLIB.CPP y PREDI4.CPP. El archivo PREDI4.CPP es el que contiene el algoritmo de control. La realizacin de archivos ejecutables a partir de los programas fuente, se o elabora en el ambiente de trabajo del Borland C/C++ mediante la creacin o de un proyecto denominado PREDI4.PRJ, en el cual intervienen los archivos mencionados en el prrafo anterior. a Diagrama de Flujo del Software de Control El diagrama de ujo del software de control se muestra en la gura 6.13. Notar que tal diagrama comprende los pasos siguientes, para: 1. Inicializar la tarjeta de adquisicin de datos LabP C+ y las variables o utilizadas en el programa. 2. Detectar el anco de subida del pulso de reloj (clock) y leer el primer dato de la posicin (posicin inicial) para iniciar el algoritmo de cono o trol. 3. Comprobar que la variable k sea menor que el nmero de puntos n. La u variable n junto con la frecuencia de muestreo determinan el tiempo de duracin del experimento. o 4. Detectar el anco de subida del pulso de reloj para iniciar un per odo de adquisicin de datos y de control. Leer la posicin y y aplicar las o o restricciones; luego estimar la velocidad a partir de la posicin. o 5. Calcular la seal de control u, compensar las fricciones esttica y de n a Coulomb (seal v), aplicar restricciones a la seal de control, y luego n n enviar la seal u = u + v+oset por el DAC0 de la tarjeta Lab-PC+ n al generador PWM. El valor del oset es 2.3 volt. 6. Actualizar las variables y repetir el lazo de control hasta que k = n.

6.7 Control de Posicin 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.13: Diagrama de ujo del algoritmo de control.

314 El Programa Principal

Control Predictivo

El programa principal (programa PREDI4.CPP) realiza lo siguiente: 1. Declaracin de los archivos de cabecera: r1llib.h (librer de funciones), o a stdio.h (E/S estndar), math.h (manejo de funciones matemticas), a a asserth.h (declaracin de macros de depuracin), alloc.h (asignacin o o o dinmica de memoria) y conio.h (funciones de consola y puertos E/S) a 2. Declaracin de las constantes globales. o 3. Denicin de las funciones propias del programa: Inicializa Sistema, o M ide V ariables y Aplica Control 4. Declaracin de las variables globales. o 5. Denicin de la funcin principal main. o o Las Funciones Propias del Software de Control A continuacin se describen las funciones propias del software de control. o Inicializa Sistema: permite la inicializacin de los parmetros y vao a riables globales. Luego, inicializa la tarjeta de adquisicin de datos o Lab-PC+ por medio de la funcin Conf igurarHardware. Enseguida o env la tensin de oset al puerto de salida analgica por medio de la a o o funcin EnviarV oltage (sic), para asegurar la posicin inicial de reo o poso del motor (posicin vertical) y nalmente, lee la posicin inicial o o p0 del motor. M ide V ariables: especica la seal de referencia considerada. Luego n mide la posicin actual del motor (posicin de la varilla) y la velocidad o o (en funcin de la posicin), actualiza los estados de las variables y, w, o o r y e, y aplica restricciones a la salida. Aplica Control: compensa las fricciones esttica y de Coulomb y aplica a restricciones a la seal de entrada u. Luego, env un voltaje equivan a lente a la suma de la seal de control u (con restriccin), ms la seal n o a n de compensacin v, ms la seal del oset (2.3 volt). o a n La funcin principal main posee una estructura adecuada para: o

6.7 Control de Posicin de un Servomotor o La declaracin y denicin de variables locales. o o El llamado a la funcin Inicializa Sistema. o El llamado a la macro de depuracin. o

315

La asignacin de memoria dinmica que permita almacenar los datos o a para las variables: u, w, y y r en el proceso de ejecucin del proyecto. o Ejecutar el lazo de control del programa desde k = 0 hasta k = n, donde n es un entero que indica el mximo nmero de muestras usado a u en la ejecucin del proyecto. Dentro del lazo de control se dene la o ejecucin de la funcin M ide V ariables en cada anco de subida del o o pulso de reloj. Luego se genera la seal de control u y se env a la n a salida del DAC0 la tensin ordenada por la funcin Aplica Control. o o Los valores para y, w, u y r se guardan en memoria. Posteriormente se incrementan k y t, se visualizan en pantalla los valores instantneos a de t, y, w, u y e, y se actualiza el pulso de reloj siempre que k n. Al nalizar el tiempo de ejecucin, enviar un voltaje de oset necesario o para detener el motor en su posicin de reposo. o La obtencin de grcos basados en datos almacenados durante el o a tiempo de ejecucin, abriendo el archivo de salida PREDI4.OUT. o Los Programas Fuente La trayectoria deseada w considerada en este programa, consiste en cinco niveles de 20 segundos de duracin por nivel. Esos niveles, en orden de o ejecucin, son: 30o (/6), 45o (/4), 60o (/3), 37,5o (5/24) y 30o (/6). o
/* PREDI4.CPP *********** programa principal *********/ #include "r1llib.h" #include <stdio.h> #include <math.h> #include<assert.h> #include <alloc.h> #include <conio.h> const float ESCALA = 2.*M_PI/(512.*19.7); const float niv1 = 1.*M_PI/6.; const float niv2 = 5.*M_PI/24.; const float niv3 = 1.*M_PI/4.; const float niv4 = 1.*M_PI/3.;

316

Control Predictivo

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

6.7 Control de Posicin de un Servomotor o

317

//a1 = -1.6246; a2 = .6246; //b1 = .0479; b2 = .0410; /* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */ VcFE = .2; VcFC = .15; Wth = .1; Ofst = 2.3; Fs = 100.; T = 1./Fs; tsimul= 100.; /* PARAMETROS DEL SISTEMA DE CONTROL PREDICTIVO*/ q0 = 114.9425; landa = 0.942; alfa = 0.01; /* INICIALIZACION DE LAS VARIABLES */ yant = 0.; y = 0.; eant = 0.; eantant = 0.; rant = 0.; e = 0.; uant = 0.; uantant = 0.; ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs); EnviarVoltage(Ofst); p0 = LeerPosicion(); } void Mide_Variables (float *y, float *w, float *r, float *vel, float t) { /* Definiendo el setpoint: w= w(t)*/ if((0. <= t && t < 20.) || (80. <= t && t <= 100.)) *w = niv1; else if(20. <= t && t < 40.) *w = niv3; else if(40. <= t && t < 60.) *w = niv4; else if(60. <= t && t < 80.) *w=niv2; /* definiendo la referencia: r=r(t) */ *r = alfa*rant + (1-alfa)*(*w); /* Ahora leo la posici\on */ pk = LeerPosicion(); *y = yant + ((float)(abs(pk-p0) > 8000 ? 0:pk-p0))*ESCALA; p0 = pk; /* Actualizamos los estados */ yant =* y; rant =* r; eantant = eant; eant = e; /* Restricciones en la salida */ if(*y < 0.0) *y = 0.0; else if(*y > 1.0*(*r)) *y = 1.0*(*r); /* Y el error */ e = *r - *y; /* El error de seguimiento */ es = *w - *y;

318
/* Y la velocidad angular */ *vel = (5.*(*y - yant) + *vel)/(1. + 5.*T);

Control Predictivo

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

6.7 Control de Posicin de un Servomotor o

319

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

320

Control Predictivo

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

6.7 Control de Posicin de un Servomotor o


} unsigned int LeerPosicion() { unsigned char oct1,oct2; oct1 = inportb(R1LLSBPort); oct2 = inportb(R1LMSBPort); return (255*oct2+oct1); } int NivelClock () { unsigned char bytePoll; bytePoll = inportb (R1LPollPort); return (bytePoll&1); }

321

6.7.8.

Resultados Experimentales

En esta subseccin se presentan los resultados experimentales del sistema o de control para posicionar el angulo de salida del servomotor D.C., sujeto a cargas no lineales, empleando restricciones tanto en la fuerza de control como en la salida. Para los casos presentados, la trayectoria deseada es una curva discontinua escalonada. Las respuestas controladas (en l neas de trazo) se muestran en las guras 6.14, 6.15, 6.16 y 6.17 De acuerdo a la seccin 3.3, 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). Los otros parmetros se detallan en la tabla 3.2. Podemos notar que variando a la carga adicional (la esfera de radio Ro y masa Mo ), variamos tambin la e carga total. Esto es lo que haremos en las experiencias. Para todos los casos, se ha considerado un factor de ltraje = 0,01. La gura 6.14 muestra el caso sin carga adicional; es decir, con una carga inercial total JT = J. La gura 6.15 corresponde a la respuesta controlada cuando se incrementa la inercia de la carga no lineal en 42 % (es decir, cuando JT = 1,42J), mientras que las guras 6.16 y 6.17 muestran las curvas de respuesta controlada para los casos cuando JT = 1,84J y JT = 2,98J, respectivamente. En todos los casos se cumplen las especicaciones de dise o n (ver la subseccin 6.7.1). o

322

Control Predictivo
Rpta. a escalones variantes para una carga J 70

60 :y 50 :w

Posicin (grados)

40

30

20

10

0 0

10

20

30

40

50 t(seg)

60

70

80

90

100

Figura 6.14: Salida controlada y (curva en trazos) para una carga inercial de JT = J kg-m2 .
Rpta. a escalones variantes para 1.42J 70

60 :y 50 :w

Posicin (grados)

40

30

20

10

0 0

10

20

30

40

50 t(seg)

60

70

80

90

100

Figura 6.15: Salida controlada y (curva en trazos) para una carga inercial de JT = 1,42J kg-m2 .

6.7 Control de Posicin de un Servomotor o


Rpta. a escalones variantes para 1.84J 70

323

60 :y 50 :w

Posicin (grados)

40

30

20

10

0 0

10

20

30

40

50 t(seg)

60

70

80

90

100

Figura 6.16: Salida controlada y (curva en trazos) para una carga inercial de JT = 1,84J kg-m2 .
Rpta. a escalones variantes para 2.98J 70

60 :y 50 u(t):voltios :w

40

30

20

10

0 0

10

20

30

40

50 t(seg)

60

70

80

90

100

Figura 6.17: Salida controlada y (curva en trazos) para una carga inercial de JT = 2,98J kg-m2 .

324

Control Predictivo

6.8.

Problemas Resueltos

En la seccin problemas resueltos de los cap o tulos 4 al 8, la solucin a los o problemas se encuentra, segn el caso, en uno o ms archivos con extensin u a o m escritos en cdigo MATLAB. La seleccin del tiempo de muestreo para o o cada problema es a conveniencia del diseo. n Problema 6.1 El problema 3.2 presenta las ecuaciones que gobiernan la dinmica longitudia nal de un avin comercial volando a velocidad de crucero (altura y velocidad o constantes). El control del angulo de inclinacin del avin (ver gura 3.14) o o es un problema longitudinal a resolver. El objetivo de control es entonces disear un autopiloto que manipulando el angulo e del deector de elen vacin, controle el angulo de inclinacin del avin. Disear un sistema de o o o n control predictivo que genere una fuerza de control escalar, de modo que la salida del proceso (el angulo de inclinacin ) presente un sobreimpulso o menor al 5 %, un tiempo de estabilizacin menor que 10 s y error en estado o estable nulo. Asumir 1 rad de entrada de referencia. Solucin: Ver el programa p4pred1.m. o
% p4pred1.m SOLUCION DEL PROBLEMA 6.1: CONTROL DE LA INCLINACION % DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL ESCALAR clear all % FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO CONTINUO numc=[0 1.151 0.1774]; denc=[1 0.739 0.921 0]; A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0]; B=[0.232; 0.0203; 0]; C=[0 0 1]; D=[0]; % FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO DISCRETO tm=1.25; % TIEMPO DE MUESTREO [numd,dend]=c2dm(numc,denc,tm,zoh); [G,H]=c2d(A,B,tm); a1=dend(2); a2=dend(3); a3=dend(4); b1=numd(2); b2=numd(3); b3=numd(4); % HORIZONTES DE CONTROL N1 =1; N2 =10; Nu =1; % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3; for k=4:N2 g(k) = -a1*g(k-1) -a2*g(k-2) -a3*g(k-2) + b1 + b2 + b3;

6.8 Problemas Resueltos

325

end % CONDICIONES INICIALES for k=1:4 yf(k)=0; y(k)=0; r(k)=0; u(k)=0; end alf = 0.1; lambda=0; MM = 500; % LAZO DE CONTROL for t=4:MM+3; % TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k) = sign(sin(0.02*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1); end % LEY DE CONTROL du(t) = (g(1)*(r(t+1) - yf(t+1)) + g(6)*(r(t+6) - yf(t+6)) + ... g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ... g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ... g(4)*(r(t+4) - yf(t+4)) + g(9)*(r(t+9) - yf(t+9)) + ... g(5)*(r(t+5) - yf(t+5)) + g(10)*(r(t+10) - yf(t+10)) )/... (g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ... g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda); u(t) = u(t-1) + du(t); % MODELO DEL PROCESO EN SU FORMA CARIMA y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ... +b1*u(t)+b2*u(t-1)+b3*u(t-2); end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex=linspace(0,MM*tm,MM-3); subplot(2,1,1) plot(ejex,W(4:MM),ejex,y(4:MM)); grid ylabel(y: Inclinacion (rad) ) subplot(2,1,2) plot(ejex,u(4:MM)); grid xlabel(TIEMPO : SEG) ylabel(u: Angulo del deflector (rad)) print -deps -f p4pred1

Problema 6.2 Para el proceso del problema 6.2, disear un sistema de control predictivo n que genere una matriz dinmica de control, de modo tal que el angulo de a inclinacin del avin siga una trayectoria arbitraria, pero predeterminada. o o

326
2 y: Inclinacin (rad) 1 0 1 2 0

Control Predictivo

100

200

300

400

500

600

700

u: Angulo del deflector (rad)

2 1 0 1 2 0

100

200

300 400 TIEMPO : SEG

500

600

700

Figura 6.18: Angulo de inclinacin y seal de control (ngulo del deector) o n a correspondientes al problema 6.1. Solucin: Ver el programa p4pred2.m. o
% p4pred2.m SOLUCION DEL PROBLEMA 6.2: CONTROL DE LA INCLINACION % DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL MATRICIAL clear all % FUNCION DE TRANSFERENCIA CONTINUA DE LA PLANTA numc=[0 1.151 0.1774]; denc=[1 0.739 0.921 0]; A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0]; B=[0.232; 0.0203; 0]; C=[0 0 1]; D=[0]; % FUNCION DE TRANSFERENCIA DISCRETA DE LA PLANTA tm=2.2; % TIEMPO DE MUESTREO [numd,dend]=c2dm(numc,denc,tm,zoh); [G,H]=c2d(A,B,tm); a1=dend(2); a2=dend(3); a3=dend(4); b1=numd(2); b2=numd(3); b3=numd(4); % HORIZONTES DE CONTROL N1 =1; N2 =10; Nu =5;

6.8 Problemas Resueltos

327

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

328
+b1*u(t)+b2*u(t-1)+b3*u(t-2); end % FIN DEL BUCLE DE CONTROL % GRAFICOS ejex=(4:MM); ejex=ejex*tm; subplot(2,1,1) plot(ejex,W(4:MM),ejex,y(4:MM)), grid ylabel(y: Inclinacion (rad) ) subplot(2,1,2) plot(ejex,u(4:MM)), grid xlabel(TIEMPO : SEG) ylabel(u: Angulo del deflector (rad)) print -deps -f p4pred2
4 y: Inclinacin (rad) 3 2 1 0 1 0 200 400 600 800

Control Predictivo

1000

1200

u: Angulo del deflector (rad)

0.3 0.2 0.1 0 0.1 0.2 0 200 400 600 TIEMPO : SEG 800 1000 1200

Figura 6.19: Angulo de inclinacin y seal de control (ngulo del deector) o n a correspondientes al problema 6.2. Problema 6.3 La gura 3.20 muestra el proceso monorriel de dos carros descrito en el problema 3.5. El problema a resolver es el control de velocidad del carro de

6.8 Problemas Resueltos

329

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

330

Control Predictivo

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

6.8 Problemas Resueltos


+b5*u(t-4)+b6*u(t-5); end % GRAFICOS ejex=linspace(0,MM*tm,MM-6); subplot(2,1,1) plot(ejex,W(7:MM),ejex,y(7:MM)); grid ylabel(Y1: Velocidad (m/s)) subplot(2,1,2) plot(ejex,u(7:MM)); grid xlabel(Tiempo (segundos)) ylabel(Control u (volt)) print -deps -f p7pred1a
40 Y1: Velocidad (m/s) 30 20 10 0 0

331

50

100

150

150 Control u (volt) 100 50 0 50 0

50 Tiempo (segundos)

100

150

Figura 6.20: Velocidad del carro de mquinas y la fuerza de control para el a problema 6.3. Problema 6.4 Resuelva nuevamente el problema 6.3, pero esta vez usando un sistema de control predictivo con fuerza de control matricial. Solucin: El programa p7pred2a.m resuelve el problema planteado y su o resultado se muestra en la gura 6.22. El programa p7pred2b.m trata el caso de referencia arbitraria y su resultado se ilustra en la gura 6.23.

332
20 Velocidad (m/s) 15 10 5 0 0

Control Predictivo

50

100

150

200

250

300

60 Control u (volt) 40 20 0 20 0

50

100 Tiempo

150 200 (Segundos)

250

300

Figura 6.21: Velocidad del carro de mquinas y la fuerza de control para el a problema 6.3. La referencia es arbitraria. Problema 6.5 La gura 3.22 muestra el proceso ascensor que fue tratado en el problema 3.6. El problema a resolver es posicionar suavemente el ascensor en un piso determinado, lo que signica sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizacin menor que 10 s. Para no saturar al actuador (un o amplicador de potencia), la seal de control debe estar dentro del rango n de 200 volt. Disear un sistema de control de posicin predictivo con n o fuerza de control escalar que cumpla las especicaciones pedidas. Con el objeto de cumplir tales especicaciones, tambin se puede usar restriccin e o a la salida; es decir, para cada tiempo de muestreo, hacer que la posicin o controlada iguale la seal de referencia. Es interesante anotar, que dicha n restriccin origina en la simulacin una respuesta que sigue perfectamente o o a la referencia. Lgicamente, los resultados de la implementacin en tiempo o o real con tal restriccin, no son tan perfectos como lo son en la simulacin, o o tal como sucede en el caso del control predictivo del servomotor con carga no lineal (subseccin 6.7.8). o
% p8pred1.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION % DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA % DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDA clear all

6.8 Problemas Resueltos


40 Y1: Velocidad (m/s) 30 20 10 0 0

333

50

100

150

100

u: control

50

50 0

50 Tiempo (segundos)

100

150

Figura 6.22: Velocidad del carro de mquinas y la fuerza de control para el a problema 6.4.

% ECUACION DE ESTADO A=[-0.2 0 0 0 1 0 0 0 2 0 -2 0 5 0 0 -5]; B=[0.001;0;0;0]; C=[0 1 0 0]; D=[0]; % PROCESO EN TIEMPO DISCRETO tm=1; [G,H]=c2d(A,B,tm); [numd,dend]=ss2tf(G,H,C,D); a1=dend(2); a2=dend(3); a3=dend(4); a4=dend(5); b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5); % HORIZONTES DE CONTROL N1 =1; N2 =10; Nu =1; % RESPUESTA AL ESCALON g(1) = b1; g(2) = -a1*b1 + b1 + b2; g(3) = - a1*g(2) - a2*g(1) + b1 +b2+b3; g(4) = - a1*g(3) - a2*g(2)-a3*g(1) + b1+b2+b3+b4; for k=5:N2 g(k) = -a1*g(k-1)-a2*g(k-2)-a3*g(k-3)-a4*g(k-4)+b1+b2+b3+b4; end

334
20 Velocidad v1 (m/s) 15 10 5 0 0

Control Predictivo

100

200

300

400

500

600

700

800

900

1000

15 u: Fuerza de control 10 5 0 5 0

100

200

300

400 500 600 Tiempo (Segundos)

700

800

900

1000

Figura 6.23: Velocidad del carro de mquinas y la fuerza de control para el a problema 6.4. La referencia es arbitraria.

% CONDICIONES INICIALES for k=1:5 yf(k)=0; y(k)=0; r(k)=0; u(k)=0; end alf =0.1; lambda = 0.00; MM=300; % LAZO DE CONTROL for t =5:MM+4; % TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)=-3*sign(sin(0.02*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)-a4*yf(t+k-4)... + (b1 + b2 + b3 + b4)*u(t-1); end % RESTRICCION A LA SALIDA y(t) = W(t); % LEY DE CONTROL du(t)=(g(1)*(r(t+1)-yf(t+1))+g(6)*(r(t+6)-yf(t+6))+ ... g(2)*(r(t+2) - yf(t+2)) + g(7)*(r(t+7) - yf(t+7)) + ... g(3)*(r(t+3) - yf(t+3)) + g(8)*(r(t+8) - yf(t+8)) + ...

6.8 Problemas Resueltos


g(4)*(r(t+4) - yf(t+4)) + g(9)*(r(t+9) - yf(t+9)) + ... g(5)*(r(t+5) - yf(t+5)) +g(10)*(r(t+10)- yf(t+10)))/... (g(1)^2 + g(2)^2 + g(3)^2 + g(4)^2 + g(5)^2 + g(6)^2 + ... g(7)^2 + g(8)^2 + g(9)^2 + g(10)^2 + lambda); u(t) = u(t-1) + du(t); % EVITANDO LA SATURACION DEL AMPLIFICADOR if(u(t) > 200) u(t) = 200; elseif(u(t) < -200) u(t) = 200; end % PROCESO y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2)-a4*y(t-3)... +b1*u(t)+b2*u(t-1)+b3*u(t-2)+b4*u(t-3); end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex=linspace(0,MM*tm,MM-4); subplot(2,1,1) plot(ejex,W(5:MM),ejex,y(5:MM)); grid ylabel(POSICION (m)) xlabel(TIEMPO EN SEGUNDOS) subplot(2,1,2) plot(ejex,u(5:MM)); grid xlabel(TIEMPO EN SEGUNDOS) ylabel(VOLTAJE DE CONTROL) print -deps -f p8pred1

335

Problema 6.6 Resuelva nuevamente el problema 6.5, pero esta vez usando un sistema de control predictivo con fuerza de control matricial. Solucin: El programa p8pred2a.m resuelve el problema planteado y su o resultado se muestra en la gura 6.25. Problema 6.7 La gura 2.2 muestra dos tanques idnticos colocados en cascada. La sece cin horizontal A=9 m2 de cada tanque es constante. El objetivo de control o es controlar la altura H2 empleando el ujo Qo . La deduccin del modelo o linealizado del proceso se deriv en el ejemplo 2.1. Disear un controlador o n predictivo del tipo escalar con los requerimientos siguientes: tiempo de estabilizacin menor que 15 s, sobreimpulso menor al 10 % y error en estado o

336
4 POSICION (m) 2 0 2 4 0

Control Predictivo

50

100 150 200 TIEMPO EN SEGUNDOS

250

300

VOLTAJE DE CONTROL

200 100 0 100 200 0

50

100 150 200 TIEMPO EN SEGUNDOS

250

300

Figura 6.24: Posicin del ascensor y la fuerza de control (problema 6.5). o


4 POSICION (m) 2 0 2 4 0

100

200

300

400

500

600

VOLTAJE DE CONTROL

200

100

100 0

100

200 300 400 TIEMPO EN SEGUNDOS

500

600

Figura 6.25: Posicin del ascensor y la fuerza de control correspondientes al o problema 6.6.

6.8 Problemas Resueltos

337

estable nulo. Estas condiciones de diseo deben mantenerse cuando se camn bie la referencia (por ejemplo de 3 a 2 m). Adems, el ujo de entrada (la a 3 /s. seal de control) no debe sobrepasar los 3 m n
% p9pred1.m SOLUCION DEL PROBLEMA 6.7 CONTROL DE NIVEL % USANDO CONTROL PREDICTIVO CON CONTROL du ESCALAR clear all % PARAMETROS DEL SISTEMA A = 9; gamma = 0.4; rho = 1.23; g = 9.81; Q = 3; H =Q^2/(gamma^2*rho*g); Z=(gamma*sqrt(rho*g))/(2*A*sqrt(H)); % ESPACIO DE ESTADO DE LA PLANTA EN TIEMPO CONTINUO Ac = [-Z 0;Z -Z]; Bc=[1 ; 0]; Cc=[0 1]; Dc=[0]; T = 0.9; % TIEMPO DE MUESTREO % MODELO LINEAL DISCRETO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [numd,dend]=ss2tf(G,H,C,D); a1 = dend(2); a2 = dend(3); b1 = numd(2); b2 = numd(3); % RESPUESTA AL ESCALON g1 = b1; g2 = -a1* b1 + b1 + b2; g3 = -a1*g2-a2*g1+b1+b2; g4 = -a1*g3-a2*g2+b1+b2; g5 = -a1*g4-a2*g3+b1+b2; g6 = -a1*g5-a2*g4+b1+b2; g7 = -a1*g6-a2*g5+b1+b2; g8 = -a1*g7-a2*g6+b1+b2; g9 = -a1*g8-a2*g7+b1+b2; g10 = -a1*g9-a2*g8+b1+b2; % HORIZONTES DE CONTROL N1 = 1; N2 =10; Nu =1; % control escalar % CONDICIONES INICIALES for k=1:3 yf(k)=0; y(k)=0; r(k)=0; u(k)=0; end alf = 0.1; lambda = 0; MM = 500; % LAZO DE CONTROL for t =3:MM+2 % TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k) = 1.5 + 0.5*sign(sin(0.02*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k) = -a1*yf(t+k-1) - a2*yf(t+k-2) + (b1 + b2)*u(t-1); end % LEY DE CONTROL du(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ ...

338
g2*(r(t+2) g3*(r(t+3) g4*(r(t+4) g5*(r(t+5) (g1^2 +

Control Predictivo

% % %

yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ... yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ... yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ... yf(t+5)) + g10*(r(t+10)-yf(t+10)))/... g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ... g7^2 + g8^2 + g9^2 + g10^2 + lambda); u(t) = u(t-1) + du(t); PROCESO LINEALIZADO (ECUACION RESIDUAL) y(t+1)=-a1*y(t)-a2*y(t-1)+b1*du(t)+b2*du(t-1); SALIDA ACTUAL (NIVEL H2) Y(t+1) = y(t+1)+W(t+1); LIMITANDO EL FLUJO DE CONTROL fu = 3.0; if(u(t) > 0 & u(t) > fu) u(t) = fu; elseif(u(t) < 0 & u(t) < -fu) u(t) = -fu; end end % FIN DEL LAZO DE CONTROL ************** GRAFICOS ejex = linspace(0,MM*T,MM-2); subplot(2,1,1) plot(ejex,W(3:MM),ejex,Y(3:MM)); grid ylabel(NIvel H2 (m)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(3:MM)); grid ylabel(Flujo de control (m^3/s)) xlabel(Tiempo en segundos) print -deps -f p9pred1

Problema 6.8 Resuelva nuevamente el problema 6.7, pero esta vez usando un sistema de control predictivo con fuerza de control matricial. Solucin: El programa p9pred2.m resuelve el problema planteado y su reo sultado se muestra en la gura 6.27. Problema 6.9 El proceso electromecnico mostrado en la gura 3.26 se describe en el proa blema 3.8. Se pide disear un sistema de control predictivo con fuerza de n

6.8 Problemas Resueltos


2.5 NIvel H2 (m) 2 1.5 1 0.5 0 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450

339

Flujo de control (m^3/s)

3 2 1 0 1 2 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450

Figura 6.26: Nivel controlado H2 y el ujo de control para el problema 6.7.

2.5 NIvel H2 (m) 2 1.5 1 0.5 0 0 50 100 150 200 250 300 Tiempo en segundos 350 400 450

Flujo de control (m^3/s)

1 0

50

100

150

200 250 300 Tiempo en segundos

350

400

450

Figura 6.27: Nivel controlado H2 y el ujo de control para el problema 6.8.

340

Control Predictivo

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

6.8 Problemas Resueltos

341

MM=1000; for t =4:MM+3 TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yf for k=1:N2 W(t+k)= 4*sign(sin(0.01*t)); r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); yf(t+k)= -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1); end LEY DE CONTROL du(t) = ( g1*(r(t+1) - yf(t+1)) + g6*(r(t+6) - yf(t+6)) + ... g2*(r(t+2) - yf(t+2)) + g7*(r(t+7) - yf(t+7)) + ... g3*(r(t+3) - yf(t+3)) + g8*(r(t+8) - yf(t+8)) + ... g4*(r(t+4) - yf(t+4)) + g9*(r(t+9) - yf(t+9)) + ... g5*(r(t+5) - yf(t+5)) + g10*(r(t+10) - yf(t+10)) )/... (g1^2 + g2^2 + g3^2 + g4^2 + g5^2 + g6^2 + ... g7^2 + g8^2 + g9^2 + g10^2 + lambda); u(t) = u(t-1) + du(t); if(u(t) > 100) u(t)=100; elseif(u(t) < -100) u(t) = - 100; end PROCESO y(t+1) = -a1*y(t)-a2*y(t-1)-a3*y(t-2)+b1*u(t)+b2*u(t-1)+b3*u(t-2); end % FIN DEL LAZO DE CONTROL GRAFICOS ejex=linspace(0,MM*T,MM-3); subplot(2,1,1) plot(ejex,W(4:MM),ejex,y(4:MM)); grid ylabel(Velocidad (rad/s)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(4:MM)); grid xlabel(Tiempo en segundos) ylabel(Voltaje de control) print -deps -f p11pred1

Problema 6.10 Resuelva nuevamente el problema 6.9, pero esta vez usando un sistema de control predictivo con fuerza de control matricial. La trayectoria deseada debe ser una curva arbitraria (problema de seguimiento).

342
5 Velocidad (rad/s)

Control Predictivo

5 0

10

20

30

40 Tiempo

50 60 en segundos

70

80

90

100

100 Voltaje de control 50 0 50 100 0

10

20

30

40 Tiempo

50 60 en segundos

70

80

90

100

Figura 6.28: Velocidad angular controlada y el voltaje de control para el problema 6.9. Solucin: El programa p11pred2.m resuelve el problema planteado y su o resultado se muestra en la gura 6.29.

6.9.

Problemas Propuestos

Problema 6.11 En el proceso de la gura 3.24(a) (ver problema 3.7) se desea reducir la humedad h del material a granel de la tolva. La banda transportadora, que se desplaza a una velocidad v = 1 m/s constante, introduce el material a un horno de secado. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la seal de voltaje vr . El horno puede modelarse n como un proceso de primer orden. La gura 3.24(b) muestra la F.T del proceso. Disear dos sistemas de control predictivo basado en modelos, uno con n fuerza de control escalar y otro con fuerza de control matricial (la seleccin o de los valores de los horizontes es a conveniencia del problema planteado). El objetivo de control es estabilizar la humedad del material en la banda transportadora. Con nes de modelado del proceso, el tiempo muerto puede ser descrito empleando la aproximacin de Pad de tercer orden (ver ejemplo o e

6.9 Problemas Propuestos


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

343

20

40

60

80 Tiempo

100 120 140 en segundos

160

180

200

3 Voltaje de control 2 1 0 1 2 0 20 40 60 80 Tiempo 100 120 140 en segundos 160 180 200

Figura 6.29: Velocidad angular controlada y el voltaje de control para el problema 6.10. 2.12): eT s

1 Tt s/2 + (Tt s)2 /10 (Tt s)3 /120 num(s) = den(s) 1 + Tt s/2 + (Tt s)2 /10 + (Tt s)3 /120

Las especicaciones de dise o para ambos sistemas de control son: tiempo de n estabilizacin menor que 40 s, error en estado estacionario nulo y porcentaje o de sobreimpulso menor al 5 %. La seleccin del tiempo de muestreo y de los o horizontes de control es a conveniencia del diseo. n Problema 6.12 Las ecuaciones del modelo linealizado para controlar la posicin del caon o n montado en la torreta de un tanque (ver gura 3.28) empleando un actuador hidrulico se detallan en el problema 3.9. a (a) Disear un sistema de control predictivo basado en modelos para conn trolar el angulo de elevacin con las especicaciones siguientes: tiem o po de estabilizacin menor que 5 s, m o nimo sobreimpulso y error en estado estacionario nulo, empleando fuerza de control escalar. Los disturbios tipo escaln pueden actuar simultneamente y pueden ser poso a

344

Control Predictivo itivos o negativos. El sistema de control diseado debe ser capaz de n minimizar sus efectos.

(b) Lo mismo que (a) pero empleando fuerza de control matricial. La seleccin de los horizontes de control es a conveniencia del problema o planteado. (c) Lo mismo que (a), pero en este caso para controlar el ngulo azimutal. a (d) Lo mismo que (c), pero empleando fuerza de control matricial. En todos los casos la seleccin del tiempo de muestreo y los horizontes de o control es a conveniencia del diseo. n Problema 6.13 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la seccin 3.3, en donde la carga no lineal posee ahora dos grados de o o libertad con Lo = 2L1 /3 y Mo =0.02 kg. La unin de la carga con el eje del servomotor no es exible. Las ecuaciones que describen la dinmica del a sistema son materia del problema 3.12. (a) Disear un sistema de control predictivo basado en modelos para conn trolar simultneamente las posiciones y con m a nimo tiempo de estabilizacin y m o nimo sobreimpulso, empleando una fuerza de control escalar. (b) Lo mismo que (a) pero empleando una fuerza de control matricial. La seleccin de los horizontes de control y del tiempo de muestreo es a o conveniencia del problema planteado. Problema 6.14 La gura 3.32 muestra el proceso pndulo doble no lineal, el cual es una e extensin del pndulo simple descrito en la seccin 3.1. El acoplamiento o e o entre los dos pndulos de igual longitud no es exible. Las ecuaciones que e describen la dinmica del sistema son materia del problema propuesto 3.13. a (a) Disear un sistema de control predictivo basado en modelos para conn trolar simultneamente las posiciones y con m a nimo tiempo de estabilizacin y m o nimo sobreimpulso, empleando para ello una fuerza de control escalar, de modo tal que el pndulo doble permanezca en e posicin vertical. Considerar que la carga esfrica es de 0.02 kg. o e

6.9 Problemas Propuestos

345

(b) Lo mismo que (a) pero empleando una fuerza de control matricial. La seleccin de los horizontes de control y del tiempo de muestreo es o a conveniencia del problema planteado. Problema 6.15 La gura 3.33 muestra el proceso doble gra puente no lineal, el cual es una u extensin del proceso gra puente escrito en la seccin 3.2. El acoplamiento o u o entre las dos secciones iguales de la varilla no es exible. Las ecuaciones que describen la dinmica del sistema son materia del problema propuesto 3.14. a Considerar que la carga esfrica es de 0.02 kg. e (a) Disear un sistema de control predictivo basado en modelos para conn trolar simultneamente las posiciones y con m a nimo tiempo de estabilizacin y m o nimo sobreimpulso empleando para ello una fuerza de control escalar, de modo tal que la gra-puente doble permanezca u en posicin vertical. o (b) Lo mismo que (a) pero empleando para ello una fuerza de control matricial. La seleccin de los horizontes de control y del tiempo de o muestreo es a conveniencia del problema planteado. Problema 6.16 La gura 1.1 muestra un carro de masa m = 1000 kg desplazndose con una a velocidad v gracias a la accin de la fuerza u producida por su motor. Si se o desprecia la inercia de las ruedas y se asume que la fuerza de friccin bv, o donde b= 50 N-s/m es el coeciente de friccin, es lo unico que se opone o al movimiento del carro, entonces la dinmica del proceso puede modelarse a como (ver ejemplo 1.16): mv(t) + bv(t) = u(t); v= dv dt

(a) Disear un sistema de control predictivo basado en modelos para conn trolar la velocidad del mvil con m o nimo tiempo de estabilizacin y o m nimo sobreimpulso. La seal de referencia puede ser arbitraria (pron blema de seguimiento) y la fuerza de control a disear es escalar. n (b) Lo mismo que (a), pero empleando fuerza de control matricial. La seleccin los valores de los horizontes y el tiempo de muestreo son a o conveniencia del problema planteado.

346 Problema 6.17

Control Predictivo

El motor D.C. es un actuador muy popular en los sistemas de control porque su movimiento rotatorio, mediante acoples adecuados en su eje, puede convertirse fcilmente en movimiento de traslacin. Eso se aprecia en fajas transa o portadoras o en brazos manipuladores. La gura 4.3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. Las ecuaciones que gobiernan el comportamiento dinmico del motor fueron derivadas en a el ejemplo 4.1. (a) Disear dos sistemas de control predictivo basado en modelos. El n primero, para estabilizar la velocidad angular del eje del motor con las especicaciones siguientes: tiempo de estabilizacin menor que 4 s, o error en estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %, y el segundo para estabilizar la posicin del eje del motor con o las mismas especicaciones de dise o. n (b) Repetir (a) pero en este caso empleando una fuerza de control matricial. La seleccin de los horizontes de control y del tiempo de muestreo o es a conveniencia del problema planteado.

Cap tulo 7

Control Robusto
En este cap tulo se desarrollan dos procedimientos para disear sistemas de n control robusto. El primero emplea la estructura de un sistema de control con modelo interno y se aplica a procesos univariables que presentan comportamiento estable. El segundo procedimiento usa la estructura clsica de un sistema de a control realimentado, pero su controlador se disea mediante el principio de n control con modelo interno y se aplica a procesos univariables inestables. El sistema de control robusto debe ser capaz de minimizar asintticamente o el error entre la salida y una trayectoria de referencia, no obstante la presencia de disturbios y de incertidumbres en el modelado. Para tal efecto, el sistema de control debe satisfacer los requerimientos de estabilidad y rendimiento robustos. En la antepenltima seccin de este cap u o tulo se presenta la aplicacin: o control de la posicin de un servomotor D.C. sujeto a cargas no lineales. La o penltima seccin, problemas resueltos, est dedicada al diseo de sistemas de u o a n control robusto para diferentes procesos. Todos los archivos correspondientes a los ejercicios, problemas, diseos, simulaciones y software desarrollados se n pueden descargar del sitio: http://ee.uni.edu.pe/728681F.

7.1.

Estructura del Control con Modelo Interno

La gura 7.1 muestra el diagrama de bloques de un sistema de control discreto convencional, donde el bloque c es el controlador, el bloque hr0 (s) es la retencin (o memoria) de orden cero, el bloque p(s) es el proceso a controlar, o el bloque (s) es un ltro pasa bajo, y r , u, d, y e y son las seales de n referencia, de control (la variable manipulada), de disturbio, de salida del proceso (la variable controlada), y de salida ltrada, respectivamente. La

348

Control Robusto

d
- m - c(z)
y

- hr0 (s)

p(s)

? - m

@ @

(s)

Figura 7.1: Sistema de control discreto convencional.

notacin empleada responde a los fundamentos tratados en el cap o tulo 2. Por ejemplo, si la seal continua y (t) pasa por un muestreador con per n odo de muestreo T , entonces a la salida del muestreador se obtiene una secuencia o de impulsos y que satisface la relacin:
y (t)

=
k=0

y (kT )(t kT )

(7.1)

La transformada de Laplace de y (t) es entonces:


L[y (t)]

y (esT )

=
k=0

y (kT )eskT

(7.2)

Si alternativamente representamos la seal y (t) por su serie de Fourier: n


y (t)

1 = T

y (kT )eiks t
k=

(7.3)

donde s = 2/T es la frecuencia de muestreo, entonces:


L[y (t)] = y (esT ) =

1 T

y (s + iks )
k=

(7.4)

e Notar que hemos usado la relacin bsica z = esT . Tambin es util recordar o a que la transformada Z de y (t) se puede expresar como: Z[y (kT )] = y (z) (7.5)

7.1 Estructura del Control con Modelo Interno

349

Una funcin racional y peridica 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 . Adems, si y (z) es a peridica, tambin es hermitiana; es decir: o e y (eiT )H = y (eiT ) = y (ei(s )T )H ; /T < w < 2/T (7.6)

Considere ahora el diagrama de bloques mostrado en la gura 7.2 correspondiente a la estructura de un sistema CMI (Control con Modelo Interno), la que comparada con la estructura convencional, presenta grandes ventajas que vamos a discutir ms adelante. Las relaciones entre el controlador clsico a a c(z) y el controlador q(z) (el controlador CMI) se obtienen de la gura 7.2B o de su forma alternativa la gura 7.2C. Estas relaciones son: c = q = q 1 pq c 1 + pc (7.7) (7.8)

donde p es el bloque proceso y p es el bloque modelo del proceso. Observar en la gura 7.2B que el controlador c tiene como entradas la referencia r y la seal medible y, y como salida la seal de control u. n n La gura 7.3 muestra la estructura discreta CMI, en donde el sistema de control incluye q(z), p(s) y (s). Observar en dicha gura que el camino paralelo que forma el modelo del proceso es para sustraer el efecto de la variable manipulada u de la salida del proceso y. Si asumimos que el modelo es una representacin perfecta del proceso, entonces la seal realimentada o n es igual a la inuencia de los disturbios y no es afectada por la accin de o la variable manipulada. En esta situacin, el sistema se comporta como o uno de lazo abierto y los problemas usuales de estabilidad asociados con la realimentacin desaparecen. o Sin demostracin se presenta el concepto de estabilidad interna para el o sistema CMI de la gura 7.3A. Estabilidad Interna: Asumiendo que el modelo es perfecto, es decir que p(s) = p(s), entonces el sistema CMI de la gura 7.3A es internamente es table s y slo si la planta p(s) y el controlador q(z) son estables. o El controlador CMI juega el rol de un controlador anticipativo y puede ser diseado como tal, pero con la capacidad adicional de poder cancelar n

350

Control Robusto

- m

? - m ? - m

6
-

A c d r
- m - m 6

q


? - m

B q d r
- m 6 - m -

c


? - m

6 p
-

? - m

C
Figura 7.2: Representaciones alternativas del Control con Modelo Interno.

7.1 Estructura del Control con Modelo Interno

351

la inuencia de los disturbios no medibles, debido a que en la estructura CMI, la seal de realimentacin lleva consigo la inuencia de los disturbios. n o Cuando la seal realimentada de la estructura CMI se compara con la seal n n de referencia, se genera una seal de error que el sistema de control debe n minimizar. Si el modelo no imita perfectamente la dinmica del proceso, entonces a la seal de realimentacin se ve inuida, tanto por los disturbios no medin o bles, como por el efecto de dicho error de modelado, lo que provoca una realimentacin real de dichos efectos que podr conducir al sistema a proo an bables problemas de estabilidad. Este hecho es el que fuerza al diseador a n desintonizar el controlador anticipativo ideal con el n de lograr robustez. No interesando la tcnica que se emplee, los controladores siempre se e disean basados en la informacin del comportamiento dinmico del pron o a ceso y de los disturbios que actan sobre el mismo. La exactitud de dicha u informacin var pero no llega a ser perfecta. Por ello es deseable que el o a, controlador sea insensible a esta clase de errores de modelacin (incertidumo bres en el modelo); es decir, que el controlador sea robusto. Del cap tulo 2 sabemos que el bloque de retencin (o de memoria) de o orden cero tiene la forma: hr0 (s) = 1 z 1 1 esT = ; s s z = esT (7.9)

Por otra parte, el bloque (s) representa un ltro que sirve para cortar las componentes de alta frecuencia de las seales continuas antes del muestreo, n cuando sea necesario. Su funcin de transferencia debe ser estable; es decir, o las ra de su ecuacin caracter ces o stica deben poseer parte real negativa. Las relaciones siguientes son vlidas 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.10) (7.11) (7.12) (7.13) (7.14) (7.15) (7.16) (7.17)

352

Control Robusto

- m - q(z) 6

- hr0 (s)

- p(s)

? - m ?

(s)
- p (z)

- m 

@ @

A r d
- m - q(z) 6

- hr0 (s)

- p(s)

? - m ? - m

- p(s) @ @

(s)

B d r
- m - q(z) 6

- p(s)

? - m

y
- p(s)

? - m

C
Figura 7.3: Estructura CMI. A: Estructura muestreada. B: Estructura equivalente a A pero no implementable. C: Estructura discreta.

7.2 Formulacin del Problema CMI o p(z) = Z[hr0 (s)(s)] p p(z) = Z[hr0 (s)p(s)]

353 (7.18) (7.19)

Notar que la estructura de la gura 7.3B presenta una conguracin equivao lente a la estructura mostrada en la 7.3A. La gura 7.3C ilustra el sistema CMI completamente discreto.

7.2.

Formulacin del Problema CMI o

Para disear el controlador discreto q(z) debemos tener disponibles el n modelo del proceso (que puede ser continuo o discreto), los rangos de incertidumbre del modelo, los tipos de entradas y los objetivos de rendimiento.

7.2.1.

El Modelo del Proceso

Los mtodos de identicacin ms populares generan modelos de fune o a ciones de transferencia de pulso. Tales funciones son sucientes para disear n el sistema de control, pero no permiten el anlisis del comportamiento del a sistema entre puntos de muestreo, lo que puede ser signicativamente peor que el comportamiento en los mismos puntos. Como las incertidumbres del modelo se describen en forma natural en el tiempo continuo, resulta entonces conveniente tener el modelo continuo del proceso que puede asumirse lineal e invariante con el tiempo y con presencia de tiempos muertos. Es importante en esta parte mencionar la caracter stica causal de los sistemas. Sistema Causal y Estrictamente Causal: Un sistema g(z) es propio o causal si limz g(z) es nito. Un sistema propio es estrictamente propio si limz g(z) = 0, y es semipropio si limz g(z) > 0. Todos los sistemas que no son propios se denominan impropios o no causales.

7.2.2.

Descripcin de Incertidumbres del Modelo o

Hagamos que p(s) = p(j) pertenezca a una familia de procesos II denida por: (7.20) II = {p : |p(j) p(j)| a ()} en donde a () es la incertidumbre aditiva del proceso; es decir, que la incertidumbre o error de modelacin del proceso actual p(j) se ubique en o

354

Control Robusto

una regin circular acotada de radio conocido a (), o de modo equivalente: o p(j) = p(j) + a (j) a (), p II | a (j)| La cota de la incertidumbre multiplicativa
m ()

(7.21) (7.22)

del proceso se dene como: (7.23)

m () = a ()/|(j)| p De las guras 7.3A o 7.3B podemos obtener con p = p: p y(s)r(s) = e(s) = hr0 (s)(s)q(esT )r (esT )r(s); y luego: y(s) = p(s)q(esT ) hr0 (s)r (esT ) r (s) = 1 r (s); r (s) =

r(s) = hr0 (s)r (esT ) (7.24) e(s) (7.25) r(s)

o o donde r es la funcin de sensitividad y r es la funcin de sensitividad complementaria. Ejemplo 7.1 Determinar las expresiones de p(s) y p(s) para el proceso servomotor D.C. con carga no lineal variable descrito en la seccin 3.3 e ilustrado en la o gura 3.9. 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 ), la cual puede variar entre 0 y 0.045 kg. En base a la respuesta al escaln, ya sea del proceso o de su modelo nominal, seleccione un tiempo o de muestreo adecuado y determine la funcin de transferencia de pulso p(z) o del modelo nominal del proceso. Solucin: El programa ejem7 1.m determina p(s) y p(s) para el proceso en o estudio. El resultado es el siguiente: p(s) = p(s) = s2 Kp 30,4696 = 2 + ap s + bp s + 1,2707s + 14,4007

Kn 91,4375 = 2 s2 + an s + bn s + 3,8133s + 17,9220

Observando las respuestas al escaln en la gura 7.4, podemos concluir que o un tiempo de muestreo de T = 0.05 s es suciente para poder capturar la

7.2 Formulacin del Problema CMI o

355

curva de transicin producida por la respuesta del proceso al escaln. La o o funcin de transferencia de pulso del modelo nominal del proceso resulta: o p(z) = 0,1070z + 0,1004 b1 z + b2 = 2 z 2 + a1 z + a2 z 1,7858z + 0,8264

% ejem7_1.m CALCULO DE p(s) Y DE SUS MODELOS NOMINALES pn(s) Y pn(z) clear all % PARAMETROS DEL PROCESO NO LINEAL Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.0352e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; % Mo = 0,0.01,0.02,0.045; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm +bL; Jeff = n^2*Jm +JL; % PROCESO p(s) (EL SUBINDICE p SIGNIFICA PROCESO) Mo = 0.045; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); Ap = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bp = [0;n*K*Kact/(R*M)]; Cp = [1 0]; Dp = [0]; [nump,denp]=ss2tf(Ap,Bp,Cp,Dp); % nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp) Kp = nump(3); ap = denp(2); bp = denp(3); % MODELO NOMINAL pn(s) (EL SUBINDICE n SIGNIFICA NOMINAL) Mo=0.0; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); An = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bn = [0;n*K*Kact/(R*M)]; Cn = [1 0]; Dn = [0]; [numn,denn] = ss2tf(An,Bn,Cn,Dn); % numn(s)/denn(s) = pn(s) = Kn/(s^2 + an*s + bn) Kn = numn(3); an = denn(2); bn = denn(3); % [Kp ap bp] = [30.4696 1.2707 14.4007] % [Kn an bn] = [91.4375 3.8133 17.9220] % MODELO NOMINAL DISCRETO pnz(z) T = 0.05; [numd,dend] = c2dm(numn,denn,T,zoh); % numd(s)/dend(s) = pnz(z) = (b1*z + b2)/(z^2 + a1*z + a2) a1 = dend(2); a2 = dend(3); b1 = numd(2); b2 = numd(3);

356
% [a1 b1 a2 b2] = [-1.7858 0.1070 0.8264 0.1004] % GRAFICOS subplot(2,1,1) step(nump,denp) xlabel(Tiempo en segundos) ylabel(Respuesta del proceso) grid subplot(2,1,2) step(numn,denn) ylabel(Respuesta del modelo) xlabel(Tiempo en segundos) grid print -f -deps ejem7_1

Control Robusto

4 Respuesta del proceso 3 2 1 0 0

4 5 6 Tiempo en segundos

10

8 Respuesta del modelo 6 4 2 0 0

0.5

1.5 2 Tiempo en segundos

2.5

Figura 7.4: Respuestas a la seal escaln del proceso y de su modelo nominal. n o

7.3.

Control Robusto para Procesos Estables

El procedimiento de diseo que se describe a continuacin es el mismo n o desarrollado en [9] y se puede aplicar a procesos estables de una entrada y una salida. El sistema de control robusto ilustrado en la gura 7.3 debe ser internamente estable. Esto se logra si la planta p(s) y el controlador q(z) son estables, asumiendo que el modelo del proceso es perfecto ((s) = p(s)). p

7.3 Control Robusto para Procesos Estables

357

El procedimiento de diseo consta de dos pasos. En el primero, denon minado rendimiento nominal, se selecciona un controlador q (z) que permita obtener respuestas satisfactorias del sistema a entradas de inters, sin tener e en consideracin restricciones e incertidumbres en el modelo. En el seguno do paso, denominado estabilidad y rendimiento robustos, se selecciona un controlador de la forma q(z) = q (z)f (z), donde f (z) es un ltro pasa bajo introducido para lograr estabilidad y rendimiento robustos.

7.3.1.

Rendimiento Nominal

Sistemas del Tipo m La propiedad asinttica de la respuesta a lazo cerrado del sistema de cono trol robusto puede ser establecida mediante el concepto de tipo del sistema. Un sistema del tipo m, donde m es un entero no negativo, es aquel cuya salida sigue perfectamente las entradas r(s) y d(s) (ver gura 7.3) cuando t , siempre que tal sistema posea todos sus polos en el semiplano izquierdo del plano-s, excepto m o menos polos en s = 0. Si el sistema a lazo cerrado es estable, las condiciones necesarias y sucientes para que el sistema sea del tipo m, con m > 0, son: dn (1 p(z)q(z)) = 0, z1 dz n l m dn (1 (s)) = 0, s0 dsn l m Dise o del Preltro (s) n El objetivo principal del preltro (s) es cortar las componentes de alta frecuencia para evitar la superposicin de frecuencias. Los ya conocidos lo tros de Butterworth y Bessel satisfacen la ecuacin (7.27) para m = 1. Para o m > 1 se puede emplear una simple modicacin. Escribamos: o (s) = 1 (s)m (s) con: m (s) = cm1 sm1 + + c1 s + 1 ( s + 1)m1 (7.28) 0n<m 0n<m (7.26) (7.27)

(7.29)

en donde 1 (s) es un preltro apropiado para m=1. Entonces, para un espec co, podemos usar (7.27) para calcular los coecientes c1 , . . . , cm1 .

358

Control Robusto

Cualitativamente m (s) adiciona algunas propiedades en = 0, sin afectar signicativamente el comportamiento de 1 (s) en las frecuencias altas. Para ello se recomienda usar un grande. Un ltro de segundo orden con m = 2 (entrada rampa) posee la forma: 1 (s) =
2 0 2 s2 + 20 s + 0

La solucin de la ecuacin (7.27) determina que c1 = +2/0 . Para un valor o o de sucientemente grande, el preltro m (s) no afecta signicativamente el comportamiento de (s) en las altas frecuencias.
Controlador Optimo de Norma Cuadrtica H2 : qH (z) a

n El controlador optimo de norma cuadrtica qH (z) se disea resolviendo a el siguiente problema de minimizacin de norma cuadrtica H2 : o a
qH (z)

m n

e(z)

2=

qH (z)

m n

(1 p(z)H (z))v(z) q

(7.30)

o sujeto a la restriccin que qH (z) sea estable y causal. La minimizacin de la o norma anterior resulta en el siguiente controlador: qH (z) = z(pM (z)vM (z))1 {z 1 p1 (z)vM (z)} A (7.31)

o donde el operador {.} denota que luego de una expansin en fracciones parciales del operando, slo sern retenidos los trminos que sean estrictao a e mente propios y estables; es decir, aquellos trminos que posean polos que e se ubiquen dentro del c rculo unitario (incluso en z = 1). Notar tambin 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), 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.32)

(7.33)

a rculo unitario. y j , j = 1, . . . , h son los ceros de p(z) que estn fuera del c El entero positivo N se selecciona de modo tal que pM (z) sea semipropio; es decir, que el numerador y el denominador de pM (z) posean el mismo grado, lo que es equivalente a decir que z N p(z) sea semipropio.

7.3 Control Robusto para Procesos Estables La entrada v(z) tambin 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.34)

(7.35)

donde vj , j = 1, . . . , hv son los ceros de v(z) que estn fuera del c a rculo Nv v(z) sea unitario y el entero positivo Nv se selecciona de modo tal que z semipropio. Notar que qH (z) debe ser estable y causal. Sin embargo, debido a su carcter discreto, 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, 0). Por consiguiente, es necesario realizar una modicacin del controlador qH (z). o La tabla 7.1 muestra la expresin del controlador qH (z) para algunas o entradas t picas. picas. Cuadro 7.1: Controlador qH (z) para algunas entradas t v(s)
1 s

v(z)
z z1

Controlador qH (z) (M (z))1 p (M (z))1 (A (eT / ))1 p p (M (z))1 p


pA (11 (eT / )eT / )z+(1 (eT / )1)eT / pA (1eT / )z

1 s+1

z/ zeT /

1 s( s+1)

z(1eT / ) (z1)(zeT / )

1 s2

Tz (z1)2

(M (z))1 (N ++1)zN p z donde: =


d N )| p1 z=1 dz (A (z)z
H (j )1 j h j=1 (1j )(1( H )1 ) j

360 Ejemplo 7.2

Control Robusto

Determinar el controlador optimo cuadrtico qH (z) para el proceso p(z) del a ejemplo 7.1, asumiendo que la entrada v(s) es un escaln. o Solucin: Del ejemplo 7.1 conocemos p(z) para T = 0.05 s: o p(z) = b1 z + b2 z 2 + a1 z + a2

Adems, se debe cumplir que p(z) = pA (z)M (z), de modo tal que z N p(z) a p sea semipropio y por consiguiente, N = 1. El cero b2 /b1 = -0.9874 de p(z) se ubica dentro del c rculo unitario; entonces j = 0 y: pA (z) = z 1 ; pM (z) = z(b1 z + b2 ) p(z) = 2 pA (z) z + a1 z + a2
z z1

Empleando ahora la tabla 7.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.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 propsito de que el sistema tienda o a controlarse con m nimo tiempo de estabilizacin. B(z) se selecciona para o preservar el tipo m del sistema. Sean i , i = 1, . . . , , los polos de qH (z) con parte real negativa. Entonces podemos escribir: z i (7.37) q (z) = z i=1 1 ki
m1

B(z) =
i=0

bi z i

(7.38)

donde m es el tipo del sistema y los coecientes bi , i = 0, . . . , m 1, se seleccionan de modo tal que q (z) satisfaga la ecuacin (7.26). Por construccin, o o

7.3 Control Robusto para Procesos Estables

361

qH (z) tambin cumple con la ecuacin (7.26). Por consiguiente, q (z) debe e o satisfacer la ecuacin (7.26) s y slo si: o o dn (1 q (z)B(z)) = 0, z1 dz n l m n = 0, 1, . . . , m 1 (7.39)

Para los casos especiales m = 1 y m = 2 se puede obtener: B(z) = 1,


m1

m=1 m=2

(7.40) (7.41)

B(z) =
i=0

bi z i = b0 + b1 z 1 ,

b0 = 1 b1 ;

b1 =
i=1

i 1 i

(7.42)

Ejemplo 7.3 Determinar el controlador CMI q (z) sabiendo que el proceso p(z) del ejemplo 7.1 es del tipo m = 1. Tener en cuenta que la entrada v(s) es un escaln. o q Solucin: Sabemos que q (z) = qH (z) (z). Para m = 1, B(z) = 1. Los o polos de qH (z) son z = 0 y z = b2 /b1 = -0.9874. Entonces, = 1 (un polo con parte real negativa que hay que sustituir con un polo en el origen), i =1 y i = 1 = b2 /b1 , de modo que: q (z) = z j=1 Luego: q (z) = qH (z) (z) = q z j z 1 = z 1 1 kj 1 k1 z 2 + a1 z + a2 (b1 + b2 )z 2

7.3.2.

El Filtro Discreto CMI

El controlador diseado q (z) debe ahora ser aumentado con un ltro pasa n bajo f (z) de modo tal que q(z) = q (z)f (z). La estructura y los parmetros a del ltro se determinan para que se alcance un compromiso optimo entre rendimiento y robustez. La forma ms simple de f (z) es: a f (z) = (1 )z z (7.43)

362

Control Robusto

El ltro f (z) debe preservar las propiedades asintticas del sistema de lazo o cerrado; es decir, la ecuacin (7.26). Por consiguiente, para que el sistema o sea del tipo m, el ltro f (z) debe satisfacer: dn (1 f (z)) dz n = 0;
z=1

0n<m

(7.44)

Para un sistema del tipo m = 1, el ltro de la ecuacin (7.43) cumple el o requerimiento anterior: f (1) = 1. Sin embargo, para m 2 se debe postular: f (z) = (0 + 1 z 1 + + w z w ) (1 )z z (7.45)

donde los coecientes 0 , . . . , w se seleccionan de modo tal que satisfagan la ecuacin (7.44). Para m = 2 y w 2 se ha determinado que: o k = 6k , (1 )(w + 1)(2w + 1) k = 1, . . . , w (7.46)

7.3.3.

Estabilidad Robusta

Dise o del Filtro n La condicin de estabilidad robusta se establece en trminos del controo e lador CMI q(z) = q (z)f (z). Asumiendo que todos los procesos p(s) en la familia II son estables, que q(z) es estable y que c(z) est relacionado con a q(z) por la ecuacin (7.7), entonces los sistemas en las guras 7.2A y 7.3A o son robustamente estables, si y slo si: o p q |f (ejT )| < |(ejT )(ejT ) m ()|1 , 0 . T (7.47)

donde m () representa la cota de la incertidumbre multiplicativa. Para un buen rendimiento del sistema, las incertidumbres tienen que ser acotadas. Una simple especicacin de rendimiento requiere que el sistema de lazo o cerrado sea del tipo m = 1; es decir, que f (1) = p(1)(1) = (0) = 1. q Como corolario de la ecuacin (7.47), podemos armar que si la incero tidumbre multiplicativa () es continua, entonces existe un ltro f (z) para el cual el sistema a bucle cerrado sea del tipo m = 1, as como tambin robus e m (0) < 1, tamente estable para la familia de procesos II. Esto, siempre que donde m (0) es el error multiplicativo en estado estable del sistema continuo. Una forma simple de disear el ltro CMI es emplear un ltro f (z) con n la estructura dada en la ecuacin (7.45) y luego variar el parmetro de o a

7.3 Control Robusto para Procesos Estables

363

modo tal que se satisfaga la ecuacin (7.47). Esta ecuacin pone una cota o o e a inferior a . Dicha cota tambin se puede obtener del grco de Bode de: (|(ejT q (eiwT )| m ())1 p (7.48)

Si esta cantidad nunca es menor que 1, entonces = 0. Si se obtuvieran valores menores que 1, puede ser determinada a partir del grco de a Bode de f (z). Este grco resulta prcticamente similar al obtenido con el a a ltro de primer orden dado en la ecuacin (7.43), siempre que el nmero de o u coecientes w en la ecuacin (7.45) sea sucientemente grande. Por ejemplo, o si (|(ejT q (eiwT )| m ())1 decrece en la forma que lo hace un sistema de p primer orden, hasta alcanzar un valor de 0,7 en = , entonces: = eT w Efecto del Muestreo Un incremento de la constante de tiempo del ltro reduce el ancho de banda del sistema nominal. Grandes valores del tiempo de muestreo T tambin reducen el ancho de banda debido a que si escribimos la ecuacin e o (7.47) como: p (7.50) |(j)(ejT )f (ejT )| < |(j)| a () p q podemos observar que el ancho de banda del trmino de la izquierda puede e ser reducido incrementando en f (z) o dejando f (z) = 1 y aumentando T . (7.49)

7.3.4.

Rendimiento Robusto

Para rendimiento robusto, el controlador tiene que ser diseado para n que: M (w) |(j)| a () + |1 p(j)(j)|W () < 1, q q 0 /T (7.51)

q (j) = q (ejT )f (ejT )Z[hr0 (s)(s)] donde se ha introducido una funcin de peso W () sobre la cual se discute o a continuacin. La seleccin de W (w) depende de los requerimientos de o o rendimiento impuestos por el diseador. Es razonable usar la funcin de n o sensitividad ideal (s) = p(s)(s) como una gu para la bsqueda de W (): q a u q W ()1 |1 p(j)(j)| (7.52)

364

Control Robusto

Para que la condicin anterior resulte una funcin propia (requerimiento que o o tambin es necesario para cualquier W (w)), se deben cumplir las condiciones e siguientes para m 1: W ()1 1; W (0)1 0 (7.53)

Ejemplo 7.4 Determinar una funcin de peso adecuada para el proceso servomotor D.C. o sujeto a cargas no lineales (ver ejemplos 7.1, 7.2 y 7.3). Solucin: Podemos seleccionar la siguiente funcin de peso: o o W (s)1 = 0,4 0,5s + 1 ; 0,1s + 1 s = j

que cumple las condiciones establecidas en la ecuacin (7.53). Sin embargo, o se recomienda emplear la forma general dada en la ecuacin (7.52), debido a o que nos permite cambiar la magnitud de la funcin de peso usando un factor o multiplicativo, siempre que no se sobrepase la condicin dada en (7.52). o Esta forma de variar la funcin de peso proporciona mayor exibilidad en o el proceso de vericacin del rendimiento robusto, tal como veremos ms o a adelante. Dise o del Filtro n La forma ms simple de disear el ltro f (z) es especicar su estructura a n dada en la ecuacin (7.45) y luego tratar de satisfacer la ecuacin (7.51) varo o iando el parmetro . Incrementando , el primer trmino de M (w) decrece a e mientras que el segundo trmino crece. Por consiguiente, dependiendo de a e y W , podr no existir un valor de para que la ecuacin (7.45) sea satisa o fecha. 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, entonces, siempre es posible conseguir rendimiento mayor, y que robusto para = 0 y para cualquier peso W (). El parmetro debe ser sintonizado para que se satisfagan las condia ciones dadas en las ecuaciones (7.47) y (7.51). Desde que es posible imponer la cota inferior de , entonces, para determinar dicho parmetro, debemos a resolver el siguiente problema de optimizacin: o
1 0/T

m n

mx M () a

(T )

(7.54)

7.3 Control Robusto para Procesos Estables

365

donde se ha introducido el argumento T en para indicar que el valor o ptimo de la funcin objeto depende del tiempo de muestreo T . o Ejemplo 7.5 Disear el ltro f (z) para el proceso servomotor D.C. usando los resultados n de los ejemplos 7.1 al 7.4. Vericar que se cumplan las condiciones de estabilidad y rendimiento robustos. Asumir: m () | m (ei )| y a () | a ()|. Solucin: Como el sistema es del tipo m = 1, entonces: f (z) = (1)z . o z Para determinar la estabilidad robusta del proceso, empleamos la ecuacin o (7.51) con diferentes valores de , tal como lo calcula el programa ejem7 5.m. Podemos comprobar que la estabilidad robusta para el caso que nos ocupa, se preserva para cualquier valor de entre 0 y 1. El mismo programa determina el rendimiento robusto del proceso. En el grco de magnitudes a de la gura 7.5, podemos observar que para = 0.9 se cumplen las condiciones de estabilidad y rendimiento robustos. Este valor de es la solucin o al problema de optimizacin planteado en la ecuacin (7.54). Notar que en o o la vericacin del rendimiento robusto estamos empleando un factor de 0.5 o en la funcin de peso W (s). o
% ejem7_5.m ESTABILIDAD ROBUSTA Y RENDIMIENTO ROBUSTO clear all % PARAMETROS DEL PROCESO NO LINEAL Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.0352e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; % Mo=0,0.01,0.02,0.045; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm +bL; Jeff = n^2*Jm +JL; % PROCESO p(s) Mo = 0.045; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); Ap = [0 1;-N/M -(B + n^2*K*E/R)/M]; Bp = [0;n*K*Kact/(R*M)]; Cp = [1 0]; Dp = [0]; [nump,denp]=ss2tf(Ap,Bp,Cp,Dp); % nump(s)/denp(s) = p(s) = Kp/(s^2 + ap*s + bp) Kp = nump(3); ap = denp(2); bp = denp(3); % PROCESO DISCRETO pz(z) T = 0.05; [numdp,dendp] = c2dm(nump,denp,T,zoh);

366

Control Robusto

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

7.3 Control Robusto para Procesos Estables


W = 0.5/abs(1-pn*qt); M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)); % PARA RENDIMIENTO ROBUSTO: M_dB < 0 end % GRAFICOS ejew = linspace(0,pi/T,pi/T); subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--) ylabel(Magnitudes en dB) title( (a)) xlabel(Frecuencia angular (rad/s)) grid subplot(122) semilogx(ejew,M_dB(1:pi/T)) ylabel(Magnitud de M en dB) title( (b)) xlabel(Frecuencia angular (rad/s)) grid print -f -deps ejem7_5 print -s -deps ejem7_6a
(a) 40 2 0 2 4 6 8 10 12 14 16 0 10 (b)

367

30

20 Magnitud de M en dB
1 2

Magnitudes en dB

10

10

20

30

40 0 10

10 Frecuencia angular

10 (rad/s)

10 Frecuencia angular

10 (rad/s)

Figura 7.5: (a) Magnitudes de |q |1 y |f (z)| (en trazos) para vericar la p estabilidad. (b) Magnitud de M para vericar el rendimiento robusto.

368 Seleccin del Tiempo de Muestreo o

Control Robusto

Cuando el tiempo de muestreo es sucientemente pequeo, entonces el n sistema discreto tiende a comportarse como uno continuo, incrementndose a de esta manera el rendimiento nominal del sistema. Sin embargo, el costo computacional es mayor y la aparicin de una alta frecuencia de muestreo del o orden de 1/T puede hacer que disminuya el rendimiento robusto. Por consiguiente, tiempos de muestreo sucientemente grandes pueden ser aceptables para conseguir estabilidad robusta y rendimiento robusto. Sin embargo, si el tiempo de muestreo fuera muy grande, podr ser imposible satisfacer los a requerimientos para lograr un rendimiento robusto. Como regla, /T se puede seleccionar ms grande que el ancho de bana da sobre el cual se desea un buen rendimiento. Otra forma de seleccionar T es deteminar la respuesta al escaln del proceso para poder seleccionar o un tiempo T sucientemente pequeo, que nos permita muestrear y luego n recuperar sin dicultad la curva de respuesta resultante. Si para un cierto tiempo de muestreo T se encuentra que (T ) < 1, entonces podemos seguir incrementando el tiempo de muestreo. Por otra parte, si para un determinado T resulta que (T ) > 1, signica entonces que las incertidumbres asumidas en el modelo del proceso y en la estructura del controlador deben ser reajustadas. Ejemplo 7.6 Simular el sistema de control robusto diseado en los ejemplos 7.1 al 7.5. n Solucin: Ver el diagrama de diseo en la gura 7.6 (archivo ejem7 6a.m) o n y los resultados de la simulacin en la gura 7.7. Los grcos se realizan con o a el programa ejem7 6b.m.

7.4.

Control Robusto para Procesos Inestables

Para controlar procesos con comportamiento inestable se tiene que emplear la estructura clsica ilustrada en la gura 7.1. Asumiendo que el modelo a del proceso es perfecto, es decir, que p(s) = p(s), y adems que p(s) y p(z) a posean polos inestables 1 , . . . , k , la estabilidad interna del sistema de la gura 7.1 (donde c = q(1 p q)1 ) queda garantizada, siempre que q(z) sea estable y que (1 p (z)q(z)) posea ceros en 1 , . . . , k .

7.4 Control Robusto para Procesos Inestables

369

+ Sum1

z2+a1.z+a2 (b1+b2)z2 Controlador q~(z)

(1alfa)z zalfa Filtro u_ej7_6 control

Kp s2+ap.s+bp Proceso p(s) Kn s2+an.s+bn

Mux q Mux Grfico

q_ej7_6 posicin

referencia .

Modelo nominal pn(s) + Sum2

Figura 7.6: Diagrama de bloques para la simulacin del sistema de control o robusto diseado. n
1 Posicin en rad 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Control en voltios

0.3

0.2

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

Figura 7.7: Resultado de la simulacin del sistema de control robusto o diseado en los ejemplos 7.1 al 7.5. n

370

Control Robusto

7.4.1.

Rendimiento Nominal

El procedimiento de diseo del controlador robusto para procesos inestan bles, es el mismo que para procesos estables. Primero se dise a el controlador n qH y luego se le modica de modo tal que permita evitar el problema debido a las oscilaciones que se pueden originar entre muestras. En esta forma obtenemos el controlador q = qH q B(z). Este ultimo controlador se modica con un ltro f (z) para poder garantizar estabilidad y rendimiento robustos. El controlador resultante posee la forma: q(z) = q (z)f (z).
El Controlador Optimo H2

Asumamos que p(z) = p(z) posee polos 1 , . . . , k ubicados fuera del CU (c rculo unitario) y un polo de multiciplicidad . Denamos: bp (z) = j=1
H (1 (j )1 )(z j ) H (1 j )(z (j )1 )

(7.55)

o y factoricemos la planta en una porcin pasa todo pA (z) y otra porcin o semipropia de m nima fase pM (z) (ver la subseccin 7.3.1): o p(z) = pA (z)M (z) p De manera anloga factoricemos la entrada v(z): a v(z) = vA (z)vM (z) (7.57) (7.56)

Asumamos ahora sin prdida de generalidad, que los polos inestables de v(z) e ubicados fuera del CU son los primeros 1 polos j del proceso, y denamos: bv (z) = 1 j=1
H (1 (j )1 )(z j ) H (1 j )(z (j )1 )

(7.58)

Asumamos adems que v(z) posee al menos a controlador optimo H2 (z) viene dado por:

polos en z=1. Entonces el

qH (z) = zbp (z)(pM (z)bv (z)vM (z))1 {(zbp (z)pA (z))1 bv (z)vM (z)} (7.59) donde el operador {.} denota que luego de una expansin en fracciones paro ciales del operando, slo sern retenidos los trminos que sean estrictamente o a e propios, exceptuando aquellos correspondiente a los polos de pA (z)1 . Notar que para procesos estables: bp = bv = 1. Si todos los polos inestables del proceso p(s) se ubican en el origen, se puede usar la tabla 7.1.

7.4 Control Robusto para Procesos Inestables Dise o del Controlador CMI q (z) n El controlador CMI tiene la forma: q q (z) = qH (z) (z)B(z)

371

(7.60)

donde q (z) cancela todos los polos i , i = 1, . . . , de qH (z) que posean parte real negativa, y los sustituye con polos en el origen. De esta forma, el sistema tiende a controlarse con m nimo tiempo de estabilizacin. El cono trolador q (z) se formula como: q (z) = z i=1 z i 1 ki (7.61)

ces inestables (incluyendo z=1) con multiSean i , i = 1, . . . , , las ra plicidad mi correspondientes al m nimo denominador comn 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 unicados mediante la relacin siguiente: o dk (1 q (z)B(z)) dz k = 0,
z=i

k = 0, . . . , mi 1;

i = 1, . . . , (7.62)

Se puede formular adems: a


M 1

B(z) =
j=0

bj z j

(7.63)

M=
i=1

mi

(7.64)

y computar los coecientes bj , j = 0, . . . , M 1 de (7.63). Notar que (7.62) da lugar a M ecuaciones lineales con M incgnitas b0 , b1 , . . . , bM 1 ; dicha o ecuacin es equivalente a: o dk (1 q (1 )B(1 )) dk = 0; k = 0, . . . , mi 1; i = 1, . . . , . (7.65)

1 =i

372

Control Robusto

7.4.2.

El Filtro Discreto CMI


(1 )z z

La estructura ms simple del ltro es: a f1 (z) = (7.66)

En general, el ltro f (z) debe satisfacer los requerimientos siguientes: 1. Seguimiento asinttico a entradas externas al sistema (referencias y/o o disturbios). Es decir, (1 p(z)q(z)f (z))v(z) debe ser estable. 2. Estabilidad interna. En esta situacin, q (z)f (z) y (1 p(z)(z)f (z)) o q deben ser estables. Dado que q (z) cumple los requerimientos anteriores para f (z) = 1, en tonces: dk (1 f (z)) dz k = 0,
z=i

k = 0, . . . , mi 1;

i = 1, . . . ,

(7.67)

donde i y mi ya fueron denidos anteriormente. Notar que cuando k = 0, f (z) = 1 para z = 1 , . . . , . En otro caso, el ltro se escoge de: f (z) = (z)f1 (z) donde: (z) =
j=0

(7.68)

j z j

(7.69)

Los coecientes 0 , . . . , se seleccionan de modo tal que para un determinado , se cumpla la ecuacin (7.67), generndose M ecuaciones lineales con o a M incgnitas. Observar que para = 1, se tiene 1 = 1, m1 = 1 y (z) = 1. o Si M = 2, conviene seleccionar 2 para evitar la solucin trivial. o

7.4.3.

Estabilidad y Rendimiento Robustos

Los requerimientos a satisfacer para garantizar estabilidad y rendimiento robustos son los mismos que rigen para procesos estables. Tales requisitos fueron desarrollados en las subsecciones 7.3.3 y 7.3.4. Resumiendo, para garantizar estabilidad robusta se debe cumplir: |f (ejT )| < |(ejT )(ejT ) m ()|1 , p q 0 . T (7.70)

7.5 Procedimiento de Dise o n Para garantizar rendimiento robusto se tiene que cumplir: || a + |1 pq |W 1, q donde: q (s) = q (esT )f (esT )Z[hr0 (s)] El diseo del preltro (s) se trat en la subseccin 7.3.1 n o o 0 /T

373

(7.71) (7.72)

7.5.

Procedimiento de Diseo n

El procedimiento para disear un sistema de control robusto discreto con n estructura CMI es como sigue: 1) Formular el problema (denir especicaciones de diseo). n 2) Usando toda la informacin disponible acerca del proceso no lineal, o determinar el modelo de la planta con sus incertidumbres y denir los tipos de las entradas (subseccin 7.2). o 3) Seleccionar la frecuencia de muestreo (subseccin 7.3.4), analizando o las respuestas al escaln del proceso y del modelo nominal del mismo. o 4) Disear el controlador optimo cuadrtico qH (z). Para procesos estables n a ver la subseccin 7.3.1 (en esta subseccin tambin se encuentra el o o e procedimiento para disear el preltro (s)). Para procesos inestables n ver la subseccin 7.4.1. o 5) Disear el controlador CMI: q (z). Para procesos estables ver la subn seccin 7.3.1. Para procesos inestables ver la subseccin 7.4.1. o o 6) Disear la funcin de peso W (subseccin 7.3.4, para ambos casos). n o o 7) Disear el ltro discreto CM I. Para procesos estables, ver la subsecn cin 7.3.2, comprobar que se cumplan los requerimientos de estabilidad o robusta y rendimiento robusto (subsecciones 7.3.3 y 7.3.4). Para procesos inestables, ver subsecin 7.4.2, comprobar que se cumplan los o requerimientos de estabilidad robusta y rendimiento robusto (subseccin 7.4.3). o 8) Simular el sistema de control robusto. 9) Implementar el hardware del sistema de control.

374 10) Implementar el software de control.

Control Robusto

11) Realizar pruebas de funcionamiento (resultados experimentales).

7.6.

Control Robusto de un Servomotor No Lineal

Siguiendo el procedimiento formulado, esta seccin presenta el diseo de o n un sistema de control robusto para controlar la posicin de un servomotor o D.C., sujeto a cargas no lineales.

7.6.1.

Formulacin del Problema o

El servomotor D.C. con carga no lineal mostrado en la gura 3.9 y descrito en la seccin 3.3, es un proceso de una entrada y una salida. Este o servomotor posee un engranaje reductor de velocidad y puede ser controlado por el voltaje de armadura. La carga no lineal es una varilla metlica a acoplada perpendicularmente al eje del servomotor (a manera de un brazo robtico de un grado de libertad). En el extremo libre de dicha varilla se o pueden acoplar cargas adicionales. De esta manera la carga no lineal se hace variable. El objetivo de control es disear e implementar un sistema de control n robusto empleando una ley de control CMI (Control de Modelo Interno), de modo tal que la varilla se posicione en una referencia predeterminada. El sobreimpulso de la respuesta debe ser m nimo no obstante la presencia de la carga no lineal variable y de las no linealidades del proceso como son las fricciones (esttica y de Coulomb) y la saturacin en el amplicador del a o servomotor.

7.6.2.

Diseo del Sistema de Control Robusto n

Los pasos (2) al (7) del procedimiento de diseo fueron cubiertos en los n ejemplos 7.1 al 7.5.

7.6.3.

Simulacin del Sistema de Control Robusto o

La simulacin realizada en el ejemplo 7.6 consider una planta p(s) lineal. o o En la siguiente simulacin, la planta a considerar es su modelo no lineal, con o el aadido de dos bloques de saturacin (para evitar saturar el amplicador n o de potencia) ms una seal de realimentacin que es proporcional al torque a n o no lineal producido por la carga no lineal. No se est considerando el efecto a

7.6 Control Robusto de un Servomotor No Lineal

375

de la friccin de Coulomb, que tambin es un componente no lineal, debido o e a que tal efecto ser compensado mediante software, como veremos ms a a adelante. El diagrama de simulacin, programa disrob1.m, se muestra en o la gura 7.8, mientras que el resultado de la simulacin se puede ver en la o gura 7.9. Para efectuar la simulacin con el programa disrob1.m, se debe o ejecutar previamente el programa disrob2.m.

+ S1

z2+a1.z+a2 (b1+b2)z2 Controlador q~(z)

(1alfa)z zalfa Filtro

u Saturacin 1

Mux Graph Mux Kn s2+an.s+bn Modelo nominal pn(s) + S2

Referencia

u_disrob Control

Saturacin 2

Kact gan5

n*K R S3 Subsistema elctrico n*E gan2

+ S4

1 1 w Ms+B s Subsistema Integrador mecnico q_disrob MATLAB Function Seno Salida

N gan3

Figura 7.8: Diagrama de bloques para la simulacin del sistema de control o robusto diseado, considerando el modelo no lineal del proceso. n

7.6.4.

Implementacin del Hardware o

El hardware empleado en la implementacin en tiempo real del sistema o de control robusto es similar al empleado para la implementacin en tiemo po real de los sistemas de control adaptivo, predictivo y no lineal. Dicho hardware se describe en detalle en la subseccin 5.6.8. o

376

Control Robusto

1 Posicin en rad

0.5

0 0

8 10 12 Tiempo en segundos

14

16

18

20

0.25 Control en voltios 0.2 0.15 0.1 0.05 0 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20

Figura 7.9: Resultado de la simulacin del sistema de control robusto emo pleando el modelo no lineal del proceso.

7.6.5.

Implementacin del Software o

El software de control empleado en la implementacin en tiempo real o del sistema de control robusto posee la misma estructura que el software de control empleado para la implementacin en tiempo real de los sistemas de o control predictivo y no lineal. La estructura de dicho software se describe en detalle en la subseccin 6.7.7. El diagrama de ujo del software de control o se muestra en la gura 6.13. El software usado para la implementacin del algoritmo de control de o posicin emplea el lenguaje C y se ejecuta en una PC Pentium. Los prograo mas necesarios para el control se estructuran en tres archivos: R1LLIB.H, R1LLIB.CPP y ROB.CPP. El archivo ROB.CPP es el que contiene el algoritmo de control. La realizacin de archivos ejecutables a partir de los programas fuente, se o elabora en el ambiente de trabajo del Borland C/C++ mediante la creacin o de un proyecto denominado ROB.PRJ, en donde intervienen los archivos mencionados en el prrafo anterior. A continuacin se presenta el listado del a o programa ROB.CPP. El listado de los programas R1LLIB.H y R1LLIB.CPP fueron presentados en la subseccin 6.7.7. o

7.6 Control Robusto de un Servomotor No Lineal


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

377

378

Control Robusto

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

7.6 Control Robusto de un Servomotor No Lineal

379

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

380

Control Robusto

gotoxy(21,19);printf("error de posic.: e=%+5.3f",e*180./M_PI); gotoxy(15,21);printf("****************************************"); if(kbhit()) if(getch()==27) break; } ant=act; } EnviarVoltage(Ofst); out=fopen("rob.out","wt"); for (int i=0; i<n/5; i++) fprintf(out,"%10f %10f %10f %10f %10f\n", i*5*T, rb[i], x1b[i], ub[i], rb[i]-(x1b[i]-xn1b[i])); delete rb, x1b, xn1b, ub; fclose(out); }

7.6.6.

Resultados Experimentales

La inercia de la carga no lineal puede variar desde J = 0.007047 kg-m2 (correspondiente a la varilla sin carga adicional), hasta un valor mximo de a 2.98J (correspondiente a la varilla con una carga esfrica de magnitud Mo e = 0.045 kg). Para mayores detalles acerca de la carga no lineal variable, ver la subseccin 6.7.8. o El sistema de control robusto debe ser capaz de estabilizar la posicin o de la carga no lineal para variaciones de su inercia comprendidas entre J y 2.98J. La gura 7.10 muestra el resultado experimental del control de a posicin robusto para una referencia de 45o en presencia de carga mxima. o Podemos observar que la respuesta del sistema muestra sobreimpulso nulo, un tiempo estabilizacin menor que 4 s y error en estado estable nulo. o

7.7.

Problemas Resueltos

En la seccin problemas resueltos de los cap o tulos 4 al 8, la solucin a los o problemas se encuentra, segn el caso, en uno o ms archivos con extensin u a o m escritos en cdigo MATLAB. o Problema 7.1 El problema 3.2 presenta las ecuaciones que gobiernan la dinmica longia tudinal de un avin comercial volando a velocidad de crucero (altura y veo locidad constantes). El control del angulo de inclinacin del avin (ver o o

7.7 Problemas Resueltos


50 (grados) 40 30 20 10 0 0 5 10 15 20 25 30 Tiempo en segundos 35 40 45 50

381

Seal de control (voltios)

Posicin

0.2 0.15 0.1 0.05 0 0

10

15

20 25 30 Tiempo en segundos

35

40

45

50

Figura 7.10: Resultado experimental del sistema de control de posicin roo busto del servomotor D.C. sujeto a una carga no lineal mxima. a

gura 3.14) es un problema longitudinal a resolver. El objetivo de control es entonces disear un autopiloto que manipulando el angulo e del deecn tor de elevacin, controle el angulo de inclinacin del avin. Se pide disear 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 inclinacin ) presente un o sobreimpulso menor al 10 % y un tiempo de estabilizacin menor que 4 s, con o un error en estado estable nulo. Tomar 0.2 rad como entrada de referencia. Realizar el clculo del controlador para una entrada v escaln. El sistema a o diseado debe ser del tipo m = 1. La seleccin del tiempo de muestreo es a n o conveniencia del diseo. Asumir: m () | m (ei )| y a () | a (ei )|. n Solucin: Los rangos de variacin de los parmetros se muestran en el proo o a grama p4rob1.m, al igual que el procedimiento en detalle para disear el conn trolador robusto cuando la entrada v es un escaln. La gura 7.12 (archivo o p4rob1s.m) es el diagrama de bloques empleado en la simulacin del siso tema diseado y requiere que previamente se ejecute el programa p4rob1.m. n Los resultados de la simulacin se muestran en la gura 7.13 (obtenida con o el archivo p4rob1r.m). El sistema diseado cumple los requerimientos de n estabilidad y rendimiento robustos, tal como se aprecia en la gura 7.11.
% p4rob1.m SOLUCION AL PROBLEMA 7.1

382

Control Robusto

% % % %

% %

% % %

% % % % % % % % % % % % % % %

clear all FT (FUNCION DE TRANSFERENCIA) DEL PROCESO: theta/deltae=(1.151s+0.1774)/(s^2+0.739s^2+0.921s) -->dato theta/deltae=(a*s+b)/(s^3+c*s^2+d*s): ESTRUCTURA DE LA FT SE DESEA ROBUSTEZ EN TODOS LOS PARAMETROS: an=1; bn=0.1; cn=0.7; dn=0.9; % PARA EL PROCESO NOMINAL numn=[0 0 an bn]; denn=[1 cn dn 0]; pn=(an*s+bn)/(s^3+cn*s^2+dn*s) ap=1.2; bp=0.2; cp=0.8; dp=0.95; % PARA EL PROCESO nump = [0 0 ap bp]; denp=[1 cp dp 0]; p= (ap*s+bp)/(s^3+cp*s^2+dp*s) MODELO NOMINAL DISCRETO pnz(z) T = 0.3; [numd,dend] = c2dm(numn,denn,T,zoh); numd(z)/dend(z) = pnz(z) = (b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3) a1=dend(2); a2=dend(3); a3=dend(4); b1=numd(2); b2=numd(3); b3=numd(4); PROCESO DISCRETO [numdp,dendp] = c2dm(nump,denp,T,zoh); numdp(z)/dendp(z) = pz(z) = (bp1*z^2+bp2*z+bp3)/... (z^3+ap1*z^2+ap2*z+ap3) ap1=dendp(2); ap2=dendp(3); ap3=dendp(4); bp1=numdp(2); bp2=numdp(3); bp3=numdp(4); DETERMINACION DE pnz(z)=pA(z)*pM(z): roots(numd): 0.9704 y -0.9416 COMO pnz NO POSEE CEROS FUERA DEL CU, Y COMO z^N*pnz DEBE SER SEMIPROPIO, N=1; LUEGO pA=z^(-1) Y pM=pnz/pA=z*(b1*z^2+b2*z+b3)/(z^3+a1*z^2+a2*z+a3)

CALCULO DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON: vA=1; vM=z/(z-1) CALCULO DE qtilde_H=z(pM*vM)^(-1){z^(-1)pA^(-1)vM}*: z(pM*vM)^(-1)=(z-1)pM^(-1) {z^(-1)pA^(-1)vM}*={z/(z-1)}*={1+1/(z-1)}*=1/(z-1) qtilde_H=pM^(-1)=(z^3+a1*z^2+a2*z+a3)/(b1*z^3+b2*z^2+b3*z) CALCULO DE qtilde_: (b1*z^2+b2*z+b3)=(z-0.9704)(z+0.9416); DEBEMOS CANCELAR z=-0.9416 Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.9416, rho=1; LUEGO qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1) k1=-0.9416; % CALCULO DE qtilde=qtilde_H*qtilde_*B(z) PARA m=1: % B(z)=1; qtilde=qtilde_H*qtilde_= % (z^3+a1*z^2+a2*z+a3)*(z-k1)/((b1*z^3+b2*z^2+b3*z)*z*(1-k1))

7.7 Problemas Resueltos

383

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

384
grid subplot(122) semilogx(ejew,M_dB(1:pi/T)) ylabel(Magnitud de M en dB) title( (b)) xlabel(Frecuencia angular grid print -f -deps p4rob1f print -s -deps p4rob1s
(a) 40 5

Control Robusto

(rad/s))

(b)

30

20

Magnitud de M en dB
1 2

Magnitudes en dB

10

10

15

10 0 10

10 Frecuencia angular

10 (rad/s)

20 0 10

10 Frecuencia angular

10 (rad/s)

Figura 7.11: Condicin de estabilidad robusta (grco de la izquierda) y o a rendimiento robusto (grco de la derecha) para el problema 7.1. a Problema 7.2 El proceso reductor de humedad descrito en el problema 3.7 se muestra en la gura 3.24(a). El objetivo de control es reducir la humedad h del material a granel de la tolva. La banda transportadora, que se desplaza a una velocidad v= 1 m/s constante, introduce el material a un horno de secado. El sensor de humedad detecta hr a una distancia d = 10 m del horno y proporciona la seal de voltaje vr . El horno puede modelarse como n un proceso de primer orden. La gura 3.24(b) muestra la F.T del proceso.

7.7 Problemas Resueltos

385

+ S1 Referencia

(1alfa)z zalfa Filtro z4+(a1k1)z 3+(a2a1*k1)z 2+(a3a2*k1)za3*k1 . (1k1)*b1z4+(1k1)*b2z3+(1k1)*b3z2 Controlador q~ u_p4rob1 Control u

ap.s+bp s3+cp.s2+dp.s Proceso p(s) an.s+bn s3+cn.s 2+dn.s Modelo nominal pn(s) y_p4rob1 Salida y

Mux Graph Mux

+ S2

Figura 7.12: Diagrama de bloques para simular el sistema de control robusto con modelo interno (problema 7.1).

0.25 Inclinacin (rad) 0.2 0.15 0.1 0.05 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

1.5 Deflector (rad) 1 0.5 0 0.5 0

4 5 6 Tiempo en segundos

10

Figura 7.13: Angulo de inclinacin (salida controlada) y angulo del deector o de elevacin (seal de control) para el problema 7.1. o n

386

Control Robusto

Disear un sistema de control robusto con modelo interno para controlar n la humedad del material en la banda transportadora. El unico parmetro a incierto a considerar es el tiempo muerto v/d. Asuma como valor nominal Tn = 9 s y como tiempo muerto del proceso Tp = 11 s. Las especicaciones de diseo son: tiempo de estabilizacin menor que 40 s, error en estado n o estacionario nulo y porcentaje de sobreimpulso menor al 5 %. Realizar el clculo del controlador para una entrada v escaln. El sistema diseado debe a o n ser del tipo m = 1. La seleccin del tiempo de muestreo es a conveniencia o del diseo. Asumir: m () | m (ei )| y a () | a ()|. n Solucin: El programa p10rob1.m detalla el procedimiento para disear el o n controlador robusto cuando la entrada v es un escaln. La gura 7.15 (archio vo p10rob1s.m) es el diagrama de bloques empleado en la simulacin del siso tema diseado y requiere previamente que se ejecute el programa p10rob1.m. n El resultado de la simulacin se muestra en la gura 7.16 (obtenida con el o archivo p10rob1r.m). El sistema diseado cumple los requerimientos de esn tabilidad y rendimiento robustos, tal como se aprecia en la gura 7.16.
% p10rob1.m SOLUCION AL PROBLEMA 7.2 clear all % FT (FUNCION DE TRANSFERENCIA) DEL PROCESO % vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FT K=10; a=1.5; b=0.5; % DESEAMOS ROBUSTEZ EN EL TIEMPO MUERTO CON RANGO: Tn=9; Tp=11; % (n: NOMINAL, p: PROCESO) numn=[0 0 K]; denn=[1 a b]; % pn=K*exp(-Tn*s)/(s^2+a*s+b) nump=[0 0 K]; denp=[1 a b]; % p=K*exp(-Tp*s)/(s^2+a*s+b) % MODELO NOMINAL DISCRETO pnz(z) T = 0.5; % z = exp(T*s) => exp(Tn*s)=z^(Tn/T)=z^18 [numd,dend] = c2dm(numn,denn,T,zoh); % numd(z)/dend(z)=(b1*z+b2)/(z^2+a1*z+a2) a1=dend(2); a2=dend(3); b1=numd(2); b2=numd(3); % numD(z)/denD(z)=pnz(z)=z^(-Tn/T)*numd(z)/dend(z) % pnz(z) = z^(-Tn/T)*(b1*z+b2)/(z^2+a1*z+a2) % = (b1*z+b2)/(z^20+a1*z^19+a2*z^18) % PROCESO DISCRETO pz(z) % T = 0.5; z = exp(T*s) => exp(Tp*s)=z^(Tp/T)=z^22 [numdp,dendp] = c2dm(nump,denp,T,zoh); % numdp(z)/dendp(z)=(bp1*z+bp2)/(z^2+ap1*z+ap2) ap1=dendp(2); ap2=dendp(3);

7.7 Problemas Resueltos


bp1=numdp(2); bp2=numdp(3); % numDp(z)/denDp(z)=pz(z)=z^(-Tp/T)*numdp(z)/dendp(z) % pz(z) = z^(-Tp/T)*(bp1*z+bp2)/(z^2+ap1*z+ap2) % = (bp1*z+bp2)/(z^24+a1*z^23+a2*z^22) % % % % % % % % % % % % % % % % % % % %

387

DETERMINACION DE pnz(z)=pA(z)*pM(z): roots(numD): -0.1353 COMO pnz NO POSEE CEROS FUERA DEL CIRCULO UNITARIO (CU) Y COMO z^N*pnz DEBE SER SEMIPROPIO, ENTONCES N=19; LUEGO pA=z^(-N) Y pM=pnz/pA=z^19*(b1*z+b2)/(z^20+a1*z^19+a2*z^18) DETERMINACION DE v(z)=vA(z)*vM(z)=z/(z-1) PARA UNA ENTRADA ESCALON: SE SABE POR EJERCICIOS ANTERIORES QUE vA=1; vM=z/(z-1) CALCULO DE qtilde_H=(pM(z))^(-1): SEGUN TABLA, qtilde_H=(z^20+a1*z^19+a2*z^18)/(b1*z^20+b2*z^19) CALCULO DE qtilde_: (b1*z^4+b2*z^3)=z^3*(b1*z+b2) => CANCELAR z=-b2/b1=-0.1353 Y SUSTITUIRLO CON z=0; ESTO ES, k1=-0.1353, rho=1, Y qtilde_=z^(-rho)*(z-k1)/(1-k1)=z^(-1)*(z-k1)/(1-k1) k1=-0.1353; CALCULO DE qtilde=qtilde_H*qtilde_*B(z) (PARA m=1): PARA QUE EL SISTEMA SEA DEL TIPO m=1, B(z)=1, ENTONCES: qtilde=qtilde_H*qtilde_= (z^20+a1*z^19+a2*z^18)*(z-k1)/(z*(b1*z^20+b2*z^19)*(1-k1)) CALCULO DEL FILTRO CON m=1: f(z)=(1-alfa)*z/(z-alfa); CALCULO DE LA FUNCION DE PESO PARA m=1: W(w)>=G/(abs(1-pn*qtilde)) CONDICIONES: W^(-1)(infty) MAYOR QUE 1, W(0)^(-1) MAYOR QUE 0

% CHEQUEANDO ESTABILIDAD ROBUSTA alfa = 0.95; for w = 0:pi/T % pi/T = s=i*w; z=exp(s); pn=K*exp(-Tn*s)/(s^2+a*s^2+b*s); p= K*exp(-Tp*s)/(s^2+a*s^2+b*s); pnz = (b1*z+b2)/(z^(Tn/T)*(z^2+a1*z+a2)); pz = (bp1*z+bp2)/(z^(Tp/T)*(z^2+ap1*z+ap2)); laz = pz - pnz; lmz = laz/pnz; qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/... (z*(b1*z^20+b2*z^19)*(1-k1)); mag_dB(w+1) = 20*log10(1/(abs(pnz*qtilde*lmz))); f = (1-alfa)*z/(z-alfa); magf_dB(w+1) = 20*log10(abs(f));

388

Control Robusto

% PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1) end % CHEQUEANDO RENDIMIENTO ROBUSTO for w = 0:pi/T s=i*w; z=exp(s); pn=K*exp(-Tn*s)/(s^2+a*s^2+b*s); p= K*exp(-Tp*s)/(s^2+a*s^2+b*s); la = p - pn; lm = la/pn; qtilde=(z^20+a1*z^19+a2*z^18)*(z-k1)/... (z*(b1*z^20+b2*z^19)*(1-k1)); f = (1-alfa)*z/(z-alfa); q = qtilde*f; G = 0.9; W = G/abs(1-pn*qtilde); % PARA RENDIMIENTO ROBUSTO: M_dB < 1 M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W)); end % GRAFICOS ejew = linspace(0,pi/T,pi/T); subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--); grid ylabel(Magnitudes en dB) title( (a)) xlabel(Frecuencia angular (rad/s)) subplot(122) semilogx(ejew,M_dB(1:pi/T)); grid ylabel(Magnitud de M en dB) title( (b)) xlabel(Frecuencia angular (rad/s)) print -f -deps p10rob1f print -s -deps p10rob1s

Problema 7.3 La gura 3.20 muestra un monorriel de dos carros descrito en el problema 3.5. El problema a resolver es el control de velocidad del carro de mquinas a mediante un sistema de control robusto empleando modelo interno. Para garantizar a los pasajeros un viaje confortable, los cambios de velocidad deben realizarse con un tiempo de estabilizacin menor que 6 segundos y o con m nimo sobreimpulso. El error en estado estable debe ser nulo. Tener

7.7 Problemas Resueltos

389

(a) 15 10 0 5 0 5 10 15 20 25 10 30 35 0 10 Frecuencia angular (rad/s) 12 0 10 Magnitud de M en dB Magnitudes en dB 2 2

(b)

10

10 Frecuencia angular (rad/s)

Figura 7.14: Condicin de estabilidad robusta (grco de la izquierda) y o a rendimiento robusto (grco de la derecha) para el problema 7.2. a

+ S1 Referencia z20 +a1.z 19 +a2.z 18. b1.z 20 +b2.z19 Controlador q~H

(1alfa)z zalfa Filtro

K s2+as+b Proceso p(s) K s2+as+b Tp

Mux Graph Mux y_p10rob Salida y + S2

zk1 (1k1)z Controllador q~_

Modelo nominal pn(s) Tn u_p10rob Control u

Figura 7.15: Diagrama de bloques para simular el sistema de control robusto con modelo interno (problema 7.2.)

390

Control Robusto

1 Humedad

0.5

0 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

0.06 Flujo calorfico 0.04 0.02 0 0.02 0

10

20

30

40 50 60 Tiempo en segundos

70

80

90

100

Figura 7.16: Flujo calor co (seal de control) y humedad sensada (salida n controlada) para el problema 7.2. en cuenta que debido al peso de los pasajeros, podemos considerar un rango de variacin en la masa de los carros de pasajeros. Realizar el clculo del o a controlador para una entrada v escaln. El sistema diseado debe ser del tipo o n m = 1. La seleccin del tiempo de muestreo es a conveniencia del diseo. o n m () | m (ei )| y a () | a ()|. Asumir: Solucin: El programa p7rob1.m muestra el rango de variacin de tales o o masas y detalla el procedimiento para disear el controlador robusto cuando n la entrada v es un escaln. La gura 7.18 (archivo p7rob1s.m) es el diagrama o de bloques empleado en la simulacin del sistema diseado y requiere previo n amente que se ejecute el programa p7rob1.m. El resultado de la simulacin o se muestra en la gura 7.19 (obtenida con el archivo p7rob1r.m). El sistema diseado cumple los requerimientos de estabilidad y rendimiento robustos, n tal como se puede apreciar en la gura 7.17.
% p7rob1.m SOLUCION AL PROBLEMA 7.3 clear all % ROBUSTEZ EN LOS PESOS M2 Y M3 DADO QUE VARIAN CON EL PESO % PROCESO: M2=3200; M3=3200 (CARROS CON PASAJEROS); M1=1300; M2=3200; M3=3200; K12=100000; K23=100000;

7.7 Problemas Resueltos


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

391

% % %

% % %

392

Control Robusto

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

% % % %

7.7 Problemas Resueltos


% (z^6+a1*z^5+a2*z^4+a3*z^3+a4*z^2+a5*z+a6)*(z-k1)^2/... % (z^3*(b1*z^5+b2*z^4+b3*z^3+b4*z^2*b5*z+b6)*(1-k1)^2); % DETERMINACION DEL FILTRO: f(z)=(1-alfa)*z/(z-alfa);

393

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

394

Control Robusto

% NOTAR QUE q*pnz=(z-k1)^2*(1-alfa)/(z^2*(1-k1)^2*(z-alfa)) num1=(1-alfa)*[1 -2*k1 k1^2]; den1= ... [(1-k1)^2 -((1-k1)^2*alfa+(1-alfa)) (1-alfa)*2*k1 -(1-alfa)*k1^2]; % numc=conv(den,num1); denc=conv(num,den1); [numc,denc]=series(den,num,num1,den1); % GRAFICOS ejew = linspace(0,pi/T,pi/T); subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--); grid ylabel(Magnitudes en dB); title( (a)) xlabel(Frecuencia angular (rad/s)) subplot(122) semilogx(ejew,M_dB(1:pi/T)); grid ylabel(Magnitud de M en dB); title( (b)) xlabel(Frecuencia angular (rad/s)) print -f -deps p7rob1f print -s -deps p7rob1s
(a) 40 0 1 30 2 3 Magnitud de M en dB 20 Magnitudes en dB 4 5 6 7 8 10 9 20 0 10 10 0 10 (b)

10

10 Frecuencia angular

10 (rad/s)

10 Frecuencia angular

10 (rad/s)

Figura 7.17: Condicin de estabilidad robusta (grco de la izquierda) y o a rendimiento robusto (grco de la derecha) para el problema 7.3. a

7.7 Problemas Resueltos

395

+ r S1

numc(z) denc(z) Controlador c(z) u_p7rob1 . Control u

nump(s) denp(s) Proceso p(s)

y Mux Graph Mux y_p7rob1 Salida y

Figura 7.18: Diagrama de bloques para simular el sistema de control robusto con modelo interno del problema 7.3.

15 Velocidad (m/s)

10

0 0

4 5 6 Tiempo en segundos

10

300 250 Fuerza (N) 200 150 100 50 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Figura 7.19: Velocidad del carro de mquinas y fuerza de control para el a problema 7.3.

396 Problema 7.4

Control Robusto

La gura 3.22 muestra el proceso ascensor tratado en el problema 3.6. Sin embargo, para este problema considere que el actuador posee la siguiente funcin de transferencia: o Ka x1 (s) = ; v(s) s + 0,2 0,008 Ka 0,012

El problema a resolver es posicionar suavemente el ascensor en un piso determinado, lo que signica sobreimpulso nulo (para que no se pase de piso) y tiempo de estabilizacin menor que 8 s. Para no saturar al actuador (un o amplicador de potencia), la seal de control debe estar dentro del rango n de 200 volt. Disear un sistema de control robusto que cumpla las esn pecicaciones pedidas. Realizar el clculo del controlador para una entrada a v escaln. El sistema diseado debe ser del tipo m = 1. La seleccin del o n o m () | m (ei )| tiempo de muestreo es a conveniencia del dise o. Asumir: n y a () | a ()|. Solucin: El programa p8rob1.m detalla el procedimiento para disear o n el controlador robusto cuando la entrada v es un escaln. La gura 7.21 o (archivo p8rob1s.m) es el diagrama de bloques empleado en la simulacin o del sistema diseado y requiere pque reviamente se ejecute el programa de n p8rob1.m. El resultado de la simulacin se muestra en la gura 7.22 (obtenio da con el archivo p8rob1r.m). El sistema diseado cumple los requerimientos n de estabilidad y rendimiento robustos, tal como se aprecia en la gura 7.20.
% p8rob1.m SOLUCION AL PROBLEMA 7.4 clear all % PROCESO Ac = [-0.2 0 0 0;1 0 0 0;2 0 -2 0;5 0 0 -5]; Bc = [0.012;0;0;0]; Cc = [0 1 0 0]; Dc = [0]; [nump,denp]=ss2tf(Ac,Bc,Cc,Dc); bp2=nump(3); bp3=nump(4); bp4=nump(5); ap1=denp(2); ap2=denp(3); ap3=denp(4); ap4=denp(5); % p=(bp2*s^2+bp3*s+bp4)/(s^4+ap1*s^3+ap2*s^2+ap3*s); % PROCESO DISCRETO T = 0.8; % TIEMPO DE MUESTREO [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,zoh); [numz,denz]=ss2tf(G,H,C,D); az1 = denz(2); az2 = denz(3); az3=denz(4); az4=denz(5); bz1 = numz(2); bz2 = numz(3); bz3=numz(4); bz4=numz(5);

7.7 Problemas Resueltos

397

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

398
% % % % % %

Control Robusto

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

% %

% %

% %

7.8 Problemas Propuestos


subplot(121) semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),--); grid ylabel(Magnitudes en dB); title( (a)) xlabel(Frecuencia angular (rad/s)) subplot(122) semilogx(ejew,M_dB(1:pi/T)); grid ylabel(Magnitud de M en dB); title( (b)) xlabel(Frecuencia angular (rad/s)) print -f -deps p8rob1f print -s -deps p8rob1s
(a) 15 0.5 0 10 0.5 1 Magnitud de M en dB 5 Magnitudes en dB 1.5 2 2.5 3 3.5 10 4 15 0 10 Frecuencia angular (rad/s) 4.5 0 10 Frecuencia angular (rad/s) (b)

399

10

10

Figura 7.20: Condicin de estabilidad robusta (grco de la izquierda) y o a rendimiento robusto (grco de la derecha) para el problema 7.4. a

7.8.

Problemas Propuestos

Problema 7.5 El problema 3.1 describe en detalle las ecuaciones que gobiernan la dinmica a del sistema de suspensin de un bus (ver gura 3.12). Disear un sistema de o n control robusto con modelo interno para lograr el objetivo de control que se formula a continuacin. La salida del proceso y = x2 x1 (referencia nula) no o

400

Control Robusto

+ r S1

numc(z) denc(z) Controlador c(z) u_p8rob1

nump(s) denp(s) Proceso p(s)

y Mux Graph Mux y_p8rob1 Salida y

Control u

Figura 7.21: Diagrama de bloques para simular el sistema de control robusto con modelo interno del problema 7.4.
3 2.5 Posicin (m) 2 1.5 1 0.5 0 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

200 Voltaje de control 150 100 50 0 50 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Figura 7.22: Posicin del ascensor y fuerza de control (problema 7.4). o debe presentar sobreimpulsos mayores que 5 %. Luego de aproximadamente 20 segundos, las oscilaciones originadas por un disturbio escaln de 10 cm o provocada por imperfecciones en la pista, prcticamente deben desaparecer. a El parmetro incierto del proceso es la masa del bus, la que sin pasajeros es a de m1 = 2500 kg y lleno de pasajeros cambia a 3500 kg. Realizar el clculo a del controlador para una entrada v escaln. El sistema diseado debe ser del o n tipo m=1. Seleccionar un tiempo de muestreo conveniente.

7.8 Problemas Propuestos Problema 7.6

401

La gura 2.2 muestra dos tanques idnticos colocados en cascada. La seccin e o 2 de cada tanque es constante. El objetivo de control horizontal A=9 m es controlar la altura H2 empleando el ujo Qo . La deduccin del modelo o linealizado del proceso se describe en el ejemplo 2.1. Las especicaciones de diseo son: tiempo de estabilizacin menor que 15 s, sobreimpulso menor al n o 5 % y error nulo en estado estable. El ujo de entrada (la seal de control) n 3 /s. Dise ar un controlador robusto con modelo no debe sobrepasar los 3 m n interno que logre cumplir los requerimientos anteriores. Realizar el clculo a del controlador para una entrada v escaln. El sistema diseado debe ser o n del tipo m = 1. La seleccin del tiempo de muestreo es a conveniencia del o diseo. n Problema 7.7 El proceso electromecnico mostrado en la gura 3.26 se describe en el proa blema 3.8. Disear 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. Realizar el clculo del controlador a para una entrada v escaln. El sistema diseado debe ser del tipo m=1 y la o n seleccin del tiempo de muestreo es a conveniencia del diseo. La salida cono n trolada no debe presentar sobreimpulso ni error estacionario. El parmetro a incierto es la inercia J de la carga que puede variar en 12 %. Problema 7.8 El problema 3.3 describe el proceso de la bola rodando a lo largo de una barra con un grado de libertad, tal como se muestra en la gura 3.16. Una leva conecta la barra con un engranaje que est accionado por un servomotor. a Disear un sistema de control robusto que pueda posicionar la bola a 0.5 m n de un extremo de la barra de 1 m de longitud. Evidentemente, la oscilacin o de la bola debe estar restringida sobre la barra. El voltaje de control no debe sobrepasar los 40 voltios y la masa de la bola puede variar en 15 %. Realizar el clculo del controlador para una entrada v escaln. El sistema a o diseado debe ser del tipo m = 1 y la seleccin del tiempo de muestreo es a n o conveniencia del diseo. n

402 Problema 7.9

Control Robusto

Las ecuaciones del modelo linealizado para controlar la posicin del caon o n montado en la torreta de un tanque (ver gura 3.28) empleando un actuador hidrulico se detallan en el problema 3.9. a (a) Disear un sistema de control robusto con modelo interno para conn trolar el angulo de elevacin con las especicaciones siguientes: tiem o po de estabilizacin menor que 8 s, m o nimo sobreimpulso y error en estado estacionario nulo. Los disturbios tipo escaln pueden actuar o simultneamente o no y pueden ser positivos o negativos. Para cada a caso, el sistema de control dise ado debe ser capaz de minimizar sus n efectos. Realizar el clculo del controlador para una entrada v escaln. a o El sistema diseado debe ser del tipo m = 1 y la seleccin del tiempo n o de muestreo es a conveniencia del diseo. Considerar que todos los n parmetros poseen incertidumbre de 5 %. a (b) Lo mismo que (a), pero en este caso para controlar el ngulo azimutal. a Problema 7.10 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la seccin 3.3, en donde la carga no lineal posee ahora dos grados de libertad o con Lo = 2L1 /3. La unin de la carga con el eje del servomotor no es exible. o Las ecuaciones que describen la dinmica del sistema fueron requeridas en a el problema 3.12. Disear un sistema de control robusto con modelo interno n para controlar simultneamente las posiciones y con m a nimo tiempo de estabilizacin y m o nimo sobreimpulso. Considerar (a su criterio) variaciones en la carga adicional Mo . Realizar el clculo del controlador para una entrada a v escaln. El sistema diseado debe ser del tipo m = 1 y la seleccin del o n o tiempo de muestreo es a conveniencia del dise o. Considerar dos casos: (a) n cuando la inductancia de armadura es despreciable, y (b) cuando no lo es. Problema 7.11 La gura 3.32 muestra el proceso pndulo doble no lineal que es una exe tensin del pndulo simple descrito en la seccin 3.1. El acoplamiento entre o e o los dos pndulos de igual longitud no es exible. Las ecuaciones que dese criben la dinmica del sistema son materia del problema propuesto 3.13. a Disear un sistema de control robusto con modelo interno para controlar n

7.8 Problemas Propuestos

403

simultneamente las posiciones y con m a nimo tiempo de estabilizacin o y m nimo sobreimpulso, de modo tal que el pndulo doble permanezca en e posicin vertical. Considerar que la carga adicional esfrica de 0.02 kg var o e a en 6 %. Realizar el clculo del controlador para una entrada v escaln. a o El sistema diseado debe ser del tipo m = 1 y la seleccin del tiempo de n o muestreo es a conveniencia del diseo. n Problema 7.12 La gura 3.33 muestra el proceso doble gra-puente no lineal que es una exu tensin del proceso gra-puente descrito en la seccin 3.2. El acoplamiento o u o entre los dos pndulos de igual longitud no es exible. Las ecuaciones que e describen la dinmica del sistema son materia del problema propuesto 3.14. a Disear un sistema de control robusto con modelo interno para controlar n simultneamente las posiciones y con m a nimo tiempo de estabilizacin y o m nimo sobreimpulso, de modo tal que la doble gra puente permanezca en u posicin vertical cuando el carro realiza un recorrido predeterminado. Cono siderar que la carga adicional esfrica de 0.02 kg var en 6 %. Realizar el e a clculo del controlador para una entrada v escaln. El sistema diseado debe a o n ser del tipo m = 1 y la seleccin del tiempo de muestreo es a conveniencia o del diseo. n Problema 7.13 La gura 1.1 muestra un carro de masa m = 1000 kg desplazndose con una a velocidad v gracias a la accin de la fuerza u producida por su motor. Si se o desprecia la inercia de las ruedas y se asume que la fuerza de friccin bv, o donde b= 50 N-s/m es el coeciente de friccin, es lo unico que se opone o al movimiento del carro, entonces la dinmica del proceso puede modelarse a como (ver ejemplo 1.16): mv(t) + bv(t) = u(t); v= dv dt

Disear un sistema de control robusto con modelo interno para controlar la n velocidad del mvil con m o nimo tiempo de estabilizacin y m o nimo sobreimpulso. Considerar una incertidumbre de 5 % en todos los parmetros. a Realizar el clculo del controlador para una entrada v escaln. El sistema a o diseado debe ser del tipo m = 1 y la seleccin del tiempo de muestreo es a n o conveniencia del diseo. n

404 Problema 7.14

Control Robusto

El motor D.C. es un actuador muy popular en los sistemas de control porque su movimiento rotatorio, mediante acoples adecuados a su eje, puede convertirse fcilmente en movimiento de traslacin. Eso se aprecia en fajas transa o portadoras o en brazos manipuladores. La gura 4.3 muestra el circuito de armadura del motor y el diagrama de cuerpo libre de su rotor. Las ecuaciones que gobiernan el comportamiento dinmico del motor fueron derivadas en a el ejemplo 4.1. (a) Disear un sistema de control robusto con modelo interno para estan bilizar la velocidad angular del eje del motor con las especicaciones siguientes: tiempo de estabilizacin menor que 4 s, error en estado eso table menor al 1 % y sobreimpulso de la salida menor al 5 %. Considere variaciones de 7 % en los parmetros b y J. Realizar el clculo del a a controlador para una entrada v escaln. El sistema diseado debe ser o n del tipo m = 1 y la seleccin del tiempo de muestreo es a conveniencia o del diseo. n (b) Disear un sistema de control robusto con las especicaciones anterion res, pero en este caso para estabilizar la posicin del eje del motor. o Problema 7.15 Repetir los problemas 7.1 al 7.14 cuando la entrada v toma las formas: v(s) = 1 ; s + 1 v(z) = z/ ; z eT //tau = 100T

donde T es el tiempo de muestreo. Problema 7.16 Repetir los problemas 7.1 al 7.14 cuando la entrada v toma las formas: v(s) = 1 ; s2 v(z) = Tz (z 1)2

y el tipo del sistema es m=2. Tomar como seal de referencia una rampa de n pendiente unitaria.

Cap tulo 8

Control No Lineal
Luego de formulado el problema de control a resolver, el siguiente paso es encontrar un modelo que sea capaz de capturar la dinmica del proceso a en el rango de operacin. En realidad todos los procesos son no lineales y o muchas veces resulta ms conveniente trabajar directamente con el modelo no a lineal. As podemos disear sistemas de control no lineal empleando diversas n tcnicas tales como [13]: el mtodo directo de Liapunov, control deslizante, e e control adaptivo (cap tulo 5) y linealizacin de la realimentacin (materia de o o este cap tulo). La idea fundamental del control de procesos no lineales empleando la tcnica e de linealizacin por realimentacin, es linealizar (hallar un modelo lineal equio o valente) el proceso (parcial o totalmente, si fuera posible) mediante un cambio adecuado de coordenadas y una realimentacin del vector de estado de dicho o proceso, de modo tal que el proceso resultante (su forma normal) nos permita aplicar tcnicas de control lineal (en el caso de linealizacin completa del proe o ceso), o bien, atacar los problemas de control con un grado de dicultad menor (en el caso de linealizacin parcial). o El procedimiento de diseo sugerido se aplica al control no lineal de posicin n o de un servomotor D.C., sujeto a la accin de una carga no lineal y al efecto que o producen algunas no linealidades inherentes al proceso, tales como saturacin o del amplicador y friccin de Coulomb. o La penltima seccin, problemas resueltos, est dedicada al diseo de sisu o a n temas de control no lineal para diferentes procesos. En la ultima seccin se pro o ponen proplemas de diseo. Todos los archivos correspondientes a los ejercicios, n problemas, diseos, simulaciones y software desarrollados se pueden descargar n del sitio: http://ee.uni.edu.pe/728681F.

406

Control No Lineal

8.1.

Herramientas Matemticas a

Las herramientas matemticas a discutir corresponden a la geometr a a diferencial y a la topolog Slo se tratan los puntos directamente involua. o crados con la tcnica de linealizacin por realimentacin. Por esta razn es e o o o que esas matemticas no se incluyeron como parte del cap a tulo 1. La notacin: o f : Rn Rn (8.1) indica que a cada funcin vectorial f le corresponde un campo vectorial en el o e espacio n-dimensional Rn . Los campos vectoriales de inters para nosotros son los denominados suaves. Un campo vectorial f (x) es suave cuando tal funcin vectorial posee innitas derivadas parciales continuas. o Si h(x) es una funcin escalar de variable vectorial suave, donde x es el o vector de estado, entonces su gradiente es: h = h = x
h x1

. . .

h xn

(8.2)

El jacobiano de f (x) tiene la forma: f = f = x

f1 x1

. . .

f1 xn

(8.3)

. . .

fn x1

fn xn

8.1.1.

Derivadas y Corchetes de Lie

Denicin 8.1 Dada una funcin escalar suave h(x) : Rn R y un campo o o vectorial suave f (x) : Rn Rn , nosotros podemos denir una nueva funcin escalar Lf h = h f denominada la derivada de Lie, o simplemente la o derivada direccional de h a lo largo de la direccin del vector f . o Sucesivas derivadas de Lie pueden ser denidas recursivamente: L0 h = h f 0 = h f Li h = Lf (Lf i1 h) = (Li1 h) f , f f i = 1, 2, . . . (8.4) Del mismo modo, si g es otro campo vectorial, la funcin escalar Lg Lf h(x) o es: Lg Lf h(x) = (Lf h) g (8.5)

8.1 Herramientas Matemticas a Ejemplo 8.1

407

Determinar las dos primeras derivadas de Lie de la salida y para el proceso siguiente: x = f (x), y = h(x) Solucin: Las derivadas de la salida son: o y= h x = Lx h = Lf h x [Lf h] x = L2 h f x

y=

Denicin 8.2 Sean f y g dos campos vectoriales en Rn . El corchete de o Lie de f y g se dene como un tercer campo vectorial de la forma: [f , g] = g f f g = adf g Observar que al corchete de Lie se le denota tambin como adf g, donde e ad signica adjunta. Sucesivos corchetes de Lie se pueden denir recursivamente: adf 0 g = g adf i g = [f , adf i1 g], Ejemplo 8.2 Determinar [f , g] para el proceso no lineal x = f (x) + gu, donde: f= Solucin: o [f , g] = = 0 0 2sin(2x1 ) 0 2x1 + ax2 + senx1 x2 cosx1 0 cos(2x1 ) 2x1 + ax2 + senx1 x2 cosx1 ; g= 0 cos(2x1 ) i = 1, 2, . . .

a 2 + cosx1 x2 sinx1 cosx1

acos(2x1 ) cosx1 cos(2x1 ) 2sen(2x1 )(2x1 + ax2 + senx1 )

408

Control No Lineal

Lema 8.1 Los corchetes de Lie satisfacen las propiedades siguientes: 1. Bilinealidad: [1 f1 + 2 f2 , g] = 1 [f1 , g] + 2 [f2 , g] [f , 1 g1 + 2 g2 ] = 1 [f , g1 ] + 2 [f , g2 ] 2. Anticonmutatividad: [f , g] = [g, f ] 3. Identidad de Jacobi: Ladf g h = Lf Lg h Lg Lf h donde f , f1 , f2 , g, g1 y g2 son campos vectoriales, 1 y 2 son constantes escalares y h(x) es una funcin diferenciable. o

8.1.2.

Difeomorsmo y Transformacin de Estados o

El concepto de difeomorsmo, que puede ser visto como una generalizacin del concepto familiar de transformacin de coordenadas, es el sio o guiente: o Denicin 8.3 Una funcin : Rn Rn denida en una regin , se deo o nomina un difeomorsmo si y su inversa son suaves. Si = Rn , entonces (x) es un difeomorsmo global. Si (x) se dene en una regin nita y o para un punto dado, entonces el difeomorsmo es local. El siguiente lema permite determinar difeomorsmos locales. Lema 8.2 Sea (x) una funcin suave denida en una regin en Rn . o o Si el jacobiano es no singular en un punto x = x de , entonces () x dene un difeomorsmo local en una regin de . o Ejemplo 8.3 Determinar el difeomorsmo local alrededor del origen para el sistema siguiente: z1 2x1 + 5x1 x2 2 = (x) = z2 3senx2

8.1 Herramientas Matemticas a Solucin: El jacobiano de para x = (0, 0) es: o = x 2 + 5x2 10x1 x2 2 0 3cosx2 =
x=(0,0)

409

2 0 0 3

que posee rango 2, indicndonos que posee inversa porque es no singular a y constituye un difeomorsmo local de acuerdo al lema 8.2.

8.1.3.

Transformacin no Lineal de Estados o

Un difeomorsmo puede ser usado para transformar una representacin o no lineal en otra, en trminos de un nuevo vector de estado. Consideremos e que el proceso no lineal sea descrito por la siguiente representacin en el o espacio de estado:
m

x = f (x(t)) +
j=1

gj (x(t))uj (t);

y(t) = h(x(t))

(8.6)

donde u(t) = [u1 (t), . . . , um (t)]T es el vector de control (la variable manipulada) del proceso de orden m, x(t) = [x1 (t), . . . , xn (t)]T es el vector de estado del proceso de orden n, y(t) = [y1 (t), . . . , yp (t)]T es el vector de salida del proceso (la variable controlada) de orden p y las funciones f = [f1 , . . . , fn ]T ], g = [g1 , . . . , gm ]T ] y h = [h1 , . . . , hp ]T corresponden a campos vectoriales innitamente diferenciables. Asumamos la siguiente transformacin no lineal de estados: o 1 (x1 , . . . , xn ) . . (8.7) z = (x) = . n (x1 , . . . , xn ) donde la funcin de transformacin es invertible y tanto como su inversa o o o 1 son innitamente diferenciables. Notar que la transformacin dada en la ecuacin (8.7) es un difeomorsmo. Mientras que la propiedad de inversin o o de permite un retorno a los estados originales, la propiedad de diferenciacin garantiza que la descripcin del proceso con las nuevas coordenadas o o sea tambin innitamente diferenciable, tal como lo es el proceso original. e Empleando la transformacin z = (x) en la ecuacin (8.6) obtenemos: o o z = = x x x(t)
x(t)

f (x(t)) +
x(t)

gj (x(t))uj (t)
x(t) j=1

(8.8)

410

Control No Lineal

donde x es un punto de equilibrio para el cual la matriz jacobiana es no singular, lo que signica que su inversa existe. Luego, podemos obtener la siguiente representacin no lineal para el vector de estado z, como sigue: o
m

z = (z(t)) + f
j=1

gj (z(t))uj (t);

y(t) = h(z(t))

(8.9)

(z) = f gj (z) =

f (1 (z)) x gj (1 (z)) x

h(z) = h(1 (z)) Observar que (8.9) constituye un nuevo sistema no lineal con un vector de estado z.

8.1.4.

El Teorema de Frobenius

El teorema de Frobenius es una herramienta importante para el tratamiento formal de la linealizacin por realimentacin de procesos de orden n. Este o o teorema proporciona las condiciones necesarias y sucientes para resolver una clase especial de ecuaciones con derivadas parciales. Antes de presentar el teorema en cuestin se requiere de las siguientes deniciones: o Denicin 8.4 Se dice que un conjunto linealmente independiente de camo o pos vectoriales [f1 , . . . , fm ] en Rn es completamente integrable, si y slo si existen (n m) funciones escalares h1 (x), h2 (x), . . . , hnm (x) que satisfacen el siguiente sistema de ecuaciones diferenciales parciales: hi fj = 0 donde 1 i n m, 1 j m. En adicin, los gradientes hi son o tambin linealmente independientes. e La denicin anterior implica la existencia de n(m n) ecuaciones difereno ciales parciales de la forma hi fj = 0. Denicin 8.5 Se dice que un conjunto linealmente independiente de camo o pos vectoriales [f1 , . . . , fm ] en Rn es involutivo, si y slo si existen funciones escalares ijk : Rn Rn tales que:
m

[g f f g](x) = [f , g](x) =
k=1

ijk (x)fk (x),

i, j

8.1 Herramientas Matemticas a

411

Ya vimos que la notacin [f , g] es conocida como el corchete de Lie. Partiendo o de la denicin anterior se puede deducir que: o 1. Los campos vectoriales constantes, es decir, si fk y gk son constantes para cualquier k = 1, . . . , m, son siempre involutivos puesto que:
m

[f , g](x) = 0 =
k=1

ijk (x)fk (x),

x, i, j

2. 3.

Un conjunto compuesto por un solo campo vectorial f es involutivo porque [f , f ] = 0. Si un conjunto de campos vectoriales [f1 , . . . , fm ] es involutivo, implica que para todo i, j: rango [f1 (x), . . . , fm (x)] = rango [f1 (x), . . . , fm (x), [fi , fj ]]

Ahora s podemos formular el teorema de Frobenius: Teorema 8.1 (Frobenius) Sea [f1 , f2 , . . . , fm ] un conjunto de campos vectoriales linealmente independientes. Se dice que tal conjunto es integrable si y slo si es involutivo. o Ejemplo 8.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 ; f2 = [x1 (x2 3x2 ) 3 2x3 ]T

Determine si tal conjunto de ecuaciones diferenciales parciales es solucionable (o en otras palabras, si [f1 , f2 ] es completamente integrable). Solucin: Operando, encontramos que: o [f1 , f2 ] = [12x3 3 0]T

Dado que [f1 , f2 ] = 3f1 + 0f2 , este conjunto de campos vectoriales es involutivo. Por consiguiente, las ecuaciones diferenciales parciales dadas son solucionables.

412

Control No Lineal

8.2.

Grado Relativo

Dado el siguiente proceso no lineal de una entrada y una salida: x = f (x) + g(x)u; y = h(x) (8.10)

se desea obtener una relacin 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, entonces se obtiene la relacin deseada entre y y u; en caso contrario, debemos seguir derivando la salida remanente y = Lf h(x) como se muestra a continuacin: 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, si Lg Lf h(x) = 0, entonces se tiene la relacin deseada. En caso o contrario, se debe seguir derivando la salida hasta que en la r-sima derivada e la entrada u aparezca en forma expl cita, como sigue: y r = Lr h(x) + Lg Lr1 h(x)u; f f Lg Lr1 h(x) = 0 f

Denicin 8.6 El grado relativo del proceso univariable no lineal dado en o la ecuacin (8.10), es el nmero de veces r que hay que derivar la salida o u hasta obtener: Lg Li h(x) = 0, i = 1, 2, . . . , r 2 (8.11) f Lg Lr1 h(x) = 0 f para todo x que pertenezca a una regin de Rn . o (8.12)

8.3 Forma Normal de Procesos No lineales

413

8.3.

Forma Normal de Procesos No lineales

La tcnica de linealizacin por realimentacin requiere de una repree o o sentacin no lineal bastante util del proceso a controlar: la forma normal. o La transformacin no lineal de coordenadas que permite llevar un proceso o no lineal de una entrada y una salida (ecuacin (8.10)) a su forma normal, o r1 involucra los trminos h(x), Lf h(x), . . . , Lf h(x), tal como veremos ms e a adelante. Por consiguiente, tal transformacin depende del grado relativo o r del proceso. Empezaremos por el caso ms simple: r = n, donde n es el a orden del proceso. La siguiente transformacin de coordenadas: o h(x) 1 (x) 2 (x) Lf h(x) z = (x) = y = h(x) (8.13) = ; . . . . . . n1 n (x) Lf h(x) o con x = [x1 , x2 , , xn ]T , cumple con las condiciones de una transformacin no lineal; es decir, es un difeomorsmo basado en la hiptesis de que el orden o del sistema es r = n. Por consiguiente, dicha transformacin puede llevar al o proceso descrito en la ecuacin (8.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)

zn1

= z2 . . . n1 (x) x = x n2 Lf h(x) [f (x) + g(x)u] = x n1 n2 n1 = Lf h(x) + Lg Lf h(x)u = Lf h(x) = n (x) = zn

n1 zn = Ln h(x) + Lg Lf h(x)u f

n1 = Ln h(1 (z)) + Lg Lf h(1 (z))u = b(z) + a(z)u f

y = z1

(8.14)

414

Control No Lineal

Notar que en la ecuacin anterior, a(z) = 0 por denicin, ya que en este o o caso r = n. Cuando el proceso no lineal posee rango r < n, entonces el cambio de coordenadas desarrollado anteriormente conduce a una transformacin parcial, o en vista de que slo se pueden denir r funciones de la forma 1 (x), . . . , r (x) o linealmente independientes. Sin embargo, es posible agregar n r funciones de la forma r+1 (x), r+2 (x), . . . , n (x), de modo tal que (x) sea un difeomorsmo. Con ello, la forma normal del proceso (8.10) resulta en la siguiente representacin en el espacio de estado: o z 1 = z2 z 2 = z3 . . . zr1 = zr zr = Lr h(1 (z)) + Lg Lr1 h(1 (z))u = b(z) + a(z)u f f zr+1 = w1 (z) . . . zn = wnr (z) y = z1 (8.15)

donde w1 , w2 , . . . , wnr son funciones suaves que dependen del nuevo estado z y no de la entrada manipulada u.

8.4.

Linealizacin Exacta y la Ley de Control o

La linealizacin exacta se reere a tratar con procesos no lineales de o grado r = n. En tales procesos es posible determinar una adecuada realimentacin no lineal que conduzca a una linealizacin exacta del proceso o o original. El proceso puede ser univariable (con una entrada y una salida) o multivariable (con mltiples entradas y mltiples salidas). Nosotros slo nos u u o ocuparemos del caso univariable. Hemos visto que un cambio de coordenadas de la forma z = (x), descrito en la ecuacin (8.13) y aplicado al proceso no lineal de la ecuacin o o (8.10), produce un conjunto de nuevas coordenadas (la nueva representacin o en el espacio de estado) que poseen la forma dada en (8.14), ecuacin que o

8.4 Linealizacin Exacta y la Ley de Control o volvemos a reescribir a continuacin: o z1 = z2 z 2 = z3 . . . zn1 = zn


n1 zn = Ln h(1 (z)) + Lg Lf h(1 (z))u = b(z) + a(z)u f

415

y = z1

(8.16)

Si se dene una seal de realimentacin u (la ley de control no lineal) de la n o forma: 1 u= [b(z) + v] (8.17) a(z) donde v es una nueva entrada, entonces el nuevo conjunto de ecuaciones viene a ser: z 1 = z2 z 2 = z3 . . . zv = v y = z1 (8.18)

que en forma compacta resulta en la siguiente representacin lineal en el o espacio de estado: z = Ax + Bv; y = Cx (8.19) donde: A= ... 0 0 0 ... 0 . . ; B = . . . . . . . 0 ... 1 ... 0 1 ; C = 1 0 ... 0 0 (8.20)

0 1 0 0 0 1 . . . . . . . . . 0 0 0 0 0 0

Observar que la nueva entrada del proceso lineal es v. La gura 8.1 muestra el proceso de linealizacin descrito hasta ahora. El proceso lineal de la o ecuacin (8.19) es completamente controlable y completamente observable, o

416

Control No Lineal

ya que sus matrices de controlabilidad [B AB . . . An1 B] y de observabilidad [C T AT C T . . . (AT )n1 C T ] poseen rango n (rango completo). Por otra parte, el proceso resultante es un integrador de orden n debido a que su funcin de transferencia resulta: o 1 y(s) = C[sI A]1 B = n (8.21) v(s) s

  u - - +   6 6 b(.) a(.) 1 a(.) 

x = f (x) + g(x)u


z = (x)  y
-

? - C

Figura 8.1: Linealizacin por realimentacin. o o

Respecto al proceso de linealizacin desarrollado, debemos remarcar lo o siguiente: El sistema de lazo cerrado resultante (gura 8.1) es lineal, completamente controlable y completamente observable. Por consiguiente, el problema de control a resolver, ya sea de regulacin o de seguimiento o de trayectorias, queda resuelto diseando v con cualquier tcnica de n e control lineal conocida. En general, la realimentacin no lineal requiere de todo el vector de o estado z, por lo que es necesario que todos sus elementos sean medibles. De lo contrario, estamos obligados a estimarlos empleando un observador no lineal, como veremos ms adelante. a Condiciones para Linealizacin Exacta o La linealizacin desarrollada anteriormente fue posible debido a la exiso tencia de una funcin de salida h(x) respecto a la cual el proceso no lineal o

8.4 Linealizacin Exacta y la Ley de Control o

417

original tiene grado relativo r = n. Resaltemos que un proceso no lineal univariable como el de la ecuacin (8.10) posee grado r = n cuando la funcin o o h(x), para un entorno alrededor del punto de operacin x, satisface: o
n2 Lg h(x) = Lg Lf h(x) = = Lg Lf h(x) = 0 n1 x Lg Lf h() = 0

(8.22)

Las condiciones para linealizacin exacta pueden ahora ser rigurosamente o formalizadas. Teorema 8.2 El proceso univariable no lineal de la ecuacin (8.10): o x = f (x) + g(x)u donde f (x) y g(x) son campos vectoriales suaves, es linealizable si y slo si o existe una regin en donde se cumplen las condiciones siguientes: o 1. Los campos vectoriales:
n1 [g, adf g, . . . , adf g]

son linealmente independientes en , lo que equivale a decir, que el rango de la matriz resultante [.] debe ser igual al orden n del proceso. 2. El conjunto:
n2 [g, adf g, . . . , adf g]

es involutivo en . La primera condicin puede ser interpretada como una condicin de cono o n1 trolabilidad dado que los campos vectoriales [g, adf g, . . . , adf g] aplicados a procesos lineales se convierten en la conocida matriz de controlabilidad [B, AB, . . . , An1 B]. El rango de esta matriz debe ser n para que el proceso lineal (entendindose que el modelo del proceso es lineal) sea completamente e controlable (subseccin 2.3.6). Sin embargo, puede ocurrir que un sistema o no lineal sea controlable, mientras que su modelo linealizado no lo es. Por ello, la primera condicin puede considerarse como una generalizacin de la o o condicin de controlabilidad. o La condicin involutiva es menos intuitiva. Para sistemas lineales, tal o condicin se satisface trivialmente ya que los campos vectoriales son conso tantes. Pero, en general, no se puede decir lo mismo cuando se trata con procesos no lineales.

418

Control No Lineal

8.5.

Observadores No Lineales

El estudio de la observabilidad en sistemas lineales tiene su base en la matriz de observabilidad, que para sistemas univariables no forzados de la forma: x = Ax(t); y(t) = Cx(t) se dene como: N = C CA . . . CAn1 El caso no lineal y no forzado que nos ocupa posee la descripcin: o x = f (x); y(t) = h(x) (8.24) (8.23)

cuya correspondiente matriz de observabilidad generalizada es: h(x) Lf h(x) O(x) . . x .


n1 Lf h(x)

(8.25)

Es fcil demostrar que si f (x) = Ax y h(x) = Cx, las matrices de a observabilidad de las ecuaciones (8.23) y (8.25) se igualan. Supongamos que la matriz O(x) posea inversa para todo x. En tal caso, la transformacin o denida por: h(x) Lf h(x) z = (x) = (8.26) . . x .
n1 Lf h(x)

representa un cambio de coordenadas. Empleando los resultados anteriores y en analog con la ecuacin (8.16); la descripcin en el espacio de estado a o o para las nuevas coordenadas (notar que g = 0) es: z2 z1 z2 z3 . . . (8.27) y = z1 ; . = . . zn1 zn zn Ln h[1 (z)] f

8.5 Observadores No Lineales que posee la forma matricial siguiente: z = Az + BLn h(1 (z)); f donde: A= 0 1 0 0 0 1 . . . . . . . . . 0 0 0 0 0 0 ... 0 0 0 ... 0 . . ; B = . . . . . . . 0 ... 1 ... 0 1 ; C = 1 0 ... 0 0 y = Cz

419

(8.28)

(8.29)

Se puede demostrar que la matriz de observabilidad del proceso descrito en la ecuacin (8.28) es la matriz identidad. Por consiguiente, tal proceso es o completamente controlable. Conforme a las relaciones (8.24), (8.25) y (8.26) se tiene que: x = O(x)f (x) z = x = Az + BLn h(1 (z)) f y = Cz (8.30) El observador a disear debe estimar el vector de estado z; es decir, debe n determinar su estimado empleando las mediciones a la entrada y a la saliz da del proceso. Haciendo una extensin de los bien conocidos observadores o lineales (subseccin 2.3.6), para el observador no lineal podemos considerar o la dinmica siguiente : a d z = A + BLn h(1 (z)) + L[y C]; z z y = C x (8.31) f dt donde observamos que el trmino L[y C] es proporcional al error entre la e z salida del proceso y y la salida del observador y . Para obtener la expresin o del observador para los estados x(t) del proceso no lineal, empleamos la versin estimada de la ecuacin (8.30) que nos permite despejar el vector de o o estado estimado d/dt como sigue: x d z d x = O1 () x dt dt y usando la relacin (8.31) obtenemos: o d x dt = O1 (){A + BLn h(1 (z)) + L[y C]} x z z f x x x z = O1 (){O()f () + L[y C]} = f () + O1 ()L[y h()] x x x (8.32)

420

Control No Lineal

que es la ecuacin del observador no lineal para el sistema no forzado o x = f (x), y = h(x), con condicin inicial x(0), siempre que O1 (x) exista. o Notar que tambin 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, y teniendo en cuenta la transformacin acostumbrada z = (x), entonces el o sistema con las nuevas coordenadas resulta:
n1 z = Az + B[Ln h(1 (z)) + Lg Lf h(1 (z))u] f

(8.33)

Luego, por extensin (ver ecuacin (8.31)), la dinmica del observador para o o a el sistema forzado: x = f (x) + g(x)u; tiene la forma: d z n1 = A + BLn h(1 ()) + Lg Lf h(1 ())u + L[y C] z z z z f dt (8.34) y = h(x)

que debe cumplir con los requerimientos siguientes: que el proceso posea grado relativo r = n, que su matriz de observabilidad sea invertible y que la entrada u sea uniformemente acotada. La ecuacin del observador para el o sistema original toma la forma siguiente: d x x = f () + g()u + O1 L[y(t) h()] x x dt para una condicin inicial x(0). o Clculo de la Matriz de Ganancia L del Observador a Dado que el par [A, C] dado en (8.29) es completamente observable, una forma de obtener L es aplicar la conocida frmula del observador lineal [3]: o n an . . L = (W N T )1 (8.36) . 1 a1 donde n es el orden del proceso, y: N= CT AT C T (AT )n1 C T (8.35)

8.6 Procedimiento de Dise o n W = an1 an2 an2 an3 . . . . . . 1 a1 1 0 a1 1 1 0 . . . . . . 0 0 0 0

421

o Los parmetros ai , i = 1, . . . , n, se obtienen de la ecuacin: a |sI A| = sn + a1 sn1 + + an1 s + an mientras que los parmetros i , i = 1, . . . , n, se determinan a partir de las a ces conforman la ra ces deseadas del observador i , i = 1, . . . , n. Estas ra ecuacin caracter o stica del observador: (s 1 ) (s 1 ) = sn + 1 sn1 + + n1 s + n y deben tener parte real negativa para garantizar la estabilidad del observador no lineal.

8.6.

Procedimiento de Diseo n

El procedimiento para disear el sistema de control no lineal basado en n la tcnica de linealizacin por realimentacin es como sigue: e o o 1) Formular el problema (denir especicaciones de diseo). n 2) Determinar el modelo no lineal continuo del proceso. 3) Determinar el grado relativo del modelo no lineal continuo del proceso (subseccin 8.2). o 4) Comprobar que se cumplen las condiciones de linealizacin exacta del o modelo no lineal continuo del proceso (subseccin 8.4). o 5) Determinar la forma normal del proceso no lineal (subseccin 8.3). o 6) Implementar la linealizacin por realimentacin de estado y la ley de o o control no lineal (subseccin 8.4). o 7) Disear el observador no lineal de estados (si fuera necesario). n 8) Simular el sistema de control no lineal con el propsito de predecir un o rendimiento satisfactorio.

422 9) Implementar el hardware. 10) Implementar el software de control.

Control No Lineal

11) Realizar pruebas de funcionamiento (resultados experimentales).

8.7.
8.7.1.

Control No Lineal de un Servosistema


Formulacin del Problema o

El servomotor D.C. con carga no lineal mostrado en la gura 3.9 y descrito en la seccin 3.3, es un proceso de una entrada y una salida. Este o servomotor posee un engranaje reductor de velocidad y puede ser controlado por el voltaje de armadura. La carga no lineal es una varilla metlica a acoplada perpendicularmente al eje del servomotor, a manera de un brazo robtico de un grado de libertad. En el extremo libre de dicha varilla se o pueden acoplar cargas adicionales. De esta manera la carga no lineal se hace variable. El objetivo de control es disear e implementar un sistema de control n no lineal basado en la tcnica de linealizacin por realimentacin, 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. El sobreimpulso de la respuesta debe ser m nimo no obstante la presencia de la carga no lineal y de las no linealidades del proceso, como las fricciones esttica y de Coulomb, y la saturacin en el a o amplicador de potencia. Las derivaciones que siguen a continuacin corresponden a dos casos del o proceso: 1. Modelo no lineal de tercer orden del proceso cuando consideramos que la inductancia de armadura L es no despreciable. 2. Modelo no lineal de segundo orden del proceso cuando se desprecia la inductancia L.

8.7.2.

Modelo del Proceso

Modelo No Lineal de Tercer Orden (L = 0) La gura 3.9 presenta la estructura del proceso no lineal a controlar. La tabla 3.2 describe las variables y los valores de los parmetros. Asumiendo a que la seal de control u va a ser compensada en software de los efectos de la n

8.7 Control No Lineal de un Servosistema

423

friccin esttica y friccin de Coulomb, entonces el proceso no lineal puede o a o ser descrito mediante la siguiente representacin 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 ;
Kact L

y = h(x)

(8.37)

(8.38)

o Los elementos del vector de estado [x1 x2 x3 ]T son la posicin angular, la velocidad angular y la corriente de armadura, respectivamente, y Kact u es la tensin de armadura. Notar que el modelo del proceso no lineal es continuo o y diferenciable. El trmino no lineal TN debido a las fricciones esttica 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. Modelo No Lineal de Segundo Orden (L = 0) El modelo no lineal de segundo orden del proceso es (subseccin 3.3): o x =
2 BR+nRKE x2 M

TN M

x2

N M senx1

nKact K MR u

= f (x) + g(x)u (8.39)

y = h(x) = x1 donde: f (x) =


2 BR+nRKE x2 M

x2 TN M

N M senx1

g(x) =

0
nKact K MR

Al igual que en el caso anterior (L no despreciable), el trmino no lineal e a TN debido a las fricciones esttica y de Coulomb, puede no ser tomado en cuenta, dado que su efecto va a ser compensado por software.

424

Control No Lineal

8.7.3.

Determinacin del Grado Relativo o

Grado Relativo del Proceso No Lineal de Tercer Orden De acuerdo a lo establecido en la subseccin 8.2, 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.40) (8.41)

N B nK senx1 x2 + x3 (8.42) M M M nK =0 (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 cuestin es completamente linealizable. o Grado Relativo del Proceso No Lineal de Segundo Orden De acuerdo a lo establecido en la subseccin 8.2, 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.44) (8.45)

Por consiguiente, el rango del proceso respecto a la salida y es r = 2. Ello implica que el proceso en cuestin es completamente linealizable. o

8.7.4.

Comprobar Linealizacin Exacta o

Linealizacin Exacta del Modelo Lineal de Tercer Orden o Para aplicar las condiciones de linealizacin establecidas en el teorema o 8.2, debemos calcular: adf g = [f , 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 , adf g] = (adf g) f f adf g f

8.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

n2 K 2 M 3 L3 entonces tal conjunto est conformado por campos vectoriales linealmente a independientes. Por otra parte, el conjunto: det[g adf g ad2 g] = f [g adf g]

es involutivo porque es constante. Linealizacin Exacta del Modelo Lineal de Segundo Orden o Como en el caso anterior, para aplicar las condiciones de linealizacin o establecidas en el teorema 8.2, debemos calcular: adf g = [f , g] = g f f g Es fcil demostrar que: a det[g adf g] = nKact K MR
2

lo que signica que tal conjunto est conformado por campos vectoriales a linealmente independientes. Por otra parte, el conjunto [g adf g] es involutivo porque es constante.

8.7.5.

La Forma Normal

Forma Normal del Modelo No Lineal de Tercer Orden La forma normal del proceso en estudio puede ser obtenida mediante la transformacin no lineal z = (x) del estado x, 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.46)

426

Control No Lineal

Notar en la ultima ecuacin que el nuevo estado z posee signicado f o sico, o puesto que z1 es la posicin del eje del servomotor, z2 es su velocidad angular y z3 su aceleracin. El estado original x expresado en funcin 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 subseccin 8.3, 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.47) (8.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, 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, sin considerar el trmie o no no lineal TN es (ver ecuacin 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.50)

que de hecho ya se encuentra en su forma normal.

8.7 Control No Lineal de un Servosistema

427

8.7.6.

La ley de Control No Lineal

Ley de Control No Lineal para el Modelo de Tercer Orden


La forma normal para linealizacin exacta del proceso est dada en la o a ecuacin (8.49). Reemplazamos en dicha ecuacin 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.51)

donde v es una entrada equivalente, obtenemos: z 1 = z2 z2 = z3 z3 = v y = z1 o lo que es equivalente: z = Az + Bv; donde: 0 1 0 A = 0 0 1 ; 0 0 0 y = Cz (8.52)

0 B = 0 ;C = 1

1 0 0

La funcin 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.53) dt El proceso de linealizacin desarrollado se ilustra en la gura 8.2. o Ahora se debe disear v de modo tal que y = z1 siga una trayectoria n deseada r(t). El siguiente control logra tal objetivo: v= d2 (r y) d(r y) d3 r K3 (r y) K1 K2 dt3 dt2 dt (8.54) O lo que es lo mismo:

428

Control No Lineal

Realimentacion no lineal u = u(z,v) z z = (x )

Proceso no lineal x

v Proceso lineal equivalente

1 s3

Figura 8.2: Linealizacin del proceso no lineal y su proceso lineal equivalente. o

Reemplazando (8.54) en (8.53) obtenemos la ecuacin 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 parmetros K1 , K2 y K3 determinan la dinmica del error r y. Si a se desea que y r cuando t , entonces los eigenvalores de la ecuacin o anterior deben poseer parte real negativa. Por ejemplo, si deseamos que los eigenvalores sean s1 = s2 = s3 = 4, entonces la ecuacin del sistema de o lazo cerrado resulta s3 + 12s2 + 48s + 64, de donde se obtiene: K1 = 12, K2 = 48 y K3 = 64. La expresin de v en funcin de la trayectoria de o o referencia resulta: v= donde: K= K3 K2 K1 ; d2 r dr d3 r + K1 2 + K2 + K3 r Kz 3 dt dt dt y z= y y (8.55)

Finalmente, la seal de control u puede ser obtenida reemplazando (8.55) n en (8.51), 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

8.7 Control No Lineal de un Servosistema NR senz1 + ML BR n2 KE + ML ML R B + M L

429

z2 +

z3

(8.56)

Ley de Control No Lineal para el Modelo de Segundo Orden


La siguiente ley de control: u= BR + n2 KE N MR v+ x2 + senx1 nKactK MR M (8.57)

linealiza completamente el modelo del proceso dado en (8.50), donde v es una nueva entrada por disearse. Al aplicar la seal 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. Es decir: d2 y =v dt2 La seal v debe disearse de modo tal que y = x1 siga una trayectoria de n n referencia r(t). La siguiente seal v: n v= d(r y) d2 r K2 (r y) K1 2 dt dt (8.58)

logra que el sistema de lazo cerrado tenga la forma: d(r y) d2 (r y) + K2 (r y) = 0 + K1 dt2 dt a donde K1 y K2 determinan la dinmica del error (r y). Si se desea que y r cuando t , entonces los eigenvalores de la ecuacin anterior deben o poseer parte real negativa. Por ejemplo, si deseamos que los eigenvalores sean s1 = s2 = 4, entonces la ecuacin del sistema de lazo cerrado resulta o 2 +8s+16, de donde se obtiene: K = 8 y K = 16 y K = 64. La expresin s o 1 2 3 de v en funcin de la trayectoria de referencia resulta entonces: o v= dr d2 r + K1 + K2 r Kx dt2 dt (8.59)

430 donde: K= K2 K1 ; z= y y

Control No Lineal

Finalmente, la seal de control u puede obtenerse reemplazando (8.59) en n (8.57), 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.60)

8.7.7.

Diseo 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; su correspondiente matriz de ecuacin (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 signica que O(x) posee inversa. Esta inversa es: 1 0 0 0 1 0 O1 (x) = M N B nK cosx1 nK nK det[O(x)] = Por consiguiente, la ecuacin del observador es: o d x = f () + g()u + O1 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.61)

(8.62)

8.7 Control No Lineal de un Servosistema Observador No Lineal para el Modelo de Segundo Orden

431

Como en el caso anterior, consideremos el modelo no lineal del proceso de segundo orden, que posee la forma: x = f (x) + g(x)u; y = h(x)

La correspondiente matriz de observabilidad puede obtenerse aplicando la ecuacin (8.25) como sigue: o O(x) = = x h(x) Lx h(x) =
nK M

x1 x2 (8.63)

1 0 B 0 1 M

La dinmica del observador queda descrita entonces por: a d x = f () + g()u + O1 L[y(t) h()] x x x dt y = h() x

(8.64)

Cabe anotar que en este caso el observador es util para estimar la veloci dad angular x2 . Sin embargo, por software podemos tambin estimar x2 , e sabiendo que es la derivada de x1 .

8.7.8.

Simulacin del Sistema de Control No Lineal o

Simulacin Empleando el Modelo No Lineal de Tercer Orden o La gura 8.3 muestra el diagrama de bloques del sistema de control no lineal a simular. Se desea que los polos del sistema realimentado linealizado sean: s1 = 40; s2 = 10 2 10j; s3 = 10 2 + 10j Por consiguiente, el polinomio caracter stico toma la forma: (s s1 )(s s2 )(s s3 ) = s3 + K1 s2 + K2 s + K3 de donde resulta: K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000

432

Control No Lineal

Sistema lineal equivalente r Realimentacion lineal v = v(r, z ) z v Realimentacion no lineal u = u( z ,v) z u Proceso no lineal
x

z = (x)

Figura 8.3: Sistema de control no lineal.

La gura 8.4 (archivo disnl1.m) muestra el diagrama SIMULINK para la simulacin del sistema. En el ambiente de trabajo de MATLAB, cada subo sistema de la gura 8.4 puede ser visualizado a voluntad. En el subsistema Proceso no lineal se ha colocado la condicin inicial x1 (0) = 1 rad. Los o resultados de la simulacin se muestran en la gura 8.5, donde podemos o observar que la seal controlada sigue exactamente a la trayectoria de refen rencia (una seal sinusoidal), en tanto que la magnitud de la seal de control n n u no sobrepasa el l mite previamente establecido de u < |1,4| volt. Para iniciar la simulacin empleando la gura 8.4, previamente se requiere ejecutar o el programa de datos disnl1p.m.
% disnl1p.m PARAMETROS PARA LA SIMULACION DEL SISTEMA DE % CONTROL NO LINEAL DE TERCER ORDEN clear all % PARAMETROS DEL PROCESO (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.0; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % GANANCIA DEL SISTEMA LINEALIZADO K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000; % GRAFICOS load disnl1_x1; load disnl1_r; load disnl1_u;

8.7 Control No Lineal de un Servosistema

433

disnl1_u u

disnl1_x x Mux

Seal v

Seal de Proceso control u no lineal

Mux

grfico

Referencia r

Conversin de x a z

disnl1_r referencia r

Figura 8.4: Simulacin del sistema de control no lineal de orden 3. o

lg = size(disnl1_x1,1); % LONGITUD DE LAS MUESTRAS ejex = linspace(0,20,lg); subplot(2,1,1) plot(ejex,disnl1_r,-,ejex,disnl1_x1); grid ylabel(Posicion (radianes)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,disnl1_u); grid ylabel(Se~nal de control (voltios)) xlabel(Tiempo en segundos) print -f -deps disnl1r % CREA ARCHIVO disnl1r.eps

Simulacin Usando el Proceso de Tercer Orden con Observador o La gura 8.6 muestra el diagrama de bloques del sistema de control no lineal a simular. Notar que se ha incluido el observador no lineal. Se desea que los polos del sistema realimentado linealizado sean: s1 = 40; s2 = 10 2 10j; s2 = 10 2 + 10j Por consiguiente, el polinomio caracter stico toma la forma: (s s1 )(s s2 )(s s3 ) = s3 + K1 s2 + K2 s + K3

434
1.5 Posicin (radianes) 1 0.5 0 0.5 1 0 2 4 6 8 10 12 Tiempo en segundos 14 16

Control No Lineal

18

20

Seal de control (voltios)

1.5 1 0.5 0 0.5 1 1.5 0 2 4 6 8 10 12 Tiempo en segundos 14 16 18 20

Figura 8.5: Resultado de la simulacin del sistema de control no lineal emo pleando un modelo no lineal de tercer orden.

Sistema lineal equivalente r Realimentacion lineal v = v(r, ^ ) z


^ z

Realimentacion no lineal u = u( z ,v)


^ z

Proceso no lineal

^ ^ z = (x)

^ x

Observador no lineal

Figura 8.6: Sistema de control no lineal con observador.

de donde resulta: K1 = 40 + 20 2; K2 = 300 + 800 2; K3 = 12000

La gura 8.7 (archivo disnl2.m) muestra el diagrama SIMULINK para la simulacin. En el ambiente de trabajo de MATLAB, cada susbsistema de la o gura 8.7 puede ser visualizado a voluntad. Los resultados de la simulacin o

8.7 Control No Lineal de un Servosistema

435

se muestran en la gura 8.8, donde podemos observar que la seal contron lada sigue exactamente a la trayectoria de referencia (una seal sinusoidal). n Para iniciar la simulacin empleando la gura 8.7, previamente se requiere o ejecutar el programa de datos disnl2p.m, pues en este programa se encuentran los valores de los parmetros del sistema, as como tambin el clculo a e a de la matriz de ganancia L.

disnl2_u u Mux Seal u Seal v Proceso no lineal Mux grfico

disnl2_x1 x1 disnl2_r

Referencia r

Conversin Observador de x a z no lineal

Figura 8.7: Simulacin del sistema de control no lineal de tercer orden con o observador.

% disnl2p.m PARAMETROS PARA SIMULAR EL SISTEMA DE CONTROL % NO LINEAL DE TERCER ORDEN CON OBSERVADOR clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.0; K = 31.071e-3; n = 19.741; L = 4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % MODELO LINEAL EQUIVALENTE DE TERCER ORDEN

436

Control No Lineal

% %

Ac = [0 1 0;0 0 1;0 0 0]; Bc = [0;0;1]; Cc = [1 0 0]; D = [0]; NN = [Cc Ac*Cc (Ac)^2*Cc]; rangoNN = rank(NN); % es n=3 => EL PROCESO ES C.C. CALCULO DE LAS GANANCIAS L1, L2 y L3 p = poly(Ac); a1=p(2); a2=p(3); a3=p(4); J = [-15+10j 0 0 0 -19 0 0 0 -15-10j]; % RAICES DESEADAS JJ = poly(J); aa1=JJ(2); aa2=JJ(3); aa3=JJ(4); W = [a2 a1 1;a1 1 0;1 0 0]; GANANCIA DEL OBSERVADOR NO LINEAL LL = inv(W*N)*[aa3-a3;aa2-a2;aa1-a1]; L1=LL(1); L2=LL(2); L3=LL(3); GANANCIA DEL SISTEMA LINEALIZADO K1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000; GRAFICOS load disnl2_x1; load disnl2_r; load disnl2_u; lg = size(disnl2_x1,1); % LONGITUD DE LAS MUESTRAS ejex = linspace(0,20,lg); subplot(2,1,1) plot(ejex,disnl2_r,-,ejex,disnl2_x1) ylabel(Posicion (radianes)) xlabel(Tiempo en segundos) grid subplot(2,1,2) plot(ejex,disnl2_u) ylabel(Se~nal de control (voltios)) xlabel(Tiempo en segundos) grid print -f -deps disnl2r % CREA ARCHIVO disnl2r.eps

Simulacin Empleando el Proceso de Segundo Orden o La gura 8.3 muestra diagrama de bloques del sistema de control no lineal a simular. Se desea que los polos del sistema realimentado linealizado stico toma sean s1 = 4 y s2 = 4. Por consiguiente, el polinomio caracter la forma: (s s1 )(s s2 ) = s2 + K1 s + K2

8.7 Control No Lineal de un Servosistema


1 Posicin (radianes) 0.5 0 0.5 1 0

437

8 10 12 Tiempo en segundos

14

16

18

20

Seal de control (voltios)

3 2 1 0 1 0

8 10 12 Tiempo en segundos

14

16

18

20

Figura 8.8: Resultado de la simulacin del sistema de control no lineal de o tercer orden.

de donde resulta: K1 = 8 y K2 = 16. Esta vez vamos a simular el sistema de control no lineal mediante discretizacin directa del sistema continuo. La razn es que la implementacin o o o en tiempo real del sistema de control se va a realizar digitalmente. El programa disnl3.m realiza la simulacin del sistema y los resultados se pueden o ver en la gura 8.9. Es importante anotar que en el programa de simulacin o disnl3.m se ha incluido la compensacin de la friccin no lineal de Coulomb o o y la limitacin de la seal de control para evitar saturar el amplicador. o n Con el propsito de suavizar los efectos de las derivadas presentes en o la seal de control u emplearemos la siguiente frmula 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 frmula se obtiene calculando el o promedio temporal r: 1 r = [e(k) + e(k 1) + e(k 2) + e(k 3)] 4

438

Control No Lineal

para luego aproximar la derivada con relacin a r, como sigue: o dr 1 r(k) r r(k 1) r r(k 2) r r(k 3) r + + + ] = [ dt 4 1,5T 0,5T 0,5T 1,5T
% disnl3.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL % EMPLEANDO MODELO DE SEGUNDO ORDEN DEL PROCESO clear all % PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3) Lo = 0.776; JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6; g = 9.81; E = 31.035e-3; R = 7.38; m = 0.06377; Kact = 14.9; cc = 0.25; Mo = 0.0; % tambin 10, 20, 45; e K = 31.071e-3; n = 19.741; L = 4.64e-1; %4.64e-3; B = n^2*bm + bL; Jeff = n^2*Jm +JL; M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2); % POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -4 y -4 pol = conv([1 4],[1 4]); % POLINOMIO CARACTERISTICO K1 = pol(2); K2 = pol(3); % CONDICIONES Y PARAMETROS INICIALES r(1) =0; r(2)=0; r(3)=0; r(4)=0; dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0; ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0; x1(1) =0; x1(2)=0; x1(3)=0; x1(4)=0; x2(1) =0; x2(2)=0; x2(3)=0; x2(4)=0; MM=1000; T = 0.05; % LAZO DE CONTROL for k=4:MM r(k) = sin(0.2*k*T); % TRAYECTORIA DE REFERENCIA % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T); ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T); % SE~NAL DE CONTROL u(k) = (M*R/(Kact*n*K))*(ddr(k) + K1*dr(k) + K2*r(k) ... - K2*x1(k) - K1*x2(k) ... + (B*R+n^2*K*E)/(M*R)*x2(k) + (N/M)*sin(x1(k)) ); TN = cc*sign(x2(k)); % torque de friccin de Coulomb o % COMPENSANDO FRICCION if(x2(k) > 0) u(k) = u(k) + R*cc/(n*K*Kact); elseif(x2(k) < 0)

8.7 Control No Lineal de un Servosistema


u(k) = u(k) - R*cc/(n*K*Kact); end % EVITANDO SATURACION DEL ACTUADOR if(u(k) > 1.4) u(k) = 1.4; elseif(u(k) < -1.4) u(k) = -1.4; end % PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO x1(k+1) = x1(k) + T*x2(k); x2(k+1) = x2(k) + T*( - (N/M)*sin(x1(k)) ... - (B/M + n^2*K*E)/(M*R)*x2(k) ... - (1/M)*TN + n*K*Kact/(M*R)*u(k) ); end % FIN DEL LAZO DE CONTROL % GRAFICOS ejex = linspace(0,MM*T,MM-3); subplot(2,1,1) plot(ejex,r(4:MM),ejex,x1(4:MM)); grid ylabel(Posicion (radianes)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,u(4:MM)); grid ylabel(Se~nal de control (voltios)) xlabel(Tiempo en segundos) print -f -deps disnl3 % crea disnl3.eps

439

8.7.9.

Implementacin del Hardware o

El hardware empleado en la implementacin en tiempo real del sistema o de control no lineal es similar al empleado para la implementacin en tiempo o real de los sistemas de control adaptivo, predictivo y robusto. Dicho hardware se describe en detalle en la subseccin 5.6.8. o

8.7.10.

Implementacin del Software o

El software de control empleado en la implementacin en tiempo real del o sistema de control no lineal posee la misma estructura que el software de control empleado para la implementacin en tiempo real de los sistemas de o control predictivo y robusto. La estructura de dicho software se describe en detalle en la subseccin 6.7.7. El diagrama de ujo del software de control o se muestra en la gura 6.13.

440
2 Posicin (radianes) 1 0 1 2 0

Control No Lineal

10

15

20 25 30 Tiempo en segundos

35

40

45

50

0.4 Seal de control (voltios) 0.2 0 0.2 0.4 0

10

15

20 25 30 Tiempo en segundos

35

40

45

50

Figura 8.9: Resultado de la simulacin del sistema de control no lineal emo pleando un modelo no lineal de segundo orden.

El software usado para la implementacin del algoritmo de control de o posicin emplea el lenguaje C y se ejecuta en una PC Pentium. Los prograo mas necesarios para el control se estructuran en tres archivos: R1LLIB.H, R1LLIB.CPP y DISNL.CPP. El archivo DISNL.CPP es el que contiene el algoritmo de control. La realizacin de archivos ejecutables a partir de los programas fuente, se o elabora en el ambiente de trabajo del Borland C/C++ mediante la creacin o de un proyecto denominado DISNL.PRJ, en donde intervienen los archivos mencionados en el prrafo anterior. A continuacin se presenta el listaa o do del programa DISNL.CPP. El listado de los programas R1LLIB.H y R1LLIB.CPP fueron presentados en la subseccin 6.7.7. o
/* DISNL.CPP Programa del sistema de control no lineal de posicion. Ver especificaciones de dise~no en la subseccion resultados experimentales. */ #include "r1llib.h" #include <stdio.h> #include <math.h> #include <assert.h> #include <alloc.h> #include <conio.h>

8.7 Control No Lineal de un Servosistema


const float ESCALA= 2.*M_PI/(512.*19.7); /* Declaracion de las funciones propias del programa */ void Inicializa_Sistema(); void Mide_Variables(float *yk, float *x2k, float *r, float t); float Aplica_Control(float u, float ykp); /* Declaracion de las variables globales */ float y, yp, x2, x2p, r; float rp, rpp, rppp; float drp, drpp, drppp; float T, k; float t, tsimul; float Fs; int p0, pk; float bL, bm, Lo, Ro, g, E, R, m, Kact, Mo, K, n, B; float Jeff, Jm, JL, M, N, TN, upar, K1, K2; float VcFC, VcFE, Wth, Ofst; float up; /*************** FUNCIONES ******/ float Aplica_Control(float u) { float v; float ykp if(u<0.) v = -VcFC; else if(u>0.) v = VcFC; if(u+v<-1.5) u = -1.5; else if(u+v>1.4) u = 1.4; EnviarVoltage(u+v+Ofst); return u; } void Inicializa_Sistema() { VcFC = .15; Ofst = 2.3; Fs = 20.; T = 1./Fs; tsimul= 100.; /* Parametros del proceso no lineal */ Lo = 0.776; Ro = 0.01; g = 9.81; Mo = 0.0; m = 0.06377; R = 7.38; E = 31.035e-3; Kact = 14.9; K = 31.071e-3; bm = 1.8338e-6; bL = 1e-5; n = 19.741; B = (n*n)*bm+bL; Jm = 1.9062e-6; Jeff = n*n*Jm+JL; K1 = 28.2843; K2 = 300; M = Jeff+(1/3)*m*Lo*Lo + Mo*Lo*Lo + (2/5)*Mo*Ro*Ro;

441

442
N = g*Lo*(Mo + m/2); /* Inicializacion de variables */ yp =0.; x2p = 0.; rp =0.; rpp = 0.; rppp = 0.; drp =0.; drpp = 0.; drppp = 0.; up =0.;

Control No Lineal

ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs); EnviarVoltage(Ofst); p0= LeerPosicion(); } void Mide_Variables(float *y, float *x2, float *r, float t ) { /* En primer lugar, la referencia: r = r(t)*/ *r = - 2*exp(-2*k*T) - 2*cos(2*k*T)+2; /* Ahora leo la posicion */ pk = LeerPosicion(); *y = yp + ((float)(abs(pk-p0)>8000?0:pk-p0))*ESCALA; p0 = pk; /* Actualizamos los estados */ yp =* y; x2p =* x2; } void main() { int ant=0, act=0, k, nd; FILE *out; float *yb, x2, y; float *ub, *rb, u, r; float yp, x2p; float ddr, dr; Inicializa_Sistema(); clrscr(); assert(tsimul<120); nd = (int)tsimul/T; t = 0.; assert(NULL!=(ub= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(yb= (float *)calloc(n/5,sizeof(float)))); assert(NULL!=(rb= (float *)calloc(n/5,sizeof(float)))); for(k=0; k<nd;) { act = NivelClock();

8.7 Control No Lineal de un Servosistema

443

if ((ant == 0)&&(act == 1)) { Mide_Variables(&y, &x2, &r, t); upar = (ddr+K1*dr+K2*r-K2*(y)-K1*x2+(B*R+n*n*K*E)/ (M*R)*x2+(N/M)*sin(y)); u = (M*R/(Kact*n*K))*upar; up = u; u = Aplica_Control(u); if(!(k%5)) { yb[k/5] = y*180./M_PI; rb[k/5] = r*180./M_PI; ub[k/5] = u; } k++; t += T; gotoxy(15,5); printf("****************************************"); gotoxy(18,7); printf("Control no lineal de un servomotor D.C."); gotoxy(15,9); printf("****************************************"); gotoxy(21,11);printf("tiempo : t=%+5.3f",t); gotoxy(21,13);printf("referencia : r=%+5.3f",r*180./M_PI); gotoxy(21,15);printf("se~nal de control: u=%+5.3f",u); gotoxy(21,17);printf("posicion : y=%+5.3f",y*180./M_PI); gotoxy(15,21);printf("****************************************"); if(kbhit()) if(getch()==27) break; } ant = act; } EnviarVoltage(Ofst); out = fopen("disnl.out","wt"); for (int i=0; i<n/5; i++) fprintf(out,"%10f %10f %10f %10f\n", i*5*T, rb[i], yb[i], ub[i]); delete rb, yb, ub; fclose(out); }

8.7.11.

Resultados Experimentales

La gura 8.10 muestra el resultado experimental obtenido con el sistema de control de posicin no lineal. La trayectoria de referencia posee la forma: o r(t) = 3e2t + 2sen(2t) + 2

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. La ecuacin caracter es: s2 + 28,2843s + 300 = 0 de donde obtenemos: K1 = 28,2843 y K2 = 300. Podemos observar en la gura 8.10 que la respuesta presenta sobreimpulso nulo, tiempo de estabilizacin menor que 0.4 s y error en estado estable nulo. o
300 Posicin (grados) 200 100 0 100 0

0.5

1.5

2 2.5 3 Tiempo en segundos

3.5

4.5

1.5 Seal de control (voltios) 1 0.5 0 0.5 1 0 0.5 1 1.5 2 2.5 3 Tiempo en segundos 3.5 4 4.5 5

Figura 8.10: Resultado experimental del sistema de control de posicin no o lineal para el servomotor D.C. accionando una carga no lineal.

8.8.

Problemas Resueltos

En la seccin problemas resueltos de los cap o tulos 4 al 8, la solucin a los o problemas se encuentra, segn el caso, en uno o ms archivos con extensin u a o m escritos en cdigo MATLAB. o Problema 8.1 El proceso pndulo no lineal mostrado en la gura 2.3, cuyo modelo se dese cribe en el ejemplo 2.2, puede rotar libremente alrededor del pivote gracias a

8.8 Problemas Resueltos

445

la accin de un torque externo U . En dicha gura Bp =1.3366 N-m/rad/s es o la friccin viscosa rotacional en el punto pivote, Lo =1.6350 m es la longitud o de la varilla de peso despreciable, Mo =0.5 kg es la masa de la esfera y g=9.81 o e o m/s2 es la aceleracin de la gravedad. La salida de inters es la posicin angular del pndulo. Para la situacin mostrada en la gura 2.3(a), disear e o n un sistema de control no lineal empleando el mtodo de linealizacin por e o realimentacin. Los eigenvalores del sistema lineal equivalente realimentado o deben estar ubicados en 8 8i. Solucin: El proceso en estudio es univariable; es decir, una sola entrada o U actuando sobre el proceso y una sola salida: la posicin angular. En la o gura 2.3(a) el torque resultante alrededor del pivote es: U = Mo L2 + Bp + Mo gLo sen o (8.65)

que es una ecuacin no lineal debido al trmino sen. Seleccionando como o e variables de estado X1 = , X2 = y como salida Y = X1 , se obtiene: X 1 = X2 Bp g 1 X2 + U X2 = senX1 Lo Mo L2 Mo L2 o o Y = X1 = h cuya representacin compacta resulta: X = f, donde: o X= X1 X2 ; f= f1 f2 =
g Lo senX1

Bp x Mo L2 2 o

X2

1 U Mo L2 o

La ecuacin anterior posee una forma normal. Por consiguiente, empleando o la siguiente ley de control: U = BX2 + M LgsenX1 + M L2 V obtenemos X2 = V . Deniendo e = r X1 , donde r es una trayectoria de referencia y seleccionando la seal V como: n V = r + K1 e + K2 e = X2 entonces la ecuacin del sistema lineal equivalente realimentado resulta: o e + K1 e + K2 e = 0; (s2 + K1 s + K2 )e(s) = 0

446

Control No Lineal

Si las ra ces del sistema realimentado son s1,2 = 8 8i, entonces: (s + 8 + 8i)(s + 8 8i) = s2 + 16s + 128; La seal V viene a ser: n V = r + K1 r + K2 r K1 X1 K2 X2 ; 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.m simula el sistema de control no lineal y los resultados se muestran en la gura 8.11.
% p8_1.m SOLUCION DEL PROBLEMA 8.1 (PENDULO NO LINEAL) clear all % PARAMETROS DEL PROCESO Bp=1.3366; Lo=1.6350; Mo=0.5; g=9.81; % POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5 pol = conv([1 8+8i],[1 8-8i]); % POLINOMIO CARACTERISTICO K1 = pol(2); K2 = pol(3); % CONDICIONES INICIALES: r(1) =0; r(2)=0; r(3)=0; r(4)=0; dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0; ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0; X1(1) =0; X1(2)=0; X1(3)=0; X1(4)=0; X2(1) =0; X2(2)=0; X2(3)=0; X2(4)=0; MM=1000; T = 0.01; % LAZO DE CONTROL for k=4:MM r(k) = 2*sin(0.8*k*T); % trayectoria de referencia % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T); ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T); U(k) = Bp*X2(k)+Mo*Lo*g*sin(X1(k))+Mo*Lo^2*(ddr(k)+K1*dr(k)... +K2*r(k)-K2*X1(k)-K1*X2(k)); % PROCESO NO LINEAL DE ORDEN 2 DICRETIZADO X1(k+1) = X1(k) + T*X2(k); X2(k+1) = X2(k) + T*(-(Bp/Mo*Lo^2)*X2(k)-(g/Lo)*sin(X1(k))... +(1/Mo*Lo^2)*U(k)); end % fin del lazo de control % GRAFICOS ejex = linspace(0,MM*T,MM-3);

K1 = 16;

K2 = 128

Y = X1 =

8.8 Problemas Resueltos


subplot(2,1,1) plot(ejex,r(4:MM),ejex,X1(4:MM)); grid ylabel(Posicion (radianes)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,U(4:MM)); grid ylabel(Se~nal de control (N)) xlabel(Tiempo en segundos) print -f -deps p8_1 % CREA EL ARCHIVO p8_1.eps
4 Posicin (radianes) 2 0 2 4 0

447

4 5 6 Tiempo en segundos

10

400 Seal de control (N) 200 0 200 400 600 0 1 2 3 4 5 6 Tiempo en segundos 7 8 9 10

Figura 8.11: Trayectoria de posicin del pndulo (problema de seguimiento) o e y seal de control correspondiente al problema 8.1 n Problema 8.2 La gura 2.2 muestra dos tanques idnticos colocados en cascada. La seccin e o 2 de cada tanque es constante. El objetivo de control es horizontal A=9 m controlar la altura H2 empleando el ujo Qo como seal de control. Disear n n el sistema de control no lineal empleando el mtodo de linealizacin por e o realimentacin. El ujo de control no debe sobrepasar los 5 m3 /s y el tiempo o de estabilizacin de la salida debe ser menor que 20 s con error en estado o estable prcticamente nulo. Seleccionar apropiados tiempo de muestreo y a eigenvalores del sistema realimentado.

448

Control No Lineal

Solucin: En el ejemplo 2.1 se deriv el modelo no lineal del proceso con o o =0.4 (una constante que depende de la geometr del oricio), =1.23 a 2 (la aceleracin de la gravedad), o (la densidad del l quido) y g=9.81 m/s resultando: H = f + gU ; Y = h(H) = H2 ; U = Qo

donde: f = [f1 f2 ]T , g = [g1 g2 ]T , siendo: g g [ H1 H1 ; f2 = f1 = A A Operando con c = g/A obtenemos: h(H) = H2 ;

H2 ];

g1 =

1 ; A

g2 = 0

Lf h(H) = (H)f = f2 c =0 2A H1

Lg Lf h(H) = (f2 ) g =

Luego, el sistema es completamente linealizable dado que su grado relativo es dos. Seguimos operando: c2 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 ; z2 = 2 (H) = Lf h(H) = c H1 c z2 2 + z1 ) c H2

Los estados originales en funcin de los nuevos estados vienen a ser: o H2 = 1 (z) = z1 ; 1 H1 = 1 (z) = ( 2

y la ecuacin de estado del nuevo sistema resulta: o z 1 = z2 z2 = 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 ; z1 a(1 (z)) = c2 4A z1 (z2 /c + z1 )

8.8 Problemas Resueltos Deniendo una seal equivalente V con Y = H2 : n V = Y = r + K1 e + K2 e; e=rY

449

se da lugar a la siguiente ecuacin caracter o stica del sistema linealizado realimentado: e + K1 e + K2 e = 0 Si las ra ces deseadas del sistema son s1,2 = 0,6, entonces: (s + 0,6)(s + 0,6) = s2 + 1,25s + 0,39; K1 = 1,25; K2 = 0,39

La seal V , con Y = H2 = z1 e Y = z1 = z2 , toma la forma nal: n V = r + K1 r + K2 r K2 z1 K1 z2


1 y la ley de control resulta: U = a (V b). El programa p8 2p9.m simula el sistema de control no lineal. Los resultados se muestran en la gura 8.12.

% p8_2p9.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL % PARA EL PROCESO HIDRAULICO (PROBLEMA 8_2) clear all % PARAMETROS DEL PROCESO NO LINEAL A=9; gamma=0.4; rho=1.23; g=9.81; c=gamma*sqrt(rho*g)/A; % POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -8-8i y -8+8i pol = conv([1 0.6],[1 0.65]); % POLINOMIO CARACTERISTICO K1 = pol(2); K2 = pol(3);% K1=K2=0.6; T=0.01-0.07 Ts=20 % CONDICIONES Y PARAMETROS INICIALES r(1) =0; r(2)=0; r(3)=0; r(4)=0; dr(1) =0; dr(2)=0; dr(3)=0; dr(4)=0; ddr(1)=0; ddr(2)=0; ddr(3)=0; ddr(4)=0; H1(4)=2; H2(4)=2; MM=1000; T = 0.05; % LAZO DE CONTROL for k=4:MM r(k) = 3; % TRAYECTORIA DE REFERENCIA % APROXIMACION DE LAS DERIVADAS dr(k) = (r(k) + 3*r(k-1) - 3*r(k-2) - r(k-3))/(6*T); ddr(k) = (dr(k) + 3*dr(k-1) - 3*dr(k-2) - dr(k-3))/(6*T); % CONVERSION DE ESTADOS z1(k)=H2(k); z2(k)=c*(sqrt(H1(k))-sqrt(H2(k)) ); % LEY DE CONTROL V(k) = ddr(k) + K1*dr(k) + K2*r(k) - K2*z1(k) - K1*z2(k);

450

Control No Lineal

b(k) = (c^2/2)*( c*z2(k)/sqrt(z1(k))-1 ); a(k) = c^2/( 4*A*sqrt(z1(k))*(z2(k)/c+sqrt(z1(k)) ) ); U(k) = (V(k)-b(k))/a(k); Q=5; if(U(k) > Q) U(k)=Q; elseif(U(k) < -Q) U(k)=Q; end % PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO H1(k+1) = H1(k) + T*(-c*sqrt(H1(k)) + (1/A)*U(k)); H2(k+1) = H2(k) + T*(c*sqrt(H1(k)) - c*sqrt(H2(k)) ); end % fin del lazo de control % GRAFICOS ejex = linspace(0,MM*T,MM-3); subplot(2,1,1) plot(ejex,r(4:MM),ejex,H2(4:MM)), grid ylabel(Nivel (m)) xlabel(Tiempo en segundos) subplot(2,1,2) plot(ejex,U(4:MM)), grid ylabel(Flujo de control (m^3/s)) xlabel(Tiempo en segundos) print -f -deps p8_2p9 % crea p8_2p9.eps

Problema 8.3 Determinar si es posible una linealizacin exacta de los procesos pndulo o e invertido no lineal y gra-puente descritos en las secciones 3.1 y 3.2 respecu tivamente. Se sabe que la salida es la posicin x3 . o Solucin: La ecuacin de estado que describe al pndulo 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 ecuacin anterior de orden n=4 es fcil deducir las expresiones de las o a funciones vectoriales f (x) y g(x). Un proceso es exactamente linealizable

8.9 Problemas Propuestos


3.5

451

Nivel (m)

2.5

2 0

10

15

20 25 30 Tiempo en segundos

35

40

45

50

5 Flujo de control (m^3/s)

5 0

10

15

20 25 30 Tiempo en segundos

35

40

45

50

Figura 8.12: Nivel de salida y ujo de control para el problema 8.2. si su grado relativo es igual al orden del proceso. Empleando el criterio de grado relativo en el proceso pndulo obtenemos: e h(x) = x4 Lf h(x) = h(x) f = f4 (x) Lg Lf h(x) = f4 (x) g(x) = 0 Luego, el grado relativo resulta r = 2, que es menor que el orden del proceso: n = 4. Por consiguiente, el proceso pndulo invertido no es exactamente e linealizable. Lo mismo podemos aseverar para el proceso gra-puente. u

8.9.

Problemas Propuestos

Problema 8.4 La gura 3.30 muestra el proceso servomotor con carga no lineal descrito en la seccin 3.3, en donde el eje de salida del mecanismo de reduccin est suo o a jeto a la carga no lineal mediante una junta exible que puede ser modelada como un resorte rotacional de constante K =0.5 N/m/s. Disear un sistema n

452

Control No Lineal

de control no lineal que emplee el mtodo de linealizacin por realimentacin e o o para controlar la posicin angular de la carga no lineal. Las especicaciones o de diseo son: error en estado estacionario nulo y tiempo de establecimiento n menor que 1 s para una seal de referencia arbitraria. Seleccionar el tiempo n de muestreo y los eigenvalores apropiados del sistema lineal equivalente realimentado. Considere dos casos: (a) cuando la inductancia de armadura es despreciable, y (b) cuando no lo es Problema 8.5 Demostrar las propiedades de bilinealidad, anticonmutatividad y de Jacobi establecidas en el lema 8.1 y luego demostrar el teorema 8.2. Problema 8.6 La gura 3.31 muestra el proceso servomotor con carga no lineal descrito en la seccin 3.3, en donde la carga no lineal posee ahora dos grados de o o libertad con Lo = 2L1 /3 y Mo =0.02 kg. La unin de la carga con el eje del servomotor no es exible. Las ecuaciones que describen la dinmica del a sistema son materia del problema 3.12. Determinar si el proceso descrito es completamente linealizable. Si lo es, disear un sistema de control no lineal n con linealizacin de la realimentacin para controlar simultneamente las o o a posiciones y con m nimo tiempo de estabilizacin y m o nimo sobreimpulso. Considerar dos casos: (a) cuando la inductancia de armadura es despreciable, y (b) cuando no lo es.

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

454

BIBLIOGRAF IA

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

BIBLIOGRAF IA

455

[21] Frank Ayres Jr., Matrices, serie de compendios Schaum, McGraw-Hill Mxico Panam Bogot y otras, 1973 (o ediciones ms recientes). e a a a [22] Murray R. Spiegel, Transformada de Laplace, serie de compendios Schaum, McGraw-Hill Mxico Panam Bogot y otras, 1973 (o edie a a ciones ms recientes). a [23] MathWorks, Inc., MATLAB Reference Guide, Prentice Hall, Englewood Clis, New Jersey, primera edicin, 1998. o [24] MathWorks, Inc., SIMULINK Users Guide, Prentice Hall, Englewood Clis, New Jersey, primera edicin, 1996. o [25] Lab-PC+ User Manual, National Instruments Corporation, Part Number 320502B-01, edicin de agosto de 1994. o

Indice alfabtico e
Actuador, 231 Amplicador de potencia, 160 Campo vectorial suave, 408 Campos vectoriales integrables, 412 involutivos, 413 CMI: control con modelo interno, 351 Codicador optico, 159 codicador optico, 235 Control optimo concepto, 126 Control optimo cuadrtico, 126 a de la gra puente, 181 u del pndulo invertido, 147 e discreto, 126 estacionario, 129 no estacionario, 127 Control adaptivo de un servomotor no lineal, 224 Control con modelo interno estructura del, 351 estructuras alternativas del, 353 incertidumbres del modelo en el, 355 modelo del proceso en el, 355 representaciones del, 351 Control matricial dinmico, 286 a Control no lineal de un servosistema de posicin, 424 o Control predictivo del servomotor no lineal, 306 disturbio del proceso en el, 289 ley de control con restricciones del, 304 ley de control del, 303 modelo CARIMA del, 290 modelo del predictor en el, 292 modelo del proceso del, 289 modelo paralelo en el, 292 modelo serie/paralelo en el, 293 prediccin del disturbio en el, o 294 salida del modelo en el, 290 Control predictivo basado en modelos, 285 principios del, 286 Control predictivo:respuesta forzada del, 300 Control predictivo:respuesta libre del, 299 Control robusto para procesos estables, 358 para procesos inestables, 370 Control robusto de un servomotor no lineal, 376 Controlabilidad, 66 Controlador optimo H2 : qH (z), 372

INDICE ALFABETICO Controlador optimo cuadrtico a proporcional, 221 proporcional integral, 223 Controlador optimo cuadrtico H2 : a qH (z), 360 para entradas t picas, 361 Controlador CMI q (z), 362, 373 Controlador predictivo, 298 funcin de costo del, 298 o objetivo del, 298 parmetros de diseo del, 298 a n Corchete de Lie, 409 Corchetes de Lie propiedades de los, 410 Denicin de Matrices, 21 o Denicin de matrices, 21 o Derivada de Lie, 408 Determinante, 5 de una matriz, 5 propiedades, 6 Diagonalizacin de matrices, 19 o Difeomorsmo, 410 local, 410 Discretizacin directa, 43 o Ecuacin caracter o stica, 34 Ecuacin de Riccati, 128, 129 o Ecuacin de salida, 33, 58 o Ecuacin de transferencia, 34 o Ecuacin del observador no lineal, o 422 Eigenvalor, 19 Eigenvector, 19 Espacio de estado discreto, 55 Estabilidad interna, 351 Estabilidad Robusta, 364 Estabilidad robusta, 374 Estado, 33 ecuacin de, 33, 58 o espacio de, 33, 55 variables de, 33 vector de, 33 Estimacin de estados, 221 o

457

Filtro de Kalman, 221 Filtro discreto CMI, 363, 374 Forma bilineal, 21 Forma cannica, 60 o controlable, 60 de Jordan, 62 diagonal, 61 observable, 61 Forma cannica de Jordan, 20 o Forma cuadrtica, 20 a Forma normal, 416 Frobenius teorema de, 413 Funcin de costo, 126 o cuadrtica discreta, 127 a m nima, 129 Funcin de transferencia de pulso, o 53 Gra-puente, 79 u modelo, 79 Grado relativo, 415 Hardware del sistema de control, 155, 314, 377, 443 Independencia de vectores, 16 Interfaz Lab-PC+, 161, 236 Jacobiano, 15 Ley de control optima, 127, 140 Ley de control no lineal, 417 Linealizacin de procesos, 33 o

458 Linealizacin exacta, 417 o condiciones para, 420 Linealizacin por realimentacin, o o 407 M nimos cuadrados recursivo algoritmo, 211 mtodo de los, 210 e mtodo mejorado de los, 213 e mejorado, algoritmo, 213 Matrices, 3 de ponderacin, 132 o diagonalizacin de, 19 o iguales, 3 jacobianas, 34 lema de inversin de, 7 o multiplicacin de, 3 o que conmutan, 3 similares, 19 suma de, 3 Matriz, 1 antihermitiana, 5 antisimtrica, 5 e cero, 3 cuadrada, 4 de control, 34 de disturbios, 34 de estado, 34 de observabilidad generalizada, 420 de salida, 34 de transferencia, 34 denida negativa, 21 denida positiva, 21 derivada de una, 14 diagonal, 4 eigenvalor de una, 19 eigenvector de una, 19 forma cannica de Jordan, 20 o

INDICE ALFABETICO hermitiana, 5 identidad, 5 indenida, 21 integral de una, 14 inversa de una, 6 nilpotente, 5 norma de una, 18 normal, 5 orden de una, 1 ortogonal, 5 peridica, 5 o rango de una, 18 semidenida negativa, 21 semidenida positiva, 21 simtrica, 5 e singular, 5 transpuesta, 4 traza de una, 4 triangular inferior, 4 triangular superior, 4 unitaria, 5 Modelando procesos no lineales, 209 Modelo CARIMA, 290 Muestreo y reconstruccin, 40 o Nomenclatura, 1 Observabilidad, 68 Observador optimo cuadrtico, 138 a Observadores no lineales, 420 Operacin con vectores, 16 o Operaciones con matrices, 3 Pndulo invertido, 71 e control optimo del, 147 modelo, 72 Plano de fase, 33 Predictor, 292 Preltro

INDICE ALFABETICO diseo del, 359 n Proceso estable e inestable, 35 Proceso multivariable, 33 Proceso univariable, 34 Procesos con tiempo muerto, 65 Puntos de equilibrio, 33 Regulador optimo cuadrtico a proporcional, 131 proporcional integral, 141 Rendimiento nominal, 359, 372 Rendimiento robusto, 365, 375 Respuestas libres y forzadas, 299 Retencin de orden cero, 43 o Sensor(es) de posicin, 158, 235 o Servomotor DC no lineal, 86 modelo, 86 Sistema causal y estrictamente causal, 355 Sistema de control adaptivo, 208 con autosintonizacin, 208 o Software de control, 162, 237, 314, 378, 443 Solucin de la ecuacin de estado, o o 55, 58 Teorema del muestreo, 42 Tipo de sistemas, 359 Tipos de matrices, 4 Transformacin no lineal de estao dos, 411 Transformada de Laplace, 27 frmulas notables, 27 o inversa, 27 propiedades, 27 Transformada Z, 47 de secuencias, 49 denicin, 47 o frmulas notables, 50 o inversa, 51 propiedades, 48 Valor absoluto, 8 Variables residuales, 34 Vector, 2 de informacin, 210 o de parmetros, 210 a derivada de un, 15 integral de un, 15 norma de un, 17 Vectores, 16 independencia de, 16 operacin con, 16 o ortonormales, 16

459

Вам также может понравиться