[-] Control Avanzado - Arturo Rojas Moreno

473
CONTROL AVANZADO Dise˜ no y Aplicaciones en Tiempo Real ARTURO ROJAS-MORENO, Ph.D. Universidad Nacional de Ingenier´ ıa, Per´ u Control ´ Optimo Control Adaptivo Control Predictivo Control Robusto Control No Lineal Programas en MATLAB y C/C++

Transcript of [-] Control Avanzado - Arturo Rojas Moreno

Page 1: [-] Control Avanzado - Arturo Rojas Moreno

CONTROL AVANZADODiseno y Aplicaciones en Tiempo Real

ARTURO ROJAS-MORENO, Ph.D.

Universidad Nacional de Ingenierıa, Peru

Control Optimo

Control Adaptivo

Control Predictivo

Control Robusto

Control No Lineal

Programas en MATLAB y C/C++

Page 2: [-] Control Avanzado - Arturo Rojas Moreno

II

Control AvanzadoDiseno y Aplicaciones en Tiempo Real

Copyright c© 2001 Arturo Rojas-Moreno. Reservados todos los derechos.

ISBN 9972–9318–0–3

Ni todo el libro ni parte de esta publicacion puede ser reproducida, archivada,transmitida o distribuida en forma alguna o mediante algun medio electronico,mecanico, o de otra ındole, sin que exista previamente y por escrito el permiso deautorizacion del autor.

Page 3: [-] Control Avanzado - Arturo Rojas Moreno

Dedicatoria

A mi FamiliaA mi Alma Mater

Page 4: [-] Control Avanzado - Arturo Rojas Moreno
Page 5: [-] Control Avanzado - Arturo Rojas Moreno

Indice general

Dedicatoria III

Prefacio XI

1. Matematica Asistida con Computadora 11.1. Calculo Matricial . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1. Operaciones y Tipos de Matrices . . . . . . . . . . . . 11.1.2. Determinantes y Matriz Inversa . . . . . . . . . . . . . 51.1.3. Derivadas e Integrales con Matrices y Vectores . . . . 14

1.2. Analisis Vectorial . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.1. Independencia, Ortonormalidad y Normas . . . . . . . 151.2.2. Rango de una Matriz, Eigenvalores y Eigenvectores . . 181.2.3. Diagonalizacion de Matrices . . . . . . . . . . . . . . . 191.2.4. Formas Cuadraticas y Bilineales . . . . . . . . . . . . 20

1.3. La Transformada de Laplace . . . . . . . . . . . . . . . . . . 26

2. Sistemas Discretos 292.1. Diseno de Sistemas de Control Digital . . . . . . . . . . . . . 292.2. Concepto de Estado y Variables de Estado . . . . . . . . . . . 31

2.2.1. Linealizacion de Procesos . . . . . . . . . . . . . . . . 312.3. Fundamentos de Sistemas Discretos . . . . . . . . . . . . . . . 38

2.3.1. Muestreo y Reconstruccion . . . . . . . . . . . . . . . 382.3.2. La Transformada Z . . . . . . . . . . . . . . . . . . . . 452.3.3. La Transformada Z Inversa . . . . . . . . . . . . . . . 492.3.4. Funcion de Transferencia de Pulso . . . . . . . . . . . 512.3.5. El Espacio de Estado Discreto . . . . . . . . . . . . . 532.3.6. Controlabilidad y Observabilidad . . . . . . . . . . . . 64

Page 6: [-] Control Avanzado - Arturo Rojas Moreno

VI INDICE GENERAL

3. Modelado de Procesos 693.1. Modelo del Proceso Pendulo Invertido . . . . . . . . . . . . . 69

3.1.1. Modelo del Subsistema Carro-Pendulo . . . . . . . . . 703.1.2. Modelo del Subsistema Motor-Polea . . . . . . . . . . 723.1.3. Representacion en el Espacio de Estado . . . . . . . . 743.1.4. Obtencion del Modelo Lineal . . . . . . . . . . . . . . 753.1.5. El Modelo en el Espacio de Estado Discreto . . . . . . 76

3.2. Modelo del Proceso Grua-Puente . . . . . . . . . . . . . . . . 773.2.1. Modelo del Subsistema Carro-Varilla . . . . . . . . . . 773.2.2. Modelo del Subsistema Motor-Polea . . . . . . . . . . 793.2.3. Representacion en el Espacio de Estado . . . . . . . . 793.2.4. Obtencion del Modelo Lineal . . . . . . . . . . . . . . 803.2.5. El Modelo en el Espacio de Estado Discreto . . . . . . 803.2.6. Resumen de Variables y Parametros . . . . . . . . . . 813.2.7. Identificacion de la Zona Muerta del Servomotor . . . 81

3.3. Modelo del Servomotor D.C. No Lineal . . . . . . . . . . . . . 843.3.1. El Subsistema Mecanico . . . . . . . . . . . . . . . . . 843.3.2. El Subsistema Electrico . . . . . . . . . . . . . . . . . 863.3.3. Conversion de Energıa Electrica en Mecanica . . . . . 873.3.4. Modelo y Compensacion de no Linealidades . . . . . . 893.3.5. Linealizacion y Discretizacion del Proceso . . . . . . . 90

3.4. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 913.5. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 116

4. Control Optimo 1234.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.2. Control Optimo Cuadratico No Estacionario . . . . . . . . . . 1254.3. Control Optimo Cuadratico Estacionario . . . . . . . . . . . . 1274.4. El Regulador Optimo Proporcional . . . . . . . . . . . . . . . 1284.5. Seleccion de las Matrices de Ponderacion . . . . . . . . . . . . 1304.6. Diseno del Observador Optimo Cuadratico . . . . . . . . . . . 1364.7. El Regulador Optimo Proporcional Integral . . . . . . . . . . 1394.8. Procedimiento de Diseno e Implementacion . . . . . . . . . . 1454.9. Control Optimo Cuadratico del Pendulo Invertido . . . . . . 145

4.9.1. Formulacion del Problema . . . . . . . . . . . . . . . . 1454.9.2. El Modelo del Proceso a Controlar . . . . . . . . . . . 1464.9.3. Calculo de la Matriz de Ganancia del Controlador . . 1474.9.4. Calculo la Matriz de Ganancia del Observador . . . . 149

Page 7: [-] Control Avanzado - Arturo Rojas Moreno

INDICE GENERAL VII

4.9.5. Simulacion del Sistema de Control Optimo . . . . . . 1504.9.6. El Hardware del Sistema de Control . . . . . . . . . . 1534.9.7. Implementacion del Software de Control . . . . . . . . 1604.9.8. Resultados Experimentales . . . . . . . . . . . . . . . 177

4.10. Control Optimo Cuadratico de la Grua-Puente . . . . . . . . 1794.10.1. Formulacion del Problema . . . . . . . . . . . . . . . . 1794.10.2. Simulacion del Sistema Controlado . . . . . . . . . . . 1804.10.3. El Hardware y el Software del Sistema de Control . . 1834.10.4. Resultados experimentales . . . . . . . . . . . . . . . . 187

4.11. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 1874.12. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 202

5. Control Adaptivo 2055.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2055.2. Modelando Procesos No Lineales . . . . . . . . . . . . . . . . 2075.3. Procedimientos de Estimacion . . . . . . . . . . . . . . . . . . 208

5.3.1. El Metodo de los Mınimos Cuadrados Recursivo . . . 2085.3.2. Mınimos Cuadrados Recursivo Mejorado . . . . . . . . 2115.3.3. Estimacion de Estados . . . . . . . . . . . . . . . . . . 219

5.4. La Ley de Control . . . . . . . . . . . . . . . . . . . . . . . . 2195.5. Procedimiento de Diseno . . . . . . . . . . . . . . . . . . . . . 2215.6. Control Adaptivo de un Servomotor No Lineal . . . . . . . . 222

5.6.1. Formulacion del Problema . . . . . . . . . . . . . . . . 2225.6.2. El Modelo del Proceso . . . . . . . . . . . . . . . . . . 2225.6.3. Estimacion de Parametros . . . . . . . . . . . . . . . . 2235.6.4. Estimacion de Estados . . . . . . . . . . . . . . . . . . 2245.6.5. La Ley de Control . . . . . . . . . . . . . . . . . . . . 2245.6.6. La Ley de Control Residual . . . . . . . . . . . . . . . 2255.6.7. Simulacion del Sistema de Control Adaptivo . . . . . . 2255.6.8. Implementacion del Hardware . . . . . . . . . . . . . . 2295.6.9. Implementacion del Software de Control . . . . . . . . 2355.6.10. Resultados Experimentales . . . . . . . . . . . . . . . 252

5.7. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 2535.8. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 279

6. Control Predictivo 2836.1. Control Predictivo Basado en Modelos . . . . . . . . . . . . . 2836.2. Principios del Control Predictivo Basado en Modelos . . . . . 2846.3. El Modelo del Proceso . . . . . . . . . . . . . . . . . . . . . . 287

Page 8: [-] Control Avanzado - Arturo Rojas Moreno

VIII INDICE GENERAL

6.4. El Modelo del Predictor . . . . . . . . . . . . . . . . . . . . . 2906.4.1. Prediccion de y(t+ k/t) . . . . . . . . . . . . . . . . . 2906.4.2. Prediccion de n(t+ k/t) . . . . . . . . . . . . . . . . . 292

6.5. El Controlador Predictivo . . . . . . . . . . . . . . . . . . . . 2966.5.1. Objetivo del Controlador . . . . . . . . . . . . . . . . 2966.5.2. Respuesta Libre y Respuesta Forzada . . . . . . . . . 2976.5.3. La Ley de Control . . . . . . . . . . . . . . . . . . . . 301

6.6. Procedimiento de Diseno . . . . . . . . . . . . . . . . . . . . . 3036.7. Control de Posicion de un Servomotor . . . . . . . . . . . . . 304

6.7.1. Formulacion del Problema . . . . . . . . . . . . . . . . 3046.7.2. Respuesta Libre del Proceso . . . . . . . . . . . . . . . 3056.7.3. Respuesta del Proceso al Escalon . . . . . . . . . . . . 3066.7.4. La Ley de Control . . . . . . . . . . . . . . . . . . . . 3066.7.5. Simulacion del Sistema de Control Predictivo . . . . . 3066.7.6. Implementacion del Hardware . . . . . . . . . . . . . . 3116.7.7. El Software de Control . . . . . . . . . . . . . . . . . . 3126.7.8. Resultados Experimentales . . . . . . . . . . . . . . . 321

6.8. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 3246.9. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 342

7. Control Robusto 3477.1. Estructura del Control con Modelo Interno . . . . . . . . . . 3477.2. Formulacion del Problema CMI . . . . . . . . . . . . . . . . . 353

7.2.1. El Modelo del Proceso . . . . . . . . . . . . . . . . . . 3537.2.2. Descripcion de Incertidumbres del Modelo . . . . . . . 353

7.3. Control Robusto para Procesos Estables . . . . . . . . . . . . 3567.3.1. Rendimiento Nominal . . . . . . . . . . . . . . . . . . 3577.3.2. El Filtro Discreto CMI . . . . . . . . . . . . . . . . . . 3617.3.3. Estabilidad Robusta . . . . . . . . . . . . . . . . . . . 3627.3.4. Rendimiento Robusto . . . . . . . . . . . . . . . . . . 363

7.4. Control Robusto para Procesos Inestables . . . . . . . . . . . 3687.4.1. Rendimiento Nominal . . . . . . . . . . . . . . . . . . 3707.4.2. El Filtro Discreto CMI . . . . . . . . . . . . . . . . . . 3727.4.3. Estabilidad y Rendimiento Robustos . . . . . . . . . . 372

7.5. Procedimiento de Diseno . . . . . . . . . . . . . . . . . . . . . 3737.6. Control Robusto de un Servomotor No Lineal . . . . . . . . . 374

7.6.1. Formulacion del Problema . . . . . . . . . . . . . . . . 3747.6.2. Diseno del Sistema de Control Robusto . . . . . . . . 374

Page 9: [-] Control Avanzado - Arturo Rojas Moreno

INDICE GENERAL IX

7.6.3. Simulacion del Sistema de Control Robusto . . . . . . 3747.6.4. Implementacion del Hardware . . . . . . . . . . . . . . 3757.6.5. Implementacion del Software . . . . . . . . . . . . . . 3767.6.6. Resultados Experimentales . . . . . . . . . . . . . . . 380

7.7. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 3807.8. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 399

8. Control No Lineal 4058.1. Herramientas Matematicas . . . . . . . . . . . . . . . . . . . 406

8.1.1. Derivadas y Corchetes de Lie . . . . . . . . . . . . . . 4068.1.2. Difeomorfismo y Transformacion de Estados . . . . . . 4088.1.3. Transformacion no Lineal de Estados . . . . . . . . . . 4098.1.4. El Teorema de Frobenius . . . . . . . . . . . . . . . . 410

8.2. Grado Relativo . . . . . . . . . . . . . . . . . . . . . . . . . . 4128.3. Forma Normal de Procesos No lineales . . . . . . . . . . . . . 4138.4. Linealizacion Exacta y la Ley de Control . . . . . . . . . . . . 4148.5. Observadores No Lineales . . . . . . . . . . . . . . . . . . . . 4188.6. Procedimiento de Diseno . . . . . . . . . . . . . . . . . . . . . 4218.7. Control No Lineal de un Servosistema . . . . . . . . . . . . . 422

8.7.1. Formulacion del Problema . . . . . . . . . . . . . . . . 4228.7.2. Modelo del Proceso . . . . . . . . . . . . . . . . . . . . 4228.7.3. Determinacion del Grado Relativo . . . . . . . . . . . 4248.7.4. Comprobar Linealizacion Exacta . . . . . . . . . . . . 4248.7.5. La Forma Normal . . . . . . . . . . . . . . . . . . . . 4258.7.6. La ley de Control No Lineal . . . . . . . . . . . . . . . 4278.7.7. Diseno del Observador No Lineal de Estados . . . . . 4308.7.8. Simulacion del Sistema de Control No Lineal . . . . . 4318.7.9. Implementacion del Hardware . . . . . . . . . . . . . . 4398.7.10. Implementacion del Software . . . . . . . . . . . . . . 4398.7.11. Resultados Experimentales . . . . . . . . . . . . . . . 443

8.8. Problemas Resueltos . . . . . . . . . . . . . . . . . . . . . . . 4448.9. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . 451

. Bibliografıa 453

. Indice alfabetico 456

Page 10: [-] Control Avanzado - Arturo Rojas Moreno
Page 11: [-] Control Avanzado - Arturo Rojas Moreno

Prefacio

Fundamentos

A nadie escapa el hecho de que estamos presenciando un dramatico y per-manente desarrollo de dispositivos y equipos basados en tecnica digital, talescomo microcontroladores, tarjetas de desarrollo para procesamiento digitalde senales, sistemas encapsulados, computadoras industriales, sistemas deadquisicion de datos, entre otros. Tales dispositivos y equipos, que cada vezson mas pequenos y de menor costo, pero paradojicamente mas potentes,han provocado que actualmente la gran mayorıa de los sistemas de controlse disenen basados en tecnicas digitales.

Con respecto a las tecnicas empleadas en el diseno de los sistemas de con-trol, podemos observar en la industria que cada vez son mas las aplicacionesbasadas en tecnicas no tradicionales, las cuales denominaremos tecnicas decontrol avanzado. En este contexto, las tecnicas de control avanzado quehan logrado mayor aceptacion son las siguientes: control predictivo, controlno lineal, control robusto, control adaptivo, control optimo, entre otras. Laliteratura tecnica y las publicaciones para cada una de ellas, es de hechoabundante pero lamentablemente esparcida, de modo que el tratamientoaislado de cada tecnica puede consumir gran cantidad de tiempo y esfuerzo.

Esta publicacion integra en un solo volumen, los fundamentos y los pro-cedimientos encaminados al diseno de sistemas de control avanzado y sucorrespondiente implementacion en tiempo real. El material desarrolladobasa sus fundamentos en la representacion de los sistemas de control en elespacio de estado discreto. Sin embargo, no se deja de mencionar y de tratarel 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 funda-mentales requeridos para un mejor entendimiento del material presentado.Las aplicaciones en tiempo real desarrolladas para validar los metodos de

Page 12: [-] Control Avanzado - Arturo Rojas Moreno

XII Prefacio

diseno presentados en los capıtulos del cuatro al ocho, constituyeron proyec-tos de investigacion realizados en la Seccion de Postgrado de la Facultad deIngenierıa Electrica y Electronica de la Universidad Nacional de Ingenierıa(http://fiee.uni.edu.pe), casa de estudios de la cual soy docente.

Herramientas Computacionales

La gran mayorıa de los ejercicios y problemas formulados en este libro sedesarrollan con el auxilio de la computadora personal. Especıficamente, parael desarrollo de los ejemplos y problemas, y para la simulacion de las aplica-ciones, se emplea el software “MATLAB” (version 4.2) con sus herramientas“Control Systems”, “Signal Processing” y “SIMULINK”. El software paralas aplicaciones en tiempo real esta escrito en C/C++ de “Borland”, version4.52. Evidentemente, los programas elaborados tambien pueden ejecutarseen versiones de software mas actualizadas. Los programas fuente se puedendescargar de mi pagina web: http:/fiee.uni.edu.pe/728681F. Antes deemplear tales programas, leer el archivo README.TXT.

Sistema de Unidades y Acentuacion en Programas Fuente

Esta publicacion emplea el Sistema Internacional (SI) de unidades. Paraseparar la parte entera de la parte decimal de los numeros decimales, seguire-mos usando el punto (.) en lugar de la coma (,), debido a que los paquetesde software MATLAB y Borland C/C++ solo permiten emplear el pun-to (.) para expresar numeros decimales. Como tales paquetes de softwareno emplean el acento ortografico, en los listados de los programas fuenteprescindiremos de tal acentuacion.

Sobre el Contenido de los Capıtulos

Capıtulo 1: Matematica Asistida con Computadora. Describeen forma sucinta algunos topicos de matematicas aplicadas (basicamenteanalisis matricial y vectorial) necesarios para el desarrollo de los capıtulosposteriores. La mayorıa de los ejemplos se desarrollan con el auxilio delsoftware MATLAB. De allı la razon del nombre del capıtulo.

Capıtulo 2: Sistemas Discretos. Presenta los conceptos fundamen-tales acerca de los sistemas de control realimentados operando en el tiempodiscreto, y la representacion de los mismos en el espacio de estado.

Capıtulo 3: Modelacion de Procesos. En este capıtulo se desarrollala modelacion de los tres procesos, cuyos sistemas de control avanzado van a

Page 13: [-] Control Avanzado - Arturo Rojas Moreno

XIII

ser implementados en tiempo real. Tales procesos son: el pendulo invertido,la grua-puente y el servomotor D.C. (“Direct Current”) sujeto a cargas nolineales. En su seccion problemas, el capıtulo presenta la modelacion dediversos procesos tıpicos.

Capıtulo 4: Control Optimo. Desarrolla los fundamentos del controloptimo cuadratico discreto y dos aplicaciones en tiempo real: control optimode posicion del pendulo invertido y control optimo de posicion de la grua-puente. En su seccion problemas, el capıtulo desarrolla disenos de sistemasde control optimo cuadratico para varios procesos tıpicos.

Capıtulo 5: Control Adaptivo. Discute brevemente acerca de losprincipales sistemas de control adaptivo, para luego presentar en detalleel procedimiento de diseno de un sistema de control adaptivo con autosin-tonizacion. El procedimiento desarrollado se aplica para implementar entiempo real el control adaptivo con autosintonizacion de la posicion de unservomotor D.C. operando con carga no lineal y variable. En su seccionproblemas, el capıtulo presenta disenos de sistemas de control adaptivo conautosintonizacion para varios procesos tıpicos.

Capıtulo 6: Control Predictivo. Presenta los fundamentos del con-trol predictivo basado en modelos y desarrolla una aplicacion en tiemporeal: control predictivo de la posicion de un servomotor D.C. sujeto a cargasno lineales empleando el algoritmo de la matriz dinamica de control. En suseccion problemas, el capıtulo desarrolla disenos de sistemas de control pre-dictivo para diversos procesos tıpicos, naturalmente, empleando el algoritmode la matriz dinamica de control.

Capıtulo 7: Control Robusto. Trata los fundamentos del control ro-busto basado en la tecnica de control con modelo interno. A continuacion,dicha tecnica se aplica para el control robusto en tiempo real de la posicionde un servomotor D.C. modelado con incertidumbres. Tambien, en su sec-cion problemas, el capıtulo desarrolla disenos de sistemas de control robustopara diversos procesos tıpicos, empleando el algoritmo de control con modelointerno.

Capıtulo 8: Control No Lineal. Desarrolla los fundamentos relaciona-dos con el control no lineal de procesos empleando la tecnica denomina-da linealizacion por realimentacion. Para validar los fundamentos de dichatecnica, se desarrolla el diseno e implementacion del sistema de control porlinealizacion de la realimentacion de la posicion de un servomotor D.C. nolineal. En su seccion problemas, el capıtulo desarrolla disenos de sistemasde control no lineal para diversos procesos tıpicos.

Page 14: [-] Control Avanzado - Arturo Rojas Moreno

XIV Prefacio

Pre-requisitos y Configuracion de Cursos

Por su contenido y su presentacion, este volumen puede ser usado como libro-texto en las especialidades de Ingenierıa Electrica, Electronica, Mecanicay/o Mecatronica, para el dictado de un curso semestral, tanto de antegrado(a llevarse en los ultimos semestres) como de postgrado. Para un curso deantegrado se sugiere desarrollar los capıtulos 1, 2, 3, 4 y 6, y tratar sucin-tamente los capıtulos 5, 7 y 8. Para un curso de postgrado se sugiere cubrirlos capıtulos 3 al 8, quedando los capıtulos 1 y 2 como medio de consulta.

Por su caracter aplicativo, por el tratamiento claro y facilmente com-prensible del material presentado y gracias a la gran cantidad de ejemplos,problemas y aplicaciones desarrollados, este libro puede ser empleado tam-bien por la gran audiencia de ingenieros y tecnicos especializados que ejercenen la industria y por los investigadores de otras areas (fısicos, matematicos,entre otros) que deseen familiarizarse con las tecnicas digitales para disenare implementar en tiempo real sistemas de control avanzado.

Agradecimientos

La publicacion de este libro fue financiada en parte por el Instituto Gene-ral de Investigacion de la UNI. Mi agradecimiento a su Director, Dr. Guiller-mo Lira. Mi gratitud especial a mis alumnos que colaboraron con esta pub-licacion: Leonardo Gushiken (capıtulos 3 y 4), Omar Tupayachi (capıtulos 3y 8) y Raul Benitez (capıtulos 6 y 7). Luis Lecina (alumno de la UniversidadPolitecnica de Cataluna) colaboro con el capıtulo 5. La revision de todo loescrito estuvo a cargo de mi alumna Claudia Cordova, mientras que RommelRomero (mi futuro alumno) se encargo de todo lo relativo a la impresion dellibro.

Arturo Rojas Moreno, [email protected]@uni.edu.pehttp://fiee.uni.edu.pe/728681F

Page 15: [-] Control Avanzado - Arturo Rojas Moreno

Capıtulo 1

Matematica Asistida conComputadora

Este capıtulo es una breve exposicion de los fundamentos matematicos rela-cionados con el analisis matricial, el analisis vectorial y la transformada deLaplace. El material seleccionado esta estrechamente relacionado con el mate-rial a desarrollarse en los capıtulos siguientes. Para mayores detalles del materialcubierto se recomienda consultar las referencias [18], [19], [20], [21], [22], [14]y el apendice A de [3]. Los calculos, en su gran mayorıa, se realizan con el aux-ilio del paquete MATLAB. Todos los archivos correspondientes a los ejerciciosdesarrolados se pueden descargar del sitio: http://fiee.uni.edu.pe/728681F.

1.1. Calculo Matricial

1.1.1. Operaciones y Tipos de Matrices

Nomenclatura

La nomenclatura que se explica a continuacion no esta libre de excep-ciones a la regla. Tales excepciones seran aclaradas conforme aparezcan.

Una matriz A de orden (o dimension) n × m, la cual sera denotadasiempre con letra mayuscula, es un arreglo rectangular con sus elementosaij dispuestos en n filas y m columnas. Es decir:

A = [aij ] =

a11 . . . a1m...

...an1 . . . anm

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

Page 16: [-] Control Avanzado - Arturo Rojas Moreno

2 Matematica Asistida con Computadora

Los elementos de una matriz pueden ser numeros (reales o complejos),funciones, otras matrices, etc. Cuando n = 1, A se convierte en un vectorfila. Cuando m = 1, A toma la forma de un vector columna. Sin embargo,los vectores seran denotados en negrita. Por ejemplo, el vector columna x(t)de orden n se representa como:

x(t) =

x1(t)

...xn(t)

El vector fila correspondiente es:

xT (t) =[x1(t) · · · xn(t)

]; x(t) =

[x1(t) · · · xn(t)

]Tdonde el superındice T indica transpuesta.

El cambio de dominio (o de argumento) de una matriz o vector debido auna transformacion solo afecta al dominio. Por ejemplo, las transformadasde Laplace de A(t), x(t) e Y(t) (subseccion 1.3) se representan como A(s),x(s) e Y(s) respectivamente.

La relacion entre la salida y(.) y la entrada u(.) de un sistema, depen-diendo del argumento, se designa como:

y(t) = g(t) ∗ u(t); y(s) = G(s)u(s)

y(k) = g(k) ∗ u(k); y(z) = G(z)u(z)

donde el asterisco denota la operacion convolucion, t y k son los tiemposcontinuo 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 aun impulso unitario. Mas adelante veremos que el asterisco tambien denotala operacion conjugada en expresiones complejas.

Estados de equilibrio de matrices y vectores variantes con el tiempocontinuo 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 tieneel significado de senal reconstruida por un dispositivo de retencion.

En el caso de vectores variantes con el tiempo (continuo o discreto),y cuando sea necesario, emplearemos variables reducidas (escritas con le-tra minuscula), las cuales tambien se denominan variables de desviacion operturbacionales. Por ejemplo, la variable reducida de Y(k) es:

y(k) = Y(k) − Y(k)

Page 17: [-] Control Avanzado - Arturo Rojas Moreno

1.1 Calculo Matricial 3

Las formas estimadas de A(.), x(.) e Y(.) (para cualquier argumento) serepresentan como A(.), x(.) e Y(.), respectivamente.

Operaciones con Matrices

Una matriz A con todos sus elementos aij iguales a cero se denominamatriz cero o nula y se denota como A = 0. Dos matrices A = [aij ] yB = [bij ] son iguales si son del mismo orden y ademas [aij ] = [bij ].

La suma de dos matrices, denotada como C = A± B, solo es posible siA y B son del mismo orden:

C = [cij ] = A±B = [aij ± bij ]

La multiplicacion de dos matrices, denotada como C = AB, solo esposible si el numero de columnas de A es igual al numero de filas de B. SiA es de orden n×m y B es de orden m× r, entonces C debe ser de ordenn× r. Los elementos de C se determinan como sigue:

cij =m∑

k=1

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

Por ejemplo:

[a11 a12 a13

a21 a22 a23

] b11

b21

b31

=

[c11

c21

]=[a11b11 + a12b21 + a13b31

a21b11 + a22b21 + a23b31

]

Si κ es un escalar, entonces κA resulta una matriz en donde cada elementoqueda multiplicado por κ. Es decir:

κA = κ[aij ] = [κaij ]

La multiplicacion es asociativa:

ABCD = (AB)(CD) = A(BCD) = (ABC)D

y distributiva:

(A+B)(C +D) = AC +AD +BC +BD

Cuando AB = BA, se dice que A y B son matrices que conmutan. Sinembargo, en general, la multiplicacion no es conmutativa:

AB = BA

Page 18: [-] Control Avanzado - Arturo Rojas Moreno

4 Matematica Asistida con Computadora

Si AB = 0, implica que A = 0 o B = 0, o que A y B sean singulares(ecuacion (1.1)). Si AB = AC, no necesariamente implica que B = C.La matriz transpuesta, denotada como AT , es la matriz A con sus filas ycolumnas intercambiadas. Por consiguiente:

(AT )T = A; (A+B)T = AT +BT ; (AB)T = BTAT

Un numero complejo se designa como s = σ + jω, donde j =√−1 es la

unidad de los numeros imaginarios y tanto σ como ω son numeros reales.La operacion conjugada, denotada como A∗, toma la conjugada a todos loselementos complejos de A. Para la operacion conjugada se cumple:

(A∗)∗ = A; (A+B)∗ = A∗ +B∗; (AB)∗ = A∗B∗

La operacion hermitiana, denotada como AH , toma la conjugada y luegola transpuesta (o toma la transpuesta y luego la conjugada) de la matriz A.Es decir:

AH = (A∗)T = (AT )∗

Por consiguiente:

(AH)H = A; (A+B)H = AH +BH ; (AB)H = BHAH

Tipos de Matrices

Si el orden de una matriz A es n × n, entonces la matriz se denominacuadrada de orden n. Esta matriz posee una diagonal principal, o simple-mente una diagonal con elementos aii. La traza de una matriz cuadrada sedefine como:

traza(A) = a11 + · · · + ann

Una matriz cuadrada se denomina matriz diagonal cuando los elementos queno pertenecen a su diagonal son todos ceros:

D = [dii] =

d11 0 0 . . . 00 d22 0 . . . 0...

......

...0 0 0 . . . dnn

Una matriz cuadrada se denomina triangular superior si los elementos debajode su diagonal son todos ceros. Si los elementos encima de de su diagonalson todos ceros, entonces la matriz es triangular inferior.

Page 19: [-] Control Avanzado - Arturo Rojas Moreno

1.1 Calculo Matricial 5

La matriz identidad I, denotada tambien como In (n es el orden dela matriz), es una matriz diagonal que solo posee unos. Si A es cuadrada,AI = IA, y en general se cumple que:

A es simetrica si: AT = A

A es antisimetrica si: AT = −AA es ortogonal si: AAT = ATA = I

A es periodica si: Aκ+1 = A; κ es un entero positivoA es nilpotente si: Aκ = 0; κ es un entero positivoA es hermitiana si: (AT )∗ = (A∗)T = AH = A

A es antihermitiana si: AH = −AA es unitaria si: AAH = AHA = I

A es normal si: AAH = AHA

A−1 es inversa de A si: AA−1 = A−1A = I

A es singular si: det(A) = 0 (1.1)

donde det(A) denota el determinante de A, punto que se trata en la siguientesubseccion.

Una matriz cuadrada A con elementos complejos puede ser escrita co-mo la suma de una matriz hermitiana B = 1

2(A + AH) mas una matrizantihermitiana C = 1

2(A−AH). Es decir:

A = B + C =12(A+AH) +

12(A−AH)

1.1.2. Determinantes y Matriz Inversa

Determinantes

El determinante de la matriz A = [aij ] de orden 2 es:

det

([a11 a12

a21 a22

])= a11a22 − a12a21 (1.2)

Para obtener el determinante de una matriz de orden n > 2 podemosemplear el metodo de la expansion. Si tomamos como base la primera fila,el determinante de una matriz A se obtiene de:

det(A) =n∑

j=1

(−1)1+ja1jdet(A1j) = (−1)1+1a11det(A11)+(−1)1+2a12det(A12)+ · · ·

Page 20: [-] Control Avanzado - Arturo Rojas Moreno

6 Matematica Asistida con Computadora

donde A1j , j = 1, . . . , n es la matriz que resulta luego de eliminar la fila 1y la columna j de A. Por ejemplo, el determinante de una matriz de ordenn = 3 se calcula como:

det

a11 a12 a13

a21 a22 a23

a31 a32 a33

= (−1)1+1a11det

([a22 a23

a32 a33

])+

(−1)1+2a12det

([a21 a23

a31 a33

])+ (−1)1+3a13det

([a21 a22

a31 a32

])(1.3)

Con relacion a dos matrices cuadradas A y B de orden n:

1. Si cada elemento de una fila o columna de A es cero, det(A) = 0.

2. det(A) = det(AT ).

3. Si κ multiplica una fila o columna de A, entonces el det(A) quedamultiplicado por κ.

4. Si B se obtiene intercambiando dos filas o columnas de A, entoncesdet(B) = −det(A).

5. Si dos filas o columnas de A son iguales, entonces det(A) = 0.

6. Si sumamos un multiplo de una fila o columna de A a cualquiera desus filas o columnas, el valor del det(A) no cambia.

7. det(AB) = det(BA) = det(A)det(B)

8. Si los eigenvalores de A son λ1, λ2, . . . , λn, det(A) = λ1λ2 . . . λn.

La determinacion de eigenvalores se trata en la subseccion 1.2.2.

Matriz Inversa

Si A y B son dos matrices no singulares; es decir, si det(A) = 0 ydet(B) = 0, entonces:

(AB)−1 = B−1A−1; (AT )−1 = (A−1)T

((A∗)T )−1 = ((A−1)∗)T ; det(A−1) =1

det(A)

Si A es una matriz no singular de orden 2, vale recordar que:

A =[a bc d

]; A−1 =

1ad− bc

[d −b−c a

](1.4)

Page 21: [-] Control Avanzado - Arturo Rojas Moreno

1.1 Calculo Matricial 7

Si A es una matriz no singular de orden 3:

A =

a b cd e fg h i

A−1 =1

det(A)

det

([e fh i

])−det

([b ch i

])det

([b ce f

])

−det([

d fg i

])det

([a cg i

])−det

([a cd f

])

det

([d eg h

])−det

([a bg h

])det

([a bd e

])

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

Lema de Inversion de Matrices. Si A, B, C y D son matrices nosingulares de orden n×n, n×m, m×n y n×n respectivamente, entonces:

(A+BDC)−1 = A−1 −A−1B(D−1 + CA−1B)−1CA−1 (1.6)

Este lema se demuestra pre-multiplicando cada miembro de la ecuacion (1.6)por (A+BDC). Luego, efectuar las operaciones matriciales resultantes:

(A+BDC)(A+BDC)−1 = I

(A+BDC)[A−1 −A−1B(D−1 + CA−1B)−1CA−1] =

I+BDCA−1−B(D−1+CA−1B)−1CA−1−BDCA−1B(D−1+CA−1B)−1CA−1 =

I +BDCA−1 − (BDD−1 +BDCA−1B)(D−1 + CA−1B)−1CA−1 =

I +BDCA−1 −BD(D−1 + CA−1B)(D−1 + CA−1B)−1CA−1 =

I +BDCA−1 −BDCA−1 = I

Valor Absoluto. Si g = gr + jgi es un numero o una funcion real ocompleja, su valor absoluto, conocido tambien como modulo o magnitud ydenotado como |g|, es un numero real positivo o cero. El angulo de g en radse denota como ∠g. Si e[.] e m[.] son los operadores real e imaginariorespectivamente, entonces se cumple que:

e[g] = gr; m[g] = gi; g = e[g] + jm[g] = |g|∠g

|g| =∣∣∣√(e[g])2 + (m[g])2

∣∣∣ ; ∠g = arctan(m[g]

e[g])

Page 22: [-] Control Avanzado - Arturo Rojas Moreno

8 Matematica Asistida con Computadora

Si G es una matriz compleja con elementos gij , entonces las operacionesanteriores se ejecutan elemento por elemento; es decir:

e[G] = e[gij ]; m[G] = m[gij ]

G = |G|∠G = |gij |∠gij ; |G| = |gij |; ∠G = ∠gij

La tabla 1.1 muestra los comandos para ejecutar operaciones matricialesempleando MATLAB.

Ejemplo 1.1

Dada la matriz cuadrada A, calcular B.

A =

1 − j 2 − j 3 − j

4j −2 3 + 5j6 − j 7 − j 8 + 3j

B =(A∗ +AT − 0,7jA3)A−1AH |A|∠A e[A]m[A]

(2j + 1) traza(A)det(A)

Solucion: El programa en MATLAB para calcular B es el siguiente:

% ejem1_1.m EJEMPLO SOBRE CALCULO MATRICIAL COMPLEJOclear allA = [1-j 2-j 3- j

4j -2 3+5j6-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.8007 - 0.3510i -2.1614 + 0.9495i% 0.2952 + 0.3551i 0.9809 + 1.0977i -2.6468 - 2.9592i% 0.8222 + 0.1991i 2.7135 + 0.5050i -7.3267 - 1.3550i

Ejemplo 1.2

Determinar la matriz hermitiana B y la antihermitiana C de la matriz Adel ejemplo anterior.

Page 23: [-] Control Avanzado - Arturo Rojas Moreno

1.1 Calculo Matricial 9

Cuadro 1.1: Comandos para computo matricial

Operacion Codigo MATLABSuma A+B A + BResta A−B A - BMultiplicacion AB A*BMultiplicacion κA; κ: complejo kappa*AConjugada A∗ conj(A)Transpuesta (A real) AT A’Transpuesta (A compleja) AT conj(A’); A.’Hermitiana AH A’Potencia An A^nDeterminante det(A) det(A)Inversa A−1 inv(A)Division izquierda A*X = B; X = A\BDivision derecha X*A = B; X = B/AValor absoluto |A| abs(A)

Angulo ∠A angle(A)Parte real [A] real(A)Parte maginaria [A] imag(A)Traza

∑ni=1 aii trace(A)

Matriz identidad In eye(n)

Page 24: [-] Control Avanzado - Arturo Rojas Moreno

10 Matematica Asistida con Computadora

Solucion: Las matrices pedidas son:

B =12(A+AH); C =

12(A−AH)

y se puede comprobar que B = BH y C = −CH . Ver programa ejem1 2.m.

% ejem1_2.m MATRICES HERMITIANASclear allA = [1-j 2-j 3-j

4j -2 3+5j6-j 7-j 8+3j];

B = (A + A’)/2; C = (A - A’)/2;

ZB = B - B’; % ZB RESULTA LA MATRIZ CEROZC = C + C’; % ZC RESULTA LA MATRIZ CERO

Ejemplo 1.3

Multiplicacion con Particion de Matrices.- Dos matrices Anm y Bmp

(los subındices indican las dimensiones) pueden ser particionadas como sigue:

A =

An1m1 · · · An1mm

......

Annm1 · · · Annmm

; B =

Bm1p1 · · · Bm1pp

......

Bmmp1 · · · Bmmpp

La condicion necesaria para realizar el producto Cnp = AnmBmp empleandoparticiones, es que las columnas de A y las filas de B sean particionadasen la misma forma. Por tanto, n = n1 + · · · + nn, m = m1 + · · · + mm yp = p1 + · · · + pp. Determinar si el producto siguiente es valido y si lo es,obtener C = AB.

AB =

A22 A23 A21

A32 A33 A31

A42 A43 A41

B22 B23

B32 B33

B12 B13

Solucion: Podemos notar que para A: n = 2+3+4 = 9, m = 2+3+1 = 6,y para B: m = 2 + 3 + 1 = 6 y p = 2 + 3 = 5. Por consiguiente, la particiones correcta. La multiplicacion ahora es directa:

C =

A22B22 +A23B32 +A21B12 A22B23 +A23B33 +A21B13

A32B22 +A33B32 +A31B12 A32B23 +A33B33 +A31B13

A42B22 +A43B32 +A41B12 A42B23 +A43B33 +A41B13

En notacion MATLAB, conociendo las matrices particionadas, el productoresulta:

Page 25: [-] Control Avanzado - Arturo Rojas Moreno

1.1 Calculo Matricial 11

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

Ejemplo 1.4

Matriz Aumentada.- Si los vectores x, y, v y w son de orden n, m, p y qrespectivamente, obtener una ecuacion que reemplace a las dos ecuacionesdiferenciales siguientes:

dxdt

= Ax +Bv;dydt

= Cy +Dw

Solucion: Las matrices A con C y B con D forman matrices aumentadascomo sigue: [ dx

dtdydt

]=[A 00 C

] [xy

]+[B 00 D

] [vw

]

Ejemplo 1.5

Si los λi son los eigenvalores de la matriz A de orden n, comprobar numeri-camente que:

det(A) = λ1λ2 . . . λn; i = 1, . . . , n

Solucion: Ver el programa ejem1 5.m.

% ejem1_5.m COMPRUEBA QUE det(A)=L(1)L(2)L(3)L(4)clear allA = [1-j 2-j 3-j -3+8j

4j -2 3+5j 4-2j6-j 7-j 8+3j 3+j2 -1 j 0];

L = eig(A); % DETERMINA LOS EIGENVALORES DE AdetA = 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 yDmm con det(A) = 0 y det(D) = 0,y definiendo:

E =[A B0 D

]; G =

[A 0C D

]; H =

[A BC D

]

Page 26: [-] Control Avanzado - Arturo Rojas Moreno

12 Matematica Asistida con Computadora

demuestre numericamente que:

det(E) = det(G) = det(A)det(D)

det(H) = det(A)det(D − CA−1B) = det(D)det(A−BD−1C)

Solucion: El siguiente programa demuestra numericamente lo pedido.

% ejem1_6.m DETERMINANTE DE MATRICES PARTICIONADASclear 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 4j1+3j 0 -7j1+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 0H = [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 numericamente que:[A B0 D

]−1

=[A−1 −A−1BD−1

0 D−1

][A 0C D

]−1

=[

A−1 0−D−1CA−1 D−1

]Solucion: Ver el programa ejem1 7.m.

Page 27: [-] Control Avanzado - Arturo Rojas Moreno

1.1 Calculo Matricial 13

% ejem1_7.m INVERSION DE MATRICES PARTICIONADASclear 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 4j1+3j 0 -7j1+j -9-2j -5];

% CONDICION: det(A) y det(D) DISTINTOS DE 0% LA MATRIZ CERO DEBE SER DE ORDEN (m,n)Z1 = zeros(3,2);E = [A B

Z1 D];G = [inv(A) -inv(A)*B*inv(D)

Z1 inv(D)];% LA MATRIZ CERO DEBE SER DE ORDEN (m,n):Z2 = zeros(2,3);F = [A Z2

C D];H = [inv(A) Z2

-inv(D)*C*inv(A) inv(D)];% E*G, G*E, F*H y H*F DEBEN RESULTAR MATRICES IDENTIDAD

Ejemplo 1.8

Demostrar numericamente que:[A BC D

]−1

=[A−1 +A−1B(D − CA−1B)−1CA−1 −A−1B(D − CA−1B)−1

−(D − CA−1B)−1 (D − CA−1B)−1

]

[A BC D

]−1

=[

(A−BD−1C)−1 −(A−BD−1C)−1BD−1

−D−1C(A−BD−1C)−1 D−1C(A−BD−1C)−1BD−1 +D−1

]

Solucion: Ver en el siguiente programa la demostracion pedida.

% ejem1_8.m INVERSION DE MATRICES PARTICIONADASclear all

% MATRICES DATOS CON n=2 Y m=3:A = [-3+j 4-2j

Page 28: [-] Control Avanzado - Arturo Rojas Moreno

14 Matematica Asistida con Computadora

5-8j -7-2j];B = [ j -1+3j 2-5j

4+7j 6 3+8j];C = [ 2-j j

1+j -5j-3-7j 8];

D = [2+j -3-j 4j1+3j 0 -7j1+j -9-2j -5];

% CONDICION: det(D) Y det(D-C*inv(A)*B) DISTINTOS DE 0E = [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 0H11 = inv(A-B*inv(D)*C);H12 = -inv(A-B*inv(D)*C)*B*inv(D);H21 = -inv(D)*C*inv(A-B*inv(D)*C);H22 = inv(D)*C*inv(A-B*inv(D)*C)*B*inv(D)+inv(D);H = [H11 H12;H21 H22];

% E*G, E*H, G*E y H*E DEBEN RESULTAR MATRICES IDENTIDAD

1.1.3. Derivadas e Integrales con Matrices y Vectores

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

d

dtA(t) =

ddta11(t) · · · d

dta1m(t)...

...ddtan1(t) · · · d

dtanm(t)

;

∫A(t) =

∫a11(t) · · · ∫

a1m(t)...

...∫an1(t) · · · ∫

anm(t)

(1.7)Derivada e integral de un vector x(t) = [x1 . . . xn]T :

d

dtx(t) =

ddtx1(t)

...ddtxn(t)

;

∫x(t) =

∫x1(t)...∫xn(t)

(1.8)

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

d

dt[A+B] =

d

dtA+

d

dtB;

d

dt[AB] =

dA

dtB +A

dB

dtd

dt[Ak] =

dA

dtk +A

dk

dt;

d

dtA−1 = −A−1dA

A

−1

(1.9)

Page 29: [-] Control Avanzado - Arturo Rojas Moreno

1.2 Analisis Vectorial 15

Derivada parcial de una funcion escalar J(x) de variable vectorial:

∂J

∂x=

∂J∂x1...

∂J∂xn

;

∂2J

∂x2=

∂2J∂x2

1

∂2J∂x1∂x2

· · · ∂2J∂x1∂xn

......

...∂2J

∂xn∂x1

∂2J∂xn∂x2

· · · ∂2J∂x2

n

(1.10)

Derivada total de una funcion escalar V (x(t)) de variable vectorial:

d

dtV (x(t)) =

(∂V

∂x

)T dxdt

(1.11)

Jacobiano de una funcion vectorial f(x) de orden m con argumento vectorialde orden n:

∂f∂x

=

∂f1

∂x1

∂f2

∂x1· · · ∂fm

∂x1∂f1

∂x2

∂f2

∂x2· · · ∂fm

∂x2...

......

∂f1

∂xn

∂f2

∂xn· · · ∂fm

∂xn

(1.12)

Si la matriz cuadrada A y los vectores x e y son reales y de orden n secumple:

∂xxTAx = Ax +ATx

∂xxTAy = Ay;

∂yxTAy = ATx (1.13)

Si A es una matriz hermitiana de orden n y x e y son vectores complejos deorden n, se cumple:

∂x∗xHAx = Ax

∂x∗xHAy = Ay;

∂yxHAy = ATx∗ (1.14)

1.2. Analisis Vectorial

1.2.1. Independencia, Ortonormalidad y Normas

Independencia de Vectores

Se dice que los vectores xi, i = 1, . . . , n son linealmente independientessi:

n∑i=1

cixi = 0

Page 30: [-] Control Avanzado - Arturo Rojas Moreno

16 Matematica Asistida con Computadora

La ecuacion anterior implica que las constantes ci = 0, i = 1, . . . , n, o quedet([x1 . . .xn]) = 0.

Operacion con Vectores Complejos y Reales

Si x e y son vectores complejos de orden n:

xHy = (yHx)∗ = yTx∗ =n∑

i=1

x∗i yi

xHx =n∑

i=1

x∗ixi =n∑

i=1

|xi|2

xxH =

x1x

∗1 x1x

∗2 . . . x1x

∗n

. . ....

...xnx

∗1 xnx

∗2 . . . xnx

∗n

(1.15)

Si x e y son vectores reales de orden n:

xTy = yTx =n∑

i=1

xiyi; xTx =n∑

i=1

x2i

xxT =

x21 x1x2 . . . x1xn

. . ....

...xnx1 xnx2 . . . x2

n

(1.16)

Vectores Ortonormales

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

y xTi xj = 0 cuando i = j.

Normas de Vectores y Matrices

Norma de un Vector

En general, una norma es una medida del tamano de un vector o matriz.La ejecucion de la norma resulta en un escalar positivo. La norma de unvector denotada como ‖ x ‖ posee las propiedades siguientes:

‖ x ‖≥ 0 para todo x = 0

Page 31: [-] Control Avanzado - Arturo Rojas Moreno

1.2 Analisis Vectorial 17

‖ x ‖= 0 si y solo si x = 0‖ κx ‖=‖ κ ‖‖ x ‖ κ es un escalar

Desigualdad triangular: ‖ x + y ‖≤‖ x ‖ + ‖ y ‖Desigualdad de Schwarz: |xHy| ≤‖ x ‖‖ y ‖

La norma mas empleada es la Euclidiana:

‖ x ‖2= (xHx)1/2 =√

|x1|2 + |x2|2 + · · · + |xn|2 (1.17)

que es un caso particular de la siguiente norma:

‖ x ‖=√

(Px)H(Px) =√

xHPHPx =√

xHQx)] ≥ 0; Q = PHP = QH

Otras normas pueden ser definidas como:

‖ x ‖=n∑

i=1

|xi|; ‖ x ‖∞= maxi

|xi|; ‖ x ‖−∞= mıni

|xi|

‖ x ‖p=

(n∑

i=1

|xi|p)1/p

Norma de una Matriz

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

‖ A ‖≤ κ ‖ A ‖

Tal norma cumple las propiedades de la norma de un vector. En adicion,tambien cumple:

‖ A ‖=‖ AH ‖; ‖ A ‖=‖ AT ‖; ‖ Ax ‖≤‖ A ‖‖ x ‖

‖ A ‖2= maxx

[xHAHAx], si xHx = 1

|λ| ≤‖ A ‖, si λ es un eigenvalor de A

Otras normas para una matriz A de orden n son:

‖ A ‖=n∑

i=1

n∑j=1

|aij |; ‖ A ‖F =

n∑

i=1

n∑j=1

|aij |2

1/2

Page 32: [-] Control Avanzado - Arturo Rojas Moreno

18 Matematica Asistida con Computadora

‖ A ‖1= maxj

(m∑

i=1

|aij |)

; ‖ A ‖∞= maxi

n∑

j=1

|aij |

‖ A ‖2= maxi

√λi(AHA)

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 numero maximo r de sus vectores columnas linealmente indepen-dientes. Si A es una matriz de orden n×m y B es de orden m× k:

rango(AB) = rango(AH) = rango(AHA) = rango(AAH)rango(AB) = rango(AT ) = rango(ATA) = rango(AAT )rango(AB) ≤ rango(A); rango(AB) ≤ rango(B)rango(AB) = rango(A), si A y B son no singularesrango(AB) = rango(B), si A y B son no singulares

Si A es una matriz de orden n y det(A) = 0, entonces:

rango(A) = n

Eigenvalores y Eigenvectores

Un eigenvalor de una matriz de orden n, conocido tambien como valorpropio, modo, “eigenvalue”, valor o raız caracterıstica, es un escalar λ quepermite una solucion no trivial de la ecuacion:

Ax = λx x ≤ 0 (1.18)

Factorizando x obtenemos la ecuacion caracterıstica de A:

det(λI −A) (1.19)

Asociado con cada eigenvalor λi existe un eigenvector ei de magnitud arbi-traria que es solucion de Aei = λei. Para un eigenvector normalizado e, sunorma Euclidiana es uno: ‖ e ‖= 1.

Page 33: [-] Control Avanzado - Arturo Rojas Moreno

1.2 Analisis Vectorial 19

1.2.3. Diagonalizacion de Matrices

Matrices Similares

Se dice que dos matrices A y B de orden n son similares si existe unamatriz P no singular tal que P−1AP = B y B = PAP−1.

Sea A una matriz de orden n que posee n eigenvalores distintos. SeaE = [e1 . . . en] una matriz formada con los eigenvectores de A y sea Λuna matriz diagonal cuyos elementos son los eigenvalores de A. Entonces sedice que A y Λ son similares porque:

E−1AE = Λ =

λ1 0 . . . 00 λ2 . . . 0...

......

0 0 . . . λn

; EΛE−1 = A (1.20)

Forma Canonica de Jordan

Si una matriz A de orden n posee r eigenvectores linealmente indepen-dientes, la forma de Jordan es una matriz J que posee n − r unos sobre ladiagonal, con todos los demas elementos iguales a cero. Por ejemplo, si losvalores propios de A de orden n = 5 son λ1, λ1, λ1, λ2, λ3, entonces sonposibles varias formas de J (se muestran cuatro):

J1 =

λ1 1 0 0 00 λ1 1 0 00 0 λ1 0 00 0 0 λ2 00 0 0 0 λ3

J2 =

λ1 1 0 0 00 λ1 0 0 00 0 λ1 0 00 0 0 λ2 00 0 0 0 λ3

J3 =

λ1 0 0 0 00 λ1 0 0 00 0 λ1 0 00 0 0 λ2 00 0 0 0 λ3

J4 =

λ1 0 0 0 00 λ2 0 0 00 0 λ1 1 00 0 0 λ1 10 0 0 0 λ3

Notar que J1 y J4 deben poseer tres eigenvectores linealmente independien-tes, la matriz diagonal J3 cinco y J2 cuatro. Para un problema especıfico, laforma 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 multiples,y si el rango de [λI − A] es k − s, donde 1 ≤ s ≤ k, entonces exis-

Page 34: [-] Control Avanzado - Arturo Rojas Moreno

20 Matematica Asistida con Computadora

ten s eigenvectores linealmente independientes asociados con λ. Porconsiguiente, existen s bloques de Jordan.

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

1.2.4. Formas Cuadraticas y Bilineales

Formas Cuadraticas

Una forma cuadratica es un polinomio real que contiene terminos de laforma aijx

∗ixj . Si A = [aij ] = AH es una matriz hermitiana de orden n y x

es un vector complejo de orden n, entonces:

xHAx =n∑

i=1

n∑j=1

aijx∗ixj ; aji = a∗ij

Si A = [aij ] = AT es una matriz real y simetrica de orden n y x es un vectorreal de orden n:

xTAx =n∑

i=1

n∑j=1

aijxixj ; aji = aij

Formas Bilineales

Una forma bilineal es un polinomio real que contiene terminos de la formaaijx

∗i yj . Si A = [aij ] es una matriz compleja de orden n, y si los vectores

complejos x e y son de orden n y m respectivamente, entonces:

xHAy =n∑

i=1

m∑j=1

aijx∗i yj

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

xTAy =n∑

i=1

m∑j=1

aijxiyj

Page 35: [-] Control Avanzado - Arturo Rojas Moreno

1.2 Analisis Vectorial 21

Definicion y Semidefinicion de Matrices

Para una matriz A de orden n, las expresiones A > 0, A ≥ 0, A < 0y A ≤ 0 denotan que A es definida positiva, semidefinida positiva, definidanegativa y semidefinida negativa respectivamente. Hemos visto que la formacuadratica xHAx esta asociada con la matriz hermitiana A, ası como xTAxlo esta con la matriz real y simetrica A.

Una matriz A de orden n es definida positiva si su forma cuadraticaasociada es siempre positiva, excepto cuando x = 0. Si todos los eigenvaloresde A son positivos, entonces A > 0.

Una matriz A de orden n es semidefinida positiva si su forma cuadraticaasociada es mayor o igual a cero cuando x = 0. Si los eigenvalores de A sonpositivos o nulos, entonces A ≥ 0.

Una matriz A de orden n es definida negativa si su forma cuadraticaasociada es siempre negativa, excepto cuando x = 0. Si todos los eigenvaloresde A son negativos, entonces A < 0.

Una matriz A de orden n es semidefinida negativa si su forma cuadraticaasociada es menor o igual a cero cuando x = 0. Si los eigenvalores de A sonnegativos o nulos, entonces A ≤ 0.

Si la matriz A posee eigenvalores positivos y negativos, entonces A esindefinida.

La tabla 1.2 muestra los comandos para ejecutar otras operaciones ma-triciales y vectoriales empleando MATLAB.

Ejemplo 1.9

Resolver el siguiente sistema (mas incognitas que ecuaciones):

(5 − j)x1 + (2 + 3j)x2 + (3 − j)x3 + (−1 + 4j)x4 + (−6 + j)x5 = 2 − 9j4jx1 − 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

Solucion: Ver el programa ejem1 9.m.

% ejem1_9.m SISTEMA DE ECUACIONES: MAS INCOGNITAS QUE ECUACIONESclear allA = [5-j 2+3j 3-j -1+4j -6+j

4j -2 3+5j -7j 8-2j6-j 7-j 8-3j 3-j 1+4j];

Page 36: [-] Control Avanzado - Arturo Rojas Moreno

22 Matematica Asistida con Computadora

Cuadro 1.2: Comandos para computo matricial y vectorial

Operacion Codigo MATLAB

Producto interno complejo xHy x’*y

Producto interno real xTy x’*y

Producto por elemento aijbij A.*B

Division por elemento aij/bij A.\B; A./B

Potencia por elemento (aij)bij A.^B

Norma matricial ‖ A ‖1= maxj∑m

i=1 |aij | norm(A,1)

Norma matricial ‖ A ‖2= maxi

√λi(AHA) norm(A,2)

Norma matricial ‖ A ‖∞= maxi∑n

j=1 |aij | norm(A,inf)

Norma matricial ‖ A ‖F =(∑

ij |aij |2)1/2

norm(A,’fro’)

Norma vectorial ‖ x ‖p= (∑n

i=1 |xi|p)1/p norm(x,p)

Norma vectorial ‖ x ‖2=√

xHx norm(x)

Norma vectorial ‖ x ‖∞= maxi |xi| norm(x,inf)

Norma vectorial ‖ x ‖−∞= mıni |xi| norm(x,-inf)

Rango rank(A)

Eigenvalores λi eig(A)

Eigenvectores E = [e1 . . . en] [E,D]=eig(A)

Page 37: [-] Control Avanzado - Arturo Rojas Moreno

1.2 Analisis Vectorial 23

B = [2-9j;4-j;3+j];X = A\B; %

% X =% 3.5719 - 3.4126i --> x1;% 0 --> x2% -2.8535 + 1.6221i --> x3% 0 --> x4% 0.9991 - 0.4860i --> x5

Ejemplo 1.10

Resolver el siguiente sistema (menos incognitas que ecuaciones):

(5 − j)x1 + (2 + 3j)x2 + (3 − j)x3 = 2 − 9j4jx1 − 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

Solucion: Ver el programa ejem1 10.m.

% ejem1_10.m SISTEMA DE ECUACIONES: MENOS INCOGNITAS QUE ECUACIONESclear allA = [5-j 2+3j 3-j

4j -2 3+5j6-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 numericamente que:

xHy = (yHx)∗ = yTx∗

Solucion: Ver el programa ejem1 11.m.

Page 38: [-] Control Avanzado - Arturo Rojas Moreno

24 Matematica Asistida con Computadora

% ejem1_11.m CALCULO VECTORIALclear all

% VECTORES DATOSx = [-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 vecto-riales.

% ejem1_12.m NORMASclear all

% VECTOR DATOx = [-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 DATOA = [1-j 2-j 3-j -4-j

4j -2 3+5j 2-8j6-j 7-j 8+3j -7+3j3+5j 2-8j 1-j 2-9j];

e = norm(A); % MAXIMO EIGENVALOR DE A: e = 18.7269f = norm(A,2); % LO MISMO QUE norm(A): e = f = 18.7269g = norm(A,1); % max(sum(abs(A)))): g = 29.2046h = norm(A,inf); % max(sum(abs(A’))): h = 29.3136k = norm(A,’inf’); % IGUAL QUE norm(A,inf): k = h = 29.3136m = norm(A,’fro’); % sqrt(sum(diag(A’*A))): m = 23.7276p = ’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 numericamente las siguien-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).

Solucion: El siguiente programa presenta las demostraciones pedidas.

Page 39: [-] Control Avanzado - Arturo Rojas Moreno

1.2 Analisis Vectorial 25

% ejem1_13.m PROPIEDADES DEL RANGOclear all

% MATRICES DATOA = [-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-5j8+9j -4+2j-2+3j -4-6j-5-6j -2+5j]; % ORDEN (4,2)

C = [-1+j -2+j 3-j -5-7j4-2j -1+j -4 24-6j -2-5j 7j -j7j -1 9j 4j]; % ORDEN (4,4)

rA = rank(A); rAH = rank(A’); rB = rank(B);rAB = rank(A*B); rCB = rank(C*B);

% SE DEBE CUMPLIR: rA MENOR O IGUAL QUE min(3,4);% rA = rAH% rAB MENOR O IGUAL QUE min(rA,rB)% rCB = rB

Ejemplo 1.14

El siguiente programa determina la forma de Jordan para la matriz:

A =

0 1 0 30 −1 1 10 0 0 10 0 −1 −2

% ejem1_14.m FORMA CANONICA DE JORDANclear allA = [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 = % LOS EIGENVALORES DE A FORMAN LA DIAGONAL DE D% 0 0 0 0% 0 -1 0 0

Page 40: [-] Control Avanzado - Arturo Rojas Moreno

26 Matematica Asistida con Computadora

% 0 0 -1 0% 0 0 0 -1rank((-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 definicion de las matrices siguientes:

A =

2 2 −2

2 6 0−1 0 2

; B =

1 2 1

2 4 23 6 0

Solucion: Ver el programa ejem1 15.m.

% ejem1_15.m DEFINICION DE MATRICESclear allA = [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 POSITIVOSB = [1 2 1;2 4 2;3 6 0];EigB = eig(B); % EIGENVALORES DE B: 0, 7.1098, -2.1098

% B ES INDEFINIDA PUES UN EIGENVALOR ES > 0 Y EL OTRO ES < 0

1.3. La Transformada de Laplace

La transformada de Laplace de una funcion g(t) se define como:

g(s) = L[g(t)] =∫ ∞

0g(t)e−stdt (1.21)

donde s es la variable laplaciana. La transformada de Laplace es util paramodelar sistemas lineales invariantes con el tiempo. Su transformada inversase designa como:

g(t) = L−1[g(s)] (1.22)

Como ejemplo, la transformada de Laplace de la funcion g(t) = e−at, dondea es real, se determina como sigue:

L[e−at] =∫ ∞

0e−ate−stdt =

[−e−(s+a)t

s+ a

]∞0

=1

s+ a

Page 41: [-] Control Avanzado - Arturo Rojas Moreno

1.3 La Transformada de Laplace 27

La tabla 1.3 muestra la transformada de Laplace de algunas funciones. Al-gunas de sus propiedades se muestran en la tabla 1.4.

Cuadro 1.3: Transformadas de LaplaceDescripcion g(t) g(s)

Impulso unitario δ(t) 1

Escalon unitario µ 1s

Rampa unitaria t 1s2

Rampa de orden n tn n!sn+1 ; n! = n(n− 1) . . .

Exponencial e−at 1s+a

Seno senωt ωs2+ω2

Coseno cosωt ss2+ω2

Seno amortiguado e−atsenωt ω(s+a)2+ω2

Coseno amortiguado e−atcosωt s+a(s+a)2+ω2

Cuadro 1.4: Propiedades de la transformada de LaplaceDescripcion Propiedad

Derivacion L[

dgdt

]= sg(s) − g(0), g(0) = [g(t)]t=0

Derivacion de orden n L[

dngdtn

]= sng(s) − sn−1g(0) − · · · − gn−1(0)

gn−1(0) =[

dn−1

dtn−1g(t)

]t=0

Integral L[∫ t

0 g(t)dt]

= g(s)s

Desplazamiento en tiempo L[g(t− t0)µ(t− t0)] = e−t0sg(s)

Desplazam. en frecuencia L[e−atg(t)] = g(s+ a)

Valor inicial lımt→0 g(t) = lıms→∞ sg(s)

Valor final lımt→∞ g(t) = lıms→0 sg(s)

Ejemplo 1.16

La figura 1.1 muestra un carro de masa m = 1000 kg desplazandose con unavelocidad v gracias a la accion de la fuerza u producida por su motor. Si se

Page 42: [-] Control Avanzado - Arturo Rojas Moreno

28 Matematica Asistida con Computadora

desprecia la inercia de las ruedas y se asume que la fuerza de friccion bv eslo unico que se opone al movimiento, donde b= 50 N-s/m es el coeficientede friccion, entonces la dinamica del proceso puede modelarse como:

mv(t) + bv(t) = u(t); v =dv

dt

Determinar la funcion de transferencia del proceso y su respuesta a un es-calon de 1 m/s, sabiendo que la entrada es u y la salida es v.

ubvfriccion

v velocidad

m

Figura 1.1: Movil en movimiento.

Solucion: La funcion de transferencia del proceso se obtiene aplicando lapropiedad de derivacion de orden n (tabla 1.4), con todas las condicionesiniciales iguales a cero:

msv(s) + bv(s) = u(s);v(s)u(s)

=1

ms+ b

Dado que la entrada es un escalon, u(s) = 1s . La salida se determina de:

v(t) = L−1[v(s)] = L−1

[1

s(ms+ b)

]=

1bL−1

[1s− 1s+ b

m

]

y empleando la tabla 1.3 obtenemos:

v(t) =1b(1 − e−bt/m)

Ejemplo 1.17

Empleando las propiedades del valor inicial y del valor final, determinar talesvalores para la velocidad del movil del problema anterior.

Solucion: El valor inicial se determina de: lımt→0 v(t) = lıms→∞ sv(s) = 0.El valor final se obtiene de: lımt→∞ v(t) = lıms→0 sv(s) = 1

b .

Page 43: [-] Control Avanzado - Arturo Rojas Moreno

Capıtulo 2

Sistemas Discretos

En este capıtulo se exponen los conceptos de variables de estado, muestreoy reconstruccion de senales en los procesos a controlar. Tambien se trata la dis-cretizacion directa de procesos continuos, la transformada Z como herramientade discretizacion, las formas canonicas de los procesos en el espacio de estadodiscreto y los conceptos de controlabilidad y observabilidad. El material expuestopretende dar una base solida acerca de los sistemas de control en el dominiodiscreto. Todos los archivos correspondientes a los ejercicios desarrollados eneste capıtulo se pueden descargar del sitio: http://fiee.uni.edu.pe/728681F.

2.1. Diseno de Sistemas de Control Digital

La figura 2.1 muestra la estructura de un sistema de control digital,cuyo objetivo de control es lograr que la senal de salida Y del proceso (decaracter continuo, como en la mayorıa de los casos) siga a la senal de re-ferencia r cumpliendo determinadas especificaciones de diseno, tales como:mınimo tiempo de estabilizacion, mınimo sobreimpulso y/o error en estadoestacionario nulo en Y . En otras palabras, el algoritmo de control implemen-tado, en este caso digitalmente, debe ser capaz de crear una senal de controlU (la variable manipulada), la cual actuando sobre el proceso a traves de unactuador, minimice la senal de error e. El bloque de filtraje es util para eli-minar las componentes contaminantes de alta frecuencia de la senal de ruidode medicion n. El filtro de ruido puede ser analogico o digital y su inclusiondepende de la magnitud del ruido y su relevancia dentro del funcionamientodel sistema de control.

Page 44: [-] Control Avanzado - Arturo Rojas Moreno

30 Sistemas Discretos

Muestreadory y

Proceso

ActuadorD/Ay

RetencionDigital

Computadora

MedicionFiltraje

n

Disturbios

er U Y

A/D

Figura 2.1: Estructura de un sistema de control digital.

En la estructura de control descrita en el parrafo anterior, el algorit-mo de control se implementa en un dispositivo digital que puede ser unacomputadora personal, una computadora de procesos (con capacidad paramanejar varios lazos de control), un microcontrolador o una tarjeta PDS(Procesamiento Digital de Senales). El procesamiento digital del algoritmode control requiere de la presencia de los dispositivos de adquisicion de datos:muestreadores, conversores de senal A/D (analogico a digital) y D/A (digitala analogico) y retenedores (reconstructores) de senal.

La configuracion mostrada en la figura 2.1 no es unica. Por ejemplo, dadoel caso, la senal de referencia y la comparacion de senales pueden ser gene-radas dentro de la computadora digital. En otros casos, si el actuador y losdispositivos de medicion son capaces de procesar senales digitales, entoncestales dispositivos pueden actuar directamente sobre el proceso, dando lugara nuevas configuraciones. En las aplicaciones descritas en este libro, el dispo-sitivo de procesamiento digital es una computadora personal, los sensores desenal son decodificadores electronicos de pulsos (“encoders”), mientras queel actuador es una combinacion de un servomotor D.C. (de corriente directa)con un amplificador electronico PWM (“Pulse Width Modulation”).

El empleo del procesamiento digital permite la realizacion de algorit-mos de control sofisticados existentes en la teorıa de control moderna, perotambien refuerza la interrogante sobre que algoritmo de control es adecuadopara determinada aplicacion. Una respuesta a esta interrogante solo es posi-ble si se tiene conocimiento suficiente del modelo de la dinamica del procesoa controlar y de sus senales. Tal conocimiento va a permitir la seleccion ade-cuada de un algoritmo de control que sea capaz de hacer cumplir el objetivode control con el menor gasto (computacional, por ejemplo) y con el mayorrendimiento (satisfaccion de las especificaciones de diseno).

Page 45: [-] Control Avanzado - Arturo Rojas Moreno

2.2 Concepto de Estado y Variables de Estado 31

2.2. Concepto de Estado y Variables de Estado

La dinamica de un proceso multivariable, es decir, un proceso que poseemultiples entradas y multiples salidas, puede ser representada en el espaciode estado mediante dos conjuntos de ecuaciones diferenciales ordinarias deprimer 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 rrespectivamente, X es el vector de estado de orden n, U es el vector decontrol de orden m, Y es el vector de salida de orden r, v es el vector dedisturbios (de orden n) en los estados, y w es el vector de disturbios (deorden r) en las salidas. El tiempo t se incluye como parte del argumentopara indicar que pueden existir parametros variantes con el tiempo. En estepunto es conveniente definir el concepto de estado:

El vector de estado X = [X1 . . . Xn]T de un proceso (donde el su-perındice T indica transpuesta) es el mınimo conjunto de variables, las va-riables de estado X1 . . . Xn, las cuales contienen informacion suficienteacerca de la historia pasada del proceso. Esta informacion permite computartodos los futuros estados del proceso, asumiendo por supuesto, que todas lasfuturas entradas U son tambien conocidas, como del mismo modo lo son lasecuaciones dinamicas que describen dicho sistema. El numero n de variablesde estado define el orden o la dimension del sistema.

El espacio de estado es el espacio n-dimensional de todos los estados.Cuando el sistema es de orden n = 2, el espacio de estado es conocido comoel plano de fase con coordenadas X1 y X2. Los puntos de equilibrio en elespacio de estado para el proceso descrito en (2.1) se determinan cuando elestado del proceso no cambia gracias a la accion de una fuerza de entradaU. Por tanto, los puntos de equilibrio (X) se determinan de:

˙X = f(X, U) = 0 (2.2)

2.2.1. Linealizacion de Procesos

La representacion linealizada en el espacio de estado de (2.1), sin lapresencia de parametros variantes con el tiempo, es la siguiente:

x = Ax +Bu + Ev

Page 46: [-] Control Avanzado - Arturo Rojas Moreno

32 Sistemas Discretos

y = Cx +Du + Fw (2.3)

donde A es la matriz de estado, B es la matriz de control, E es la matrizde disturbios en los estados, C es la matriz de salida de los estados, D esla matriz de salida de las entradas y F es la matriz de disturbios en lassalidas. Las dimensiones de dichas matrices son: Ann, Bnm, Enn, Crn, Drm

y Err, donde el primer subındice es el numero de filas de la matriz y elsegundo, el numero de columnas. Es importante notar que en (2.3) estamosempleando las variables residuales (tambien llamadas variables de desviaciono perturbacionales) siguientes:

x = X − X

u = U − U

Sin la presencia de disturbios (v = w = 0), y para la operacion delproceso alrededor del estado de equilibrio (X, U), las matrices A, B, C y Dpueden ser determinadas evaluando las siguientes matrices jacobianas:

A =

∂f1

∂X1· · · ∂f1

∂Xn...

......

∂fn

∂X1· · · ∂fn

∂Xn

(¯X,

¯U)

B =

∂f1

∂U1· · · ∂f1

∂Um...

......

∂fn

∂U1· · · ∂fn

∂Um

(¯X,

¯U)

C =

∂h1∂X1

· · · ∂h1∂Xn

......

...∂hr∂X1

· · · ∂hr∂Xn

(¯X,

¯U)

D =

∂h1∂U1

· · · ∂h1∂Um

......

...∂hr∂U1

· · · ∂hr∂Um

(¯X,

¯U)

(2.4)

La matriz de transferencia para procesos multivariables lineales se de-termina empleando la ecuacion matricial siguiente:

Y(s) = [C(sI −A)−1B +D]U(s) (2.5)

donde s es la variable laplaciana e I es la matriz identidad. Cuando lassenales Y y U son unidimensionales, la ecuacion anterior se convierte enla ecuacion de transferencia de un proceso univariable. La ecuacion carac-terıstica del proceso se obtiene de:

det(sI −A) = 0 (2.6)

donde det es la operacion determinante. Las raıces de (2.6) son tambienconocidas como raıces caracterısticas, eigenvalores, valores propios, modos,

Page 47: [-] Control Avanzado - Arturo Rojas Moreno

2.2 Concepto de Estado y Variables de Estado 33

entre otras denominaciones. Los eigenvalores determinan la estabilidad delproceso alrededor de un punto de equilibrio X en el espacio de estado comosigue:

El proceso descrito por la ecuacion (2.3) es estable, siempre que todos loseigenvalores de su ecuacion caracterıstica (2.6) posean parte real negativa.Cuando al menos uno de tales eigenvalores posea parte real positiva o cero,entonces el proceso es inestable.

De acuerdo a la ecuacion (2.2), el proceso descrito por (2.3) con u y vnulos posee un solo punto de equilibrio: el origen. Empleando este hecho,la estabilidad del proceso descrito en (2.3) tambien puede ser formuladaempleando el concepto de estado, como sigue:

El proceso descrito por la ecuacion (2.3) es estable, cuando no siendoforzado (es decir, cuando u = v = 0), el estado del proceso tiende a ceropara cualquier estado inicial finito x0.

Ejemplo 2.1

La figura 2.2 muestra dos tanques identicos colocados en cascada. La seccionhorizontal A=9 m2 de cada tanque es constante. El objetivo de control esestabilizar (controlar) la altura H2 empleando como fuerza de control elflujo de alimentacion Qo. Determinar el modelo linealizado de este procesohidraulico.

Tanque1

Tanque2

H

H

Q

Q

Q

p

ρ

γ

γ

ρ

1

2

0

0

1

2

p

p

p0

1

2

g

Figura 2.2: Proceso hidraulico.

Solucion: Los flujos de salida Q1 y Q2 de los tanques se pueden modelar

Page 48: [-] Control Avanzado - Arturo Rojas Moreno

34 Sistemas Discretos

como:Q1 = γ

√P1 − P0; Q2 = γ

√P2 − P0

donde P1, P2 y P0 son las presiones en el fondo de los tanques y en el exteriorrespectivamente, y γ=0.4 es una constante que depende de la geometrıa delorificio. Si ρ=1.23 kg/m3 es la densidad del lıquido y g=9.81 m/s2 es laaceleracion de la gravedad:

P1 − P0 = ρgH1; P2 − P0 = ρgH2

El flujo acumulado en cada tanque es:

Q0 −Q1 = AdH1

dt; Q1 −Q2 = A

dH2

dt

Resolviendo las ecuaciones anteriores para las alturas, obtenemos:

H1 =1AQ0 −

γ√ρg

A

√H1 = f1

H2 =γ√ρg

A[√H1 −

√H2] = f2

y su correspondiente ecuacion de salida:

Y = [0 1][H1

H2

]

Definamos las siguientes variables residuales: h1 = H1 − H1, h2 = H2 − H2,q0 = Q0 − Q0. Conociendo Q0 = 3 m3/s, el estado de equilibrio del procesose puede obtener de:

˙H1 =1AQ0 −

γ√ρg

A

√H1 = 0

˙H2 =γ√ρg

A[√H1 −

√H2] = 0

lo que resulta en:

H1 = H2 =Q2

0

γ2ρg

Aplicando el jacobiano, el proceso linealizado resulta:

h = P h +B q0; y = h2 = C h

Page 49: [-] Control Avanzado - Arturo Rojas Moreno

2.2 Concepto de Estado y Variables de Estado 35

donde:

h =[h1

h2

]; P =

[∂f1

∂H1

∂f1

∂H2∂f2

∂H1

∂f2

∂H2

](H1,H2)

=

− γ

√ρg

2A√

H1

0γ√

ρg

2A√

H1

− γ√

ρg

2A√

H2

B =

[∂f1

∂Q0∂f2

∂Q0

]Q0

=[

1/A0

]; C = [0 1]; D = [0]

Ejemplo 2.2

El proceso pendulo no lineal mostrado en la figura 2.3 puede rotar libre-mente alrededor del pivote gracias a la accion de un torque externo U . Endicha figura Bp=1.3366 N-m/rad/s es la friccion viscosa rotacional en elpunto pivote, Lo=1.6350 m es la longitud de la varilla de peso desprecia-ble, Mo=0.5 kg es la masa de la esfera y g=9.81 m/s2 es la aceleracionde la gravedad. La salida de interes es la posicion angular θ del pendulo.Para las situaciones mostradas en las figuras 2.3(a) y 2.3(b) determine: lasecuaciones no lineales de estado y de salida, los puntos de equilibrio, lasecuaciones linealizadas de estado y de salida, las funciones de transferencia,las ecuaciones caracterısticas, y la estabilidad del proceso.

L o

oM

B p oM

B p(a) (b)

L o

UUΦΘ

Figura 2.3: Pendulo no lineal en posicion de equilibrio estable (figura (a)) yen posicion de equilibrio inestable (figura (b)).

Solucion: El proceso en estudio es univariable; es decir, una sola entradaU actuando sobre el proceso, y una sola salida: la posicion angular. Primeroanalizaremos la situacion mostrada en la figura 2.3(a). El torque resultantealrededor del pivote es:

U = MoL2oΘ +BpΘ +MogLosenΘ (2.7)

Page 50: [-] Control Avanzado - Arturo Rojas Moreno

36 Sistemas Discretos

Notar que (2.7) es no lineal debido al senΘ. Seleccionando en (2.7) comovariables de estado X1 = Θ, X2 = Θ y como salida Y = X1 se obtiene:

X1 = X2

X2 = − g

LosenX1 − Bp

MoL2o

X2 +1

MoL2o

U

Y = X1 (2.8)

cuya representacion compacta (ecuacion (2.1) con v = w = 0) resulta:

X = f; Y = X1 = h

donde:

X =[X1

X2

]; f =

[f1

f2

]=

[X2

− gLosenX1 − Bp

MoL2ox2 + 1

MoL2oU

](2.9)

Notar en (2.9) que n = 2, m = 1, r = 1. Empleando (2.2), los estados deequilibrio se obtienen de:

˙X1 = X2 = 0˙X2 = − g

LosenX1 − Bp

MoL2o

X2 +1

MoL2o

U = 0

y = X1 − X1 (2.10)

cuya solucion, con U = 0, es: X2 = 0 y X1 = 2kπ, k = 0,±1, . . . Porconsiguiente, los estados de equilibrio son (0[2π], 0) para la figura 2.3(a) y(π[3π], 0) para la figura 2.3(b). Empleando (2.4), la linealizacion de (2.9)alrededor del estado de equilibrio (X1, X2, U) = (0, 0, 0) resulta:

x = Ax +Bu; y = Cx +Du

donde:

A =

[∂f1

∂X1

∂f1

∂X2∂f2

∂X1

∂f2

∂X2

](0,0)

=

[0 1

− gLo

− Bp

MoL2o

]

B =[ ∂f1

∂U∂f2

∂U

]0

=

[01

MoL2o

]

C =[

∂h∂X1

∂h∂X2

](0,0)

=[

1 0]

D =[∂h

∂U

]0

= [0] (2.11)

Page 51: [-] Control Avanzado - Arturo Rojas Moreno

2.2 Concepto de Estado y Variables de Estado 37

La funcion de transferencia del proceso se puede determinar de:

Y (s)U(s)

= C(sI −A)−1B

= [1 0]

[s −1g

Lo

Bp

MoL2o

+ s

]−1 [01

MoL2o

]

=1

MoL2os

2 +Bps+MogLo(2.12)

La ecuacion caracterıstica se determina de (2.6):

det(sI −A) = MoL2os

2 +Bps+MogLo = 0 (2.13)

que resulta siendo el denominador de la funcion de transferencia dada en(2.12). Con los valores dados deMo, Lo yBp, las dos raıces de (2.13) resultan:s1,2 = −0,7482±2,6038i, lo cual nos indica que el estado de equilibrio (0, 0, 0)es estable.

Cuando el pendulo se encuentra en la posicion mostrada en la figura2.3(b), entonces Θ = Φ + π, sen(Φ + π) = −senΦ, Θ = Φ y Θ = Φ. Porconsiguiente, la ecuacion que describe la dinamica del pendulo no lineal es:

U = MoL2oΦ +BpΦ −MogLosenΦ (2.14)

Con el procedimiento empleado para la situacion mostrada en la figura2.3(a), facilmente podemos determinar que:

A =

[0 1g

Lo− Bp

MoL2o

]

y su ecuacion caracterıstica resulta:

det(sI −A) = MoL2oΦ +BpΦ −MogLosenΦ

la cual posee dos raıces: s1 = −3,5587 y s2 = 2,6024. El eigenvalor positivonos indica que el punto de equilibrio (π, 0) es inestable.

La ecuacion de estado x = Ax + Bu para el proceso pendulo, puededeterminarse aplicando en (2.7) el criterio de linealizacion senΘ ∼= Θ, ha-ciendo u = U , y seleccionando como variables de estado x1 = Θ y x2 = Θ.Sin embargo, la forma general de linealizacion requiere de la aplicacion delas matrices jacobianas dadas en (2.4).

Page 52: [-] Control Avanzado - Arturo Rojas Moreno

38 Sistemas Discretos

2.3. Fundamentos de Sistemas Discretos

2.3.1. Muestreo y Reconstruccion

La figura 2.4 muestra un lazo de control que incluye una computado-ra digital equipada con los dispositivos de adquisicion de datos necesarios.La senal controlada y, luego de ser sensada, pasa por un muestreador, gen-erandose un tren de impulsos y∗ separados uno del otro en T segundos (eltiempo de muestreo). Luego, el tren de impulsos es digitalizado por mediodel dispositivo A/D, lo que resulta en la senal yd, la cual ya puede serprocesada por la computadora con el fin de generar el algoritmo de control.

La senal de control digitalizada ud sufre el proceso inverso: pasa por undispositivoD/A y luego por un muestreador para generar el tren de impulsosu∗. Mediante un dispositivo de retencion de orden cero, que se describe masadelante, la senal de control es reconstruida, lo que resulta en una senal decontrol continua u capaz de actuar sobre el actuador-proceso continuo.

Notar que la senal de referencia digitalizada rd se genera internamente.Si la referencia fuera una senal externa, entonces debe ser procesada comola senal y. En lo que sigue, asumiremos que el tiempo de muestreo T es elmismo para todos los muestreadores y que dichos muestreadores operan sin-cronicamente; es decir, que el retardo entre la operacion de un muestreadorcon respecto a otro es despreciable. Es importante anotar que los conver-tidores de senal, muestreadores y dispositivos de retencion, son parte de lainterfaz (tarjeta de adquisicion de datos, por ejemplo) de la computadoradigital con su mundo circundante (el proceso-actuador y los dispositivos demedicion).

Un tren de impulsos, por ejemplo la senal u∗, puede modelarse como:

u∗(t) =∞∑

k=0

u(kT )δ(t− kT ) (2.15)

donde T es el tiempo de muestreo de u(t), k es el tiempo discreto (t = kT ),y δ(t − kT ) es la funcion impulso unitario o delta de Dirac que se definecomo:

δ(t− kT ) =

1 si t = kT0 si t = kT

Empleando la conocida identidad L[δ(t− kT )] = e−kTs, la transformada de

Page 53: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 39

PROCESOACTUADOR

T

T’

A

DA

D

MEDICIONy

u* u

FILTRAJE

RETENCION

y*d

y

ud

rd

DE

CO

NT

RO

LA

LGO

RIT

MO

COMPUTADORA DIGITAL

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 )]

=∞∑

k=0

u(kT )e−kTs = u∗(esT ) (2.16)

La frecuencia de muestreo se determina de la relacion:

ωs =2πT

(2.17)

El tren de impulsos u∗(t) se puede representar alternativamente mediantesu serie de Fourier:

u∗(t) =1T

∞∑k=−∞

u(t)ejωst (2.18)

cuya transformada de Laplace ahora resulta (ver referencias [4], [3]):

u∗(s) =1T

∞∑k=−∞

u(s+ iνωs) (2.19)

La senal u∗(s) posee dos propiedades importantes. La primera es su caracterperiodico, que puede demostrarse reemplazando en la ecuacion (2.16) la

Page 54: [-] Control Avanzado - Arturo Rojas Moreno

40 Sistemas Discretos

variable laplaciana s por s+ jνωs, ν = 0,±1,±2, . . ., como sigue:

u∗(s+ jνωs) =∞∑

ν=0

u(kT )e−kT (s+jνωs) =∞∑

ν=0

u(kT )e−kTse−kTjνωs

= u∗(esT ) (2.20)

donde hemos usado el hecho de que ωsT = 2π. La segunda propiedad escomo sigue: si u(s) posee un polo en s = s1, entonces u∗(s) debe poseerpolos en s = s1+jνωs, ν = 0,±1,±2, . . . Esta propiedad puede demostrarseexpandiendo la sumatoria en la ecuacion (2.19):

u∗(s) =1T

∞∑k=−∞

u(s+ iνωs) =1T

[u(s) + u(s+ jωs) + u(s+ 2jωs)

+ · · · + u(s− jωs) + u(s− 2jωs) + · · ·]

Si u(s) posee un polo en s = s1, entonces cada termino de la expansioncontribuye con un polo en s = s1 + jνωs.

La figura 2.5 muestra la respuesta en frecuencia de las senales u(t) yu∗(t), asumiendo que u(t) es de banda limitada. Del grafico de |u∗(ejω)|podemos extraer la siguiente conclusion referente al teorema fundamentaldel muestreo:

Para que la senal continua original u(t) pueda ser reconstruida com-pletamente a partir de sus muestras, la frecuencia de muestreo tiene queseleccionarse de modo tal que:

ωs ≥ 2ωmax T ≤ π

ωmax(2.21)

La figura 2.6 muestra en detalle el proceso de muestreo y reconstruccionde la senal u empleando un dispositivo de retencion de orden cero, el cualreconstruye la senal mediante aproximaciones rectangulares. Tener en cuentaque u es una senal generica. Podemos detrerminar la funcion de transferenciagr0(s) de la retencion 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 funcionescalon unitario que se define como:

µ(t− kT ) =

1 si t ≥ kT0 si t < kT

Page 55: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 41

ωωωs sωωmax max

ω ss ω22

ωmax ωmax ωt

t

u(t)

u*(t)

u(jω)

)ωu*(e j

Figura 2.5: Respuesta en frecuencia de las senales u(t) y u∗(t) para ilustrarel teorema del muestreo.

El area total de la senal u a la salida de la retencion es:

u(t) =∞∑

k=0

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

Empleando la conocida transformacion L[µ(t−kT )] = e−kTs

s , la transforma-da de Laplace de u(t) resulta:

u(s) =∞∑

k=0

u(kT )e−kTs 1s[1 − e−Ts] = u∗(s)

1s[1 − e−Ts]

Por consiguiente, la funcion de transferencia de la retencion de orden ceroviene a ser:

u(s)u∗(s)

= Gr0(s) =1 − e−sT

s(2.22)

Este ultimo resultado sera usado posteriormente.

Discretizacion Directa

Es bastante util discretizar directamente expresiones que contengan in-tegrales y derivadas. La aproximacion rectangular calcula el area debajo deuna cierta curva e(t) mediante la suma de rectangulos de la forma Te(iT−T )(T es el tiempo de muestreo), tal como se ilustra a continuacion. Por consi-guiente, terminos que contengan integracion pueden discretizarse empleando

Page 56: [-] Control Avanzado - Arturo Rojas Moreno

42 Sistemas Discretos

u

se- sT1

TRETENCION DE ORDEN CERO’

u

T 2T 3T 4T T 2T 3T 4T0 0

(t) u*(t) (t)

u(s)u(s) u*(s)

_

_

u(0)

u(T

)

u(2T

)

u(3T

)

t

Figura 2.6: Proceso de muestreo y reconstruccion.

aproximacion rectangular como sigue:

u(t) =∫ t

0e(τ)dτ

u(kT ) ≈k∑

i=0

Te(iT − T ); u(kT − T ) ≈ Tk−1∑i=0

e(iT − T )

u(kT ) − u(kT − T ) = Te(kT − T ); u(k) − u(k − 1) = Te(k − 1) (2.23)

En la ultima expresion hemos obviado en el argumento su dependencia conel tiempo de muestreo T , pues se sobreentiende que todos los terminos se dis-cretizan empleando el mismo tiempo de muestreo. Terminos que contenganderivadas pueden discretizarse empleando diferencias por atraso:

de(t)dt

= e(t) ≈ ∆e(kT )T

=e(kT ) − e(kT − T )

Tde(t)dt

= e(t) ≈ ∆2e(kT )T 2

=∆e(kT ) − ∆e(kT − T )

T 2=e(t) − e(t− T )

T... (2.24)

Si la discretizacion de la derivada se realiza por adelanto, entonces las dife-rencias son de la forma:

x(kT + T ) − x(kT ); x(k + 1) − x(k)

Ejemplo 2.3

Discretizar el modelo no lineal del proceso pendulo descrito en el ejemplo 2.2y graficar diez segundos de su respuesta a un torque tipo escalon unitario.

Page 57: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 43

Asumir los siguientes valores: Lo = 1.6350 m, Mo = 0.5 Kg, Bp = 1.3366N-m/rad/s, g = 9.81 m/s2 y T = 0.01 s.

Solucion: Discretizando por adelanto las ecuaciones dadas en (2.8) y ob-viando la escritura del tiempo de muestreo T en los argumentos, obtenemos:

X1(k + 1) = X1(k) + TX2(k)

X2(k + 1) = X2(k) + T

[− g

LosenX1(k) − Bp

MoL2o

x2(k) +1

MoL2o

U(k)]

y(k) = x1(k)

El siguiente programa en codigo MATLAB determina la respuesta que semuestra en la figura 2.7. Observar que cada muestra k equivale a T s.

% ejem2_3.m RESPUESTA DEL PENDULO NO LINEAL A UN ESCALONclear allLo = 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 SEGUNDOSU(k) = 1; % ESCALON DE ENTRADAX1(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);endplot(Y); gridylabel(’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) +

1TI

∫ t

0e(t)dt+ TD

de(t)dt

](2.25)

donde K es la ganancia proporcional, TI es el tiempo de integracion y TD

es el tiempo derivativo. En un primer caso emplear integracion rectangulary luego usar integracion trapezoidal.

Solucion: Empleando las relaciones (2.23) y (2.24) en (2.25) se obtiene:

u(k) = K

e(k) +

T

TI

k∑i=0

e(i− 1) +TD

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

Page 58: [-] Control Avanzado - Arturo Rojas Moreno

44 Sistemas Discretos

0 100 200 300 400 500 600 700 800 900 10000

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

Pos

ició

n (

rad)

Tiempo discreto k

Figura 2.7: Respuesta del pendulo no lineal al escalon.

u(k − 1) = K

e(k − 1) +

T

TI

[k∑

i=0

e(i− 1) − e(k − 1)

]

+TD

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

Restando las expresiones anteriores y despejando u(k) obtenemos:

u(k) = u(k − 1) + q0e(k) + q1e(k − 1) + q2e(k − 2) (2.26)

donde:

q0 = K(1 +TD

T); q1 = −K(1 + 2

TD

T− T

TI); q2 = K

TD

T

Si la integracion emplea el metodo trapezoidal (aproximacion de segmen-tos de area mediante trapezoides), entonces:

u(k) = K

e(k) +

1TI

k∑i=0

[Te(i− 1) + e(i)

2

]+TD

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

u(k − 1) = K

e(k − 1) +

T

2TI

[k∑

i=0

e(i− 1) − e(k − 1) +k∑

i=0

e(i) − e(k)

]

Page 59: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 45

+TD

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

Restando las expresiones anteriores y despejando u(k) obtenemos una ex-presion similar a (2.26), donde:

q0 = K(1 +TD

T+

T

2TI); q1 = −K(1 + 2

TD

T− T

2TI); q2 = K

TD

T

2.3.2. La Transformada Z

Es util introducir la siguiente relacion:

z = eTs = eT (σ+jω) = eTσ[cosωT + jsenωT ] (2.27)

Reemplazando en la ecuacion (2.16) la senal u por una variable generica g,llegamos a la siguiente definicion de la transformada Z:

g(z) = Z[g(kT )] =∞∑

k=0

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

La serie en (2.28) converge si |g(kT )| se restringe a valores finitos y si |z| > 1.Las sumatorias siguientes son bastante utiles para resolver problemas

relacionados con la transformada Z:N−1∑k=0

ak =1 − aN

1 − a; |a| < 1

∞∑k=0

ak =1

1 − a; |a| < 1

∞∑k=0

kak =a

(1 − a)2; |a| < 1

N2∑k=N1

ak =aN1 − aN2−1

1 − a; |a| < 1

∞∑k=N1

ak =aN1

1 − a; |a| < 1 (2.29)

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

Z[δ(kT )] =∞∑

k=0

δ(kT )z−k = z−0 = 1

Page 60: [-] Control Avanzado - Arturo Rojas Moreno

46 Sistemas Discretos

mientras que la transformada Z del escalon µ(kT )=1 empleando la segundade las sumatorias dadas en (2.29) resulta:

Z[µ(kT )] =∞∑

k=0

z−k =1

1 − z−1=

z

z − 1

la cual es valida para |z−1| < 1 (o |z| > 1), pues la serie debe ser conver-gente. La tabla 2.1 ilustra la transformada Z de algunas secuencias notables,mientras que la tabla 2.2 presenta la relacion existente entre la transformadaZ y la transformada de Laplace.

A continuacion se formulan algunas propiedades de la transformada Z:

(1) Linealidad:Z[ag1(kT ) + bg2(kT )] = aZ[g1(kT )] + bZ[g2(kT )]

(2) Desplazamiento a la derecha:Z[g(kT − dT )] = z−dg(z), d ≥ 0

(3) Desplazamiento a la izquierda:Z[g(kT + dT )] = zd[g(z) −∑d−1

ν=0 g(νT )z−ν ], d ≥ 0

(4) Amortiguamiento:Z[g(kT )e−akT ] = g(zeaT )

(5) Multiplicacion por una variable:Z[kg(kT )] = −z dg(z)

dz

(6) Multiplicacion por una exponencial:Z[akg(kT )] = g( z

a)

(7) Teorema del valor inicial:lımk→0 x(kT ) = lımz→∞ x(z)

(8) Teorema del valor final:lımk→∞ g(kT ) = lımz→1

z−1z g(z) = lımz→1(1 − z−1)g(z)

Por ejemplo, sabiendo que Z[cosωk] es conocido, la transformada Z deakcosωk puede ser determinada empleando la propiedad de multiplicacionpor una exponencial, como sigue:

Z[akcosωk] =[

z(z − cosω)z2 − 2zcosω + 1

]z=z/a

=z(z − acosω)

z2 − 2zacosω + a2

Page 61: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 47

Cuadro 2.1: Transformada Z de algunas secuencias.

No g(t) g(z)

(1) δ(k) 1

(2) δ(k − d)) z−d

(3) µ(k) zz−1

(4) µ(k − d) z−d+1

z−1

(5) kµ(k) z(z−1)2

(6) akµ(k) zz−a

(7) ak−1µ(k − 1) 1z−a

(8) kakµ(k) az(z−a)2

(9) µ(k)senωk z sinωz2−2zcosω+1

(10) µ(k)cosωk z(z−cosω)z2−2zcosω+1

(11) µ(k)aksenωk za senωz2−2za cosω+a2

(12) µ(k)akcosωk z(z−acosω)z2−2zacosω+a2

(13) k(k−1)···(k−m+2)(d−1)! ak−d+1 z−d+1

(1−z−1)d

Page 62: [-] Control Avanzado - Arturo Rojas Moreno

48 Sistemas Discretos

Cuadro 2.2: Transformada de Laplace versus transformada Z.

No g(t) g(s) g(kT ) g(z)

(1) δ(t) 1 δ(k) 1

(2) µ(t) 1s µ(k) z

z−1

(3) t 1s2 k Tz

(z−1)2

(4) e−at 1s+a (e−aT )k z

z−e−aT

(5) te−at 1(s+a)2

kT (e−aT )k Tze−aT

(z−e−aT )2

(6) t2e−at 2(s+a)3

(kT )2(e−aT )k T 2ze−aT (z+e−aT )(z−e−aT )3

(7) 1 − e−at as(s+a) 1 − (e−aT )k z(1−e−aT )

(z−1)(z−e−aT )

(8) e−at − e−bt b−a(s+a)(s+b) (e−aT )k − (e−bT )k z(e−aT−e−bT )

(z−e−aT )(z−e−bT )

(9) senωt ωs2+ω2 senωkT zsenωT

z2−2zcosωT+1

(10) cosωt ss2+ω2 cosωkT z(z−cosωT )

z2−2zcosωT+1

(11) e−atsenωt ω(s+a)2+ω2 (e−aT )ksenωkT ze−aT senωT

z2−2ze−aT cosωT+e−2aT

(12) e−atcosωt s+a(s+a)2+ω2 (e−aT )kcosωkT z(z−e−aT cosωT )

z2−2ze−aT cosωT+e−2aT

Page 63: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 49

La forma general para obtener Z[g(s)] es mediante el metodo de losresiduos (derivado de la integral de convolucion). Si se tiene:

g(s) =q(s)p(s)

donde el grado del polinomio p(s) es mayor que el de q(s), y ademas sisuponemos que todas las raıces de q(s) poseen parte real negativa, entoncesg(z) se obtiene de:

g(z) =P∑

i=1

[(s− ai)

g(s)zz − eTs

]s=ai

+Q∑

j=1

1

(mj − 1)!dmj−1

dsmj−1

[(s− bj)mj

g(s)zz − eTs

]s=bj

(2.30)

donde P es el numero de polos ai no repetidos de G(s) y Q es el numero depolos bj que se repiten con multiplicidad mj .

Ejemplo 2.5

Determinar g(z) sabiendo que:

g(s) =1

s2(s+ 1)

Solucion: Para este caso P = 1, a1 = −1, Q = 1, b1 = 0, m1 = 2. Luego:

g(z) =[(s+ 1)

1s2(s+ 1)

z

(z − eTs)

]s=−1

+

1(2 − 1)!

d

ds

[s2

1s2(s+ 1)

z

(z − eTs)

]s=0

=z

z − e−T+

−z(z − 1 − T )(z − 1)2

2.3.3. La Transformada Z Inversa

En el dominio continuo, la transformada de Laplace g(s) = L[g(t)] poseeuna inversa L−1[g(s)] = g(t) que es unica. En contraste, la transformacionZ[g(t)] = g(z) posee una inversa Z−1[g(z)] = g(t) que no es unica debido aque la senal discreta no esta definida entre muestras. En el dominio discreto,sin embargo, la transformacion g(z) = Z[g(kT )] posee una unica inversaZ−1[g(z)] = g(kT ).

Page 64: [-] Control Avanzado - Arturo Rojas Moreno

50 Sistemas Discretos

Una forma de determinar g(kT ) es dividir el numerador de g(z) entre sudenominador. Otra forma es expandir g(z) en fracciones parciales y obtenerla transformada Z−1 de cada uno de los terminos resultantes. Un metodogeneralizado para determinar la inversa de g(z) consiste en factorizar g(z)en factores de primer orden; luego, usar la siguiente formula de inversion:

g(kT ) =P∑

i=1

[(z − ai)g(z)zk−1]z=ai

+Q∑

j=1

[1

(mj − 1)!dmj−1

dzmj−1 [(z − bj)mjg(z)zk−1

]z=bj

(2.31)

donde P es el numero de polos ai no repetidos de G(z) y Q es el numero depolos bj que se repiten con multiplicidad mj . Por ejemplo, determinar g(kT )de:

g(z) =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)zk−1]z=a1

+ [(z − a2)g(z)zk−1]z=a2 + [(z − a3)g(z)zk−1]z=a3

+[

1(m1 − 1)!

dm1−1

dzm1−1[(z − b1)m1g(z)zk−1

]z=b1

+[

1(m2 − 1)!

dm2−1

dzm2−1[(z − b2)m2g(z)zk−1

]z=b2

Ejemplo 2.6

Determinar g(kT ) para:

(a) : g(z) =z

(z − 1)(z − 2); (b) : g(z) =

z

(z − 1)2

Solucion: Para el primer caso: P = 2, a1 = 1, a2 = 2, Q = 0. Por tanto:

g(k) =[zk

z − 1

]z=1

+[zk

z − 1

]z=2

= −1 + 2k

Para el segundo caso: P = 0, Q = 1, b1 = 1, m1 = 1. Luego:

g(k) =11!d

dz

[(z − 1)2

(z

(z − 1)2

)zk−1

]z=1

=[d

dz(zk)

]z=1

= k

Page 65: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 51

2.3.4. Funcion de Transferencia de Pulso

Conociendo la funcion de transferencia G(s) = y(s)/u(s) de un sistema,la correspondiente funcion de transferencia de pulso se determina de larelacion:

y(z)u(z)

= G(z) = Z[Gr0G(s)] = Z

[1 − e−sT

sG(s)

]= (1 − z−1)Z

[G(s)s

](2.32)

Para el caso multivariable, la matriz de transferencia de pulso G(z) sedetermina empleando la relacion (2.32) para cada elemento de la matriz detransferencia G(s). Para derivar la funcion de transferencia de pulso para elcaso de procesos en cascada o formando lazos cerrados, debemos procedercon cautela, porque no siempre es posible encontrar una relacion de la formay(z) = G(z)u(z). Los siguientes ejemplos ilustran los casos tratados.

Ejemplo 2.7

Dado el tiempo de muestreo T , determinar la funcion de transferencia depulso para el proceso:

G(s) =K

s+ ae−Tts, Tt = dT, d = 1, 2, 3, . . .

Solucion: Empleando la relacion (2.32) y la tabla 2.2 obtenemos:

G(z) = Z[Gr0G(s)] = (1 − z−1)Z[

K

s(s+ a)(esT )−d

]=

b1z−1

1 + a1z−1z−d

a1 = −e−aT ; b1 = (1 − e−aT )K

aEjemplo 2.8

Determinar la salida muestreada para los casos ilustrados en las figuras2.8(a)-(f).

Solucion: En la figura (a) se tiene: y(s) = G2(s)x∗(s) y x(s) = G1(s)u(s),donde x(s) es una senal auxiliar. Muestreando x(s) como sigue:

[x(s)]∗ = x∗(s) = [G1(s)u(s)]∗ = G∗1(s)u

∗(s)

Reemplazando ahora x∗(s) en y(s), y luego muestreando y(s) obtenemosuna expresion en el dominio discreto, a saber: y∗(s) = G∗

2(s)G∗1(s)u

∗(s).Esta ultima relacion es equivalente a:

y(z) = G2(z)G1(z)u(z)

Page 66: [-] Control Avanzado - Arturo Rojas Moreno

52 Sistemas Discretos

G (s)

D(z) (s)

y(s)

u(s)

1u*(s) x(s)u(s) x*(s) y(s)

u(s)

T

T

T

x*(s)x(s) y(s)

T

u*(s)

u(s)

T

u*(s) y(s)1 - e-Ts

s

G2(s)G (s)1

(s)1G 2(s)G

(s)G 2

pG

(a)

(b)

(c)

G(s)

y(s)G(s)

H(s)

x*(s)

Tx(s)u(s) u(s)G(s)

y*(s)

y(s)

TH(s)

(d)

(e) (f)

+ +- -

Figura 2.8: Sistemas discretos a lazo abierto y a lazo cerrado.

En la figura (b) se tiene: y(s) = G2(s)G1(s)u∗(s). Muestreando y obte-nemos:

y∗(s) = [G2(s)G1(s)u∗(s)]∗ = [G2G1(s)]∗u∗(s)

Por consiguiente:y(z) = [G2G1(s)](z)u(z)

En la figura (c) se tiene: y(s) = G2(s)x∗(s) y x(s) = G1(s)u(s). Proce-diendo como en los casos anteriores se obtiene:

y(z) = G2(z)[G1u](z)

En la figura (d) tenemos: y(s) = G(s)D(z)u∗(s). Muestreando y(s) ob-tenemos:

y(z) = G(z)D(z)u(z)

Page 67: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 53

Para la figura (e) se tiene: y(s) = G(s)x∗(s) y x(s) = u(s) −H(s)y(s).Reemplazando y(s) en x(s), muestreando y despejando x∗(s) se obtiene:

x∗(s) =u∗(s)

1 + [GH](z)

Reemplazando x∗(s) en y(s) = G(s)x∗(s) resulta:

y(z) =G(z)

1 + [GH](z)u(z)

Para la figura (f) tenemos y(s) = G(s)u(s) − G(s)H(s)y∗(s). Muestre-ando y despejando y∗(s) se obtiene:

y(z) =[GH](z)

1 + [GH](z)u(z)

2.3.5. El Espacio de Estado Discreto

En la seccion 2.2 vimos que la dinamica linealizada de un proceso (sin lapresencia de disturbios) puede ser representada en el espacio de estado porla ecuacion (2.3):

x = Ax +Bu; y = Cx +Du (2.33)

La solucion de la ecuacion de estado anterior, dado un estado inicial x(t0),es:

x(t) = eA(t−t0)x(t0)) + eAt

∫ t

t0

e−AτBu(τ)dτ

= φ(t− t0)x(t0) +∫ t

t0

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

donde:

φ(t− t0) = L−1[(sI −A)−1] = eA(t−t0) =∞∑

ν=0

Aν(t− t0)ν

ν!

es la matriz de transicion. Para demostrar que efectivamente (2.34) es unasolucion de la ecuacion de estado (2.33), basta derivar la expresion (2.34)con respecto al tiempo, para ası obtener x = Ax +Bu.

Page 68: [-] Control Avanzado - Arturo Rojas Moreno

54 Sistemas Discretos

La representacion de la ecuacion de estado en el dominio laplaciano tomala forma:

sx(s) − x(t0) = Ax(s) +Bu(s)x(s) = (sI −A)−1x(t0) + (sI −A)−1Bu(s)y(s) = Cx(s) +Du(s) (2.35)

Ejemplo 2.9

Dado u = 3e−t, determinar la respuesta de un proceso descrito por lassiguientes ecuaciones de estado y de salida:

x1 = −7x1 + x2 + 2u; x2 = −12x1 − u

y = 3x1 − 4x2 − 2u

Condiciones iniciales: x1(0) = −6, x2(0) = 1. Graficar la respuesta y(t) ycompararla con las respuestas obtenidas mediante discretizacion para lostiempos de muestreo de 0.1 s y 0.04 s.

Solucion: Segun la tabla 2.2: L[3e−t] = 3/(s + 1). Aplicando la ecuacion(2.35) obtenemos:

A =[ −7 1−12 0

]; B =

[2−1

]

C =[

3 −4]; D = [−2]; x(0) =

[ −61

]

x(s) =[s+ 7 −112 s

]−1 [ −61

]+[s+ 7 −112 s

]−1 [ 2−1

]u(s)

=1

s2 + 7s+ 12

[s 1

−12 s+ 7

][ −61

]+[

2−1

](3

s+ 1

)

=

[ −6s2+s−2(s+1)(s+3)(s+4)

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

]

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

3 −4] [ −6s2+s−2

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

(s+1)(s+3)(s+4)

]− 2

(3

s+ 1

)

=−22s2 − 305s+ 50

(s+ 1)(s+ 3)(s+ 4)− 6s+ 1

=297/6s+ 1

+−767/2s+ 3

+918/3s+ 4

y(t) =2976e−t +

−7672

e−3t +9183e−4t , t ≥ 0

Page 69: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 55

Las respuestas mostradas en la figura 2.9 se realizaron con el programaejem2 9.m. Para T ≤ 0,04 s, las respuestas y(t) e y(kT ) practicamente coin-ciden. Conforme T aumenta, la diferencia entre y(t) e y(kT ) es mas notoria,lo cual nos indica que los sistemas muestreados dependen de T .

% ejem2_9.m COMPARACION DE RESPUESTAS A UNA ENTRADA ARBITRARIA u(t)A = [-7 1

-12 0]; B = [2;-1]; Cc = [3 -4]; Dc = [-2];T1 = 0.1; % TIEMPO DE MUESTREO EN SEGUNDOS[G,H,C,D] = c2dm(A,B,Cc,Dc,T1,’zoh’); % CONTINUA A DISCRETAx = [-6;1]; % CONDICION INICIALfor k = 1:100 % CADA MUESTRA k EQUIVALE A T SEGUNDOSu(k) = 3*exp(-k*T1); % ENTRADAy1(k) = C*x + D*u(k);x = G*x + H*u(k);endT2 = 0.04; % TIEMPO DE MUESTREO EN SEGUNDOS[G,H,C,D] = c2dm(A,B,Cc,Dc,T2,’zoh’); % CONTINUA A DISCRETAx = [-6;1]; % CONDICION INICIALfor k = 1:250 % CADA MUESTRA k EQUIVALE A T SEGUNDOSu(k) = 3*exp(-3*k*T2); % ENTRADAy2(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;

% GRAFICOSt=linspace(0,10,101); t1=linspace(0,10,100);

t2=linspace(0,10,250);plot(t,y,t1,y1,’--’,t2,y2,’-.’); gridylabel(’Respuesta y(t)’)xlabel(’Tiempo en segundos’)print -deps -f fig2_9

Solucion de la Ecuacion de Estado Discreta

Discretizando la ecuacion (2.33) para un tiempo discreto k = t/T yasumiendo que entre muestras la senal de control u es constante, entoncespara la senal de entrada u(t) = u(kT ), kT ≤ (k + 1)T y para un estadoinicial x(kT ) = u(kT ), kT ≤ (k + 1)T , la ecuacion de estado se convierte

Page 70: [-] Control Avanzado - Arturo Rojas Moreno

56 Sistemas Discretos

0 1 2 3 4 5 6 7 8 9 10−50

−40

−30

−20

−10

0

10

Sal

ida

y

Tiempo en segundos

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

en:

x(t) = φ(t− kT )x(t0) + u(kT )∫ t

t0

φ(t− τ)Bdτ

Si solo interesa la solucion para t = (k + 1)T y empleando el cambio devariables que sigue λ = (k + 1)T − τ , dλ = −dτ , obtenemos las siguientesecuaciones discretas de estado y de salida:

x(k + 1) = Gx(k) +Hu(k); y(k) = Cx(k) +Du(k) (2.36)

donde:

G = Φ(T ) = eAT ; H =[∫ T

0φ(λ)dλ

]B (2.37)

Notar que (2.36) es una ecuacion vectorial de diferencias que puede serresuelta recursivamente, como sigue:

x(1) = Gx(0) +Hu(0)x(2) = Gx(1) +Hu(1) = G2x(0) +GHu(0) +Hu(1)

Page 71: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 57

...

x(k) = Gkx(0) +k∑

ν=1

Gν−1Hu(k − ν) (2.38)

donde Gk es la denominada matriz de transicion discreta. Una segunda alter-nativa de solucion de (2.36) se da en el dominio de z. Aplicando la propiedadde 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)−1zx(0) + (zI −G)−1Hu(z) (2.39)

y empleando la ecuacion de salida resulta:

y(z) = C(zI −G)−1zx(0) + [C(zI −G)−1H +D]u(z) (2.40)

Comparando las ecuaciones (2.38) y (2.39) verificamos que:

Gk = Z−1[(zI −G)−1z] (2.41)

La matriz de transferencia de pulso se determina haciendo x(0) = 0 en(2.40):

y(z) = Gp(z)u(z) = [C(zI −G)−1H +D]u(z) (2.42)

mientras que la ecuacion caracterıstica del sistema se obtiene de:

det(zI −G) = 0 (2.43)

la cual nos informa acerca de la estabilidad del sistema. Recordar que unsistema continuo es estable cuando todos sus eigenvalores poseen parte realnegativa. Por consiguiente, la zona de estabilidad para sistemas continuoses el semiplano izquierdo del plano s. Desde que:

z = esT = e(σ+jω)T = eσT ejωT = |z|∠zy como |z| ≤ 1 cuando σ ≤ 0 para cualquier ∠z, entonces la zona de esta-bilidad en el plano z resulta un cırculo de radio unidad:

Un sistema discreto es estable si las raıces de su ecuacion caracterıstica,los eigenvalores, se encuentran dentro del cırculo unitario (en el dominio dez). En otro caso, el sistema no es estable.

Page 72: [-] Control Avanzado - Arturo Rojas Moreno

58 Sistemas Discretos

Formas Canonicas en el Espacio de Estado Discreto

La forma general de la funcion de transferencia de pulso para un procesoes:

Gp(z) =y(z)u(z)

=b0 + b1z

−1 + · · · + bnz−n

1 + a1z−1 + · · · + anz−n=b0z

n + b1zn−1 + · · · + bn

zn + a1zn−1 + · · · + an

(2.44)y su correspondiente ecuacion de diferencias toma la forma:

y(k+n)+a1y(k+n−1)+· · ·+any(k) = b0u(k+n)+b1u(k+n−1)+· · ·+bnu(k)(2.45)

Conforme a la seleccion de las variables de estado, un proceso posee diversasrepresentaciones en el espacio de estado. Las formas canonicas mas notables,con relacion a la funcion de transferencia de pulso dada en (2.44), se descri-ben a continuacion.

Primera Forma Canonica Controlable:

x(k + 1) =

0 1 0 · · · 00 0 1 · · · 0...

......

...0 0 0 · · · 1

−an −an−1 −an−2 · · · −a1

x1(k)x2(k)

...xn−1(k)xn(k)

+

00...01

u(k)

(2.46)y(k) =

[bn − anb0 bn−1 − an−1b0 · · · b1 − a1b0

]x(k) + b0u(k) (2.47)

Segunda Forma Canonica Controlable:

x(k + 1) =

0 1 0 · · · 00 0 1 · · · 0...

......

...0 0 0 · · · 1

−an −an−1 −an−2 · · · −a1

x1(k)x2(k)

...xn−1(k)xn(k)

+

β1

β2

...βn−1

βn

u(k)

(2.48)y(k) =

[1 0 · · · 0

]x(k) + β0u(k) (2.49)

donde: β0 = b0, β1 = b1 − a1b0, β2 = b2 − a1β1 − a2β0, etc. Generalizando:

βn = bn − a1βn−1 − · · · − an−1β1 − an−1β0

Page 73: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 59

Tercera Forma Canonica Controlable:

x(k+1) =

−a1 −a2 · · · −an−1 −an

1 0 · · · 0 00 1 · · · 0 0...

......

...0 0 · · · 1 0

x1(k)x2(k)

...xn−1(k)xn(k)

+

10...00

u(k) (2.50)

y(k) =[b1 − a1b0 b2 − a2b0 · · · bn − anb0

]x(k) + b0u(k) (2.51)

Primera Forma Canonica Observable:

x(k+ 1) =

0 0 · · · 0 0 −an

1 0 · · · 0 0 −an−1

......

......

...0 0 · · · 1 0 −a2

0 0 · · · 0 1 −a1

x1(k)x2(k)

...xn−1(k)xn(k)

+

bn − anb0bn−1 − an−1b0

...b2 − a2b0b1 − a1b0

u(k)

(2.52)y(k) =

[0 0 · · · 0 1

]x(k) + b0u(k) (2.53)

Segunda forma canonica observable:

x(k+ 1) =

−a1 1 0 · · · 0 0−a2 0 1 · · · 0 0

......

......

...−an−1 0 0 · · · 0 1−an 0 0 · · · 0 0

x1(k)x2(k)

...xn−1(k)xn(k)

+

b1 − a1b0b2 − a2b0

...bn−1 − an−1b0bn − anb0

u(k)

(2.54)y(k) =

[1 0 · · · 0 0 · · · ]x(k) + b0u(k) (2.55)

Forma Canonica Diagonal (eigenvalores no repetidos)

x1(k + 1)x2(k + 1)

...xn−1(k + 1)xn(k + 1)

=

p1 0 · · · 00 p2 · · · 0...

......

0 0 · · · pn

x1(k)x2(k)

...xn(k)

+

11...1

u(k) (2.56)

y(k) =[c1 c2 · · · cn

]x(k) + b0u(k) (2.57)

Page 74: [-] Control Avanzado - Arturo Rojas Moreno

60 Sistemas Discretos

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

y(z)u(z)

= b0 +n∑

i=1

ciz − pi

; ci = lımz→pi

[y(z)u(z)

(z − pi)]

(2.58)

Forma Canonica de Jordan (eigenvalores repetidos).- En la subseccion 1.2.3vimos que si la matriz de estado A de orden n de un proceso con funcion detransferencia de pulso G(z) = y(z)/u(z) posee r eigenvectores linealmenteindependientes (es decir, el rango de A es r), entonces la forma de Jordan esuna matriz J que posee n − r unos sobre su diagonal, con todos los demaselementos iguales a cero. Por citar un ejemplo, si A, de orden n = 8, contieneun eigenvalor p1 de multiplicidad 3, otro eigenvalor p2 de multiplicidad 2,otros tres eigenvalores distintos, y su rango es 6, entonces la forma de Jordanpresenta 8 − 6 = 2 unos sobre la diagonal. Es decir:

x(k + 1) =

p1 0 0 0 0 0 0 00 p1 1 0 0 0 0 00 0 p1 0 0 0 0 00 0 0 p2 1 0 0 00 0 0 0 p2 0 0 00 0 0 0 0 p6 0 00 0 0 0 0 0 p7 00 0 0 0 0 0 0 p8

x1(k)x2(k)x3(k)x4(k)x5(k)x6(k)x7(k)x8(k)

+

00101111

u(k)

(2.59)y(k) =

[c1 c2 c3 c4 c5 c6 c7 c8 c9

]x(k) + b0u(k) (2.60)

y(z)u(z)

= b0 +c1

(z − p1)3+

c2(z − p1)2

+c3

z − p1+

c4(z − p2)2

+c5

z − p2+

8∑i=6

ciz − pi

(2.61)

Ejemplo 2.10

La funcion de transferencia de pulso de un proceso se modela como:

y(z)u(z)

=∑6

i=0 biz−i

1 +∑6

i=1 aiz−i

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

Page 75: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 61

de estado y la ecuacion de salida para la segunda forma canonica controlabley para la primera forma canonica observable. Demuestre que la matriz deestado de ambas formas canonicas poseen los mismos eigenvalores y queambas representaciones generan la misma funcion de transferencia de pulso.

Solucion: El siguiente programa resuelve las preguntas planteadas.

% ejem2_10.m FORMAS CANONICASclear allb0=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.5den =[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 00 0 0 1 0 00 0 0 0 1 00 0 0 0 0 1-a6 -a5 -a4 -a3 -a2 -a1];

Hc = [beta1beta2beta3beta4beta5beta6];

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

Page 76: [-] Control Avanzado - Arturo Rojas Moreno

62 Sistemas Discretos

1 0 0 0 0 -a50 1 0 0 0 -a40 0 1 0 0 -a30 0 0 1 0 -a20 0 0 0 1 -a1];

Ho = [b6-a6*b0b5-a5*b0b4-a4*b0b3-a3*b0b2-a2*b0b1-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), determinela ecuacion de estado y la ecuacion de salida de su forma canonica de Jordan.Demuestre que la matriz de estado de Jordan y la matriz de estado G poseenlos mismos eigenvalores y que ambas representaciones generan la mismafuncion de transferencia de pulso.

Solucion: El siguiente programa resuelve las preguntas planteadas.

% ejem2_11.m FORMAS CANONICAS DE JORDANclear 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 10 0 0 10 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, 0rangG = 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);

Page 77: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 63

p1=p(1); p2=p(2); p2=p(3); p2=p(4);% x(k+1) = Gj*x(k) + Hj*u(k); y = Cj*x(k) + Dj*u(k)Gj = [p1 0 0 0

0 p1 1 00 0 p1 00 0 0 p2];

Hj = [0;1;1;1];Cj = [c1 c2 c3 c4]; Dj = [k];[numj,denj] = ss2tf(Gj,Hj,Cj,Dj);eigGj = eig(Gj); % EIGENVALORES DE Gj: -1, -1, -1, 0

% SE COMPRUEBA QUE: num=numj, den=denj, eigG=eigGj

Procesos Discretos con Tiempo Muerto

En el dominio continuo, la transformada de Laplace del tiempo muertoes e−Tts. Si Tt = dT , d = 1, 2, . . . y dado que eTs = z, entonces en el dominiodiscreto el tiempo muerto toma la forma z−d. Este tiempo muerto puedeexistir en la entrada, en la salida o entre las variables de estado del proceso,tal como se ilustra a continuacion:

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 relacion d = Tt/T no fuera un entero (o tambien si lo fuera), resulta

util emplear la aproximacion de Pade para el tiempo muerto:

e−Tts = 1 − sTt +1!2

(sTt)2 − 1!3

(sTt)3 + · · · =num(s)den(s)

Con una aproximacion de tercer orden, podemos acomodar retardos de fasede hasta 200o (3.5 rad) [11], lo cual es suficiente para capturar el efecto deltiempo muerto en muchas aplicaciones. Tal aproximacion tiene la forma:

e−Ts ≈ num(s)den(s)

=1 − Tts/2 + (Tts)2/10 − (Tts)3/1201 + Tts/2 + (Tts)2/10 + (Tts)3/120

Ejemplo 2.12

Comparar la respuesta a un escalon del proceso:

y(s)u(s)

=10

2s+ 1e−5,8s

Page 78: [-] Control Avanzado - Arturo Rojas Moreno

64 Sistemas Discretos

con respecto a la respuesta originada por el proceso cuando el tiempo muertose aproxima por una relacion de Pade de tercer orden. Luego determinar laecuacion de estado aproximada del proceso.

Solucion: El programa ejpades.m en SIMULINK (figura 2.10) resuelve elproblema planteado y los resultados se ilustran en la figura 2.11. Para re-alizar la simulacion usando el programa ejpades.m, ejecutar previamenteel programa ejpade.m, el cual tambien determina la ecuacion de estado ylas funciones de transferencia aproximadas del proceso, tanto en el dominiocontinuo como en el dominio discreto.

% ejpade.m PROCESO CON TIEMPO MUERTO Dclear allTt=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 PARCIALnump=[0 10]; denp=[2 1];

% PROCESO APROXIMADOnum=conv(numD,nump);den=conv(denD,denp);[A,B,C,D]=tf2ss(num,den);

% PROCESO DISCRETO APROXIMADOT=0.5;[numd,dend]=c2dm(num,den,T,’zoh’);[G,H,C,D]=c2dm(A,B,C,D,T,’zoh’);

% GRAFICOSload yd; load yda;t=linspace(0,11,size(yd,1));plot(t,yd,t,yda,’--’), gridxlabel(’Tiempo en segundos’)ylabel(’Respuestas al escalon’)print -deps -f ejpadeprint -deps -s ejpades

2.3.6. Controlabilidad y Observabilidad

Concepto de Controlabilidad

Un proceso dinamico lineal se dice que es controlable, si es que existe unvector u(k) realizable y capaz de trasladar el estado del proceso desde unestado inicial x(0) hacia cualquier estado final x(N) en un tiempo finito N .

Page 79: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 65

u

Mux

Mux

−Tt^3/120s +Tt^2/10.s −Tt/2s+13 2

Tt^3/120.s +Tt^2/10.s +Tt/2.s+13 2

Aproximación del tiempo muerto

Graph

102s+1

Proceso parcial

yda_

yd_

ydayda

Tiempomuerto

ydyd

102s+1

Proc. parcial

Figura 2.10: Comparacion de las respuestas a un escalon del proceso y desu modelo aproximado mediante una relacion Pade de tercer orden (ejemplo2.12).

0 2 4 6 8 10 12−2

0

2

4

6

8

10

12

Tiempo en segundos

Res

pues

tas

al e

scal

óon

Figura 2.11: Comparacion de las respuestas a un escalon del proceso (curvasolida) y de su modelo aproximado (curva en trazos) mediante una relacionPade de tercer orden (ejemplo 2.12).

Page 80: [-] Control Avanzado - Arturo Rojas Moreno

66 Sistemas Discretos

Despejando u(k) de la ecuacion (2.38) para k = N se obtiene:

[u(N − 1) . . . u(0)]T = u(N) = M−1[x(N) −GNx(0)]M = [H GH . . . GN−1H]

donde det(M) = 0. M es conocida como la matriz de controlabilidad, la cualpuede contener columnas o filas linealmente dependientes. Por consiguiente,para que un proceso sea completamente controlable, lo que quiere decir, paraque su matriz de controlabilidad solo posea filas o columnas independientes,se debe cumplir que:

rango(M) = rango([H GH . . . GN−1H]) = n (2.62)

donde n es el orden del proceso. Para N < n no existe solucion para u, ypara N > n la solucion no es unica.

La determinacion de la controlabilidad completa en el espacio de estadocontinuo es similar. Basta reemplazar en M , A por G y B por H.

Concepto de Observabilidad

Un proceso lineal dinamico con salida y(k) se denomina observable sialgun estado x(k) puede ser obtenido a partir de un numero finito de salidasy(k),y(k − 1), . . . ,y(k − n). Consideremos la siguiente ecuacion de salida:

y(k) = Cx(k)

Empleando la ecuacion de estado x(k + 1) = Gx(k) + Hu(k), podemosdeducir que:

y(k) = Cx(k)y(k + 1) = CGx(k) + CHu(k)y(k + 2) = CG2x(k) + CGHu(k) + CHu(k + 1)

...y(k + n− 1) = CGn−1x(k) + [0, CH,CGH, . . . , CGn−2H]Un(2.63)

donde (asumiendo que los vectores de entrada son completamente conocidos)

Un = [u(k + n− 1) . . . u(k + 1) u(k)]T

Page 81: [-] Control Avanzado - Arturo Rojas Moreno

2.3 Fundamentos de Sistemas Discretos 67

La ecuacion (2.63) toma la forma:

Yn = Nx(k) + SUn (2.64)

donde:

Yn = [y(k) y(k + 1) . . . y(k + n− 1)]T

N = [C CG . . . CGn−1]T = [CT GTCT . . . (GT )n−1CT ]

S =

0 0 0 0 00 0 0 0 CH...

. . ....

0 CH CGH . . . CGn−2H

Despejando, el vector incognita se obtiene de:

x(k) = N−1[Yn − SUn] (2.65)

siempre que det(N) = 0. Luego, para que el proceso dinamico sea observable,la matriz de observabilidad N debe cumplir:

rango[N ] = n (2.66)

La determinacion de la observabilidad completa en el espacio de estadocontinuo es similar. Basta reemplazar A por G en la expresion de N .

Ejemplo 2.13

Determine si los procesos sistema hidraulico y pendulo descritos en los ejem-plos 2.1 y 2.2 son completamente controlables y observables.

Solucion: El siguiente programa resuelve las preguntas planteadas.

% ejem2_13.m CONTROLABILIDAD Y OBSERVABILIDADclear all

% SISTEMA HIDRAULICOArea = 9; gamma = 0.4; rho = 1.23; g = 9.81;Q0e = 3; % FLUJO DE ENTRADA EN EQUILIBRIOH1e = Q0e^2/(gamma*rho*g); % NIVEL DE EQUILIBRIOH2e = H1e;a11 = -gamma*sqrt(rho*g)/(2*Area*sqrt(H1e)); a21=-a11; a22=a11;A = [a11 0

a21 a22]; % n = 2

Page 82: [-] Control Avanzado - Arturo Rojas Moreno

68 Sistemas Discretos

B = [10];

C = [0 1]; D = [0];M = [B A*B]; % MATRIZ DE CONTRABILIDADrangM = rank(M);% rangM = 2 = n => COMPLETAMENTE CONTROLABLEN = [C’ A’*C’]; % MATRIZ DE OBSERVABILIDADrangN = rank(N);% rangN = 1 < 2 => NO ES COMPLETAMENTE OBSERVABLE

% PROCESO PENDULOBp = 1.3366; Lo = 1.635; Mo = 0.5; g = 9.81;AP = [0 1

-g/Lo^2 -Bp/(Mo*Lo^2)]; % n = 2BP = [0

1/(Mo*Lo^2)]; CP = [1 0]; DP = [0];MP = [BP AP*BP]; % MATRIZ DE CONTRABILIDADrangMP = rank(MP); % rangMP = 2 = n => COMPLETAMENTE CONTROLABLENP = [CP’ AP’*CP’];% MATRIZ DE OBSERVABILIDADrangNP = rank(NP); % rangNP = 2 = n => COMPLETAMENTE OBSERVABLE

Page 83: [-] Control Avanzado - Arturo Rojas Moreno

Capıtulo 3

Modelado de Procesos

Este capıtulo presenta la derivacion de modelos dinamicos de procesos con-tinuos con su correspondiente linealizacion y discretizacion. Tambien se explorala respuesta de los procesos a entradas tıpicas y se determina las caracterısticasde controlabilidad y observabilidad de los mismos, empleando como herramientade calculo la computadora. Las tres primeras secciones se dedican a los procesoscuyos sistemas de control avanzado van a ser implementados en tiempo real.Tales procesos son: el pendulo invertido, la grua-puente y el servomotor de cor-riente continua sujeto a cargas no lineales. En su seccion problemas resueltosse presenta la modelacion de diversos procesos, cuyos sistemas de control serandisenados en los capıtulos siguientes. La ultima seccion propone la derivacionde modelos dinamicos de otros procesos. Todos los archivos correspondientes alos ejercicios y problemas desarrollados en este capıtulo se pueden descargar delsitio: http://fiee.uni.edu.pe/728681F.

3.1. Modelo del Proceso Pendulo Invertido

El proceso pendulo invertido consiste de un pendulo montado sobre uncarro que se desplaza en forma horizontal. Este carro esta impulsado por unservomotor D.C. a traves de un sistema de poleas, tal como se muestra en lafigura 3.1. Para mayor claridad, el proceso pendulo invertido se ha separadoen dos subsistemas: el subsistema conformado por el carro y el pendulo, quese trata en la subseccion 3.1.1, y el subsistema conformado por el motor yel sistema de poleas, que se desarrolla en la subseccion 3.1.2.

Page 84: [-] Control Avanzado - Arturo Rojas Moreno

70 Modelado de Procesos

u

y

z F

Pendulo

Carro

Fuerza decontrol

-

+

ServomotorD.C. θ

y’

Figura 3.1: Proceso pendulo invertido.

3.1.1. Modelo del Subsistema Carro-Pendulo

El subsistema carro-pendulo se ilustra en la figura 3.2 y esta conformadopor un carro y una varilla. De la figura 3.2 podemos observar que los centrosde gravedad de la varilla y de la esfera son:

y y’

0z

z’

P

m

l

m

z

F

v

e

/2

g

gl e

l v

Figura 3.2: Subsistema carro-pendulo.

ze = z + lesen θ (3.1)

zv = z +lv2

sen θ (3.2)

Page 85: [-] Control Avanzado - Arturo Rojas Moreno

3.1 Modelo del Proceso Pendulo Invertido 71

Para modelar el sistema mecanico empleamos la segunda ley de Newtonpara los movimientos lineal y rotacional. Para el movimiento lineal, dichaley establece que para un sistema de N partıculas:

N∑i=1

mid2

dt2ri =

M∑j=1

Fj (3.3)

donde mi es la masa de la i-esima partıcula, ri es la posicion del centro demasa de la i-esima partıcula y Fj es la j-esima fuerza aplicada al sistema departıculas. Aplicando la ecuacion (3.3) a nuestro sistema (en la direccion z)obtenemos:

mcd2

dt2z +me

d2

dt2ze +mv

d2

dt2zv = F (3.4)

Luego, sustituyendo ze (ecuacion (3.1)) y zv (ecuacion (3.2)) en la ecuacion(3.4) obtenemos:

mcd2

dt2z +me

d2

dt2(z + lesen θ) +mv

d2

dt2(z +

lv2

sen θ) = F (3.5)

y desarrollando las derivadas resulta:

(mc+me+mv)z−(mele+mvlv2

)(sen θ)+θ2(mele+mvlv2

)(cos θ)θ = F (3.6)

Para completar el modelo, utilizamos la segunda ley de Newton aplicada almovimiento rotatorio alrededor del punto P del carro. Esta ley establece quepara un sistema de N partıculas en movimiento rotacional respecto a un sis-tema de referencia inercial, sometidas a M torques externos perpendicularesal plano de giro, se cumple que:

N∑i=1

Jid2

dt2θi =

M∑j=1

τj (3.7)

donde τj es el j-esimo torque externo, Ji es el momento de inercia de lai-esima partıcula respecto al punto P y θi es el angulo recorrido por la i-esima partıcula alrededor del punto P. Para aplicar esta ley al movimientorotatorio de la varilla alrededor del punto P utilizamos la tercera ley deNewton, la cual nos permite remplazar el efecto de la aceleracion del sistemade referencia Z ′−Y ′ por una fuerza miz aplicada en el centro de gravedad de

Page 86: [-] Control Avanzado - Arturo Rojas Moreno

72 Modelado de Procesos

las partıculas i de dicho sistema, pero en direccion opuesta a la aceleracion.Empleando la ecuacion (3.7) en la figura 3.2 obtenemos:

(Je+Jv)θ = meg(senθ)le+mvg(sen θ)lv2−mez(cos θ)le−mv z(cos θ)

lv2

(3.8)

y ordenando:

(mele +mvlv2

)g(sen θ) − (mele +mvlv2

)z(cos θ) = (Je + Jv)θ (3.9)

donde:

Je = mel2e ; Jv = mv

l2v3

(3.10)

3.1.2. Modelo del Subsistema Motor-Polea

El subsistema motor-polea esta representado en la figura 3.3. El modelodel sistema electrico se encuentra aplicando la ley de voltajes de Kirchhoffa la parte electrica de dicha figura. Ademas, debido a que la inductancia enservomotores D.C. de magneto permanente es pequena, podemos despreciarsu efecto en el modelo. Ası obtenemos:

u V V

R

L F

J

B

r

θ

a b

m

o

a

a

o p

+

-

m

mBJ

Figura 3.3: Subsistema motor-polea.

Raia + Vb = KA u = Va (3.11)

El voltaje contraelectromotriz esta representado por:

Vb = Kbθm (3.12)

Aplicando la segunda ley de Newton para el movimiento rotatorio en elsistema mecanico del servomotor, obtenemos:

Tm = Jeq θm +Beq θm + nF rp (3.13)

Page 87: [-] Control Avanzado - Arturo Rojas Moreno

3.1 Modelo del Proceso Pendulo Invertido 73

donde:

Jeq = Jm + n2(Jo + Jp) (3.14)Beq = Bm + n2Bo (3.15)

El torque producido en el eje del servomotor viene dado por la ecuacion:

Tm = Kmia (3.16)

Sustituyendo la ecuacion (3.16) en (3.13) y despejando ia se obtiene:

ia =Jeq

Kmθm +

Beq

Kmθm +

n rpKm

F (3.17)

Luego, substituyendo las ecuaciones (3.17) y (3.12) en (3.11) y despe-jando F obtenemos:

F =KmKA

Ran rpu− Jeq

n rpθm −

(Beq

n rp+KmKb

Ran rp

)θm (3.18)

Para transformar el desplazamiento angular del servomotor en el desplaza-miento horizontal del carro en funcion del radio de la polea y del factor dereduccion del servomotor, empleamos:

θm =z

n rp(3.19)

Substituyendo la ultima relacion en (3.18), obtenemos la ecuacion generaldel subsistema servomotor, como sigue:

F =KmKA

Ran rpu− Jeq

n2 r2pz −

(Beq

n2 r2p+

KmKb

Ran2 r2p

)z (3.20)

Las ecuaciones (3.6), (3.9) y (3.20) representan el modelo matematicodel proceso pendulo invertido controlado por la corriente de armadura. Talesecuaciones pueden ser escritas en forma compacta:

M1z −M2(sen θ)θ2 +M2(cos θ)θ − F = 0 (3.21)

M2g(sen θ) −M2z(cos θ) − J1θ = 0 (3.22)

F = KxKA u− J2z −Bxz (3.23)

Page 88: [-] Control Avanzado - Arturo Rojas Moreno

74 Modelado de Procesos

donde:

M1 = mc +me +mv; M2 = mele +mvlv2

(3.24)

J1 = Je + Jv; J2 =Jeq

n2r2p(3.25)

Kx =Km

Ranrp; Bx =

Beq

n2r2p+KbKm

n2r2pRa(3.26)

3.1.3. Representacion en el Espacio de Estado

Las ecuaciones obtenidas pueden ser representadas en el espacio de es-tado mediante la siguiente asignacion de variables de estado:

x1 = θ (3.27)x2 = θ (3.28)x3 = z (3.29)x4 = z (3.30)

Escribiendo dichas ecuaciones en el espacio de estado, obtenemos:

x1

x2

x3

x4

=

x2M2(sin x1)(cos x1)x2

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

x4M2

2 g(sin x1)(cos x1)−J1M2(sin x1)x22+J1Bxx4−J1KxKA u

M22 (cos2 x1)−(M1+J2)J1

(3.31)y puesto que en nuestro sistema tenemos como salidas disponibles el despla-zamiento angular de la varilla y el desplazamiento del carro, la ecuacion desalida toma la forma siguiente:

y = Cx (3.32)

donde:

C =[

1 0 0 00 0 1 0

](3.33)

Page 89: [-] Control Avanzado - Arturo Rojas Moreno

3.1 Modelo del Proceso Pendulo Invertido 75

3.1.4. Obtencion del Modelo Lineal

Para poder analizar la ecuacion matricial (3.31) empleando tecnicas decontrol lineal, es necesario obtener un modelo lineal del proceso. Suponiendoque las variables de estado se desvıan levemente con respecto a una condi-cion de operacion (un estado de equilibrio, por ejemplo), la aproximacionlineal se puede obtener mediante la expansion en series de Taylor, despre-ciando los terminos de orden superior. Consideremos que nuestro procesosea representado por la siguiente expresion:

x = f(x, u) (3.34)

x =[x1 x2 x3 x4

]Tf =

[f1 f2 f3 f4

]T =[x1 x2 x3 x4

]Ten donde u es la senal de control, x es el vector de estados y f es una funcionvectorial de variable vectorial. La expansion en serie de Taylor alrededor delpunto de operacion (x, u) resulta:

˙x = f(x, u) +[∂f(x, u)∂x

(x − x) +∂f(x, u)∂u

(u− u)]

+

12!

[∂2f(x, u)∂x2

(x − x)2 + 2∂2f(x, u)∂x∂u

(x − x)(u− u) +∂2f(x, u)∂u2

(u− u)2]+ · · ·

(3.35)Si la variacion de las variable residuales (x−x) y (u−u) es pequena, entoncesse pueden despreciar los terminos de orden superior. En el caso que nosocupa, el punto de operacion (o estado de equilibrio) se ubica alrededor delorigen: x = [0, 0, 0, 0]T = 0 y u = 0, entonces la ecuacion (3.35) se puedeescribir como:

x = f(0, 0) +∂f(0, 0)∂x

x +∂f(0, 0)∂u

u (3.36)

Dado que f(x, u) es una funcion de variable vectorial, su derivada parcialcon respecto a x y u viene a representar la operacion jacobiana (ver ejemplos2.1 y 2.2). Entonces, la ecuacion (3.35) se convierte en:

x = f(0, 0) +

∂f1(0,0)∂x1

∂f1(0,0)∂x2

∂f1(0,0)∂x3

∂f1(0,0)∂x4

∂f2(0,0)∂x1

∂f2(0,0)∂x2

∂f2(0,0)∂x3

∂f2(0,0)∂x4

∂f3(0,0)∂x1

∂f3(0,0)∂x2

∂f3(0,0)∂x3

∂f3(0,0)∂x4

∂f4(0,0)∂x1

∂f4(0,0)∂x2

∂f4(0,0)∂x3

∂f4(0,0)∂x4

x +

∂f1(0,0)∂u

∂f2(0,0)∂u

∂f3(0,0)∂u

∂f4(0,0)∂u

u(3.37)

Page 90: [-] Control Avanzado - Arturo Rojas Moreno

76 Modelado de Procesos

Luego, aplicando la ultima expresion a la ecuacion (3.31), obtenemos elsiguiente modelo lineal para el sistema de pendulo invertido:

x = Ax +Bu (3.38)

donde:

A =

0 1 0 0(M1+J2)M2g

(M1+J2)J1−M22

0 0 BxM2

(M1+J2)J1−M22

0 0 0 1−M2

2 g

(M1+J2)J1−M22

0 0 −J1Bx

(M1+J2)J1−M22

(3.39)

B =

0−KxM2KA

(M1+J2)J1−M22

0J1KxKA

(M1+J2)J1−M22

(3.40)

3.1.5. El Modelo en el Espacio de Estado Discreto

La obtencion del modelo del proceso en el espacio de estado discretoya ha sido explorada en la subseccion 2.3.5. En resumen, las ecuaciones deestado en tiempo continuo del proceso estan dadas por:

x(t) = Ax(t) +Bu(t) (3.41)

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

La solucion de tales ecuaciones es:

x(t) = Φ(t− t0)x(t0) +∫ t

t0

Φ(t− τ)Bu(τ)dτ (3.43)

donde t0 es el tiempo inicial, y:

Φ(t− t0) = eA(t−t0) =∞∑

k=0

Ak(t− t0)k

k!(3.44)

El modelo en tiempo discreto esta dado por:

x(kT + T ) = Gx(kT ) + Hu(kT ) (3.45)

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

G = Φ(T ) (3.46)

Page 91: [-] Control Avanzado - Arturo Rojas Moreno

3.2 Modelo del Proceso Grua-Puente 77

H =[∫ T

0Φ(λ)(dλ)

]B (3.47)

La ecuacion de salida en tiempo discreto viene a ser:

y(kT ) = Cx(kT ) +Du(kT ) (3.48)

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

3.2. Modelo del Proceso Grua-Puente

El modelado del proceso grua-puente es similar al caso del pendulo in-vertido. La unica variante es que en este caso el pendulo debe apuntar haciaabajo, tal como se muestra en la figura 3.4. Al igual que en el caso delpendulo invertido, para mayor facilidad, se ha subdividido el proceso en dossubsistemas: carro-varilla y motor-polea.

u

y

z F

Carro

Fuerza decontrol

-

+

ServomotorD.C.

y’

θGrua puente’

Figura 3.4: Proceso grua-puente.

3.2.1. Modelo del Subsistema Carro-Varilla

El subsistema carro-varilla esta representado en la figura 3.5. De dichafigura podemos observar que los centros de gravedad de la varilla y de laesfera son:

ze = z − lesen θ (3.49)

Page 92: [-] Control Avanzado - Arturo Rojas Moreno

78 Modelado de Procesos

P

l v

zF

l em

vg

me g

l v

z

y’y

0z’

Figura 3.5: Subsistema carro-varilla de la grua-puente.

zv = z − lv2

sen θ (3.50)

Aplicando la ley de Newton para el movimiento lineal dada por la ecuacion(3.3) en la direccion z, obtenemos:

mcd2

dt2z +me

d2

dt2ze +mv

d2

dt2zv = F (3.51)

Luego, sustituyendo ze y zv en funcion de z:

mcd2

dt2z +me

d2

dt2(z − lesen θ) +mv

d2

dt2(z − lv

2sen θ) = F (3.52)

y desarrollando las derivadas, tenemos:

(mc+me+mv)z+(mele+mvlv2

)(sen θ)θ2−(mele+mvlv2

)(cos θ)θ = F (3.53)

Ahora, aplicando en la figura 3.5 la segunda ley de Newton para el movimien-to rotatorio dada por la ecuacion (3.7) alrededor del punto P:

(Je + Jv)θ = mez(cos θ)le +mv z(cos θ)lv2−meg(senθ)le −mvg(sen θ)

lv2

(3.54)

Page 93: [-] Control Avanzado - Arturo Rojas Moreno

3.2 Modelo del Proceso Grua-Puente 79

y reordenando, obtenemos:

(mele +mvlv2

)z(cos θ) − (mele +mvlv2

)g(sen θ) = (Je + Jv)θ (3.55)

donde:

Je = mel2e ; Jv = mv

l2v3

3.2.2. Modelo del Subsistema Motor-Polea

Este subsistema es el mismo que se desarrollo para el pendulo invertidoen la subseccion 3.1.2, ecuacion (3.20):

F =KmKA

Ran rpu− Jeq

n2 r2pz −

(Beq

n2 r2p+

KmKb

Ran2 r2p

)z

Las ecuaciones (3.53), (3.55) y (3.20) representan el modelo matematico delproceso grua-puente controlado por la corriente de armadura. Tales ecua-ciones pueden ser escritas en forma compacta como sigue:

M1z +M2(sen θ)θ2 −M2(cos θ)θ − F = 0 (3.56)

−M2g(sen θ) +M2z(cos θ) − J1θ = 0 (3.57)

F = KxKA u− J2z −Bxz (3.58)

donde:M1 = mc +me +mv; M2 = mele +mv

lv2

J1 = Je + Jv; J2 =Jeq

n2r2p

Kx =Km

Ranrp; Bx =

Beq

n2r2p+KbKm

n2r2pRa

3.2.3. Representacion en el Espacio de Estado

Las ecuaciones arriba obtenidas se representan en el espacio de estadosmediante la siguiente asignacion de variables:

x1 = θ (3.59)x2 = θ (3.60)x3 = z (3.61)x4 = z (3.62)

Page 94: [-] Control Avanzado - Arturo Rojas Moreno

80 Modelado de Procesos

Escribiendo las ecuaciones en el espacio de estado:

x1

x2

x3

x4

=

x2−M2(sin x1)(cos x1)x2

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

x4−M2

2 g(sin x1)(cos x1)−J1M2(sin x1)x22−J1Bxx4+J1KxKA u

−M22 (cos2 x1)+(M1+J2)J1

(3.63)y puesto que tenemos como salidas disponibles el desplazamiento angular dela varilla y el desplazamiento del carro, tendremos entonces como ecuacionde salida la siguiente expresion:

y = Cx (3.64)

donde:

C =[

1 0 0 00 0 1 0

](3.65)

3.2.4. Obtencion del Modelo Lineal

Para obtener el modelo lineal del sistema grua-puente, empleamos laecuacion (3.36) desarrollada en la subseccion 3.1.4, como sigue:

x = Ax +Bu (3.66)

donde:

A =

0 1 0 0−(M1+J2)M2g(M1+J2)J1−M2

20 0 −BxM2

(M1+J2)J1−M22

0 0 0 1−M2

2 g

(M1+J2)J1−M22

0 0 −J1Bx

(M1+J2)J1−M22

(3.67)

y

B =

0KxM2KA

(M1+J2)J1−M22

0J1KxKA

(M1+J2)J1−M22

(3.68)

3.2.5. El Modelo en el Espacio de Estado Discreto

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

Page 95: [-] Control Avanzado - Arturo Rojas Moreno

3.2 Modelo del Proceso Grua-Puente 81

3.2.6. Resumen de Variables y Parametros

La tabla 3.1 muestra las variables y parametros para los procesos penduloinvertido y grua-puente. Los valores de los parametros se obtuvieron de lashojas de especificaciones y por medicion.

3.2.7. Identificacion de la Zona Muerta del Servomotor

Al analizar la curva velocidad vs. voltaje de entrada del servomotor (fi-guras 3.6 y 3.7) se puede observar una zona muerta originada por la friccionestatica . Tal friccion iguala al torque necesario para comenzar a mover elservomotor; es decir, debido a la presencia de la friccion estatica, el servo-motor permanece en reposo siempre que no reciba un nivel de voltaje quesupere un determinado umbral.

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−800

−600

−400

−200

0

200

400

600

800entrada vs salida

salid

a

entrada

Figura 3.6: Respuesta del servomotor sin compensar (voltaje vs. velocidadangular).

Observar en la figura 3.7 que la zona muerta de velocidad nula se presentapara valores de voltaje entre ± 0.1 volt. Tal zona muerta es una no linealidadque puede introducir efectos no deseados en el control, por lo que debe sercompensada mediante software, como sigue (ver figura 3.8):

Page 96: [-] Control Avanzado - Arturo Rojas Moreno

82 Modelado de Procesos

Cuadro 3.1: Variables y parametros valorados para los procesos penduloinvertido y grua-puente.

Sımbolo Descripcion Valor/Formulaθ posicion angular de la varillaF fuerza aplicada al carroθm posicion angular del motorz posicion del carrolv longitud de la varilla 0.767 mle distancia entre P y la esferaze componente horizontalzv componente horizontalg gravedad 9.8 Nme masa de la esfera no usadomv masa de la varilla 0.063095 kgmc masa del carro 0.92 kgmp masa de la polea 0.2 kgKA ganancia del amplificador 14.9Ra resistencia del motor 7.38 ohmLa inductancia del motor se desprecioKb constante contraelectromotriz 31.0352×10−3 V/radKm constante de torque del motor 31.071×10−3 N-m/AJm inercia del eje primario del motor 1.9596×10−6 kg-m2

Bm friccion viscosa del eje primario 1.8342×10−3 N-m/rad/sJo inercia del eje secundario se desprecioBo friccion viscosa del eje secundario se desprecion factor de reduccion de velocidad 1/19.741rp radio de la polea 0.0648 mJp inercia de la polea mpr

2p/2

Jeq momento de inercia equivalente Jm + n2(Jo + Jp)Beq friccion viscosa equivalente Bm + n2Bo

Je momento de inercia de la esfera mel2e

Jv momento de inercia de la varilla mvl2v/3

Page 97: [-] Control Avanzado - Arturo Rojas Moreno

3.2 Modelo del Proceso Grua-Puente 83

−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4−150

−100

−50

0

50

100

150entrada vs salida

salid

a

entrada

Figura 3.7: Vista ampliada de la figura 3.6.

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−800

−600

−400

−200

0

200

400

600

800entrada vs salida

entrada u

salid

a

Figura 3.8: Respuesta del servomotor con zona muerta compensada.

Page 98: [-] Control Avanzado - Arturo Rojas Moreno

84 Modelado de Procesos

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

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

si SE\~NAL_DE_CONTROL = 0entonces 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 procesode una entrada y una salida que comprende un subsistema electrico y unsubsistema mecanico. El subsistema electrico esta compuesto por un gene-rador PWM (“Pulse Width Modulation”), que opera conjuntamente con unamplificador de potencia) y por un servomotor D.C. controlado por voltajede armadura. El subsistema mecanico presenta un engranaje reductor develocidad y una varilla metalica acoplada al eje del servomotor, a manerade un brazo robotico de un grado de libertad. En el extremo de la varilla sepueden acoplar cargas esfericas adicionales de masa Mo y radio Ro.

La figura 3.9 presenta la estructura del proceso no lineal a controlar. Latabla 3.2 describe las variables y los valores de los parametros.

R Lb

+

-eb

OI

Kact+u-

T

TM

mJ

N 1

TL

MR O

mωq

m J L

m

2N1

ω

LOm

q

bL

N 2 = n N

Figura 3.9: Proceso: servomotor con carga no lineal.

3.3.1. El Subsistema Mecanico

La ecuacion del subsistema mecanico se puede obtener aplicando la se-gunda ley de Newton en el punto donde se acopla el eje del servomotor con

Page 99: [-] Control Avanzado - Arturo Rojas Moreno

3.3 Modelo del Servomotor D.C. No Lineal 85

Cuadro 3.2: Parametros y variables del servomotor con carga no lineal.

Sımbolo Descripcion Valor/Formulau tension de entrada al proceso

Kact ganancia del amplificador 14.9Va tension de armadura Va = Kactu

R resistencia de armadura 7.38 ohmL inductancia de armadura 4.64×10−2 HI corriente de armaduraK constante del torque motor 31.071×10−3 N-m/AT torque motor T = KI

TM torque de inercia motoricaTN torque: fricciones no linealesTL torque inercial de la cargaTE torque del peso de la varilla/esferaJm inercia del motor 1.9062×10−6 kg-m2

JL inercia de la carga 3.5×10−7 kg-m2

bm coef. de friccion del motor 1.8338×10−6 N-m/rad/sbL coef. de friccion de la carga 10−5 N-m/rad/sMo masa de la esfera 0, 0.01, 0.02, 0.045 kgm masa de la varilla 0.06377 kgL0 longitud de la varilla 0.776 mR0 radio de la esfera 0.02 meb fuerza contra-electromotriz eb = Ewm

E constante de fuerza electromotriz 31.0352×10−3 V/rad/sn relacion de engranajes 19.741g aceleracion de la gravedad 9.81 m/s2

w velocidad angular de la cargawm velocidad angular del eje wm = nw

qm posicion angular del ejeq posicion angular de la carga qm = nq

Page 100: [-] Control Avanzado - Arturo Rojas Moreno

86 Modelado de Procesos

la varilla metalica (figura 3.9). El torque resultante nT que debe entregar elservomotor para vencer todos los torques que se le oponen es:

nT = nTM + TE + TL + TN (3.69)

donde:TM = Jmwm + bmwm = nJmw + nbmw (3.70)

TL = (MoL2o +

25MoR

2o +

13mL2

o + JL)w + bLw (3.71)

TE = gLo(Mo +m

2)sen q (3.72)

Reemplazando las ecuaciones (3.70), (3.71) y (3.72) en la ecuacion (3.69) seobtiene:

nTm = Mw +Bw +Nsen q + TN (3.73)

donde:

M = Jeff +ML2o +

25MR2

o +13mL2

o) (3.74)

N = gLo(M +m

2) (3.75)

Jeff = n2Jm + JL (3.76)

B = n2bm + bL (3.77)

3.3.2. El Subsistema Electrico

La tension de armadura Va que permite controlar la velocidad del motorviene expresada por:

Va = IR+ LI + eb (3.78)

donde eb es la tension contraelectromotriz y es igual a:

eb = Ewm (3.79)

y la tension de armadura Va es:

Va = uKact (3.80)

Page 101: [-] Control Avanzado - Arturo Rojas Moreno

3.3 Modelo del Servomotor D.C. No Lineal 87

3.3.3. Conversion de Energıa Electrica en Mecanica

La ecuacion de conversion en energıa electrica en mecanica es:

T = KI (3.81)

donde K es la constante del par motriz. Igualando las ecuaciones (3.78) y(3.80) (notar que wm = nw) obtenemos:

I =Kact

Lu− Enw

L− R

LI (3.82)

Empleando las ecuaciones (3.81) y (3.82) en (3.73) y despejando w obtene-mos:

w = −N

Msenq − B

Mw − 1

MTN +

nKI

M(3.83)

Las ecuaciones (3.82) y (3.83) describen el modelo no lineal del proceso ypueden tomar la siguiente representacion:

x = F (x) +G(x)u; y = H(x) (3.84)

Eligiendo como variables de estado: x1 = q (posicion angular), x2 = x1 =q = w (velocidad angular) y x3 = I (intensidad de corriente), podemosobtener:

x1 = x2

x2 = −(N

M)senx1 − B

Mx2 − 1

MTN +

nK

Mx3

x3 = −nELx2 − R

Lx3 +

Kact

Lu (3.85)

donde la salida es la posicion x1. Por consiguiente:

F (x) =

x2

−( NM )senx1 − B

M x2 − 1M TN + nK

M x3

−nEL x2 − R

Lx3

G(x) =

0

0Kact

L

; H(x) = x1 (3.86)

Las matrices dadas en (8.38) representan el modelo matematico del procesoconsiderando carga no lineal. La figura 3.10 muestra el diagrama de simu-lacion del proceso (archivo servsim.m) y la figura 3.11 muestra la respuesta

Page 102: [-] Control Avanzado - Arturo Rojas Moreno

88 Modelado de Procesos

del proceso a un escalon para los casos con L = 0 y L = 0. Dichas respuestasresultan muy similares debido a que la inductancia L es muy pequena y parafines practicos puede despreciarse, con lo cual el orden del proceso no linealqueda reducido a uno de segundo. Para simular el proceso usando servsim.mse debe ejecutar primero el archivo de datos servpar.m.

cc

gan1 fricción deCoulomb

1Ms+B

subsistemamecánico

−+−

sum2

Kact

gan5 s1

Integrador

n*KR

subsistemaeléctrico

n*E

gan2

+−

sum1

uN

gan3

MATLABFunction

seno

w q

gráfico

Figura 3.10: Diagrama de bloques del proceso no lineal.

0 1 2 3 4 5 6 7 8 9 100

0.2

0.4

0.6

0.8

1

1.2

1.4

Pos

ició

n q

(rad

); e

ntra

da u

(vo

ltios

)

Tiempo en segundos

u

q

Figura 3.11: Respuesta del proceso no lineal a un escalon.

Page 103: [-] Control Avanzado - Arturo Rojas Moreno

3.3 Modelo del Servomotor D.C. No Lineal 89

Considerando L=0, la corriente de armadura resulta:

I =Kact

Ru− nE

Rw (3.87)

y la ecuacion (8.38) pasa a ser:

F (x) =

[x2

−NM senx1 −

(BM + n2KE

MR

)x2 − 1

M TN

]

G(x) =[

0nKKact

RM u

]; H(x) = x1 (3.88)

3.3.4. Modelo y Compensacion de no Linealidades

El torque TN se origina por la friccion estatica TF y por la friccion deCoulomb TC . TF es el torque necesario a vencer para que el servomotorcomience a moverse. Cuando el servomotor ya esta en movimiento, apareceel torque de friccion de Coulomb TC oponiendose a dicho movimiento. Talestorques pueden modelarse como:

TF = CF sign(u); TC = CCsign(w) (3.89)

donde la funcion sign(.) toma el valor +1 cuando el argumento es positivoy −1 cuando es negativo. Para el servomotor empleado se ha determinadoexperimentalmente [2] que CF ≈ CC = 0,15.

Nuestro problema es entonces compensar (eliminar) el torque TN de laecuacion (3.88). Para ello definimos:

u = v +R

nKKactTN ; (3.90)

Reemplazando la ecuacion (3.90) en (3.88) obtenemos una ecuacion com-pensada de la forma:

x2 = −N

Msenx1 −

(B

M+n2KE

MR

)x2 +

nKKact

RMv (3.91)

Asumiendo en (3.90) que TN = TC = CCsign(w), lo cual es cierto cuandoel sistema ya esta en movimiento, el termino no lineal resulta:

RCC

nKKactsign(w) = 0,12sign(w) (3.92)

Page 104: [-] Control Avanzado - Arturo Rojas Moreno

90 Modelado de Procesos

La ecuacion 3.92 indica que en la implementacion del software del sistemade control debemos compensar la senal de control u en ± 0.12 volt. Experi-mentalmente, un valor de 0.2 ha generado buenos resultados.

Por otra parte, debido a que valores grandes de la senal de control upueden saturar al servomotor, es que se requiere un limitador de la tensionde control u. Este limitador puede tambien implementarse en el softwarede control. Se ha determinado experimentalmente que para no entrar en lazona de saturacion del servomotor, la senal de control compensada no debesobrepasar el umbral de ± 1.4 voltios.

3.3.5. Linealizacion y Discretizacion del Proceso

Asumiendo que la senal de control u esta debidamente compensada deno linealidades y despreciando la inductancia L del servomotor, entonces,para desviaciones pequenas alrededor del origen se cumple que senx1 ≈ x1.Aplicando tal aproximacion en la ecuacion (3.88) obtenemos una ecuacionde estado lineal de la forma x = Acx+Bcu y una ecuacion de salida y = Ccx,donde:

Ac =[

0 1−N

M −( BM + Kn2E

MR )

]

Bc =[

0KnKact

MR

]; Cc =

[1 0

](3.93)

A tal resultado tambien se puede llegar si aplicaramos la tecnica del jaco-biano. La funcion de transferencia Gp(s) del proceso puede determinarsemediante la relacion:

Gp(s) =y(s)u(s)

= Cc[sI −Ac]−1Bc (3.94)

La funcion de transferencia de pulso Gp(z) se determina como sigue:

Gp(z) =y(z)u(z)

= (1 − z−1)Z[Gp(s)s

](3.95)

donde Z[.] es el operador transformada z. Dicha funcion de transferenciadepende del tiempo de muestreo T y posee la siguiente estructura:

Gp(z) =y(z)u(z)

=b1z + b2

z2 + a1z + a2=

b1z−1 + b2z

−2

1 + a1z−1 + a2z−2(3.96)

Page 105: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 91

Su correspondiente ecuacion de diferencias es:

y(k) = −a1y(k − 1) − a2y(k − 2) + b1u(k − 1) + b2u(k − 2) (3.97)

Dado que un mismo proceso puede tener multiples representaciones de esta-do, a partir de la ecuacion (3.96) podemos determinar diversas representa-ciones de estado de la forma:

x(k + 1) = Gx(k) +Hu(k) (3.98)y(kT ) = Cx(kT ) (3.99)

donde G,H y C son las matrices de estado, de control y de salida, respectiva-mente, con dimensiones apropiadas. La representacion canonica controlabledel proceso (primera forma, ver la subseccion 2.3.5), resulta:

G =[

0 1−a2 −a1

]; H =

[01

]; C =

[b2 − a2b0 b1 − a1b0

]; D = [0]

(3.100)Tener en cuenta que para nuestro proceso b0 = 0. Si seleccionamos comovariables de estado x1 = y(k), x2(k) = y(k + 1) − b1u(k), obtendremos lasegunda forma canonica controlable (subseccion 2.3.5):

G =[

0 1−a2 −a1

]; H =

[b1

b2 − a1b1

]; C =

[1 0

]; D = [0]

(3.101)La funcion de transferencia de pulso del proceso tambien se calcula de:

Gp(z) =y(z)u(z)

= C(zI −G)−1H =b1z

−1 + b2z−2

1 + a1z−1 + a2z−2(3.102)

3.4. Problemas Resueltos

Los procesos pendulo invertido, grua-puente y servomotor con carga nolineal descritos en las secciones anteriores, seran usados en las aplicaciones entiempo real. Los procesos que a continuacion se describen seran empleadospara validar los diferentes algoritmos de control, los cuales se tratan condetalle en los capıtulos siguientes. Para cada proceso en estudio se pide:

Determinar si el proceso es completamente controlable y/o completa-mente observable.

Page 106: [-] Control Avanzado - Arturo Rojas Moreno

92 Modelado de Procesos

Calcular los eigenvalores del proceso, tanto en el dominio continuocomo en el dominio discreto.

Seleccionar un tiempo de muestreo y determinar el modelo del procesoen el espacio de estado discreto. Tener en cuenta que el tiempo demuestreo seleccionado no necesariamente sera usado cuando el procesosea controlado digitalmente. Veremos que la eleccion del tiempo demuestreo es a conveniencia del algoritmo empleado.

Graficar las respuestas del proceso continuo y del proceso discretizadocuando las senales de entrada son del tipo escalon.

La solucion a cada problema se presenta en archivos m (con extension m),los cuales pueden ser ejecutados en el ambiente de trabajo de MATLAB.Las respuestas al escalon se muestran en las figuras correspondientes.

Problema 3.1

La figura 3.12 muestra el diagrama de cuerpo libre del sistema de suspen-sion de la rueda de un bus (normalmente un bus posee cuatro de talessistemas), donde m1 = 2500 kg es la masa que soporta el sistema de sus-pension, m2 = 320 kg es la masa del sistema de suspension, k1 = 80000N/m es la constante del resorte de suspension, k2 = 500000 N/m es la cons-tante del resorte del aro mas la rueda, b1 = 350 N-s/m es la constante deamortiguamiento de la suspension y b2 = 15020 N-s/m es la constante deamortiguamiento del aro mas la rueda. Este modelo se encuentra en el sitiowww.engin.umich.edu/group/ctm/index.html.

Un buen sistema de suspension debe tratar de eliminar en el tiempo mascorto posible las oscilaciones producidas por protuberancias, desniveles yhuecos en la pista. Teniendo en cuenta que la distancia x2−w (la deformacionde 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ıcilde medir. El disturbio w puede modelarse como un escalon. Dicho disturbiopuede ser provocado, por ejemplo, cuando el bus esta saliendo de un desnivelpronunciado de corta longitud. Las ecuaciones del movimiento que gobiernanel sistema de suspension son:

m1x1 = −b1(x1 − x2) − k1(x1 − x2) + u

m2x2 = b1(x1 − x2) + k1(x1 − x2) + b2(w − x2) + k2(w − x2)

Page 107: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 93

x

x

w

u b

b

m

m

Masa de 1/4del bus

Masa de lasuspension

1

1

2

2

2

1

2

k

k

1

Figura 3.12: Sistema de suspension de la rueda de un bus.

Se puede demostrar que las ecuaciones de estado y de salida del proceso son:

x1

x1

y1

y2

=

0 1 0 0a21 0 a23 − b1

m1

− b2m2

0 a33 1k2m2

0 a43 0

x1

x1

y1

y2

+

01

m1

01

m1+ 1

m2

u+

0−a21

− b2m2

− k2m2

w

y =[

0 0 1 0]x1

x1

y1

y2

+

[0 0

] [ uw

]

donde:y1 = x1 − x2

y2 =∫ [

−(k1

m1+k1

m2

)y1 − k2

m2(w − x2) +

(1m1

+1m2

)u

]dt

a21 = − b1b2m1m2

; a23 =b1m1

(b1m1

+b1m2

+b2m2

)− k1

m1

a33 = −(b1m1

+b1m2

+b2m2

); a43 = −

(k1

m1+k1

m2+k2

m2

)

% P3_1P3.m SOLUCION AL PROBLEMA 3.1clear all

Page 108: [-] Control Avanzado - Arturo Rojas Moreno

94 Modelado de Procesos

% PARAMETROS DEL PROCESOm1 = 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 LINEALA = [0 1 0 0

-b1*b2/(m1*m2) 0 a23 -b1/m1b2/m2 0 a33 1k2/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 PROCESOrAB = rank(ctrb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLErAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLEeigA = 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 DISCRETOT = 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)); gridxlabel(’Tiempo en segundos’)

Page 109: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 95

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

0 50 100 1500

0.5

1

1.5

2

2.5x 10

−5

Tiempo en segundos

y(t)

pa

ra

u=1,

w=

0

0 50 100 150−1

−0.5

0

0.5

1

Tiempo en segundos

y(t)

pa

ra

u=0,

w=

1

0 50 100 1500

0.5

1

1.5

2

2.5x 10

−5

Tiempo en segundos

y(k)

pa

ra

u=1,

w=

0

0 50 100 150−1

−0.5

0

0.5

1

Tiempo en segundos

y(k)

pa

ra

u=0,

w=

1

Figura 3.13: Respuestas al escalon para el sistema de suspension.

Page 110: [-] Control Avanzado - Arturo Rojas Moreno

96 Modelado de Procesos

Problema 3.2

La dinamica de un avion puede ser descrita por varios conjuntos acoplados deecuaciones diferenciales no lineales. Sin embargo, bajo ciertas suposiciones,tales ecuaciones pueden ser desacopladas y linealizadas para obtener dosconjuntos: las ecuaciones longitudinales y las ecuaciones laterales. El controlde la inclinacion θ del avion mostrado en la figura 3.14 es un problemalongitudinal.

Empuje

Peso

Arrastre

Impulso

x

x’

zz’

θα

γ

δe

e

Figura 3.14: Avion comercial en pleno vuelo.

Asumiendo que el avion esta en su velocidad de crucero (altura y ve-locidad constantes), entonces la resistencia de arrastre y la fuerza impulsorase cancelan mientras que el empuje de elevacion se iguala con el peso (verfigura 3.14). Con tales consideraciones, se puede asumir que las ecuacioneslongitudinales del movimiento del avion (los datos corresponden a un avioncomercial Boeing) son:

α = −0,313α+ 56,7q + 0,232δeq = −0,0139α− 0,426q + 0,0203δeθ = 56,7q

donde α es el angulo de ataque, q es la relacion de inclinacion, θ es el angulode inclinacion y δe es el angulo del deflector de elevacion. La funcion detransferencia del proceso es:

θ(s)δe(s)

=1,151s+ 0,1774

s3 + 0,739ss + 0,921s

Page 111: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 97

mientras que sus ecuaciones de estado y de salida son: αq

θ

=

−0,313 56,7 0

−0,0139 −0,426 00 56,7 0

αqθ

+

0,232

0,02030

δe

θ =[

0 0 1] α

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

% P3_2P4.m SOLUCION AL PROBLEMA 3.2clear all

% MODELO DEL AVION (DINAMICA LONGITUDINAL)A = [-0.313 56.7 0

-0.0139 -0.426 00 56.7 0];

B = [0.232;0.0203;0];C = [0 0 1]; D = [0];

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESOrAB = rank(ctrb(A,B)); % rAB = 3 => COMPLETAMENTE CONTROLABLErAC = rank(obsv(A,C)); % rAC = 3 => COMPLETAMENTE OBSERVABLEeigA = eig(A); % COMPUTA EIGENVALORES

% eigA(1) = 1; eigA(2) = -0.3695 + 0.8860i;% eigA(3) = 0.9963 - 0.0088i;% CONVERSION AL ESPACIO DISCRETOT = 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);

Page 112: [-] Control Avanzado - Arturo Rojas Moreno

98 Modelado de Procesos

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

0 5 10 15 20 25 300

2

4

6

8

Tiempo en segundos

y(t)

con

tinua

0 5 10 15 20 250

1

2

3

4

5

Tiempo en segundos

y(k)

dis

cret

a

Figura 3.15: Respuestas al escalon para el angulo de inclinacion del avioncomercial en vuelo.

Problema 3.3

La bola mostrada en la figura 3.16 puede rodar a lo largo de la barra con ungrado de libertad. Una leva conecta la barra con un engranaje que esta ac-cionado por un servomotor. Se desea disenar un sistema de control que puedamantener la bola sobre la barra. Asumir que la bola rueda libre de friccion.Los parametros del proceso son: masa de la bola M = 0.11 kg, radio de labola R = 0.015 m, distancia del extremo de la leva al centro del engrana-je d = 0.03 m, aceleracion de la gravedad g = 9.8 m/s2, longitud de la

Page 113: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 99

barra L= 1.0 m e inercia de la barra J = 9.99×10−6 kg-m2. Las variablesdel proceso son: posicion de la barra r, coordenada angular de la barra αy posicion angular del engranaje θ. Este modelo se encuentra en el sitiowww.engin.umich.edu/group/ctm/index.html.

BARRA

LEVA

ESFERA

Lr

d

αθ

ENGRANAJE

Figura 3.16: Bola balanceandose sobre una barra.

La ecuacion dinamica que describe el proceso es:

0 =(J

R2+M

)rMgsenα−Mrα2

Cuando α es pequeno, senα ≈ α. Luego:

0 =(J

R2+M

)rMgα−Mrα2

Por tanto, la ecuacion que relaciona α con θ puede aproximarse mediante lasiguiente relacion lineal:

α =d

La funcion de transferencia del proceso resulta:

r(s)θ(s)

= − Mgd

L(

JR2 +M

) 1s2

y la ecuacion de estado del proceso viene a ser:

[rr

]=[

0 10 0

] [rr

]+

[0

Mgd

L(

JR2 +M

)]θ

Page 114: [-] Control Avanzado - Arturo Rojas Moreno

100 Modelado de Procesos

Sin embargo, usaremos cuatro estados, pues en lugar de controlar la posiciona traves de θ, lo haremos a traves de α, lo que en esencia significa quequeremos controlar el torque de la barra. Las ecuaciones de estado y desalida para esta situacion son:

rrαα

=

0 1 0 00 0 Mgd

L(

JR2 +M

) 0

0 0 0 10 0 0 0

rrαα

+

0001

u

y =[

1 0 0 0]rrαα

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

% P3_3P5.m SOLUCION AL PROBLRMA 3.3clear all

% MODELO DE LA BOLA SOBRE LA BARRAM=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) 00 0 0 10 0 0 0];

B = [0;0;0;1];C = [1 0 0 0]; D = [0];

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESOrAB = rank(ctrb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLErAC = rank(obsv(A,C)); % rAC = 4 => COMPLETAMENTE OBSERVABLEeigA = eig(A); % COMPUTA EIGENVALORES

% eigA(1) = 0; eigA(2) = 0; eigA(3) = 0; eigA(4) = 0;

% CONVERSION AL ESPACIO DISCRETOT = 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.1000 0.0010 0.0000% 0 1.0000 0.0209 0.0010

Page 115: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 101

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

% RESPUESTAS AL ESCALONTT=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); gridxlabel(’Tiempo en segundos’)ylabel(’y(t) continua’)subplot(212)plot(TT,YY); gridxlabel(’Tiempo en segundos’)ylabel(’y(k) discreta’)print -deps -f P3_3P5

0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

Tiempo en segundos

y(t)

con

tinua

0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

Tiempo en segundos

y(k)

dis

cret

a

Figura 3.17: Respuestas al escalon de la posicion de la bola sobre la barra.

Page 116: [-] Control Avanzado - Arturo Rojas Moreno

102 Modelado de Procesos

Problema 3.4

La figura 3.18 muestra un horno de laboratorio para controlar temperaturascon precision. El modelo de este proceso se encuentra en la referencia [15].Asumiendo que existe buena mezcla de aire caliente, el calor entregado alhorno se modela como:

cd

dt(Θi − Θo) = Qc −Qe; Qc =

V 2c

R; Qe =

Θi − Θo

r

donde Θi es la temperatura interior en K o en oC, Θo es la temperaturaexterior en K o en oC, Qc es el flujo de calefaccion en J/s o watt, Qe es elflujo de perdida en J/s o watt, c es la capacidad termica en J/K, r es laresistencia termica en K/watt, R es la resistencia electrica en ohm y Vc es elvoltaje de calefaccion. Notar que podemos usar K o oC, pues las operacionesderivada o diferencia eliminan el valor 273 de: K = 273 + oC.

Temperaturaexterior

Calor perdido

Calentador electrico

Calor entregado

Temperaturainterior

QV

+

_

Q

oiΘ Θ

c c

o

Figura 3.18: Horno de laboratorio.

Si Θo se considera constante, la dinamica del horno se describe como:

dΘidt

+1rc

Θi =1rc

Θo +1Rc

V 2c

y cuando Θi alcanza su estado estacionario Θi:

Θi = Θo +r

RV 2

c

La tabla 3.3 contiene datos experimentales de la caıda de temperatura cuan-do se apaga el horno. La tabla 3.4 tabula el voltaje de calentamiento versusla temperatura interior en estado estable. Para ambas tablas la temperaturaexterior es de 30 o C.

Page 117: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 103

Cuadro 3.3: Datos de caıda de temperatura.Tiempo Temperatura (oC)14:23:10 120.014:31:00 108.014:39:30 92.014:48:35 80.515:05:00 63.015:34:00 40.5

Cuadro 3.4: Temperaturas del horno en estado estable.Voltaje Temperatura (oC)

9.8 34.120.0 50.529.5 74.040.0 110.0

La curva exponencial 120e−t/τ obtenida con los datos de la tabla 3.3 permitecalcular su constante de tiempo τ = rc = 3000 s. La curva cuadraticaobtenida con los datos de la tabla 3.4 permite obtener r/R = 5× 10−2. Porconsiguiente, la dinamica del horno resulta:

dΘi

dt= − 1

3000Θi +

13000

Θ0 +1

60000V 2

c = f(Θi,Θo, Vc)

Para efectos de linealizacion podemos definir las siguientes variables:

θi = Θi − Θi; θo = Θo − Θo; vc = Vc − Vc

Entonces, la ecuacion linealizada empleando el jacobiano para el punto deoperacion Θi = 50 oC, Θe = 30 oC, Vc = 20 volt, resulta:

dθi

dt=[∂f

∂Θi

]Θi

θi +[∂f

∂Θo

]Θo

θo +[∂f

∂Vc

]Vc

vc

dθi

dt= − 1

3000θi +

13000

θo +1

1500vc

Page 118: [-] Control Avanzado - Arturo Rojas Moreno

104 Modelado de Procesos

% P3_4P6.m SOLUCION AL PROBLEMA 3.4clear all

% ECUACION DE ESTADO CONTINUA:% dTeta(t)/dt = A*Teta(t) + B*vc(t) + E*Teta_oA = [-1/3000];B = [1/3000]; E = [1/1500];C = [1]; D = [0];

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESOrAB = rank(ctrb(A,B)); % rAB = 1 => COMPLETAMENTE CONTROLABLErAC = rank(obsv(A,C)); % rAC = 1 => COMPLETAMENTE OBSERVABLEeigA = eig(A); % COMPUTA EIGENVALORES

% eigA = A = -1/3000; % POR SER PROCESO DE PRIMER ORDEN% CONVERSION AL ESPACIO DISCRETOT = 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_oeigG = 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); gridsubplot(212)ylabel(’y(t) continua’)plot(tt,YY); gridxlabel(’Tiempo en segundos’)ylabel(’y(k) discreta’)print -deps -f P3_4P6

Problema 3.5

La figura 3.20 muestra un monorriel de dos carros. El modelo de este procesose encuentra en la referencia [15]. Sean M1 la masa del carro de maquinas yB1 sus fricciones debido al aire y al rodamiento. La fuerza lineal equivalentepara mover al proceso se designa como u(t). Los dos carros poseen masasM2 y M3 respectivamente, y estan sujetos a fricciones B2 y B3. Los carrosse acoplan uno al otro con dispositivos no rıgidos (resortes) que poseen

Page 119: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 105

0 2000 4000 6000 8000 10000 12000 14000 160000

0.5

1

1.5

2

Tiempo en segundos

y(t)

con

tinua

0 2000 4000 6000 8000 10000 120000

0.5

1

1.5

2

Tiempo en segundos

y(k)

dis

cret

a

Figura 3.19: Respuesta al escalon de la temperatura interior del horno delaboratorio.

constantes K23 y K12, y dispositivos amortiguadores de constantes B23 yB12. Las coordenadas de posicion se designan como x1, x2 y x3. Se puededemostrar que la ecuacion de estado del sistema con vi = xi, i = 1, 2, 3 es:

x = Ax +Bu(t)

donde:

A =

0 1 0 0 0 0−K12

M1−B1+B12

M1

K12M1

B12M1

0 00 0 0 1 0 0

K12M2

B12M2

−K12+K23M2

−B2+B23+B12M2

K23M2

B23M2

0 0 0 0 0 10 0 K23

M3

B23M3

−K23M3

−B3+B23M3

x = [x1 v1 x2 v2 x3 v3]T

B = [0 1 0 0 0 0]T

Page 120: [-] Control Avanzado - Arturo Rojas Moreno

106 Modelado de Procesos

xx

x

M M23 12K K

23B B 12

3 12

2do. CARRO 1er. CARRO

12

3

MMAQUINA

B BB 123

Figura 3.20: Proceso monorriel de dos carros mas un carro de maquinas.

Si ubicamos tacometros en una rueda de cada carro, entonces la ecuacionde salida toma la forma:

y1

y2

y3

=

0 α 0 0 0 0

0 0 0 α 0 00 0 0 0 0 α

x

yi = αivi, i = 1, 2, 3

donde αi es la constante tacometrica. Asumir los siguientes valores paralos parametros: M2 = M3 = 2M1 = 2600 kg, K23 = K23 = 100000 N/m,B23 = B12 = 500 N-s/m y B2 = B3 = 2B1 = 10000 N-s/m.

% P3_5P7.m SOLUCION AL PROBLEMA 3.5clear all

% MODELO DEL MONORRIELM2=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 0K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2

0 0 0 0 0 10 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 00 0 0 0 0 alfa]; D = [0;0;0];

Page 121: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 107

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESOrAB = rank(ctrb(A,B)); % rAB = 6 => COMPLETAMENTE CONTROLABLErAC = rank(obsv(A,C)); % rAC = 5 => NO ES COMPLETAMENTE OBSERVABLEeigA = 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 DISCRETOT = 0.1; % TIEMPO DE MUESTREO[G,H,C,D] = c2dm(A,B,C,D,T,’zoh’);rGC = rank(obsv(G,C)); % rGC = 6 => COMPLETAMENTE OBSERVABLEeigG = 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 ESCALONTT=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); gridxlabel(’Tiempo en segundos’)ylabel(’Salidas continuas’)subplot(212)plot(TT,YY); gridxlabel(’Tiempo en segundos’)ylabel(’Salidas discretas’)print -deps -f P3_5P7

Problema 3.6

La figura 3.22(a) muestra el diagrama de bloques simplificado del procesoascensor, cuyo modelo se encuentra en la referencia [15]. El problema a re-solver es posicionar el ascensor adecuadamente. El voltaje de armadura v(t)lo suministra un amplificador de potencia con saturacion (figura 3.22(b)),

Page 122: [-] Control Avanzado - Arturo Rojas Moreno

108 Modelado de Procesos

0 0.5 1 1.5 2 2.5 30

0.02

0.04

0.06

0.08

0.1

Tiempo en segundos

Sal

idas

c

ontin

uas

0 0.5 1 1.5 2 2.5 30

0.02

0.04

0.06

0.08

0.1

Tiempo en segundos

Sal

idas

d

iscr

etas

Figura 3.21: Respuestas al escalon de las velocidades del monorriel.

el cual no debe exceder los ± 200 volt. Esto significa una velocidad x1 enestado estable de:

x1 =[

0,001s+ 0,2

]s=0

(200) = 1 m/s

Observar en la figura 3.22(d) que la velocidad y posicion del elevador semiden separadamente. Entre pisos, el amplificador de potencia se encuen-tra en estado de saturacion, generando ± 200 volt, dependiendo de si elascensor esta subiendo o bajando. Cuando el ascensor se aproxima al pisodonde debe parar, la operacion del amplificador pasa a la zona lineal. Enesta situacion debe actuar un controlador para posicionar suavemente al as-censor empleando las mediciones de velocidad y posicion del ascensor. Talesmediciones, ası como tambien la medicion del voltaje de armadura en la zonade saturacion, estan disponibles para cada piso. La figura 3.22(d) muestra elsistema de control digital del ascensor. Las ecuaciones de estado y de salidadel ascensor son:

x1

x2

x3

x4

=

−0,2 0 0 01 0 0 02 0 −2 05 0 0 −5

x1

x2

x3

x4

+

10−3

000

Page 123: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 109

y =[

0 1 0 0]x

% P3_6P8.m SOLUCION AL PROBLEMA 3.6clear all

% MODELO DEL ASCENSORA = [-0.2 0 0 0

1 0 0 02 0 -2 0

5 0 0 -5];B = [1e-3;0;0;0];C = [0 1 0 0]; D = [0];

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESOrAB = rank(ctrb(A,B)); % rAB = 4 => COMPLETAMENTE CONTROLABLErAC = rank(obsv(A,C)); % rAC = 2 => NO ES COMPLETAMENTE OBSERVABLEeigA = eig(A); % COMPUTA EIGENVALORES

% eigA =% -5.0000% 0% -2.0000% -0.2000% CONVERSION AL ESPACIO DISCRETOT = 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 OBSERVABLEeigG = eig(G); % COMPUTA EIGENVALORES

% eigG =% 0.3679% 1.0000% 0.6703% 0.9608

% G =% 0.9608 0 0 0% 0.1961 1.0000 0 0% 0.3227 0 0.6703 0% 0.6176 0 0 0.3679

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

Page 124: [-] Control Avanzado - Arturo Rojas Moreno

110 Modelado de Procesos

u

digitalComputador

D/A conmemoria

Amplificador

Actuadormas

sensores

A/D

Voltaje dearmadura

sensor develocidad

u u v

x 4

v

x4

x 3

Posicion delascensor

Voltaje deentrada

Voltaje dearmadura

Velocidad delascensor

Posicion delascensor

u v

0.001

s + 0.2

1

su

v

x x1 2

2

s + 2

Motor actuadormas tambor

Amplificadorde potenciacon saturacion

5

s + 5

Sensor de velocidad

Sensor de posicion4x

x 3

(a)

30001

200v

-200

x 1

5 10 15 t

(c)(b)

(d)

0.005

sensor de posicion x3

x2

Figura 3.22: Proceso ascensor.

Page 125: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 111

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

0 5 10 15 20 25 300

0.05

0.1

0.15

Tiempo en segundos

Sal

idas

co

ntin

uas

0 5 10 15 20 25 30 35 40 450

0.05

0.1

0.15

0.2

Tiempo en segundos

Sal

idas

di

scre

tas

Figura 3.23: Respuestas al escalon de la posicion del ascensor.

Problema 3.7

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

Page 126: [-] Control Avanzado - Arturo Rojas Moreno

112 Modelado de Procesos

orden. La figura 3.24(b) muestra la F.T. del proceso. El modelo del procesoen estudio se encuentra en la referencia [10].

Tolva ControladorSensor Referencia

Deposito

d

v

v

1s + 1

Horno

Horno

(b)

hu

s + 0.510 vhs r r

SensorTiempo muerto

e

d/v

-(d/v)s

Figura 3.24: Sistema reductor de humedad.

% P3_7P10.m SOLUCION AL PROBLEMA 3.7clear all

% 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 3num = conv([0 0 10],numd); den = conv(dend,[1 1.5 0.5]);[A,B,C,D] = tf2ss(num,den);

% CONTROLABILIDAD Y OBSERVABILIDAD DEL PROCESOrAB = rank(ctrb(A,B)); % rAB = 5 => COMPLETAMENTE CONTROLABLErAC = rank(obsv(A,C)); % rAC = 5 => COMPLETAMENTE OBSERVABLE

% EIGENVALORESeigA = eig(A);

% eigA:% -1.0000; -0.3678+0.3509i; -0.3678-0.3509i; -0.5000; -0.4644% CONVERSION AL ESPACIO DISCRETOT = 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

Page 127: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 113

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

% H =% 0.0872% 0.0046% 0.0002% 0.0000% 0.0000% EIGENVALORES:eigG = eig(G);

% eigG =% 0.9048; 0.9633+0.0338i; 0.9633-0.0338i; 0.9512; 0.9546

% RESPUESTAS AL ESCALON[Y,X,t] = step(A,B,C,D);[YY,XX] = dstep(G,H,C,D);tt = linspace(0,size(YY,1)*T,size(YY,1));subplot(211)plot(t,Y); gridxlabel(’Tiempo en segundos’)ylabel(’Humedad continua’)subplot(212)plot(tt,YY); gridxlabel(’Tiempo en segundos’)ylabel(’Humedad’)print -deps -f P3_7P10

Problema 3.8

Los parametros valorados del proceso mostrado en la figura 3.26 son: momen-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, constantetorsional Kω = 1.8 N-m/rad.

Las ecuaciones que gobiernan la dinamica del proceso electromecanicomostrado en la figura 3.26 se describen a continuacion. Subproceso electrico:

IR =1R

(v − vC); CvC

dt= IR − IM ; L

dIMdt

= vC − e

Page 128: [-] Control Avanzado - Arturo Rojas Moreno

114 Modelado de Procesos

0 2 4 6 8 10 12 14 16 18 20−5

0

5

10

15

20

Tiempo en segundos

Hum

edad

c

ontin

ua

0 5 10 15 20 25−5

0

5

10

15

20

Tiempo en segundos

Hum

edad

di

scre

ta

Figura 3.25: Respuestas al escalon de la humedad con tiempo muerto.

Motor:T = KtIM ; e = Keω1

Resorte torsional mas la inercia J :

dT

dt= Kω(ω1 − ω2); J

dω2

dt= T

Seleccionando como variables de estado x1 = vC , x2 = IM y x3 = ω2, ycomo salida y = x3, la representacion de estado del proceso resulta:

x = Ax +Bu; y = Cx

A =

− 1

RC − 1C 0

KωLKω+KtKe

0 −KeKωLKω+KtKe

0 KtJ 0

B =

1

RC00

; C =

[0 0 1

]

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

Page 129: [-] Control Avanzado - Arturo Rojas Moreno

3.4 Problemas Resueltos 115

+

-

v C

R L

e

JT

I I MR K

ωω

ω

1

2

+

-

Figura 3.26: Sistema electromecanico.

% P3_8P11.m SOLUCION AL PROBLEMA 3.8clear all

% MODELO DEL SISTEMA ELECTROMECANICOJ=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 00 Kt/J 0];

B = [1/(R*C);0;0];C = [0 0 1]; D = [0];

% CONTRLABILIDAD Y OBSERVABILIDAD DEL PROCESOrAB = rank(ctrb(A,B)); % rAB = 3 => COMPLETAMENTE CONTROLABLErAC = rank(obsv(A,C)); % rAC = 3 => COMPLETAMENTE OBSERVABLEeigA = 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 DISCRETOT = 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 OBSERVABLEeigG = eig(G); % COMPUTA EIGENVALORES

% eigG =% 1.0000

Page 130: [-] Control Avanzado - Arturo Rojas Moreno

116 Modelado de Procesos

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

3.5. Problemas Propuestos

Para cada proceso en estudio se pide:

Determinar el modelo matematico que describa la dinamica del proceso(si no lo tuviera).

Determinar si el proceso es completamente controlable y/o completa-mente observable.

Calcular los eigenvalores del proceso, tanto en el dominio continuocomo en el dominio discreto.

Seleccionar un tiempo de muestreo y determinar el modelo del procesoen el espacio de estado discreto. Tener en cuenta que el tiempo demuestreo seleccionado, no necesariamente sera usado cuando el proceso

Page 131: [-] Control Avanzado - Arturo Rojas Moreno

3.5 Problemas Propuestos 117

0 5 10 15 20 25 30 35 40 45 500

1

2

3

4

5

Tiempo en segundos

Vol

taje

en

C (

cont

inuo

)

0 10 20 30 40 50 600

1

2

3

4

5

Tiempo en segundos

Vol

taje

en

C (

disc

reto

)

Figura 3.27: Respuestas al escalon del voltaje en el condensador.

sea controlado digitalmente. Veremos que la eleccion del tiempo demuestreo es a conveniencia del algoritmo empleado.

Graficar las respuestas del proceso continuo y del proceso discretizadocuando las senales de entrada (senales de referencia o senales disturbio)son del tipo escalon.

Problema 3.9

Las ecuaciones del modelo linealizado para controlar la posicion angular delcanon ubicado en la la torreta de un tanque mediante un actuador hidraulicoson las siguientes (ver figura 3.28):

θ = ω

ω = p+ dτ

p = −Ωmp− Km

Jq +

Km

Jω + dp

q = −KvLvq −KvK∆pJp+Kvu+ dq; Lv = 1

donde θ es el angulo de la torreta, ω es la velocidad angular de la torreta, pes la aceleracion angular producida por el actuador hidraulico, q es el des-plazamiento de la servovalvula, Km = [8.46×106, 1.96×106] (el primer valor

Page 132: [-] Control Avanzado - Arturo Rojas Moreno

118 Modelado de Procesos

corresponde al angulo de desplazamiento horizontal de la torreta, mientrasque el segundo valor, al angulo de elevacion) es la ganancia del servomotor,J = [7900, 2070 lbf-ft-s2] es la inercia de la torreta, Ωm = [45.9, 17.3 rad/s]es la frecuencia natural del motor, Kv = [94.3, 94.3] es la ganancia de laservo valvula, y K∆p = [6.33×10−6, 3.86×10−5] es el coeficiente de presiondiferencial. Las cantidades dτ , dp y dq representan disturbios que tambienincluyen los efectos debido a las no linealidades que no fueron tomadas encuenta 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].

θ

θ

posicionamiento horizontalAzimut: angulo de’

’elevacionAngulo de

Torreta del tanque

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

Problema 3.10

Una columna de destilacion es un proceso complejo que requiere una grancantidad de variables (mas de 100) para describir su comportamiento enforma muy aproximada. Sin embargo, haciendo las simplificaciones del caso(tales como reduccion del numero de variables y linealizacion de los puntosde operacion) se puede llegar a un modelo reducido que pueda ser empleadopara el control del proceso. Ese es el caso de una columna de extraccion

Page 133: [-] Control Avanzado - Arturo Rojas Moreno

3.5 Problemas Propuestos 119

para la separacion del isopropanol de una mezcla con contenido de agua,empleando glycol como un extractante (ver figura 3.29).

z

z

Agua

GlycolPropanol

Concentraciones Temperaturas

T

T

Extractante

(glycol)

Mezcla deagua e iso-propanol

T

T

S: flujo lateralde vapor

1

2

1

2

1

2

u1 : vapor decalentamiento

Producto (glycol)

Figura 3.29: Columna de destilacion con los perfiles de concentracion y detemperatura.

Las ecuaciones de estado y de salida que gobiernan el proceso en cuestionson las siguientes:

x = Ax +Bu + Fd; y = Cx

donde:

x =

∆Q1

∆V1

∆z1∆z2

; u =

[∆u1

∆S

]; d =

[∆xFA1

∆FA

]; y =

[∆T1

∆T2

]

A =

a11 0 0 0a21 a22 0 00 a32 0 00 a42) 0 0

; B =

b11 00 00 b32

0 b42)

F =

0 00 0f31 f32

0 f42

; C =

[0 0 c13 00 0 0 c24

]

Page 134: [-] Control Avanzado - Arturo Rojas Moreno

120 Modelado de Procesos

con a11 = −30,3, a21 = 0,12 × 10−3, a22 = −6,02, a32 = −3,77, a42 = −2,8,b11 = 6,15 × 105, b32 = 3,04, b42 = 0,052, f31 = 62,2, f32 = 5,76, f42 = 5,12,c13 = −7,3 y c24 = −25. Las variables poseen el siguiente significado (verfigura 3.29): ∆Q1 es el flujo de calor producido por el caldero de vapor, ∆V1

es el flujo de vapor producido por el caldero de vapor, ∆u1es el vapor decalefaccion, ∆S es el flujo de vapor lateral, ∆z1 es la posicion del cambiode interfase entre el agua y el isopropanol, ∆z2 es la posicion del cambio deinterfase entre el agua y el glycol, ∆T1 y ∆T2 son los cambios de temperaturaen z1 y z2, ∆FA es el flujo de la mezcla de agua mas isopropanol, y ∆xFA1

es la composicion de la mezcla de agua mas isopropanol. Notar que todaslas variables son residuales; es decir, representan los cambios con respecto alestado de equilibrio. El modelo de este proceso de encuentra en la referencia[17].

Problema 3.11

La figura 3.30 muestra el proceso servomotor con carga no lineal descrito enla seccion 3.2. Notar ahora que el eje de salida del mecanismo de reduccionesta sujeto a la carga no lineal mediante una junta flexible que puede sermodelada como un resorte rotacional de constante Kω=0.5 N/m/s. Consi-derar dos casos: (a) cuando la inductancia de armadura es despreciable, y(b) cuando no lo es.

u V

JB

θ

a b

m+

-m

m

R

L

e

B JL L

Lom

MoRo

ωK

θΝ2

Ν1

Figura 3.30: Servomotor unido a la carga no lineal mediante un acoplamientoflexible.

Problema 3.12

La figura 3.31 muestra el proceso servomotor con carga no lineal descrito enla seccion 3.3, en donde la carga no lineal posee ahora dos grados de libertad.

Page 135: [-] Control Avanzado - Arturo Rojas Moreno

3.5 Problemas Propuestos 121

La union de la carga con el eje del servomotor no es flexible. Asumir queLo = 2L1/3. Considerar dos casos: (a) cuando la inductancia de armaduraes despreciable, y (b) cuando no lo es.

u V

JB

θ

a b

m+

-m

m

R

L

e

B JL L

Lom

θΝ2

Ν1

Mo RoL1m1

τ

θ

’Unionno

flexible

Figura 3.31: Servomotor con carga no lineal de dos grados de libertad. Elacoplamiento de la carga al eje del motor no es flexible.

Problema 3.13

La figura 3.32 muestra el proceso pendulo doble no lineal. Las ecuacionesque describen la dinamica del proceso pendulo simple fueron deducidas en laseccion 3.1. Para deducir el modelo matematico del proceso pendulo dobleconviene emplear las ecuaciones de Lagrange de la mecanica clasica. Elacoplamiento entre los dos pendulos no es flexible. Los dos pendulos poseenla misma longitud y la masa esferica es de 0.02 kg.

Problema 3.14

La figura 3.33 muestra el proceso doble grua-puente no lineal. Las ecuacionesque describen la dinamica del proceso grua-puente fueron deducidas en laseccion 3.2. Para deducir el modelo matematico del proceso doble grua-puente conviene emplear las ecuaciones de Lagrange de la mecanica clasica.El acoplamiento entre las dos secciones de la varilla no es flexible. Las dosvarillas poseen la misma longitud y la masa esferica adicional es de 0.02 kg.

Page 136: [-] Control Avanzado - Arturo Rojas Moreno

122 Modelado de Procesos

u

y

z F

Carro

Fuerza decontrol

-

+

ServomotorD.C.

τ

θ

z

Figura 3.32: Proceso pendulo doble no lineal.

u

y

z

z

F

Carro

Fuerza decontrol

-

+

ServomotorD.C.

y’

θ

τ

Doble ’grua puente

Figura 3.33: Proceso doble grua-puente.

Page 137: [-] Control Avanzado - Arturo Rojas Moreno

Capıtulo 4

Control Optimo

Este capıtulo desarrolla un procedimiento para disenar sistemas de con-trol optimo estacionarios y no estacionarios, usando una ley de control optimacuadratica que emplea las senales del proceso medidas directamente o estimadasmediante un observador optimo. Las configuraciones usadas para el diseno sonel regulador optimo proporcional y el regulador optimo proporcional integral. Laultima configuracion anade un integrador al controlador con el proposito de re-ducir el error en estado estable. El procedimiento de diseno desarrollado, puedeser aplicado tanto a sistemas univariables como a sistemas multivariables.

Dos aplicaciones validan el procedimiento de diseno desarrollado: controloptimo de los procesos pendulo invertido y grua puente. La penultima seccion,problemas resueltos, esta dedicada al diseno de sistemas de control optimoestacionarios para diferentes procesos. La ultima seccion propone problemas dediseno a resolver. Todos los archivos correspondientes a los ejercicios, proble-mas, disenos, simulaciones y software desarrollados se pueden descargar del sitiohttp://fiee.uni.edu.pe/728681F.

4.1. Introduccion

El control optimo trata de determinar el “mejor” sistema de control emple-ando una tecnica optima de diseno. Esta tecnica asume la formulacion de unafuncion matematica denominada la funcion de costo, tambien conocida comofuncion de rendimiento, ındice de rendimiento o ındice de funcionamiento,entre otras denominaciones. El procedimiento de diseno del sistema de con-trol optimo trata de encontrar un extremo (un mınimo o un maximo, dado elcaso) de una funcion de costo con el proposito de determinar los parametros

Page 138: [-] Control Avanzado - Arturo Rojas Moreno

124 Control Optimo

optimos de una ley de control; de allı el termino optimo. En la mayorıa delos casos, sin embargo, la busqueda de la funcion de costo involucra proce-dimientos de error y correccion; esto significa que no siempre podemos estarseguros acerca de la forma exacta que deberıa poseer la funcion de costo.

Para sistemas de control discretos, la funcion de costo generalmente poseela forma siguiente:

J =N∑

k=0

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

donde k es el tiempo discreto, N es el tiempo discreto final, x(k) es el vectorde estado, r(k) es el vector de referencia (entrada al sistema de control) yu(k) es el vector de control optimo. Esta ley de control (denominada tambienfuerza o senal de control) constituye la entrada al proceso a controlar.

Para aplicaciones practicas, el vector de control u debe estar siempreacotado. Por ejemplo,

|ui(k)| Ui (4.2)

donde cada elemento Ui es una constante determinada (el subındice denotala componente i del vector u). Para el caso de control acotado con mınimogasto de energıa, se puede formular:

u2i (k) Mi (4.3)

en donde cada elemento Mi es una constante dada. En cualquier caso, elvector de control u debe satisfacer ciertas restricciones para poder ser unvector de control admisible.

En este capıtulo se desarrolla el procedimiento de diseno de un sistemade control optimo cuadratico discreto, denominado ası porque emplea unafuncion de costo cuadratica de dominio discreto. El resultado del disenoproporciona una matriz de ganancia que multiplicada por el vector de es-tado (real o estimado) del proceso, resulta en una ley de control optimacuadratica. El vector de estado estimado se determina usando un observadoroptimo.

Para demostrar la validez del procedimiento de diseno, se presentan dosaplicaciones: diseno del sistema de control optimo cuadratico para el procesopendulo invertido y para el proceso grua-puente.

Page 139: [-] Control Avanzado - Arturo Rojas Moreno

4.2 Control Optimo Cuadratico No Estacionario 125

4.2. Control Optimo Cuadratico No Estacionario

El problema del control optimo cuadratico discreto no estacionario con-siste en encontrar una adecuada ley de control optima que sea capaz detrasladar la dinamica del proceso desde un estado inicial x(0) hacia un es-tado final deseado x(N). La fuerza de control optima u(k) se determina apartir de la minimizacion de una funcion de costo cuadratica discreta. Estafuerza de control aplicada al proceso a controlar, provoca que dicho procesoresponda en forma optima (o lo mas cercano al optimo). El control optimocuadratico discreto se basa en la siguiente funcion de costo:

J =12xT (N)Sx(N) +

12

N−1∑k=0

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

](4.4)

donde x(k) es el vector de estado de dimension n y u(k) es el vector decontrol de dimension r. Mientras que la matriz hermitiana semidefinida pos-itiva S (de dimension n× n) pondera la importancia del estado final x(N),la matriz hermitiana semidefinida positiva Q (de dimension n× n) ponderala importancia del vector de estado x(k), y la matriz hermitiana definidapositiva R (de dimension r × r) pondera la importancia de la senal de con-trol u(k). La definicion de matrices se trato en la subseccion 1.2.4. La leydel control optima a usar emplea la realimentacion del vector de estado x(k)en su formulacion y posee la forma siguiente:

u(k) = −K(k)x(k) (4.5)

dondeK(k) (de dimension r×n) es la matriz de ganancia del controlador, de-nominada tambien matriz de realimentacion de estados. Cuando la dinamicadel sistema de control es finita, K(k) es una matriz variante en el tiempo;pero cuando dicha dinamica alcanza su estado estacionario (es decir, cuandoN → ∞), entonces K(k) se convierte en una matriz constante K. En estaultima situacion, estaremos frente al denominado control optimo en estadoestacionario, y es el que usaremos en nuestras aplicaciones. Una condicionnecesaria para poder aplicar el control por realimentacion de estados es queel proceso sea completamente controlable. Por consiguiente, sera necesarioverificar dicha condicion en el proceso antes de iniciar el procedimiento dediseno.

La realimentacion de estados requiere ademas que todos los estados seandisponibles y medibles. Si en el sistema a controlar existieran estados que

Page 140: [-] Control Avanzado - Arturo Rojas Moreno

126 Control Optimo

no pudieran ser medidos directamente, sera necesario estimarlos. Esta esti-macion puede ser realizada empleando la tecnica de observacion de estadosque sera tratada en la seccion 4.6. El requerimiento en esta parte es que elproceso sea completamente observable.

La solucion al problema de control optimo cuadratico puede obtenerseempleando varios enfoques, tales como el metodo de minimizacion usandomultiplicadores de Lagrange o mediante el principio de optimalidad [3],[4].Asumamos que el proceso puede ser modelado mediante la siguiente ecuacionde estado discreta:

x(k + 1) = Gx(k) +Hu(k); x(0) = c (4.6)

donde G es la matriz de estado de dimension n×n, H es la matriz de controlde dimension n× r y x(0) es una condicion inicial del vector de estado.

El proceso debe ser de estado completamente controlable; es decir, queen un tiempo finito, sus estados puedan ser transferidos desde un estadoinicial arbitrario a cualquier otro estado deseado. La condicion necesaria ysuficiente para la completa controlabilidad del proceso es que la matriz decontrolabilidad M dada por la siguiente expresion (subseccion 2.3.6):

M =[H GH · · · Gn−1H

](4.7)

posea rango completo; es decir, el rango de M debe ser igual al orden n delproceso.

La solucion al problema del control optimo cuadratico no estacionarioesta dada por la siguiente matriz de ganancia del controlador:

K(k) = [R+HTP (k + 1)H]−1HTP (k + 1)G (4.8)

donde P (k + 1) es una matriz hermitiana definida positiva de dimensionn×n. Dicha matriz es solucion de la siguiente ecuacion matricial de Riccati:

P (k) = Q+GTP (k+1)G−GTP (k+1)H[R+HTP (k+1)H]−1HTP (k+1)G(4.9)

La matriz P (K) de la ecuacion (4.9) puede determinarse recursivamentepartiendo de la siguiente condicion terminal para k = N :

P (N) = S (4.10)

hasta llegar a la condicion inicial P (0) para k = 0. El procedimiento escomo sigue: reemplazando P (N) en la ecuacion (4.8), podemos luego obtener

Page 141: [-] Control Avanzado - Arturo Rojas Moreno

4.3 Control Optimo Cuadratico Estacionario 127

K(N − 1) (matriz de ganancia en el tiempo k = N − 1). Del mismo modo,con P (N−1) podemos obtener K(N−2), y asi sucesivamente hasta llegar aobtener 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 dadapor la ecuacion (4.5). Por otra parte, se puede demostrar que el valor mınimode la funcion de costo se determina de:

Jmin =12xT (0)P (0)x(0) (4.11)

4.3. Control Optimo Cuadratico Estacionario

En la seccion anterior vimos que cuando la dinamica del sistema decontrol evoluciona en un tiempo N finito, la ganancia de realimentacion deestados K(k) es una matriz variante en el tiempo. Sin embargo, cuando ladinamica del sistema de control evoluciona hasta un tiempo N infinito, lasolucion del control optimo cuadratico pasa a ser una solucion de estadoestacionario. En este caso, la ganancia K(k) se convierte en una matrizconstante K. Para N infinito, el termino xT (N)Sx(N) de la ecuacion (4.4)desaparece debido a que x(∞) = 0. Por consiguiente, la funcion de costopara el estado estacionario toma la forma:

J =12

∞∑k=0

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

](4.12)

Por otra parte, en el estado estacionario la matriz P (k) resulta una matrizconstante P . De este modo la ecuacion de Riccati en estado estacionariotoma la forma:

P = Q+GTPG−GTPH[R+HTPH]−1HTPG (4.13)

mientras que la matriz de ganancia K resulta:

K = [R+HTPH]−1HTPG (4.14)

u(k) = −Kx(k) (4.15)

y la funcion de costo mınima viene a ser:

Jmin =12xT (0)Px(0) (4.16)

Page 142: [-] Control Avanzado - Arturo Rojas Moreno

128 Control Optimo

Una forma de obtener la matriz P de la ecuacion matricial (4.13), es em-pleando la ecuacion de Riccati en estado no estacionario dada en la ecuacion(4.9), pero invirtiendo la direccion del tiempo:

P (k+ 1) = Q+GTP (k)G−GTP (k)H[R+HTP (k)H]−1HTP (k)G (4.17)

La ecuacion (4.17) permite determinar una matriz P de magnitud conver-gente usando calculo recursivo como sigue. Asumiendo inicialmente para k= 0 que P (0) = 0, podemos obtener P (1); luego usar P (1) para obtenerP (2), y asi sucesivamente, hasta llegar a un tiempo discreto k para el cualP (k) = P (k+ 1) = P (k+ 2) = · · ·. Con la matriz P ası determinada, pode-mos calcular ahora la ganancia K usando la ecuacion (4.14), para luegoobtener la ley de control dada por la ecuacion (4.15). El diagrama de blo-ques del control optimo de estado estacionario se representa en la figura 4.1,en donde se asume que todos los estados se encuentran disponibles. Paraoperacion satisfactoria del sistema de lazo cerrado mostrada en dicha figura,todas las raıces de su ecuacion caracterıstica:

det[zI −G+HK] = 0 (4.18)

deben posicionarse dentro del cırculo unitario. Tales raıces se denominantambien valores propios, raıces caracterısticas, eigenvalores o modos de fun-cionamiento.

H

G

I z

x-1

u (k)(k)

- 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 salidacontrolada sigue a una senal de referencia r(k) = µ(k) constante, donde

Page 143: [-] Control Avanzado - Arturo Rojas Moreno

4.4 El Regulador Optimo Proporcional 129

µ(k) es la funcion escalon. Restringiremos nuestro tratamiento a sistemasunivariables. Previamente debemos recalcar que la naturaleza proporcionaldel regulador en cuestion, obliga a que se aplique con cuidado a sistemasque no poseen un comportamiento integral. Este es el punto en discusion.

La figura 4.2 muestra el esquema de un regulador para la variable deestado x2 del vector de estado x, empleando una ley de control de reali-mentacion de estados de la forma u = −Kx.

ku(k)r(k)

Cy(k) = x

1

3

n

22

k

k

k

(k)...

...

+

-

+u(k)x (k+1) = G (k) + Hx

x (k)

--

-

Figura 4.2: Esquema del regulador optimo proporcional.

Para una salida arbitraria, por ejemplo x2:

u(k) = −k1x1(k) − k3x3(k) − · · · − knxn(k) + k2r(k) − k2x2(k)= −Kx(k) + k2r(k) (4.19)

Reemplazando u(k) en la ecuacion de estado del proceso:

x(k + 1) = Gx(k) +Hu(k) = (G−HK)x(k) +Hk2r(k) (4.20)

Empleando la transformada Z en (4.20), la funcion de transferencia de pulsocon r(z) = Rµ(z) resulta:

y(z) = C(zI −G+HK)−1Hk2Rµ(z); µ(z) =z

z − 1(4.21)

Aplicando la propiedad del valor final (subseccion 2.3.2) a y(z) obtenemos:

lımk→∞

y(k) = lımz→1

z − 1z

y(z) = C(I −G+HK)−1Hk2R (4.22)

Page 144: [-] Control Avanzado - Arturo Rojas Moreno

130 Control Optimo

La condicion para que y = R es que C(I − G + HK)−1Hk1 = 1, que nosiempre se cumple. Por ello, es necesario afectar a la senal de referencia poruna ganancia g de modo que:

gC(I −G+HK)−1Hk2R = 1 (4.23)

Este procedimiento sera validado con los ejemplos 4.1 y 4.2.

4.5. Seleccion de las Matrices de Ponderacion

La funcion de costo para determinar la ganancia K del controlador opti-mo estacionario esta dada en la ecuacion (4.12):

J =12

∞∑k=0

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

]

donde observamos que la matriz hermitiana R pondera la senal de controlu(k) mientras que la matriz hermitiana Q pondera el vector de estado x(k).En la subseccion 1.1.2 vimos que una matriz es hermitiana cuando su conju-gada transpuesta (o su transpuesta conjugada) resulta en la misma matriz.Por tanto, es valido que (R∗)T = (RT )∗ = R y (Q∗)T = (QT )∗ = Q. Cuandolas matrices R y Q son reales, entonces ambas deben ser simetricas y severifica que RT = R y QT = Q. Asimismo, en la subseccion 1.2.4 se dijoque una matriz cuadrada R es definida positiva si las raıces de su ecuacioncaracterıstica |zI − R| = 0 son todas positivas, mientras que una matrizcuadrada Q es semidefinida positiva si las raıces de su ecuacion caracterısti-ca |zI−Q| = 0 son positivas o nulas (sin embargo, no todas las raıces debenser nulas).

La matriz R, por conveniencia, puede tomar la forma de una matriz realdiagonal:

R =

r1 0 . . . 0

0 r2...

.... . .

0 . . . rp

donde los elementos r1, r2,. . . ,rp deben ser todos positivos para que R seauna matriz simetrica definida positiva. Para sistemas con una sola senal deentrada, R resulta un escalar de valor positivo.

Page 145: [-] Control Avanzado - Arturo Rojas Moreno

4.5 Seleccion de las Matrices de Ponderacion 131

La matriz Q puede tomar tambien una forma diagonal:

Q =

q1 0 . . . 0

0 q2...

.... . .

0 . . . qn

donde los elementos qi pueden ser positivos y algunos de ellos nulos paraque Q sea una matriz simetrica semidefinida positiva.

Cada elemento qi o cada elemento ri dara un peso correspondiente a cadavariable de estado xi o a cada senal de control ui, respectivamente. El criteriopara escoger los pesos esta en relacion con la importancia que le demos acada variable o senal en cuestion. Para el caso del observador de estados,las matrices de ponderacion Re y Qe deben ser elegidas de tal forma quela respuesta del observador sea dos o tres veces mas rapida (regla practica)en comparacion con la respuesta del proceso. Es decir, la salida y(k) delproceso (ver figura 4.6) debe alcanzar su estado estacionario despues que lasalida y(k) del observador ya la haya alcanzado. Generalmente para que estoocurra, los elementos de Re deben ser bastante menores que los elementosde Qe. Debemos tener en cuenta que un mayor peso en una de las variablesocasiona una mejor respuesta con relacion a tal variable, pero disminuye eldesempeno de las demas. Es entonces necesario balancear en forma adecuadalos pesos, de manera tal que obtengamos un desempeno general del sistema,que se acerque en lo posible al optimo y que evidentemente, cumpla lasespecificaciones de diseno.

Ejemplo 4.1

El motor D.C. es un actuador muy popular en los sistemas de control porquesu movimiento rotatorio, mediante acoples adecuados en su eje, puede con-vertirse facilmente en movimiento de traslacion. Eso se aprecia en fajas trans-portadoras o en brazos manipuladores. La figura 4.3 muestra el circuito dearmadura del motor acoplado a una carga. Los parametros del motor fuerondeterminados experimentalmente, resultando: momento de inercia del rotorJ = 0.01 kg-m2/s2, coeficiente de friccion b = 0.1 N-s/m, constante electro-motriz K = Ke = Kt= 0.01 N-m/A, resistencia de armadura R = 1 ohm einductancia de armadura L = 0.5 H.

Cabe anotar que el motor de este ejemplo no es el servomotor que estamosusando para implementar los sistemas de control de los procesos descritos en

Page 146: [-] Control Avanzado - Arturo Rojas Moreno

132 Control Optimo

-

+V

R L

J

b

T

θb.

e=Kθ-

+.

I

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 lapotencia involucrada es pequena. Sin embargo, existen muchas excepciones.Suponiendo que el rotor del motor y su eje son cuerpos rıgidos, la dinamicaque describe al proceso motor D.C. es:

Jθ + bθ = KI

LdI

dt+RI = V −Kθ

donde V es la fuente de voltaje de entrada, θ es la posicion angular del eje, Ies la corriente de armadura, T = KtI es el torque motorico y e = Keθ es lafuerza contraelectromotriz. Disenar el controlador optimo estacionario queestabilice la velocidad angular del eje del motor a 1 rad/s con las especifi-caciones siguientes: tiempo de estabilizacion menor que 2 s, error en estadoestable menor al 1 % y sobreimpulso de la salida menor al 5 %.

Solucion: Empleando la transformada de Laplace, la funcion de transferen-cia del motor cuando la salida es la posicion, resulta:

θ

V=

K

s[(Js+ b)(Ls+R) +K2]

la cual posee comportamiento integral. Cuando la salida es la velocidad, lafuncion de transferencia es:

θ

V=

K

(Js+ b)(Ls+R) +K2

en la que podemos observar que no posee comportamiento integral. Eligiendox1 = θ y x2 = I, las ecuaciones de estado y de salida resultan:[

x1

x2

]=[ − b

JKJ

−KL −R

L

] [x1

x2

]+[

01L

]V

Page 147: [-] Control Avanzado - Arturo Rojas Moreno

4.5 Seleccion de las Matrices de Ponderacion 133

y = x1 =[

1 0] [ x1

x2

]+DV ; D = [0]

El programa ejem4 1.m resuelve el problema planteado y los resultados semuestran en la figura 4.4.

% ejem4_1.m SOLUCION DEL EJEMPLO 4.1clear allJ = 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 OBSERVABILIDADM = [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 ESCALONT = 0.05; % SELECCIONADO CON LA INFORMACION ANTERIOR[G,H,C,D] = c2dm(A,B,Cc,Dc,T,’zoh’); % CONVERSION A DISCRETOQ = [100 0;0 1]; R = [0.1]; % MATRICES DE PONDERACION[K,P,E] = dlqr(G,H,Q,R); k1 = K(1); % GANANCIA OPTIMA Kg = 1/(C*inv(eye(2)-G+H*K)*H*k1); % CORRECCION DE r(k)x = [0;0]; N = 60; % CONDICION INICIALfor k=1:Nr=1*g;V(k) = -K*x + k1*r;x = G*x + H*V(k);y(k) = x(1);end

% GRAFICOSr = 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 KrT = 15; Pr = zeros(2,2);for i=1:TPr = Q + G’*Pr*G - G’*Pr*H*inv(R+H’*Pr*H)*H’*Pr*G;

Page 148: [-] Control Avanzado - Arturo Rojas Moreno

134 Control Optimo

endKr = inv(R + H’*P*H)*H’*P*G;

% SE CUMPLE QUE K=Kr Y P=Pr

0 0.5 1 1.5 2 2.5 30

0.05

0.1

yRpt

a (

rad/

s)

0 0.5 1 1.5 2 2.5 30

0.5

1

1.5

y (

rad/

s)

0 0.5 1 1.5 2 2.5 30

20

40

V

(vol

tios)

Tiempo (s)

Figura 4.4: Respuesta yRpta (a lazo abierto) del motor D.C. a un escalonde 1 rad/s. La velocidad angular controlada es y; la senal de control es V .

Ejemplo 4.2

Determine el controlador optimo cuadratico estacionario que estabilice laposicion angular del eje del motor (descrito en el ejemplo 4.1) a 1 rad, conlas especificaciones siguientes: tiempo de estabilizacion menor que 2 s, erroren estado estable menor al 1 % y sobreimpulso a la salida menor al 5 %.

Solucion: Eligiendo x1 = θ, x2 = I y x3 = θ, las ecuaciones de estado y desalida resultan:

x1

x2

x3

=

− b

JKJ 0

−KL −R

L 01 0 0

x1

x2

x3

+

0

1L0

V

y = x3 =[

0 0 1] x1

x2

x3

+DV ; D = [0]

Page 149: [-] Control Avanzado - Arturo Rojas Moreno

4.5 Seleccion de las Matrices de Ponderacion 135

El programa ejem4 2.m resuelve el problema planteado y los resultados semuestran en la figura 4.5.

% ejem4_2.m SOLUCION DEL EJEMPLO 4.2clear allJ = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;A = [-b/J K/J 0

-K/L -R/L 01 0 0];

B = [0;1/L;0];Cc = [0 0 1]; Dc = [0];

% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDADM = [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 DISCRETOQ = [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 Kg = 1/(C*inv(eye(3)-G+H*K)*H*k3); % CORRECCION DE r(k)

% COMO g = 1 NO SE REQUIERE FACTOR DE CORRECCIONx = [0;0;0]; N = 60; % CONDICION INICIALfor k=1:Nr=1;V(k) = -K*x + k3*r;x = G*x + H*V(k);y(k) = x(3);end

% GRAFICOSt = 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 KrT = 20; Pr = zeros(3,3);for i=1:TPr = Q + G’*Pr*G - G’*Pr*H*inv(R+H’*Pr*H)*H’*Pr*G;endKr = inv(R + H’*P*H)*H’*P*G;

% SE CUMPLE QUE K=Kr Y P=Pr

Page 150: [-] Control Avanzado - Arturo Rojas Moreno

136 Control Optimo

0 0.5 1 1.5 2 2.5 30

0.5

1

1.5

y (

rad)

0 0.5 1 1.5 2 2.5 3−20

0

20

40

60

V

(vol

tios)

Tiempo (s)

Figura 4.5: Salida controlada y (posicion angular) y senal de control V parael motor D.C.

4.6. Diseno del Observador Optimo Cuadratico

En muchos casos practicos, solo unas cuantas variables del vector deestado 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 lograrsemediante el empleo de un observador discreto de estados. El diseno de dichoobservador implica determinar su matriz de ganancia Ke, que puede sercalculada a partir de la minimizacion de una funcion de costo cuadratica. Eldiagrama de bloques del observador de estados se representa en la figura 4.6,donde podemos notar que el observador emplea las mediciones de la saliday(k) y de la senal de control u(k).

De la figura 4.6 podemos formular:

x(k + 1) = Gx(k) +Hu(k) (4.24)y(k) = Cx(k) (4.25)

mientras que la ecuacion del observador toma la forma:

x(k + 1) = Gx(k) +Hu(k) +Ke[y(k) − Cx(k)] (4.26)

Page 151: [-] Control Avanzado - Arturo Rojas Moreno

4.6 Diseno del Observador Optimo Cuadratico 137

H

G

I z −1

I z −1

G

x (k)

C

C

− +

+

+

x (k)

u(k)

H

K e

+

+

y(k)

y(k) − y(k)

^

^

+

+

Figura 4.6: Diagrama de bloques del observador de estados

donde x(k) es el vector de estado estimado de dimension n, y(k) representael vector de salida estimado de dimension m, Ke es la matriz de gananciade realimentacion del observador con dimension n×m y C es la matriz desalida de dimension m × n. Reemplazando la ecuacion (4.25) en (4.26) yrestando la ecuacion resultante de (4.24), podemos obtener la ecuacion delerror del observador:

e(k + 1) = [G−KeC]e(k); e(k) = x(k) − x(k) (4.27)

mientras que su ecuacion caracterıstica toma la forma:

det[zI −G+KeC] = 0 (4.28)

en donde la matriz Ke debe ser escogida apropiadamente para que el errortienda a cero con una velocidad adecuada. Cabe mencionar tambien que lasraıces de dicha ecuacion caracterıstica deben posicionarse dentro del cırculounitario para operacion satisfactoria del observador.

El observador que nos ocupa requiere que el proceso sea completamenteobservable; es decir, que cualquier estado inicial pueda determinarse a partirde la observacion de los vectores de salida y de control, en un numero finitode perıodos de muestreo. Ya es conocido que el criterio para observabilidadcompleta requiere construir la siguiente matriz de observabilidad:

N = [ CT GTCT · · · (GT )n−1CT ] (4.29)

Page 152: [-] Control Avanzado - Arturo Rojas Moreno

138 Control Optimo

La condicion necesaria y suficiente para que el sistema sea completamenteobservable es que la matriz N posea rango n (rango completo). Es decir, elrango de N debe ser igual al orden del proceso.

Para calcular la matriz Ke podemos proceder en la misma forma en quelo hicimos con la matriz de ganancia K del controlador; es decir, podemosutilizar las ecuaciones que describen al sistema de control optimo, convenien-temente modificadas, para que nos permitan calcular Ke. El procedimientoes como sigue. Dado que el determinante de una matriz y el de su transpuestason iguales, podemos modificar la forma de la ecuacion (4.28) como sigue:

det[zI−G+KeC] = det[(zI−G+KeC)T ] = det[zI−GT +CTKTe ] (4.30)

Comparando la ecuacion caracterıstica del controlador de estados (4.18) conla ecuacion (4.30), podemos deducir que se tienen que hacer las siguientesmodificaciones:

G→ GT ; H → CT ; K → KTe (4.31)

Empleando tales modificaciones en las estructuras de la ecuacion de estadodel proceso x(k+1) = Gx(k)+Hu(k), de su ecuacion de salida y(k) = Cx(k)y de su ley de control u(k) = −Kx(k), obtendremos la siguiente ecuacionde estado:

α(k + 1) = GTα(k) + CTβ(k) (4.32)

con una ley de control que posee la forma siguiente:

β(k) = −KTe α(k) (4.33)

Empleando las ecuaciones (4.32) y (4.33) en la funcion de costo siguiente:

J =12

∞∑k=0

[αT (k)Qeα(k) + βT (k)Reβ(k)

](4.34)

entonces la correspondiente ecuacion de Riccati toma la forma:

Pe = Qe +GPeGT −GPeC

T [Re + CPeCT ]−1CPeG

T (4.35)

y la matriz de ganancia Ke viene dada por:

Ke = [Re + CPeCT ]−1CPeG

T (4.36)

Page 153: [-] Control Avanzado - Arturo Rojas Moreno

4.7 El Regulador Optimo Proporcional Integral 139

Para determinar Pe a partir de la ecuacion (4.35), empleamos el mismoprocedimiento que para determinar P (seccion 4.3). Es decir, para calcularPe, utilizaremos la siguiente ecuacion recursiva:

Pe(k + 1) = Qe +GPe(k)GT −GPe(k)CT [Re + CPe(k)CT ]−1CPe(k)GT

(4.37)

Ejemplo 4.3

Disenar un observador optimo para el proceso motor D.C. del ejemplo 4.2asumiendo que se requiere observar los estados x1, x2 y x3.

Solucion: Ver programa ejem4 3.m. En la figura 4.3 se muestra la evolu-cion de los valores de algunos elementos de Pe hasta alcanzar el estado deequilibrio.

% ejem4_3.m OBSERVADOR OPTIMO PARA EL MOTOR D.C.clear allJ = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;A = [-b/J K/J 0

-K/L -R/L 01 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 DISCRETOPe =zeros(3,3); % condicion inicialQe = [1 0 0;0 1 0;0 0 1]; Re = [1]; % TODOS CON IGUAL PESOfor k=1:40Pe = 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);endt = linspace(0,length(pe11),length(pe11)); % EJE DE TIEMPOSplot(t,pe11,t,pe21,’--’,t,pe31,’-.’);xlabel(’Muestras k’);ylabel(’Algunos elementos de Pe’); gridprint -deps -f ejem4_3Ke = inv(Re + C*Pe*C’)*C*Pe*G’; % GANANCIA DEL OBSERVADOR

4.7. El Regulador Optimo Proporcional Integral

Generalmente es necesario anadir accion integral, al regulador propor-cional visto en la seccion anterior, debido a que errores de estado permanente

Page 154: [-] Control Avanzado - Arturo Rojas Moreno

140 Control Optimo

0 5 10 15 20 25 30 35 400

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

Muestras k

Alg

unos

el

emen

tos

de

Pe

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

pueden aparecer si los parametros del proceso o su estructura (su ecuacionde estado) no han sido estimados con suficiente exactitud. Para procesosque no poseen propiedades integradoras, la inclusion de accion integral en elsistema de control permite obtener un error estacionario nulo. La figura 4.8ilustra un regulador optimo (propuesto en [3]) para sistemas univariables,que incluye dicha accion integral en el sistema de control: un integrador consenal de salida v(k) y una ganancia integral KI asociada. Siendo la senal de

I z−1

G

x (k)K

v(k)r(k) y (k)

I z−1

I C+ +

−−+

+

Hu(k)

K

++

Figura 4.8: El regulador proporcional integral.

referencia r(k) un escalon unitario, de la figura 4.8 podemos deducir que las

Page 155: [-] Control Avanzado - Arturo Rojas Moreno

4.7 El Regulador Optimo Proporcional Integral 141

ecuaciones de estado y de salida del proceso son:

x(k + 1) = Gx(k) +Hu(k) (4.38)y(k) = Cx(k) (4.39)

La senal de control u(k) viene dada por:

u(k) = −Kx(k) +KIv(k) (4.40)

donde la matriz de ganancia del controlador es:

K =[K1 K2 · · · Kn

](4.41)

La ecuacion para el integrador resulta:

v(k) = v(k − 1) + r(k) − y(k) (4.42)

de donde se obtiene:

v(k + 1) = v(k) + r(k + 1) − y(k + 1)= v(k) + r(k + 1) − C[Gx(k) +Hu(k)]= (1 − CHKI)v(k) + (−CG+ CHK)x(k) + r(k + 1)(4.43)

Empleando las ecuaciones (4.38) y (4.40) obtenemos:

x(k + 1) = Gx(k) +H[−Kx(k) +KIv(k)]= (G−HK)x(k) +HKIv(k) (4.44)

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

] [x(k)v(k)

]+[

01

]r(k + 1)

(4.45)

y(k) =[C 0

] [ x(k)v(k)

](4.46)

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 ecuacion (4.45) seconvierte en:[

x(∞)v(∞)

]=[

G−HK HKI

−CG+ CHK 1 − CHKI

] [x(∞)v(∞)

]+[

0r

](4.47)

Page 156: [-] Control Avanzado - Arturo Rojas Moreno

142 Control Optimo

Si definimos:x(k) − x(∞) = xe(k) (4.48)

v(k) − v(∞) = ve(k) (4.49)

y restamos ahora la ecuacion (4.47) de (4.45), y luego usando las relaciones(4.48) y (4.49) obtendremos:[

xe(k + 1)ve(k + 1)

]=[

G−HK HKI

−CG+ CHK 1 − CHKI

] [xe(k)ve(k)

]

=[

G 0−CG I

] [xe(k)ve(k)

]+[

H−CH

] [ −K KI

] [ xe(k)ve(k)

](4.50)

La ecuacion (4.50) puede ser escrita como:

ξ(k + 1) = Gξ(k) + Hw(k) (4.51)

w(k) = −Kξ(k) (4.52)

donde:

ξ(k) =[

xe(k)ve(k)

](4.53)

G(k) =[

G 0−CG I

](4.54)

H(k) =[

H−CH

](4.55)

K(k) =[K −KI

](4.56)

Observar que la inclusion de un integrador en el sistema de control aumentaen uno el orden del sistema; es decir, si n es el orden del sistema original, elnuevo orden del sistema con un integrador es (n+ 1). En otras palabras, elvector de estado x(k) del sistema original posee dimension n, mientras queel vector de estado ξ(k) del regulador proporcional integral posee dimension(n+ 1).

Teniendo en mente las relaciones anteriores, podemos definir la siguientefuncion de costo:

J =12

∞∑k=0

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

](4.57)

Page 157: [-] Control Avanzado - Arturo Rojas Moreno

4.7 El Regulador Optimo Proporcional Integral 143

Debemos entonces calcular una matriz K adecuada de forma tal que mini-mice la funcion de costo dada en la ecuacion (4.57). Empleando el mismoprocedimiento usado en la seccion 4.3, es posible formular la ecuacion deRiccati y la ecuacion de ganancia del controlador K para el regulador, comosigue:

P = Q+ GT P G− GT P H[R+ HT P H]−1HT P G (4.58)

K = [R+ HT P H]−1HT P G (4.59)

La seleccion del tiempo de muestreo se trata en la subseccion 4.9.6.

Ejemplo 4.4

Disenar el regulador proporcional integral optimo estacionario que sea capazde estabilizar la velocidad angular del eje del motor (descrito en el ejemplo4.1) a 1 rad/s, con las especificaciones siguientes: tiempo de estabilizacionmenor que 2 s, error en estado estable menor al 1 % y sobreimpulso de lasalida menor al 5 %.

Solucion: El programa ejem4 4.m resuelve el problema y sus resultados semuestran en la figura 4.9.

% ejem4_4.m SOLUCION DEL EJEMPLO 4.4clear allJ = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5;A = [-b/J K/J

-K/L -R/L]; % orden n=3B = [0;1/L];Cc = [1 0]; Dc = [0];

% VERIFICAR CONTROLABILIDAD Y OBSERVABILIDADM = [B A*B]; N = [Cc’ A’*Cc’]; % rank(M) = rank(N) = n = 2

% LUEGO EL SISTEMA ES COMPLETAMENTE CONTROLABLE Y OBSERVABLET = 0.05; % SELECCIONADO EN EL EJEMPLO 4.1[G,H,C,D] = c2dm(A,B,Cc,Dc,T,’zoh’); % CONVERSION A DISCRETOGtilde = [G zeros(2,1)

-C*G eye(1,1)]; % DEBE SER DE ORDEN n+1=4Htilde = [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 OPTIMAK = [Ktil(1) Ktil(2)]; KI = -Ktil(3);x = [0;0]; yi=0; v=0; % CONDICIONES INICIALESN = 60; r=1;

% RESPUESTA AL ESCALON r=1

Page 158: [-] Control Avanzado - Arturo Rojas Moreno

144 Control Optimo

for k=1:Nv = v + r - yi;V(k) = -K*x + KI*v;x = G*x + H*V(k);y(k) = x(1); yi = y(k);end

% GRAFICOSt = 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 KtildeT = 15; Ptilde = zeros(3,3);for i=1:TPtilde = Q + Gtilde’*Ptilde*Gtilde - Gtilde’*Ptilde*Htilde*...inv(R+Htilde’*Ptilde*Htilde)*Htilde’*Ptilde*Gtilde;endKtilde = inv(R + Htilde’*Ptilde*Htilde)*Htilde’*Ptilde*Gtilde;

% SE CUMPLE QUE Ktil = Ktilde Y Ptil = Ptilde

0 0.5 1 1.5 2 2.5 30

0.5

1

1.5

y (

rad/

s)

0 0.5 1 1.5 2 2.5 35

10

15

20

25

V

(vol

tios)

Tiempo (s)

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

Page 159: [-] Control Avanzado - Arturo Rojas Moreno

4.8 Procedimiento de Diseno e Implementacion 145

4.8. Procedimiento de Diseno e Implementacion

El procedimiento de diseno e implementacion en tiempo real de un sis-tema de control optimo cuadratico comprende los pasos siguientes:

1) Formular el problema (determinar especificaciones de diseno).

2) Determinar el modelo matematico del proceso a controlar (secciones3.1 y 3.2) y determinar si es completamente controlable y completa-mente observable (seccion 2.3.6).

3) Calcular la matriz de ganancia optima K de control (seccion 4.7).

4) Calcular la matriz de ganancia optima Ke del observador (seccion 4.3).

5) Simular el sistema de control optimo cuadratico.

6) Implementar el hardware del sistema (subseccion 4.9.6).

7) Implementar el software del sistema (subseccion 4.9.7).

8) Realizar pruebas de funcionamiento (obtener resultados experimen-tales satisfactorios).

4.9. Control Optimo Cuadratico del Pendulo In-vertido

En esta seccion nos ocuparemos del diseno del control optimo cuadraticodel proceso pendulo invertido empleando el procedimiento de diseno descritoen la seccion 4.8.

4.9.1. Formulacion del Problema

Dado el proceso pendulo invertido, conformado por una varilla montadaen un carro impulsado por un servomotor D.C. controlado por voltaje dearmadura, se desea disenar un servocontrolador que sea capaz de mantenerel pendulo invertido en posicion vertical (tanto como sea posible), y al mis-mo tiempo, mantener el carro en una posicion referencial. En el problemaplanteado, el pendulo se mueve en el mismo plano que la trayectoria delcarro. El sistema de control sera disenado empleando la tecnica de control

Page 160: [-] Control Avanzado - Arturo Rojas Moreno

146 Control Optimo

optimo cuadratico y la configuracion de un servosistema. La entrada al pro-ceso (la senal de control) es el voltaje de armadura del servomotor D.C. y lassalidas del servosistema son la posicion angular del pendulo y la trayectoriahorizontal del carro. Se desea un tiempo de estabilizacion de la posicion delcarro de aproximadamente 6 segundos con el menor sobreimpulso posible.Cabe anotar que para alcanzar las especificaciones de diseno planteadas,se requiere seleccionar adecuadamente las matrices de ponderacion, comoveremos mas adelante.

4.9.2. El Modelo del Proceso a Controlar

La determinacion del modelo matematico del proceso pendulo invertidofue tratado con amplitud en la seccion 3.1. Para una frecuencia de muestreode 200 Hz y asumiendo retencion de memoria de orden cero, la ecuacionde estado discreta del proceso y su ecuacion de salida se determinan comosigue:

% PARAMETROS DEL PROCESOmc = 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 DISCRETOA = [0 1 0 0

a21 0 0 a240 0 0 1a41 0 0 a44];

B = [0b210b41];

Cc = [0 0 1 0]; % SALIDA: POSICION DEL CARRO

Page 161: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 147

Ts = 1/200; % TIEMPO DE MUESTREO[G,H] = c2d(A,B,Ts);

G =

1,0002 0,0050 0 0,00020,0995 1,0002 0 0,09630,0000 0,0000 1,0000 0,0049−0,0019 0,0000 0 0,9508

; H =

−0,0004−0,14970,00020,0765

C =[

0 0 1 0]

4.9.3. Calculo de la Matriz de Ganancia del Controlador

En la seccion 4.7 vimos que la estructura del servosistema a emplear enel diseno del controlador optimo se describe mediante las ecuaciones (4.51)y (4.52), a saber:

ξ(k + 1) = Gξ(k) + Hw(k); w(k) = −Kξ(k)

donde:

G(k) =[

G 0−CG I

]; H(k) =

[H

−CH]

; K(k) =[K −KI

]Adicionalmente debemos averiguar si el proceso es completamente contro-lable formando la matriz de controlabilidad M y averiguando su rango, quedebe ser 5. El calculo se realiza como sigue:

G1 = [G zeros(4,1)-Cc*G 1];

H1 = [H;-Cc*H];% MATRIZ DE CONTROLABILIDADM = [H1 G1*H1 G1^2*H1 G1^3*H1 G1^4*H1];rM = rank(M); % rM = 5 => COMPLETAMENTE CONTROLABLE

G =

1,0002 0,0050 0 0,0002 00,0995 1,0002 0 0,0963 00,0000 0,0000 1,0000 0,0049 0−0,0019 0,0000 0 0,9508 00,0000 0,0000 −1,0000 −0,0049 1,0000

; H =

−0,0004−0,14970,00020,0765−0,0002

Page 162: [-] Control Avanzado - Arturo Rojas Moreno

148 Control Optimo

Para determinar la matriz de ganancia K del controlador de realimentacionde acuerdo a lo establecido en la seccion 4.7, seleccionamos antes las matricesde ponderacion R y Q como sigue:

R = [100]; Q =

200 0 0 0 00 0 0 0 00 0 100 0 00 0 0 0 00 0 0 0 0,01

En la matriz Q observamos que se esta dando mayor peso al angulo delpendulo (200). La posicion del carro recibe un peso de 100 mientras queal integrador se le asigna 0.01. Con el proposito de evitar la saturacion delamplificador, tenemos que reducir la amplitud de la senal de entrada (o decontrol) a dicho amplificador, pues de otro modo se originarıan efectos nolineales indeseados en el sistema. Para tal proposito, R toma el valor de 100,dando ası mayor enfasis a la senal de control en el proceso de optimizacion.

Para calcular la matriz K debemos resolver la ecuacion de Riccati (4.58)pero en su forma recursiva:

P (k+ 1) = Q+ GT P (k)G− GT P (k)H[R+ HT P (k)H]−1HT P (k)G (4.60)

El programa siguiente (en codigo MATLAB) calcula el valor estacionario dela matriz solucion P (k), donde P (0) es una condicion inicial arbitraria:P = zeros(5,5);for i = 1:1000

P = Q + G1’*P*G1 - G1’*P*H1*inv(R + H1’*P*H1)*H1’*P*G1end

donde G1 ≡ G, H1 ≡ H, P ≡ P , Q ≡ Q y R ≡ R. Ası obtenemos:

P = 105 ×

1,3774 0,3112 0,9019 0,5082 −0,00350,3112 0,0727 0,2107 0,1197 −0,00080,9019 0,2107 0,9352 0,3735 −0,00410,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 laecuacion (4.59). Ası se obtiene::

K = [R+ HT P H]−1HT P G = [K −KI ]

donde:

K = [−7,7295 − 1,7311 − 2,9357 − 2,6291]; KI = [−0,0097]

Page 163: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 149

4.9.4. Calculo la Matriz de Ganancia del Observador

Previo al calculo la matriz de ganancia del observador, debemos determi-nar si el proceso es completamente observable. Para ello formamos la matrizde observabilidad empleando la ecuacion (4.29) con n = 4, como sigue:

C = [1 0 0 00 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 (seccion 4.3),debemos seleccionar previamente las matrices de ponderacion Re y Qe:

Re =[

1 00 10

]; Qe =

1 0 0 00 1000 0 00 0 0,9 00 0 0 1000

Podemos observar que en la matriz Re se da un peso de 10 a la medicion dela posicion del carro, pues es mas exacta que la medicion del angulo, debidoa que el sensor usado para medir dicho angulo posee un error de cuantizacionmayor. En la matriz Qe se asigna un peso de 1000, el mayor en Qe, tanto ala velocidad angular de la varilla como a la velocidad del carro, porque estasson las variables que no son posibles de medir directamente y necesitamosque tengan una mayor influencia en el proceso de estimacion. Notar tambienque la posicion del carro posee un peso de 0.9, algo menor comparado conel peso de 1 atribuıdo al angulo de la varilla, dado que el sensor de posiciondel carro es mas exacto que el sensor de posicion de la varilla.

Para calcular la matriz de ganancia del observador Ke calculamos pre-viamente la matriz Pe a partir de la ecuacion (4.37):

Pe(k + 1) = Qe +GPe(k)GT −GPe(k)CT [Re + CPe(k)CT ]−1CPe(k)GT

El programa siguiente (en codigo MATLAB) calcula el valor estacionario dela matriz solucion Pe (el valor inicial de Pe es arbitrario):

for i = 1:40Pe = Qe + G*Pe*G’-G*Pe*C’*inv(Re+C*Pe*C’)*C*Pe*G’

end

Page 164: [-] Control Avanzado - Arturo Rojas Moreno

150 Control Optimo

donde Pe = Pe, Qe = Qe. De esta manera obtenemos:

Pe = 103 ×

0,0021 0,0640 0,0003 0,01360,0640 9,7336 0,0397 2,22690,0003 0,0397 0,0047 0,07530,0136 2,2269 0,0753 6,3346

Luego, la matriz de ganancia Ke se calcula con la ecuacion (4.36):

Ke = [Re + CPeCT ]−1CPeG

T

lo que resulta en:

Ke =

0,7802 0,018520,9413 2,82400,0752 0,34503,7683 4,7913

T

4.9.5. Simulacion del Sistema de Control Optimo

Con los datos determinados, podemos entrar ahora a la fase de simulaciondel sistema de control optimo cuadratico, antes de iniciar su implementacionen tiempo real. El siguiente programa disopt2.m, ademas de efectuar todoslos calculos anteriores, realiza la simulacion del sistema controlado emple-ando una ley de control optima y con observacion optima de estados. Esinteresante anotar que el modelo del proceso empleado en la simulacion esel modelo no lineal (3.31) discretizado directamente. Tambien hemos anadi-do sentencias para simular el efecto de saturacion del amplificador. Comosenal de referencia se emplea un escalon de valor 1.5 m. Los resultados dela simulacion se pueden observar en las figuras 4.10, 4.11 y 4.12.

% disopt2.m SISTEMA DE CONTROL OPTIMO DEL PENDULO INVERTIDOclear all

% PARAMETROS DEL PROCESOmc = 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);

Page 165: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 151

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 DISCRETOA = [0 1 0 0

a21 0 0 a240 0 0 1a41 0 0 a44];

B = [0b210b41];

Cc = [0 0 1 0]; % POSICION DEL CARROTs = 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 CONTROLADORQ = [200 0 0 0 0

0 0 0 0 00 0 100 0 00 0 0 0 00 0 0 0 0.01]; R = [100];

P = zeros(5,5);for i=1:1000P = Q + G1’*P*G1 -G1’*P*H1*inv(R+H1’*P*H1)*H1’*P*G1;endK1 = inv(R+H1’*P*H1)*H1’*P*G1;[KK,PP] = dlqr(G1,H1,Q,R); % K1=KK, P=PPK = [KK(1) KK(2) KK(3) KK(4)]; KI = - KK(5);

% CALCULO DE LA GANANCIA DE UN OBSERVADORC = [1 0 0 0

0 0 1 0]; % SE OBSERVAN POSICIONES ANGULAR Y LINEALQe = [1 0 0 0

0 1000 0 00 0 0.9 00 0 0 1000]; Re = [1 0;0 10];

Pe = zeros(4,4);for i=1:40

Page 166: [-] Control Avanzado - Arturo Rojas Moreno

152 Control Optimo

Pe = Qe + G*Pe*G’ -G*Pe*C’*inv(Re+C*Pe*C’)*C*Pe*G’;endKeT = 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 INICIALESx1=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*Nfor k=1:Nu = -K*xe + KI*v;if(u > 1.4), u = 1.4; % PARA NO SATURAR EL SERVOMOTORelseif(u < -1.4), u = -1.4;endxe = G*xe + u*H + Ke*([x1;x3] - C*xe);

% PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTEden = -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

% GRAFICOSt = linspace(0,Ts*N,N);figure(1)plot(t,y2(1:N)); gridylabel(’Posicion del carro’)xlabel(’Tiempo (s)’)print -deps -f spozfigure(2)plot(t,y1(1:N)); gridylabel(’Posicion angular del pendulo’)xlabel(’Tiempo (s)’)print -deps -f spoafigure(3)plot(t,U); gridylabel(’Se~nal de control u’)

Page 167: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 153

xlabel(’Tiempo (s)’)print -deps -f spou

0 2 4 6 8 10 12 14 16 18 20−0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6P

osic

ión

del c

arro

Tiempo (s)

Figura 4.10: Simulacion del sistema pendulo invertido: posicion del carro.

4.9.6. El Hardware del Sistema de Control

La figura 4.13 muestra los componentes fısicos (el hardware) del sistemade control. Tales componentes son: el proceso a controlar (pendulo inver-tido o grua-puente), los sensores de posicion, el amplificador de potencia, latarjeta de adquisicion de datos Lab-PC+, y una computadora personal conmicroprocesador Pentium. El proceso pendulo invertido (o grua-puente) semuestra esquematizado en la figura 4.14 y comprende:

Un servomotor D.C. Pittman de iman permanente de aproximada-mente 350 rpm, que posee reduccion de velocidad interna y codificadoroptico incorporado, cuya operacion explicaremos mas adelante.

Dos poleas de radio igual a 6.48 cm, una de las cuales esta unida aleje del motor y la otra, al otro extremo de un carril.

Un carril de metal por donde se desliza el carro porta-pendulo.

Page 168: [-] Control Avanzado - Arturo Rojas Moreno

154 Control Optimo

0 2 4 6 8 10 12 14 16 18 20−0.1

−0.05

0

0.05

0.1

0.15

Pos

ició

n an

gula

r de

l pén

dulo

Tiempo (s)

Figura 4.11: Simulacion del sistema pendulo invertido: posicion angular delpendulo.

0 2 4 6 8 10 12 14 16 18 20−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Señ

al d

e co

ntro

l u

Tiempo (s)

Figura 4.12: Simulacion del sistema pendulo invertido: senal de control.

Page 169: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 155

PA0

PA7

PA

PB7

PB0

PB

PC

DAC0

DAC1

MUX

SENSOR EN

LA VARILLA

EL MOTOR

SENSOR EN

TARJETA LAB-PC+

ANALOGICAS

SALIDAS

COMPUERTAS

DIGITALES

DE ENTRADA

Y SALIDA

CONTADOR /

TEMPORIZADOR

COMPUTADORA

PERSONAL

INVERTIDOGRUA PUENTE

/

SALIDAS

PWM

CADOR

AMPLIFI-

...

...

...

PROCESO:’PENDULO

16 bits

16 bits

PC0

PC6

PC7

FsOUTB0

Figura 4.13: Implementacion del sistema de control.

Page 170: [-] Control Avanzado - Arturo Rojas Moreno

156 Control Optimo

PENDULO

CARRO

POLEA

SERVOMOTOR

CARRIL

Figura 4.14: Sistema pendulo invertido.

Un carro de metal con cuatro ruedas de bronce, el cual posee una juntamovil (para sujetar una varilla metalica por uno de sus extremos) yun codificador optico incorporado (ver figura 4.15). El peso total delcarro es de 920 gr. El esquema del carro se muestra en la figura 4.16.

Una varilla metalica de 70 cm de largo y de 64 gr que hace la funcionde pendulo.

...

Codificador optico

Alimentacion’

Reductor develocidad

Polea

Servomotor D.C.

Figura 4.15: Servomotor con codificador optico y polea.

Los Sensores de Posicion

El sistema de control posee dos sensores de posicion, uno de los cuales seencarga de medir la posicion angular del motor y el otro se encarga de medir

Page 171: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 157

Codificador

Ruedas

Pendulo

optico

Figura 4.16: Esquema del carro.

la posicion angular de la varilla. Cada sensor consiste de un codificador opti-co rotatorio, compuesto de un disco metalico con un numero determinadode ranuras igualmente espaciadas y ubicadas en el perımetro del disco, y unemisor-sensor optico que genera un haz de luz perpendicular al disco (verfigura 5.13).

Eje del servomotor

Disco con’mascara

Canal A

Canal B

Fuente de luzTransistor

’optico

Figura 4.17: Codificador optico.

El proceso de sensado es el siguiente. Al girar el disco a la misma ve-locidad del servomotor (o a la misma velocidad de la varilla), las ranuras

Page 172: [-] Control Avanzado - Arturo Rojas Moreno

158 Control Optimo

permiten el paso de luz a traves del disco. Dicho haz activa el transistoroptico del emisor-sensor, generando un pulso de corriente que se constituyeası en la entrada a un contador de pulsos. El numero de ranuras que posee elsensor de la varilla es 256, mientras que el sensor del servomotor posee 512ranuras. Hay que tomar en cuenta ademas que el codificador incorporado enel motor es solidario al eje primario; es decir, para obtener el angulo de giroen el eje de salida, se tiene que aplicar un factor de reduccion cuyo valornumerico se da en la seccion 3.2.6.

El codificador optico da como salida un tren de pulsos con una frecuenciaproporcional a la velocidad angular del disco y otro tren de pulsos desfasadoen +90 o −90 grados respecto al primero, de acuerdo al sentido de girodel disco. Estos dos trenes de pulsos pasan luego a un decodificador decuadratura LS7083 que genera las senales Clock Up o Clock Down, segunsea positivo o negativo el sentido de giro del disco (ver figura 5.14). Lassenales Clock Up y Clock Down alimentan a un contador Up/Down de 16bits compuesto por 4 contadores 74LS193 de 4 bits conectados en cascada.Los dos codificadores opticos poseen la circuiterıa descrita anteriormente,de modo tal que para cada sensor tenemos una salida de 16 bits que sealmacena en un registro.

La seleccion entre una u otra salida binaria se realiza por medio de lahabilitacion de un registro, o mediante una senal proveniente de la computa-dora personal (ver figura 4.13). En conclusion, la cuenta almacenada en loscontadores es una funcion lineal proporcional a la posicion angular del ejedel disco. Para obtener la posicion angular a partir del numero de pulsosNP dados por los contadores, podemos usar la siguiente relacion:

Para la varilla, posicion angular de la varilla: (2π/256) ×NP .

Para el motor, posicion angular del eje del motor: (2π/512)×NP (antesde la reduccion).

El Amplificador de Potencia

Un amplificador de potencia basado en la modulacion PWM (”PulseWidth Modulation”) alimenta al servomotor D.C. Este amplificador esta com-puesto por un modulador PWM de baja potencia (el LM3524), una logicadigital de disparo y un conmutador amplificador tipo H implementado concuatro Mosfets. Tambien existe circuiterıa adicional para generar la tensionde disparo en cada conmutador Mosfet.

Page 173: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 159

R L

LS7083Canal B

Canal A

Clock DownClock UP

193

193

193

193

4 bits

4 bits

4 bits

4 bits

8 bits

8 bits

Puertodigital

PA

PB

Puertodigital

74HC

74HC

74HC

74HC

Figura 4.18: Sensado de la posicion.

La Tarjeta de Adquisicion de Datos Lab-PC+

La tarjeta de adquisicion de datos Lab-PC+ de National Instruments esla interfaz empleada para el envıo de la senal de control y para la adquisi-cion de datos. La interconexion de la tarjeta de adquisicion de datos con elamplificador y los sensores se realiza en la forma siguiente:

Puerto A: recibe los 8 bits menos significativos del sensor.

Puerto B: recibe los 8 bits mas significativos del sensor.

Puerto C:

• bit 1: Libre (puede ser usado para enviar datos adicionales desdela computadora)

• bit 2: selecciona entre el sensor de la varilla o el del motor.

• bit 3: reinicia (“reset”) los contadores.

• bit 7: recibe la senal de reloj de la frecuencia de muestreo Fsgenerada por OUTB0.

• bits 0,4,5 y 6: no usados.

DAC0: envıa la senal de control.

OUTB0: envıa la senal de reloj de muestreo.

Page 174: [-] Control Avanzado - Arturo Rojas Moreno

160 Control Optimo

Seleccion de la Frecuencia de Muestreo

Para el funcionamiento correcto del sistema de control optimo discretose requiere la seleccion adecuada de la frecuencia (o perıodo) de muestreo.Tal seleccion debe tomar en consideracion la respuesta deseada del sistemade lazo cerrado y el tiempo que pueda tomar el programa para hacer todoslos calculos necesarios por cada lazo de control (y para cada perıodo demuestreo). Los programas implementados tuvieron una duracion promediopor bucle de 430 µs, lo que permite procesar el sistema con frecuencias demuestreo de hasta 2,3 KHz.

Como regla practica, podemos escoger un perıodo de muestreo que sea10 veces menor que la duracion de un ciclo de oscilacion senoidal amor-tiguada de la senal de salida del sistema en lazo cerrado (para el caso derespuesta subamortiguada). Para el caso de respuesta sobreamortiguada,podemos escoger un perıodo de muestreo 10 veces menor que el tiempo delevantamiento; es decir, el tiempo transcurrido hasta que ocurra el primercruce entre la senal de referencia y la senal de respuesta del sistema. Siasumimos inicialmente que las respuestas a obtener deben poseer un tiempode levantamiento de un segundo, aplicando esta regla practica, tendremosque escoger un perıodo de muestreo menor que 0,1 segundos; es decir, unafrecuencia mayor de 10 Hz. Tomando en cuenta todas estas consideracionesse escogio una frecuencia de muestreo de Fs = 200 Hz, o lo que es lo mismo,un perıodo de muestreo de 5 ms.

4.9.7. Implementacion del Software de Control

La implementacion del algoritmo de control se realiza en dos fases. Enla primera, se calculan fuera de lınea (“off-line”) la matriz de ganancia derealimentacion de estados K y la matriz de ganancia del observador Ke (em-pleando por ejemplo, MATLAB). Tales matrices se guardan en un archivopara que luego puedan ser usadas por el programa (escrito en codigo C) queva a controlar el proceso. Todos los datos generados pueden ser almacenadosen archivos para su posterior lectura, analisis y procesamiento (por ejemplo,para generar graficos).

El Archivo de Interfaz

Para facilitar el uso de la tarjeta de adquisicion de datos se crearon losarchivos FUNC PEN.H y FUNC PEN.CPP, los cuales utilizan la librerıa de

Page 175: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 161

funciones NI-DAQ [25], ası como tambien funciones de lectura y escriturade puertos. El archivo FUNC PEN.H consta de las siguientes funciones:

ConfigurarHardware: inicializa la tarjeta Lab-PC+, configura los puer-tos y especifica la frecuencia del clock de muestreo.

EnviarVoltaje: restringe y envıa voltajes al DAC0 del Lab-PC+.

LeerSensor: adquiere datos de los puertos A y B de 8 bits cada unoy coloca un 0 o un 1 en el segundo bit del puerto C, con el fin deseleccionar 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 deOUTB0.

ResetContadores: coloca un 1 o un 0 en el bit 3 del puerto C, con elfin 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 detrabajo de Borland C/C++, los archivos FUNC PEN.H, FUNC PEN.CPPy PENDOI4.CPP forman en conjunto el proyecto PENDOI4.PRJ. El pro-grama PENDOI4.CPP comprende las partes siguientes:

1. Inicializacion

a) Inicializacion de la tarjeta de adquisicion de datos.b) Inicializacion de variables.c) Establecimiento de la posicion cero del carro y de la varilla.

2. Bucle del algoritmo de control

a) Deteccion del flanco de subida del clock.b) Medicion de las salidas.c) Observacion de estados.d) Calculo y aplicacion de la senal de control.

3. Almacenamiento de las respuestas.

El diagrama de flujo del programa se muestra en la figura 4.19. Losprogramas implementados tuvieron una duracion promedio por bucle de430 µs. A continuacion comentamos brevemente cada uno de los puntosanteriores.

Page 176: [-] Control Avanzado - Arturo Rojas Moreno

162 Control Optimo

INICIO

- TARJETA DE ADQUISICION DE DATOS

BORRA CONTADORES

TIEMPO < TIEMPO LIMITE FIN

SI

NO

SI

ACTUALIZA VARIABLES

MIDE SALIDAS

NO

~

~

CALCULA SENAL DE CONTROL

INMICIALIZA:

- VARIABLES

ESTABLECIMIENTO DE LA POSICION

DETECTAFLANCO DE SUBIDA

DEL PULSO DE RELOJ

COMPENSA SENAL DE CONTROL

ENVIA SENAL DE CONTROL

~

ARCHIVA DATOS

CERO DEL CARRO Y LA VARILLA

ESTIMA ESTADOS

Figura 4.19: Diagrama de flujo del programa de control.

Page 177: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 163

Inicializacion de la Tarjeta de Adquisicion de Datos

El hardware de la tarjeta Lab-PC+ se configura con la funcion parainicializacion ConfigurarHardware(Fs), en donde se especifica la frecuenciade muestreo Fs que debe generar.

Inicializacion de Variables

Se inicializan todas las variables a utilizar en el programa y se carganlas matrices que previamente fueron calculadas.

Establecimiento de la Posicion Cero del Carro y de la Varilla

Se pide al usuario colocar la varilla y el carro en la posicion cero. Enel caso de la varilla, esta debe colocarse en posicion vertical y hacia arriba(pendulo invertido) o hacia abajo (grua-puente). Con esto se consigue que elprograma identifique la posicion de 0 grados del pendulo y de 0 metros delcarro. Realizada esta accion, el programa pide luego colocar el pendulo o elcarro en las posiciones iniciales deseadas, para inmediatamente comenzar elcontrol.

Deteccion del Flanco de Subida del Clock

Detecta el flanco de subida del clock mediante la funcion NivelClock, loque nos indica el comienzo de un nuevo perıodo de muestreo.

Medicion de las Salidas

Para obtener la posicion angular a partir del numero de pulsos dadospor los contadores, podemos usar la siguiente relacion:

Para la varilla, posicion angular de la varilla: (2π/256) ×NP .

Para el motor, posicion angular del eje del motor: (2π/512)×NP (antesde la reduccion).

Para la lectura de los sensores tenemos que tomar en cuenta la saturacionde los contadores, los cuales pueden guardar un valor maximo de 65535.

En el caso de la varilla, consideraremos como positivo los valores queresulten de un recorrido horario, y negativo los que resulten de un recorridoantihorario. Para este caso, los contadores no llegan a saturarse, pues alo sumo la varilla podrıa tener un recorrido de 360o, lo que corresponde

Page 178: [-] Control Avanzado - Arturo Rojas Moreno

164 Control Optimo

a un incremento de 256 puntos, valor bastante lejos del valor maximo delcontador. El problema a resolver aquı es como reconocer si nos encontramosante un recorrido positivo o negativo justo cuando el contador comienza adecrementar (partiendo de 0). Para resolver esta situacion, consideraremosque estamos ante un valor negativo si el contenido de los contadores esmayor que 32768 (la mitad del valor maximo que pueden contener). Porejemplo, si obtenemos en el contador un valor de 65534, y como este esmayor que 32768, entonces representa una posicion negativa; su equivalentees: −(65536−65534) = −2. Luego, para obtener la posicion angular hacemos:−2 × 2π/256 rad. La rutina que realiza esta lectura esta dada por:

/*lee angulo Varilla*/contVa=LeerSensor(VARILLA);contVa=(contVa>32768)?-1*(65536-contVa):contVa;*y0=contVa*(2.*PI/256.);

en donde contVa es la variable que guarda el valor del contador e y0 guardala posicion angular en radianes.

La lectura de la posicion del carro es un caso diferente, porque a unadeterminada distancia de recorrido, los contadores se saturan. Para salvareste inconveniente lo que se hace es sumar los incrementos o restar los decre-mentos que se obtienen entre la lectura actual y la lectura anterior de loscontadores. Pero ademas, previamente debemos de discernir si el valor leıdodel contador se trata de un incremento o un decremento. La siguiente rutinaen codigo C toma en cuenta las consideraciones anteriores:

/*lee posicion del carro*/contC_act=LeerSensor(MOTOR);if(contC_act<contC_ant)if((contC_ant-contC_act)>32768)*y1=y1_ant+(65536-contC_ant+contC_act)*2.*PI/512.*Nm*rp;else*y1=y1_ant-(contC_ant-contC_act)*2.*PI/512.*Nm*rp;elseif((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;

Page 179: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 165

en donde contC_act es el valor actual del contador, contC_ant es el valoranterior del contador, y1 es la variable que guarda la posicion actual delcarro en metros e y1_ant es el valor anterior de y1.

Observador de Estados de Orden Completo

La ecuacion que debemos implementar para el observador de estados deorden completo esta dada por la ecuacion (4.31):

x(k + 1) = Gx(k) +Hu(k) +Ke[y(k) − Cx(k)]

o por la ecuacion (luego de factorizar el vector estimado x(k)):

x(k + 1) = (G−KeC)x(k) +Hu(k) +Key(k)

Para ahorrar calculos innecesarios en el programa, podemos colocar elvalor de (G −KeC) en una sola variable que pueda ser calculada fuera delınea (“off-line”), para ser luego guardada en un archivo, y antes de iniciarla rutina de control, leerla desde el programa en C. En dicho programautilizaremos la siguiente notacion para las variables:

Xe[ ] = x(k); Y ant[ ] = y(k − 1); G KeC[ ][ ] = G−KeC

H[ ] = H; Ke[ ][ ] = Ke; u = u(k)La rutina en lenguaje C que implementa la ecuacion del observador es:

/*calcula G_KeC*Xe */for(i=0;i<=3;i++) S=0.;for(p=0;p<=3;p++)S=G_KeC[i][p]*Xe[p]+S;G_KeCX[i]=S;/*calcula KeYant*/for(i=0;i<=3;i++) S=0.;for(p=0;p<=1;p++)S=Ke[i][p]*Yant[p]+S;KeYant[i]=S;

/*calcula Xe(K+1)[i]*/for(i=0;i<=3;i++)Xe[i]=G_KeCX[i]+H[i]*u+KeYant[i];Yant[0]=X0;Yant[1]=X2;

Page 180: [-] Control Avanzado - Arturo Rojas Moreno

166 Control Optimo

Calculo de la Senal de Control

Para el calculo de la senal de control utilizaremos las ecuaciones (4.40)y (4.42), a saber:

u(k) = −Kx(k) +KIv(k)v(k) = v(k − 1) + r(k) − y(k)

En el programa en codigo C utilizamos la siguiente notacion:

Xe[ ] = x(k); K[ ] = K; KI = KI ; Xe[2] = y(k)

V = v(k); V ant = v(k − 1); r = r(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 compensacion de la zona muerta en elmotor esta dada por:

if(u <0) v=-DeadZone;if(u >0) v=+DeadZone;if(u==0) v=0.;

Para aplicar la senal de control emplearemos:

Enviarvoltaje(u+v+offset);

Almacenamiento de las Respuestas

Las respuestas hasta aquı obtenidas se guardan cada una en una matriz;luego cada matriz es almacenada en un archivo para su posterior lectura,analisis y procesamiento.

Listado de los Programas Fuente

/*FUNC_PEN.H Funciones para manejar la tarjeta de adquisicionde datos Lab-PC+ en conjunto con la interfaz del sistema delpendulo invertido*/#if !defined (__FUNC_PEN_H)#define __FUNC_PEN_Hvoid ConfigurarHardware (float);

/*configurar hardware y establecer la frecuencia del clock de

Page 181: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 167

la tarjeta de interfaz*/void EnviarVoltaje (float);

/*env\’\ia voltaje al DAC de la tarjeta*/unsigned int LeerSensor(int);

/*lee sensor=0 contadores del lado izquierdolee 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 0x272void ConfigurarHardware (float frec)int periodoTimer, deviceCode;periodoTimer = (int)(2000000/frec);

USE_LAB();/*esta funcion ayuda a mantener el tama~no de la aplicacion en DOSante un mayor crecimiento debido a la inclusion de porciones dela libreria NI-DAQ que no son necesarias para el dispositivo deadquisicion que se esta utilizando */

Init_DA_Brds(1,&deviceCode);/*inicializa el hardware y el software de la libreria NI-DAQdeviceNumber = 1deviceNumberCode devuelve el tipo del dispositivo inicializado */

ICTR_Setup(1,0,3,periodoTimer,1);/*deviceNumber = 1ctr = 0 => clock de muestreo timer0MODE = 3 => selecciona onda cuadrada con duty cycle de 50 %COUNT = periodoTimer => periodo de la ondabinBcd = 1 => selecciona el contador binario de 16-bits */

Page 182: [-] Control Avanzado - Arturo Rojas Moreno

168 Control Optimo

outportb(0x273, 0x9A);/*’’setea’’ el DIGITAL CONTROL REGISTER (273H) y configura losports como:PA:INPUTPB:INPUTPC0 ... 3:OUTPUTPC4 ... 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 DAC0unsigned int LeerSensor(int sensor)unsigned char byteH,byteL;

if(sensor) outportb(PORTC,inportb(PORTC)&251);//PC2 = 0 selecciona contador derechoelseoutportb(PORTC,inportb(PORTC)|4);

//PC2 = 1 selecciona contador izquierdobyteL = inportb(PORTA);//Lee PORT AbyteH = inportb(PORTB);//Lee PORT Breturn (256*byteH+byteL);

int NivelClock()unsigned char bytePoll;bytePoll = inportb (PORTC); //lee PORTCreturn (bytePoll>127);//valida solo PC7 (clk de la tarjeta-OUTB0)

//(pooling)

void ResetContadores()

Page 183: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 169

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

/*PENDOI4.CPP Programa principal: pendulo invertido con estimacionde estados de orden completo. El programa carga los datos delarchivo 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 PI M_PI#define IZQ 0#define DER 1#define VARILLA IZQ#define MOTOR DER#define A_RADIANES 2.*PI/512.

#define Nm 1/19.741#define rp 0.0648#define Fs 200.#define Ts (1./Fs)#define tsimul 60.#define DeadZone 0.1#define offset 2.29 //2.36#define 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()

Page 184: [-] Control Avanzado - Arturo Rojas Moreno

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]);

Page 185: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 171

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;elseif((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]*/

Page 186: [-] Control Avanzado - Arturo Rojas Moreno

172 Control Optimo

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;

Page 187: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 173

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();

Page 188: [-] Control Avanzado - Arturo Rojas Moreno

174 Control Optimo

printf("1) Ubicar el carro en el centro del carril\n4) Ubicar la va-rilla 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\nPresionar F2 para comenzar el control\n");dowhile(!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 = 0.; r = 0.;for(k = 0;k <= n;)if(kbhit())if((tecla = getch()) == 27) break;if(tecla == 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);

Page 189: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 175

gotoxy(5,17);printf("carro en metros : %f",y1);

EstimaEstados(y0,y1);

/*Encuentra Control*/ /*u(k+1)*/V = V_ant+r-Xe[2]; V_ant = V;//accion integralu = 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);

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

Page 190: [-] Control Avanzado - Arturo Rojas Moreno

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_);elsec=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);elsec=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);elsec=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);elsec=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

Page 191: [-] Control Avanzado - Arturo Rojas Moreno

4.9 Control Optimo Cuadratico del Pendulo Invertido 177

c=fwrite(y_0_,sizeof(y_0_),n+1,pfichero);fclose(pfichero);printf("\nelementos escritos en %s:%d\n",sal_var,c);

/*guarda y1 posicion del carro*/pfichero = fopen(sal_car,"wb");if (pfichero == NULL) printf("\nNo se puede abrir %s\n",sal_car);elsec=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_);elsec=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 senal de referen-cia escalon de 1.5 m para la posicion del carro. Los resultados del controloptimo cuadratico del sistema de pendulo invertido con observador de ordencompleto se muestran en las figuras: 4.20, 4.21 y 4.22.

En los resultados experimentales se observa que la posicion del carro, quees la senal de realimentacion del servosistema, sigue a la senal de referenciaen menos de 6 segundos y con sobreamortiguamiento mınimo, tal como es-taba propuesto en las especificaciones de diseno del sistema de control. Laposicion angular del pendulo logra estabilizarse alrededor de cero; es decir,se llega a posicionar en forma vertical.

Observar en la respuesta estacionaria, tanto en la posicion del carrocomo en la posicion angular del pendulo, la presencia de una oscilacionestacionaria (ciclo lımite) que podrıa reducirse usando sensores mas precisos

Page 192: [-] Control Avanzado - Arturo Rojas Moreno

178 Control Optimo

0 2 4 6 8 10 12 14 16 18 20−0.5

0

0.5

1

1.5

2posición del carro (medición directa)

tiempo (s)

posi

ción

(m

)

Figura 4.20: Control optimo del pendulo invertido: posicion del carro.

0 2 4 6 8 10 12 14 16 18 20−0.5

−0.4

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5ángulo del péndulo (medición directa)

tiempo (s)

ángu

lo (

rad)

Figura 4.21: Control optimo del pendulo invertido: posicion angular delpendulo.

Page 193: [-] Control Avanzado - Arturo Rojas Moreno

4.10 Control Optimo Cuadratico de la Grua-Puente 179

0 2 4 6 8 10 12 14 16 18 20−1.5

−1

−0.5

0

0.5

1

1.5entrada

tiempo (s)

entr

ada

(v)

Figura 4.22: Control optimo del pendulo invertido: senal de control.

(con un tamano de paso de deteccion menor).El algoritmo de control lineal empleado requiere que las variables no sal-

gan de la zona lineal impuesta por el modelo lineal. Sin embargo, el sistemade control disenado responde en forma adecuada para desviaciones de laposicion de la varilla de hasta ± 20o, lo que esta bastante fuera de la zonalineal impuesta por el modelo.

4.10. Control Optimo Cuadratico de la Grua-Puente

En esta seccion nos ocupamos del diseno del control optimo cuadraticodel proceso grua-puente empleando el procedimiento de diseno presentadoen la seccion 4.8.

4.10.1. Formulacion del Problema

Dado el sistema grua-puente, conformado por una varilla que cuelga li-bremente de un carro impulsado por un servomotor D.C. controlado porsu voltaje de armadura, se desea disenar un servocontrolador que sea ca-paz de trasladar al carro a una posicion determinada, de manera tal que

Page 194: [-] Control Avanzado - Arturo Rojas Moreno

180 Control Optimo

la oscilacion en la varilla sea mınima. El problema en consideracion es dedos dimensiones, dado que la varilla se balancea en el mismo plano que latrayectoria del carro. El diseno del sistema de control esta basado en la teorıade control optimo cuadratico. La entrada al proceso (la senal de control) esel voltaje de armadura del servomotor D.C. y las salidas del servosistemason la posicion angular del pendulo y la trayectoria horizontal del carro. Sedesea un tiempo de estabilizacion de la posicion del carro de aproximada-mente 6 segundos con el menor sobreimpulso posible. Cabe anotar que paraalcanzar las especificaciones de diseno planteadas, se requiere seleccionaradecuadamente las matrices de ponderacion.

4.10.2. Simulacion del Sistema Controlado

La determinacion del modelo matematico del proceso grua-puente setrato con amplitud en la seccion 3.2. Para una frecuencia de muestreo de200 Hz y asumiendo retencion de memoria de orden cero, y siguiendo elprocedimiento desarrollado en las subsecciones 4.9.2, 4.9.3, 4.9.4 y 4.9.5, elsiguiente programa disopt3.m determina el modelo lineal discreto, calculalas matrices de ganancia del controlador optimo y del observador optimo, ysimula el sistema de control para la grua puente. Cabe recalcar que la simu-lacion emplea el modelo no lineal de la planta. Los resultados se muestran acontinuacion del programa y los resultados graficos se ilustran en las figuras4.23, 4.24 y 4.25.

% disopt3.m SISTEMA DE CONTROL OPTIMO PARA LA GRUA-PUENTEclear all

% PARAMETROS DEL PROCESOmc = 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

Page 195: [-] Control Avanzado - Arturo Rojas Moreno

4.10 Control Optimo Cuadratico de la Grua-Puente 181

A = [0 1 0 0a21 0 0 a240 0 0 1a41 0 0 a44];

B = [0b210b41];

Cc = [0 0 1 0]; % POSICION DEL CARROTs = 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 CONTROLADORQ = [500 0 0 0 0

0 0 0 0 00 0 200 0 00 0 0 0 00 0 0 0 0.1]; R = [1];

P = zeros(5,5);for i=1:1000P = Q + G1’*P*G1 -G1’*P*H1*inv(R+H1’*P*H1)*H1’*P*G1;endK1 = inv(R+H1’*P*H1)*H1’*P*G1;[KK,PP] = dlqr(G1,H1,Q,R); % K1=KK, P=PPK = [KK(1) KK(2) KK(3) KK(4)]; KI = - KK(5);

% CALCULO DE LA GANANCIA DEL OBSERVADORC = [1 0 0 0

0 0 1 0]; % SE OBSERVAN POSICIONES ANGULAR Y LINEALQe = [1000 0 0 0

0 1500 0 00 0 100 00 0 0 1500]; Re = [1 0;0 1];

Pe = zeros(4,4);for i=1:200Pe = Qe + G*Pe*G’ -G*Pe*C’*inv(Re+C*Pe*C’)*C*Pe*G’;endKeT = 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

Page 196: [-] Control Avanzado - Arturo Rojas Moreno

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*Nfor k=1:Nu = -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;endxe = G*xe + u*H + Ke*([x1;x3] - C*xe);

% PROCESO NO LINEAL DISCRETIZADO DIRECTAMENTEden = -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

% GRAFICOSt = linspace(0,Ts*N,N);figure(1)plot(t,y2(1:N)); gridylabel(’Posicion del carro’)xlabel(’Tiempo (s)’)print -deps -f sgozfigure(2)plot(t,y1(1:N)); gridylabel(’Posicion angular de la grua-puente’)xlabel(’Tiempo (s)’)print -deps -f sgoafigure(3)plot(t,U); gridylabel(’Se~nal de control u’)xlabel(’Tiempo (s)’)print -deps -f sgou

Page 197: [-] Control Avanzado - Arturo Rojas Moreno

4.10 Control Optimo Cuadratico de la Grua-Puente 183

G =

0,9998 0,0050 0 −0,0002−0,0972 0,9998 0 −0,09410,0000 0,0000 1,0000 0,0049−0,0019 0,0000 0 0,9508

; H =

0,00040,14620,00020,0765

C =[

0 0 1 0]

G =

1,0002 0,0050 0 0,0002 00,0995 1,0002 0 0,0963 00,0000 0,0000 1,0000 0,0049 0−0,0019 0,0000 0 0,9508 00,0000 0,0000 −1,0000 −0,0049 1,0000

; H =

−0,0004−0,14970,00020,0765−0,0002

P = 104 ×

1,9636 0,2257 −3,3116 −0,4202 0,03000,2257 0,1481 −0,7068 −0,2891 0,0030−3,3116 −0,7068 8,5186 1,4030 −0,0745−0,4202 −0,2891 1,4030 0,5668 −0,00610,0300 0,0030 −0,0745 −0,0061 0,0013

K =[K −KI

]K =

[8,2596 −4,3465 37,9206 10,3665]; KI = 0,2907

]

Ke =

1,0102 −0,00552,1836 −1,1280−0,0005 0,9936−0,0982 0,6519

4.27 y 4.28.

4.10.3. El Hardware y el Software del Sistema de Control

La implementacion del hardware, ası como el diseno del software delsistema de control, fueron tratadas en las subsecciones 4.9.6 y 4.9.7, respec-tivamente. Cabe anotar que el hardware del sistema y la estructura del soft-ware es comun, tanto para el pendulo invertido como para la grua-puente.Basta cambiar de signo en algunas sentencias del archivo PENDOI4.CPP(descrito en la subseccion 4.9.7) para crear el software de control del procesogrua-puente.

Page 198: [-] Control Avanzado - Arturo Rojas Moreno

184 Control Optimo

0 2 4 6 8 10 12 14 16 18 200

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

Pos

ició

n de

l car

ro

Tiempo (s)

Figura 4.23: Simulacion del sistema grua-puente: posicion del carro.

0 2 4 6 8 10 12 14 16 18 20−0.4

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

Pos

ició

n an

gula

r de

la g

rúa

puen

te

Tiempo (s)

Figura 4.24: Simulacion del sistema grua-puente: posicion angular de la va-rilla.

Page 199: [-] Control Avanzado - Arturo Rojas Moreno

4.10 Control Optimo Cuadratico de la Grua-Puente 185

0 2 4 6 8 10 12 14 16 18 20−0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

Señ

al d

e co

ntro

l u

Tiempo (s)

Figura 4.25: Simulacion del sistema grua-puente: senal de control.

0 2 4 6 8 10 12 14 16 18 20−0.5

0

0.5

1

1.5

2posición del carro (medición directa)

tiempo (s)

posi

ción

(m

)

Figura 4.26: Control optimo de la grua-puente: posicion del carro.

Page 200: [-] Control Avanzado - Arturo Rojas Moreno

186 Control Optimo

0 2 4 6 8 10 12 14 16 18 20

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

ángulo de la varilla (medición directa)

tiempo (s)

ángu

lo (

rad)

Figura 4.27: Control optimo de la grua-puente: posicion angular del pendulo.

0 2 4 6 8 10 12 14 16 18 20−1.5

−1

−0.5

0

0.5

1

1.5entrada

tiempo (s)

entr

ada

(v)

Figura 4.28: Control optimo de la grua-puente: senal de control.

Page 201: [-] Control Avanzado - Arturo Rojas Moreno

4.11 Problemas Resueltos 187

4.10.4. Resultados experimentales

Los resultados experimentales que se muestran a continuacion se obtu-vieron con una senal de referencia escalon de 1.5 m para la posicion delcarro. Los resultados del control optimo cuadratico del sistema grua-puentecon observador de orden completo se muestran en las figuras: 4.26,

Como en el caso del pendulo invertido, en los resultados experimentalesse observa que la posicion del carro, que es la senal de realimentacion delservosistema, sigue a la senal de referencia en menos de 6 s y con sobreamor-tiguamiento moderado, tal como estaba propuesto en las especificaciones dediseno del sistema de control. La posicion angular del pendulo logra esta-bilizarse alrededor de cero; es decir, se llega a posicionar en forma verticalhacia abajo.

Igualmente, el algoritmo de control lineal empleado requiere que las va-riables no salgan de la zona lineal impuesta por el modelo lineal. Sin em-bargo, se comprobo que el sistema de control disenado responde en formaadecuada para una desviacion de la posicion de la varilla de ± 20 grados,que es bastante fuera de la zona lineal impuesta por el modelo.

4.11. Problemas Resueltos

En la seccion problemas resueltos de los capıtulos 4 al 8, la solucion a losproblemas se encuentra, segun el caso, en uno o mas archivos con extensionm escritos en codigo MATLAB.

Problema 4.1

El problema 3.1 presenta las ecuaciones que gobiernan la dinamica del sis-tema de suspension de un bus (ver figura 3.12). Disenar un sistema de controloptimo cuadratico estacionario para lograr el objetivo de control siguiente:la salida del proceso y = x2 − x1 (referencia nula) no debe presentar so-breimpulsos mayores que el 5 %, y luego de alrededor de 20 segundos, lasoscilaciones originadas por un disturbio escalon de 10 cm (provocada porimperfecciones en la pista), practicamente deben desaparecer. La selecciondel tiempo de muestreo es a conveniencia del diseno.

% p3opt2.m SOLUCION DEL PROBLEMA 4.1clear all

% PARAMETROS DEL PROCESOm1 = 2500; k1 = 80000; b1 = 350;m2 = 320; k2 = 500000; b2 = 15020;

Page 202: [-] Control Avanzado - Arturo Rojas Moreno

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*uA = [0 1 0 0

-b1*b2/(m1*m2) 0 a23 -b1/m1b2/m2 0 a33 1k2/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 DISCRETOT=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 sistemaQ = [1 0 0 0

0 1 0 00 0 1 00 0 0 1];

R = [1];% ECUACION DE RICCATIP = diag(0,3); % MATRIZ DE CEROS DE ORDEN 4for 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 KK = inv(R+H’*P*H)*H’*P*G;

% SIMULACION DEL SISTEMA CONTROLADON = 200; x=[0;0;0;0]; w=0.01;for k=1:NU=-K*x;x = G*x + H*U + F*w;y(k)=x(3); u(k)=U;end

% GRAFICOSt=linspace(0,N*T,N);subplot(2,1,1)plot(t,y(1:N)), gridylabel(’Posicion y (m)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(t,u(1:N)), grid

Page 203: [-] Control Avanzado - Arturo Rojas Moreno

4.11 Problemas Resueltos 189

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

0 20 40 60 80 100 120 140 160−10

−5

0

5x 10

−3

Pos

ició

n y

(m

)

Tiempo en segundos

0 20 40 60 80 100 120 140 1600

0.2

0.4

0.6

0.8

1x 10

−4

Tiempo en segundos

Con

trol

u

(N

)

Figura 4.29: Salida controlada y = x1 − x2 y fuerza de control u correspon-dientes al problema 4.1.

Problema 4.2

El problema 3.2 presenta las ecuaciones que gobiernan la dinamica longitudi-nal de un avion comercial volando a velocidad de crucero (altura y velocidadconstantes). El control del angulo de inclinacion θ del avion (ver figura 3.14)es un problema longitudinal a resolver. El objetivo de control es disenar unautopiloto que manipulando el angulo δe del deflector de elevacion, controleel angulo de inclinacion del avion.

Se pide disenar un sistema de control optimo cuadratico estacionario quegenere una fuerza de control, de modo que la salida del proceso (el angulode inclinacion θ) presente un sobreimpulso menor al 10 % y un tiempo de

Page 204: [-] Control Avanzado - Arturo Rojas Moreno

190 Control Optimo

estabilizacion menor que 3 s, con error en estado estable nulo. La selecciondel tiempo de muestreo es a conveniencia del diseno.

% p4opt2 SOLUCION DEL PROBLEMA 4.2clear all

% ECUACION DE ESTADO DEL PROCESOA=[-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 DISCRETOT=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 INTEGRALG1 = [G zeros(3,1);-C*G 1];H1 = [H;-C*H];

% INGRESO DE PESOSQ = [1 0 0 0

0 1 0 00 0 1 00 0 0 1 ];

R = [1];% EQUACION DE RICCATIP = diag(0,3);for i = 1:40P = Q + G1’*P*G1 - G1’*P*H1*inv(R+H1’*P*H1)*H1’*P*G1;

end

% CALCULO DE LA GANACIA K DEL CONTROLADORKK = inv(R+H1’*P*H1)*H1’*P*G1;K = [KK(1) KK(2) KK(3)];KI = -KK(4);

% SIMULACIONN = 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;

Page 205: [-] Control Avanzado - Arturo Rojas Moreno

4.11 Problemas Resueltos 191

Y = C*x;y(k) = Y; u(k) = U;

end

% GRAFICOSt=linspace(0,N*T,N);subplot(2,1,1)plot(t,y(1:N)), gridylabel(’Inclinacion (rad)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(t,u(1:N)), gridxlabel(’Tiempo en segundos’)ylabel(’Angulo del deflector (rad)’)print -deps -f p4opt2

0 1 2 3 4 5 6 7 8 9 100

0.05

0.1

0.15

Incl

inac

ión

(rad

)

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 10−0.05

0

0.05

0.1

0.15

0.2

Tiempo en segundos

Ang

ulo

del

defle

ctor

(ra

d)

Figura 4.30: Angulo de inclinacion θ controlada y angulo del deflector (senalde control) correspondientes al problema 4.2.

Page 206: [-] Control Avanzado - Arturo Rojas Moreno

192 Control Optimo

Problema 4.3

En el problema 3.3 se describe el proceso de la bola rodando a lo largode una barra, con un grado de libertad, tal como se muestra en la figura3.16. Una leva conecta la barra con un engranaje que esta accionado porun servomotor. Se desea disenar un sistema de control optimo que puedaposicionar la bola en menos de 5 s a 0.5 m de un extremo de la barra quemide 1 m de longitud. Las oscilaciones de la bola deben estar restringidassobre la barra y el voltaje de control no debe sobrepasar los ± 40 volt. Laseleccion del tiempo de muestreo es a conveniencia del diseno.

% p5opt2.m SOLUCION DEL PROBLEMA 4.3close all

% DETERMINACION DE LA ECUACION DE ESTADOM=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)) 00 0 0 10 0 0 0];

B=[0;0;0;1];C=[1 0 0 0]; D=[0];

% PROCESO DISCRETOT=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 INTEGRALG1 = [G zeros(4,1);-C*G 1];H1 = [H;-C*H];

% ANALIZAMOS SI LA PLANTA ES CONTROLABLEM=[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 CONTROLADORQ = [1 0 0 0 0

0 1 0 0 00 0 1 0 00 0 0 1 00 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)];

Page 207: [-] Control Avanzado - Arturo Rojas Moreno

4.11 Problemas Resueltos 193

KI = -KK(5);% SIMULACIONN = 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% GRAFICOSt=linspace(0,N*T,N);subplot(2,1,1)plot(t,y(1:N)), gridylabel(’Posicion (m)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(t,u(1:N)), gridxlabel(’Tiempo en segundos’)ylabel(’Voltaje de control’)print -deps -f p5opt2

Problema 4.4

La figura 3.20 muestra un monorriel de dos carros descrito en el problema3.5. El problema a resolver es el control de velocidad del carro de maquinasmediante un sistema de control optimo cuadratico. Para garantizar a lospasajeros un viaje confortable, los cambios de velocidad deben realizarsecon un tiempo de estabilizacion menor que 10 segundos y con mınimo so-breimpulso. El error en estado estable debe ser nulo. Simule una senal de re-ferencia que cambie la velocidad de 30 a 10 m/s y demuestre que se cumplenlas especificaciones de diseno. La seleccion del tiempo de muestreo es a con-veniencia del diseno.

% p7opt2 SOLUCION DEL PROBLEMA 4.4close 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 PROCESOA=[0 1 0 0 0 0

-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 0

Page 208: [-] Control Avanzado - Arturo Rojas Moreno

194 Control Optimo

0 1 2 3 4 5 6 7 8 9 100

0.2

0.4

0.6

Pos

ició

n (m

)

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 10−40

−20

0

20

40

Tiempo en segundos

Vol

taje

de

cont

rol

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

0 0 0 1 0 0K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M2

0 0 0 0 0 10 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3];

B=[0 1 0 0 0 0]’;alfa = 1; % CONSTANTE TACOMETRICAC=[ 0 alfa 0 0 0 0

0 0 0 alfa 0 00 0 0 0 0 alfa];

D=[0;0;0];[numc,denc]=ss2tf(A,B,C,D);

% MODELO LINEAL DISCRETOT = 0.2; % perıodo de muestreo[G,H,C,D]=c2dm(A,B,C,D,T,’zoh’);

% ADICIONANDO ACCION INTEGRALG1 = [G zeros(6,1);-C(1,:)*G 1];H1 = [H;-C(1,:)*H];

% CALCULO DE LA GANANCIA DEL CONTROLADORQ = [1 0 0 0 0 0 0

0 1 0 0 0 0 00 0 1 0 0 0 0

Page 209: [-] Control Avanzado - Arturo Rojas Moreno

4.11 Problemas Resueltos 195

0 0 0 1 0 0 00 0 0 0 1 0 00 0 0 0 0 1 00 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 INTEGRALK = [KK(1) KK(2) KK(3) KK(4) KK(5) KK(6)];KI = -KK(7);

% SIMULACIONN = 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% GRAFICOSt=linspace(0,N*T,N);subplot(2,1,1)plot(t,y(1:N),t,r(1:N)), gridylabel(’Velocidad (m/s)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(t,u(1:N)), gridxlabel(’Tiempo en segundos’)ylabel(’Fuerza de control (N)’)print -deps -f p7opt2

Problema 4.5

La figura 3.22 muestra el proceso ascensor tratado en el problema 3.6. Elproblema a resolver es posicionar suavemente el ascensor en un piso deter-minado, lo que significa sobreimpulso nulo (para que no se pase de piso) ytiempo de estabilizacion menor que 10 s. Para no saturar al actuador (elamplificador de potencia), la senal de control debe estar dentro del rango de± 200 volt. Disenar un sistema de control optimo cuadratico estacionario deposicion que cumpla las especificaciones pedidas. La seleccion del tiempo demuestreo es a conveniencia del diseno.

Page 210: [-] Control Avanzado - Arturo Rojas Moreno

196 Control Optimo

0 10 20 30 40 50 60 70 80 90 1005

10

15

20

25

30

Vel

ocid

ad (

m/s

)

Tiempo en segundos

0 10 20 30 40 50 60 70 80 90 1000

200

400

600

Tiempo en segundos

Fue

rza

de c

ontr

ol (

N)

Figura 4.32: Velocidad del carro de maquinas y la fuerza de control para elproblema 4.4.

% p8opt2.m SOLUCION DEL PROBLEMA 4.5clear all

% MODELO CONTINUO DE LA PLANTAA=[-0.2 0 0 0

1 0 0 02 0 -2 05 0 0 -5];

B=[10e-3; 0; 0; 0]; C=[0 1 0 0 ]; D=[0];% MODELO LINEAL DISCRETOT = 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 PESOSQ = [1 0 0 0 0

0 100 0 0 00 0 1 0 00 0 0 1 00 0 0 0 3];

R = [0.01];% ECUACION DE RICCATI

Page 211: [-] Control Avanzado - Arturo Rojas Moreno

4.11 Problemas Resueltos 197

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 KKKK = inv(R+H1’*P*H1)*H1’*P*G1;

% SEPARAMOS LA ACCION INTEGRALK = [KK(1) KK(2) KK(3) KK(4)];KI = -KK(5);

% KK = dlqr(G1,H1,Q,R);% CALCULO DE LA MATRIZ DE OBSERVABILIDADNo = [C’ G’*C’ (G’)^2*C’ (G’)^3*C’];rankNo = rank(No); % sistema no es observable

% SIMULACIONN = 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;

endx = G*x + H*U;Y = C*x;y(k) = Y; u(k) = U;

end% GRAFICOSt=linspace(0,N*T,N);subplot(2,1,1)plot(t,y(1:N),t,r(1:N)), gridylabel(’Posicion (m)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(t,u(1:N)), gridxlabel(’Tiempo en segundos’)ylabel(’Voltaje de control’)print -deps -f p8opt2

Problema 4.6

La figura 2.2 muestra dos tanques identicos colocados en cascada. La seccionhorizontal A=9 m2 de cada tanque es constante. El objetivo de control

Page 212: [-] Control Avanzado - Arturo Rojas Moreno

198 Control Optimo

0 5 10 15 20 25 30 35 40−4

−2

0

2

4

Pos

ició

n (

m)

Tiempo en segundos

0 5 10 15 20 25 30 35 40−200

−100

0

100

Tiempo en segundos

Vol

taje

de

cont

rol

Figura 4.33: Posicion del ascensor y la fuerza de control correspondientes alproblema 4.5.

es controlar la altura H2 empleando el flujo Qo. La deduccion del modelolinealizado del proceso se derivo en el ejemplo 2.1. Disenar un controladoroptimo cuadratico estacionario con las especificaciones siguientes: tiempo deestabilizacion menor que 20 s, sobreimpulso menor al 5 % y error nulo enestado estable. El flujo de entrada (la senal de control) no debe sobrepasarlos 3 m3/s. La seleccion del tiempo de muestreo es a conveniencia del diseno.

% p9opt2.m SOLUCION DEL PROBLEMA 4.6clear all

% DEERMINACION DE LAS MATRICES DE LA ECUACION DE ESTADOgam=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 SISTEMAT = 0.2;[G,H]=c2d(A,B,T);

% VERIFICANDO SI LA PLANTA TIENE ACCION INTEGRAL% eigG=eig(G); % NO TIENE POLOS EN z=0;

Page 213: [-] Control Avanzado - Arturo Rojas Moreno

4.11 Problemas Resueltos 199

% ADICIONANDO ACCION INTEGRALG1 = [G zeros(2,1);-C*G 1]; H1 = [H;-C*H];

% CALCULO DE LA GANANCIA DEL CONTROLADORQ = [1 0 0

0 1 00 0 0.02];

R = [2];% OBTENEMOS LA GANANCIA DEL CONTROLADOR APLICANDO dlqr[KK,P]=dlqr(G1,H1,Q,R);

% SEPARAMOS LA ACCION INTEGRALK = [KK(1) KK(2)];KI = -KK(3);

% SIMULACIONN = 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;

endx = G*x + H*U;Y = C(1,:)*x;y(k) = Y; u(k) = U;

end% GRAFICOSt=linspace(0,N*T,N);subplot(2,1,1)plot(t,y(1:N),t,r(1:N)), gridylabel(’Nivel (m)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(t,u(1:N)), gridxlabel(’Tiempo en segundos’)ylabel(’Flujo de control (m^3/s)’)print -deps -f p9opt2

Problema 4.7

El proceso electromecanico mostrado en la figura 3.26 se describe en el pro-blema 3.8. Disenar un sistema de control optimo cuadratico estacionario

Page 214: [-] Control Avanzado - Arturo Rojas Moreno

200 Control Optimo

0 5 10 15 20 25 30 35 400

1

2

3

4

Niv

el (

m)

Tiempo en segundos

0 5 10 15 20 25 30 35 400

0.5

1

1.5

Tiempo en segundos

Flu

jo d

e co

ntro

l (m

^3/s

)

Figura 4.34: Nivel controlado H2 y el flujo de control para el problema 4.6.

para controlar la velocidad angular del eje del motor mediante el voltaje deentrada que puede variar entre ± 100 volt.

% p11opt2.m SOLUCION DEL PROBLEMA 4.7clear all% PARAMETROS GENERALESnn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDASNN = 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 CONTINUOAc = [-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’);

Page 215: [-] Control Avanzado - Arturo Rojas Moreno

4.11 Problemas Resueltos 201

[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 INTEGRALG1 = [G zeros(3,1);-C*G 1];H1 = [H;-C*H];

% CALCULO DE LA GANANCIA DEL CONTROLADORQ = [1 0 0 0

0 1 0 00 0 1 00 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 INTEGRALK = [KK(1) KK(2) KK(3)];KI = -KK(4);

% SIMULACIONN = 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% GRAFICOSt=linspace(0,N*T,N);subplot(2,1,1)plot(t,y(1:N),t,r(1:N)), grid

Page 216: [-] Control Avanzado - Arturo Rojas Moreno

202 Control Optimo

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

0 5 10 15 20 25 30−10

−5

0

5

10

Vel

ocid

ad

(rad

/s)

Tiempo en segundos

0 5 10 15 20 25 30−60

−40

−20

0

20

40

Tiempo en segundos

Vol

taje

de

cont

rol

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

4.12. Problemas Propuestos

Problema 4.8

Demostrar que el valor mınimo de la funcion de costo descrita en la ecuacion4.11):

J =12xT (N)Sx(N) +

12

N−1∑k=0

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

]

Page 217: [-] Control Avanzado - Arturo Rojas Moreno

4.12 Problemas Propuestos 203

esta dada por la expresion:

Jmin =12xT (0)P (0)x(0)

donde los argumentos nulos representan el tiempo discreto nulo inicial.

Problema 4.9

Las ecuaciones del modelo linealizado para controlar la posicion del canonmontado en la torreta de un tanque (ver figura 3.28) empleando un actuadorhidraulico se detallan en el problema 3.9.

(a) Disenar un sistema de control optimo estacionario para controlar elangulo de elevacion θ con las especificaciones siguientes: tiempo deestabilizacion menor de 2 s, sobreimpulso y error en estado estacionarionulos. Los disturbios tipo escalon pueden actuar simultaneamente ono y pueden ser positivos o negativos. Para cada caso, el sistema decontrol optimo debe ser capaz de minimizar sus efectos. La selecciondel tiempo de muestreo es a conveniencia del diseno.

(b) Lo mismo que (a), pero en este caso para controlar el angulo azimutal.

Problema 4.10

El proceso columna de destilacion se describe en el problema 3.10 y semuestra en la figura 3.29. Disenar un sistema de control optimo multiva-riable estacionario para controlar las temperaturas residuales ∆T1 = c13∆z1y ∆T2 = c24∆z2 con las especificaciones siguientes: error en estado esta-cionario nulo, sobreimpulso menor al 5 % y tiempo de estabilizacion menorque 0.1 horas. Considerar disturbios unitarios actuando sobre el procesomultivariable. La seleccion del tiempo de muestreo es a conveniencia deldiseno.

Problema 4.11

La figura 3.31 muestra el proceso servomotor con carga no lineal descritoen la seccion 3.3, en donde la carga no lineal posee ahora dos grados delibertad con Lo = 2L1/3 y Mo=0.02 kg. La union de la carga con el ejedel servomotor no es flexible. Las ecuaciones que describen la dinamica delsistema son materia del problema 3.12. Disenar un sistema de control optimoestacionario para controlar simultaneamente las posiciones θ y τ con mınimotiempo de estabilizacion y mınimo sobreimpulso.

Page 218: [-] Control Avanzado - Arturo Rojas Moreno

204 Control Optimo

Problema 4.12

La figura 3.32 muestra el proceso pendulo doble no lineal, el cual es una ex-tension del pendulo simple descrito en la seccion 3.1. El acoplamiento entrelos dos pendulos de igual longitud no es flexible. Las ecuaciones que describenla dinamica del sistema son materia del problema propuesto 3.13. Disenar unsistema de control optimo no estacionario para controlar simultaneamentelas posiciones θ y τ con mınimo tiempo de estabilizacion y mınimo sobreim-pulso, de modo tal que el pendulo doble permanezca en posicion vertical.

Problema 4.13

La figura 3.33 muestra el proceso doble grua-puente no lineal, el cual es unaextension del proceso grua-puente escrito en la seccion 3.2. El acoplamientoentre las dos secciones iguales de la varilla no es flexible. Las ecuaciones quedescriben la dinamica del sistema son materia del problema propuesto 3.14.Considerar que la carga esferica es de 0.02 kg. Disenar un sistema de controloptimo estacionario para controlar simultaneamente las posiciones θ y τ conmınimo tiempo de estabilizacion y mınimo sobreimpulso, de modo tal que lagrua-puente doble permanezca en posicion vertical cuando el carro realizaun recorrido predeterminado..

Problema 4.14

En la seccion anterior se disenaron sistemas de control optimo estacionariopara varios procesos. Ahora abordaremos el diseno de sistemas de controloptimo no estacionarios.

Disenar un sistema de control optimo no estacionario; es decir, determi-nar la ley de control u(k) que minimice la siguiente funcion de costo:

J =12[xT (N)Sx +

12

N−1∑k=0

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

para una condicion inicial x(0) = c arbitraria y para un valor de N parael cual la o las salidas controladas cumplan las especificaciones de diseno.Seleccionar apropiadamente el tiempo de muestreo y las matrices de pon-deracion. Graficar la o las salidas controladas y las correspondientes senalesde control. Calcular tambien el valor mınimo de la funcion de costo. Realizarlos calculos requeridos anteriormente para cada uno de los procesos tratadosen los problemas 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 y 4.7.

Page 219: [-] Control Avanzado - Arturo Rojas Moreno

Capıtulo 5

Control Adaptivo

En este capıtulo se desarrolla un procedimiento para disenar un sistema decontrol adaptivo con autosintonizacion, con la capacidad de controlar procesosno lineales univariables (de una entrada y una salida) operando en la presenciade cargas no lineales. Tales procesos pueden ser representados por ecuacionesdiferenciales no lineales, donde precisamente los terminos no lineales complicanlos aspectos analıticos de modelado del proceso y de diseno del controlador.Sin embargo, basado en el correspondiente modelo lineal del proceso, podemosestructurar un sistema de control adaptivo con autosintonizacion combinan-do algoritmos lineales de control con procedimiento para estimar en linea losparametros y los estados del proceso.

En la antepenultima seccion de este capıtulo se presenta una aplicacionpara demostrar la validez del procedimiento de diseno: control de posicion deun servomotor D.C. expuesto a cargas no lineales. La penultima seccion, pro-blemas resueltos, esta dedicada al diseno de sistemas de control adaptivo conautosintonizacion para diferentes procesos. La ultima seccion propone proble-mas de diseno. Todos los archivos correspondientes a los ejercicios, problemas,disenos, simulaciones y software desarrollados se pueden descargar del sitio:http:/fiee.uni.edu.pe/728681F.

5.1. Introduccion

Los sistemas de control adaptivo ajustan su comportamiento a las cam-biantes propiedades del proceso controlado y de las senales que interactuansobre dicho proceso. Por el contrario, los sistemas de control fijos se ca-racterizan por la presencia de una ley de control invariable con el tiempo.

Page 220: [-] Control Avanzado - Arturo Rojas Moreno

206 Control Adaptivo

La investigacion sobre controladores adaptivos se ha centrado en dos gru-pos principales: controladores adaptivos con un modelo referencial y contro-ladores con autosintonizacion. En este capıtulo se emplea la configuracionde un sistema de control adaptivo con autosintonizacion mostrado en la fi-gura 5.1. Tal sistema combina en su diseno un metodo de estimacion deparametros (el de los mınimos cuadrados recursivo mejorado), una tecnicade estimacion de estados (el filtro de Kalman), una representacion linealdel modelo del proceso, y una ley de control (el controlador proporcional-integral optimo cuadratico con realimentacion de estados). El objetivo delcontrol es determinar una fuerza de control capaz de minimizar la diferenciaentre la salida del proceso y la senal de referencia.

DE ESTADOS

ESTIMADOR ESTIMADOR DE

CONTROLADOR CON

ESTIMACION

PARAMETROS

MODELO

LINEAL

NO LINEAL

PROCESO

DE U

Y Y

Uu

U

+

+

DISTURBIOS

+

-

x θ

AUTOSINTONIZACION

^ ^

Figura 5.1: Configuracion del sistema de control con autosintonizacion.

El sistema de control con autosintonizacion mostrado en la figura 5.1opera como sigue: luego de cada tiempo de muestreo, el vector estimadode parametros θ se actualiza empleando los datos proporcionados por laentrada U del proceso y por la salida Y del mismo. Luego, los elementosde θ se usan para recuperar el modelo lineal del proceso, lo cual permiteestimar el vector de estado del modelo del proceso x (empleando un filtrode Kalman) y el valor de equilibrio U de la ley de control actual U . Talesresultados se usan luego para computar la ley de control residual u y paraactualizar la ley de control actual U a partir de la relacion U = U + u.

Este capıtulo esta organizado como sigue. La seccion 5.2 trata con elproblema de modelar procesos no lineales usando modelos lineales. Proce-dimientos para estimar en lınea (“on-line”) los parametros y estados del

Page 221: [-] Control Avanzado - Arturo Rojas Moreno

5.2 Modelando Procesos No Lineales 207

modelo del proceso se desarrollan en la seccion 5.3, mientras que el algo-ritmo del controlador con autosintonizacion se deriva en la seccion 5.4. Laseccion 5.5 presenta el procedimiento para disenar un sistema de control conautosintonizacion. Una aplicacion se proporciona en la seccion 5.6: controlde posicion de un servomotor sujeto a cargas no lineales.

5.2. Modelando Procesos No Lineales

Consideremos el siguiente proceso dinamico continuo:

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 decontrol, respectivamente. La funcion no lineal f(.) puede tambien contenerdisturbios v(.) en los estados. De la ecuacion (5.1), es posible obtener elmodelo 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 dimension n×n, B es la matriz de controlde dimension n× 1, C es la matriz de salida de dimension 1×n, y ∆A, ∆By ∆C son las correspondientes incertidumbres acotadas con dimensionesapropiadas. Ademas, v(X, t) es un vector no lineal de disturbios de ordenn actuando sobre los estados, w(X, t) es un disturbio no lineal de ordenuno 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 obtienefijando en cero todas las incertidumbres y todos los disturbios en la ecuacion(5.1). Muestreando dicho modelo nominal, podemos obtener la siguienterepresentacion:

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 mismasdimensiones que las matrices A y B, respectivamente. La correspondienteecuacion polinomial residual toma la forma:

A(z−1)y(z) = B(z−1)u(z) (5.4)

Page 222: [-] Control Avanzado - Arturo Rojas Moreno

208 Control Adaptivo

donde z es el operador de desplazamiento, con:

A(z−1) = 1 + a1z−1 + . . .+ anz

−n

B(z−1) = b1z−1 + . . .+ bnz

−n (5.5)

Empleando ahora las relaciones residuales: y = Y−Y , x = X−X y u = U−Uen las ecuaciones (5.3) y (5.4) obtenemos:

x(k + 1) = Gx(k) +Hu(k); y(k) = Cx(k) (5.6)

A(z−1)Y (k) = B(z−1)U(k) + C (5.7)

donde la constante C se determina de:

C = (1 + a1 + . . .+ an)Y − (b1 + . . .+ bn)U (5.8)

5.3. Procedimientos de Estimacion

Esta seccion presenta los procedimientos para estimar (o identificar) enlınea los parametros y los estados del modelo del proceso.

5.3.1. El Metodo de los Mınimos Cuadrados Recursivo

Para estimar los parametros del modelo del proceso usaremos las senalesactuales U(k) e Y (k) en lugar de sus desviaciones u(k) e y(k). Para ello, ladescripcion en el espacio de estado dada por la ecuacion (5.7) tiene que serreordenada para tomar la forma siguiente:

Y (k) = ψT (k)θ(k) (5.9)

donde el vector de informacion (o de medicion) ψ contiene los valores pre-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] (5.10)

y el vector θ contiene los parametros a ser estimados, a saber:

θ(k) = [−a1(k) . . .− an(k) b1(k) . . . bn(k) C]T (5.11)

Notar que en la ecuacion (5.9), el orden del vector de informacion y el ordendel vector de parametros es 2n+1; es decir, dichos vectores han incrementado

Page 223: [-] Control Avanzado - Arturo Rojas Moreno

5.3 Procedimientos de Estimacion 209

su orden en uno. La ecuacion (5.7) con z = 1 (propiedad del valor final)representa la condicion de estado estable, es decir:

A(1)Y = B(1)U + C (5.12)

El algoritmo basico de los mınimos cuadrados recursivo puede implementarseen la forma siguiente:

1) Obtener el vector de parametros inicial θ(0) usando los valores de losparametros del modelo del proceso (ecuacion (5.5)).

2) Obtener el valor inicial del parametro C(0) empleando la ecuacion(5.8), considerando U = 0 e Y igual a la senal de referencia.

3) La matriz de covarianza inicial P puede tener la forma P = αI, dondeI es la matriz identidad y α 1.

4) Tomar nuevas mediciones de Y (k) y de U(K) en el proceso, para ob-tener una nueva ecuacion de la forma dada en (5.9).

5) Computar el error de estimacion (ver ecuaciones (5.10) y (5.11)):

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) = i(k)/[λ+ j(k)]

θ(k + 1) = θ(k) + γ(k)e(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 parametros del proceso servomotor D.C. con carga no linealdescrito en la seccion 3.3, empleando el metodo de los mınimos cuadradosrecursivo. Emplee el modelo lineal de segundo orden del proceso y comosenal excitadora use un escalon de magnitud 0.4. Grafique la respuesta delproceso.

Solucion: El programa ejem5 1.m estima los parametros para el procesopedido. La figura 5.2 grafica la respuesta Y del proceso a un escalon U = 0.4.Las figuras 5.3 y 5.4 muestran los parametros estimados. Podemos observarque cada parametro estimado converge a un valor que es aproximadamenteel valor del correspondiente parametro del modelo discreto.

Page 224: [-] Control Avanzado - Arturo Rojas Moreno

210 Control Adaptivo

% ejem5_1.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO% DE LOS MINIMOS CUADRADOS RECURSIVOclear 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 ORDENAc = [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 ORDENT = 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 PARAMETROSalfa=1000; Pi = alfa*eye(5); % MATRIZ P INICIALtheta_p = [-a1 -a2 b1 b2]’; % PARAMETROS DEL PROCESOthetai = [0 0 0 0 0]’; % PARAMETROS INICIALESlambda = 0.99; % FACTOR DE MEMORIAY(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0;

% PROCEDIMIENTO DE IDENTIFICACIONMm = 1000;for r = 1:Mmk = 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 PROCESOpsi = [psi_p;1]; % VECTOR DE DATOSe = Y(k)-psi’*thetai; % ERROR DE ESTIMACIONi = Pi*psi;j = psi’*i;gamma = i/(lambda + j);

Page 225: [-] Control Avanzado - Arturo Rojas Moreno

5.3 Procedimientos de Estimacion 211

theta = thetai+gamma*e; % VECTOR DE PARAMETROSae1(r) = -theta(1); % PARAMETRO a1 ESTIMADOae2(r) = -theta(2); % PARAMETRO a2 ESTIMADObe1(r) = theta(3); % PARAMETRO b1 ESTIMADObe2(r) = theta(4); % PARAMETRO b2 ESTIMADOP = (eye(5) - gamma*psi’)*Pi/lambda;

% ACTUALIZACIONthetai = theta;Pi = P;end

% GRAFICOSq=0:Mm-1;figure(1)subplot(2,1,1)plot(q,U(1:Mm)); gridylabel(’SE~NAL EXCITATRIZ U’)xlabel(’MUESTRAS DISCRETAS k = 0.01 s’)subplot(2,1,2)plot(q,Y(1:Mm)); gridylabel(’RESPUESTA Y DEL PROCESO’)xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)’)print -deps -f ejem5_1afigure(2)plot(q,ae1,q,ae2,’-.’); gridxlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s) ’)ylabel(’PARAMETROS ESTIMADOS’)print -deps -f ejem5_1bfigure(3)plot(q,be1,q,be2,’-.’); gridxlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)’)ylabel(’PARAMETROS ESTIMADOS’)print -deps -f ejem5_1c

5.3.2. Mınimos Cuadrados Recursivo Mejorado

El algoritmo basico de los mınimos cuadrados recursivo se encuentra bas-tante difundido. Sin embargo, dicho algoritmo puede presentar problemaspotenciales de caracter numerico que podrıan afectar el diseno final del con-trolador con autosintonizacion. Por tal motivo, en este capıtulo se empleael metodo de los mınimos cuadrados recursivo mejorado propuesto en [5], elcual puede implementarse en la forma siguiente:

Page 226: [-] Control Avanzado - Arturo Rojas Moreno

212 Control Adaptivo

0 100 200 300 400 500 600 700 800 900 10000

0.1

0.2

0.3

0.4

SE

ÑA

L E

XC

ITA

TR

IZ U

MUESTRAS DISCRETAS k = 0.01 s

0 100 200 300 400 500 600 700 800 900 10000

0.5

1

1.5

2

2.5

RE

SP

UE

ST

A Y

DE

L P

RO

CE

SO

MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

Figura 5.2: Respuesta del modelo lineal del proceso a un escalon de magnitudU = 0.4.

0 100 200 300 400 500 600 700 800 900 1000−2

−1.5

−1

−0.5

0

0.5

1

MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

PA

RA

ME

TR

OS

E

ST

IMA

DO

S

Figura 5.3: Parametros estimados a1(k) (curva solida) y a2(k).

Page 227: [-] Control Avanzado - Arturo Rojas Moreno

5.3 Procedimientos de Estimacion 213

0 100 200 300 400 500 600 700 800 900 10000

0.005

0.01

0.015

0.02

0.025

0.03

0.035

0.04

0.045

MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

PA

RA

ME

TR

OS

E

ST

IMA

DO

S

Figura 5.4: Parametros estimados b1(k) (curva solida) y b2(k).

1) Obtener el vector de parametros inicial θ(0) usando los valores de losparametros del modelo del proceso dadas en la ecuacion (5.4).

2) Obtener el valor inicial del parametro C(0) empleando la ecuacion(5.8), considerando U = 0 e Y igual a la senal de referencia.

3) La matriz de covarianza inicial P puede tener la forma P = αI, dondeI es la matriz identidad y α 1.

4) Tomar nuevas mediciones de Y (k) y de U(K) en el proceso, para ob-tener una nueva ecuacion de la forma dada en (5.9).

5) Computar: ρ(k) = max(1, ‖ψ(k)‖); ψn = ψ/ρ(k)

6) Determinar la matriz N(k) aplicando factorizacion Cholesky en:

N(k)N(k)T = P (k)

7) Determinar la matriz diagonal de escalamiento S(k) con elementos sjj .Tal matriz minimiza el numero condicional del producto S(k)N(k)siempre que sjj = 1/njj , donde cada njj se obtiene tomando el valorabsoluto de la suma de los elementos de la fila j de N(k).

Page 228: [-] Control Avanzado - Arturo Rojas Moreno

214 Control Adaptivo

8) Computar:PS(k) = S(k)P (k)S(k)

ψnS = [S(k)]−1ψn

r(k) = 1 + ψ TnS(k)PS(k − 1)ψnS(k)

λ(k) = 1 − 12

[r(k) −

√r2(k) − 4‖PS(k − 1)ψnS(k)‖2

tr PS(k − 1)

]

en(k) = Y (k)/ρ(k) − ψ Tn (k) θ(k − 1)

j(k) = [ψTnS(k + 1)PS(k)ψnS(k + 1) + λ(k)]

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

HnS(k+1) = PS(k)ψnS(k+1)× [ψTnS(k+1)PS(k)ψnS(k+1)+λ(k)]−1

PS(k + 1) = [I −HnS(k + 1)ψTnS(k + 1)]PS(k)/λ(k)

tt = abs

[max eig(PS)min eig(PS)

]

9) Implementar el criterio para parar la estimacion y para encontrar lanueva matriz de escalamiento Nnew como sigue: sabiendo que tt esel numero condicionante de PS , si tt ≤ τ (cota inferior), parar laestimacion; en otro caso, si tt ≥ κ (cota superior), determinar Nnew(k)(a partir de la relacion PS = NnewN

Tnew), calcular los elementos nnewjj

(valor absoluto de la suma de los elementos de las filas de Nnew(k)),determinar la matriz diagonal Snew con elementos snewjj = 1/nnewjj , ycalcular la matriz PnewS = SnewPSSnew. Finalmente, actualizar: P =PnewS .

Ejemplo 5.2

Estimar los parametros del proceso servomotor D.C. con carga no linealdescrito en la seccion 3.3, empleando el metodo de los mınimos cuadradosrecursivo mejorado. Emplee el modelo no lineal de segundo orden del pro-ceso y como senal excitadora use un escalon de magnitud 0.4. Grafique larespuesta del proceso.

Solucion: El programa ejem5 2.m estima los parametros para el procesopedido. La figura 5.5 grafica la respuesta Y del proceso a un escalon U= 0.4. Las figuras 5.6 y 5.7 muestran los parametros estimados. Podemosobservar que cada parametro estimado converge a un valor constante.

Page 229: [-] Control Avanzado - Arturo Rojas Moreno

5.3 Procedimientos de Estimacion 215

% ejem5_2.m ESTIMACION DE PARAMETROS EMPLEANDO EL METODO% DE LOS MINIMOS CUADRADOS RECURSIVO MEJORADOclear 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 ORDENAc = [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 ORDENT = 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 PARAMETROSalfa=1000; N = 5; Pi = alfa*eye(N); % MATRIZ P INICIALtheta_p = [-a1 -a2 b1 b2]’; % PARAMETROS DEL PROCESOthetai = [-a1/3 -a2/2 3*b1 2*b2 0]’; % PARAMETROS INICIALESlambda = 0.99; % FACTOR DE MEMORIAY(1) = 0; Y(2) = 0; U(1) = 0; U(2) = 0;x1 = 0; x2 = 0;

% PROCEDIMIENTO DE IDENTIFICACIONMm = 1000;for r = 1:Mmk = r + 2;U(k) = 0.4;

% MODELO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADO DIRECTAMENTETN = 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;

Page 230: [-] Control Avanzado - Arturo Rojas Moreno

216 Control Adaptivo

% PROCEDIMIENTO DE IDENTIFICACIONpsi_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 ESTIMADOae2(r) = -theta(2); % PARAMETRO a2 ESTIMADObe1(r) = theta(3); % PARAMETRO b1 ESTIMADObe2(r) = theta(4); % PARAMETRO b2 ESTIMADOHns = 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;

endend

% GRAFICOSq=0:Mm-1;figure(1)subplot(2,1,1)plot(q,U(1:Mm))ylabel(’SE~NAL EXCITATRIZ U’)gridsubplot(2,1,2)plot(q,Y(1:Mm))ylabel(’RESPUESTA Y DEL PROCESO’)xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)’)grid

Page 231: [-] Control Avanzado - Arturo Rojas Moreno

5.3 Procedimientos de Estimacion 217

print -deps -f ejem5_2afigure(2)plot(q,ae1,q,ae2)text(250,0.55,’a2’);text(250,-0.7,’a1’);xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)’)ylabel(’PARAMETROS ESTIMADOS’)gridprint -deps -f ejem5_2bfigure(3)plot(q,be1,q,be2)text(250,2.5e-3,’b1’);text(250,-3e-3,’b2’);xlabel(’MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)’)ylabel(’PARAMETROS ESTIMADOS’)gridprint -deps -f ejem5_2c

0 100 200 300 400 500 600 700 800 900 10000

0.1

0.2

0.3

0.4

SE

ÑA

L E

XC

ITA

TR

IZ U

0 100 200 300 400 500 600 700 800 900 10000

0.05

0.1

0.15

RE

SP

UE

ST

A Y

DE

L P

RO

CE

SO

MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

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

Page 232: [-] Control Avanzado - Arturo Rojas Moreno

218 Control Adaptivo

0 100 200 300 400 500 600 700 800 900 1000−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6a2

a1

MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

PA

RA

ME

TR

OS

E

ST

IMA

DO

S

Figura 5.6: parametros estimados a1(k) y a2(k).

0 100 200 300 400 500 600 700 800 900 1000−6

−4

−2

0

2

4

6

8

10

12

14x 10

−3

b1

b2

MUESTRAS (CADA MUESTRA EQUIVALE A 0.01 s)

PA

RA

ME

TR

OS

E

ST

IMA

DO

S

Figura 5.7: parametros estimados b1(k) y b2(k).

Page 233: [-] Control Avanzado - Arturo Rojas Moreno

5.4 La Ley de Control 219

5.3.3. Estimacion de Estados

De la ecuacion (5.6) podemos obtener el siguiente modelo nominal per-turbado del proceso:

x(k + 1) = Gx(k) +Hu(k) + v(k)y(k) = Cx(k) + w(k) (5.13)

El procedimiento de estimacion descrito en la subseccion anterior nos pro-porciona el vector de parametros estimado del proceso θ(k). Usando loselementos de dicho vector de parametros, podemos reconstruir las matricesestimadas G(k), H(k) y C(k). El vector de estado estimado x(k) puede serobtenido empleando un filtro de Kalman [6], con ecuacion de observacion:

x(k) = x(k) +Ko(k)[y(k) − C(k)x(k)] (5.14)

y ecuacion de actualizacion de estados:

x(k + 1) = G(k)x(k) + H(k)u(k) (5.15)

En la ecuacion (5.14), la matriz de ganancia Ko(k) se calcula de:

Ko(k) = Po(k)CT (k)[C(k)Po(k)CT (k) +Ro]−1 (5.16)

donde Po(k) es la matriz definida positiva, solucion unica de la siguienteecuacion matricial discreta asociada de Riccati:

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 definidas positivas correspondien-te a los disturbios v y w, respectivamente.

5.4. La Ley de Control

Es bastante conocido [6] que el controlador proporcional optimo cuadraticoes una matriz de ganancia Kx que nos permite formular la siguiente ley decontrol u = −Kxx(k). Dicha matriz es el resultado de la minimizacion de lafuncion de costo:

I =∞∑

k=0

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

Page 234: [-] Control Avanzado - Arturo Rojas Moreno

220 Control Adaptivo

sujeto a la ecuacion de restriccion:

x(k + 1) = Gx(k) +Hu(k)

donde la matriz Q = QT es semidefinida positiva y la matriz R es definidapositiva. En la subseccion 4.5 se detalla como seleccionar estas matrices. Laganancia Kx se obtiene de:

Kx = (R+HTSH)−1HTSG (5.19)

donde S es la unica matriz definida-positiva solucion de la siguiente ecuacionmatricial discreta asociada de Riccati:

0 = S −GTSG+GTSHKx (5.20)

Para mejorar el rendimiento del controlador proporcional, es posible adi-cionar accion integral a dicho controlador. Definiendo la variable z(k) comola integral (sumatoria) del error [Y (k) − Y (k)]:

z(k) =k−1∑i=0

[Y (i) − Y (i)] =k−1∑i=0

[−y(i)]; z(k + 1) =k∑

i=0

[−y(i)]

entonces:z(k + 1) = z(k) − y(k) = z(k) − Cx(k) (5.21)

de modo que la representacion en el espacio de estado del sistema aumentadotoma la forma siguiente:

xa(k + 1) = Gaxa(k) +Hau(k) (5.22)y(k) = Caxa(k) (5.23)

donde el superındice a significa aumentado. El vector xa y las matrices Aa,Ba y Ca poseen la forma:

xa(k) =[

x(k)z(k)

]; Ga(k) =

[G 0−C I

]

Ha =[H0

]; Ca = [C 0] (5.24)

Por consiguiente, el problema es determinar la matriz de ganancia Ka comoresultado de la minimizacion de la siguiente funcion de costo:

Ia =∞∑

k=0

[xa)T (k)Qaxa(k) + u2(k)R] (5.25)

Page 235: [-] Control Avanzado - Arturo Rojas Moreno

5.5 Procedimiento de Diseno 221

donde la matriz Qa = [Qa]T es semidefinida positiva. La ganancia Ka seobtiene de:

Ka = R+ [Ha]TP aHa−1[Ha]TP aGa (5.26)

En la ecuacion (5.26), P a es la unica matriz definida-positiva solucion de lasiguiente ecuacion matricial discreta asociada de Riccati:

P a = Qa + [Ga]TP aGa − [Ga]TP aHaKa (5.27)

Por consiguiente, la ley de control del controlador optimo cuadratico pro-porcional integral viene a ser:

u(k) = −Kaxa(k) (5.28)

y los parametros de ponderacion de rendimiento son R y Qa.

5.5. Procedimiento de Diseno

El procedimiento para disenar el sistema de control con autosintonizacionilustrado en la figura 5.1 es como sigue:

1) Formular el problema (definir especificaciones de diseno).

2) Usando toda la informacion disponible acerca del proceso no lineal,determinar sus modelos lineal y no lineal (seccion 5.2).

3) Implementar el metodo de los mınimos cuadrados recursivo mejorado(subseccion 5.3.2) para estimar los parametros del modelo del proceso.

4) Implementar el procedimiento desarrollado en la subseccion 5.3.3 paraestimar los estados del modelo del proceso.

5) Implementar la ley de control residual u(k) (seccion 5.4) dada por laecuacion (5.28), computar U(k) usando la ecuacion (5.8), y actualizarla ley de control actual empleando la relacion U(k) = u(k) + U(k).

6) Simular el sistema de control adaptivo variando las matrices de pon-deracion R, Qa, Ro y Qo, hasta obtener un rendimiento satisfactoriodel sistema.

7) Implementar el hardware.

8) Implementar el software de control.

9) Realizar pruebas de funcionamiento (resultados experimentales).

Page 236: [-] Control Avanzado - Arturo Rojas Moreno

222 Control Adaptivo

5.6. Control Adaptivo de un Servomotor No Li-neal

5.6.1. Formulacion del Problema

El servomotor D.C. con carga no lineal (discutido ampliamente en laseccion 3.3) es un proceso de una entrada y una salida que puede ser contro-lado por el voltaje de armadura. La carga no lineal es una varilla metalicaacoplada al eje del servomotor, a manera de un brazo robotico de un gradode libertad. En el extremo de la varilla se pueden acoplar cargas adicionales.El objetivo del control es disenar e implementar un sistema de control adap-tivo con autosintonizacion, de modo tal que la varilla se posicione en unareferencia predeterminada con mınimo sobreimpulso en su respuesta, a pe-sar de la presencia de la carga no lineal y de las no linealidades inherentesdel proceso como son las fricciones estatica y de Coulomb, y saturacion enel amplificador del servomotor.

5.6.2. El Modelo del Proceso

La figura 3.9 presenta la estructura del proceso no lineal a controlar. Latabla 3.2 describe las variables y los valores de los parametros. Vimos en elejemplo 5.1 que el proceso no lineal puede ser descrito mediante un modelolineal en el espacio de estado de la forma:

x = Acx +Bcu; y = Ccx

donde:

Ac =[

0 1−N

M −( BM + Kn2E

MR )

]Bc =

[0

KnKactMR

]; Cc =

[1 0

](5.29)

La funcion de transferencia de pulso Gp(z), para un tiempo de muestreo de0.01 s (o lo que es lo mismo, una frecuencia de muestreo de Fs = 100 Hz),tiene la forma:

Gp(z) =y(z)u(z)

=b1z + b2

z2 + a1z + a2=

b1z−1 + b2z

−2

1 + a1z−1 + a2z−2(5.30)

y su correspondiente ecuacion de diferencias es:

y(k) = −a1y(k − 1) − a2y(k − 2) + b1u(k − 1) + b2u(k − 2) (5.31)

Page 237: [-] Control Avanzado - Arturo Rojas Moreno

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 par-tiendo de la ecuacion (5.30), un mismo proceso puede adoptar multiplesrepresentaciones 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 respectiva-mente, con dimensiones apropiadas. La representacion canonica controlabledel proceso (primera forma, ecuacion (3.100) con b0 = 0) tiene la forma:

G =[

0 1−a2 −a1

]; H =

[01

]C =

[b2 − a2b0 b1 − a1b0

]; D = [0] (5.32)

5.6.3. Estimacion de Parametros

Para estimar (o identificar) los parametros del modelo del proceso, em-pleamos el metodo de los mınimos cuadrados recursivo mejorado desarrolla-do en la subseccion 5.3.2. Como primer paso calculamos el vector inicial deparametros (ecuacion (5.5):

θ(0) =[ −a1 −a2 b1 b2 C(0)

]Tdonde el valor inicial de C(0) (ecuacion (5.8) con U = 0 e Y igual a la senalde referencia) es:

C = (1 + a1 + a2)Y

En el tercer paso fijamos la matriz de covarianza inicial P de orden 5:

P =

α 0 0 0 00 α 0 0 00 0 α 0 00 0 0 α 00 0 0 0 α

; α = 1000 (5.33)

Como cuarto paso obtenemos nuevas mediciones de Y (k) y de U(K) (verecuacion (5.9)) y formulamos:

Y (k) = ψT (k)θ(k)

ψT (k) = [Y (k − 1) Y (k − 2) U(k − 1) U(k − 2) 1]

θ(k) = [−a1(k) − a2(k) b1(k) b2(k) C(k)]T

Con los datos determinados hasta aquı, ahora podemos implementar losotros pasos (ver ejemplo 5.2) con Cmin = 15 y Cmax = 100.

Page 238: [-] Control Avanzado - Arturo Rojas Moreno

224 Control Adaptivo

5.6.4. Estimacion de Estados

El procedimiento para la estimacion de estados se describe en la subsec-cion 5.3.3. El procedimiento de estimacion (subseccion anterior) nos propor-ciona el vector de parametros estimado del proceso, a saber:

θ(k) = [−a1(k) − a2(k) b1(k) b2(k) C(k)]T

Usando los elementos de dicho vector de parametros, podemos reconstruir lasmatrices estimadas G(k), H(k) y C(k) correspondientes a la representacioncanonica controlable (ecuacion (5.32)):

G(k) =[

0 1−a2(k) −a1(k)

]; H(k) =

[01

]

C(k) =[b2(k) b1(k)

]; D(k) = [0]

Las ecuaciones del filtro de Kalman para estimar el vector de estado x son(ver ecuaciones (5.14), (5.15) y (5.16)):

x(k) = x(k) +Ko(k)[y(k) − C(k)x(k)] (5.34)

x(k + 1) = G(k)x(k) + H(k)u(k) (5.35)

Ko(k) = Po(k)CT (k)[C(k)Po(k)CT (k) +Re]−1 (5.36)

Para cada muestra discreta, el programa de simulacion disadap.m (seccion5.6.7) calcula las matrices Po(k) y Ko(k) empleando las matrices de cova-rianza 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 cuadraticocon realimentacion de estados (seccion 5.4), la representacion en el espaciode estado aumentado toma la forma siguiente (ecuacion (5.23)):

xa(k + 1) = Ga(k)xa(k) +Ha(k)u(k); y(k) = Ca(k)xa(k)

donde:

xa(k) =[

x(k)z(k)

]; Ga(k) =

[G 0−C I

]

Ha =[H0

]; Ca = [C 0]

Page 239: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 225

La matriz de control Ka se obtiene de:

Ka(k) = R+ [Ha(k)]TP a(k)Ha(k)−1[Ha(k)]TP a(k)(k)Ga(k)

El programa disadap.m calcula las matricesKa(k), Ga(k) y Ha(k) para cadatiempo de muestreo. En el software de control implementado, la matriz P a(k)se obtiene luego de iterar la ecuacion de Riccati 20 veces en cada perıodo demuestro. Los valores de R y Qa para la simulacion son:

R = 0,45; Qa =

0,05 0 0

0 0,01 00 0 0,01

; (5.37)

5.6.6. La Ley de Control Residual

Para el sistema de control a lazo cerrado podemos tomar la senal Y (k)igual a la referencia para todo k. Ası, podemos calcular la ley de controlresidual empleando la relacion u(k) = U(k) − U(k) (seccion 5.4), dondeU(k) se halla en lınea a partir de la ecuacion (5.8), como sigue:

U(k) = [b1(k) + b2(k)]−1[1 + a1(k) + a2(k)]Y (k) − C(k)

Finalmente, actualizamos la ley de control actual: U(k) = u(k) + U(k).

5.6.7. Simulacion del Sistema de Control Adaptivo

El siguiente programa disadap.m resume todos los pasos descritos anteri-ormente para simular el sistema de control adaptivo. Es importante recalcarque los algoritmos de control lineal estan siendo aplicados al modelo nolineal del proceso, con el fin de darle mayor realismo al proceso de simu-lacion. La simulacion incluye la estrategia para no saturar el amplificador,pero no incluye la compensacion de la no linealidad provocada por la friccionde Coulomb debido a que no es necesario (conforme a los resultados de lasimulacion). El programa disadap.m es autoexplicativo.

% disadap.m SIMULACION DEL SISTEMA DE CONTROL DE POSICION% ADAPTIVO CON AUTOSINTONIZACIONclear 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;

Page 240: [-] Control Avanzado - Arturo Rojas Moreno

226 Control Adaptivo

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

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 ORDENAc = [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 ORDENT = 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 CONTROLABLEa11 = 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 INICIALESY(1) = 0; Y(2) = 0; Y(3) = 0; % SALIDA ACTUALy(1) = 0; y(2) = 0; % SALIDA RESIDUALU(1) = 0; U(2) = 0; U(3) = 0; % SE~NAL DE CONTROL ACTUALu(1) = 0; u(2) = 0; % SE~NAL DE CONTROL RESIDUALxmenos = zeros(2,1); % VECTOR DE OBSERVACION INICIALz=0; % ACCION INTEGRAL INICIALX1 = 0; X2 = 0; % ESTADOS ACTUALES

% CONDICIONES INICIALES DE LOS PARAMETROSRef = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIAfrec = 0.007; % FRECUENCIA DE LA SE~NAL DE REFERENCIACe = (1 + a1 + a2)*Ref; % VALOR INICIAL DE Cethi = [-a1 -a2 b1 b2 Ce]’; % VECTOR INICIAL DE PARAMETROSalfa=1000; Pi = alfa*eye(5); % MATRIZ DE COVARIANZA INICIALlamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIAcmax = 100; cmin = 10; % UMBRALES DE ESTIMACION

Page 241: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 227

% PARAMETROS DE OPTIMIZACIONQo = 0.01; Ro = 0.04; % PARA EL FILTRO DE KALMANR = 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:Mmt = r + 2;

% SE~NAL DE REFERENCIAYo(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 CONTROLABLEae1 = -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);

Page 242: [-] Control Avanzado - Arturo Rojas Moreno

228 Control Adaptivo

% CALCULO DE LA GANANCIA Ko DEL ESTIMADOR DE KALMANKo = dlqe(GE,HE,CE,Qo,Ro);xmas = xmenos + Ko*(y(t) - CE*xmenos); % OBSERVACIONz = z -CE*xmas; % ACCION INTEGRAL

% CALCULO DE LA GANANCIA Ka DEL CONTROLADOR OPTIMOGa = [GE zeros(2,1);-CE 1];Ha = [HE;0];Ca = [CE 0];Ka = dlqr(Ga,Ha,Qa,R);

% CALCULO DE LA LEY DE CONTROL RESIDUALu(t) = - Ka*[xmas;z];

% ACTUALIZANDO ESTADOSxmenos = 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 SATURACIONif(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 **************% GRAFICOSejex = linspace(0,Mm*T,Mm);subplot(2,1,1)plot(ejex,Yo(1:Mm),ejex,Y(1:Mm)); gridylabel(’Posicion Y (rad)’)subplot(2,1,2)plot(ejex,U(1:Mm)); gridylabel(’Se~nal de control U (voltios)’)xlabel(’Tiempo en segundos’)print -f -deps simsca % CREA simsca.eps

Page 243: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 229

0 2 4 6 8 10 12 14 16 18 20−2

−1

0

1

2

Pos

ició

n Y

(ra

d)

0 2 4 6 8 10 12 14 16 18 20−2

−1

0

1

2

Señ

al d

e co

ntro

l U (

volti

os)

Tiempo en segundos

Figura 5.8: Resultado de la simulacion del sistema de control adaptivo paracontrolar la posicion angular del servomotor D.C. sujeto a cargas no lineales.

5.6.8. Implementacion del Hardware

El sistema de control de posicion consta de un servomotor D.C. con me-canismo de reduccion, una varilla acoplada al eje del servomotor (la carga nolineal) perpendicular al eje de giro del servomotor, una etapa de potencia (elamplificador PWM) y un sensor de posicion conformado por un codificadoroptico (acoplado al eje del motor), un decodificador de cuadratura y un con-tador de 16 bits. El hardware tambien incluye una PC Pentium y una tarjetade adquisicion de datos Lab-PC+. A la carga no lineal (la varilla metalica)se le pueden acoplar cargas adicionales. El esquema de implementacion seilustra en la figura 5.9 mientras que el proceso (el servomotor con carga nolineal) se ilustra en la figura 5.10.

El Actuador

El actuador esta conformado por el servomotor D.C. (de campo magneticopermanente y escobillas conmutadas), un generador PWM y una etapa depotencia. Debido a que el motor no responde inmediatamente a una tensionde entrada; es decir, le toma un pequeno tiempo para llegar a la maxima

Page 244: [-] Control Avanzado - Arturo Rojas Moreno

230 Control Adaptivo

PA0

PA7

PA

PB7

PB0

PB

PC

PC7

DAC0

DAC1

MUX

TARJETA LAB-PC+

ANALOGICAS

SALIDAS

COMPUERTAS

DIGITALES

DE ENTRADA

Y SALIDA

CONTADOR /

TEMPORIZADOR

COMPUTADORA

PERSONAL

...

...

...

PWMGenerador

de potenciaAmplificador

AdicionalCarga

Varilla

Sensor (encoder)

16 bits SERVO-MOTOR

DC

ETAPA DE POTENCIA

OUTB0

PC0

Fs

PC1

Decodificadorde cuadratura

UP / DOWNy contador

Figura 5.9: Esquema de implementacion del sistema de control de posicion.

Page 245: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 231

...

’Codificador optico

Servomotor DC

Alimentacion

Reductor develocidad

adicionalCarga

VarillaAdaptador de carga

Eje de salida

Figura 5.10: Proceso servomotor D.C. con carga no lineal y codificador opticoincorporado.

velocidad, es necesario usar un sistema que nos permita variar la velocidaddel servomotor (entre un mınimo y un maximo) ası como tambien el sentidode su rotacion. Dicho sistema comprende un generador PWM LM3524 yun circuito de potencia (ver figura 5.11). Tal sistema nos permite variar lavelocidad de acuerdo al ancho de pulso de la senal PWM. El circuito PWMLM3524 genera senales moduladas por ancho de pulso de 15.4 KHz, lascuales son luego amplificadas por el circuito de potencia, generandose unatension de alimentacion cuyos lımites son ± 25 volt. El circuito de potenciaesta conformado por un sistema de disparo y dos pares de conmutadores Ay B, tal como se muestra en la figura 5.12.

El sistema de disparo permite la conmutacion de cada par conmutador(A o B), de forma tal que no se produzcan cortocircuitos durante la con-mutacion. Cuando el sistema de disparo cierra el conmutador A y abre el B,el sentido de la corriente sigue la lınea punteada, induciendo de esta formauna tension +Vcc en el servomotor. Ahora, si el sistema de disparo abre el

Page 246: [-] Control Avanzado - Arturo Rojas Moreno

232 Control Adaptivo

PWMGenerador

Amplificador de potencia

Ca Ra Rc

RpCp

PWM

de la LAB-PC+

Viene de la salida A0

Salida A

Salida B motor DCAl servo-

Figura 5.11: Etapa de potencia.

DE

DISPARO DC

MOTOR

SERVO-

A1

A2B2

B1

Vcc

Par conmutador A = A1 + A2

Par conmutador B = B1 + B2

SENAL PWM~ SISTEMA

Figura 5.12: Esquema general del sistema de disparo y de conmutacion.

conmutador A y cierra el B, el sentido de la corriente sigue la lınea segmen-tada, induciendo ası una tension -Vcc en el servomotor. Esto significa que elmotor recibe en sus bornes una tension de onda cuadrada, cuyo valor varıaentre ± Vcc, con un consumo de corriente que depende de los conmutadoresconformados por transistores MOSFET.

Page 247: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 233

El Sensor de Posicion

El sensor de posicion esta conformado por un codificador optico ro-tatorio (interno al motor), un decodificador de cuadratura y un contadorUP/DOWN. El codificador optico rotatorio consiste en:

Una fuente de luz que puede ser un LED infrarrojo o laser.

Un disco opaco ranurado acoplado al eje del motor, que se mueve entreuna fuente de luz permanente habilitada y un detector. A medida quegira el rotor, el paso de luz hacia el detector es habilitado o inhabilitadopor un patron de areas oscuras y transparentes impreso en el disco,produciendo una senal digital que puede ser facilmente interpretadapor el controlador de movimiento del sistema.

Un sensor de luz; usualmente es un fototransistor o un fotodiodo.

Un conformador de pulsos que convierte la senal sinusoidal provenientede la salida del fotodetector en senal de onda cuadrada.

El esquema basico del codificador optico se muestra en la figura 5.13. El

Eje del servomotor

Disco con’mascara

Canal A

Canal B

Fuente de luzTransistor

’optico

Figura 5.13: Estructura de un codificador optico rotatorio.

codificador usado en esta implementacion, como en la mayorıa de los casos,incluye dos pistas de marcas o ranuras en cuadratura (canales A y B), ca-da una asociada a una fuente de luz y un fotodedector independientes. Loscanales A y B producen dos ondas cuadradas desfasadas 900 entre sı que seutilizan para determinar la direccion del movimiento. Por ejemplo, si el canalB adelanta al canal A, el eje esta girando en sentido antihorario, y viceversa.

Page 248: [-] Control Avanzado - Arturo Rojas Moreno

234 Control Adaptivo

Si no se utiliza deteccion de cuadratura, la vibracion puede causar el envıode pulsos erraticos al contador, incluso si la maquina esta detenida. El cod-ificador usado tiene una resolucion de 512 ppr (pulsos por revolucion). Eldecodificador de cuadratura es el CI LS7083 que activa la cuenta ascendenteo descendente del contador UP/DOWN de 16 bits, dependiendo del sentidode giro del motor, captado por el desfasaje entre los trenes de pulsos de loscanales A y B. El contador UP/DOWN esta conformado 4 CI 74HC193; dosde ellos entregan un grupo de 8 bits de datos (bus A) a la tarjeta LAB-PC+;de manera analoga otro grupo igual de bits conforman el bus B (ver figura5.14).

R L

LS7083Canal B

Canal A

Clock DownClock UP

193

193

193

193

4 bits

4 bits

4 bits

4 bits

8 bits

8 bits

Puertodigital

PA

PB

Puertodigital

74HC

74HC

74HC

74HC

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

La Interfaz Lab-PC+

La interfaz entre el microcomputador, la planta, el actuador y el sensores la tarjeta de adquisicion de datos Lab-PC+. Los terminales usados parael control son:

1. Una salida analogica (DAC0). La senal de control se envıa usando elterminal DAC0 al CI LM3524 (generador PWM) con una resolucionde 12 bits para generar la senal analogica.

Page 249: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 235

2. Dos puertos digitales de entrada (PA y PB) de 8 bits. Tales puertosreciben los datos provenientes del contador UP/DOWN.

3. El terminal OUTB0, que se utiliza como salida de una senal de relojpara el funcionamiento del sistema de control.

4. El terminal PC0 (bit 0 del puerto C), que se utiliza como entrada dela senal de reloj Fs proveniente de OUTB0.

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

5.6.9. Implementacion del Software de Control

Consideraciones Generales

El software de control debe implementar las ecuaciones del sistema entiempo real, incluyendo la solucion de las ecuaciones de Riccati para calcu-lar las ganancias del controlador y del observador. Ya que la simulacion delsistema no incluye estos tipos de calculo, es necesario explicar sucintamentelas ecuaciones involucradas en el sistema de control adaptivo a ser imple-mentado en tiempo real. El modelo lineal continuo del proceso se obtiene dela ecuacion (5.29):

Mθ + (B +nKactK

R)θ +Nθ =

nKactK

θ + 3,626 + θ + 17,4604θ = 89,09θ

La ecuacion de diferencias del proceso es (ver ecuacion (5.31)):

θk + a1θk−1 + a2θk−2 = b1vk−1 + b2vk−2

donde θ(k) = y(k) y v(k) = u(k) (v es la senal de control que requierecompensacion). La ecuacion canonica controlable a emplear en el algoritmode control se da en la ecuacion (5.32):

xk = GXk−1 +Huk−1; yk = CXk

con x = Xk y u(k) = uk.La ley de control es: uk = −KaXa

k con (ver ecuacion (5.26)):

Ka = (R+ (Ha)TP aHa)−1(Ha)TP aGa

Page 250: [-] Control Avanzado - Arturo Rojas Moreno

236 Control Adaptivo

donde la matriz P a(k) = P ak se obtiene de (ver ecuacion (5.27)):

P ak+1 = Q+ (Ga)TP a

kGa + (Ga)TP a

kHa(R+ (Ha)TP a

kHa)−1(Ha)TP a

kG

Para un perıodo de muestreo, empezando con P ak igual a la matriz nula,

iteramos 20 veces la ecuacion anterior, lo que da como resultado una nuevamatriz P a

k . En el siguiente perıodo de muestreo, la matvıariz resultante P ak

se usa como matriz inicial para resolver nuevamente la ecuacion de Riccati,resultando luego de 20 iteraciones en una matriz P a

k+1. Se ha observado queP a alcanza un valor estacionario luego de 4 o 5 perıodos de muestreo (locual es equivalente a 80 o 100 iteraciones). Esta forma de calculo ahorratiempo de computacion. Los parametros de optimizacion empleados parael controlador optimo son R = 0.05 y Qa = 0,1 I3, donde I3 es la matrizidentidad de orden 3.

La matriz de ganancia Ko del filtro de Kalman se puede obtener apli-cando dualidad al problema de control. Es decir, haciendo los reemplazossiguientes:

Ga → GT , Ha → CT , Qa → Qo, R→ Ro, P a → Po

en las formulas de Ka y P ak+1 del controlador optimo. De esta forma re-

solvemos la ecuacion de Riccati para Po (como en el caso del controlador)para luego poder calcular Ko. Los parametros de optimizacion usados parael observador optimo (filtro de Kalman) son: Qo=0.01 y Ro=0.04, mientrasque para el algoritmo de estimacion son: P = 1000I5 (matriz de covarianzainicial, ecuacion (5.33)), Cmin = 15, y Cmax = 100.

Computacionalmente, el software de control requiere de muchos calculos.Por ejemplo, para el proceso de estimacion de parametros se deben realizardos descomposiciones de Cholesky para matrices de orden 5 empleando elmetodo de Jacobi (ver referencia [16], pagina 365), se deben calcular todoslos valores propios y ordenarlos en una matriz simetrica. Felizmente no esnecesario efectuar inversion de matrices porque el proceso controlado esunivariable y la operaciones con matrices generalmente fueron entre matricessimetricas.

Ademas de la compensacion de la no linealidad producida por la friccionde Coulomb (anadiendo ± 0.2 voltios a la senal de control, dependiendo sila velocidad angular es positiva o negativa), se considera tambien el efectode saturacion del servomotor cuando la senal de control sobrepasa los 2.3 ±1.4 voltios, donde los 2.3 voltios corresponden al valor que hay que agregar(valor “offset”) para que la velocidad inicial sea cero. Este valor offset espropio del servomotor empleado.

Page 251: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 237

Los Programas Fuente

Los programas necesarios para la implementacion en tiempo real del sis-tema de control adaptivo disenado se estructuran en tres archivos de codigofuente, los cuales son:

1. Archivo R1LLIB.H, que es un archivo de declaraciones de funcionesdefinidas en el archivo R1LLIB.CPP. Estas funciones permiten facilitarel manejo de la tarjeta de adquisicion de datos Lab-PC+.

2. Archivo R1LLIB.CPP, que tambien es un archivo de definiciones defunciones declaradas en R1LLIB.H para facilitar el manejo de la tarjetade adquisicion de datos Lab-PC+. Este archivo emplea la librerıa defunciones NI-DAQ [25] y llama a la funcion ConfigurarHardware para,precisamente, configurar el hardware empleado.

3. Archivo CON122.CPP: Constituye el software de control.

Ensamblaje del Software de Control

El software de control emplea en su ejecucion la siguiente secuencia:

1. Inicializa_Sistema();2. Mide_Variables(&y,&r,&vel,t);3. Estima_Parametros(Th,y,u);4. Encuentra_Control(r,&u);5. u=Aplica_Control(u,vel);

La compilacion de archivos para hacerlos ejecutables se realiza en Bor-land C/CPP mediante un proyecto que involucre todos los archivos, en nues-tro caso, los archivos R1LLIB.H, R1LLIB.CPP y CON122.CPP.

Una precaucion a considerar es la de especificar que la compilacion seejecute con el modelo de memoria “Large”. Otra precaucion es asegurarseque al inicio y al final de la ejecucion de los programas, el servomotor debeestar parado, lo que se logra enviando la senal offset de 2.3 voltios.

Los Programas Fuente Comentados

/*R1LLIB.H*Archivo de declaracion de funciones definidas en R1LLIB.CPP*Estas funciones permiten facilitar el manejo de la tarjeta*de adquisicion de datos Lab-PC+: Digital Input (16 bits),

Page 252: [-] Control Avanzado - Arturo Rojas Moreno

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 R1LAOPortvoid EnviarVoltage(float);

//Leer Posicion (16 bits leidos por R1LLSBPort y R1LMSBPort)unsigned int LeerPosicion();

//Leer Nivel del clock (polling). Devuelve 0 o 1int 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-7static unsigned R1LMSBPort; // direccion del MSB (bit mas

//significativo del puerto digital de entrada PB0-7static 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

//anal’ogica (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;

Page 253: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 239

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 = timer0DIG_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 loscontadores */unsigned int LeerPosicion()unsigned char oct1,oct2;oct1 = inportb(R1LLSBPort);oct2 = inportb(R1LMSBPort);return (255*oct2+oct1);

/*Detectando verdadero o falso en forma alternativa, deacuerdo 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>

Page 254: [-] Control Avanzado - Arturo Rojas Moreno

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 delcontrol y valor medio de la salida */float Td; /* per’iodo 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 */

/*IDENTIFICACI’ON */float Thk[5], Th[5];

/*vectores de estimacion de parametros, auxiliar y definitivo */float ym1, ym2, um1, um2, ek, div, rt; /* ’ultimos dos valoresde la posicion y del control, el error actual, el valorauxiliar div y el par’ametro 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 matricesS(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 observadoroptimo */float P[3][3], Pb[2][2], Maux1[3][3], Maux2[3][3], Maux3[3][3];

Page 255: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 241

/*Matrices de Riccati del controlador y del observador, yauxiliares 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 ala friccion est\’atica; valor del umbral de velocidad angular yvalor 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;elseif(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 Varillaa1=-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.;

Page 256: [-] Control Avanzado - Arturo Rojas Moreno

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. Estimandoestado 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;

Page 257: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 243

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 */

Page 258: [-] Control Avanzado - Arturo Rojas Moreno

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;

Page 259: [-] Control Avanzado - Arturo Rojas Moreno

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

Page 260: [-] Control Avanzado - Arturo Rojas Moreno

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’ (tambi’en 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++)

Page 261: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 247

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

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 covarianzade 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;

Page 262: [-] Control Avanzado - Arturo Rojas Moreno

248 Control Adaptivo

/*Este es el Algoritmo de JacobiInicializamos 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;elsetheta= .5*h/Psaux[ip][iq];t= 1./(fabs(theta)+sqrt(1.+theta*theta));

Page 263: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 249

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

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 nuevaestimacion de los parametros */void Encuentra_Control(float r, float *U)

Page 264: [-] Control Avanzado - Arturo Rojas Moreno

250 Control Adaptivo

int i, j, k, n=3, niter;double delta;

delta= TOL+1.;niter= 0;while(delta>TOL && 20>niter++)

/*P(k).H y H’P(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 + H’P(k).H */for(Raux1= R, i=0; i<n; i++)Raux1 += He[i]*Vaux1[i];

/*G’P(k).H y H’P(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;

/*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] += Ge[k][i]*P[k][j];

/*2o. Termino> G’P(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 */

Page 265: [-] Control Avanzado - Arturo Rojas Moreno

5.6 Control Adaptivo de un Servomotor No Lineal 251

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 *//*H’P */for(Vaux1[i=0]=0.; i<n; Vaux1[++i]= 0.)for(j=0; j<n; j++)Vaux1[i] += He[j]*P[j][i];

/*R+H’P.H */for(Raux1= R, i=0; i<n; i++)Raux1 += Vaux1[i]*He[i];

/*Y Final, encontramos K= H’P.G/(R+H’P.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))));

Page 266: [-] Control Avanzado - Arturo Rojas Moreno

252 Control Adaptivo

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);

5.6.10. Resultados Experimentales

Los resultados experimentales mostrados en las figuras 5.15 y 5.16 de-muestran la validez del procedimiento de diseno sugerido. Dichos resultadosse obtuvieron para una senal de referencia escalon cambiante de π/3 a π/2.Dos casos extremos fueron tomados en consideracion: el control con ausen-cia de carga (figura 5.15) y el control con carga no lineal (figura 5.16). Enambos casos, el controlador adaptivo es capaz de controlar la posicion deleje del servomotor a pesar de la presencia simultanea de la carga no linealy de las no linealidades inherentes (las fricciones estatica y de Coulomb, yla saturacion del servomotor).

Los experimentos se realizaron con los siguientes parametros de opti-mizacion. Para el estimador de estado se selecciono Qo = 0,01 y Ro = 0,04(ecuaciones (5.16) y (5.17)) y para la ley de control optima se eligio R = 0,05

Page 267: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 253

y Qa = 0,1I3 (ecuacion (5.27)), donde I3 es la matriz identidad de dimen-sion tres. El tiempo de muestreo, suficientemente grande como para poderefectuar todo el computo requerido por muestra, fue de Ts=0.01 s.

0 10 20 30 40 50 60 70 80 90 1000

0.5

1

1.5

2P

osic

ión

(rad

iane

s)

Tiempo en segundos

0 10 20 30 40 50 60 70 80 90 100−1

−0.5

0

0.5

1

1.5

Señ

al d

e co

ntro

l (vo

ltios

)

Tiempo en segundos

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

5.7. Problemas Resueltos

En la seccion problemas resueltos de los capıtulos 4 al 8, la solucion a losproblemas se encuentra, segun el caso, en uno o mas archivos con extensionm escritos en codigo MATLAB. En cada problema, la seleccion del tiempode muestreo es a conveniencia del diseno.

Problema 5.1

El problema 3.1 presenta las ecuaciones que gobiernan la dinamica del sis-tema de suspension de un bus (ver figura 3.12). Disenar un sistema de controladaptivo con autosintonizacion para lograr el objetivo de control siguien-te: la salida del proceso y = x2 − x1 (referencia nula) no debe presentarsobreimpulsos mayores que el 5 %, y luego de 20 segundos, las oscilaciones

Page 268: [-] Control Avanzado - Arturo Rojas Moreno

254 Control Adaptivo

0 10 20 30 40 50 60 70 80 90 1000

0.5

1

1.5

2

2.5

Pos

ició

n (r

adia

nes)

Tiempo en segundos

0 10 20 30 40 50 60 70 80 90 100−1

−0.5

0

0.5

1

1.5

Señ

al d

e co

ntro

l (vo

ltios

)

Tiempo en segundos

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

originadas por un disturbio escalon de 10 cm (provocadas por imperfeccionesen la pista), practicamente deben desaparecer.

Solucion: Ver programa p3adap1.m. Este es un problema de rechazo a losdisturbios. Es interesante anotar que el caracter adaptivo del sistema decontrol disenado, permite que las especificaciones de rechazo del disturbiose mantengan a pesar de que varıe la masa del bus. Supongamos que la masadel bus sin pasajeros es m1 = 2500 kg y lleno cambia a 3500 kg. Ejecute elprograma p3adap1.m con este nuevo dato y vera que el objetivo de controlpracticamente se sigue cumpliendo.

% p3adap1.m SOLUCION DEL PROBLEMA 5.1clear all

% PARAMETROS DEL PROCESOm1 = 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 LINEALA = [0 1 0 0

-b1*b2/(m1*m2) 0 a23 -b1/m1

Page 269: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 255

b2/m2 0 a33 1k2/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 DISCRETOT=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 act’ua disturbio w y control u es nulo[numd,dend]=ss2tf(G,H,C,D,2); % dend = denj1=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 KALMANXi = 1; Sigma = 1;

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR KeR = 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 INICIALESRef = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIAnn = 4; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDASNN=13; % NUMERO DE PARAMETROS A ESTIMARCe = (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 INICIALlamb=0.98; % FACTOR DE MEMORIAY(1) = 0; Y(2) = 0; Y(3) = 0; Y(4)=0; Y(5) =0; % SALIDAU(1)= 0; U(2) = 0; U(3) = 0; U(4)=0; U(5)=0; % CONTROLw(1)= 0; w(2) = 0; w(3) = 0; w(4)=0; w(5)=0;xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIALz=0; % ACCION INTEGRAL INICIALMM = 200;

% LAZO DEL SISTEMA DE CONTROL ADAPTIVO ********************for t=1:MM;t1=t+1;

% SE~NAL DEL DISTURBIOw(t1+4) = 0.01;%*sign(sin(0.03*t1));

% SE~NAL DE REFERENCIAW(t1+4) = 0;

% MODELO LINEAL DEL PROCESO CON DISTURBIOY(t1+4)=[Y(t1+3) Y(t1+2) Y(t1+1) Y(t1) ...

Page 270: [-] Control Avanzado - Arturo Rojas Moreno

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 ESTADOae1=-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

Page 271: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 257

F = dlqe(GE,FE,CE,Sigma,Xi);xmas = xmenos + F*(y(t1+4) - CE*xmenos); % OBSERVACIONz = z -CE*xmas; % ACCION INTEGRAL

% CALCULO DE LA GANANCIA Ka DEL CONTROLADORGa = [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 RESIDUALu(t1+4) = - Ka*[xmas;z];% -Kw*w(t1+4);

% ACTUALIZACION DE ESTADOSxmenos = 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 UU(t1+4) = u(t1+4) + Uin;end % ********** FIN DEL LAZO DE CONTROL

% GRAFICOSejex = linspace(0,MM*T,MM);subplot(2,1,1)plot(ejex,W(6:MM+5),ejex,Y(6:MM+5)); gridylabel(’Salida y = x1-x2 (m)’)xlabel(’Tiempo en segundos’)subplot(2,1,2), gridplot(ejex,U(6:MM+5)); gridxlabel(’Tiempo en segundos’)ylabel(’Fuerza de control (N)’)print -deps -f p3adap1

Problema 5.2

El problema 3.2 describe las ecuaciones que gobiernan la dinamica longitudi-nal de un avion comercial volando a velocidad de crucero (altura y velocidadconstantes). El control del angulo de inclinacion θ del avion (ver figura 3.14)es un problema longitudinal a resolver. El objetivo de control entonces esdisenar un autopiloto que manipulando el angulo δe del deflector de ele-vacion, controle el angulo de inclinacion del avion.

Se pide disenar un sistema de control adaptivo que genere una fuerzade control, de modo que la salida del proceso (el angulo de inclinacion θ)presente un sobreimpulso menor al 10 % y un tiempo de estabilizacion menorque 10 s, con un error en estado estable nulo. Por ejemplo, si la entrada de

Page 272: [-] Control Avanzado - Arturo Rojas Moreno

258 Control Adaptivo

0 10 20 30 40 50 60 70 80 90 100−0.01

−0.005

0

0.005

0.01

Sal

ida

y =

x1−

x2 (

m)

Tiempo en segundos

0 10 20 30 40 50 60 70 80 90 100−80

−60

−40

−20

Tiempo en segundos

Fue

rza

de c

ontr

ol (

N)

Figura 5.17: Salida y = x1 − x2 y la fuerza de control disenada, correspon-dientes al problema 5.1.

referencia es ± 0.2 rad, entonces el angulo de inclinacion no debe exceder elvalor de ± 0.22 rad, y luego de 10 segundos, permanecer en ± 0.2 rad.

% p4adap1.m SOLUCION DEL PROBLEMA 5.2clear all

% PARAMETROS DEL PROCESOnn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDASNN = 7; % ORDEN DEL VECTOR ESTIMADO DE PARAMETROS

% cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMANSigma = 10; Xi = 1;

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR Ke; r+nn=4R = 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 CONTINUOAc = [-0.313 56.7 0;-0.0139 -0.426 0;0 56.7 0];Bc = [0.232;0.0203;0];

Page 273: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 259

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 INICIALESRef = 0.2; % MAGNITUD DE LA SE~NAL DE REFERENCIACe = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO)thi = [-a1 -a2 -a3 b1 b2 b3 Ce]’;alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIALlamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIAY(1)=0; Y(2)=0; Y(3)=0; y(1)=0; y(2)=0; y(3)=0; % SALIDAU(1)=0; U(2)=0; U(3)=0; u(1)=0; u(2)=0; u(3)=0; % CONTROLxmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIALz=0; % ACCION INTEGRAL INICIAL

% LAZO DEL SISTEMA DE CONTROL *****************************MM = 2000;for t = 1:MM

% SE~NAL DE REFERENCIAv1(t+3)=0.2*sign(sin(0.005*t));

% procesoY(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;

Page 274: [-] Control Avanzado - Arturo Rojas Moreno

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 CONTROLABLEae1 = -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 KALMANF = dlqe(GE,HE,CE,Sigma,Xi);xmas = xmenos + F*(y(t+3) - CE*xmenos); % OBSERVACIONz = z -CE*xmas; % ACCION INTEGRAL

% CALCULO DE LA GANANCIA Ka DEL CONTROLADORGa = [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 RESIDUALu(t+3) = - Ka*[xmas;z]; % ec. (27)

% ACTUALIZANDO ESTADOSxmenos = GE*xmas + HE*u(t+3); %

% CALCULO DEL VALOR DE EQUILIBRIO UAE = 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 % *********************************

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

Page 275: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 261

xlabel(’Tiempo en seg’)ylabel(’Angulo del deflector (rad)’)print -deps -f p4adap1

0 20 40 60 80 100 120 140 160 180 200−0.4

−0.2

0

0.2

0.4

Incl

inac

ión

(rad

)

0 20 40 60 80 100 120 140 160 180 200−1

−0.5

0

0.5

1

Tiempo en seg

Ang

ulo

del d

efle

ctor

(ra

d)

Figura 5.18: Angulo de inclinacion θ y senal de control (angulo del deflector)correspondientes al problema 5.2.

Problema 5.3

La figura 3.20 muestra un monorriel de dos carros descrito en el problema3.5. El problema a resolver es el control de velocidad del carro de maquinasmediante un sistema de control adaptivo con autosintonizacion. Para garan-tizar a los pasajeros un viaje confortable, los cambios de velocidad debenrealizarse con un tiempo de estabilizacion menor que 15 s y con mınimo so-breimpulso. El error en estado estable debe ser nulo. Simule una senal de re-ferencia que cambie la velocidad de 30 a 20 m/s y demuestre que se cumplenlas especificaciones de diseno. Luego enfrente el problema de seguimiento.Mostrar que la velocidad de la maquina puede seguir una trayectoria pre-determinada de velocidades. El programa p7adap1b.m trata el caso de refe-rencia arbitraria. Revise tal programa si desea ver detalles al respecto.

Page 276: [-] Control Avanzado - Arturo Rojas Moreno

262 Control Adaptivo

% p7adap1a.m SOLUCION DEL PROBLEMA 5.3clear all

% PARAMETROS GENERALESnn = 6; r=1; % nn: orden del proceso; r: NUMERO DE SALIDASNN = 13; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS

% cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMANXi = 2; Sigma = 1;

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR KeR = 1; Qa = 1*eye(r+nn,r+nn);

% PARAMETROS DEL PROCESOM1=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 CONTINUOA=[0 1 0 0 0 0

-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 00 0 0 1 0 0

K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M20 0 0 0 0 10 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3];

B=[0 1 0 0 0 0]’;alfa = 1; % CONSTANTE TACOMETRICAC=[ 0 alfa 0 0 0 0

0 0 0 alfa 0 00 0 0 0 0 alfa];

D=[0;0;0];[numc,denc]=ss2tf(A,B,C,D);

% MODELO LINEAL DISCRETOT = 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 INICIALESRef = 30; % MAGNITUD DE LA SE~NAL DE REFERENCIACe = (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 INICIALlamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIAY(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

Page 277: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 263

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; % controlxmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIALz=0; % ACCION INTEGRAL INICIAL

% INICIO DEL LAZO DE CONTROL *******************MM = 600;for t = 1:MM

% SE~NAL DE REFERENCIAYo(t+6)= 25 + 5*sign(sin(0.02*t));

% MODELO LINEAL DEL PROCESOY(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 (desviacion)% 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 CONTROLABLEae1=-th(1); ae2=-th(2); ae3=-th(3);ae4=-th(4); ae5=-th(5); ae6=-th(6);

Page 278: [-] Control Avanzado - Arturo Rojas Moreno

264 Control Adaptivo

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 ae12 ae13 ae14 ae15 ae16ae21 ae22 ae23 ae24 ae25 ae26ae31 ae32 ae33 ae34 ae35 ae36ae41 ae42 ae43 ae44 ae45 ae46ae51 ae52 ae53 ae54 ae55 ae56ae61 ae62 ae63 ae64 ae65 ae66];

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 KALMANF = dlqe(GE,HE,CE,Sigma,Xi);xmas = xmenos + F*(y(t+6) - CE*xmenos); % OBSERVACIONz = z -CE*xmas; % ACCION INTEGRAL

% CALCULO DE LA GANANCIA Ka DEL CONTROLADORGa = [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 RESIDUALu(t+6) = - Ka*[xmas;z]; % ec. (27)

% ACTUALIZANDO ESTADOSxmenos = 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 **********************

% GRAFICOSejex = linspace(0,MM*T,MM);

Page 279: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 265

subplot(2,1,1)plot(ejex,Yo(7:MM+6),ejex,Y(7:MM+6)), gridylabel(’Y1: Velocidad (m/s)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,U(7:MM+6)), gridxlabel(’Tiempo en segundos’)ylabel(’Voltaje de control u’)print -deps -f p7adap1a

0 50 100 150 200 250 3000

10

20

30

40

Y1:

Vel

ocid

ad (

m/s

)

Tiempo en segundos

0 50 100 150 200 250 300−10

0

10

20

30

Tiempo en segundos

Vol

taje

de

cont

rol u

Figura 5.19: Velocidad del carro de maquinas y la fuerza de control para elproblema 5.3.

Problema 5.4

La figura 3.22 muestra el proceso ascensor tratado en el problema 3.6. Elproblema a resolver es posicionar suavemente el ascensor en un piso deter-minado, lo que significa sobreimpulso nulo (para que no se pase de piso) ytiempo de estabilizacion menor que 10 s. Para no saturar al actuador (elamplificador de potencia), la senal de control debe estar dentro del rangode ± 200 voltios. Disenar un sistema de control de posicion adaptivo conautosintonizacion que cumpla las especificaciones pedidas.

% p8adap1.m SOLUCION DEL PROBLEMA 5.4

Page 280: [-] Control Avanzado - Arturo Rojas Moreno

266 Control Adaptivo

0 50 100 150 200 250 3000

10

20

30

40

Y1:

Vel

ocid

ad (

m/s

)

Tiempo en segundos

0 50 100 150 200 250 300−10

0

10

20

30

Tiempo en segundos

Vol

taje

de

cont

rol u

Figura 5.20: Velocidad del carro de maquinas y la fuerza de control para elproblema 5.3. La referencia es arbitraria.

clear all% PARAMETROS GENERALESnn = 4; r=1; % nn: orden del proceso; r: NUMERO DE SALIDASNN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS

% cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMANXi = 0.001; Sigma = 400;

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR KeR = 1; Qa = 1*eye(r+nn,r+nn);

% MODELO LINEAL DEL PROCESO EN TIEMPO CONTINUOAc = [-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 INICIALESRef = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = Ref

Page 281: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 267

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 INICIALlamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIAY(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 INICIALz=0; % ACCION INTEGRAL INICIAL

% INCIO DEL LAZO DE CONTROL **********************************MM = 1000;for t = 1:MM

% SE~NAL DE REFERENCIAg(t+4)=6 + 4*sign(sin(0.01*t));

% MODELO LINEAL DEL PROCESOY(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

Page 282: [-] Control Avanzado - Arturo Rojas Moreno

268 Control Adaptivo

% RECUPERACION DE LA ECUACION CANONICA CONTROLABLEae1 =-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 KALMANF = dlqe(GE,HE,CE,Sigma,Xi);xmas = xmenos + F*(y(t+4) - CE*xmenos); % OBSERVACIONz = z -CE*xmas; % ACCION INTEGRAL

% CALCULO DE LA GANANCIA Ka DEL CONTROLADORGa = [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 RESIDUALu(t+4) = - Ka*[xmas;z];

% ACTUALIZANDO ESTADOSxmenos = 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);endend % FIN DEL LAZO DE CONTROL **********************

% GRAFICOSejex = linspace(0,MM*T,MM);subplot(2,1,1)plot(ejex,g(4:MM+3),ejex,Y(4:MM+3)), gridylabel(’Posicion’)

Page 283: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 269

xlabel(’Tiempo en segundos’)subplot(2,1,2), gridplot(ejex,U(3:MM+2)), gridxlabel(’Tiempo en segundos’)ylabel(’Voltaje de control’)print -deps -f p8adap1

0 100 200 300 400 500 600 700 8000

2

4

6

8

10

Pos

ició

n (

m)

Tiempo en segundos

0 100 200 300 400 500 600 700 800−200

−100

0

100

200

Tiempo en segundos

Vol

taje

de

cont

rol

Figura 5.21: Posicion del ascensor y la fuerza de control (problema 5.4).

Problema 5.5

La figura 2.2 muestra dos tanques identicos colocados en cascada. La seccionhorizontal A=9 m2 de cada tanque es constante. El objetivo de controles controlar la altura H2 empleando el flujo Qo. La deduccion del modelolinealizado del proceso se describe en el ejemplo 2.1. Disenar un controladoradaptivo con autosintonizacion que cumpla los siguientes requerimientos:tiempo de estabilizacion menor que 15 s, sobreimpulso menor al 5 % y erroren estado estable nulo. Estas condiciones de diseno deben mantenerse cuandose cambie la referencia (por ejemplo de 3 a 1 m). Ademas, el flujo de entrada(la senal de control) no debe sobrepasar los 3 m3/s.

% p9adap1.m SOLUCION DEL PROBLEMA 5.5clear all

% PARAMETROS GENERALES

Page 284: [-] Control Avanzado - Arturo Rojas Moreno

270 Control Adaptivo

nn = 2; r=1; % nn: ORDEN DEL PROCES; r: NUMERO DE SALIDASNN = 5; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS

% cmax = 100; cmin = 15 % PARA EL ESTIMADOR DE PARAMETROS% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMANXi = 100; Sigma = 0.01;

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR KeR = 1; Qa = 0.1*eye(r+nn,r+nn);

% PARAMETROS DEL PROCESO NO LINEALgamma=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 CONTINUOAc = [-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 CONTROLABLEa11 = 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 INICIALESRef = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = RefCe = (1 + a1 + a2)*Ref; % Uo = 0 (ARBITRARIO)thi = [-a1 -a2 b1 b2 Ce]’;alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIALlamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIAY(1) = 0; Y(2) = 0; y(1) = 0; y(2) = 0; % salidaU(1 )= 0; U(2) = 0; u(1) = 0; u(2) = 0; % controlH1(1) =0; H1(2)=0;xmenos = zeros(nn,1); % VECTOR DE OBSERVACION INICIALz=0; % ACCION INTEGRAL INICIAL

% INICIO DEL LAZO DE CONTROL **********************************MM = 200;for t = 1:MM

% SE~NAL DE REFERENCIAg(t+2)=2-1*sign(sin(0.08*t));

% MODELO LINEAL DEL PROCESO

Page 285: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 271

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 CONTROLABLEae1=-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 KALMANF = dlqe(GE,HE,CE,Sigma,Xi);xmas = xmenos + F*(y(t+2) - CE*xmenos); % OBSERVACIONz = z -CE*xmas; % ACCION INTEGRAL

% CALCULO DE LA GANANCIA Ka DEL CONTROLADORGa = [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

Page 286: [-] Control Avanzado - Arturo Rojas Moreno

272 Control Adaptivo

u(t+2) = - Ka*[xmas;z];% ACTUALIZANDO ESTADOSxmenos = 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;

endend % FIN DEL LAZO DE CONTROL **********************

% GRAFICOSejex = linspace(0,MM*T,MM);subplot(2,1,1)plot(ejex,g(3:MM+2),ejex,Y(3:MM+2)), gridylabel(’Nivel en metros’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,U(3:MM+2)), gridxlabel(’Tiempo en segundos’)ylabel(’Flujo de control (m/s)’)print -deps -f p9adap1

Problema 5.6

El proceso electromecanico mostrado en la figura 3.26 se describe en el pro-blema 3.8. Disenar un sistema de control adaptivo con autosintonizacionpara controlar la velocidad angular del eje del motor mediante el voltajede entrada que puede variar entre ± 100 voltios. La senal de referencia esarbitraria (problema de seguimiento).

% p11adap1.m SOLUCION DEL PROBLEMA 5.6clear all

% PARAMETROS GENERALES

Page 287: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 273

0 20 40 60 80 100 120 140 1601

1.5

2

2.5

3

Niv

el e

n m

etro

s

Tiempo en segundos

0 20 40 60 80 100 120 140 160−4

−2

0

2

4

Tiempo en segundos

Flu

jo d

e co

ntro

l (m

/s)

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

nn = 3; r=1; % nn: ORDEN DEL PROCESO; r: NUMERO DE SALIDASNN = 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 CONTINUOAc = [-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 KALMANXi = 0.001; Sigma = 10;

Page 288: [-] Control Avanzado - Arturo Rojas Moreno

274 Control Adaptivo

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR KeR = 0.1*eye(r,r); Qa = 0.001*eye(r+nn,r+nn);

% Gcc,Hcc, Ccc, Dcc: REPRESENTACION CANONICA CONTROLABLEa11 =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 INICIALESRef = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = RefCe = (1 + a1 + a2 + a3)*Ref; % Uo = 0 (ARBITRARIO)thi = [-a1 -a2 -a3 b1 b2 b3 Ce]’;alfa=1000; Pi = alfa*eye(NN); % MATRIZ P INICIALlamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIAY(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 INICIALz=0; % ACCION INTEGRAL INICIAL

% INICIO DEL LAZO DE CONTROL **********************************MM = 400;for t = 1:MM

% SE~NAL DE REFERENCIAYo(t+3)= 0.4 + 3*(sin(0.02*t))+0.01*t;

% MODELO LINEAL DEL PROCESOY(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;

Page 289: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 275

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 CONTROLABLEae1 = -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 KALMANF = dlqe(GE,HE,CE,Sigma,Xi);xmas = xmenos + F*(y(t+3) - CE*xmenos);z = z -CE*xmas;

% CALCULO DE LA GANANCIA Ka DEL CONTROLADORGa = [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 RESIDUALu(t+3) = - Ka*[xmas;z];

% ACTUALIZANDO ESTADOSxmenos = 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

Page 290: [-] Control Avanzado - Arturo Rojas Moreno

276 Control Adaptivo

end % FIN DEL LAZO DE CONTROL **********************% GRAFICOSejex = linspace(0,MM*T,MM);subplot(2,1,1)plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)); gridylabel(’Velocidad (rad/s)’)subplot(2,1,2)plot(ejex,U(3:MM+2)); gridxlabel(’Tiempo en seg’)ylabel(’Voltaje de control’)print -deps -f p11adap1

0 10 20 30 40 50 60 70 80−2

0

2

4

6

8

Vel

ocid

ad

(rad

/s)

0 10 20 30 40 50 60 70 80−40

−20

0

20

40

Tiempo en seg

Vol

taje

de

cont

rol

Figura 5.23: Velocidad angular controlada y el voltaje de control para elproblema 5.6.

Problema 5.7

En el problema 3.3 se describe el proceso de la bola rodando a lo largo deuna barra con un grado de libertad, tal como se muestra en la figura 3.16.Una leva conecta la barra con un engranaje accionado por un servomotor.Se desea disenar un sistema de control adaptivo que pueda posicionar labola a 0.5 m de un extremo de la barra de 1 m de longitud. Evidentemente,la oscilacion de la bola debe estar restringida sobre la barra. El voltaje decontrol no debe sobrepasar los ± 40 voltios.

Page 291: [-] Control Avanzado - Arturo Rojas Moreno

5.7 Problemas Resueltos 277

% p5adap1.m SOLUCION DEL PROBLEMA 5.7clear all

% PARAMETROS GENERALESnn = 4; r=1; % nn: ORDEN DEL PROCES; r: NUMERO DE SALIDASNN = 9; % ORDEN DEL VECTOR ESATIMADO DE PARAMETROS

% cmax = 100; cmin = 15; % PARA EL ESTIMADOR DE PARAMETROS% PARAMETROS PARA OPTIMIZAR GANANCIA DEL FILTRO DE KALMANXi = 1; Sigma = 0.001;

% PARAMETROS DE OPTIMIZACION DEL CONTROLADOR KeR = 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 PROCESOM=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 CONTINUOAc = [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 INICIALESRef = 1; % MAGNITUD DE LA SE~NAL DE REFERENCIA: Yo = RefCe = (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 INICIALlamb=0.98; lamb0 = 0.99; % FACTOR DE MEMORIAY(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 INICIALz=0; % ACCION INTEGRAL INICIAL

% INICIO DEL LAZO DE CONTROL **********************************MM = 300;

Page 292: [-] Control Avanzado - Arturo Rojas Moreno

278 Control Adaptivo

for t = 1:MM% SE~NAL DE REFERENCIAYo(t+4)= 0.5;%sign(sin(0.005*t));

% MODELO LINEAL DEL PROCESOY(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 CONTROLABLEae1 = -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 KALMANF = dlqe(GE,HE,CE,Sigma,Xi);xmas = xmenos + F*(y(t+4) - CE*xmenos); % OBSERVACION

Page 293: [-] Control Avanzado - Arturo Rojas Moreno

5.8 Problemas Propuestos 279

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 RESIDUALu(t+4) = - Ka*[xmas;z]; % ec. (27)

% ACTUALIZANDO ESTADOSxmenos = 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;endend % FIN DEL LAZO DE CONTROL *************************

% GRAFICOSejex = linspace(0,MM*T,MM);subplot(2,1,1)plot(ejex,Yo(3:MM+2),ejex,Y(3:MM+2)), gridylabel(’Posicion (m)’)subplot(2,1,2)plot(ejex,U(3:MM+2)), gridxlabel(’Tiempo en seg’)ylabel(’Voltaje de control’)print -deps -f p5adap1

5.8. Problemas Propuestos

Problema 5.8

En el proceso de la figura 3.24(a) se desea reducir la humedad h del materiala granel de la tolva (ver problema 3.7). La banda transportadora, que sedesplaza a una velocidad constante de v= 1 m/s, introduce el material a unhorno de secado. El sensor de humedad detecta hr a una distancia d = 10 mdel horno y proporciona la senal de voltaje vr. El horno puede ser modeladocomo un proceso de primer orden. La figura 3.24(b) muestra la F.T delproceso. Disenar un sistema de control adaptivo con autosintonizacion con elproposito de estabilizar la humedad del material en la banda transportadora,a pesar de que el tiempo muerto T = v/d varıa entre 9 y 11 s. Para propositos

Page 294: [-] Control Avanzado - Arturo Rojas Moreno

280 Control Adaptivo

0 50 100 150 200 2500

0.2

0.4

0.6

0.8

1

Pos

ició

n (m

)

0 50 100 150 200 250−15

−10

−5

0

5

10

Tiempo en seg

Vol

taje

de

cont

rol

Figura 5.24: Posicion de la bola y el voltaje de control para el problema 5.7.

del modelado del proceso, el tiempo muerto puede ser descrito mediante laaproximacion de Pade de tercer orden (ver ejemplo ??):

e−Ts ≈ num(s)den(s)

=1 − Tts/2 + (Tts)2/10 − (Tts)3/1201 + Tts/2 + (Tts)2/10 + (Tts)3/120

Especificaciones de diseno: tiempo de estabilizacion menor que 40 s, erroren estado estacionario nulo y porcentaje de sobreimpulso menor al 5 %.

Problema 5.9

Las ecuaciones del modelo linealizado para controlar la posicion del canonmontado en la torreta de un tanque (figura 3.28), empleando un actuadorhidraulico se detallan en el problema 3.9.

(a) Disenar un sistema de control adaptivo con autosintonizacion paracontrolar el angulo de elevacion θ con las especificaciones siguientes:tiempo de estabilizacion menor que 5 s, mınimo sobreimpulso en la res-puesta y error de estado estacionario nulo. Los disturbios tipo escalonpueden actuar simultaneamente o no, y pueden ser positivos o nega-tivos. Para cada caso, el sistema de control disenado debe ser capazde minimizar sus efectos.

Page 295: [-] Control Avanzado - Arturo Rojas Moreno

5.8 Problemas Propuestos 281

(b) Lo mismo que (a), pero en este caso para controlar el angulo azimutal.

Problema 5.10

La figura 3.31 muestra el proceso servomotor con carga no lineal descrito enla seccion 3.3, en donde la carga no lineal posee ahora dos grados de libertadcon Lo = 2L1/3 y Mo=0.02 kg. La union de la carga con el eje del servo-motor no es flexible. Las ecuaciones que describen la dinamica del sistemason materia del problema 3.12. Disenar un sistema de control adaptivo conautosintonizacion para controlar simultaneamente las posiciones θ y τ conmınimo tiempo de estabilizacion y mınimo sobreimpulso en la respuesta.

Problema 5.11

La figura 3.32 muestra el proceso pendulo doble no lineal que es una exten-sion del pendulo simple descrito en la seccion 3.1. El acoplamiento entre losdos pendulos de igual longitud no es flexible. Las ecuaciones que describen ladinamica del sistema son materia del problema propuesto 3.13. Considerarque la carga esferica es de 0.02 kg. Disenar un sistema de control adaptivocon autosintonizacion para controlar simultaneamente las posiciones θ y τcon mınimo tiempo de estabilizacion y mınimo sobreimpulso en la salida, demodo tal que el pendulo doble permanezca en posicion vertical.

Problema 5.12

La figura 3.33 muestra el proceso doble grua puente no lineal que es una ex-tension del proceso grua-puente descrito en la seccion 3.2. El acoplamientoentre las dos secciones iguales de la varilla no es flexible. Para poder deter-minar un modelo no lineal dinamico para este proceso, conviene emplear lasecuaciones de Lagrange de la mecanica clasica (ver problema 3.14). Conside-rar que la carga esferica es de 0.02 kg. Disenar un sistema de control adaptivocon autosintonizacion para controlar simultaneamente las posiciones θ y τcon mınimo tiempo de estabilizacion y mınimo sobreimpulso, de modo talque la doble grua-puente permanezca en posicion vertical cuando el carrorealiza un recorrido predeterminado.

Problema 5.13

La figura 1.1 muestra un carro de masa m = 1000 kg desplazandose con unavelocidad v gracias a la accion de la fuerza u producida por su motor. Si se

Page 296: [-] Control Avanzado - Arturo Rojas Moreno

282 Control Adaptivo

desprecia la inercia de las ruedas y se asume que la fuerza de friccion bv,donde b= 50 N-s/m es el coeficiente de friccion, es lo unico que se oponeal movimiento del carro, entonces la dinamica del proceso puede modelarsecomo (ver ejemplo 1.16):

mv(t) + bv(t) = u(t); v =dv

dt

Disenar un sistema de control adaptivo con autosintonizacion para contro-lar la velocidad del movil con mınimo tiempo de estabilizacion y mınimosobreimpulso en la salida. La senal de referencia puede ser arbitraria (pro-blema de seguimiento).

Problema 5.14

El motor D.C. es un actuador muy popular en los sistemas de control, yaque su movimiento rotatorio, mediante acoples adecuados en su eje, puedeconvertirse facilmente en movimiento de traslacion como por ejemplo, enfajas transportadoras y en brazos manipuladores. La figura 4.3 muestra elcircuito de armadura del motor y el diagrama de cuerpo libre de su rotor.Las ecuaciones que gobiernan el comportamiento dinamico del motor fueronderivadas en el ejemplo 4.1. Disenar dos sistemas de control adaptivo conautosintonizacion. El primero para estabilizar la velocidad angular del eje delmotor con las especificaciones siguientes: tiempo de estabilizacion menor que4 s, error en estado estable menor al 1 % y sobreimpulso en la salida menoral 5 %. El segundo sistema de control adaptivo a disenar debe estabilizar laposicion del eje del motor con las mismas especificaciones de diseno.

Page 297: [-] Control Avanzado - Arturo Rojas Moreno

Capıtulo 6

Control Predictivo

En este capıtulo se desarrolla un procedimiento para disenar un sistemade control predictivo basado en modelos. El algoritmo de control predictivoempleado es el denominado control matricial dinamico, el cual puede ser tambiendel tipo escalar. Para validar el procedimiento de diseno propuesto, se presentauna aplicacion: control predictivo de la posicion angular de un servomotor sujetoa cargas no lineales variables.

La penultima seccion, problemas resueltos, trata el diseno de sistemas decontrol predictivo para diferentes procesos empleando leyes de control escalary matricial. Todos los archivos correspondientes a los ejercicios, problemas,disenos, simulaciones y software desarrollados se pueden descargar del sitio:http://fiee.uni.edu.pe/728681F.

6.1. Control Predictivo Basado en Modelos

El Control Predictivo Basado en Modelos [7], [8] es una metodologıa decontrol que usa el modelo del proceso para calcular y optimizar las predic-ciones de las acciones de control y de la salida controlada. Esta metodologıase ha desarrollado alrededor de ciertos principios, dos de los cuales son:

Empleo de un modelo del proceso para pronosticar su salida a controlaren instantes de tiempo futuro.

Calculo de una accion de control optima basada en la minimizacionde funciones de costo, posiblemente incluyendo restricciones en lasvariables del proceso.

Page 298: [-] Control Avanzado - Arturo Rojas Moreno

284 Control Predictivo

Los diferentes miembros de la familia del Control Predictivo Basadoen Modelos difieren principalmente en el modelo usado para representarel proceso con sus perturbaciones, y en las funciones de costo a ser mini-mizadas (con o sin restricciones). En lo que sigue del capıtulo, se desarrollanlos principios del Control Predictivo Basado en Modelos para su aplicacionen sistemas univariables. De la gama de algoritmos de control predictivoexistentes, nos ocupamos en particular del denominado Control MatricialDinamico (“Dynamic Matrix Control”). Para validar el procedimiento dediseno propuesto, se presenta y discute una aplicacion: control predictivo dela posicion angular de un servomotor sujeto a cargas no lineales variables.

Es importante resaltar que el control predictivo es de naturaleza abiertay cuenta con muchas contribuciones, tanto en lo academico como tambien enel mundo industrial. Muchas aplicaciones del control predictivo son usadashoy en todos los campos de la actividad industrial. El buen rendimiento detales aplicaciones es muy apreciada; por ello, actualmente existe un crecienteinteres en esta metodologıa, si bien el trabajo pionero se inicio alrededor dehace dos decadas.

6.2. Principios del Control Predictivo Basado enModelos

El control predictivo pronostica la salida de la planta en un escenariode tiempo de duracion N2 (el horizonte de tiempo N2). Tal prediccion de-pende de las salidas y entradas pasadas, pero tambien del escenario delcontrol futuro. La obtencion del modelo que refleje lo mas fielmente posiblela evolucion dinamica de la planta, es la llave del exito en las aplicaciones.La notacion usada para derivar los principios del control predictivo es lasiguiente:

t, representa el tiempo discreto (t = 0, 1, 2, . . . ).

u(t), denota la entrada al proceso y constituye la variable manipuladao senal de control.

y(t), es la salida del proceso y constituye la la variable controlada.

w(t), representa la trayectoria deseada (“set point”).

r(t), denota la trayectoria de referencia.

Page 299: [-] Control Avanzado - Arturo Rojas Moreno

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+ kpostulados en el tiempo t, o simplemente, dado t.

y(t+ k/t), denota los valores futuros de la salida basado en las medi-ciones 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 relacion a la figura 6.1, el principio del control predictivo se carac-teriza por la siguiente estrategia:

1 2 FuturoPasado

Momento presente t

Trayectoria dereferencia

Trayectoriadeseada

del proceso

1

2

2

1

N 2

Politica de control pasada Politica de control futura

MuertoTiempo

Salida pasada

Figura 6.1: Estrategia del control predictivo.

En cada tiempo t, la salida del proceso y(t + k) se pronostica so-bre un horizonte k = 1 . . . N2. Los valores pronosticados se denotancomo y(t + k/t) y a N2 se le denomina el horizonte de prediccion.La prediccion se realiza mediante el modelo del proceso, el cual seasume que esta disponible. El pronostico en cuestion depende de lasentradas y salidas pasadas, pero tambien del escenario del control fu-turo u(t+ k/t), k = 0, . . . , N2 − 1; es decir, de las acciones de controlque se intentan aplicar a partir del tiempo t.

Page 300: [-] Control Avanzado - Arturo Rojas Moreno

286 Control Predictivo

Una trayectoria de referencia r(t + k/t), k = 1, . . . , N2, que se iniciaen r(t/t) = y(t) y se define sobre el horizonte de prediccion. Estatrayectoria describe la forma de guiar la salida del proceso desde suvalor actual y(t) hasta la trayectoria deseada w(t).

El vector de control u(t + k/t), k = 0, . . . , N2 − 1, se calcula paraminimizar una funcion de costo especıfica que depende del error delcontrol predictivo r(t+ k/t) − y(t+ k/t), k = 1, . . . , N2.

Al proceso real solo se le aplica el primer elemento del vector de controloptimo calculado u(t+ k/t), k = 0, . . . , N2 − 1, mientras que se dejande lado los demas elementos de dicho vector. En el proximo instante demuestreo, todas las secuencias temporales se desplazan para dar cabidaa las nuevas mediciones de la salida y(t+1) y a las del vector de controlu(t+ k + 1/t+ 1), cuyo primer elemento es generalmente diferente alprimer elemento del vector u(t + k/t), previamente calculado. Esteprincipio se denomina estrategia del “horizonte retroactivo”.

La estrategia del control predictivo comprende: el proceso de predic-cion a traves de un modelo del proceso, la especificacion de una trayectoriade referencia, la estructuracion de la futura ley de control, la definicion dela funcion de costo (y sus restricciones) y el calculo del escenario de con-trol optimo. Tal estrategia puede ser visualizada en el diagrama de bloquesmostrado en la figura 6.2.

OPTIMIZADOR

MODELO -

+ Trayectoria dereferencia

Salidaspredecidaspasadas

Entradas ysalidas

Funcion de costo restricciones’

Entradasfuturas

Figura 6.2: Estrategia del Control Predictivo Basado en Modelos

Page 301: [-] Control Avanzado - Arturo Rojas Moreno

6.3 El Modelo del Proceso 287

6.3. El Modelo del Proceso

El proceso de una entrada y una salida, probablemente no lineal, puedemodelarse como:

y(t) = x(t) + n(t) (6.1)

tal como se ilustra en la figura 6.3, donde y(t) es la salida medible delproceso, u(t) es la entrada al proceso (la senal de control), x(t) es la salidadel modelo y n(t) es el disturbio en el proceso.

x

n

u yMODELO

Figura 6.3: Modelo del proceso bajo perturbaciones.

El Disturbio n(t)

La senal de disturbio n(t) incluye todos los efectos no deseados en la sali-da y(t). Esta senal representa el efecto conjunto de todos los disturbios sobreel proceso, otras entradas no medibles, ruido de medicion, errores de mode-lado, incertidumbres, etc. El disturbio n(t), que es de caracter estocastico,puede ser modelado mediante un filtro coloreado de la forma:

n(t)e(t)

=C(z−1)D(z−1)

(6.2)

donde z−1 es el operador de desplazamiento, e(t) es un ruido blanco nocorrelacionado con media cero, y los polinomios son de la forma:

C(z−1) = 1 + c1z−1 + · · · + cncz

−nc (6.3)D(z−1) = 1 + d1z

−1 + · · · + dndz−nd (6.4)

El filtro de disturbio debe disenarse: para eliminar disturbios en el estadoestable (cuando z = 1), como filtro selectivo (para eliminar una determinadafrecuencia) y para incrementar la robustez del sistema en la presencia deerrores de medicion. Estructuras tıpicas de los polinomios del filtro puedenser:

C(z−1) = 1 + cz−1; D(z−1) = (1 + dz−1)(1 − z−1)

Page 302: [-] Control Avanzado - Arturo Rojas Moreno

288 Control Predictivo

La Salida x(t) del Modelo

La senal x(t) representa el efecto del proceso en la salida y(t) debido a laentrada u(t). De nuevo, x(t) no es una senal medible. En general, la relacionentre u(t) y x(t) puede representarse mediante un modelo dinamico genericode la forma:

x(t) = f(x(t− 1), x(t− 2), . . . , u(t− 1), u(t− 2), . . .) (6.5)

donde f(.) es una funcion que puede estructurarse de diversas formas. Esdecir, f(.) puede ser una ecuacion de diferencias, una red neuronal o unacaja negra con parametros a ser estimados.

El Modelo CARIMA

El modelo CARIMA, del ingles “Controlled Autoregressive IntegratedMoving Average”, es un modelo lineal basico y bastante extendido en suaplicacion y es precisamente el que emplearemos. El modelo CARIMA delproceso puede ser representado por:

A(z−1)y(t) = B(z−1)u(t) +C(z−1)D(z−1)

e(t) (6.6)

donde:A(z−1) = 1 + a1z

−1 + ...+ anaz−na (6.7)

B(z−1) = b1z−1 + ...+ bnb

z−nb (6.8)

El origen del termino CARIMA se debe a que la ecuacion de diferenciasdel modelo del proceso presenta tres componentes, a saber, la componentesalida autoregresiva:

y(k) = − a1y(k − 1) − a2y(k − 2) − ...− anay(k − na)

el componente promedio temporal de control:

+ b0u(k − 1) + b1u(k − 2) + ...+ bnbu(k − nb − 1)

y el componente promedio temporal integrado del error e(t):

+e(k) + c1e(k − 1) + c2e(k − 2) + ...+ cnce(k − nc)

1 − z−1

Page 303: [-] Control Avanzado - Arturo Rojas Moreno

6.3 El Modelo del Proceso 289

Por ejemplo, para un proceso de segundo orden sin presencia de perturba-ciones; es decir, con C(z−1) = 0, la representacion CARIMA toma la forma:

y(t) = x(t) =B(z−1)A(z−1)

u(t) =b1z

−1 + b2z−2

1 + a1z−1 + a2z−2u(t) (6.9)

la cual conduce a la ecuacion de diferencias:

y(t) = −a1y(t− 1) − a2y(t− 2) + b1u(t− 1) + b2u(t− 2) (6.10)

El modelo lineal CARIMA mas generalizado es de la forma:

A(z−1)y(t) =B(z−1)F (z−1)

u(t) +C(z−1)D(z−1)

e(t) (6.11)

Notar en (6.11) que la salida y(t) del modelo tambien cumple que (verecuacion (6.1):

y(t) = x(t) + n(t)

donde: yu = B

AF y ne = C

AD . La representacion predictiva de la ultima expre-sion es:

y(t+ k/t) = x(t+ k/t) + n(t+ k/t) (6.12)

Ejemplo 6.1

El modelo lineal de orden 2 del servomotor D.C. sujeto a cargas no linealesdescrito en la seccion 3.3 es:

q = w

w = −N

Mq −

(B

M+n2KE

MR

)w +

nKactK

RMu

Asumiendo que el ruido de medicion n(t) en la posicion del eje del servomotor(la salida del proceso) es coloreado:

n(t) =1

1 − z−1e(t)

determine su modelo CARIMA.

Solucion: La funcion de transferencia de pulso del proceso posee la forma:

q(z)u(z)

=b1z + b2

z2 + a1z + a2=

b1z−1 + b2z

−2

1 + a1z−1 + a2z−2=B(z−1)A(z−1)

Page 304: [-] Control Avanzado - Arturo Rojas Moreno

290 Control Predictivo

y anadiendo el ruido de medicion obtenemos:

q(z) =B(z−1)A(z−1)

u(z) + n(t) =B(z−1)A(z−1)

u(z) +1

1 − z−1e(t)

donde e(t) es ruido blanco gaussiano con media nula. La ecuacion de dife-rencias del proceso ruidoso viene a ser:

q(t) = (1 − a1)q(t− 1) + (a1 − a2)q(t− 2) + a2q(t− 3)+

b1u(t− 1) + (b2 − b1)u(t− 2) − b2u(t− 3) + e(t) + a1e(t− 1) + a2e(t− 2)

En el siguiente ejemplo analizaremos la senal n(t) resultante.

6.4. El Modelo del Predictor

El predictor y(t+ k/t) de la senal de salida y el predictor n(t+ k/t) dela senal de perturbacion pueden ser modelados empleando representacionesserie y serie/paralelo como se detalla a continuacion.

6.4.1. Prediccion de y(t + k/t)

Para predecir y(t+k/t) existen dos posibles esquemas de implementacion,los cuales se muestran en la figura 6.4 para un modelo de segundo orden.

PARALELO

MODELO

y(t+k-1/t)

y(t+k-2/t)

u(t+k-1/t)

u(t+k-2/t)

MODELO

SERIE /

PARALELO

x(t+k/t)

x(t+k-1/t)

x(t+k-2/t)

u(t+k-1/t)

u(t+k-2/t)

x(t+k/t)

Figura 6.4: Representacion de los modelos paralelo y serie/paralelo.

El Modelo Paralelo

El modelo paralelo, llamado algunas veces modelo independiente, puedeser usado para procesos estables y es el que se implementa por defecto. En

Page 305: [-] Control Avanzado - Arturo Rojas Moreno

6.4 El Modelo del Predictor 291

este modelo la salida y(t) se realimenta a sı misma. Su expresion es:

y(t) =B(z−1)A(z−1)

u(t) +1

1 − z−1e(t) = x(t) + n(t) (6.13)

la cual se obtiene de la ecuacion (6.6)) con C(z−1) = 1, AD(z−1) = (1−z−1),n(t) = 1

1−z−1 e(t), y x(t) = B(z−1)A(z−1)

u(t). Por consiguiente, para cualquier t:

x(t) = (1 −A(z−1))x(t) +B(z−1)u(t)= −a1x(t− 1) − · · · − anax(t− na)

+b1u(t− 1) + · · · + bnbu(t− nb) (6.14)

siendo su expresion generica predictiva:

x(t+ k/t) = −a1x(t+ k − 1/t) − · · · − anay(t+ k − na/t)+b1u(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 oinestables. En este caso, el modelo del disturbio n(t) = C(z−1)

D(z−1)e(t) se es-

coge diferente al del modelo paralelo. El modelo serie/paralelo se obtienereescribiendo el modelo paralelo como sigue:

A(z−1)y(t) = B(z−1)u(t) +A(z−1)1 − z−1

e(t) (6.16)

que es la ecuacion (6.6) cuando C(z−1) = A(z−1) y D(z−1) = 1 − z−1. Lasalida y(t) toma entonces la forma:

y(t) = (1 −A(z−1))y(t) +B(z−1)u(t) +A(z−1)1 − z−1

e(t) = y(t) + n(t) (6.17)

donde y(t) se obtiene de la relacion:

y(t) = (1 −A(z−1))y(t) +B(z−1)u(t)y(t) = −a1y(t− 1) − · · · − anay(t− na)

+b1u(t− 1) + · · · + bnbu(t− nb) (6.18)

Por consiguiente, la expresion predictiva del modelo serie/paralelo es:

y(t+ k/t) = −a1y(t+ k − 1/t) − · · · − anay(t+ k − na/t)+b1u(t+ k − 1/t) + · · · + bnb

u(t+ k − nb/t) (6.19)

Page 306: [-] Control Avanzado - Arturo Rojas Moreno

292 Control Predictivo

La diferencia del modelo serie/paralelo con respecto al modelo paralelo puedededucirse de la figura 6.5.

PROCESO

MODELO

SERIE /

PARALELO

PROCESO

PARALELO

MODELO

u y u y

x

u x

-

+

x

-+

y

u

Figura 6.5: Implementacion de los modelos paralelo y serie/paralelo.

6.4.2. Prediccion de n(t + k/t)

Para cualquier tiempo t, se puede calcular x(t) usando los datos disponiblesdel 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 calcularla perturbacion n(t) mediante la relacion:

n(t) = x(t) − y(t) (6.20)

Como ya se tienen disponibles los valores previos n(t− 1), n(t− 2), . . ., ellonos permite computar:

e(t) =D(z−1)C(z−1)

n(t)

e(t) = −c1e(t−1)−c2e(t−2)−· · ·+n(t)+d1n(t−1)+d2n(t−2)+· · · (6.21)

donde e(t) es un ruido blanco no correlacionado con media nula. Esto sig-nifica que la mejor prediccion de e(t) es:

e(t+ k/t) = 0, k = 1, . . . , N2 (6.22)

Por extension, la mejor prediccion del disturbio se obtiene de:

n(t+ k/t) =C(z−1)D(z−1)

e(t+ k/t), k = 1, . . . , N2

= −d1n(t+ k − 1/t) − d2n(t+ k − 2/t) + e(t+ k/t) · · ·+c1e(t+ k − 1/t) + c2e(t+ k − 2/t) + · · · (6.23)

Page 307: [-] Control Avanzado - Arturo Rojas Moreno

6.4 El Modelo del Predictor 293

El calculo recursivo toma en cuenta que para cualquier k, e(t + k/t) = 0.Por consiguiente, para:

k = 1, n(t+ 1/t) = −d1n(t/t) − d2n(t− 1/t) − · · ·k = 2, n(t+ 2/t) = −d1n(t+ 1/t) − d2n(t/t) − · · ·

...k = N2, n(t+N2/t) = −d1n(t+N2 − 1/t) − d2n(t+N2 − 2/t) − · · ·

Ejemplo 6.2

Comparar las respuestas a una sinusoide del proceso servomotor D.C. nolineal del ejemplo 6.1, cuando la salida y no es ruidosa y cuando lo es. Eltiempo de muestreo es T = 0.01 s. Considerar ruido blanco gaussiano.

Solucion: Empleando el resultado del ejemplo 6.1, la solucion a este proble-ma se detalla en el programa ejem6 2.m. Los resultados se muestran en lasfiguras 6.6, 6.7 y 6.8. Observar en la ultima figura que el ruido e(t) empleadoposee media cero y una funcion de distribucion gaussiana.

% ejem6_2.m SOLUCION EJEMPLO 6.2clear 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.02K = 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 ORDENAc = [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 ORDENT = 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 NULASq(1)=0; q(2)=0; q(3)=0; u(1)=0; u(2)=0; u(3)=0;

Page 308: [-] Control Avanzado - Arturo Rojas Moreno

294 Control Predictivo

y(1)=0; y(2)=0; y(3)=0; e(1)=0; e(2)=0; e(3)=0;% RESPUESTAS DEL PROCESOMM = 1000;for t=3:MM+2u(t) = sin(0.006*t); % SINUSOIDE DE ENTRADAq(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.1y(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% GRAFICOSejex = linspace(0,MM*T,MM);figure(1)subplot(2,1,1)plot(ejex,q(3:MM+2)); gridylabel(’Posicion en rad’); xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,u(3:MM+2)); gridylabel(’Entrada (voltios)’)xlabel(’Tiempo en segundos’)print -f -deps ejem6_2afigure(2)subplot(2,1,1)plot(ejex,y(3:MM+2)); gridylabel(’Posicion ruidosa (rad)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,u(3:MM+2)); gridylabel(’Entrada (voltios)’)xlabel(’Tiempo en segundos’)print -f -deps ejem6_2bfigure(3)subplot(2,1,1)plot(ejex,e(3:MM+2)); gridylabel(’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

Page 309: [-] Control Avanzado - Arturo Rojas Moreno

6.4 El Modelo del Predictor 295

0 1 2 3 4 5 6 7 8 9 10−4

−2

0

2

4

Pos

ició

n en

rad

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 10−1

−0.5

0

0.5

1

Ent

rada

(vo

ltios

)

Tiempo en segundos

Figura 6.6: Respuesta no ruidosa del proceso a una sinusoide.

0 1 2 3 4 5 6 7 8 9 10−6

−4

−2

0

2

4

Pos

ició

n ru

idos

a (r

ad)

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 10−1

−0.5

0

0.5

1

Ent

rada

(vo

ltios

)

Tiempo en segundos

Figura 6.7: Respuesta ruidosa del proceso a una sinusoide.

Page 310: [-] Control Avanzado - Arturo Rojas Moreno

296 Control Predictivo

0 1 2 3 4 5 6 7 8 9 10−0.4

−0.2

0

0.2

0.4

Rui

do g

ausi

ano

e(t)

(ra

d)

Tiempo en segundos

−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.40

100

200

300

<−−−−−− e(t) −−−−−−>

Dis

trib

ució

n de

e(t

)

Figura 6.8: Ruido blanco e(t) con media cero y distribucion gaussiana.

6.5. El Controlador Predictivo

6.5.1. Objetivo del Controlador

El objetivo del controlador predictivo es determinar el vector de controlu(t+ k/t), k = 0, . . . , N2 − 1, que minimice la siguiente funcion de costo:

J =N2∑

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)

con ∆u(t + k/t) = 0 para k ≥ Nu. La trayectoria de referencia esta repre-sentada por la ecuacion:

r(t+ k/t) = αr(t+ k − 1/t) + (1 − α)w(t+ k/t) (6.26)

evaluada para k = 1, . . . , N2, con r(t/t) = y(t).Los parametros de diseno son:

N1: horizonte de prediccion mınimo.

Page 311: [-] Control Avanzado - Arturo Rojas Moreno

6.5 El Controlador Predictivo 297

N2: horizonte de prediccion maximo; por defecto podemos considerarN2 = N1 + 1, . . . , N1 + 10.

Nu: horizonte de control; por defecto considerar Nu = 1.

N1, . . . , N2: horizonte de coincidencia; por defecto considerarN1 (tiem-po muerto).

λ: parametro de ponderacion; por defecto considerar cero.

α: parametro de filtraje; por defecto considerar cero.

Si la trayectoria deseada w(t) se programa previamente, entonces los valoresfuturos 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 estrategiade control predictivo en avance, el valor actual w(t) se puede usar como unvalor de prediccion w(t+ k/t) = w(t) para k = 1, . . . , N2.

Es importante observar ademas que:

1. La trayectoria de referencia dada en (6.26) constituye un filtro deprimer orden para w(t). Este filtro se puede representar mediante lasiguiente funcion de transferencia:

r(z)w(z)

=1 − α

1 − αz−1=z(1 − α)z − α

(6.27)

2. El filtro para w(t) se puede implementar fuera del lazo de control, noafectando de esta manera a la estabilidad del sistema, pero sı con-tribuyendo al rechazo del ruido.

La figura 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 consideradacomo el resultado acumulativo de dos efectos:

y(t+ k/t) = ylibre(t+ k/t) + yforz(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 senales de control pasadas u(t− 1), u(t− 2), . . .

Page 312: [-] Control Avanzado - Arturo Rojas Moreno

298 Control Predictivo

oo

o o

o o

o

ooo

oo

o

o

oo

o o

o

o oo

o

oo

oo

ooo

oo

u

r = w y

y(t+k/t) u(t+k/t)

N

N =4u

=82N =21

FUTUROTiempo actual tPASADO

Figura 6.9: Objetivo del control predictivo basado en modelos.

El efecto debido a un escenario de control futuro. Por defecto se tieneu(t/t) = u(t− 1), u(t+ 1/t) = u(t− 1), u(t+ 2/t) = u(t− 1), . . .; estoes, ∆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 yforz(t + k/t) aparece debido al resultado dedos efectos. El primero, causado por la accion del control futuro; es decir,causado por las senales ∆u(t/t), ∆u(t+1/t), . . . , ∆u(t+Nu−1/t). El segun-do efecto se debe a las respuestas del proceso a una secuencia de entradasescalon, como sigue:

Un escalon con amplitud ∆u(t/t) aplicado al proceso en el tiempot, resulta en una contribucion gk∆u(t/t) en la salida del proceso enel tiempo t + k. Es decir, k tiempos de muestreo mas tarde (figura6.10(a)).

Un escalon con amplitud ∆u(t+ 1/t) aplicado al proceso en el tiempot + 1, resulta en una contribucion gk∆u(t + 1/t) para la salida delproceso en el tiempo t + k − 1. Es decir, k − 1 tiempos de muestreomas tarde (figura 6.10(b)).

etc.

Page 313: [-] Control Avanzado - Arturo Rojas Moreno

6.5 El Controlador Predictivo 299

Respuesta

Tiempo

u(t/t)∆

t

u(t/t)∆kg

k Muestras

Tiempo

t+k

Respuesta

(k-1) Muestras

t t+k

u(t+1/t)∆

u(t+1/t)gk ∆

(a)

(b)

’al escalon

’Entrada escalon

’Entrada escalon

’al escalon

Figura 6.10: El efecto de las entradas tipo escalon en la salida forzada.

Por consiguiente, el efecto acumulativo de todos los escalones es:

yforz(t+k/t) = gk∆u(t/t)+gk−1∆u(t+1/t)+ · · ·+gk−Nu+1∆u(t+Nu−1/t)(6.29)

donde los parametros g1, . . . , gN2 son los coeficientes de la respuesta delsistema al escalon unitario. Es decir, la respuesta de la salida del sistema alos cambios tipo escalon unitario en la entrada.

Para un sistema lineal, la respuesta al escalon unitario no depende delpunto de operacion. Este punto es fijo y puede ser calculado fuera de lınea(“off-line”) usando el modelo del sistema.

Para un sistema no lineal, como en el caso de una red neuronal, la res-puesta al escalon unitario es diferente para cada punto de operacion. Estarespuesta tiene que ser calculada en cada tiempo de muestreo (“on-line”),aplicando en cada instante de muestreo un cambio escalon (ficticio) a laentrada actual del proceso y calculando su efecto en la salida respectiva.

Page 314: [-] Control Avanzado - Arturo Rojas Moreno

300 Control Predictivo

De la ecuacion (6.29) se puede obtener la siguiente expresion para lacomponente forzada:

Yforz = GU (6.30)

donde:

Yforz =[yforz(t+N1/t) yforz(t+N1 + 1/t) · · · yforz(t+N2/t)

]T

G =

gN1 gN1−1 . . . . . .gN1+1 gN1 . . . . . .. . . . . . . . . . . .gN2 gN2−1 . . . gN2−Nu+1

U =[

∆u(t/t) ∆u(t+ 1/t) · · · ∆u(t+Nu − 1/t)]T

y empleando la ecuacion (6.28), podemos escribir:

Y = Y +GU (6.31)

donde:

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

Determinar la respuesta libre y los coeficientes gk de la respuesta al escalonpara el proceso servomotor D.C. descrito en el ejemplo 6.1.

Solucion: La ecuacion de diferencias del proceso es:

y(k) = −a1y(k − 1) − a2y(k − 2) + b1u(k − 1) + b2u(k − 2)

Cuando la entrada es u(k) = 1 para todo k ≥ 0, entonces y(k) = g(k) paratodo k ≥ 0. Luego, los coeficientes g(k) se determinan de:

g(k) = −a1g(k − 1) − a2g(k − 2) + b1u(k − 1) + b2u(k − 2)

Ası podemos obtener que g(0) = 0, g(1) = b1, g(2) = −a1b1 + b1 + b2, y:

g(k) = −a1g(k − 1) − a2g(k − 2) + b1 + b2; k ≥ 3

La condicion para respuesta libre es que:

u(t/t) = u(t+ 1/t) = · · · = u(t+N2/t) = u(t− 1)

Aplicando tal condicion en la ecuacion de diferencias del proceso, determi-namos la respuesta libre ylibre como sigue:

ylibre(t+ 1) = −a1ylibre(t) − a2ylibre(t− 1) + (b1 + b2)u(t− 1)

Page 315: [-] Control Avanzado - Arturo Rojas Moreno

6.5 El Controlador Predictivo 301

6.5.3. La Ley de Control

Con la notacion anterior, la funcion de costo (ecuacion (6.24)) resulta:

(R−Y)T (R−Y)+λUTU = [(R−Y)−GU]T [(R−Y)−GU]+λUTU (6.32)

la cual es una forma cuadratica en U, cuya minimizacion por diferenciacionresulta en la siguiente solucion optima:

U∗ = (GTG+ λI)−1GT (R − Y) (6.33)

Es importante indicar que:

Solamente el primer elemento ∆u(t/t) de U∗ es necesario para com-putar la entrada de control actual u(t) = u(t−1)+∆u(t/t). El mismoprocedimiento se repite para la nueva medicion y(t+ 1) en el proximoinstante de tiempo t+ 1. Este procedimiento se denomina el principiodel “horizonte retroactivo”.

La matriz [GTG+λI] a ser invertida tiene dimension Nu×Nu. Para elcaso por defecto, es decir, para Nu = 1, se obtiene una ley de controlescalar (con muy buenos resultados en muchos casos practicos) de laforma:

∆u(t) =

∑N2k=N1

gk[r(t+ k/t) − ylibre(t+ k/t)]∑N2k=N1

g2k + λ

(6.34)

Otra aproximacion para la estructuracion del escenario de control con-siste en el empleo de funciones base de la forma:

u(t+ k/t) =∑

i

µiBi (6.35)

La optimizacion de la senal de control u(t+k/t) es ahora con respectoa los parametros µi.

El control predictivo muestra diferentes propiedades dependiendo de laseleccion de N1, N2 y Nu. Por ejemplo:

Si N1 = n, N2 = 2n− 1, Nu = n y λ = 0, la salida entonces alcanza lareferencia despues de n muestras y se mantiene en este estado, propor-cionando una vigorosa accion de control. Este caso es muy apropiadapara aplicaciones que requieran alto rendimiento, como en la robotica.

Page 316: [-] Control Avanzado - Arturo Rojas Moreno

302 Control Predictivo

Si escogemos N1 = Nu = 1, N2 = ∞ y λ = 0, obtendremos unarespuesta transitoria de la variable controlada, caracterizada por untiempo de subida rapido y un tiempo de estabilizacion lento. Estehecho es relevante en el control de procesos industriales.

La Ley de Control con Restricciones

El problema de control presentado en la subseccion anterior fue formu-lado bajo condiciones de control sin restricciones; es decir, considerando quetodas las senales poseen rango ilimitado. Sin embargo, esto no es realista. Enla practica, todos los procesos estan sujetos a restricciones. Por ejemplo, enel caso de un servosistema no lineal, si la senal de control u(t) es demasiadogrande, entonces el amplificador del voltaje de armadura se puede saturarproduciendose su deterioro.

En presencia de restricciones no es posible la solucion analıtica del pro-blema de minimizacion, debiendo recurrirse a dos posibles soluciones. Laprimera solucion es tratar a todas las variables como si no tuvieran restric-ciones. Posteriormente, conforme a rangos previamente especificados (lasrestricciones), proceder mediante software, con el corte o la limitacion delas magnitudes de las variables con restricciones. La otra solucion requiereel empleo de tecnicas numericas, tales como la programacion cuadratica.Nosotros no trataremos esta alternativa.

Ejemplo 6.4

Determinar la matriz dinamica de control para el proceso del ejemplo 6.1empleando los datos siguientes: N1 = 7, N2 = 12, Nu = 6.

% ejem6_4.m SOLUCION DEL EJEMPLO 6.4clear 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; % tambi’en 0,.01,.02K = 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

Page 317: [-] Control Avanzado - Arturo Rojas Moreno

6.6 Procedimiento de Diseno 303

% 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 PROCESOAc = [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 ORDENT = 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 ESCALONg(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) 0

g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5)g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4)g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3)g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2)g(N1+5) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1)g(N2) g(N2-1) g(N2-2) g(N2-3) g(N2-4) g(N2-5) g(N2-Nu+1)];

6.6. Procedimiento de Diseno

El procedimiento para disenar un sistema de control predictivo basadoen modelos, empleando la matriz dinamica de control es:

1) Formular el problema (definir las especificaciones de diseno).

2) Determinar el modelo CARIMA del proceso (subseccion 6.3).

3) Calcular la respuesta libre del proceso (subseccion 6.5.2).

4) Calcular la respuesta del proceso al escalon (subseccion 6.5.2).

5) Determinar la ley de control (subseccion 6.5.3).

6) Simular el sistema de control predictivo, incluyendo las restricciones.

Page 318: [-] Control Avanzado - Arturo Rojas Moreno

304 Control Predictivo

7) Implementar el hardware.

8) Implementar el software de control.

9) Realizar pruebas de funcionamiento (resultados experimentales).

6.7. Control de Posicion de un Servomotor

6.7.1. Formulacion del Problema

El servomotor D.C. con carga no lineal (discutido ampliamente en laseccion 3.3) es un proceso de una entrada y una salida que puede ser contro-lado por el voltaje de armadura. La carga no lineal es una varilla metalicaacoplada al eje del servomotor, a manera de un brazo robotico de un gradode libertad. En el extremo de la varilla se pueden acoplar cargas adicionales.El objetivo de control es disenar e implementar un sistema de control pre-dictivo basado en modelos, empleando una ley de control escalar dinamica,de modo tal que la varilla se posicione en una referencia predeterminada. Elsobreimpulso de la respuesta debe ser mınimo, no obstante la presencia dela carga no lineal y de las no linealidades del proceso como son las friccionesestatica y de Coulomb, y la saturacion en el amplificador del servomotor.

Modelo del Proceso

La figura 3.9 presenta la estructura del proceso no lineal a controlar. Latabla 3.2 describe las variables y los valores de sus parametros. Asumiendoque la senal de control u esta compensada por las no linealidades y des-preciando la inductancia L del servomotor, el proceso no lineal puede serdescrito mediante el siguiente modelo lineal (subseccion 3.3.5):

x = Acx +Bcu; y = Ccx

Ac =[

0 1−N

M −( BM + Kn2E

MR )

]; Bc =

[0

KnKactMR

]; Cc =

[1 0

]M = Jeff +ML2

o +25MR2

o +13mL2

o); N = gLo(M +m

2)

Jeff = n2Jm + JL; B = n2bm + bL

La funcion de transferencia Gp(s) del proceso puede determinarse de:

Gp(s) =y(s)u(s)

= Cc[sI −Ac]−1Bc

Page 319: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 305

mientras que la funcion de transferencia de pulso Gp(z) se determina de:

Gp(z) =y(z)u(z)

= (1 − z−1)Z[Gp(s)s

]

donde Z[.] es la operacion transformada Z. Dicha funcion de transferenciadepende del tiempo de muestreo T y posee la estructura siguiente:

Gp(z) =y(z)u(z)

=b1z + b2

z2 + a1z + a2=

b1z−1 + b2z

−2

1 + a1z−1 + a2z−2=B(z−1)A(z−1)

que constituye el modelo CARIMA del proceso, con

A(z−1) = 1 + a1z−1 + a2z

−2; B(z−1) = b1z−1 + b2z

−2

Su correspondiente ecuacion de diferencias es:

y(k) = −a1y(k − 1) − a2y(k − 2) + b1u(k − 1) + b2u(k − 2)

Con Mo = 0 (varilla sin carga adicional), los parametros poseen los valoressiguientes: a1=-1.9614 , a2=0.9614 , b1=0.0044 y b2=0.0043 .

6.7.2. Respuesta Libre del Proceso

La expresion para determinar la respuesta libre del proceso en cuestion sedetermino en el ejemplo 6.3. El siguiente programa determina recursivamentela trayectoria deseada W (t), la trayectoria de referencia r(t) y la respuestalibre ylibre. Por simplicidad, emplearemos la notacion: yf = ylibre.

% CONDICIONES Y PARAMETROS INICIALESyf(1)=0; yf(2)=0; yf(3)=0; % yf: RESPUESTA LIBREr(1) =0; r(2) =0; r(3)=0; % r : REFERENCIAalf = 0.01; frec = 0.0063; GW = 1;MM = 1000; n1=1; n2=20;

% REFERENCIA, SALIDA LIBRE Y RESPUESTAS AL ESCALONfor t = 3:MM+2for k = n1:n2

W(t+k) = GW*sign(sin(frec*(t))); % TRAYECTORIA DESEADAr(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);

endend

Page 320: [-] Control Avanzado - Arturo Rojas Moreno

306 Control Predictivo

6.7.3. Respuesta del Proceso al Escalon

La expresion para determinar los coeficientes de la respuesta al escalondel proceso en cuestion, se determino en el ejemplo 6.3. En codigo MATLABel calculo se efectua como sigue:

N1 = 6; N2 = 12; % HORIZONTE DE CONTROL% RESPUESTA AL ESCALONg(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 yN2 = 12. La forma de la ley de control es:

∆u =

∑N2k=N1

g(k)[r(t+ k/t) − ylibre(t+ k/t)]∑N2k=N1

g2(k) + λ

6.7.5. Simulacion del Sistema de Control Predictivo

Primera Simulacion

El programa dispred1.m simula el sistema de control predictivo emple-ando la ley de control descrita en la subseccion 6.7.4 y un modelo lineal desegundo orden del proceso. La carga no lineal a posicionar es maxima. Seesta empleando restriccion en la fuerza de control para evitar la saturaciondel amplificador de potencia. El resultado de esta simulacion se muestra enla figura 6.11.

% dispred1.m PRIMERA SIMULACION DEL SISTEMA DE CONTROL PREDICTIVOclear 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; % tambi’en 0,.01,.020K = 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;

Page 321: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 307

N = g*Lo*(Mo+m/2);% MODELO LINEAL CONTINUO DEL PROCESO DE SEGUNDO ORDENAc = [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 ORDENT = 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);

% HORIZONTESN1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR

% RESPUESTA AL ESCALONg(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 INICIALESyf(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 CONTROLfor t = 2:MM+2for 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 CONTROLdu(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

Page 322: [-] Control Avanzado - Arturo Rojas Moreno

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 LINEALq(t+1) = -a1*q(t) -a2*q(t-1) + b1*u(t) + b2*u(t-1);end

% GRAFICOSejex = (3:MM); ejex = ejex*T;subplot(2,1,1)plot(ejex,W(3:MM),ejex,q(3:MM)); gridylabel(’Posicion q(t) (rad)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,u(3:MM)); gridylabel(’Control u(t) (voltios)’)xlabel(’Tiempo en segundos’)print -f -deps dispred1

0 2 4 6 8 10 12 14 16 18 20−2

−1

0

1

2

Pos

ició

n q

(t)

(ra

d)

Tiempo en segundos

0 2 4 6 8 10 12 14 16 18 20−2

−1

0

1

2

Con

trol

u(t

) (

volti

os)

Tiempo en segundos

Figura 6.11: Primera simulacion del sistema de control predictivo. La cargano lineal es maxima.

Page 323: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 309

Segunda Simulacion

El programa dispred3.m tambien simula el sistema de control predictivoempleando la ley de control descrita en la subseccion 6.7.4 y un modelono lineal de segundo orden del proceso. La carga no lineal a posicionar esmaxima. En esta simulacion se emplea restriccion en la fuerza de controldisenada para no saturar el amplificador de potencia. Tambien se empleacompensacion para minimizar el efecto de la fuerza de friccion de Coulomben la senal de control y restriccion del tipo y(t) = r(t) (la salida iguala ala referencia). El resultado de esta simulacion se muestra en la figura 6.12.Notar que la fuerza de control generada no sobrepasa el rango de ± 1,4 volts,por lo que su implementacion no va a saturar al amplificador de potencia aemplear. Esta es la configuracion que se va a implementar.

% dispred3.mclear 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; % tambi’en 0,.01,.020K = 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 ORDENAc = [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 ORDENT = 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);

% HORIZONTESN1 = 1; N2 =12; Nu =1; % LEY DE CONTROL ESCALAR

% RESPUESTA AL ESCALONg(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

Page 324: [-] Control Avanzado - Arturo Rojas Moreno

310 Control Predictivo

% CONDICIONES INICIALESyf(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 ESCALONfor 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 SALIDAq(t) = r(t);

% LEY DE CONTROLdu(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 COULOMBTN = cc*sign(w(t)); % TORQUE DE FRICCION DE COULOMBif(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 CONTROLfu = 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 ORDENq(t+1) = q(t) + T*w(t);

Page 325: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 311

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% GRAFICOSejex = (3:MM); ejex = ejex*T;subplot(2,1,1)plot(ejex,W(3:MM),ejex,q(3:MM)); gridylabel(’Posicion q(t) (rad)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,u(3:MM)); gridylabel(’Control u(t) (voltios)’)xlabel(’Tiempo en segundos’)print -f -deps dispred3

0 2 4 6 8 10 12 14 16 18 20−1

−0.5

0

0.5

1

Pos

ició

n q

(t)

(ra

d)

Tiempo en segundos

0 2 4 6 8 10 12 14 16 18 20−2

−1

0

1

2

Con

trol

u(t

) (

volti

os)

Tiempo en segundos

Figura 6.12: Segunda simulacion del sistema de control predictivo. La cargano lineal es maxima.

6.7.6. Implementacion del Hardware

El hardware empleado en la implementacion en tiempo real del sistemade control predictivo es similar al empleado para la implementacion en tiem-

Page 326: [-] Control Avanzado - Arturo Rojas Moreno

312 Control Predictivo

po real de los sistemas de control adaptivo, robusto y no lineal. Dicho hard-ware se describe en detalle en la subseccion 5.6.8.

6.7.7. El Software de Control

El software usado para la implementacion del algoritmo de control deposicion emplea el lenguaje C y se ejecuta en una PC Pentium. Los pro-gramas necesarios para el control se estructuran en tres archivos escritos enC: R1LLIB.H, R1LLIB.CPP y PREDI4.CPP. El archivo PREDI4.CPP es elque contiene el algoritmo de control.

La realizacion de archivos ejecutables a partir de los programas fuente, seelabora en el ambiente de trabajo del Borland C/C++ mediante la creacionde un proyecto denominado PREDI4.PRJ, en el cual intervienen los archivosmencionados en el parrafo anterior.

Diagrama de Flujo del Software de Control

El diagrama de flujo del software de control se muestra en la figura 6.13.Notar que tal diagrama comprende los pasos siguientes, para:

1. Inicializar la tarjeta de adquisicion de datos Lab−PC+ y las variablesutilizadas en el programa.

2. Detectar el flanco de subida del pulso de reloj (clock) y leer el primerdato de la posicion (posicion inicial) para iniciar el algoritmo de con-trol.

3. Comprobar que la variable k sea menor que el numero de puntos n. Lavariable n junto con la frecuencia de muestreo determinan el tiempode duracion del experimento.

4. Detectar el flanco de subida del pulso de reloj para iniciar un perıodode adquisicion de datos y de control. Leer la posicion y y aplicar lasrestricciones; luego estimar la velocidad a partir de la posicion.

5. Calcular la senal de control u, compensar las fricciones estatica y deCoulomb (senal v), aplicar restricciones a la senal de control, y luegoenviar la senal u = u + v+offset por el DAC0 de la tarjeta Lab-PC+al generador PWM. El valor del offset es 2.3 volt.

6. Actualizar las variables y repetir el lazo de control hasta que k = n.

Page 327: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 313

LEER POSICION INICIAL P0

INICIO

INICIALIZACION DE LA TARJETA LabPC+

INICIALIZACION DE VARIABLES

k MENOR QUE n

DETECTAR FLANCODE SUBIDA

DETECTAR FLANCODE SUBIDA

CALCULAR POSICION Y VELOCIDADAPLICAR RESTRICCIONES EN Pk

LEER POSICION Pk

GENERAR SALIDA COMPENSADA

FINNO

SI

SI

NO

GENERAR SENAL DE CONTROL

RESTRINGIR LA SENAL DE CONTROLENVIAR LA SENAL COMPENSADAACTUALIZAR VARIABLES

~

~~

Figura 6.13: Diagrama de flujo del algoritmo de control.

Page 328: [-] Control Avanzado - Arturo Rojas Moreno

314 Control Predictivo

El Programa Principal

El programa principal (programa PREDI4.CPP) realiza lo siguiente:

1. Declaracion de los archivos de cabecera: r1llib.h (librerıa de funciones),stdio.h (E/S estandar), math.h (manejo de funciones matematicas),asserth.h (declaracion de macros de depuracion), alloc.h (asignaciondinamica de memoria) y conio.h (funciones de consola y puertos E/S)

2. Declaracion de las constantes globales.

3. Definicion de las funciones propias del programa: Inicializa Sistema,Mide V ariables y Aplica Control

4. Declaracion de las variables globales.

5. Definicion de la funcion principal main.

Las Funciones Propias del Software de Control

A continuacion se describen las funciones propias del software de control.

Inicializa Sistema: permite la inicializacion de los parametros y va-riables globales. Luego, inicializa la tarjeta de adquisicion de datosLab-PC+ por medio de la funcion ConfigurarHardware. Enseguidaenvıa la tension de offset al puerto de salida analogica por medio de lafuncion EnviarV oltage (sic), para asegurar la posicion inicial de re-poso del motor (posicion vertical) y finalmente, lee la posicion inicialp0 del motor.

Mide V ariables: especifica la senal de referencia considerada. Luegomide la posicion actual del motor (posicion de la varilla) y la velocidad(en funcion de la posicion), actualiza los estados de las variables y, w,r y e, y aplica restricciones a la salida.

Aplica Control: compensa las fricciones estatica y de Coulomb y aplicarestricciones a la senal de entrada u. Luego, envıa un voltaje equiva-lente a la suma de la senal de control u (con restriccion), mas la senalde compensacion v, mas la senal del offset (2.3 volt).

La funcion principal main posee una estructura adecuada para:

Page 329: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 315

La declaracion y definicion de variables locales.

El llamado a la funcion Inicializa Sistema.

El llamado a la macro de depuracion.

La asignacion de memoria dinamica que permita almacenar los datospara las variables: u, w, y y r en el proceso de ejecucion del proyecto.

Ejecutar el lazo de control del programa desde k = 0 hasta k = n,donde n es un entero que indica el maximo numero de muestras usadoen la ejecucion del proyecto. Dentro del lazo de control se define laejecucion de la funcion Mide V ariables en cada flanco de subida delpulso de reloj. Luego se genera la senal de control u y se envıa a lasalida del DAC0 la tension ordenada por la funcion Aplica Control.Los valores para y, w, u y r se guardan en memoria. Posteriormentese incrementan k y t, se visualizan en pantalla los valores instantaneosde t, y, w, u y e, y se actualiza el pulso de reloj siempre que k ≤ n.

Al finalizar el tiempo de ejecucion, enviar un voltaje de offset necesariopara detener el motor en su posicion de reposo.

La obtencion de graficos basados en datos almacenados durante eltiempo de ejecucion, abriendo el archivo de salida PREDI4.OUT.

Los Programas Fuente

La trayectoria deseada w considerada en este programa, consiste en cinconiveles de 20 segundos de duracion por nivel. Esos niveles, en orden deejecucion, son: 30o (π/6), 45o (π/4), 60o (π/3), 37,5o (5π/24) y 30o (π/6).

/* PREDI4.CPP *********** programa principal *********/#include "r1llib.h"#include <stdio.h>#include <math.h>#include<assert.h>#include <alloc.h>#include <conio.h>const float ESCALA = 2.*M_PI/(512.*19.7);const float niv1 = 1.*M_PI/6.;const float niv2 = 5.*M_PI/24.;const float niv3 = 1.*M_PI/4.;const float niv4 = 1.*M_PI/3.;

Page 330: [-] Control Avanzado - Arturo Rojas Moreno

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 */

Page 331: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 317

//a1 = -1.6246; a2 = .6246;//b1 = .0479; b2 = .0410;

/* ATENCION: LOS VALORES DE a1, a2, b1, b2 DEPENDEN DE LA Fs */VcFE = .2; VcFC = .15;Wth = .1; Ofst = 2.3;Fs = 100.; T = 1./Fs;tsimul= 100.;

/* PARAMETROS DEL SISTEMA DE CONTROL PREDICTIVO*/q0 = 114.9425;landa = 0.942; alfa = 0.01;

/* INICIALIZACION DE LAS VARIABLES */yant = 0.; y = 0.;eant = 0.; eantant = 0.;rant = 0.; e = 0.;uant = 0.; uantant = 0.;ConfigurarHardware(0x272, 0x270, 0x271, 0x264, Fs);EnviarVoltage(Ofst);p0 = LeerPosicion();

void Mide_Variables(float *y, float *w, float *r, float *vel, float t)

/* Definiendo el setpoint: w= w(t)*/if((0. <= t && t < 20.) || (80. <= t && t <= 100.)) *w = niv1;else if(20. <= t && t < 40.) *w = niv3;else if(40. <= t && t < 60.) *w = niv4;else if(60. <= t && t < 80.)

*w=niv2;/* definiendo la referencia: r=r(t) */*r = alfa*rant + (1-alfa)*(*w);/* Ahora leo la posici\’on */pk = LeerPosicion();*y = yant + ((float)(abs(pk-p0) > 8000 ? 0:pk-p0))*ESCALA;p0 = pk;/* Actualizamos los estados */yant =* y; rant =* r; eantant = eant; eant = e;/* Restricciones en la salida */if(*y < 0.0) *y = 0.0;else if(*y > 1.0*(*r)) *y = 1.0*(*r);/* Y el error */e = *r - *y;/* El error de seguimiento */es = *w - *y;

Page 332: [-] Control Avanzado - Arturo Rojas Moreno

318 Control Predictivo

/* Y la velocidad angular */*vel = (5.*(*y - yant) + *vel)/(1. + 5.*T);

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);

Page 333: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 319

gotoxy(21,15);printf("se~nal de refer.: r=%+5.3f",r*180./M_PI);gotoxy(21,17);printf("se~nal de control: u=%+5.3f",u);gotoxy(21,19);printf("posicion angular: y=%+5.3f",y*180./M_PI);gotoxy(21,21);printf("error de posicion: e=%+5.3f",e*180./M_PI);gotoxy(21,23);printf("error seguimiento: es=%+5.3f",es*180./M_PI);gotoxy(15,25);printf("*****************************************");

if(kbhit()) if(getch() == 27) break;ant = act;

EnviarVoltage(Ofst);out=fopen("predi4.out","wt");for (int i = 0; i<n/5; i++)

fprintf(out,"%10f %10f %10f %10f %10f %10f\n",i*5*T, wb[i], rb[i], yb[i], ub[i], wb[i]-yb[i]);

delete wb, rb, yb, ub;fclose(out);

/* R1LLIB.H ***************************************************** Archivo de declaraciones de funciones definidas en R1LLIB.CPP* Estas funciones permiten facilitar el manejo de la tarjeta de* Adquisicion Lab-PC+: Digital input (16 bits), Analog Output,* Timer generator, Polling. Tambien usa funciones de lecto/* escritura de registros (inportb, outport).*/

#if !defined (__R1LLIB_H_PRY)#define __R1LLIB_H_PRY

// Configuracion de Lab-PC+ (digital in, polling, analog out, timer)void ConfigurarHardware (unsigned, unsigned, unsigned, unsigned,int);

// Salida de Voltage por R1LAOPortvoid EnviarVoltage(float);

// Leer Posicion (16 bits leidos por R1LLSBPort y R1LMSBPort)unsigned int LeerPosicion();

// Leer Nivel del clock (polling). Devuelve 0 o 1int NivelClock ();#endif

Page 334: [-] Control Avanzado - Arturo Rojas Moreno

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 entradastatic unsigned R1LMSBPort; // direccion puerto dig. de controlstatic unsigned R1LPollPort; // direccion puerto dig. de pollingstatic unsigned R1LAOPort; // direccion de la salida analogicastatic 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 = timer0DIG_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);

Page 335: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 321

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);

6.7.8. Resultados Experimentales

En esta subseccion se presentan los resultados experimentales del sistemade control para posicionar el angulo de salida del servomotor D.C., sujetoa cargas no lineales, empleando restricciones tanto en la fuerza de controlcomo en la salida. Para los casos presentados, la trayectoria deseada es unacurva discontinua escalonada. Las respuestas controladas (en lıneas de trazo)se muestran en las figuras 6.14, 6.15, 6.16 y 6.17

De acuerdo a la seccion 3.3, la inercia total de la carga no lineal es:

JT = JL +13mL2

o +MoL2o +

25MoR

2o = J +

25MoR

2o

donde J es la inercia total originada por la varilla (sin carga adicional). Losotros parametros se detallan en la tabla 3.2. Podemos notar que variandola carga adicional (la esfera de radio Ro y masa Mo), variamos tambien lacarga total. Esto es lo que haremos en las experiencias. Para todos los casos,se ha considerado un factor de filtraje α = 0,01.

La figura 6.14 muestra el caso sin carga adicional; es decir, con una cargainercial total JT = J . La figura 6.15 corresponde a la respuesta controladacuando se incrementa la inercia de la carga no lineal en 42 % (es decir,cuando JT = 1,42J), mientras que las figuras 6.16 y 6.17 muestran las curvasde respuesta controlada para los casos cuando JT = 1,84J y JT = 2,98J ,respectivamente. En todos los casos se cumplen las especificaciones de diseno(ver la subseccion 6.7.1).

Page 336: [-] Control Avanzado - Arturo Rojas Moreno

322 Control Predictivo

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70R p t a . a e s c a l o n e s v a r i a n t e s p a r a u n a c a r g a J

t ( s e g )

P o

s i

c i ó

n (

g r

a d

o s

)

− :w

− −:y

Figura 6.14: Salida controlada y (curva en trazos) para una carga inercialde JT = J kg-m2.

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70R p t a . a e s c a l o n e s v a r i a n t e s p a r a 1 . 4 2 J

t ( s e g )

P o

s i

c i ó

n (

g r

a d

o s

)

− :w

− −:y

Figura 6.15: Salida controlada y (curva en trazos) para una carga inercialde JT = 1,42J kg-m2.

Page 337: [-] Control Avanzado - Arturo Rojas Moreno

6.7 Control de Posicion de un Servomotor 323

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70R p t a . a e s c a l o n e s v a r i a n t e s p a r a 1 . 8 4 J

t ( s e g )

P o

s i

c i ó

n (

g r

a d

o s

)

− :w

− −:y

Figura 6.16: Salida controlada y (curva en trazos) para una carga inercialde JT = 1,84J kg-m2.

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70R p t a . a e s c a l o n e s v a r i a n t e s p a r a 2 . 9 8 J

t ( s e g )

u (

t ) :

v o

l t i

o s

− :w

− −:y

Figura 6.17: Salida controlada y (curva en trazos) para una carga inercialde JT = 2,98J kg-m2.

Page 338: [-] Control Avanzado - Arturo Rojas Moreno

324 Control Predictivo

6.8. Problemas Resueltos

En la seccion problemas resueltos de los capıtulos 4 al 8, la solucion a losproblemas se encuentra, segun el caso, en uno o mas archivos con extensionm escritos en codigo MATLAB. La seleccion del tiempo de muestreo paracada problema es a conveniencia del diseno.

Problema 6.1

El problema 3.2 presenta las ecuaciones que gobiernan la dinamica longitudi-nal de un avion comercial volando a velocidad de crucero (altura y velocidadconstantes). El control del angulo de inclinacion θ del avion (ver figura 3.14)es un problema longitudinal a resolver. El objetivo de control es entoncesdisenar un autopiloto que manipulando el angulo δe del deflector de ele-vacion, controle el angulo de inclinacion del avion. Disenar un sistema decontrol predictivo que genere una fuerza de control escalar, de modo quela salida del proceso (el angulo de inclinacion θ) presente un sobreimpulsomenor al 5 %, un tiempo de estabilizacion menor que 10 s y error en estadoestable nulo. Asumir 1 rad de entrada de referencia.

Solucion: Ver el programa p4pred1.m.

% p4pred1.m SOLUCION DEL PROBLEMA 6.1: CONTROL DE LA INCLINACION% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL ESCALARclear all

% FUNCION DE TRANSFERENCIA DE LA PLANTA EN TIEMPO CONTINUOnumc=[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 DISCRETOtm=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 CONTROLN1 =1; N2 =10; Nu =1;

% RESPUESTA AL ESCALONg(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;

Page 339: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 325

end% CONDICIONES INICIALESfor k=1:4

yf(k)=0; y(k)=0; r(k)=0; u(k)=0;endalf = 0.1; lambda=0; MM = 500;

% LAZO DE CONTROLfor t=4:MM+3;

% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yffor k=1:N2W(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 CONTROLdu(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 CARIMAy(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

% GRAFICOSejex=linspace(0,MM*tm,MM-3);subplot(2,1,1)plot(ejex,W(4:MM),ejex,y(4:MM)); gridylabel(’y: Inclinacion (rad) ’)subplot(2,1,2)plot(ejex,u(4:MM)); gridxlabel(’TIEMPO : SEG’)ylabel(’u: Angulo del deflector (rad)’)print -deps -f p4pred1

Problema 6.2

Para el proceso del problema 6.2, disenar un sistema de control predictivoque genere una matriz dinamica de control, de modo tal que el angulo deinclinacion del avion siga una trayectoria arbitraria, pero predeterminada.

Page 340: [-] Control Avanzado - Arturo Rojas Moreno

326 Control Predictivo

0 100 200 300 400 500 600 700−2

−1

0

1

2

y: In

clin

ació

n (r

ad)

0 100 200 300 400 500 600 700−2

−1

0

1

2

TIEMPO : SEG

u: A

ngul

o de

l def

lect

or (

rad)

Figura 6.18: Angulo de inclinacion θ y senal de control (angulo del deflector)correspondientes al problema 6.1.

Solucion: Ver el programa p4pred2.m.

% p4pred2.m SOLUCION DEL PROBLEMA 6.2: CONTROL DE LA INCLINACION% DE UN AVION USANDO CONTROL PREDICTIVO CON CONTROL MATRICIALclear all

% FUNCION DE TRANSFERENCIA CONTINUA DE LA PLANTAnumc=[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 PLANTAtm=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 CONTROLN1 =1; N2 =10; Nu =5;

Page 341: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 327

% RESPUESTA AL ESCALONg(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 ESCALONGG=[g(1) 0 0 0 0

g(2) g(1) 0 0 0g(3) g(2) g(1) 0 0g(4) g(3) g(2) g(1) 0g(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 INICIALESfor k=1:4

yf(k)=0; y(k)=0; r(k)=0; u(k)=0;endalf = 0.1; lambda = 0.98; MM = 500; du(1)=0;I=eye(5,5); % MATRIZ IDENTIDAD

% LAZO DE CONTROLfor t =4:MM+3

% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yffor k=1:N2W(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 rR=[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 YFYF=[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 CONTROLU=inv(GG’*GG+lambda*I)*GG’*(R-YF);du=U(1);u(t) = u(t-1) + du;

% PROCESOy(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2) ...

Page 342: [-] Control Avanzado - Arturo Rojas Moreno

328 Control Predictivo

+b1*u(t)+b2*u(t-1)+b3*u(t-2);end % FIN DEL BUCLE DE CONTROL

% GRAFICOSejex=(4:MM); ejex=ejex*tm;subplot(2,1,1)plot(ejex,W(4:MM),ejex,y(4:MM)), gridylabel(’y: Inclinacion (rad) ’)subplot(2,1,2)plot(ejex,u(4:MM)), gridxlabel(’TIEMPO : SEG’)ylabel(’u: Angulo del deflector (rad)’)print -deps -f p4pred2

0 200 400 600 800 1000 1200−1

0

1

2

3

4

y: In

clin

ació

n (r

ad)

0 200 400 600 800 1000 1200−0.2

−0.1

0

0.1

0.2

0.3

TIEMPO : SEG

u: A

ngul

o de

l def

lect

or (

rad)

Figura 6.19: Angulo de inclinacion θ y senal de control (angulo del deflector)correspondientes al problema 6.2.

Problema 6.3

La figura 3.20 muestra el proceso monorriel de dos carros descrito en elproblema 3.5. El problema a resolver es el control de velocidad del carro de

Page 343: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 329

maquinas mediante un sistema de control predictivo con fuerza de controlescalar. Para garantizar a los pasajeros un viaje confortable, los cambios develocidad deben realizarse con un tiempo de estabilizacion menor que 10 s ycon mınimo sobreimpulso. El error en estado estable debe ser nulo. Simuleuna senal de referencia que cambie la velocidad de 30 a 20 m/s y demuestreque se cumplen las especificaciones de diseno. Luego enfrente el problemade seguimiento. Mostrar que la velocidad de la maquina puede seguir unadeterminada trayectoria predeterminada de velocidades.

Solucion: Ver el programa p7pred1a.m. El programa p7pred1b.m trata elcaso de referencia arbitraria. Revise ese programa si desea ver detalles alrespecto.

% 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.mclear all

% DATOS DEL PROCESOM1=1300; M2=2600; M3=2600; K12=100000; K23=100000;B12=500; B23=500; B1=5000; B2=10000; B3=10000;

% MODELO DEL PROCESOA=[0 1 0 0 0 0

-K12/M1 -(B1+B12)/M1 K12/M1 B12/M1 0 00 0 0 1 0 0

K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M20 0 0 0 0 10 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3];

B=[0 1 0 0 0 0]’;alfa = 1; % CONSTANTE TACOMETRICAC=[ 0 alfa 0 0 0 0

0 0 0 alfa 0 00 0 0 0 0 alfa];

D=[0;0;0];[numc,denc]=ss2tf(A,B,C,D);

% MODELO DEL PROCESO EN TIEMPO DISCRETOtm=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);

Page 344: [-] Control Avanzado - Arturo Rojas Moreno

330 Control Predictivo

b1=numd(2); b2=numd(3); b3=numd(4); b4=numd(5);b5=numd(6); b6=numd(7);

% HORIZONTESN1 =1; N2 =10; Nu =1;

% RESPUESTA AL ESCALONg(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 INICIALESfor k=1:7

yf(k)=0; y(k)=0; r(k)=0; u(k)=0;endalf =0.1; lambda = 0; MM=500;

% LAZO DE CONTROLfor t=7:MM+6;

% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yffor k=1:N2W(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 CONTROLdu(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);

% PROCESOy(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)...

Page 345: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 331

+b5*u(t-4)+b6*u(t-5);end

% GRAFICOSejex=linspace(0,MM*tm,MM-6);subplot(2,1,1)plot(ejex,W(7:MM),ejex,y(7:MM)); gridylabel(’Y1: Velocidad (m/s)’)subplot(2,1,2)plot(ejex,u(7:MM)); gridxlabel(’Tiempo (segundos)’)ylabel(’Control u (volt)’)print -deps -f p7pred1a

0 50 100 1500

10

20

30

40

Y1:

Vel

ocid

ad (

m/s

)

0 50 100 150−50

0

50

100

150

Tiempo (segundos)

Con

trol

u (

volt)

Figura 6.20: Velocidad del carro de maquinas y la fuerza de control para elproblema 6.3.

Problema 6.4

Resuelva nuevamente el problema 6.3, pero esta vez usando un sistema decontrol predictivo con fuerza de control matricial.

Solucion: El programa p7pred2a.m resuelve el problema planteado y suresultado se muestra en la figura 6.22. El programa p7pred2b.m trata elcaso de referencia arbitraria y su resultado se ilustra en la figura 6.23.

Page 346: [-] Control Avanzado - Arturo Rojas Moreno

332 Control Predictivo

0 50 100 150 200 250 3000

5

10

15

20

Vel

ocid

ad

(m/s

)

0 50 100 150 200 250 300−20

0

20

40

60

Tiempo (Segundos)

Con

trol

u (

volt)

Figura 6.21: Velocidad del carro de maquinas y la fuerza de control para elproblema 6.3. La referencia es arbitraria.

Problema 6.5

La figura 3.22 muestra el proceso ascensor que fue tratado en el problema3.6. El problema a resolver es posicionar suavemente el ascensor en un pisodeterminado, lo que significa sobreimpulso nulo (para que no se pase de piso)y tiempo de estabilizacion menor que 10 s. Para no saturar al actuador (unamplificador de potencia), la senal de control debe estar dentro del rangode ± 200 volt. Disenar un sistema de control de posicion predictivo confuerza de control escalar que cumpla las especificaciones pedidas. Con elobjeto de cumplir tales especificaciones, tambien se puede usar restricciona la salida; es decir, para cada tiempo de muestreo, hacer que la posicioncontrolada iguale la senal de referencia. Es interesante anotar, que dicharestriccion origina en la simulacion una respuesta que sigue perfectamentea la referencia. Logicamente, los resultados de la implementacion en tiemporeal con tal restriccion, no son tan perfectos como lo son en la simulacion,tal como sucede en el caso del control predictivo del servomotor con cargano lineal (subseccion 6.7.8).

% p8pred1.m SOLUCION DEL PROBLEMA 6_5: CONTROL DE POSICION% DE UN ASCENSOR USANDO CONTROL PREDICTIVO CON FUERZA% DE CONTROL ESCALAR Y CON RESTRICCION EN LA SALIDAclear all

Page 347: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 333

0 50 100 1500

10

20

30

40

Y1:

Vel

ocid

ad (

m/s

)

0 50 100 150−50

0

50

100

Tiempo (segundos)

u: c

ontr

ol

Figura 6.22: Velocidad del carro de maquinas y la fuerza de control para elproblema 6.4.

% ECUACION DE ESTADOA=[-0.2 0 0 0

1 0 0 02 0 -2 05 0 0 -5];

B=[0.001;0;0;0]; C=[0 1 0 0]; D=[0];% PROCESO EN TIEMPO DISCRETOtm=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 CONTROLN1 =1; N2 =10; Nu =1;

% RESPUESTA AL ESCALONg(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:N2g(k) = -a1*g(k-1)-a2*g(k-2)-a3*g(k-3)-a4*g(k-4)+b1+b2+b3+b4;end

Page 348: [-] Control Avanzado - Arturo Rojas Moreno

334 Control Predictivo

0 100 200 300 400 500 600 700 800 900 10000

5

10

15

20

Vel

ocid

ad v

1 (

m/s

)

0 100 200 300 400 500 600 700 800 900 1000−5

0

5

10

15

Tiempo (Segundos)

u: F

uerz

a de

con

trol

Figura 6.23: Velocidad del carro de maquinas y la fuerza de control para elproblema 6.4. La referencia es arbitraria.

% CONDICIONES INICIALESfor k=1:5

yf(k)=0; y(k)=0; r(k)=0; u(k)=0;endalf =0.1; lambda = 0.00;MM=300;

% LAZO DE CONTROLfor t =5:MM+4;

% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yffor k=1:N2W(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 SALIDAy(t) = W(t);

% LEY DE CONTROLdu(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)) + ...

Page 349: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 335

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 AMPLIFICADORif(u(t) > 200)u(t) = 200;elseif(u(t) < -200)u(t) = 200;end

% PROCESOy(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

% GRAFICOSejex=linspace(0,MM*tm,MM-4);subplot(2,1,1)plot(ejex,W(5:MM),ejex,y(5:MM)); gridylabel(’POSICION (m)’)xlabel(’TIEMPO EN SEGUNDOS’)subplot(2,1,2)plot(ejex,u(5:MM)); gridxlabel(’TIEMPO EN SEGUNDOS’)ylabel(’VOLTAJE DE CONTROL’)print -deps -f p8pred1

Problema 6.6

Resuelva nuevamente el problema 6.5, pero esta vez usando un sistema decontrol predictivo con fuerza de control matricial.

Solucion: El programa p8pred2a.m resuelve el problema planteado y suresultado se muestra en la figura 6.25.

Problema 6.7

La figura 2.2 muestra dos tanques identicos colocados en cascada. La sec-cion horizontal A=9 m2 de cada tanque es constante. El objetivo de controles controlar la altura H2 empleando el flujo Qo. La deduccion del modelolinealizado del proceso se derivo en el ejemplo 2.1. Disenar un controladorpredictivo del tipo escalar con los requerimientos siguientes: tiempo de es-tabilizacion menor que 15 s, sobreimpulso menor al 10 % y error en estado

Page 350: [-] Control Avanzado - Arturo Rojas Moreno

336 Control Predictivo

0 50 100 150 200 250 300−4

−2

0

2

4

PO

SIC

ION

(m

)

TIEMPO EN SEGUNDOS

0 50 100 150 200 250 300−200

−100

0

100

200

TIEMPO EN SEGUNDOS

VO

LTA

JE D

E C

ON

TR

OL

Figura 6.24: Posicion del ascensor y la fuerza de control (problema 6.5).

0 100 200 300 400 500 600−4

−2

0

2

4

PO

SIC

ION

(m

)

0 100 200 300 400 500 600−100

0

100

200

TIEMPO EN SEGUNDOS

VO

LTA

JE D

E C

ON

TR

OL

Figura 6.25: Posicion del ascensor y la fuerza de control correspondientes alproblema 6.6.

Page 351: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 337

estable nulo. Estas condiciones de diseno deben mantenerse cuando se cam-bie la referencia (por ejemplo de 3 a 2 m). Ademas, el flujo de entrada (lasenal de control) no debe sobrepasar los 3 m3/s.

% p9pred1.m SOLUCION DEL PROBLEMA 6.7 CONTROL DE NIVEL% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALARclear all

% PARAMETROS DEL SISTEMAA = 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 CONTINUOAc = [-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 ESCALONg1 = 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 CONTROLN1 = 1; N2 =10; Nu =1; % control escalar

% CONDICIONES INICIALESfor k=1:3

yf(k)=0; y(k)=0; r(k)=0; u(k)=0;endalf = 0.1; lambda = 0; MM = 500;

% LAZO DE CONTROLfor t =3:MM+2

% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yffor k=1:N2W(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 CONTROLdu(t)=(g1*(r(t+1)-yf(t+1))+g6*(r(t+6)-yf(t+6))+ ...

Page 352: [-] Control Avanzado - Arturo Rojas Moreno

338 Control Predictivo

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);% 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 CONTROLfu = 3.0;if(u(t) > 0 & u(t) > fu)

u(t) = fu;elseif(u(t) < 0 & u(t) < -fu)

u(t) = -fu;endend % FIN DEL LAZO DE CONTROL **************

% GRAFICOSejex = linspace(0,MM*T,MM-2);subplot(2,1,1)plot(ejex,W(3:MM),ejex,Y(3:MM)); gridylabel(’NIvel H2 (m)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,u(3:MM)); gridylabel(’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 decontrol predictivo con fuerza de control matricial.

Solucion: El programa p9pred2.m resuelve el problema planteado y su re-sultado se muestra en la figura 6.27.

Problema 6.9

El proceso electromecanico mostrado en la figura 3.26 se describe en el pro-blema 3.8. Se pide disenar un sistema de control predictivo con fuerza de

Page 353: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 339

0 50 100 150 200 250 300 350 400 4500

0.5

1

1.5

2

2.5

NIv

el

H2

(m

)

Tiempo en segundos

0 50 100 150 200 250 300 350 400 450−2

−1

0

1

2

3

Flu

jo d

e c

ontr

ol (

m^3

/s)

Tiempo en segundos

Figura 6.26: Nivel controlado H2 y el flujo de control para el problema 6.7.

0 50 100 150 200 250 300 350 400 4500

0.5

1

1.5

2

2.5

NIv

el

H2

(m

)

Tiempo en segundos

0 50 100 150 200 250 300 350 400 450−1

0

1

2

Flu

jo d

e c

ontr

ol (

m^3

/s)

Tiempo en segundos

Figura 6.27: Nivel controlado H2 y el flujo de control para el problema 6.8.

Page 354: [-] Control Avanzado - Arturo Rojas Moreno

340 Control Predictivo

control escalar, para controlar la velocidad angular del eje del motor me-diante el voltaje de entrada que puede variar entre ± 100 volt. El tiempo deestabilizacion de la senal controlada (la velocidad) debe ser menor que 6 sy dicha respuesta debe presentar un sobrepico maximo de 5 %, con error enestado estable nulo.

% p11pred1.m SOLUCION DEL PROBLEMA 6_9% CONTROL DE VELOCIDAD DEL SISTEMA ELECTROMECANICO% USANDO CONTROL PREDICTIVO CON CONTROL du ESCALARclear all

% PARAMETROS DEL SISTEMAJ = 0.01; Ke = 0.01; Kt = 0.01;R = 12; C = 0.5; L = 0.5; Kw = 1.8;

% MODELO DEL PROCESO EN TIEMPO CONTINUOAc = [-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 ESCALONg1 = 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 CONTROLN1 = 1; N2 = 10; Nu = 1;

% CONDICIONES INICIALESfor k = 1:4

yf(k) = 0; y(k) = 0; r(k) = 0; u(k) = 0;enddu(1) = 0;alf = 0.85; lambda = 0;

% LAZO DE CONTROL

Page 355: [-] Control Avanzado - Arturo Rojas Moreno

6.8 Problemas Resueltos 341

MM=1000;for t =4:MM+3

% TRAYECTORIA DESEADA, REFERENCIA r Y RESPUESTA LIBRE yffor k=1:N2W(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 CONTROLdu(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

% PROCESOy(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

% GRAFICOSejex=linspace(0,MM*T,MM-3);subplot(2,1,1)plot(ejex,W(4:MM),ejex,y(4:MM)); gridylabel(’Velocidad (rad/s)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,u(4:MM)); gridxlabel(’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 decontrol predictivo con fuerza de control matricial. La trayectoria deseadadebe ser una curva arbitraria (problema de seguimiento).

Page 356: [-] Control Avanzado - Arturo Rojas Moreno

342 Control Predictivo

0 10 20 30 40 50 60 70 80 90 100−5

0

5

Vel

ocid

ad

(rad

/s)

Tiempo en segundos

0 10 20 30 40 50 60 70 80 90 100−100

−50

0

50

100

Tiempo en segundos

Vol

taje

de

cont

rol

Figura 6.28: Velocidad angular controlada y el voltaje de control para elproblema 6.9.

Solucion: El programa p11pred2.m resuelve el problema planteado y suresultado se muestra en la figura 6.29.

6.9. Problemas Propuestos

Problema 6.11

En el proceso de la figura 3.24(a) (ver problema 3.7) se desea reducir lahumedad h del material a granel de la tolva. La banda transportadora, quese desplaza a una velocidad v = 1 m/s constante, introduce el material a unhorno de secado. El sensor de humedad detecta hr a una distancia d = 10 mdel horno y proporciona la senal de voltaje vr. El horno puede modelarsecomo un proceso de primer orden. La figura 3.24(b) muestra la F.T del pro-ceso. Disenar dos sistemas de control predictivo basado en modelos, uno confuerza de control escalar y otro con fuerza de control matricial (la seleccionde los valores de los horizontes es a conveniencia del problema planteado).El objetivo de control es estabilizar la humedad del material en la bandatransportadora. Con fines de modelado del proceso, el tiempo muerto puedeser descrito empleando la aproximacion de Pade de tercer orden (ver ejemplo

Page 357: [-] Control Avanzado - Arturo Rojas Moreno

6.9 Problemas Propuestos 343

0 20 40 60 80 100 120 140 160 180 200−5

0

5

10

15

Vel

ocid

ad

(rad

/s)

Tiempo en segundos

0 20 40 60 80 100 120 140 160 180 200−2

−1

0

1

2

3

Tiempo en segundos

Vol

taje

de

cont

rol

Figura 6.29: Velocidad angular controlada y el voltaje de control para elproblema 6.10.

2.12):

e−Ts ≈ num(s)den(s)

=1 − Tts/2 + (Tts)2/10 − (Tts)3/1201 + Tts/2 + (Tts)2/10 + (Tts)3/120

Las especificaciones de diseno para ambos sistemas de control son: tiempo deestabilizacion menor que 40 s, error en estado estacionario nulo y porcentajede sobreimpulso menor al 5 %. La seleccion del tiempo de muestreo y de loshorizontes de control es a conveniencia del diseno.

Problema 6.12

Las ecuaciones del modelo linealizado para controlar la posicion del canonmontado en la torreta de un tanque (ver figura 3.28) empleando un actuadorhidraulico se detallan en el problema 3.9.

(a) Disenar un sistema de control predictivo basado en modelos para con-trolar el angulo de elevacion θ con las especificaciones siguientes: tiem-po de estabilizacion menor que 5 s, mınimo sobreimpulso y error enestado estacionario nulo, empleando fuerza de control escalar. Los dis-turbios tipo escalon pueden actuar simultaneamente y pueden ser pos-

Page 358: [-] Control Avanzado - Arturo Rojas Moreno

344 Control Predictivo

itivos o negativos. El sistema de control disenado debe ser capaz deminimizar sus efectos.

(b) Lo mismo que (a) pero empleando fuerza de control matricial. La se-leccion de los horizontes de control es a conveniencia del problemaplanteado.

(c) Lo mismo que (a), pero en este caso para controlar el angulo azimutal.

(d) Lo mismo que (c), pero empleando fuerza de control matricial. Entodos los casos la seleccion del tiempo de muestreo y los horizontes decontrol es a conveniencia del diseno.

Problema 6.13

La figura 3.31 muestra el proceso servomotor con carga no lineal descritoen la seccion 3.3, en donde la carga no lineal posee ahora dos grados delibertad con Lo = 2L1/3 y Mo=0.02 kg. La union de la carga con el ejedel servomotor no es flexible. Las ecuaciones que describen la dinamica delsistema son materia del problema 3.12.

(a) Disenar un sistema de control predictivo basado en modelos para con-trolar simultaneamente las posiciones θ y τ con mınimo tiempo deestabilizacion y mınimo sobreimpulso, empleando una fuerza de con-trol escalar.

(b) Lo mismo que (a) pero empleando una fuerza de control matricial. Laseleccion de los horizontes de control y del tiempo de muestreo es aconveniencia del problema planteado.

Problema 6.14

La figura 3.32 muestra el proceso pendulo doble no lineal, el cual es unaextension del pendulo simple descrito en la seccion 3.1. El acoplamientoentre los dos pendulos de igual longitud no es flexible. Las ecuaciones quedescriben la dinamica del sistema son materia del problema propuesto 3.13.

(a) Disenar un sistema de control predictivo basado en modelos para con-trolar simultaneamente las posiciones θ y τ con mınimo tiempo deestabilizacion y mınimo sobreimpulso, empleando para ello una fuerzade control escalar, de modo tal que el pendulo doble permanezca enposicion vertical. Considerar que la carga esferica es de 0.02 kg.

Page 359: [-] Control Avanzado - Arturo Rojas Moreno

6.9 Problemas Propuestos 345

(b) Lo mismo que (a) pero empleando una fuerza de control matricial.

La seleccion de los horizontes de control y del tiempo de muestreo esa conveniencia del problema planteado.

Problema 6.15

La figura 3.33 muestra el proceso doble grua puente no lineal, el cual es unaextension del proceso grua puente escrito en la seccion 3.2. El acoplamientoentre las dos secciones iguales de la varilla no es flexible. Las ecuaciones quedescriben la dinamica del sistema son materia del problema propuesto 3.14.Considerar que la carga esferica es de 0.02 kg.

(a) Disenar un sistema de control predictivo basado en modelos para con-trolar simultaneamente las posiciones θ y τ con mınimo tiempo deestabilizacion y mınimo sobreimpulso empleando para ello una fuerzade control escalar, de modo tal que la grua-puente doble permanezcaen posicion vertical.

(b) Lo mismo que (a) pero empleando para ello una fuerza de controlmatricial. La seleccion de los horizontes de control y del tiempo demuestreo es a conveniencia del problema planteado.

Problema 6.16

La figura 1.1 muestra un carro de masa m = 1000 kg desplazandose con unavelocidad v gracias a la accion de la fuerza u producida por su motor. Si sedesprecia la inercia de las ruedas y se asume que la fuerza de friccion bv,donde b= 50 N-s/m es el coeficiente de friccion, es lo unico que se oponeal movimiento del carro, entonces la dinamica del proceso puede modelarsecomo (ver ejemplo 1.16):

mv(t) + bv(t) = u(t); v =dv

dt

(a) Disenar un sistema de control predictivo basado en modelos para con-trolar la velocidad del movil con mınimo tiempo de estabilizacion ymınimo sobreimpulso. La senal de referencia puede ser arbitraria (pro-blema de seguimiento) y la fuerza de control a disenar es escalar.

(b) Lo mismo que (a), pero empleando fuerza de control matricial. Laseleccion los valores de los horizontes y el tiempo de muestreo son aconveniencia del problema planteado.

Page 360: [-] Control Avanzado - Arturo Rojas Moreno

346 Control Predictivo

Problema 6.17

El motor D.C. es un actuador muy popular en los sistemas de control porquesu movimiento rotatorio, mediante acoples adecuados en su eje, puede con-vertirse facilmente en movimiento de traslacion. Eso se aprecia en fajas trans-portadoras o en brazos manipuladores. La figura 4.3 muestra el circuito dearmadura del motor y el diagrama de cuerpo libre de su rotor. Las ecuacionesque gobiernan el comportamiento dinamico del motor fueron derivadas enel ejemplo 4.1.

(a) Disenar dos sistemas de control predictivo basado en modelos. Elprimero, para estabilizar la velocidad angular del eje del motor conlas especificaciones siguientes: tiempo de estabilizacion menor que 4 s,error en estado estable menor al 1 % y sobreimpulso a la salida menoral 5 %, y el segundo para estabilizar la posicion del eje del motor conlas mismas especificaciones de diseno.

(b) Repetir (a) pero en este caso empleando una fuerza de control matri-cial. La seleccion de los horizontes de control y del tiempo de muestreoes a conveniencia del problema planteado.

Page 361: [-] Control Avanzado - Arturo Rojas Moreno

Capıtulo 7

Control Robusto

En este capıtulo se desarrollan dos procedimientos para disenar sistemas decontrol robusto. El primero emplea la estructura de un sistema de control conmodelo interno y se aplica a procesos univariables que presentan comportamien-to estable. El segundo procedimiento usa la estructura clasica de un sistema decontrol realimentado, pero su controlador se disena mediante el principio decontrol con modelo interno y se aplica a procesos univariables inestables.

El sistema de control robusto debe ser capaz de minimizar asintoticamenteel error entre la salida y una trayectoria de referencia, no obstante la presenciade disturbios y de incertidumbres en el modelado. Para tal efecto, el sistemade control debe satisfacer los requerimientos de estabilidad y rendimiento ro-bustos. En la antepenultima seccion de este capıtulo se presenta la aplicacion:control de la posicion de un servomotor D.C. sujeto a cargas no lineales. Lapenultima seccion, problemas resueltos, esta dedicada al diseno de sistemas decontrol robusto para diferentes procesos. Todos los archivos correspondientesa los ejercicios, problemas, disenos, simulaciones y software desarrollados sepueden descargar del sitio: http://fiee.uni.edu.pe/728681F.

7.1. Estructura del Control con Modelo Interno

La figura 7.1 muestra el diagrama de bloques de un sistema de control dis-creto convencional, donde el bloque c es el controlador, el bloque hr0(s) es laretencion (o memoria) de orden cero, el bloque p(s) es el proceso a controlar,el bloque γ(s) es un filtro pasa bajo, y r∗, u, d, y e yγ son las senales dereferencia, de control (la variable manipulada), de disturbio, de salida delproceso (la variable controlada), y de salida filtrada, respectivamente. La

Page 362: [-] Control Avanzado - Arturo Rojas Moreno

348 Control Robusto

c(z) hr0(s)u

p(s)yr∗

γ(s)y∗

γ yγ

d

T

Figura 7.1: Sistema de control discreto convencional.

notacion empleada responde a los fundamentos tratados en el capıtulo 2.Por ejemplo, si la senal continua yγ(t) pasa por un muestreador con perıodode muestreo T , entonces a la salida del muestreador se obtiene una secuenciade impulsos y∗γ que satisface la relacion:

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 )e−skT (7.2)

Si alternativamente representamos la senal yγ(t) por su serie de Fourier:

y∗γ(t) =1T

∞∑k=−∞

yγ(kT )eikωst (7.3)

donde ωs = 2π/T es la frecuencia de muestreo, entonces:

L[y∗γ(t)] = y∗γ(esT ) =1T

∞∑k=−∞

yγ(s+ ikωs) (7.4)

Notar que hemos usado la relacion basica z = esT . Tambien es util recordarque la transformada Z de yγ(t) se puede expresar como:

Z[yγ(kT )] = yγ(z) (7.5)

Page 363: [-] Control Avanzado - Arturo Rojas Moreno

7.1 Estructura del Control con Modelo Interno 349

Una funcion racional y periodica posee la propiedad de que sus valores parafrecuencias mayores que π/T se pueden determinar a partir de aquellos va-lores correspondiente al intervalo 0 ≤ w ≤ π/T . Ademas, si yγ(z) esperiodica, tambien es hermitiana; es decir:

yγ(eiωT )H = yγ(e−iωT ) = yγ(ei(ωs−ω)T )H ; π/T < w < 2π/T (7.6)

Considere ahora el diagrama de bloques mostrado en la figura 7.2 corres-pondiente a la estructura de un sistema CMI (Control con Modelo Interno),la que comparada con la estructura convencional, presenta grandes ventajasque vamos a discutir mas adelante. Las relaciones entre el controlador clasicoc(z) y el controlador q(z) (el controlador CMI) se obtienen de la figura 7.2Bo de su forma alternativa la figura 7.2C. Estas relaciones son:

c =q

1 − p q(7.7)

q =c

1 + p c(7.8)

donde p es el bloque proceso y p es el bloque modelo del proceso. Observaren la figura 7.2B que el controlador c tiene como entradas la referencia r∗ yla senal medible y, y como salida la senal de control u.

La figura 7.3 muestra la estructura discreta CMI, en donde el sistemade control incluye q(z), p(s) y γ(s). Observar en dicha figura que el caminoparalelo que forma el modelo del proceso es para sustraer el efecto de lavariable manipulada u de la salida del proceso y. Si asumimos que el modeloes una representacion perfecta del proceso, entonces la senal realimentadaes igual a la influencia de los disturbios y no es afectada por la accion dela variable manipulada. En esta situacion, el sistema se comporta comouno de lazo abierto y los problemas usuales de estabilidad asociados con larealimentacion desaparecen.

Sin demostracion se presenta el concepto de estabilidad interna para elsistema CMI de la figura 7.3A.

Estabilidad Interna: Asumiendo que el modelo es perfecto, es decir quep(s) = p(s), entonces el sistema CMI de la figura 7.3A es internamente es-table sı y solo si la planta p(s) y el controlador q(z) son estables.

El controlador CMI juega el rol de un controlador anticipativo y puedeser disenado como tal, pero con la capacidad adicional de poder cancelar

Page 364: [-] Control Avanzado - Arturo Rojas Moreno

350 Control Robusto

A

r yq p

u−

d

−p

B

r

cd

−q p

p

C

r u yd

q

−−

c p

p p

Figura 7.2: Representaciones alternativas del Control con Modelo Interno.

Page 365: [-] Control Avanzado - Arturo Rojas Moreno

7.1 Estructura del Control con Modelo Interno 351

la influencia de los disturbios no medibles, debido a que en la estructuraCMI, la senal de realimentacion lleva consigo la influencia de los disturbios.Cuando la senal realimentada de la estructura CMI se compara con la senalde referencia, se genera una senal de error que el sistema de control debeminimizar.

Si el modelo no imita perfectamente la dinamica del proceso, entoncesla senal de realimentacion se ve influida, tanto por los disturbios no medi-bles, como por el efecto de dicho error de modelado, lo que provoca unarealimentacion real de dichos efectos que podrıan conducir al sistema a pro-bables problemas de estabilidad. Este hecho es el que fuerza al disenador adesintonizar el controlador anticipativo ideal con el fin de lograr “robustez”.

No interesando la tecnica que se emplee, los controladores siempre sedisenan basados en la informacion del comportamiento dinamico del pro-ceso y de los disturbios que actuan sobre el mismo. La exactitud de dichainformacion varıa, pero no llega a ser perfecta. Por ello es deseable que elcontrolador sea insensible a esta clase de errores de modelacion (incertidum-bres en el modelo); es decir, que el controlador sea “robusto”.

Del capıtulo 2 sabemos que el bloque de retencion (o de memoria) deorden cero tiene la forma:

hr0(s) =1 − e−sT

s=

1 − z−1

s; z = esT (7.9)

Por otra parte, el bloque γ(s) representa un filtro que sirve para cortar lascomponentes de alta frecuencia de las senales continuas antes del muestreo,cuando sea necesario. Su funcion de transferencia debe ser estable; es decir,las raıces de su ecuacion caracterıstica deben poseer parte real negativa. Lasrelaciones siguientes son validas para la estructura CMI:

r(z) = Z[r(s)] (7.10)d(z) = Z[d(s)] (7.11)dγ(z) = Z[γ(s)d(s)] (7.12)y(z) = Z[y(s)] (7.13)e(z) = Z[y(s) − r(s)] (7.14)yγ(z) = Z[γ(s)y(s)] (7.15)pγ(z) = Z[hr0(s)p(s)γ(s)] (7.16)pγ(z) = Z[hr0(s)p(s)γ(s)] (7.17)

Page 366: [-] Control Avanzado - Arturo Rojas Moreno

352 Control Robusto

A

r∗ u yd

T

q(z) hr0(s) p(s)

pγ(z)

γ(s)

B

r∗ u yd

−−

T

q(z) hr0(s) p(s)

p(s)

γ(s)

C

r u

d

−−

q(z) p(s)

p(s)

Figura 7.3: Estructura CMI. A: Estructura muestreada. B: Estructura equi-valente a A pero no implementable. C: Estructura discreta.

Page 367: [-] Control Avanzado - Arturo Rojas Moreno

7.2 Formulacion del Problema CMI 353

p(z) = Z[hr0(s)p(s)] (7.18)p(z) = Z[hr0(s)p(s)] (7.19)

Notar que la estructura de la figura 7.3B presenta una configuracion equiva-lente a la estructura mostrada en la 7.3A. La figura 7.3C ilustra el sistemaCMI completamente discreto.

7.2. Formulacion del Problema CMI

Para disenar el controlador discreto q(z) debemos tener disponibles elmodelo del proceso (que puede ser continuo o discreto), los rangos de incer-tidumbre del modelo, los tipos de entradas y los objetivos de rendimiento.

7.2.1. El Modelo del Proceso

Los metodos de identificacion mas populares generan modelos de fun-ciones de transferencia de pulso. Tales funciones son suficientes para disenarel sistema de control, pero no permiten el analisis del comportamiento delsistema entre puntos de muestreo, lo que puede ser significativamente peorque el comportamiento en los mismos puntos. Como las incertidumbres delmodelo se describen en forma natural en el tiempo continuo, resulta entoncesconveniente tener el modelo continuo del proceso que puede asumirse lineal einvariante con el tiempo y con presencia de tiempos muertos. Es importanteen esta parte mencionar la caracterıstica causal de los sistemas.

Sistema Causal y Estrictamente Causal: Un sistema g(z) es propio ocausal si limz→∞g(z) es finito. Un sistema propio es estrictamente propiosi limz→∞g(z) = 0, y es semipropio si limz→∞g(z) > 0. Todos los sistemasque no son propios se denominan impropios o no causales.

7.2.2. Descripcion de Incertidumbres del Modelo

Hagamos que p(s) = p(jω) pertenezca a una familia de procesos IIdefinida por:

II = p : |p(jω) − p(jω)| ≤ a(ω) (7.20)

en donde a(ω) es la incertidumbre aditiva del proceso; es decir, que laincertidumbre o error de modelacion del proceso actual p(jω) se ubique en

Page 368: [-] Control Avanzado - Arturo Rojas Moreno

354 Control Robusto

una region circular acotada de radio conocido a(ω), o de modo equivalente:

p(jω) = p(jω) + a(jω) (7.21)|a(jω)| ≤ a(ω), ∀ p ε II (7.22)

La cota de la incertidumbre multiplicativa m(ω) del proceso se define como:

m(ω) = a(ω)/|p(jω)| (7.23)

De las figuras 7.3A o 7.3B podemos obtener con p = p:

y(s)−r(s) = e(s) = hr0(s)p(s)q(esT )r∗(esT )−r(s); r(s) = hr0(s)r∗(esT )(7.24)

y luego:

y(s)hr0(s)r∗(esT )

= p(s)q(esT ) ηr(s) = 1 − εr(s); εr(s) =−e(s)r(s)

(7.25)

donde ηr es la funcion de sensitividad y εr es la funcion de sensitividadcomplementaria.

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 seccion 3.3 e ilustrado en la fi-gura 3.9. La unica incertidumbre del proceso a tener en cuenta es la cargaadicional conectada a un extremo de la varilla (una esfera de radio Ro ymasa Mo ), la cual puede variar entre 0 y 0.045 kg. En base a la respuestaal escalon, ya sea del proceso o de su modelo nominal, seleccione un tiempode muestreo adecuado y determine la funcion de transferencia de pulso p(z)del modelo nominal del proceso.

Solucion: El programa ejem7 1.m determina p(s) y p(s) para el proceso enestudio. El resultado es el siguiente:

p(s) =Kp

s2 + aps+ bp=

30,4696s2 + 1,2707s+ 14,4007

p(s) =Kn

s2 + ans+ bn=

91,4375s2 + 3,8133s+ 17,9220

Observando las respuestas al escalon en la figura 7.4, podemos concluir queun tiempo de muestreo de T = 0.05 s es suficiente para poder capturar la

Page 369: [-] Control Avanzado - Arturo Rojas Moreno

7.2 Formulacion del Problema CMI 355

curva de transicion producida por la respuesta del proceso al escalon. Lafuncion de transferencia de pulso del modelo nominal del proceso resulta:

p(z) =b1z + b2

z2 + a1z + a2=

0,1070z + 0,1004z2 − 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 LINEALLo = 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);

Page 370: [-] Control Avanzado - Arturo Rojas Moreno

356 Control Robusto

% [a1 b1 a2 b2] = [-1.7858 0.1070 0.8264 0.1004]% GRAFICOSsubplot(2,1,1)step(nump,denp)xlabel(’Tiempo en segundos’)ylabel(’Respuesta del proceso’)gridsubplot(2,1,2)step(numn,denn)ylabel(’Respuesta del modelo’)xlabel(’Tiempo en segundos’)gridprint -f -deps ejem7_1

0 1 2 3 4 5 6 7 8 9 100

1

2

3

4

Tiempo en segundos

Res

pues

ta d

el p

roce

so

0 0.5 1 1.5 2 2.5 30

2

4

6

8

Tiempo en segundos

Res

pues

ta d

el m

odel

o

Figura 7.4: Respuestas a la senal escalon del proceso y de su modelo nominal.

7.3. Control Robusto para Procesos Estables

El procedimiento de diseno que se describe a continuacion es el mismodesarrollado en [9] y se puede aplicar a procesos estables de una entrada yuna salida. El sistema de control robusto ilustrado en la figura 7.3 debe serinternamente estable. Esto se logra si la planta p(s) y el controlador q(z)son estables, asumiendo que el modelo del proceso es perfecto (p(s) = p(s)).

Page 371: [-] Control Avanzado - Arturo Rojas Moreno

7.3 Control Robusto para Procesos Estables 357

El procedimiento de diseno consta de dos pasos. En el primero, deno-minado rendimiento nominal, se selecciona un controlador q(z) que permitaobtener respuestas satisfactorias del sistema a entradas de interes, sin teneren consideracion restricciones e incertidumbres en el modelo. En el segun-do paso, denominado estabilidad y rendimiento robustos, se selecciona uncontrolador de la forma q(z) = q(z)f(z), donde f(z) es un filtro pasa bajointroducido para lograr estabilidad y rendimiento robustos.

7.3.1. Rendimiento Nominal

Sistemas del Tipo m

La propiedad asintotica de la respuesta a lazo cerrado del sistema de con-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 cuyasalida sigue perfectamente las entradas r(s) y d(s) (ver figura 7.3) cuan-do t → ∞, siempre que tal sistema posea todos sus polos en el semiplanoizquierdo del plano-s, excepto m o menos polos en s = 0. Si el sistema alazo cerrado es estable, las condiciones necesarias y suficientes para que elsistema sea del tipo m, con m > 0, son:

lımz→1

dn

dzn(1 − p(z)q(z)) = 0, 0 ≤ n < m (7.26)

lıms→0

dn

dsn(1 − γ(s)) = 0, 0 ≤ n < m (7.27)

Diseno del Prefiltro γ(s)

El objetivo principal del prefiltro γ(s) es cortar las componentes de altafrecuencia para evitar la superposicion de frecuencias. Los ya conocidos fil-tros de Butterworth y Bessel satisfacen la ecuacion (7.27) para m = 1. Param > 1 se puede emplear una simple modificacion. Escribamos:

γ(s) = γ1(s)γm(s) (7.28)

con:

γm(s) =cm−1s

m−1 + · · · + c1s+ 1(τs+ 1)m−1

(7.29)

en donde γ1(s) es un prefiltro apropiado para m=1. Entonces, para un τespecıfico, podemos usar (7.27) para calcular los coeficientes c1, . . . , cm−1.

Page 372: [-] Control Avanzado - Arturo Rojas Moreno

358 Control Robusto

Cualitativamente γm(s) adiciona algunas propiedades en ω = 0, sin afectarsignificativamente el comportamiento de γ1(s) en las frecuencias altas. Paraello se recomienda usar un τ grande. Un filtro de segundo orden con m = 2(entrada rampa) posee la forma:

γ1(s) =ω2

0

s2 + 2ω0ζs+ ω20

La solucion de la ecuacion (7.27) determina que c1 = τ+2ζ/ω0. Para un valorde τ suficientemente grande, el prefiltro γm(s) no afecta significativamenteel comportamiento de γ(s) en las altas frecuencias.

Controlador Optimo de Norma Cuadratica H∗2 : qH(z)

El controlador optimo de norma cuadratica qH(z) se disena resolviendoel siguiente problema de minimizacion de norma cuadratica H∗

2 :

mınqH(z)

‖ e(z) ‖2= mınqH(z)

‖ (1 − p(z)qH(z))v(z) ‖2 (7.30)

sujeto a la restriccion que qH(z) sea estable y causal. La minimizacion de lanorma anterior resulta en el siguiente controlador:

qH(z) = z(pM (z)vM (z))−1z−1p−1A (z)vM (z)∗ (7.31)

donde el operador .∗ denota que luego de una expansion en fraccionesparciales del operando, solo seran retenidos los terminos que sean estricta-mente propios y estables; es decir, aquellos terminos que posean polos quese ubiquen dentro del cırculo unitario (incluso en z = 1). Notar tambien queel proceso estable p(z) ha sido factorizado en una parte pasa todo pA(z) yotra parte de mınima fase pM (z), como sigue:

p(z) = pA(z)pM (z) (7.32)

donde:

pA(z) = z−NΠhj=1

(1 − (ζHj )−1)(z − ζj)

(1 − ζj)(z − (ζHj )−1)

(7.33)

y ζj , j = 1, . . . , h son los ceros de p(z) que estan fuera del cırculo unitario.El entero positivo N se selecciona de modo tal que pM (z) sea semipropio; esdecir, que el numerador y el denominador de pM (z) posean el mismo grado,lo que es equivalente a decir que zN p(z) sea semipropio.

Page 373: [-] Control Avanzado - Arturo Rojas Moreno

7.3 Control Robusto para Procesos Estables 359

La entrada v(z) tambien se factoriza en forma similar:

v(z) = vA(z)vM (z) (7.34)

con:

vA(z) = z−NvΠhvj=1

(1 − (ζHvj)

−1)(z − ζvj)

(1 − ζvj)(z − (ζHvj)−1)

(7.35)

donde ζvj , j = 1, . . . , hv son los ceros de v(z) que estan fuera del cırculounitario y el entero positivo Nv se selecciona de modo tal que zNvv(z) seasemipropio. Notar que qH(z) debe ser estable y causal. Sin embargo, debidoa su caracter discreto, este controlador puede presentar problemas de com-portamiento en las intermuestras (entre puntos de muestreo) causadas porlos polos de qH(z) cercanos al punto (−1, 0). Por consiguiente, es necesariorealizar una modificacion del controlador qH(z).

La tabla 7.1 muestra la expresion del controlador qH(z) para algunasentradas tıpicas.

Cuadro 7.1: Controlador qH(z) para algunas entradas tıpicas.

v(s) v(z) Controlador qH(z)

1s

zz−1 (pM (z))−1

1τs+1

z/τ

z−e−T/τ (pM (z))−1(pA(e−T/τ ))−1

1s(τs+1)

z(1−eT/τ )

(z−1)(z−e−T/τ )(pM (z))−1 (1−p−1

A (e−T/τ )e−T/τ )z+(p−1A (e−T/τ )−1)e−T/τ

(1−e−T/τ )z

1s2

Tz(z−1)2

(pM (z))−1 (N+Ω+1)z−N−Ωz

donde: Ω ddz (p−1

A (z)z−N )|z=1

=∑h

j=1

(ζHj )−1−ζj

(1−ζj)(1−(ζHj )−1)

Page 374: [-] Control Avanzado - Arturo Rojas Moreno

360 Control Robusto

Ejemplo 7.2

Determinar el controlador optimo cuadratico qH(z) para el proceso p(z) delejemplo 7.1, asumiendo que la entrada v(s) es un escalon.

Solucion: Del ejemplo 7.1 conocemos p(z) para T = 0.05 s:

p(z) =b1z + b2

z2 + a1z + a2

Ademas, se debe cumplir que p(z) = pA(z)pM (z), de modo tal que zN p(z)sea semipropio y por consiguiente, N = 1. El cero −b2/b1 = -0.9874 de p(z)se ubica dentro del cırculo unitario; entonces ζj = 0 y:

pA(z) = z−1; pM (z) =p(z)pA(z)

=z(b1z + b2)z2 + a1z + a2

Empleando ahora la tabla 7.1 para v(z) = zz−1 obtenemos:

qH(z) = (pM (z))−1 =z2 + a1z + a2

z(b1z + b2)

Diseno del Controlador CMI q(z)

Deseamos obtener el controlador CMI q(z) postulando:

q(z) = qH(z)q−(z)B(z) (7.36)

donde q−(z) cancela todos los polos de qH(z) que posean parte real negativay los sustituye con polos en el origen con el proposito de que el sistema tiendaa controlarse con mınimo tiempo de estabilizacion. B(z) se selecciona parapreservar el tipo m del sistema.

Sean κi, i = 1, . . . , ρ, los polos de qH(z) con parte real negativa. Entoncespodemos escribir:

q−(z) = z−ρΠρi=1

z − κi

1 − ki(7.37)

B(z) =m−1∑i=0

biz−i (7.38)

donde m es el tipo del sistema y los coeficientes bi, i = 0, . . . ,m−1, se selec-cionan de modo tal que q(z) satisfaga la ecuacion (7.26). Por construccion,

Page 375: [-] Control Avanzado - Arturo Rojas Moreno

7.3 Control Robusto para Procesos Estables 361

qH(z) tambien cumple con la ecuacion (7.26). Por consiguiente, q(z) debesatisfacer la ecuacion (7.26) sı y solo si:

lımz→1

dn

dzn(1 − q−(z)B(z)) = 0, n = 0, 1, . . . ,m− 1 (7.39)

Para los casos especiales m = 1 y m = 2 se puede obtener:

B(z) = 1, m = 1 (7.40)

B(z) =m−1∑i=0

biz−i = b0 + b1z

−1, m = 2 (7.41)

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 ejemplo7.1 es del tipo m = 1. Tener en cuenta que la entrada v(s) es un escalon.

Solucion: Sabemos que q(z) = qH(z)q−(z). Para m = 1, B(z) = 1. Lospolos de qH(z) son z = 0 y z = −b2/b1 = -0.9874. Entonces, ρ = 1 (un polocon parte real negativa que hay que sustituir con un polo en el origen), i =1y κi = κ1 = −b2/b1, de modo que:

q−(z) = z−ρΠρj=1

z − κj

1 − kj= z−1 z − κ1

1 − k1

Luego:

q(z) = qH(z)q−(z) =z2 + a1z + a2

(b1 + b2)z2

7.3.2. El Filtro Discreto CMI

El controlador disenado q(z) debe ahora ser aumentado con un filtro pasabajo f(z) de modo tal que q(z) = q(z)f(z). La estructura y los parametrosdel filtro se determinan para que se alcance un compromiso optimo entrerendimiento y robustez. La forma mas simple de f(z) es:

f(z) =(1 − α)zz − α

(7.43)

Page 376: [-] Control Avanzado - Arturo Rojas Moreno

362 Control Robusto

El filtro f(z) debe preservar las propiedades asintoticas del sistema de lazocerrado; es decir, la ecuacion (7.26). Por consiguiente, para que el sistemasea del tipo m, el filtro f(z) debe satisfacer:

dn

dzn(1 − f(z))

∣∣∣∣z=1

= 0; 0 ≤ n < m (7.44)

Para un sistema del tipo m = 1, el filtro de la ecuacion (7.43) cumple elrequerimiento anterior: f(1) = 1. Sin embargo, para m ≥ 2 se debe postular:

f(z) = (β0 + β1z−1 + · · · + βwz

−w)(1 − α)zz − α

(7.45)

donde los coeficientes β0, . . . , βw se seleccionan de modo tal que satisfaganla ecuacion (7.44). Para m = 2 y w ≥ 2 se ha determinado que:

βk =−6kα

(1 − α)(w + 1)(2w + 1), k = 1, . . . , w (7.46)

7.3.3. Estabilidad Robusta

Diseno del Filtro

La condicion de estabilidad robusta se establece en terminos del contro-lador CMI q(z) = q(z)f(z). Asumiendo que todos los procesos p(s) en lafamilia II son estables, que q(z) es estable y que c(z) esta relacionado conq(z) por la ecuacion (7.7), entonces los sistemas en las figuras 7.2A y 7.3Ason robustamente estables, si y solo si:

|f(ejωT )| < |p(ejωT )q(ejωT )m(ω)|−1, 0 ≤ ω ≤ π

T. (7.47)

donde m(ω) representa la cota de la incertidumbre multiplicativa. Para unbuen rendimiento del sistema, las incertidumbres tienen que ser acotadas.Una simple especificacion de rendimiento requiere que el sistema de lazocerrado sea del tipo m = 1; es decir, que f(1) = p(1)q(1) = γ(0) = 1.

Como corolario de la ecuacion (7.47), podemos afirmar que si la incer-tidumbre multiplicativa (ω) es continua, entonces existe un filtro f(z) parael cual el sistema a bucle cerrado sea del tipom = 1, ası como tambien robus-tamente estable para la familia de procesos II. Esto, siempre que m(0) < 1,donde m(0) es el error multiplicativo en estado estable del sistema continuo.

Una forma simple de disenar el filtro CMI es emplear un filtro f(z) conla estructura dada en la ecuacion (7.45) y luego variar el parametro α de

Page 377: [-] Control Avanzado - Arturo Rojas Moreno

7.3 Control Robusto para Procesos Estables 363

modo tal que se satisfaga la ecuacion (7.47). Esta ecuacion pone una cotainferior α∗ a α. Dicha cota tambien se puede obtener del grafico de Bode de:

(|p(ejωT q(eiwT )|m(ω))−1 (7.48)

Si esta cantidad nunca es menor que 1, entonces α∗ = 0. Si se obtuvieranvalores menores que 1, α∗ puede ser determinada a partir del grafico deBode de f(z). Este grafico resulta practicamente similar al obtenido con elfiltro de primer orden dado en la ecuacion (7.43), siempre que el numero decoeficientes w en la ecuacion (7.45) sea suficientemente grande. Por ejemplo,si (|p(ejωT q(eiwT )|m(ω))−1 decrece en la forma que lo hace un sistema deprimer orden, hasta alcanzar un valor de 0,7 en ω = ω, entonces:

α∗ = e−Tw (7.49)

Efecto del Muestreo

Un incremento de la constante de tiempo α del filtro reduce el anchode banda del sistema nominal. Grandes valores del tiempo de muestreo Ttambien reducen el ancho de banda debido a que si escribimos la ecuacion(7.47) como:

|p(jω)q(ejωT )f(ejωT )| < |p(jω)|a(ω) (7.50)

podemos observar que el ancho de banda del termino de la izquierda puedeser reducido incrementando α en f(z) o dejando f(z) = 1 y aumentando T .

7.3.4. Rendimiento Robusto

Para rendimiento robusto, el controlador tiene que ser disenado paraque:

M(w) |q(jω)|a(ω) + |1 − p(jω)q(jω)|W (ω) < 1, 0 ≤ ω ≤ π/T (7.51)

q(jω) = q(ejωT )f(ejωT )Z[hr0(s)γ(s)]

donde se ha introducido una funcion de peso W (ω) sobre la cual se discutea continuacion. La seleccion de W (w) depende de los requerimientos derendimiento impuestos por el disenador. Es razonable usar la funcion desensitividad ideal η(s) = p(s)q(s) como una guıa para la busqueda de W (ω):

W (ω)−1 ≥ |1 − p(jω)q(jω)| (7.52)

Page 378: [-] Control Avanzado - Arturo Rojas Moreno

364 Control Robusto

Para que la condicion anterior resulte una funcion propia (requerimiento quetambien es necesario para cualquier W (w)), se deben cumplir las condicionessiguientes para m ≥ 1:

W (∞)−1 ≥ 1; W (0)−1 ≥ 0 (7.53)

Ejemplo 7.4

Determinar una funcion de peso adecuada para el proceso servomotor D.C.sujeto a cargas no lineales (ver ejemplos 7.1, 7.2 y 7.3).

Solucion: Podemos seleccionar la siguiente funcion de peso:

W (s)−1 = 0,40,5s+ 10,1s+ 1

; s = jω

que cumple las condiciones establecidas en la ecuacion (7.53). Sin embargo,se recomienda emplear la forma general dada en la ecuacion (7.52), debido aque nos permite cambiar la magnitud de la funcion de peso usando un factormultiplicativo, siempre que no se sobrepase la condicion dada en (7.52).Esta forma de variar la funcion de peso proporciona mayor flexibilidad enel proceso de verificacion del rendimiento robusto, tal como veremos masadelante.

Diseno del Filtro

La forma mas simple de disenar el filtro f(z) es especificar su estructuradada en la ecuacion (7.45) y luego tratar de satisfacer la ecuacion (7.51) var-iando el parametro α. Incrementando α, el primer termino de M(w) decrecemientras que el segundo termino crece. Por consiguiente, dependiendo de ay W , podrıa no existir un valor de α para que la ecuacion (7.45) sea satis-fecha. Asumiendo que q(z) y f(z) se seleccionan de modo tal que el sistemaresulte del tipo m = 1 (para el cual se cumple que p(z)q(z)f(z)|z=1 = 1) omayor, y que m(0) < 1, entonces, siempre es posible conseguir rendimientorobusto para ω = 0 y para cualquier peso W (ω).

El parametro α debe ser sintonizado para que se satisfagan las condi-ciones dadas en las ecuaciones (7.47) y (7.51). Desde que es posible imponerla cota inferior α∗ de α, entonces, para determinar dicho parametro, debemosresolver el siguiente problema de optimizacion:

mınα∗≤α≤1

max0≤ω≤π/T

M(ω) ψ(T ) (7.54)

Page 379: [-] Control Avanzado - Arturo Rojas Moreno

7.3 Control Robusto para Procesos Estables 365

donde se ha introducido el argumento T en ψ para indicar que el valoroptimo de la funcion objeto depende del tiempo de muestreo T .

Ejemplo 7.5

Disenar el filtro f(z) para el proceso servomotor D.C. usando los resultadosde los ejemplos 7.1 al 7.4. Verificar que se cumplan las condiciones de estabil-idad y rendimiento robustos. Asumir: m(ω) ≈ |m(eiω)| y a(ω) ≈ |a(ω)|.Solucion: Como el sistema es del tipo m = 1, entonces: f(z) = (1−α)z

z−α .Para determinar la estabilidad robusta del proceso, empleamos la ecuacion(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 de-termina el rendimiento robusto del proceso. En el grafico de magnitudesde la figura 7.5, podemos observar que para α = 0.9 se cumplen las condi-ciones de estabilidad y rendimiento robustos. Este valor de α es la solucional problema de optimizacion planteado en la ecuacion (7.54). Notar que enla verificacion del rendimiento robusto estamos empleando un factor de 0.5en la funcion de peso W (s).

% ejem7_5.m ESTABILIDAD ROBUSTA Y RENDIMIENTO ROBUSTOclear all

% PARAMETROS DEL PROCESO NO LINEALLo = 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’);

Page 380: [-] Control Avanzado - Arturo Rojas Moreno

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 ROBUSTAalfa = 0.955;for w = 0:pi/Ts=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 ROBUSTOfor w = 0:pi/Ts=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;

Page 381: [-] Control Avanzado - Arturo Rojas Moreno

7.3 Control Robusto para Procesos Estables 367

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 < 0end

% GRAFICOSejew = 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)’)gridsubplot(122)semilogx(ejew,M_dB(1:pi/T))ylabel(’Magnitud de M en dB’)title(’ (b)’)xlabel(’Frecuencia angular (rad/s)’)gridprint -f -deps ejem7_5print -s -deps ejem7_6a

100 101 102−40

−30

−20

−10

0

10

20

30

40

Mag

nitu

des

en d

B

(a)

Frecuencia angular (rad/s)100 101 102

−16

−14

−12

−10

−8

−6

−4

−2

0

2

Mag

nitu

d de

M e

n dB

(b)

Frecuencia angular (rad/s)

Figura 7.5: (a) Magnitudes de |pq|−1 y |f(z)| (en trazos) para verificar laestabilidad. (b) Magnitud de M para verificar el rendimiento robusto.

Page 382: [-] Control Avanzado - Arturo Rojas Moreno

368 Control Robusto

Seleccion del Tiempo de Muestreo

Cuando el tiempo de muestreo es suficientemente pequeno, entonces elsistema discreto tiende a comportarse como uno continuo, incrementandosede esta manera el rendimiento nominal del sistema. Sin embargo, el costocomputacional es mayor y la aparicion de una alta frecuencia de muestreo delorden de 1/T puede hacer que disminuya el rendimiento robusto. Por consi-guiente, tiempos de muestreo suficientemente grandes pueden ser aceptablespara conseguir estabilidad robusta y rendimiento robusto. Sin embargo, siel tiempo de muestreo fuera muy grande, podrıa ser imposible satisfacer losrequerimientos para lograr un rendimiento robusto.

Como regla, π/T se puede seleccionar mas grande que el ancho de ban-da sobre el cual se desea un buen rendimiento. Otra forma de seleccionarT es deteminar la respuesta al escalon del proceso para poder seleccionarun tiempo T suficientemente pequeno, que nos permita muestrear y luegorecuperar sin dificultad 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 otraparte, si para un determinado T ∗ resulta que ψ(T ∗) > 1, significa entoncesque las incertidumbres asumidas en el modelo del proceso y en la estructuradel controlador deben ser reajustadas.

Ejemplo 7.6

Simular el sistema de control robusto disenado en los ejemplos 7.1 al 7.5.

Solucion: Ver el diagrama de diseno en la figura 7.6 (archivo ejem7 6a.m)y los resultados de la simulacion en la figura 7.7. Los graficos se realizan conel programa ejem7 6b.m.

7.4. Control Robusto para Procesos Inestables

Para controlar procesos con comportamiento inestable se tiene que em-plear la estructura clasica ilustrada en la figura 7.1. Asumiendo que el modelodel proceso es perfecto, es decir, que p(s) = p(s), y ademas que p(s) y p(z)posean κ polos inestables π1, . . . , πk, la estabilidad interna del sistema de lafigura 7.1 (donde c = q(1−pγq)−1) queda garantizada, siempre que q(z) seaestable y que (1 − pγ(z)q(z)) posea ceros en π1, . . . , πk.

Page 383: [-] Control Avanzado - Arturo Rojas Moreno

7.4 Control Robusto para Procesos Inestables 369

z +a1.z+a22

(b1+b2)z 2

Controlador q~(z)

+−

Sum1

(1−alfa)zz−alfa

Filtro

.

Mux

Mux

− + Sum2

Gráfico

referencia

Kps +ap.s+bp2

Proceso p(s)

Kns +an.s+bn2

Modelo nominal pn(s)

u_ej7_6

control

q_ej7_6

posición

u q

Figura 7.6: Diagrama de bloques para la simulacion del sistema de controlrobusto disenado.

0 1 2 3 4 5 6 7 8 9 100

0.2

0.4

0.6

0.8

1

Pos

ició

n en

rad

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 10

0.1

0.2

0.3

Con

trol

en

volti

os

Tiempo en segundos

Figura 7.7: Resultado de la simulacion del sistema de control robustodisenado en los ejemplos 7.1 al 7.5.

Page 384: [-] Control Avanzado - Arturo Rojas Moreno

370 Control Robusto

7.4.1. Rendimiento Nominal

El procedimiento de diseno del controlador robusto para procesos inesta-bles, es el mismo que para procesos estables. Primero se disena el controladorqH y luego se le modifica de modo tal que permita evitar el problema debidoa las oscilaciones que se pueden originar entre muestras. En esta forma ob-tenemos el controlador q = qH q−B(z). Este ultimo controlador se modificacon un filtro f(z) para poder garantizar estabilidad y rendimiento robustos.El controlador resultante posee la forma: q(z) = q(z)f(z).

El Controlador Optimo H∗2

Asumamos que p(z) = p(z) posee κ polos π1, . . . , πk ubicados fuera delCU (cırculo unitario) y un polo de multiciplicidad . Definamos:

bp(z) = Πκj=1

(1 − (πHj )−1)(z − πj)

(1 − πj)(z − (πHj )−1)

(7.55)

y factoricemos la planta en una porcion pasa todo pA(z) y otra porcionsemipropia de mınima fase pM (z) (ver la subseccion 7.3.1):

p(z) = pA(z)pM (z) (7.56)

De manera analoga factoricemos la entrada v(z):

v(z) = vA(z)vM (z) (7.57)

Asumamos ahora sin perdida de generalidad, que los polos inestables de v(z)ubicados fuera del CU son los primeros κ1 polos πj del proceso, y definamos:

bv(z) = Πκ1j=1

(1 − (πHj )−1)(z − πj)

(1 − πj)(z − (πHj )−1)

(7.58)

Asumamos ademas que v(z) posee al menos polos en z=1. Entonces elcontrolador optimo H∗

2 (z) viene dado por:

qH(z) = zbp(z)(pM (z)bv(z)vM (z))−1(zbp(z)pA(z))−1bv(z)vM (z)∗ (7.59)

donde el operador .∗ denota que luego de una expansion en fracciones par-ciales del operando, solo seran retenidos los terminos que sean estrictamentepropios, exceptuando aquellos correspondiente a los polos de pA(z)−1.

Notar que para procesos estables: bp = bv = 1. Si todos los polos inesta-bles del proceso p(s) se ubican en el origen, se puede usar la tabla 7.1.

Page 385: [-] Control Avanzado - Arturo Rojas Moreno

7.4 Control Robusto para Procesos Inestables 371

Diseno del Controlador CMI q(z)

El controlador CMI tiene la forma:

q(z) = qH(z)q−(z)B(z) (7.60)

donde q−(z) cancela todos los polos κi, i = 1, . . . , ρ de qH(z) que poseanparte real negativa, y los sustituye con polos en el origen. De esta forma, elsistema tiende a controlarse con mınimo tiempo de estabilizacion. El con-trolador q−(z) se formula como:

q−(z) = z−ρΠρi=1

z − κi

1 − ki(7.61)

Sean πi, i = 1, . . . , ξ, las raıces inestables (incluyendo z=1) con multi-plicidad mi correspondientes al mınimo denominador comun de p(z) y v(z)Tener en cuenta que v(z) y p(z) poseen la misma cantidad de polos en z = 1.Los requerimientos para garantizar el tipo del sistema y la estabilidad inter-na pueden ser unificados mediante la relacion siguiente:

[dk

dzk(1 − q−(z)B(z))

]z=πi

= 0, k = 0, . . . ,mi − 1; i = 1, . . . , ξ (7.62)

Se puede formular ademas:

B(z) =M−1∑j=0

bjz−j (7.63)

M =ξ∑

i=1

mi (7.64)

y computar los coeficientes bj , j = 0, . . . ,M − 1 de (7.63). Notar que (7.62)da lugar a M ecuaciones lineales con M incognitas b0, b1, . . . , bM−1; dichaecuacion es equivalente a:

[dk

dλk(1 − q (λ−1)B(λ−1))

]λ=π−1

i

= 0; k = 0, . . . ,mi − 1; i = 1, . . . , ξ.

(7.65)

Page 386: [-] Control Avanzado - Arturo Rojas Moreno

372 Control Robusto

7.4.2. El Filtro Discreto CMI

La estructura mas simple del filtro es:

f1(z) =(1 − α)zz − α

(7.66)

En general, el filtro f(z) debe satisfacer los requerimientos siguientes:

1. Seguimiento asintotico a entradas externas al sistema (referencias y/odisturbios). Es decir, (1 − p(z)q(z)f(z))v(z) debe ser estable.

2. Estabilidad interna. En esta situacion, q(z)f(z) y (1 − p(z)q(z)f(z))deben ser estables.

Dado que q(z) cumple los requerimientos anteriores para f(z) = 1, en-tonces:[

dk

dzk(1 − f(z))

]z=πi

= 0, k = 0, . . . ,mi − 1; i = 1, . . . , ξ (7.67)

donde πi y mi ya fueron definidos anteriormente. Notar que cuando k = 0,f(z) = 1 para z = π1, . . . , πξ. En otro caso, el filtro se escoge de:

f(z) = φ(z)f1(z) (7.68)

donde:

φ(z) =ω∑

j=0

βjz−j (7.69)

Los coeficientes β0, . . . , βω se seleccionan de modo tal que para un determi-nado α, se cumpla la ecuacion (7.67), generandose M ecuaciones lineales conM incognitas. Observar que para ξ = 1, se tiene π1 = 1, m1 = 1 y φ(z) = 1.Si M = 2, conviene seleccionar ω ≥ 2 para evitar la solucion trivial.

7.4.3. Estabilidad y Rendimiento Robustos

Los requerimientos a satisfacer para garantizar estabilidad y rendimientorobustos son los mismos que rigen para procesos estables. Tales requisitosfueron desarrollados en las subsecciones 7.3.3 y 7.3.4. Resumiendo, paragarantizar estabilidad robusta se debe cumplir:

|f(ejωT )| < |p(ejωT )q(ejωT )m(ω)|−1, 0 ≤ ω ≤ π

T. (7.70)

Page 387: [-] Control Avanzado - Arturo Rojas Moreno

7.5 Procedimiento de Diseno 373

Para garantizar rendimiento robusto se tiene que cumplir:

|q|a + |1 − pq|W ≤ 1, 0 ≤ ω ≤ π/T (7.71)

donde:q(s) = q(esT )f(esT )Z[hr0γ(s)] (7.72)

El diseno del prefiltro γ(s) se trato en la subseccion 7.3.1

7.5. Procedimiento de Diseno

El procedimiento para disenar un sistema de control robusto discreto conestructura CMI es como sigue:

1) Formular el problema (definir especificaciones de diseno).

2) Usando toda la informacion disponible acerca del proceso no lineal,determinar el modelo de la planta con sus incertidumbres y definir lostipos de las entradas (subseccion 7.2).

3) Seleccionar la frecuencia de muestreo (subseccion 7.3.4), analizandolas respuestas al escalon del proceso y del modelo nominal del mismo.

4) Disenar el controlador optimo cuadratico qH(z). Para procesos establesver la subseccion 7.3.1 (en esta subseccion tambien se encuentra elprocedimiento para disenar el prefiltro γ(s)). Para procesos inestablesver la subseccion 7.4.1.

5) Disenar el controlador CMI: q(z). Para procesos estables ver la sub-seccion 7.3.1. Para procesos inestables ver la subseccion 7.4.1.

6) Disenar la funcion de peso W (subseccion 7.3.4, para ambos casos).

7) Disenar el filtro discreto CMI. Para procesos estables, ver la subsec-cion 7.3.2, comprobar que se cumplan los requerimientos de estabilidadrobusta y rendimiento robusto (subsecciones 7.3.3 y 7.3.4). Para pro-cesos inestables, ver subsecion 7.4.2, comprobar que se cumplan losrequerimientos de estabilidad robusta y rendimiento robusto (subsec-cion 7.4.3).

8) Simular el sistema de control robusto.

9) Implementar el hardware del sistema de control.

Page 388: [-] Control Avanzado - Arturo Rojas Moreno

374 Control Robusto

10) Implementar el software de control.

11) Realizar pruebas de funcionamiento (resultados experimentales).

7.6. Control Robusto de un Servomotor No Lineal

Siguiendo el procedimiento formulado, esta seccion presenta el diseno deun sistema de control robusto para controlar la posicion de un servomotorD.C., sujeto a cargas no lineales.

7.6.1. Formulacion del Problema

El servomotor D.C. con carga no lineal mostrado en la figura 3.9 y des-crito en la seccion 3.3, es un proceso de una entrada y una salida. Esteservomotor posee un engranaje reductor de velocidad y puede ser contro-lado por el voltaje de armadura. La carga no lineal es una varilla metalicaacoplada perpendicularmente al eje del servomotor (a manera de un brazorobotico de un grado de libertad). En el extremo libre de dicha varilla sepueden acoplar cargas adicionales. De esta manera la carga no lineal se hacevariable.

El objetivo de control es disenar e implementar un sistema de controlrobusto 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 presenciade la carga no lineal variable y de las no linealidades del proceso como sonlas fricciones (estatica y de Coulomb) y la saturacion en el amplificador delservomotor.

7.6.2. Diseno del Sistema de Control Robusto

Los pasos (2) al (7) del procedimiento de diseno fueron cubiertos en losejemplos 7.1 al 7.5.

7.6.3. Simulacion del Sistema de Control Robusto

La simulacion realizada en el ejemplo 7.6 considero una planta p(s) lineal.En la siguiente simulacion, la planta a considerar es su modelo no lineal, conel anadido de dos bloques de saturacion (para evitar saturar el amplificadorde potencia) mas una senal de realimentacion que es proporcional al torqueno lineal producido por la carga no lineal. No se esta considerando el efecto

Page 389: [-] Control Avanzado - Arturo Rojas Moreno

7.6 Control Robusto de un Servomotor No Lineal 375

de la friccion de Coulomb, que tambien es un componente no lineal, debidoa que tal efecto sera compensado mediante software, como veremos masadelante. El diagrama de simulacion, programa disrob1.m, se muestra enla figura 7.8, mientras que el resultado de la simulacion se puede ver en lafigura 7.9. Para efectuar la simulacion con el programa disrob1.m, se debeejecutar previamente el programa disrob2.m.

Graph

1Ms+B

Subsistemamecánico

Kact

gan5 s1

Integrador

n*KR

Subsistemaeléctrico

n*E

gan2

+−

S3

N

gan3

MATLABFunction

Seno

Kns +an.s+bn2

Modelo nominal pn(s) − + S2

qw

Mux

Mux

+−S1

z +a1.z+a22

(b1+b2)z 2

Controlador q~(z)

(1−alfa)zz−alfa

FiltroSaturación 1

u

+

−S4

Referencia

q_disrob

Salida

u_disrob

Control

Saturación 2

Figura 7.8: Diagrama de bloques para la simulacion del sistema de controlrobusto disenado, considerando el modelo no lineal del proceso.

7.6.4. Implementacion del Hardware

El hardware empleado en la implementacion en tiempo real del sistemade control robusto es similar al empleado para la implementacion en tiem-po real de los sistemas de control adaptivo, predictivo y no lineal. Dichohardware se describe en detalle en la subseccion 5.6.8.

Page 390: [-] Control Avanzado - Arturo Rojas Moreno

376 Control Robusto

0 2 4 6 8 10 12 14 16 18 200

0.5

1

Pos

ició

n en

rad

Tiempo en segundos

0 2 4 6 8 10 12 14 16 18 200

0.05

0.1

0.15

0.2

0.25

Con

trol

en

volti

os

Tiempo en segundos

Figura 7.9: Resultado de la simulacion del sistema de control robusto em-pleando el modelo no lineal del proceso.

7.6.5. Implementacion del Software

El software de control empleado en la implementacion en tiempo realdel sistema de control robusto posee la misma estructura que el software decontrol empleado para la implementacion en tiempo real de los sistemas decontrol predictivo y no lineal. La estructura de dicho software se describe endetalle en la subseccion 6.7.7. El diagrama de flujo del software de controlse muestra en la figura 6.13.

El software usado para la implementacion del algoritmo de control deposicion emplea el lenguaje C y se ejecuta en una PC Pentium. Los progra-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 algo-ritmo de control.

La realizacion de archivos ejecutables a partir de los programas fuente, seelabora en el ambiente de trabajo del Borland C/C++ mediante la creacionde un proyecto denominado ROB.PRJ, en donde intervienen los archivosmencionados en el parrafo anterior. A continuacion se presenta el listado delprograma ROB.CPP. El listado de los programas R1LLIB.H y R1LLIB.CPPfueron presentados en la subseccion 6.7.7.

Page 391: [-] Control Avanzado - Arturo Rojas Moreno

7.6 Control Robusto de un Servomotor No Lineal 377

/* ROB.CPP Programa del sistema de control robusto para procesocon carga maxima y referencia de 45 grados. Ver especificacionesde 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()

Page 392: [-] Control Avanzado - Arturo Rojas Moreno

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);

Page 393: [-] Control Avanzado - Arturo Rojas Moreno

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);

Page 394: [-] Control Avanzado - Arturo Rojas Moreno

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 maximo de2.98J (correspondiente a la varilla con una carga esferica de magnitud Mo

= 0.045 kg). Para mayores detalles acerca de la carga no lineal variable, verla subseccion 6.7.8.

El sistema de control robusto debe ser capaz de estabilizar la posicionde la carga no lineal para variaciones de su inercia comprendidas entre Jy 2.98J . La figura 7.10 muestra el resultado experimental del control deposicion robusto para una referencia de 45o en presencia de carga maxima.Podemos observar que la respuesta del sistema muestra sobreimpulso nulo,un tiempo estabilizacion menor que 4 s y error en estado estable nulo.

7.7. Problemas Resueltos

En la seccion problemas resueltos de los capıtulos 4 al 8, la solucion a losproblemas se encuentra, segun el caso, en uno o mas archivos con extensionm escritos en codigo MATLAB.

Problema 7.1

El problema 3.2 presenta las ecuaciones que gobiernan la dinamica longi-tudinal de un avion comercial volando a velocidad de crucero (altura y ve-locidad constantes). El control del angulo de inclinacion θ del avion (ver

Page 395: [-] Control Avanzado - Arturo Rojas Moreno

7.7 Problemas Resueltos 381

0 5 10 15 20 25 30 35 40 45 500

10

20

30

40

50

Pos

ició

n

(gra

dos)

Tiempo en segundos

0 5 10 15 20 25 30 35 40 45 500

0.05

0.1

0.15

0.2

Señ

al d

e co

ntro

l (vo

ltios

)

Tiempo en segundos

Figura 7.10: Resultado experimental del sistema de control de posicion ro-busto del servomotor D.C. sujeto a una carga no lineal maxima.

figura 3.14) es un problema longitudinal a resolver. El objetivo de controles entonces disenar un autopiloto que manipulando el angulo δe del deflec-tor de elevacion, controle el angulo de inclinacion del avion. Se pide disenarun sistema de control robusto con modelo interno que genere una fuerza decontrol tal que la salida del proceso (el angulo de inclinacion θ) presente unsobreimpulso menor al 10 % y un tiempo de estabilizacion menor que 4 s, conun error en estado estable nulo. Tomar 0.2 rad como entrada de referencia.Realizar el calculo del controlador para una entrada v escalon. El sistemadisenado debe ser del tipo m = 1. La seleccion del tiempo de muestreo es aconveniencia del diseno. Asumir: m(ω) ≈ |m(eiω)| y a(ω) ≈ |a(eiω)|.Solucion: Los rangos de variacion de los parametros se muestran en el pro-grama p4rob1.m, al igual que el procedimiento en detalle para disenar el con-trolador robusto cuando la entrada v es un escalon. La figura 7.12 (archivop4rob1s.m) es el diagrama de bloques empleado en la simulacion del sis-tema disenado y requiere que previamente se ejecute el programa p4rob1.m.Los resultados de la simulacion se muestran en la figura 7.13 (obtenida conel archivo p4rob1r.m). El sistema disenado cumple los requerimientos deestabilidad y rendimiento robustos, tal como se aprecia en la figura 7.11.

% p4rob1.m SOLUCION AL PROBLEMA 7.1

Page 396: [-] Control Avanzado - Arturo Rojas Moreno

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 NOMINALnumn=[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 PROCESOnump = [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))

Page 397: [-] Control Avanzado - Arturo Rojas Moreno

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 ROBUSTAalfa = 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.5for 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 ROBUSTOfor 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 < 1M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));end

% GRAFICOSejew = 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)’)

Page 398: [-] Control Avanzado - Arturo Rojas Moreno

384 Control Robusto

gridsubplot(122)semilogx(ejew,M_dB(1:pi/T))ylabel(’Magnitud de M en dB’)title(’ (b)’)xlabel(’Frecuencia angular (rad/s)’)gridprint -f -deps p4rob1fprint -s -deps p4rob1s

100

101

102

−10

0

10

20

30

40

Mag

nitu

des

en d

B

(a)

Frecuencia angular (rad/s)10

010

110

2−20

−15

−10

−5

0

5

Mag

nitu

d de

M e

n dB

(b)

Frecuencia angular (rad/s)

Figura 7.11: Condicion de estabilidad robusta (grafico de la izquierda) yrendimiento robusto (grafico de la derecha) para el problema 7.1.

Problema 7.2

El proceso reductor de humedad descrito en el problema 3.7 se muestraen la figura 3.24(a). El objetivo de control es reducir la humedad h delmaterial a granel de la tolva. La banda transportadora, que se desplaza auna velocidad v= 1 m/s constante, introduce el material a un horno desecado. El sensor de humedad detecta hr a una distancia d = 10 m delhorno y proporciona la senal de voltaje vr. El horno puede modelarse comoun proceso de primer orden. La figura 3.24(b) muestra la F.T del proceso.

Page 399: [-] Control Avanzado - Arturo Rojas Moreno

7.7 Problemas Resueltos 385

.

(1−alfa)zz−alfa

Filtro

+−S1

ap.s+bps +cp.s +dp.s3 2

Proceso p(s)

u

Graph

Mux

Muxan.s+bn

s +cn.s +dn.s3 2

Modelo nominal pn(s) − + S2

z +(a1−k1)z +(a2−a1*k1)z +(a3−a2*k1)z−a3*k14 3 2

(1−k1)*b1z +(1−k1)*b2z +(1−k1)*b3z 4 3 2

Controlador q~

Referencia

u_p4rob1

Control u

y_p4rob1

Salida y

Figura 7.12: Diagrama de bloques para simular el sistema de control robustocon modelo interno (problema 7.1).

0 1 2 3 4 5 6 7 8 9 100

0.05

0.1

0.15

0.2

0.25

Incl

inac

ión

(ra

d)

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 10−0.5

0

0.5

1

1.5

Def

lect

or

(rad

)

Tiempo en segundos

Figura 7.13: Angulo de inclinacion (salida controlada) y angulo del deflectorde elevacion (senal de control) para el problema 7.1.

Page 400: [-] Control Avanzado - Arturo Rojas Moreno

386 Control Robusto

Disenar un sistema de control robusto con modelo interno para controlarla humedad del material en la banda transportadora. El unico parametroincierto a considerar es el tiempo muerto v/d. Asuma como valor nominalTn = 9 s y como tiempo muerto del proceso Tp = 11 s. Las especificacionesde diseno son: tiempo de estabilizacion menor que 40 s, error en estadoestacionario nulo y porcentaje de sobreimpulso menor al 5 %. Realizar elcalculo del controlador para una entrada v escalon. El sistema disenado debeser del tipo m = 1. La seleccion del tiempo de muestreo es a convenienciadel diseno. Asumir: m(ω) ≈ |m(eiω)| y a(ω) ≈ |a(ω)|.Solucion: El programa p10rob1.m detalla el procedimiento para disenar elcontrolador robusto cuando la entrada v es un escalon. La figura 7.15 (archi-vo p10rob1s.m) es el diagrama de bloques empleado en la simulacion del sis-tema disenado y requiere previamente que se ejecute el programa p10rob1.m.El resultado de la simulacion se muestra en la figura 7.16 (obtenida con elarchivo p10rob1r.m). El sistema disenado cumple los requerimientos de es-tabilidad y rendimiento robustos, tal como se aprecia en la figura 7.16.

% p10rob1.m SOLUCION AL PROBLEMA 7.2clear all

% FT (FUNCION DE TRANSFERENCIA) DEL PROCESO% vr(s)/u(s) = K*exp(-d*s/v)/(s^2 + a*s + b): ESTRUCTURA DE LA FTK=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);

Page 401: [-] Control Avanzado - Arturo Rojas Moreno

7.7 Problemas Resueltos 387

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)

% 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 ROBUSTAalfa = 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));

Page 402: [-] Control Avanzado - Arturo Rojas Moreno

388 Control Robusto

% PARA ESTABILIDAD ROBUSTA: magf_dB(w+1) < mag_dB(w+1)end

% CHEQUEANDO RENDIMIENTO ROBUSTOfor w = 0:pi/Ts=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 < 1M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));end

% GRAFICOSejew = linspace(0,pi/T,pi/T);subplot(121)semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),’--’); gridylabel(’Magnitudes en dB’)title(’ (a)’)xlabel(’Frecuencia angular (rad/s)’)subplot(122)semilogx(ejew,M_dB(1:pi/T)); gridylabel(’Magnitud de M en dB’)title(’ (b)’)xlabel(’Frecuencia angular (rad/s)’)print -f -deps p10rob1fprint -s -deps p10rob1s

Problema 7.3

La figura 3.20 muestra un monorriel de dos carros descrito en el problema3.5. El problema a resolver es el control de velocidad del carro de maquinasmediante un sistema de control robusto empleando modelo interno. Paragarantizar a los pasajeros un viaje confortable, los cambios de velocidaddeben realizarse con un tiempo de estabilizacion menor que 6 segundos ycon mınimo sobreimpulso. El error en estado estable debe ser nulo. Tener

Page 403: [-] Control Avanzado - Arturo Rojas Moreno

7.7 Problemas Resueltos 389

100 101−35

−30

−25

−20

−15

−10

−5

0

5

10

15

Mag

nitu

des

en d

B

(a)

Frecuencia angular (rad/s)100 101

−12

−10

−8

−6

−4

−2

0

2

Mag

nitu

d de

M e

n dB

(b)

Frecuencia angular (rad/s)

Figura 7.14: Condicion de estabilidad robusta (grafico de la izquierda) yrendimiento robusto (grafico de la derecha) para el problema 7.2.

.

+−S1 Graph

Mux

MuxReferencia

z +a1.z +a2.z 20 19 18

b1.z +b2.z 20 19

Controlador q~H

z−k1(1−k1)z

Controllador q~_

(1−alfa)zz−alfa

Filtro

Ks +as+b2

Proceso p(s) Tp

Ks +as+b2

Modelo nominal pn(s) Tn− + S2

u

y_p10rob

Salida y

u_p10rob

Control u

Figura 7.15: Diagrama de bloques para simular el sistema de control robustocon modelo interno (problema 7.2.)

Page 404: [-] Control Avanzado - Arturo Rojas Moreno

390 Control Robusto

0 10 20 30 40 50 60 70 80 90 1000

0.5

1

Hum

edad

Tiempo en segundos

0 10 20 30 40 50 60 70 80 90 100−0.02

0

0.02

0.04

0.06

Flu

jo c

alor

ífico

Tiempo en segundos

Figura 7.16: Flujo calorıfico (senal de control) y humedad sensada (salidacontrolada) para el problema 7.2.

en cuenta que debido al peso de los pasajeros, podemos considerar un rangode variacion en la masa de los carros de pasajeros. Realizar el calculo delcontrolador para una entrada v escalon. El sistema disenado debe ser del tipom = 1. La seleccion del tiempo de muestreo es a conveniencia del diseno.Asumir: m(ω) ≈ |m(eiω)| y a(ω) ≈ |a(ω)|.Solucion: El programa p7rob1.m muestra el rango de variacion de talesmasas y detalla el procedimiento para disenar el controlador robusto cuandola entrada v es un escalon. La figura 7.18 (archivo p7rob1s.m) es el diagramade bloques empleado en la simulacion del sistema disenado y requiere previ-amente que se ejecute el programa p7rob1.m. El resultado de la simulacionse muestra en la figura 7.19 (obtenida con el archivo p7rob1r.m). El sistemadisenado cumple los requerimientos de estabilidad y rendimiento robustos,tal como se puede apreciar en la figura 7.17.

% p7rob1.m SOLUCION AL PROBLEMA 7.3clear 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;

Page 405: [-] Control Avanzado - Arturo Rojas Moreno

7.7 Problemas Resueltos 391

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 00 0 0 1 0 0

K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M20 0 0 0 0 10 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3];

B=[0 1 0 0 0 0]’;alfa = 1; % CONSTANTE TACOMETRICAC=[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 DISCRETOT = 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 00 0 0 1 0 0

K12/M2 B12/M2 -(K12+K23)/M2 -(B2+B23+B12)/M2 K23/M2 B23/M20 0 0 0 0 10 0 K23/M3 B23/M3 -K23/M3 -(B3+B23)/M3];

B=[0 1 0 0 0 0]’;alfa = 1; % CONSTANTE TACOMETRICAC=[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)/...

Page 406: [-] Control Avanzado - Arturo Rojas Moreno

392 Control Robusto

% (s^6+an1*s^5+an2*s^4+an3*s^3+an4*s^2+an5*s+an6);% MODELO NOMINAL DISCRETOT = 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)^2k1=-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_=

Page 407: [-] Control Avanzado - Arturo Rojas Moreno

7.7 Problemas Resueltos 393

% (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);

% 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 ROBUSTAalfa = 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 ROBUSTOfor w = 0:pi/Ts=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 < 1M_dB(w+1) = 20*log10(abs(q*la) + abs((1-pn*q)*W));end

% CALCULO DEL CONTROLADOR c=q/(1-pnz*q)

Page 408: [-] Control Avanzado - Arturo Rojas Moreno

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);

% GRAFICOSejew = linspace(0,pi/T,pi/T);subplot(121)semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),’--’); gridylabel(’Magnitudes en dB’);title(’ (a)’)xlabel(’Frecuencia angular (rad/s)’)subplot(122)semilogx(ejew,M_dB(1:pi/T)); gridylabel(’Magnitud de M en dB’);title(’ (b)’)xlabel(’Frecuencia angular (rad/s)’)print -f -deps p7rob1fprint -s -deps p7rob1s

100 101 102−20

−10

0

10

20

30

40

Mag

nitu

des

en d

B

(a)

Frecuencia angular (rad/s)100 101 102

−10

−9

−8

−7

−6

−5

−4

−3

−2

−1

0

Mag

nitu

d de

M e

n dB

(b)

Frecuencia angular (rad/s)

Figura 7.17: Condicion de estabilidad robusta (grafico de la izquierda) yrendimiento robusto (grafico de la derecha) para el problema 7.3.

Page 409: [-] Control Avanzado - Arturo Rojas Moreno

7.7 Problemas Resueltos 395

.

numc(z)denc(z)

Controlador c(z)

u nump(s)denp(s)

Proceso p(s)

+

S1

rMux

MuxGraph

u_p7rob1

Control uy_p7rob1

Salida y

y

Figura 7.18: Diagrama de bloques para simular el sistema de control robustocon modelo interno del problema 7.3.

0 1 2 3 4 5 6 7 8 9 100

5

10

15

Vel

ocid

ad

(m/s

)

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

300

Fue

rza

(N

)

Tiempo en segundos

Figura 7.19: Velocidad del carro de maquinas y fuerza de control para elproblema 7.3.

Page 410: [-] Control Avanzado - Arturo Rojas Moreno

396 Control Robusto

Problema 7.4

La figura 3.22 muestra el proceso ascensor tratado en el problema 3.6. Sinembargo, para este problema considere que el actuador posee la siguientefuncion de transferencia:

x1(s)v(s)

=Ka

s+ 0,2; 0,008 ≤ Ka ≤ 0,012

El problema a resolver es posicionar suavemente el ascensor en un piso de-terminado, lo que significa sobreimpulso nulo (para que no se pase de piso)y tiempo de estabilizacion menor que 8 s. Para no saturar al actuador (unamplificador de potencia), la senal de control debe estar dentro del rangode ± 200 volt. Disenar un sistema de control robusto que cumpla las es-pecificaciones pedidas. Realizar el calculo del controlador para una entradav escalon. El sistema disenado debe ser del tipo m = 1. La seleccion deltiempo de muestreo es a conveniencia del diseno. Asumir: m(ω) ≈ |m(eiω)|y a(ω) ≈ |a(ω)|.Solucion: El programa p8rob1.m detalla el procedimiento para disenarel controlador robusto cuando la entrada v es un escalon. La figura 7.21(archivo p8rob1s.m) es el diagrama de bloques empleado en la simulaciondel sistema disenado y requiere pque reviamente se ejecute el programa dep8rob1.m. El resultado de la simulacion se muestra en la figura 7.22 (obteni-da con el archivo p8rob1r.m). El sistema disenado cumple los requerimientosde estabilidad y rendimiento robustos, tal como se aprecia en la figura 7.20.

% p8rob1.m SOLUCION AL PROBLEMA 7.4clear all

% PROCESOAc = [-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 DISCRETOT = 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);

Page 411: [-] Control Avanzado - Arturo Rojas Moreno

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 NOMINALAc = [-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 DISCRETOT = 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)/...

Page 412: [-] Control Avanzado - Arturo Rojas Moreno

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 ROBUSTAalfa = 0.7;for w = 0:pi/Ts=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 ROBUSTOfor w = 0:pi/Ts=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 < 1M_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);

% GRAFICOSejew = linspace(0,pi/T,pi/T);

Page 413: [-] Control Avanzado - Arturo Rojas Moreno

7.8 Problemas Propuestos 399

subplot(121)semilogx(ejew,mag_dB(1:pi/T),ejew,magf_dB(1:pi/T),’--’); gridylabel(’Magnitudes en dB’); title(’ (a)’)xlabel(’Frecuencia angular (rad/s)’)subplot(122)semilogx(ejew,M_dB(1:pi/T)); gridylabel(’Magnitud de M en dB’); title(’ (b)’)xlabel(’Frecuencia angular (rad/s)’)print -f -deps p8rob1fprint -s -deps p8rob1s

100 101−15

−10

−5

0

5

10

15

Mag

nitu

des

en d

B

(a)

Frecuencia angular (rad/s)100 101

−4.5

−4

−3.5

−3

−2.5

−2

−1.5

−1

−0.5

0

0.5

Mag

nitu

d de

M e

n dB

(b)

Frecuencia angular (rad/s)

Figura 7.20: Condicion de estabilidad robusta (grafico de la izquierda) yrendimiento robusto (grafico de la derecha) para el problema 7.4.

7.8. Problemas Propuestos

Problema 7.5

El problema 3.1 describe en detalle las ecuaciones que gobiernan la dinamicadel sistema de suspension de un bus (ver figura 3.12). Disenar un sistema decontrol robusto con modelo interno para lograr el objetivo de control que seformula a continuacion. La salida del proceso y = x2−x1 (referencia nula) no

Page 414: [-] Control Avanzado - Arturo Rojas Moreno

400 Control Robusto

.

Mux

MuxGraph

ynump(s)denp(s)

Proceso p(s)

u+

S1

numc(z)denc(z)

Controlador c(z)

r

y_p8rob1

Salida y

u_p8rob1

Control u

Figura 7.21: Diagrama de bloques para simular el sistema de control robustocon modelo interno del problema 7.4.

0 1 2 3 4 5 6 7 8 9 100

0.5

1

1.5

2

2.5

3

Pos

ició

n (

m)

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 10−50

0

50

100

150

200

Vol

taje

de

cont

rol

Tiempo en segundos

Figura 7.22: Posicion del ascensor y fuerza de control (problema 7.4).

debe presentar sobreimpulsos mayores que 5 %. Luego de aproximadamente20 segundos, las oscilaciones originadas por un disturbio escalon de 10 cmprovocada por imperfecciones en la pista, practicamente deben desaparecer.El parametro incierto del proceso es la masa del bus, la que sin pasajeros esde m1 = 2500 kg y lleno de pasajeros cambia a 3500 kg. Realizar el calculodel controlador para una entrada v escalon. El sistema disenado debe ser deltipo m=1. Seleccionar un tiempo de muestreo conveniente.

Page 415: [-] Control Avanzado - Arturo Rojas Moreno

7.8 Problemas Propuestos 401

Problema 7.6

La figura 2.2 muestra dos tanques identicos colocados en cascada. La seccionhorizontal A=9 m2 de cada tanque es constante. El objetivo de controles controlar la altura H2 empleando el flujo Qo. La deduccion del modelolinealizado del proceso se describe en el ejemplo 2.1. Las especificaciones dediseno son: tiempo de estabilizacion menor que 15 s, sobreimpulso menor al5 % y error nulo en estado estable. El flujo de entrada (la senal de control)no debe sobrepasar los 3 m3/s. Disenar un controlador robusto con modelointerno que logre cumplir los requerimientos anteriores. Realizar el calculodel controlador para una entrada v escalon. El sistema disenado debe serdel tipo m = 1. La seleccion del tiempo de muestreo es a conveniencia deldiseno.

Problema 7.7

El proceso electromecanico mostrado en la figura 3.26 se describe en el pro-blema 3.8. Disenar un sistema de control robusto con modelo interno paracontrolar la velocidad angular del eje del motor mediante el voltaje de en-trada que puede variar entre ± 100 volt. Realizar el calculo del controladorpara una entrada v escalon. El sistema disenado debe ser del tipo m=1 y laseleccion del tiempo de muestreo es a conveniencia del diseno. La salida con-trolada no debe presentar sobreimpulso ni error estacionario. El parametroincierto 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 barracon un grado de libertad, tal como se muestra en la figura 3.16. Una levaconecta la barra con un engranaje que esta accionado por un servomotor.Disenar un sistema de control robusto que pueda posicionar la bola a 0.5 mde un extremo de la barra de 1 m de longitud. Evidentemente, la oscilacionde la bola debe estar restringida sobre la barra. El voltaje de control no debesobrepasar los ± 40 voltios y la masa de la bola puede variar en ± 15 %.Realizar el calculo del controlador para una entrada v escalon. El sistemadisenado debe ser del tipo m = 1 y la seleccion del tiempo de muestreo es aconveniencia del diseno.

Page 416: [-] Control Avanzado - Arturo Rojas Moreno

402 Control Robusto

Problema 7.9

Las ecuaciones del modelo linealizado para controlar la posicion del canonmontado en la torreta de un tanque (ver figura 3.28) empleando un actuadorhidraulico se detallan en el problema 3.9.

(a) Disenar un sistema de control robusto con modelo interno para con-trolar el angulo de elevacion θ con las especificaciones siguientes: tiem-po de estabilizacion menor que 8 s, mınimo sobreimpulso y error enestado estacionario nulo. Los disturbios tipo escalon pueden actuarsimultaneamente o no y pueden ser positivos o negativos. Para cadacaso, el sistema de control disenado debe ser capaz de minimizar susefectos. Realizar el calculo del controlador para una entrada v escalon.El sistema disenado debe ser del tipo m = 1 y la seleccion del tiempode muestreo es a conveniencia del diseno. Considerar que todos losparametros poseen incertidumbre de ± 5 %.

(b) Lo mismo que (a), pero en este caso para controlar el angulo azimutal.

Problema 7.10

La figura 3.31 muestra el proceso servomotor con carga no lineal descrito enla seccion 3.3, en donde la carga no lineal posee ahora dos grados de libertadcon Lo = 2L1/3. La union de la carga con el eje del servomotor no es flexible.Las ecuaciones que describen la dinamica del sistema fueron requeridas enel problema 3.12. Disenar un sistema de control robusto con modelo internopara controlar simultaneamente las posiciones θ y τ con mınimo tiempo deestabilizacion y mınimo sobreimpulso. Considerar (a su criterio) variacionesen la carga adicionalMo. Realizar el calculo del controlador para una entradav escalon. El sistema disenado debe ser del tipo m = 1 y la seleccion deltiempo de muestreo es a conveniencia del diseno. Considerar dos casos: (a)cuando la inductancia de armadura es despreciable, y (b) cuando no lo es.

Problema 7.11

La figura 3.32 muestra el proceso pendulo doble no lineal que es una ex-tension del pendulo simple descrito en la seccion 3.1. El acoplamiento entrelos dos pendulos de igual longitud no es flexible. Las ecuaciones que des-criben la dinamica del sistema son materia del problema propuesto 3.13.Disenar un sistema de control robusto con modelo interno para controlar

Page 417: [-] Control Avanzado - Arturo Rojas Moreno

7.8 Problemas Propuestos 403

simultaneamente las posiciones θ y τ con mınimo tiempo de estabilizaciony mınimo sobreimpulso, de modo tal que el pendulo doble permanezca enposicion vertical. Considerar que la carga adicional esferica de 0.02 kg varıaen ± 6 %. Realizar el calculo del controlador para una entrada v escalon.El sistema disenado debe ser del tipo m = 1 y la seleccion del tiempo demuestreo es a conveniencia del diseno.

Problema 7.12

La figura 3.33 muestra el proceso doble grua-puente no lineal que es una ex-tension del proceso grua-puente descrito en la seccion 3.2. El acoplamientoentre los dos pendulos de igual longitud no es flexible. Las ecuaciones quedescriben la dinamica del sistema son materia del problema propuesto 3.14.Disenar un sistema de control robusto con modelo interno para controlarsimultaneamente las posiciones θ y τ con mınimo tiempo de estabilizacion ymınimo sobreimpulso, de modo tal que la doble grua puente permanezca enposicion vertical cuando el carro realiza un recorrido predeterminado. Con-siderar que la carga adicional esferica de 0.02 kg varıa en ± 6 %. Realizar elcalculo del controlador para una entrada v escalon. El sistema disenado debeser del tipo m = 1 y la seleccion del tiempo de muestreo es a convenienciadel diseno.

Problema 7.13

La figura 1.1 muestra un carro de masa m = 1000 kg desplazandose con unavelocidad v gracias a la accion de la fuerza u producida por su motor. Si sedesprecia la inercia de las ruedas y se asume que la fuerza de friccion bv,donde b= 50 N-s/m es el coeficiente de friccion, es lo unico que se oponeal movimiento del carro, entonces la dinamica del proceso puede modelarsecomo (ver ejemplo 1.16):

mv(t) + bv(t) = u(t); v =dv

dt

Disenar un sistema de control robusto con modelo interno para controlar lavelocidad del movil con mınimo tiempo de estabilizacion y mınimo sobreim-pulso. Considerar una incertidumbre de ± 5 % en todos los parametros.Realizar el calculo del controlador para una entrada v escalon. El sistemadisenado debe ser del tipo m = 1 y la seleccion del tiempo de muestreo es aconveniencia del diseno.

Page 418: [-] Control Avanzado - Arturo Rojas Moreno

404 Control Robusto

Problema 7.14

El motor D.C. es un actuador muy popular en los sistemas de control porquesu movimiento rotatorio, mediante acoples adecuados a su eje, puede conver-tirse facilmente en movimiento de traslacion. Eso se aprecia en fajas trans-portadoras o en brazos manipuladores. La figura 4.3 muestra el circuito dearmadura del motor y el diagrama de cuerpo libre de su rotor. Las ecuacionesque gobiernan el comportamiento dinamico del motor fueron derivadas enel ejemplo 4.1.

(a) Disenar un sistema de control robusto con modelo interno para esta-bilizar la velocidad angular del eje del motor con las especificacionessiguientes: tiempo de estabilizacion menor que 4 s, error en estado es-table menor al 1 % y sobreimpulso de la salida menor al 5 %. Considerevariaciones de ± 7 % en los parametros b y J . Realizar el calculo delcontrolador para una entrada v escalon. El sistema disenado debe serdel tipo m = 1 y la seleccion del tiempo de muestreo es a convenienciadel diseno.

(b) Disenar un sistema de control robusto con las especificaciones anterio-res, pero en este caso para estabilizar la posicion del eje del motor.

Problema 7.15

Repetir los problemas 7.1 al 7.14 cuando la entrada v toma las formas:

v(s) =1

τs+ 1; v(z) =

z/τ

z − e−T//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) =1s2

; v(z) =Tz

(z − 1)2

y el tipo del sistema es m=2. Tomar como senal de referencia una rampa dependiente unitaria.

Page 419: [-] Control Avanzado - Arturo Rojas Moreno

Capıtulo 8

Control No Lineal

Luego de formulado el problema de control a resolver, el siguiente pasoes encontrar un modelo que sea capaz de capturar la dinamica del procesoen el rango de operacion. En realidad todos los procesos son no lineales ymuchas veces resulta mas conveniente trabajar directamente con el modelo nolineal. Ası podemos disenar sistemas de control no lineal empleando diversastecnicas tales como [13]: el metodo directo de Liapunov, control deslizante,control adaptivo (capıtulo 5) y linealizacion de la realimentacion (materia deeste capıtulo).

La idea fundamental del control de procesos no lineales empleando la tecnicade linealizacion por realimentacion, es linealizar (hallar un modelo lineal equi-valente) el proceso (parcial o totalmente, si fuera posible) mediante un cambioadecuado de coordenadas y una realimentacion del vector de estado de dichoproceso, de modo tal que el proceso resultante (su forma normal) nos permitaaplicar tecnicas de control lineal (en el caso de linealizacion completa del pro-ceso), o bien, atacar los problemas de control con un grado de dificultad menor(en el caso de linealizacion parcial).

El procedimiento de diseno sugerido se aplica al control no lineal de posicionde un servomotor D.C., sujeto a la accion de una carga no lineal y al efecto queproducen algunas no linealidades inherentes al proceso, tales como saturaciondel amplificador y friccion de Coulomb.

La penultima seccion, problemas resueltos, esta dedicada al diseno de sis-temas de control no lineal para diferentes procesos. En la ultima seccion se pro-ponen proplemas de diseno. Todos los archivos correspondientes a los ejercicios,problemas, disenos, simulaciones y software desarrollados se pueden descargardel sitio: http://fiee.uni.edu.pe/728681F.

Page 420: [-] Control Avanzado - Arturo Rojas Moreno

406 Control No Lineal

8.1. Herramientas Matematicas

Las herramientas matematicas a discutir corresponden a la geometrıadiferencial y a la topologıa. Solo se tratan los puntos directamente involu-crados con la tecnica de linealizacion por realimentacion. Por esta razon esque esas matematicas no se incluyeron como parte del capıtulo 1.

La notacion:f : Rn → Rn (8.1)

indica que a cada funcion vectorial f le corresponde un campo vectorial en elespacio n-dimensional Rn. Los campos vectoriales de interes para nosotrosson los denominados suaves. Un campo vectorial f(x) es suave cuando talfuncion vectorial posee infinitas derivadas parciales continuas.

Si h(x) es una funcion escalar de variable vectorial suave, donde x es elvector 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...

...∂fn

∂x1· · · ∂fn

∂xn

(8.3)

8.1.1. Derivadas y Corchetes de Lie

Definicion 8.1 Dada una funcion escalar suave h(x) : Rn → R y un campovectorial suave f(x) : Rn → Rn, nosotros podemos definir una nueva fun-cion escalar Lfh = ∇h f denominada la derivada de Lie, o simplemente laderivada direccional de h a lo largo de la direccion del vector f .

Sucesivas derivadas de Lie pueden ser definidas recursivamente:

L0fh = ∇h f0 = h

Lifh = Lf (Lf i−1h) = ∇(Li−1

f h) f , i = 1, 2, . . . (8.4)

Del mismo modo, si g es otro campo vectorial, la funcion escalar LgLfh(x)es:

LgLfh(x) = ∇(Lfh) g (8.5)

Page 421: [-] Control Avanzado - Arturo Rojas Moreno

8.1 Herramientas Matematicas 407

Ejemplo 8.1

Determinar las dos primeras derivadas de Lie de la salida y para el procesosiguiente:

x = f(x), y = h(x)

Solucion: Las derivadas de la salida son:

y =∂h

∂xx = Lxh = Lfh

y =∂[Lfh]∂x

x = L2fh

Definicion 8.2 Sean f y g dos campos vectoriales en Rn. El corchete deLie de f y g se define como un tercer campo vectorial de la forma:

[f ,g] = ∇g f −∇f g = adfg

Observar que al corchete de Lie se le denota tambien como adfg, dondead significa adjunta. Sucesivos corchetes de Lie se pueden definir recursiva-mente:

adf0g = g

adf ig = [f , adf i−1g], i = 1, 2, . . .

Ejemplo 8.2

Determinar [f ,g] para el proceso no lineal x = f(x) + gu, donde:

f =[ −2x1 + ax2 + senx1

−x2cosx1

]; g =

[0

cos(2x1)

]

Solucion:

[f ,g] =[

0 0−2sin(2x1) 0

] [ −2x1 + ax2 + senx1

−x2cosx1

]

−[ −2 + cosx1 a

x2sinx1 −cosx1

] [0

cos(2x1)

]

=[

acos(2x1)cosx1cos(2x1) − 2sen(2x1)(−2x1 + ax2 + senx1)

]

Page 422: [-] Control Avanzado - Arturo Rojas Moreno

408 Control No Lineal

Lema 8.1 Los corchetes de Lie satisfacen las propiedades siguientes:

1. Bilinealidad:

[α1f1 + α2f2,g] = α1[f1,g] + α2[f2,g]

[f , α1g1 + α2g2] = α1[f ,g1] + α2[f ,g2]

2. Anticonmutatividad:[f ,g] = −[g, f ]

3. Identidad de Jacobi:

Ladfgh = LfLgh− LgLfh

donde f , f1, f2,g,g1 y g2 son campos vectoriales, α1 y α2 son constantesescalares y h(x) es una funcion diferenciable.

8.1.2. Difeomorfismo y Transformacion de Estados

El concepto de difeomorfismo, que puede ser visto como una general-izacion del concepto familiar de transformacion de coordenadas, es el si-guiente:

Definicion 8.3 Una funcion φ: Rn → Rn definida en una region Ω, se de-nomina un difeomorfismo si φ y su inversa son suaves. Si Ω = Rn, entoncesφ(x) es un difeomorfismo global. Si φ(x) se define en una region finita ypara un punto dado, entonces el difeomorfismo es local.

El siguiente lema permite determinar difeomorfismos locales.

Lema 8.2 Sea φ(x) una funcion suave definida en una region Ω en Rn.Si el jacobiano ∇φ es no singular en un punto x = x de Ω, entonces φ(x)define un difeomorfismo local en una region de Ω.

Ejemplo 8.3

Determinar el difeomorfismo local alrededor del origen para el sistema si-guiente: [

z1z2

]= φ(x) =

[2x1 + 5x1x

22

3senx2

]

Page 423: [-] Control Avanzado - Arturo Rojas Moreno

8.1 Herramientas Matematicas 409

Solucion: El jacobiano de φ para x = (0, 0) es:

∂φ

∂x=[

2 + 5x22 10x1x2

0 3cosx2

]x=(0,0)

=[

2 00 3

]

que posee rango 2, indicandonos que φ posee inversa porque es no singulary constituye un difeomorfismo local de acuerdo al lema 8.2.

8.1.3. Transformacion no Lineal de Estados

Un difeomorfismo puede ser usado para transformar una representacionno lineal en otra, en terminos de un nuevo vector de estado. Consideremosque el proceso no lineal sea descrito por la siguiente representacion en elespacio de estado:

x = f(x(t)) +m∑

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 manipu-lada) del proceso de ordenm, x(t) = [x1(t), . . . , xn(t)]T es el vector de estadodel proceso de orden n, y(t) = [y1(t), . . . , yp(t)]T es el vector de salida delproceso (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 in-finitamente diferenciables.

Asumamos la siguiente transformacion no lineal de estados:

z = φ(x) =

φ1(x1, . . . , xn)

...φn(x1, . . . , xn)

(8.7)

donde la funcion de transformacion φ es invertible y tanto φ como su inversaφ−1 son infinitamente diferenciables. Notar que la transformacion dada en laecuacion (8.7) es un difeomorfismo. Mientras que la propiedad de inversionde φ permite un retorno a los estados originales, la propiedad de diferen-ciacion garantiza que la descripcion del proceso con las nuevas coordenadassea tambien infinitamente diferenciable, tal como lo es el proceso original.

Empleando la transformacion z = φ(x) en la ecuacion (8.6) obtenemos:

z =[∂φ

∂x

]x(t)

x(t)

=[∂φ

∂x

]x(t)

f(x(t)) +[∂φ

∂x

]x(t)

m∑j=1

gj(x(t))uj(t) (8.8)

Page 424: [-] Control Avanzado - Arturo Rojas Moreno

410 Control No Lineal

donde x es un punto de equilibrio para el cual la matriz jacobiana es nosingular, lo que significa que su inversa existe. Luego, podemos obtener lasiguiente representacion no lineal para el vector de estado z, como sigue:

z = f(z(t)) +m∑

j=1

gj(z(t))uj(t); y(t) = h(z(t)) (8.9)

f(z) =[∂φ

∂xf]

(φ−1(z))

gj(z) =[∂φ

∂xgj

](φ−1(z))

h(z) = h(φ−1(z))

Observar que (8.9) constituye un nuevo sistema no lineal con un vector deestado z.

8.1.4. El Teorema de Frobenius

El teorema de Frobenius es una herramienta importante para el tratamien-to formal de la linealizacion por realimentacion de procesos de orden n. Esteteorema proporciona las condiciones necesarias y suficientes para resolveruna clase especial de ecuaciones con derivadas parciales. Antes de presentarel teorema en cuestion se requiere de las siguientes definiciones:

Definicion 8.4 Se dice que un conjunto linealmente independiente de cam-pos vectoriales [f1, . . . , fm] en Rn es completamente integrable, si y solo siexisten (n−m) funciones escalares h1(x), h2(x), . . . , hn−m(x) que satisfacenel siguiente sistema de ecuaciones diferenciales parciales:

∇hi fj = 0

donde 1 ≤ i ≤ n − m, 1 ≤ j ≤ m. En adicion, los gradientes ∇hi sontambien linealmente independientes.

La definicion anterior implica la existencia de n(m− n) ecuaciones diferen-ciales parciales de la forma ∇hifj = 0.

Definicion 8.5 Se dice que un conjunto linealmente independiente de cam-pos vectoriales [f1, . . . , fm] en Rn es involutivo, si y solo si existen funcionesescalares αijk: Rn → Rn tales que:

[∇g f −∇f g](x) = [f ,g](x) =m∑

k=1

αijk(x)fk(x), ∀ i, j

Page 425: [-] Control Avanzado - Arturo Rojas Moreno

8.1 Herramientas Matematicas 411

Ya vimos que la notacion [f ,g] es conocida como el corchete de Lie. Partiendode la definicion anterior se puede deducir que:

1. Los campos vectoriales constantes, es decir, si fk y gk son constantespara cualquier k = 1, . . . ,m, son siempre involutivos puesto que:

[f ,g](x) = 0 =m∑

k=1

αijk(x)fk(x), ∀ x, i, j

2. Un conjunto compuesto por un solo campo vectorial f es involutivoporque [f , f ] = 0.

3. Si un conjunto de campos vectoriales [f1, . . . , fm] es involutivo, implicaque 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 vec-toriales linealmente independientes. Se dice que tal conjunto es integrable siy solo si es involutivo.

Ejemplo 8.4

Considere el conjunto de ecuaciones diferenciales parciales:

4x3∂h

∂x1− ∂h

∂x2= 0

−x1∂h

∂x1+ (x2

3 − 3x2)∂h

∂x2+ 2x3

∂h

∂x3= 0

donde sus campos vectoriales asociados poseen la forma:

f1 = [4x3 − 1 0]T ; f2 = [−x1 (x23 − 3x2) 2x3]T

Determine si tal conjunto de ecuaciones diferenciales parciales es solucionable(o en otras palabras, si [f1, f2] es completamente integrable).

Solucion: Operando, encontramos que:

[f1, f2] = [−12x3 3 0]T

Dado que [f1, f2] = −3f1 + 0f2, este conjunto de campos vectoriales es in-volutivo. Por consiguiente, las ecuaciones diferenciales parciales dadas sonsolucionables.

Page 426: [-] Control Avanzado - Arturo Rojas Moreno

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 relacion directa entre la entrada u y la salida y. Paraello derivamos la salida como sigue:

y =∂h(x)∂x

x =∂h(x)∂x

f(x) +∂h(x)∂x

g(x)u

= Lfh(x) + Lgh(x)u

Si Lgh(x) = 0, entonces se obtiene la relacion deseada entre y y u; en casocontrario, debemos seguir derivando la salida remanente y = Lfh(x) comose muestra a continuacion:

y =∂

∂xLfh(x)x

=∂

∂xLfh(x)f(x) +

∂xLfh(x)g(x)u

= L2fh(x) + LgLfh(x)u

Nuevamente, si LgLfh(x) = 0, entonces se tiene la relacion deseada. En casocontrario, se debe seguir derivando la salida hasta que en la r-esima derivadala entrada u aparezca en forma explıcita, como sigue:

yr = Lrfh(x) + LgL

r−1f h(x)u; LgL

r−1f h(x) = 0

Definicion 8.6 El grado relativo del proceso univariable no lineal dado enla ecuacion (8.10), es el numero de veces r que hay que derivar la salidahasta obtener:

LgLifh(x) = 0, i = 1, 2, . . . , r − 2 (8.11)

LgLr−1f h(x) = 0 (8.12)

para todo x que pertenezca a una region Ω de Rn.

Page 427: [-] Control Avanzado - Arturo Rojas Moreno

8.3 Forma Normal de Procesos No lineales 413

8.3. Forma Normal de Procesos No lineales

La tecnica de linealizacion por realimentacion requiere de una repre-sentacion no lineal bastante util del proceso a controlar: la forma normal.La transformacion no lineal de coordenadas que permite llevar un procesono lineal de una entrada y una salida (ecuacion (8.10)) a su forma normal,involucra los terminos h(x), Lfh(x), . . . , Lr−1

f h(x), tal como veremos masadelante. Por consiguiente, tal transformacion depende del grado relativor del proceso. Empezaremos por el caso mas simple: r = n, donde n es elorden del proceso. La siguiente transformacion de coordenadas:

z = φ(x) =

φ1(x)φ2(x)

...φn(x)

=

h(x)Lfh(x)

...Ln−1

f h(x)

; y = h(x) (8.13)

con x = [x1, x2, · · · , xn]T , cumple con las condiciones de una transformacionno lineal; es decir, es un difeomorfismo basado en la hipotesis de que el ordendel sistema es r = n. Por consiguiente, dicha transformacion puede llevar alproceso descrito en la ecuacion (8.10) a la forma siguiente:

z1 =∂φ1(x)∂x

x

=∂φ1(x)∂x

[f(x) + g(x)u]

= Lfh(x) + Lgh(x)u = Lfh(x) = φ2(x)= z2...

zn−1 =∂φn−1(x)

∂xx

=∂Ln−2

f h(x)∂x

[f(x) + g(x)u]

= Ln−1f h(x) + LgL

n−2f h(x)u = Ln−1

f h(x) = φn(x)= zn

zn = Lnf h(x) + LgL

n−1f h(x)u

= Lnf h(φ

−1(z)) + LgLn−1f h(φ−1(z))u = b(z) + a(z)u

y = z1 (8.14)

Page 428: [-] Control Avanzado - Arturo Rojas Moreno

414 Control No Lineal

Notar que en la ecuacion anterior, a(z) = 0 por definicion, ya que en estecaso r = n.

Cuando el proceso no lineal posee rango r < n, entonces el cambio de co-ordenadas desarrollado anteriormente conduce a una transformacion parcial,en vista de que solo se pueden definir r funciones de la forma φ1(x), . . . , φr(x)linealmente independientes. Sin embargo, es posible agregar n− r funcionesde la forma φr+1(x), φr+2(x), . . . , φn(x), de modo tal que φ(x) sea un difeo-morfismo. Con ello, la forma normal del proceso (8.10) resulta en la siguienterepresentacion en el espacio de estado:

z1 = z2

z2 = z3...

zr−1 = zr

zr = Lrfh(φ

−1(z)) + LgLr−1f h(φ−1(z))u = b(z) + a(z)u

zr+1 = w1(z)...

zn = wn−r(z)y = z1 (8.15)

donde w1, w2, . . . , wn−r son funciones suaves que dependen del nuevo estadoz y no de la entrada manipulada u.

8.4. Linealizacion Exacta y la Ley de Control

La linealizacion exacta se refiere a tratar con procesos no lineales degrado r = n. En tales procesos es posible determinar una adecuada real-imentacion no lineal que conduzca a una linealizacion exacta del procesooriginal. El proceso puede ser univariable (con una entrada y una salida) omultivariable (con multiples entradas y multiples salidas). Nosotros solo nosocuparemos del caso univariable.

Hemos visto que un cambio de coordenadas de la forma z = φ(x), des-crito en la ecuacion (8.13) y aplicado al proceso no lineal de la ecuacion(8.10), produce un conjunto de nuevas coordenadas (la nueva representacionen el espacio de estado) que poseen la forma dada en (8.14), ecuacion que

Page 429: [-] Control Avanzado - Arturo Rojas Moreno

8.4 Linealizacion Exacta y la Ley de Control 415

volvemos a reescribir a continuacion:

z1 = z2

z2 = z3...

zn−1 = zn

zn = Lnf h(φ

−1(z)) + LgLn−1f h(φ−1(z))u = b(z) + a(z)u

y = z1 (8.16)

Si se define una senal de realimentacion u (la ley de control no lineal) de laforma:

u =1

a(z)[−b(z) + v] (8.17)

donde v es una nueva entrada, entonces el nuevo conjunto de ecuacionesviene a ser:

z1 = z2

z2 = z3...

zv = v

y = z1 (8.18)

que en forma compacta resulta en la siguiente representacion lineal en elespacio de estado:

z = Ax +Bv; y = Cx (8.19)

donde:

A =

0 1 0 . . . 00 0 1 . . . 0...

......

......

0 0 0 . . . 10 0 0 . . . 0

; B =

00...01

; C =

[1 0 . . . 0 0

](8.20)

Observar que la nueva entrada del proceso lineal es v. La figura 8.1 mues-tra el proceso de linealizacion descrito hasta ahora. El proceso lineal de laecuacion (8.19) es completamente controlable y completamente observable,

Page 430: [-] Control Avanzado - Arturo Rojas Moreno

416 Control No Lineal

ya que sus matrices de controlabilidad [B AB . . . An−1B] y de observa-bilidad [CT ATCT . . . (AT )n−1CT ] poseen rango n (rango completo). Porotra parte, el proceso resultante es un integrador de orden n debido a quesu funcion de transferencia resulta:

y(s)v(s)

= C[sI −A]−1B =1sn

(8.21)

1a(.)

b(.)a(.)

z = φ(x)z

x = f(x) + g(x)uv u x

Cy

×

+

Figura 8.1: Linealizacion por realimentacion.

Respecto al proceso de linealizacion desarrollado, debemos remarcar losiguiente:

El sistema de lazo cerrado resultante (figura 8.1) es lineal, completa-mente controlable y completamente observable. Por consiguiente, elproblema de control a resolver, ya sea de regulacion o de seguimientode trayectorias, queda resuelto disenando v con cualquier tecnica decontrol lineal conocida.

En general, la realimentacion no lineal requiere de todo el vector deestado z, por lo que es necesario que todos sus elementos sean me-dibles. De lo contrario, estamos obligados a estimarlos empleando unobservador no lineal, como veremos mas adelante.

Condiciones para Linealizacion Exacta

La linealizacion desarrollada anteriormente fue posible debido a la exis-tencia de una funcion de salida h(x) respecto a la cual el proceso no lineal

Page 431: [-] Control Avanzado - Arturo Rojas Moreno

8.4 Linealizacion Exacta y la Ley de Control 417

original tiene grado relativo r = n. Resaltemos que un proceso no lineal uni-variable como el de la ecuacion (8.10) posee grado r = n cuando la funcionh(x), para un entorno alrededor del punto de operacion x, satisface:

Lgh(x) = LgLfh(x) = · · · = LgLn−2f h(x) = 0

LgLn−1f h(x) = 0 (8.22)

Las condiciones para linealizacion exacta pueden ahora ser rigurosamenteformalizadas.

Teorema 8.2 El proceso univariable no lineal de la ecuacion (8.10):

x = f(x) + g(x)u

donde f(x) y g(x) son campos vectoriales suaves, es linealizable si y solo siexiste una region Ω en donde se cumplen las condiciones siguientes:

1. Los campos vectoriales:

[g, adfg, . . . , adn−1f g]

son linealmente independientes en Ω, lo que equivale a decir, que elrango de la matriz resultante [.] debe ser igual al orden n del proceso.

2. El conjunto:[g, adfg, . . . , adn−2

f g]

es involutivo en Ω.

La primera condicion puede ser interpretada como una condicion de con-trolabilidad dado que los campos vectoriales [g, adfg, . . . , adn−1

f g] aplicadosa procesos lineales se convierten en la conocida matriz de controlabilidad[B, AB, . . . , An−1B]. El rango de esta matriz debe ser n para que el procesolineal (entendiendose que el modelo del proceso es lineal) sea completamentecontrolable (subseccion 2.3.6). Sin embargo, puede ocurrir que un sistemano lineal sea controlable, mientras que su modelo linealizado no lo es. Porello, la primera condicion puede considerarse como una generalizacion de lacondicion de controlabilidad.

La condicion involutiva es menos intuitiva. Para sistemas lineales, talcondicion se satisface trivialmente ya que los campos vectoriales son cons-tantes. Pero, en general, no se puede decir lo mismo cuando se trata conprocesos no lineales.

Page 432: [-] Control Avanzado - Arturo Rojas Moreno

418 Control No Lineal

8.5. Observadores No Lineales

El estudio de la observabilidad en sistemas lineales tiene su base en lamatriz de observabilidad, que para sistemas univariables no forzados de laforma:

x = Ax(t); y(t) = Cx(t)

se define como:

N =

CCA...

CAn−1

(8.23)

El caso no lineal y no forzado que nos ocupa posee la descripcion:

x = f(x); y(t) = h(x) (8.24)

cuya correspondiente matriz de observabilidad generalizada es:

O(x) ∂

∂x

h(x)Lfh(x)

...Ln−1

f h(x)

(8.25)

Es facil demostrar que si f(x) = Ax y h(x) = Cx, las matrices deobservabilidad de las ecuaciones (8.23) y (8.25) se igualan. Supongamos quela matriz O(x) posea inversa para todo x. En tal caso, la transformaciondefinida por:

z = φ(x) =∂

∂x

h(x)Lfh(x)

...Ln−1

f h(x)

(8.26)

representa un cambio de coordenadas. Empleando los resultados anterioresy en analogıa con la ecuacion (8.16); la descripcion en el espacio de estadopara las nuevas coordenadas (notar que g = 0) es:

z1z2...

zn−1

zn

=

z2z3...zn

Lnf h[φ

−1(z)]

; y = z1 (8.27)

Page 433: [-] Control Avanzado - Arturo Rojas Moreno

8.5 Observadores No Lineales 419

que posee la forma matricial siguiente:

z = Az +BLnf h(φ

−1(z)); y = Cz (8.28)

donde:

A =

0 1 0 . . . 00 0 1 . . . 0...

......

......

0 0 0 . . . 10 0 0 . . . 0

; B =

00...01

; C =

[1 0 . . . 0 0

](8.29)

Se puede demostrar que la matriz de observabilidad del proceso descritoen la ecuacion (8.28) es la matriz identidad. Por consiguiente, tal proceso escompletamente controlable. Conforme a las relaciones (8.24), (8.25) y (8.26)se tiene que:

z =∂φ

∂xx = O(x)f(x)

= Az +BLnf h(φ

−1(z))y = Cz (8.30)

El observador a disenar debe estimar el vector de estado z; es decir, debedeterminar su estimado z empleando las mediciones a la entrada y a la sali-da del proceso. Haciendo una extension de los bien conocidos observadoreslineales (subseccion 2.3.6), para el observador no lineal podemos considerarla dinamica siguiente :

dzdt

= Az +BLnf h(φ

−1(z)) + L[y − Cz]; y = Cx (8.31)

donde observamos que el termino L[y−Cz] es proporcional al error entre lasalida del proceso y y la salida del observador y. Para obtener la expresiondel observador para los estados x(t) del proceso no lineal, empleamos laversion estimada de la ecuacion (8.30) que nos permite despejar el vector deestado estimado dx/dt como sigue:

dxdt

= O−1(x)dzdt

y usando la relacion (8.31) obtenemos:dxdt

= O−1(x)Az +BLnf h(φ

−1(z)) + L[y − Cz]= O−1(x)O(x)f(x) + L[y − Cz]= f(x) +O−1(x)L[y − h(x)] (8.32)

Page 434: [-] Control Avanzado - Arturo Rojas Moreno

420 Control No Lineal

que es la ecuacion del observador no lineal para el sistema no forzadox = f(x), y = h(x), con condicion inicial x(0), siempre que O−1(x) exista.Notar que tambien hemos usado el hecho de que:

y = h(x) = h(φ−1(z)) = Cz

Para el caso de procesos no lineales forzados con grado relativo r = n,y teniendo en cuenta la transformacion acostumbrada z = φ(x), entonces elsistema con las nuevas coordenadas resulta:

z = Az +B[Lnf h(φ

−1(z)) + LgLn−1f h(φ−1(z))u] (8.33)

Luego, por extension (ver ecuacion (8.31)), la dinamica del observador parael sistema forzado:

x = f(x) + g(x)u; y = h(x)

tiene la forma:

dzdt

= Az +BLnf h(φ

−1(z)) + LgLn−1f h(φ−1(z))u+ L[y − Cz] (8.34)

que debe cumplir con los requerimientos siguientes: que el proceso poseagrado relativo r = n, que su matriz de observabilidad sea invertible y quela entrada u sea uniformemente acotada. La ecuacion del observador para elsistema original toma la forma siguiente:

dxdt

= f(x) + g(x)u+O−1L[y(t) − h(x)] (8.35)

para una condicion inicial x(0).

Calculo de la Matriz de Ganancia L del Observador

Dado que el par [A,C] dado en (8.29) es completamente observable, unaforma de obtener L es aplicar la conocida formula del observador lineal [3]:

L = (WNT )−1

αn − an

...α1 − a1

(8.36)

donde n es el orden del proceso, y:

N =[CT ATCT · · · (AT )n−1CT

]

Page 435: [-] Control Avanzado - Arturo Rojas Moreno

8.6 Procedimiento de Diseno 421

W =

an−1 an−2 · · · a1 1an−2 an−3 · · · 1 0

......

......

a1 1 · · · 0 01 0 · · · 0 0

Los parametros ai, i = 1, . . . , n, se obtienen de la ecuacion:

|sI −A| = sn + a1sn−1 + · · · + an−1s+ an

mientras que los parametros αi, i = 1, . . . , n, se determinan a partir de lasraıces deseadas del observador µi, i = 1, . . . , n. Estas raıces conforman laecuacion caracterıstica del observador:

(s− µ1) · · · (s− µ1) = sn + α1sn−1 + · · · + αn−1s+ αn

y deben tener parte real negativa para garantizar la estabilidad del obser-vador no lineal.

8.6. Procedimiento de Diseno

El procedimiento para disenar el sistema de control no lineal basado enla tecnica de linealizacion por realimentacion es como sigue:

1) Formular el problema (definir especificaciones de diseno).

2) Determinar el modelo no lineal continuo del proceso.

3) Determinar el grado relativo del modelo no lineal continuo del proceso(subseccion 8.2).

4) Comprobar que se cumplen las condiciones de linealizacion exacta delmodelo no lineal continuo del proceso (subseccion 8.4).

5) Determinar la forma normal del proceso no lineal (subseccion 8.3).

6) Implementar la linealizacion por realimentacion de estado y la ley decontrol no lineal (subseccion 8.4).

7) Disenar el observador no lineal de estados (si fuera necesario).

8) Simular el sistema de control no lineal con el proposito de predecir unrendimiento satisfactorio.

Page 436: [-] Control Avanzado - Arturo Rojas Moreno

422 Control No Lineal

9) Implementar el hardware.

10) Implementar el software de control.

11) Realizar pruebas de funcionamiento (resultados experimentales).

8.7. Control No Lineal de un Servosistema

8.7.1. Formulacion del Problema

El servomotor D.C. con carga no lineal mostrado en la figura 3.9 y des-crito en la seccion 3.3, es un proceso de una entrada y una salida. Esteservomotor posee un engranaje reductor de velocidad y puede ser contro-lado por el voltaje de armadura. La carga no lineal es una varilla metalicaacoplada perpendicularmente al eje del servomotor, a manera de un brazorobotico de un grado de libertad. En el extremo libre de dicha varilla sepueden acoplar cargas adicionales. De esta manera la carga no lineal se hacevariable.

El objetivo de control es disenar e implementar un sistema de controlno lineal basado en la tecnica de linealizacion por realimentacion, de modotal que la varilla se posicione en una referencia predeterminada o siga unatrayectoria en el rango de 0 a 2π rad. El sobreimpulso de la respuesta debe sermınimo no obstante la presencia de la carga no lineal y de las no linealidadesdel proceso, como las fricciones estatica y de Coulomb, y la saturacion en elamplificador de potencia.

Las derivaciones que siguen a continuacion corresponden a dos casos delproceso:

1. Modelo no lineal de tercer orden del proceso cuando consideramos quela inductancia de armadura L es no despreciable.

2. Modelo no lineal de segundo orden del proceso cuando se desprecia lainductancia L.

8.7.2. Modelo del Proceso

Modelo No Lineal de Tercer Orden (L = 0)

La figura 3.9 presenta la estructura del proceso no lineal a controlar. Latabla 3.2 describe las variables y los valores de los parametros. Asumiendoque la senal de control u va a ser compensada en software de los efectos de la

Page 437: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 423

friccion estatica y friccion de Coulomb, entonces el proceso no lineal puedeser descrito mediante la siguiente representacion en el espacio de estado:

x = f(x) + g(x)u; y = h(x) (8.37)

donde:

f(x) =

x2

−( NM )senx1 − B

M x2 + nKM x3

−nEL x2 − R

Lx3

g(x) =

0

0Kact

L

; h(x) = x1 (8.38)

Los elementos del vector de estado [x1 x2 x3]T son la posicion angular, lavelocidad angular y la corriente de armadura, respectivamente, y Kactu es latension de armadura. Notar que el modelo del proceso no lineal es continuoy diferenciable.

El termino no lineal TN debido a las fricciones estatica y de Coulomb,puede no considerarse, dado que sus efectos van a ser compensados porsoftware cuando el sistema de control no lineal se implemente en tiemporeal.

Modelo No Lineal de Segundo Orden (L = 0)

El modelo no lineal de segundo orden del proceso es (subseccion 3.3):

x =[

x2

−BR+n2KEMR x2 − TN

M − NM senx1 + nKactK

MR u

]= f(x) + g(x)u

y = h(x) = x1 (8.39)

donde:

f(x) =[

x2

−BR+n2KEMR x2 − TN

M − NM senx1

]; g(x) =

[0

nKactKMR

]

Al igual que en el caso anterior (L no despreciable), el termino no linealTN debido a las fricciones estatica y de Coulomb, puede no ser tomado encuenta, dado que su efecto va a ser compensado por software.

Page 438: [-] Control Avanzado - Arturo Rojas Moreno

424 Control No Lineal

8.7.3. Determinacion del Grado Relativo

Grado Relativo del Proceso No Lineal de Tercer Orden

De acuerdo a lo establecido en la subseccion 8.2, empleamos las derivadasde Lie en el modelo del proceso no lineal de tercer orden como sigue:

Lfh(x) = ∇h(x)f(x) = x2 (8.40)LgLfh(x) = ∇(Lfh(x))g(x) = 0 (8.41)

L2fh(x) = ∇(Lfh(x))f(x) = −N

Msenx1 − B

Mx2 +

nK

Mx3 (8.42)

LgL2fh(x) = ∇(L2

fh(x))g(x) =nK

ML= 0 (8.43)

por consiguiente, el rango del proceso respecto a la salida y es r = 3. Elloimplica que el proceso en cuestion es completamente linealizable.

Grado Relativo del Proceso No Lineal de Segundo Orden

De acuerdo a lo establecido en la subseccion 8.2, empleamos las derivadasde Lie en el modelo del proceso no lineal de segundo orden como sigue:

Lfh(x) = ∇h(x)f(x) = x2 (8.44)

LgLfh(x) = ∇(Lfh(x))g(x) =nKactK

MR= 0 (8.45)

Por consiguiente, el rango del proceso respecto a la salida y es r = 2. Elloimplica que el proceso en cuestion es completamente linealizable.

8.7.4. Comprobar Linealizacion Exacta

Linealizacion Exacta del Modelo Lineal de Tercer Orden

Para aplicar las condiciones de linealizacion establecidas en el teorema8.2, debemos calcular:

adfg = [f ,g] = ∇g f −∇f g

=

0 1 0

−NM cosx1 − B

MnKM

0 − nEL −R

L

0

01L

=

0

− nKMLRL2

ad2fg = [f , adfg] = ∇(adfg) f −∇f adfg

Page 439: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 425

=

0 1 0

−NM cosx1 − B

MnKM

0 − nEL −R

L

0

− nKMLRL2

=

nK

ML

−nKBM2L

− nKRML2

−n2KEML2 + R2

L3

[g adfg ad2fg] =

0 0 nK

ML

0 − nKML −nKB

M2L− nKR

ML2

1L

RL2 −n2KE

ML2 + R2

L3

Dado que:

det[g adfg ad2fg] =

n2K2

M3L3

entonces tal conjunto esta conformado por campos vectoriales linealmenteindependientes. Por otra parte, el conjunto:

[g adfg]

es involutivo porque es constante.

Linealizacion Exacta del Modelo Lineal de Segundo Orden

Como en el caso anterior, para aplicar las condiciones de linealizacionestablecidas en el teorema 8.2, debemos calcular:

adfg = [f ,g] = ∇g f −∇f g

Es facil demostrar que:

det[g adfg] = −(nKactK

MR

)2

lo que significa que tal conjunto esta conformado por campos vectorialeslinealmente independientes.

Por otra parte, el conjunto [g adfg] 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 latransformacion no lineal z = φ(x) del estado x, como sigue:

z =

z1z2z3

= φ(x) =

h(x)Lfh(x)L2

fh(x)

=

x1

x2

−NM sinx1 − B

M x2 + nKM x3

(8.46)

Page 440: [-] Control Avanzado - Arturo Rojas Moreno

426 Control No Lineal

Notar en la ultima ecuacion que el nuevo estado z posee significado fısico,puesto que z1 es la posicion del eje del servomotor, z2 es su velocidad angulary z3 su aceleracion. El estado original x expresado en funcion del nuevoestado z esta dado por:

x =

x1

x2

x3

= φ−1(z) =

z1

z2NnK senz1 + B

nK z2 + MnK z3

De acuerdo a la subseccion 8.3, las nuevas coordenadas resultan:

z1 = z2

z2 = z3

z3 = L3fh(φ

−1(z)) + LgL2fh(φ

−1(z))u (8.47)(8.48)

donde:L3

fh(x) = ∇(L3fh(x)) f(x)

= −N

Mcosx1x2− B

M

(−N

Msenx1 − B

Mx2 +

nK

Mx3

)+nK

M

(−nELx2 − R

Lx3

)

LgL2fh(x) =

nKactK

MLLuego, la forma normal del proceso resulta:

z1 = z2

z2 = z3

z3 = −N

Mcosz1z2 − NR

MLsenz1 −

(n2KE

ML+BR

ML

)z2 −

(B

M+R

L

)z3

+nKactK

MLu

y = z1 (8.49)

Forma Normal del Modelo No Lineal de Segundo Orden

El modelo no lineal de segundo orden del proceso, sin considerar el termi-no no lineal TN es (ver ecuacion 8.39):

x =[

x2

−BR+n2KEMR x2 − N

M senx1 + nKactKMR u

]= f(x) + g(x)u

y = h(x) = x1(8.50)

que de hecho ya se encuentra en su forma normal.

Page 441: [-] Control Avanzado - Arturo Rojas Moreno

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 linealizacion exacta del proceso esta dada en laecuacion (8.49). Reemplazamos en dicha ecuacion la siguiente ley de control:

u =1

LgL2fh(φ

−1(z))[v − L2

fh(φ−1(z))]

=(

ML

nKKact

)v +

N

Mcosz1z2 +

NR

MLsenz1

+(n2KE

ML+BR

ML

)z2 +

(B

M+R

L

)z3

(8.51)

donde v es una entrada equivalente, obtenemos:

z1 = z2

z2 = z3

z3 = v

y = z1 (8.52)

o lo que es equivalente:

z = Az +Bv; y = Cz

donde:

A =

0 1 0

0 0 10 0 0

; B =

0

01

;C =

[1 0 0

]La funcion de transferencia del proceso lineal equivalente se obtiene de:

y(s)v(s)

= C(sI −A)−1B =1s3

O lo que es lo mismo:d3y(t)dt

= v (8.53)

El proceso de linealizacion desarrollado se ilustra en la figura 8.2.Ahora se debe disenar v de modo tal que y = z1 siga una trayectoria

deseada r(t). El siguiente control logra tal objetivo:

v =d3r

dt3−K1

d2(r − y)dt2

−K2d(r − y)

dt−K3(r − y) (8.54)

Page 442: [-] Control Avanzado - Arturo Rojas Moreno

428 Control No Lineal

Realimentacionv Procesono

linealno linealu = u(z,v)

)x(φ=zz x

y

s3

1v y

Proceso linealequivalente

Figura 8.2: Linealizacion del proceso no lineal y su proceso lineal equivalente.

Reemplazando (8.54) en (8.53) obtenemos la ecuacion del sistema de lazocerrado:

d3(r − y)dt3

−K1d2(r − y)

dt2−K2

d(r − y)dt

−K3(r − y) = 0

donde los parametros K1, K2 y K3 determinan la dinamica del error r−y. Sise desea que y → r cuando t→ ∞, entonces los eigenvalores de la ecuacionanterior deben poseer parte real negativa. Por ejemplo, si deseamos que loseigenvalores sean s1 = s2 = s3 = −4, entonces la ecuacion del sistema delazo cerrado resulta s3 + 12s2 + 48s + 64, de donde se obtiene: K1 = 12,K2 = 48 y K3 = 64. La expresion de v en funcion de la trayectoria dereferencia resulta:

v =d3r

dt3+K1

d2r

dt2+K2

dr

dt+K3r −Kz (8.55)

donde:

K =[K3 K2 K1

]; z =

yyy

Finalmente, la senal de control u puede ser obtenida reemplazando (8.55)en (8.51), lo que resulta en:

u =(

ML

nKKact

)d3r

dt3+K1

d2r

dt2+K2

dr

dt+K3r −Kz +

N

Mcosz1z2

Page 443: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 429

+NR

MLsenz1 +

(n2KE

ML+BR

ML

)z2 +

(B

M+R

L

)z3

(8.56)

Ley de Control No Lineal para el Modelo de Segundo Orden

La siguiente ley de control:

u =MR

nKactK

[v +

BR+ n2KE

MRx2 +

N

Msenx1

](8.57)

linealiza completamente el modelo del proceso dado en (8.50), donde v esuna nueva entrada por disenarse. Al aplicar la senal de control anterior, elmodelo del proceso completamente linealizado queda como:

x1 = x2

x2 = v

y = x1 (8.58)

Tal conjunto de ecuaciones representa un doble integrador. Es decir:

d2y

dt2= v

La senal v debe disenarse de modo tal que y = x1 siga una trayectoria dereferencia r(t). La siguiente senal v:

v =d2r

dt2−K1

d(r − y)dt

−K2(r − y)

logra que el sistema de lazo cerrado tenga la forma:

d2(r − y)dt2

+K1d(r − y)

dt+K2(r − y) = 0

donde K1 y K2 determinan la dinamica del error (r − y). Si se desea quey → r cuando t→ ∞, entonces los eigenvalores de la ecuacion anterior debenposeer parte real negativa. Por ejemplo, si deseamos que los eigenvaloressean s1 = s2 = −4, entonces la ecuacion del sistema de lazo cerrado resultas2+8s+16, de donde se obtiene: K1 = 8 y K2 = 16 y K3 = 64. La expresionde v en funcion de la trayectoria de referencia resulta entonces:

v =d2r

dt2+K1

dr

dt+K2r −Kx (8.59)

Page 444: [-] Control Avanzado - Arturo Rojas Moreno

430 Control No Lineal

donde:

K =[K2 K1

]; z =

[yy

]Finalmente, la senal de control u puede obtenerse reemplazando (8.59) en(8.57), lo que resulta en:

u =MR

nKactK

[d2r

dt2+K1

dr

dt+K2r −Kx

+BR+ n2KE

MRx2 +

N

Msenx1

](8.60)

8.7.7. Diseno del Observador No Lineal de Estados

Observador No Lineal para el Modelo de Tercer Orden

Dado el modelo no lineal del proceso de tercer orden:

x = f(x) + g(x)u; y = h(x)

su correspondiente matriz de observabilidad puede obtenerse aplicando laecuacion (8.25) como sigue:

O(x) =∂

∂x

h(x)Lxh(x)L2

xh(x)

=

∂x

x1

x2

−NM senx1 − B

M x2 + nKM x3

=

1 0 0

0 1 0−N

M cosx1 − BM

nKM

(8.61)

Claramente vemos que:

det[O(x)] =nK

M= 0

lo que significa que O(x) posee inversa. Esta inversa es:

O−1(x) =

1 0 0

0 1 0− N

nK cosx1 − BnK

MnK

Por consiguiente, la ecuacion del observador es:

dxdt

= f(x) + g(x)u+O−1L[y(t) − h(x)]

y = h(x) (8.62)

Page 445: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 431

Observador No Lineal para el Modelo de Segundo Orden

Como en el caso anterior, consideremos el modelo no lineal del procesode segundo orden, que posee la forma:

x = f(x) + g(x)u; y = h(x)

La correspondiente matriz de observabilidad puede obtenerse aplicando laecuacion (8.25) como sigue:

O(x) =∂

∂x

[h(x)Lxh(x)

]=

∂x

[x1

x2

]

=[

1 00 1 − B

MnKM

](8.63)

La dinamica del observador queda descrita entonces por:

dxdt

= f(x) + g(x)u+O−1L[y(t) − h(x)]

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 tambien estimar x2,sabiendo que es la derivada de x1.

8.7.8. Simulacion del Sistema de Control No Lineal

Simulacion Empleando el Modelo No Lineal de Tercer Orden

La figura 8.3 muestra el diagrama de bloques del sistema de control nolineal a simular. Se desea que los polos del sistema realimentado linealizadosean:

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 +K1s2 +K2s+K3

de donde resulta:

K1 = 40 + 20√

2; K2 = 300 + 800√

2; K3 = 12000

Page 446: [-] Control Avanzado - Arturo Rojas Moreno

432 Control No Lineal

Realimentacion uno lineal

u = u(z ,v)

Procesono

lineal

vRealimentacionlineal

)zv = v(r,

z = φ(x)

yr

Sistema lineal equivalente

xz z

Figura 8.3: Sistema de control no lineal.

La figura 8.4 (archivo disnl1.m) muestra el diagrama SIMULINK para lasimulacion del sistema. En el ambiente de trabajo de MATLAB, cada sub-sistema de la figura 8.4 puede ser visualizado a voluntad. En el subsistemaProceso no lineal se ha colocado la condicion inicial x1(0) = 1 rad. Losresultados de la simulacion se muestran en la figura 8.5, donde podemosobservar que la senal controlada sigue exactamente a la trayectoria de refe-rencia (una senal sinusoidal), en tanto que la magnitud de la senal de controlu no sobrepasa el lımite previamente establecido de u < |1,4| volt. Para ini-ciar la simulacion empleando la figura 8.4, previamente se requiere ejecutarel programa de datos disnl1p.m.

% disnl1p.m PARAMETROS PARA LA SIMULACION DEL SISTEMA DE% CONTROL NO LINEAL DE TERCER ORDENclear 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 LINEALIZADOK1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000;

% GRAFICOSload disnl1_x1; load disnl1_r; load disnl1_u;

Page 447: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 433

Señal decontrol u

Conversiónde x a z

Señal v

Mux

Muxgráfico

Proceso no lineal

disnl1_r

referencia r

disnl1_u

u

disnl1_x

x

Referenciar

Figura 8.4: Simulacion del sistema de control no lineal de orden 3.

lg = size(disnl1_x1,1); % LONGITUD DE LAS MUESTRASejex = linspace(0,20,lg);subplot(2,1,1)plot(ejex,disnl1_r,’-’,ejex,disnl1_x1); gridylabel(’Posicion (radianes)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,disnl1_u); gridylabel(’Se~nal de control (voltios)’)xlabel(’Tiempo en segundos’)print -f -deps disnl1r % CREA ARCHIVO disnl1r.eps

Simulacion Usando el Proceso de Tercer Orden con Observador

La figura 8.6 muestra el diagrama de bloques del sistema de control nolineal a simular. Notar que se ha incluido el observador no lineal. Se deseaque 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 +K1s2 +K2s+K3

Page 448: [-] Control Avanzado - Arturo Rojas Moreno

434 Control No Lineal

0 2 4 6 8 10 12 14 16 18 20−1

−0.5

0

0.5

1

1.5

Pos

ició

n (

radi

anes

)

Tiempo en segundos

0 2 4 6 8 10 12 14 16 18 20−1.5

−1

−0.5

0

0.5

1

1.5

Señ

al d

e co

ntro

l (

volti

os)

Tiempo en segundos

Figura 8.5: Resultado de la simulacion del sistema de control no lineal em-pleando un modelo no lineal de tercer orden.

Realimentacion uno lineal

u = u(z ,v)

Procesono

lineal

vRealimentacion yr

Sistema lineal equivalente

Observadorno lineal

z = φ(x)xz z ^^

v = v(r,z )^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 figura 8.7 (archivo disnl2.m) muestra el diagrama SIMULINK para lasimulacion. En el ambiente de trabajo de MATLAB, cada susbsistema de lafigura 8.7 puede ser visualizado a voluntad. Los resultados de la simulacion

Page 449: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 435

se muestran en la figura 8.8, donde podemos observar que la senal contro-lada sigue exactamente a la trayectoria de referencia (una senal sinusoidal).Para iniciar la simulacion empleando la figura 8.7, previamente se requiereejecutar el programa de datos disnl2p.m, pues en este programa se encuen-tran los valores de los parametros del sistema, ası como tambien el calculode la matriz de ganancia L.

Señal u

Señal v

Referenciar

Proceso no lineal

Mux

Muxgráfico

Conversiónde x a z

Observadorno lineal

disnl2_u

u

disnl2_x1

x1

disnl2_r

r

Figura 8.7: Simulacion del sistema de control no lineal de tercer orden conobservador.

% disnl2p.m PARAMETROS PARA SIMULAR EL SISTEMA DE CONTROL% NO LINEAL DE TERCER ORDEN CON OBSERVADORclear 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

Page 450: [-] Control Avanzado - Arturo Rojas Moreno

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 L3p = poly(Ac);a1=p(2); a2=p(3); a3=p(4);J = [-15+10j 0 0

0 -19 00 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 LINEALLL = inv(W*N’)*[aa3-a3;aa2-a2;aa1-a1];L1=LL(1); L2=LL(2); L3=LL(3);

% GANANCIA DEL SISTEMA LINEALIZADOK1=40+20*sqrt(2); K2=300+800*sqrt(2); K3=12000;

% GRAFICOSload disnl2_x1; load disnl2_r; load disnl2_u;lg = size(disnl2_x1,1); % LONGITUD DE LAS MUESTRASejex = linspace(0,20,lg);subplot(2,1,1)plot(ejex,disnl2_r,’-’,ejex,disnl2_x1)ylabel(’Posicion (radianes)’)xlabel(’Tiempo en segundos’)gridsubplot(2,1,2)plot(ejex,disnl2_u)ylabel(’Se~nal de control (voltios)’)xlabel(’Tiempo en segundos’)gridprint -f -deps disnl2r % CREA ARCHIVO disnl2r.eps

Simulacion Empleando el Proceso de Segundo Orden

La figura 8.3 muestra diagrama de bloques del sistema de control nolineal a simular. Se desea que los polos del sistema realimentado linealizadosean s1 = −4 y s2 = −4. Por consiguiente, el polinomio caracterıstico tomala forma:

(s− s1)(s− s2) = s2 +K1s+K2

Page 451: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 437

0 2 4 6 8 10 12 14 16 18 20−1

−0.5

0

0.5

1

Pos

ició

n (

radi

anes

)

Tiempo en segundos

0 2 4 6 8 10 12 14 16 18 20−1

0

1

2

3

Señ

al d

e co

ntro

l (

volti

os)

Tiempo en segundos

Figura 8.8: Resultado de la simulacion del sistema de control no lineal detercer orden.

de donde resulta: K1 = 8 y K2 = 16.Esta vez vamos a simular el sistema de control no lineal mediante dis-

cretizacion directa del sistema continuo. La razon es que la implementacionen tiempo real del sistema de control se va a realizar digitalmente. El pro-grama disnl3.m realiza la simulacion del sistema y los resultados se puedenver en la figura 8.9. Es importante anotar que en el programa de simulaciondisnl3.m se ha incluido la compensacion de la friccion no lineal de Coulomby la limitacion de la senal de control para evitar saturar el amplificador.

Con el proposito de suavizar los efectos de las derivadas presentes enla senal de control u emplearemos la siguiente formula no recursiva para laderivada:

dr

dt∼= 1

6T[r(k) + 3r(k − 1) − 3r(k − 2) − r(k − 3)]

donde T es el tiempo de muestreo. Tal formula se obtiene calculando elpromedio temporal r:

r =14[e(k) + e(k − 1) + e(k − 2) + e(k − 3)]

Page 452: [-] Control Avanzado - Arturo Rojas Moreno

438 Control No Lineal

para luego aproximar la derivada con relacion a r, como sigue:

dr

dt∼= 1

4[r(k) − r

1,5T+r(k − 1) − r

0,5T+r(k − 2) − r

0,5T+r(k − 3) − r

1,5T]

% disnl3.m DISE~NO DEL SISTEMA DE CONTROL NO LINEAL% EMPLEANDO MODELO DE SEGUNDO ORDEN DEL PROCESOclear 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; % tambien 10, 20, 45;K = 31.071e-3; n = 19.741; L = 4.64e-1; %4.64e-3;B = n^2*bm + bL;Jeff = n^2*Jm +JL;M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2;N = g*Lo*(Mo+m/2);

% POLOS DEL SISTEMA LINEALIZADO REALIMENTADO: -4 y -4pol = conv([1 4],[1 4]); % POLINOMIO CARACTERISTICOK1 = pol(2); K2 = pol(3);

% CONDICIONES Y PARAMETROS INICIALESr(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 CONTROLfor k=4:MMr(k) = sin(0.2*k*T); % TRAYECTORIA DE REFERENCIA

% APROXIMACION DE LAS DERIVADASdr(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 CONTROLu(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 friccion de Coulomb% COMPENSANDO FRICCIONif(x2(k) > 0)

u(k) = u(k) + R*cc/(n*K*Kact);elseif(x2(k) < 0)

Page 453: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 439

u(k) = u(k) - R*cc/(n*K*Kact);end

% EVITANDO SATURACION DEL ACTUADORif(u(k) > 1.4)

u(k) = 1.4;elseif(u(k) < -1.4)

u(k) = -1.4;end

% PROCESO NO LINEAL DE SEGUNDO ORDEN DISCRETIZADOx1(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% GRAFICOSejex = linspace(0,MM*T,MM-3);subplot(2,1,1)plot(ejex,r(4:MM),ejex,x1(4:MM)); gridylabel(’Posicion (radianes)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,u(4:MM)); gridylabel(’Se~nal de control (voltios)’)xlabel(’Tiempo en segundos’)print -f -deps disnl3 % crea disnl3.eps

8.7.9. Implementacion del Hardware

El hardware empleado en la implementacion en tiempo real del sistemade control no lineal es similar al empleado para la implementacion en tiemporeal de los sistemas de control adaptivo, predictivo y robusto. Dicho hard-ware se describe en detalle en la subseccion 5.6.8.

8.7.10. Implementacion del Software

El software de control empleado en la implementacion en tiempo real delsistema de control no lineal posee la misma estructura que el software decontrol empleado para la implementacion en tiempo real de los sistemas decontrol predictivo y robusto. La estructura de dicho software se describe endetalle en la subseccion 6.7.7. El diagrama de flujo del software de controlse muestra en la figura 6.13.

Page 454: [-] Control Avanzado - Arturo Rojas Moreno

440 Control No Lineal

0 5 10 15 20 25 30 35 40 45 50−2

−1

0

1

2

Pos

ició

n (r

adia

nes)

Tiempo en segundos

0 5 10 15 20 25 30 35 40 45 50−0.4

−0.2

0

0.2

0.4

Señ

al d

e co

ntro

l (vo

ltios

)

Tiempo en segundos

Figura 8.9: Resultado de la simulacion del sistema de control no lineal em-pleando un modelo no lineal de segundo orden.

El software usado para la implementacion del algoritmo de control deposicion emplea el lenguaje C y se ejecuta en una PC Pentium. Los progra-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 elalgoritmo de control.

La realizacion de archivos ejecutables a partir de los programas fuente, seelabora en el ambiente de trabajo del Borland C/C++ mediante la creacionde un proyecto denominado DISNL.PRJ, en donde intervienen los archivosmencionados en el parrafo anterior. A continuacion se presenta el lista-do del programa DISNL.CPP. El listado de los programas R1LLIB.H yR1LLIB.CPP fueron presentados en la subseccion 6.7.7.

/* DISNL.CPP Programa del sistema de control no lineal de posicion.Ver especificaciones de dise~no en la subseccion resultadosexperimentales. */

#include "r1llib.h"#include <stdio.h>#include <math.h>#include <assert.h>#include <alloc.h>#include <conio.h>

Page 455: [-] Control Avanzado - Arturo Rojas Moreno

8.7 Control No Lineal de un Servosistema 441

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 ykpif(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;

Page 456: [-] Control Avanzado - Arturo Rojas Moreno

442 Control No Lineal

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.;

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();

Page 457: [-] Control Avanzado - Arturo Rojas Moreno

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 figura 8.10 muestra el resultado experimental obtenido con el sistemade control de posicion no lineal. La trayectoria de referencia posee la forma:

r(t) = −3e−2t + 2sen(2t) + 2

Page 458: [-] Control Avanzado - Arturo Rojas Moreno

444 Control No Lineal

Los polos del sistema lineal equivalente se ubicaron en p1 = −10√

2 − 10i yp2 = −10

√2 + 10i. La ecuacion caracterıstica correspondiente a tales polos

es:s2 + 28,2843s+ 300 = 0

de donde obtenemos: K1 = 28,2843 y K2 = 300. Podemos observar en lafigura 8.10 que la respuesta presenta sobreimpulso nulo, tiempo de estabi-lizacion menor que 0.4 s y error en estado estable nulo.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−100

0

100

200

300

Pos

ició

n (

grad

os)

Tiempo en segundos

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−1

−0.5

0

0.5

1

1.5

Señ

al d

e co

ntro

l (vo

ltios

)

Tiempo en segundos

Figura 8.10: Resultado experimental del sistema de control de posicion nolineal para el servomotor D.C. accionando una carga no lineal.

8.8. Problemas Resueltos

En la seccion problemas resueltos de los capıtulos 4 al 8, la solucion a losproblemas se encuentra, segun el caso, en uno o mas archivos con extensionm escritos en codigo MATLAB.

Problema 8.1

El proceso pendulo no lineal mostrado en la figura 2.3, cuyo modelo se des-cribe en el ejemplo 2.2, puede rotar libremente alrededor del pivote gracias a

Page 459: [-] Control Avanzado - Arturo Rojas Moreno

8.8 Problemas Resueltos 445

la accion de un torque externo U . En dicha figura Bp=1.3366 N-m/rad/s esla friccion viscosa rotacional en el punto pivote, Lo=1.6350 m es la longitudde la varilla de peso despreciable, Mo=0.5 kg es la masa de la esfera y g=9.81m/s2 es la aceleracion de la gravedad. La salida de interes es la posicion an-gular θ del pendulo. Para la situacion mostrada en la figura 2.3(a), disenarun sistema de control no lineal empleando el metodo de linealizacion porrealimentacion. Los eigenvalores del sistema lineal equivalente realimentadodeben estar ubicados en 8 ± 8i.

Solucion: El proceso en estudio es univariable; es decir, una sola entradaU actuando sobre el proceso y una sola salida: la posicion angular. En lafigura 2.3(a) el torque resultante alrededor del pivote es:

U = MoL2oΘ +BpΘ +MogLosenΘ (8.65)

que es una ecuacion no lineal debido al termino senΘ. Seleccionando comovariables de estado X1 = Θ, X2 = Θ y como salida Y = X1, se obtiene:

X1 = X2

X2 = − g

LosenX1 − Bp

MoL2o

X2 +1

MoL2o

U

Y = X1 = h

cuya representacion compacta resulta: X = f, donde:

X =[X1

X2

]; f =

[f1

f2

]=

[X2

− gLosenX1 − Bp

MoL2ox2 + 1

MoL2oU

]

La ecuacion anterior posee una forma normal. Por consiguiente, empleandola siguiente ley de control:

U = BX2 +MLgsenX1 +ML2V

obtenemos X2 = V . Definiendo e = r −X1, donde r es una trayectoria dereferencia y seleccionando la senal V como:

V = r +K1e+K2e = X2

entonces la ecuacion del sistema lineal equivalente realimentado resulta:

e+K1e+K2e = 0; (s2 +K1s+K2)e(s) = 0

Page 460: [-] Control Avanzado - Arturo Rojas Moreno

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; K1 = 16; K2 = 128

La senal V viene a ser:

V = r +K1r +K2r −K1X1 −K2X2; Y = X1 = Θ

La ley de control toma la forma siguiente:

u = BX2 +MLgsenX1 +ML2(r +K1r +K2r) −ML2(K2X1 +K2X2)

El programa p8 1.m simula el sistema de control no lineal y los resultadosse muestran en la figura 8.11.

% p8_1.m SOLUCION DEL PROBLEMA 8.1 (PENDULO NO LINEAL)clear all

% PARAMETROS DEL PROCESOBp=1.3366; Lo=1.6350; Mo=0.5; g=9.81;

% POLOS DEL SISTEMA REALIMENTADO LINEALIZADO: -5 y -5pol = conv([1 8+8i],[1 8-8i]); % POLINOMIO CARACTERISTICOK1 = 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 CONTROLfor k=4:MMr(k) = 2*sin(0.8*k*T); % trayectoria de referencia

% APROXIMACION DE LAS DERIVADASdr(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 DICRETIZADOX1(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

% GRAFICOSejex = linspace(0,MM*T,MM-3);

Page 461: [-] Control Avanzado - Arturo Rojas Moreno

8.8 Problemas Resueltos 447

subplot(2,1,1)plot(ejex,r(4:MM),ejex,X1(4:MM)); gridylabel(’Posicion (radianes)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,U(4:MM)); gridylabel(’Se~nal de control (N)’)xlabel(’Tiempo en segundos’)print -f -deps p8_1 % CREA EL ARCHIVO p8_1.eps

0 1 2 3 4 5 6 7 8 9 10−4

−2

0

2

4

Pos

ició

n (r

adia

nes)

Tiempo en segundos

0 1 2 3 4 5 6 7 8 9 10−600

−400

−200

0

200

400

Señ

al d

e co

ntro

l (N

)

Tiempo en segundos

Figura 8.11: Trayectoria de posicion del pendulo (problema de seguimiento)y senal de control correspondiente al problema 8.1

Problema 8.2

La figura 2.2 muestra dos tanques identicos colocados en cascada. La seccionhorizontal A=9 m2 de cada tanque es constante. El objetivo de control escontrolar la altura H2 empleando el flujo Qo como senal de control. Disenarel sistema de control no lineal empleando el metodo de linealizacion porrealimentacion. El flujo de control no debe sobrepasar los 5 m3/s y el tiempode estabilizacion de la salida debe ser menor que 20 s con error en estadoestable practicamente nulo. Seleccionar apropiados tiempo de muestreo yeigenvalores del sistema realimentado.

Page 462: [-] Control Avanzado - Arturo Rojas Moreno

448 Control No Lineal

Solucion: En el ejemplo 2.1 se derivo el modelo no lineal del proceso conγ=0.4 (una constante que depende de la geometrıa del orificio), ρ=1.23(la densidad del lıquido) y g=9.81 m/s2 (la aceleracion de la gravedad),resultando:

H = f + gU ; Y = h(H) = H2; U = Qo

donde: f = [f1 f2]T , g = [g1 g2]T , siendo:

f1 = −γ√ρg

A

√H1; f2 =

γ√ρg

A[√H1 −

√H2]; g1 =

1A

; g2 = 0

Operando con c = γ√ρg/A obtenemos:

h(H) = H2; Lfh(H) = ∇(H)f = f2

LgLfh(H) = ∇(f2) g =c

2A√H1

= 0

Luego, el sistema es completamente linealizable dado que su grado relativoes dos. Seguimos operando:

L2fh(H) = ∇(Lfh(H)) f = ∇f2 f =

c2

2

(√H1√H2

− 2)

LgL2fh(H) = ∇(L2

fh(H)) g =c2

14A√H1H2

El nuevo conjunto de variables de estado resulta:

z1 = φ1(H) = h(H) = H2; z2 = φ2(H) = Lfh(H) = c√H1 − c

√H2

Los estados originales en funcion de los nuevos estados vienen a ser:

H2 = φ−11 (z) = z1; H1 = φ−1

2 (z) = (z2c

+√z1)2

y la ecuacion de estado del nuevo sistema resulta:

z1 = z2

z2 = L2fh(φ

−1(z)) + LgL2fh(φ

−1(z)) = b(φ−1(z)) + a(φ−1(z))U

donde:

b(φ−1(z)) =c2

2

(cz2√z1

− 1)

; a(φ−1(z)) =c2

4A√z1(z2/c+

√z1)

Page 463: [-] Control Avanzado - Arturo Rojas Moreno

8.8 Problemas Resueltos 449

Definiendo una senal equivalente V con Y = H2:

V = Y = r +K1e+K2e; e = r − Y

se da lugar a la siguiente ecuacion caracterıstica del sistema linealizado re-alimentado:

e+K1e+K2e = 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 senal V , con Y = H2 = z1 e Y = z1 = z2, toma la forma final:

V = r +K1r +K2r −K2z1 −K1z2

y la ley de control resulta: U = 1a(V − b). El programa p8 2p9.m simula el

sistema de control no lineal. Los resultados se muestran en la figura 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 LINEALA=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+8ipol = conv([1 0.6],[1 0.65]); % POLINOMIO CARACTERISTICOK1 = pol(2); K2 = pol(3);% K1=K2=0.6; T=0.01-0.07 Ts=20

% CONDICIONES Y PARAMETROS INICIALESr(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 CONTROLfor k=4:MMr(k) = 3; % TRAYECTORIA DE REFERENCIA

% APROXIMACION DE LAS DERIVADASdr(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 ESTADOSz1(k)=H2(k);z2(k)=c*(sqrt(H1(k))-sqrt(H2(k)) );

% LEY DE CONTROLV(k) = ddr(k) + K1*dr(k) + K2*r(k) - K2*z1(k) - K1*z2(k);

Page 464: [-] Control Avanzado - Arturo Rojas Moreno

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 DISCRETIZADOH1(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

% GRAFICOSejex = linspace(0,MM*T,MM-3);subplot(2,1,1)plot(ejex,r(4:MM),ejex,H2(4:MM)), gridylabel(’Nivel (m)’)xlabel(’Tiempo en segundos’)subplot(2,1,2)plot(ejex,U(4:MM)), gridylabel(’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 linealizacion exacta de los procesos penduloinvertido no lineal y grua-puente descritos en las secciones 3.1 y 3.2 respec-tivamente. Se sabe que la salida es la posicion x3.

Solucion: La ecuacion de estado que describe al pendulo no lineal es:

x1

x2

x3

x4

=

x2M2(sin x1)(cos x1)x2

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

x4M2

2 g(sin x1)(cos x1)−J1M2(sin x1)x22+J1Bxx4−J1KxKA u

M22 (cos2 x1)−(M1+J2)J1

De la ecuacion anterior de orden n=4 es facil deducir las expresiones de lasfunciones vectoriales f(x) y g(x). Un proceso es exactamente linealizable

Page 465: [-] Control Avanzado - Arturo Rojas Moreno

8.9 Problemas Propuestos 451

0 5 10 15 20 25 30 35 40 45 502

2.5

3

3.5

Niv

el (

m)

Tiempo en segundos

0 5 10 15 20 25 30 35 40 45 50−5

0

5

Flu

jo d

e co

ntro

l (m

^3/s

)

Tiempo en segundos

Figura 8.12: Nivel de salida y flujo de control para el problema 8.2.

si su grado relativo es igual al orden del proceso. Empleando el criterio degrado relativo en el proceso pendulo obtenemos:

h(x) = x4

Lfh(x) = ∇h(x) f = f4(x)

LgLfh(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 pendulo invertido no es exactamentelinealizable. Lo mismo podemos aseverar para el proceso grua-puente.

8.9. Problemas Propuestos

Problema 8.4

La figura 3.30 muestra el proceso servomotor con carga no lineal descrito enla seccion 3.3, en donde el eje de salida del mecanismo de reduccion esta su-jeto a la carga no lineal mediante una junta flexible que puede ser modeladacomo un resorte rotacional de constante Kω=0.5 N/m/s. Disenar un sistema

Page 466: [-] Control Avanzado - Arturo Rojas Moreno

452 Control No Lineal

de control no lineal que emplee el metodo de linealizacion por realimentacionpara controlar la posicion angular de la carga no lineal. Las especificacionesde diseno son: error en estado estacionario nulo y tiempo de establecimientomenor que 1 s para una senal de referencia arbitraria. Seleccionar el tiempode muestreo y los eigenvalores apropiados del sistema lineal equivalente re-alimentado. Considere dos casos: (a) cuando la inductancia de armadura esdespreciable, y (b) cuando no lo es

Problema 8.5

Demostrar las propiedades de bilinealidad, anticonmutatividad y de Jacobiestablecidas en el lema 8.1 y luego demostrar el teorema 8.2.

Problema 8.6

La figura 3.31 muestra el proceso servomotor con carga no lineal descritoen la seccion 3.3, en donde la carga no lineal posee ahora dos grados delibertad con Lo = 2L1/3 y Mo=0.02 kg. La union de la carga con el ejedel servomotor no es flexible. Las ecuaciones que describen la dinamica delsistema son materia del problema 3.12. Determinar si el proceso descrito escompletamente linealizable. Si lo es, disenar un sistema de control no linealcon linealizacion de la realimentacion para controlar simultaneamente lasposiciones θ y τ con mınimo tiempo de estabilizacion y mınimo sobreimpulso.Considerar dos casos: (a) cuando la inductancia de armadura es despreciable,y (b) cuando no lo es.

Page 467: [-] Control Avanzado - Arturo Rojas Moreno

Bibliografıa

[1] Omar A. Tupayachi-Calderon, Control No Lineal de Servosistemas.Aplicacion: Manipulador de Robot de un Grado de Libertad. Tesis paraoptar el Tıtulo de Ingeniero Electronico, Facultad de Ingenierıa Electri-ca y Electronica de la Universidad Nacional de Ingenierıa, Peru, 1995-I,Capıtulo III.

[2] Alexander L. Ponce-Dioses , Control de Servo Sistemas No LinealesUsando Redes Neuronales. Tesis para optar el Tıtulo de Ingeniero Elec-tronico, Facultad de Ingenierıa Electrica y Electronica de la UniversidadNacional de Ingenierıa, Peru, 1996-II, Capıtulo VI.

[3] Katsuhiko Ogata, Sistemas de Control en Tiempo Discreto. PrenticeHall Hispanoamericana S.A., Mexico, segunda edicion, 1996

[4] Charles L. Phillips y H. Troy Nagle, Digital Control System Analy-sis and Design. Prentice Hall, Englewood Cliffs, New Jersey, segundaedicion, 1990

[5] N. Rao Sripada y D. Grant Fisher, “Improved Least Squares Identifi-cation”. Int. J. Control, vol. 46, no. 6, pp. 1889–1913, Dic. 1987.

[6] M. G. Sofonov, Stability and Robustness of Multivariable Feedback Sys-tems. MA, London, UK: The MIT Press Cambridge, 1980.

[7] R. De Keyser, “A Gentle Introduction to Model Based Predictive Con-trol”. In PADI2 International Conference on Control Engineering andSignal Processing, Piura, Peru, 1998.

[8] Eduardo F. Camacho y Carlos Bordons, Model Predictive Control.Springer-Verlag London Limited 1999.

Page 468: [-] Control Avanzado - Arturo Rojas Moreno

454 BIBLIOGRAFIA

[9] Manfred Morari y Evanghelos Zafiriou, Robust Process Control. PTRPrentice Hall, Englewood Cliffs, New Jersey 07632, 1989.

[10] R. Canales Ruiz y R. Barrera Rivera, Analisis de Sistemas Dinamicosy Control Automatico. Editorial Limusa, Mexico, 1977.

[11] A. Rojas-Moreno, Design of Self-tuning Controllers for Processes Hav-ing Multiple Unknown Time-varying Delays, Ph.D. Thesis, Utah StateUniversity, Logan, UT, 1995.

[12] Rolf Isermann, Digital Control Systems, Volume 1, Springer-Verlag, se-gunda edicion, Germany, 1989

[13] Jean-Jacques E. Slotine y Weiping Li, Applied Nonlinear Control, Pren-tice Hall, Englewood Cliffs, New Jersey 07632, 1991.

[14] Alan V. Oppenheim y Alan S. Willsky, Senales y Sistemas Prentice-Hall Hispanoamericana, S.A., Mexico-Englewood Cliffs-Londres-Sidneyy otras, 1983.

[15] Gene H. Hostetter, Digital Control System Design, Holt, Rinehart andWinston, Inc., New York, Chicago, San Francisco, Philadelphia, Mon-treal, Toronto, London, Sydney, Tokyo, 1988.

[16] William H. Press, Brian P. Flannery y Saul A. Teukolosky, NumericalRecipes in C, Cambridge University Press, Cambridge, 1988.

[17] Bernard Friedland, Control System Design. An Introduction to State-Space Methods, McGraw-Hill, Inc., New York St. Louis y otras, 1986.

[18] Murray R. Spiegel, Analisis Vectorial, serie de compendios Schaum,McGraw-Hill Mexico Panama Bogota y otras, 1973 (o ediciones masrecientes).

[19] Murray R. Spiegel, Calculo Superior, serie de compendios Schaum,McGraw-Hill Mexico Panama Bogota y otras, 1973 (o ediciones masrecientes).

[20] Donald M. Wiberg, Espacio de Estado y Sistemas Lineales, serie decompendios Schaum, McGraw-Hill Mexico Panama Bogota y otras,1973 (o ediciones mas recientes).

Page 469: [-] Control Avanzado - Arturo Rojas Moreno

BIBLIOGRAFIA 455

[21] Frank Ayres Jr., Matrices, serie de compendios Schaum, McGraw-HillMexico Panama Bogota y otras, 1973 (o ediciones mas recientes).

[22] Murray R. Spiegel, Transformada de Laplace, serie de compendiosSchaum, McGraw-Hill Mexico Panama Bogota y otras, 1973 (o edi-ciones mas recientes).

[23] MathWorks, Inc., MATLAB Reference Guide, Prentice Hall, EnglewoodCliffs, New Jersey, primera edicion, 1998.

[24] MathWorks, Inc., SIMULINK User’s Guide, Prentice Hall, EnglewoodCliffs, New Jersey, primera edicion, 1996.

[25] Lab-PC+ User Manual, National Instruments Corporation, Part Num-ber 320502B-01, edicion de agosto de 1994.

Page 470: [-] Control Avanzado - Arturo Rojas Moreno

Indice alfabetico

Actuador, 231Amplificador de potencia, 160

Campo vectorial suave, 408Campos vectoriales

integrables, 412involutivos, 413

CMI:control con modelo interno, 351

Codificador optico, 159codificador optico, 235Control optimo

concepto, 126Control optimo cuadratico, 126

de la grua puente, 181del pendulo invertido, 147discreto, 126estacionario, 129no estacionario, 127

Control adaptivo de un servomo-tor no lineal, 224

Control con modelo internoestructura del, 351estructuras alternativas del, 353incertidumbres del modelo en

el, 355modelo del proceso en el, 355representaciones del, 351

Control matricial dinamico, 286

Control no lineal de un servosis-tema de posicion, 424

Control predictivodel servomotor no lineal, 306disturbio del proceso en el, 289ley de control con restriccio-

nes del, 304ley de control del, 303modelo CARIMA del, 290modelo del predictor en el, 292modelo del proceso del, 289modelo paralelo en el, 292modelo serie/paralelo en el, 293prediccion del disturbio en el,

294salida del modelo en el, 290

Control predictivo basado en mo-delos, 285

principios del, 286Control predictivo:respuesta forza-

da del, 300Control predictivo:respuesta libre

del, 299Control robusto

para procesos estables, 358para procesos inestables, 370

Control robusto de un servomotorno lineal, 376

Controlabilidad, 66Controlador optimoH2: qH(z), 372

Page 471: [-] Control Avanzado - Arturo Rojas Moreno

INDICE ALFABETICO 457

Controlador optimo cuadraticoproporcional, 221proporcional integral, 223

Controlador optimo cuadraticoH2:qH(z), 360

para entradas tıpicas, 361Controlador CMI q(z), 362, 373Controlador predictivo, 298

funcion de costo del, 298objetivo del, 298parametros de diseno del, 298

Corchete de Lie, 409Corchetes de Lie

propiedades de los, 410

Definicion de Matrices, 21Definicion de matrices, 21Derivada de Lie, 408Determinante, 5

de una matriz, 5propiedades, 6

Diagonalizacion de matrices, 19Difeomorfismo, 410

local, 410Discretizacion directa, 43

Ecuacion caracterıstica, 34Ecuacion de Riccati, 128, 129Ecuacion de salida, 33, 58Ecuacion de transferencia, 34Ecuacion del observador no lineal,

422Eigenvalor, 19Eigenvector, 19Espacio de estado discreto, 55Estabilidad interna, 351Estabilidad Robusta, 364Estabilidad robusta, 374Estado, 33

ecuacion de, 33, 58espacio de, 33, 55variables de, 33vector de, 33

Estimacion de estados, 221

Filtro de Kalman, 221Filtro discreto CMI, 363, 374Forma bilineal, 21Forma canonica, 60

controlable, 60de Jordan, 62diagonal, 61observable, 61

Forma canonica de Jordan, 20Forma cuadratica, 20Forma normal, 416Frobenius

teorema de, 413Funcion de costo, 126

cuadratica discreta, 127mınima, 129

Funcion de transferencia de pulso,53

Grua-puente, 79modelo, 79

Grado relativo, 415

Hardware del sistema de control,155, 314, 377, 443

Independencia de vectores, 16Interfaz Lab-PC+, 161, 236

Jacobiano, 15

Ley de control optima, 127, 140Ley de control no lineal, 417Linealizacion de procesos, 33

Page 472: [-] Control Avanzado - Arturo Rojas Moreno

458 INDICE ALFABETICO

Linealizacion exacta, 417condiciones para, 420

Linealizacion por realimentacion,407

Mınimos cuadrados recursivoalgoritmo, 211metodo de los, 210metodo mejorado de los, 213mejorado, algoritmo, 213

Matrices, 3de ponderacion, 132diagonalizacion de, 19iguales, 3jacobianas, 34lema de inversion de, 7multiplicacion de, 3que conmutan, 3similares, 19suma de, 3

Matriz, 1antihermitiana, 5antisimetrica, 5cero, 3cuadrada, 4de control, 34de disturbios, 34de estado, 34de observabilidad generaliza-

da, 420de salida, 34de transferencia, 34definida negativa, 21definida positiva, 21derivada de una, 14diagonal, 4eigenvalor de una, 19eigenvector de una, 19forma canonica de Jordan, 20

hermitiana, 5identidad, 5indefinida, 21integral de una, 14inversa de una, 6nilpotente, 5norma de una, 18normal, 5orden de una, 1ortogonal, 5periodica, 5rango de una, 18semidefinida negativa, 21semidefinida positiva, 21simetrica, 5singular, 5transpuesta, 4traza de una, 4triangular inferior, 4triangular superior, 4unitaria, 5

Modelando procesos no lineales, 209Modelo CARIMA, 290Muestreo y reconstruccion, 40

Nomenclatura, 1

Observabilidad, 68Observador optimo cuadratico, 138Observadores no lineales, 420Operacion con vectores, 16Operaciones con matrices, 3

Pendulo invertido, 71control optimo del, 147modelo, 72

Plano de fase, 33Predictor, 292Prefiltro

Page 473: [-] Control Avanzado - Arturo Rojas Moreno

INDICE ALFABETICO 459

diseno del, 359Proceso estable e inestable, 35Proceso multivariable, 33Proceso univariable, 34Procesos con tiempo muerto, 65Puntos de equilibrio, 33

Regulador optimo cuadraticoproporcional, 131proporcional integral, 141

Rendimiento nominal, 359, 372Rendimiento robusto, 365, 375Respuestas libres y forzadas, 299Retencion de orden cero, 43

Sensor(es) de posicion, 158, 235Servomotor DC no lineal, 86

modelo, 86Sistema causal y estrictamente causal,

355Sistema de control adaptivo, 208

con autosintonizacion, 208Software de control, 162, 237, 314,

378, 443Solucion de la ecuacion de estado,

55, 58

Teorema del muestreo, 42Tipo de sistemas, 359Tipos de matrices, 4Transformacion no lineal de esta-

dos, 411Transformada de Laplace, 27

formulas notables, 27inversa, 27propiedades, 27

Transformada Z, 47de secuencias, 49definicion, 47

formulas notables, 50inversa, 51propiedades, 48

Valor absoluto, 8Variables residuales, 34Vector, 2

de informacion, 210de parametros, 210derivada de un, 15integral de un, 15norma de un, 17

Vectores, 16independencia de, 16operacion con, 16ortonormales, 16