Diseño y Control del Péndulo Invertido

download Diseño y Control del Péndulo Invertido

of 142

Transcript of Diseño y Control del Péndulo Invertido

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    1/142

    Proyecto Integrador Profesional

    Diseo y Control del Pndulo Invertido

    Alumno: Alexey Sidenko

    Ingeniera Electrnica

    Legajo N 100233

    [email protected]

    Tutor: Dr. Ing. Ruben H. Milocco

    [email protected]

    Facultad de Ingeniera

    Universidad Nacional del Comahue

    Neuqun 2011

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    2/142

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    3/142

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    4/142

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    5/142

    Diseo y Control del Pndulo Invertido

    I

    Resumen

    El modelo del pndulo invertido es un ejemplo clsico en la literatura de control ya que permite

    exponer de forma clara y didctica una de las aplicaciones ms importantes del control automtico:

    el control de sistemas mecnicos inestables. El mismo tiene mltiples aplicaciones, como la

    estabilizacin de misiles, cargas transportadas en gras, vehculos y robots. El sistema consiste en

    un carro sobre el cual se encuentra un pndulo invertido sujetado mediante un pivote sin friccin. El

    carro es movido por un motor que ejerce una fuerza en sentido horizontal, siendo esta la accin de

    control. El presente trabajo describe el diseo, construccin y ensayo de un pndulo invertido apto

    para ser utilizado en prcticas de laboratorio de la ctedra de Sistemas Controlados por

    Computadora. El mismo permiti experimentar con diversos tipos de control, as como tambin,aplicar diversas tcnicas de identificacin y modelado de sistemas.

    Palabras Clave:

    Pndulo invertido, control, sistemas controlados por computadora, variables de estado, control

    polinomial, filtro de Kalman, control por energa, MATLAB, USB, PIC, encoder

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    6/142

    Diseo y Control del Pndulo Invertido

    II

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    7/142

    Diseo y Control del Pndulo Invertido

    III

    Abstract

    The inverted pendulum model is a classic example in control literature as it allows a clear teaching

    one of the most important applications of automatic control: the control of unstable mechanical

    systems. It has many applications, such as missile, crane, vehicle and robot stabilization. The

    system consists of a cart on which is attached an inverted pendulum by a frictionless pivot. The cart

    is powered by a motor that exerts a force in the horizontal direction, this being the control action.

    This paper describes the design, construction and testing of an inverted pendulum suitable for use in

    the laboratory practices of the department of Computer Controlled Systems. It has aloud to

    experiment with different types of control, and also to apply different identification and system

    modelling techniques.

    Key words:

    Inverted pendulum, control, computer controlled systems, state variables, polynomial control,

    Kalman filter, energy control, MATLAB, USB, PIC, encoder

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    8/142

    Diseo y Control del Pndulo Invertido

    IV

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    9/142

    Diseo y Control del Pndulo Invertido

    V

    Agradecimientos

    Este trabajo esta dedicado a todas las personas que hicieron posible esta

    realidad. A mi familia, que me dio su apoyo durante toda la carrera. A mi

    novia Victoria, por soportarme y estar siempre a mi lado. A mi tutor, Dr.

    Rubn Milocco por su direccin. A la Facultad de Ingeniera y a todos los

    amigos que encontr adentro. Gracias a todos.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    10/142

    Diseo y Control del Pndulo Invertido

    VI

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    11/142

    Diseo y Control del Pndulo Invertido

    VII

    ndice

    CAPTULO 1 - INTRODUCCIN Y OBJETIVOS ................................................................... 1

    1.1. Introduccin..................................................................................................................... 11.2. Objetivos.......................................................................................................................... 11.3. Fundamentacin............................................................................................................... 21.4. Estructura del Trabajo ..................................................................................................... 2

    CAPTULO 2 - DISEO DEL PNDULO INVERTIDO .......................................................... 3

    2.1.DISEO DE LA MECNICA ...................................................................................................... 42.1.1. Pndulo ......................................................................................................................... 42.1.2. Rieles y Carro................................................................................................................ 52.1.3. Gabinete........................................................................................................................ 5

    2.2.DISEO DE LA ELECTRNICA ................................................................................................. 72.2.1. Microcontroladores....................................................................................................... 72.2.2. Encoders ....................................................................................................................... 92.2.3. Arquitectura Maestro-Esclavo..................................................................................... 122.2.4. Protocolo Paralelo ...................................................................................................... 132.2.5. Lmites de Carrera....................................................................................................... 142.2.6. Comunicacin USB...................................................................................................... 142.2.7. Puente H...................................................................................................................... 162.2.8. Fuente de alimentacin................................................................................................ 172.2.9. Placa de Circuito Impreso ........................................................................................... 172.2.10. Software .................................................................................................................... 182.2.11. Rutinas de inicializacin............................................................................................ 19

    2.3.INTERFAZ EN MATLAB...................................................................................................... 212.3.1. Subrutinas ................................................................................................................... 21

    2.3.2. Estructura.................................................................................................................... 212.3.3. Normalizacin de las Variables ................................................................................... 222.3.4. Perodo de muestreo.................................................................................................... 222.3.5. Linealizacin del motor ............................................................................................... 24

    CAPTULO 3 - MODELADO E IDENTIFICACIN .............................................................. 27

    3.1.MODELADO......................................................................................................................... 273.1.1. Modelado del pndulo invertido................................................................................... 283.1.2. Modelado del pndulo no invertido.............................................................................. 293.1.3. Modelado del Motor .................................................................................................... 303.1.4. Modelo Completo ........................................................................................................ 313.1.5. Discretizacin.............................................................................................................. 32

    3.2.IDENTIFICACIN MEDIANTE SIMULACIN ............................................................................ 33

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    12/142

    Diseo y Control del Pndulo Invertido

    VIII

    3.2.1. Identificacin de la Funcin de Transferencia del Motor............................................. 343.2.2. Identificacin de la Funcin de Transferencia del pndulo .......................................... 36

    3.3.IDENTIFICACIN MEDIANTE CLCULO MATRICIAL............................................................... 373.3.1. Identificacin de la Funcin de Transferencia del motor ............................................. 383.3.2. Identificacin de la Funcin de Transferencia del Pndulo.......................................... 393.3.3. Identificacin del Sistema en Variables de Estado ....................................................... 41

    3.4.IDENTIFICACIN MEDIANTE ENSAYO ................................................................................... 45

    3.5.COMPARACIN DE LOS MTODOS DE IDENTIFICACIN .......................................................... 46

    CAPTULO 4 - CONTROL DEL PNDULO INVERTIDO.................................................... 49

    4.1.CONTROL EN VARIABLES DE ESTADO................................................................................... 494.1.1. Vector de Realimentacin............................................................................................ 49

    4.1.2 Observador de Estados................................................................................................. 504.1.3. Controlabilidad y observabilidad del sistema .............................................................. 524.1.4. Valor deseado.............................................................................................................. 534.1.5. Algoritmo de Diseo.................................................................................................... 534.1.6. Implementacin ........................................................................................................... 544.1.7. Resultados................................................................................................................... 56

    4.2.CONTROL EN ENFOQUE POLINOMIAL.................................................................................... 584.2.1. Funcin de Transferencia de la Realimentacin de Estados........................................ 584.2.2. Funcin de Transferencia de la planta................................................................ ......... 584.2.3. Asignacin de Polos .................................................................................................... 59

    4.2.4. Algoritmo de Diseo.................................................................................................... 604.2.5. Implementacin ........................................................................................................... 624.2.6. Resultados................................................................................................................... 64

    4.3.FILTRO DE KALMAN ............................................................................................................ 664.3.1. Ganancia ptima ........................................................................................................ 664.3.2. Caracterizacin del Ruido ........................................................................................... 684.3.3. Algoritmo de Diseo.................................................................................................... 714.3.4. Implementacin ........................................................................................................... 734.3.5. Resultados................................................................................................................... 74

    4.4.CONTROL NO LINEAL .......................................................................................................... 77

    4.4.1. Control Basado en Energa.......................................................................................... 774.4.2. Implementacin ........................................................................................................... 794.4.3. Resultados................................................................................................................... 81

    4.5.CONTROL CON COEFICIENTES VARIANTES............................................................................ 864.5.1. Modelado .................................................................................................................... 864.5.2. Discretizacin de ...................................................................................................... 874.5.3. Implementacin ........................................................................................................... 884.5.4. Resultados................................................................................................................... 89

    4.6.COMPARACIN DE LOS MTODOS DE CONTROL .................................................................... 92

    5. CONCLUSIONES................................................................................................................... 955.1. Propuestas de Mejora y Futuras Lneas de Trabajo................................ ........................ 97

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    13/142

    Diseo y Control del Pndulo Invertido

    IX

    BIBLIOGRAFA ........................................................................................................................ 98

    REFERENCIAS.......................................................................................................................... 99

    ANEXOS ................................................................................................................................... 101

    ANEXOIMANUAL DE USUARIO........................................................................................... 101

    ANEXOIIGUAS DE LABORATORIO ..................................................................................... 102

    ANEXOIIICDIGO FUENTE DE LOS MICROCONTROLADORES ............................................... 109

    ANEXOIVCDIGO FUENTE EN MATLAB........................................................................... 119

    ANEXOVCIRCUITOS ESQUEMTICOS.................................................................................. 123

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    14/142

    Diseo y Control del Pndulo Invertido

    X

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    15/142

    Captulo 1 Introduccin y Objetivos

    1

    Captulo 1 - Introduccin y Objetivos

    1.1. Introduccin

    El pndulo invertido es uno de los problemas ms clsicos del control ya que permite exponer de

    forma clara y didctica una de las aplicaciones ms importantes del control automtico: el control

    de sistemas mecnicos inestables. El mismo consiste de pndulo, libremente articulado, que se

    encuentre montado sobre un carro capaz de desplazarse horizontalmente a voluntad mediante un

    motor elctrico.

    El control de un pndulo invertido posee mltiples aplicaciones, como por ejemplo en la

    construccin de dispositivos de transporte auto-balanceados (Segway [1], Honda U3-X [2]), en la

    estabilizacin de cohetes [3], estabilizacin de robots bpedos [4], en la estabilizacin de oscilaciones

    de cargas transportadas en gras [5], en movilidad sobre sillas de rueda [6], etc.

    1.2. Objetivos

    El objetivo del presente trabajo es el diseo y desarrollo de un equipamiento didctico, del tipo

    pndulo invertido, apto para ser utilizado en prcticas de laboratorio de la ctedra de Sistemas

    Controlados por Computadora, as como tambin, la implementacin y ensayo de diferentes

    tcnicas de control e identificacin de sistemas.

    La idea es que desde la computadora puedan experimentarse distintas estructuras de control tanto de

    la inclinacin angular del pndulo, como de su posicin sobre el eje horizontal, controlando la

    corriente del motor de comando del pndulo. De esta forma se busca que el estudiante pueda

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    16/142

    Captulo 1 Introduccin y Objetivos

    2

    familiarizarse con distintas estrategias de control programando en alto nivel, pudiendo graficar las

    variables importantes para su anlisis y poder hacer procesamiento posterior de la informacin.

    1.3. Fundamentacin

    El inters para desarrollar un equipo didctico de experimentacin surgi de la necesidad, dentro

    del rea de Control Automtico de la Facultad de Ingeniera de la Universidad Nacional del

    Comahue, de disponer de dicho material para realizar las prcticas de laboratorio de las materias del

    rea. El mismo permite experimentar con diversos tipos de controles como PID, realimentacin de

    estados, control polinomial, control lineal cuadrtico (LQR) y Gaussiano (LQG), redes neuronales,

    control no lineal y muchas otras variantes, as como tambin, aplicar diversas tcnicas de

    identificacin y modelado de sistemas. Se espera que este equipamiento sea de gran utilidad para

    los alumnos durante el cursado de la materia Sistemas Controlados por Computadora.

    1.4. Estructura del Trabajo

    El presente trabajo se divide en cinco captulos: en el captulo 2 se presenta la descripcin detallada

    del diseo del sistema. En el captulo 3 se realiza el modelado y la identificacin de los parmetros

    del sistema, que sern luego utilizados en el captulo 4 para el diseo de los distintos controladores.

    Finalmente, en el captulo 5, se presentan las conclusiones del trabajo.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    17/142

    Captulo 2 Diseo del Pndulo Invertido

    3

    Captulo 2 - Diseo del Pndulo Invertido

    El propsito del equipo que se pretende disear es la implementacin y ensayo fsico de diferentes

    modelos matemticos y estructuras de control, as como tambin, la evaluacin de sus desempeos.

    Para esto es necesario poder controlar, desde una computadora, el motor que acta sobre el pndulo

    y, al mismo tiempo, poder leer la informacin de la posicin y el ngulo del mismo. La funcin de

    los circuitos electrnicos del equipo es solamente la de crear un vnculo entre la PC y la parte

    mecnica, a travs de los sensores y un puente H. De esta forma es posible implementar cualquier

    algoritmo de control en la PC para hacer experimentos con el mecanismo.

    En la figura 2.1 puede observarse un diagrama general de las partes que componen el sistema.

    El mismo puede dividirse en tres grandes bloques: la parte mecnica, la parte electrnica y la

    interfaz de MATLAB [7] en la computadora. En el presente captulo se explicar en detalle, el

    funcionamiento de cada uno de dichos bloques y las partes que los componen.

    Figura 2.1: Esquema general del sistema

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    18/142

    Captulo 2 Diseo del Pndulo Invertido

    4

    2.1. Diseo de la Mecnica

    La primera etapa del trabajo consisti en el diseo, fabricacin y ensamblaje de la parte mecnica

    del equipo. El paradigma del pndulo invertido exige la confeccin de un mecanismo tal que el

    pndulo, libremente articulado, se encuentre montado sobre un carro capaz de desplazarse

    horizontalmente a voluntad. Se requiere, adems, la capacidad de medir con gran exactitud, tanto el

    ngulo de desviacin del pndulo, como la posicin del carro.

    Figura 2.2: Diagrama esquemtico del Sistema Mecnico

    2.1.1. Pndulo

    Para que el pndulo pueda rotar libremente es necesario montarlo sobre una articulacin con muy

    bajo rozamiento. Para resolver este inconveniente se decidi utilizar el rodamiento de un disco

    rgido de PC. Este rodamiento resulta ideal debido a su pequeo tamao y rozamiento casi

    despreciable.

    El pndulo en si mismo no es ms que una masa cuyo centro de gravedad se encuentra a cierta

    distancia de su eje de rotacin. La implementacin del mismo consisti simplemente de una

    planchuela de aluminio de 15x3.5 cm y 3 mm de espesor. El corte y mecanizado del mismo se

    realiz sin dificultad con herramientas manuales.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    19/142

    Captulo 2 Diseo del Pndulo Invertido

    5

    El montaje entre el pndulo y el rodamiento se realizo exitosamente mediante tres pequeos

    tornillos.

    2.1.2. Rieles y Carro

    Para efectuar el desplazamiento horizontal del eje del pndulo, el mecanismo del carro de una

    impresora resulta ideal. Se desensambl una impresora EPSON antigua para extraer los rieles, el

    carro y la correa, y se monto todo el conjunto sobre una base de MDF. Se mont el pndulo sobre el

    carro y se reemplaz el motor paso a paso de la impresora por un motor de corriente continua de

    imn permanente. El motor de corriente continua es ms adecuado para los requerimientos del

    paradigma del pndulo invertido.

    2.1.3. Gabinete

    Para proteger los mecanismos y circuitos del sistema, de los factores del ambiente, se decidi

    construir un gabinete especial que los contenga. Se decidi utilizar Fibrofcil en la construccin del

    gabinete debido a la facilidad de mecanizado y ensamblaje. Este material adems, aade peso al

    gabinete, lo que resulta ideal para absorber las fuerzas y vibraciones generadas por el mecanismo.

    Se decidi dividir el gabinete en dos compartimientos:

    un compartimiento frontal para alojar todos los mecanismos del pndulo un compartimiento posterior para alojar todo el cableado y la electrnica

    El compartimiento frontal, de 64x30x15 cm, se diseo con una compuerta superior para acceder a

    los mecanismos del pndulo y un panel frontal de vidrio para poder apreciar su funcionamiento

    desde el exterior. El compartimiento posterior tambin posee una compuerta para acceder a los

    circuitos en caso de necesitar efectuar reparaciones. Las dimensiones totales del gabinete son

    67x33x30 cm.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    20/142

    Captulo 2 Diseo del Pndulo Invertido

    6

    Figura 2.3: Fotografa del Conjunto Mecnico

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    21/142

    Captulo 2 Diseo del Pndulo Invertido

    7

    2.2. Diseo de la Electrnica

    Como se dijo anteriormente, la funcin de los circuitos electrnicos del equipo es solamente la de

    crear un vinculo entre la PC y la parte mecnica, a travs de los sensores, el puente H y el motor.

    En la figura 2.4 puede apreciarse un esquema general de la arquitectura electrnica elegida.

    Figura 2.4: Esquema general de la arquitectura electrnica

    El esquema utiliza dos microcontroladores: el microcontrolador Maestro se encarga de realizar las

    comunicaciones USB [8] con la PC y controlar el motor mediante el puente H, mientras que la tarea

    de administrar los encoders de posicin y de ngulo se delega a un microcontrolador Esclavo por

    razones que se explican en la Seccin 2.2.3.

    2.2.1. Microcontroladores

    Para la implementacin del microcontrolador maestro, se decidi utilizar el microcontrolador

    PIC18F4550 [9] principalmente por su capacidad para la conexin USB. El mismo pertenece a la

    familia de microcontroladores de alta gama PIC18F y posee una serie de caractersticas que lo

    hacen ideal para esta aplicacin:

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    22/142

    Captulo 2 Diseo del Pndulo Invertido

    8

    Conexin al puerto USB Modulo PWM Terminales para la programacin in-circuit (ICSP) 32KB de memoria de programa Flash 2KB de memoria RAM Reloj de hasta 48 MHz (12 MIPS) 35 pines de entradas y salidas, distribuidas en 5 puertos (A, B, C, D y E)

    Figura 2.5: Pinout del microcontrolador utilizado [9]

    Para la implementacin del microcontrolador esclavo, se decidi utilizar el mismo

    microcontrolador, por cuestiones de simplicidad. Esto hizo ms fcil la tarea de programacin ya

    que los programas de maestro y esclavo podan compartir las mismas libreras y configuraciones.

    Adems, si se desea disponer de un stock de repuestos para el equipo solo hace falta comprar un

    microcontrolador y no dos diferentes.

    En la Tabla 5 del ANEXO V se detalla la funcin de cada uno de los puertos y pines utilizados del

    microcontrolador Maestro y Esclavo.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    23/142

    Captulo 2 Diseo del Pndulo Invertido

    9

    2.2.2. Encoders

    Los encoders angulares disponibles en el mercado, adems de costosos y voluminosos, tienen una

    resolucin muy baja, llegando hasta 100 niveles por revolucin como mximo. Por esta razn se

    decidi la fabricacin de un encoder casero hecho a medida.

    La configuracin elegida fue la de encoder ptico incremental en cuadratura, por su simplicidad,

    precisin y bajo rozamiento. El mismo consiste de un disco de material transparente sobre el cual se

    encuentra impreso un patrn de franjas equiespaciadas. Dicho disco, solidario al pndulo,

    interrumpe alternativamente un haz de luz infrarroja, que emite un diodo LED sobre un fotodiodo

    receptor doble. Con un dimetro de 114 mm se pueden disponer 256 franjas sobre el permetro del

    disco (512 flancos) lo que, con los sensores en cuadratura, permite discriminar hasta 1024 niveles

    por revolucin. Los sensores en cuadratura, adems de duplicar la resolucin, permiten discernir el

    sentido de giro del disco.

    Figura 2.6: Discos transparentes con franjas equiespaciadas

    Se utiliz un fotodiodo doble, que incluye los dos fotodiodos en un mismo encapsulado. Con esta

    disposicin los fotodiodos se encuentran muy cerca uno del otro, lo que permite discernir patrones

    de lneas muy finas, del orden de 0,5 mm.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    24/142

    Captulo 2 Diseo del Pndulo Invertido

    10

    Como la fotocorriente de los fotodiodos es muy baja, del orden de los 50uA, es necesario

    amplificarla. Esto se logra mediante el circuito de la figura 2.7, el cual normaliza las seales de los

    fotodiodos a los valores lgicos de 0 y 5 V

    Figura 2.7: Circuito amplificador de los fotodiodos de los encoders

    A medida que el disco gira, se generan dos seales de onda cuadrada a la salida del circuito. Estas

    seales se leen por el microcontrolador como palabras de dos dgitos. Conociendo la palabra

    presente y la anterior, se puede determinar si hubo cambios en la posicin del disco usando la Tabla

    1. Usando esta tabla, el microcontrolador incrementa o decrementa un contador interno, de esta

    forma se puede conocer en todo momento la posicin del disco.

    Figura 2.8: Disposicin esquemtica del

    disco ranurado y los fotodiodos

    Figura 2.9: Seales generadas a la

    salida del circuito amplificador

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    25/142

    Captulo 2 Diseo del Pndulo Invertido

    11

    Anterior Presente Resultado

    00 001 +111 E

    00

    10 -100 -101 011 +1

    01

    10 E00 E01 -111 0

    11

    10 +100 +101 E11 -1

    10

    10 0

    0 No hubo cambios+1 incremento-1 decremento

    E - error

    Tabla 1: Tabla de decisin en base a las seales de los fotodiodos

    Debido a la simplicidad y gran desempeo del encoder angular fabricado para la medicin del

    ngulo, se decidi utilizar la misma tcnica para la medicin de la posicin, instalando un encoder

    angular en el eje del motor. En este caso la precisin angular no es un factor tan importante, como si

    lo es, la gran velocidad de rotacin. Es entonces necesaria una reduccin de la resolucin angular

    para evitar que se supere el ancho de banda del sensor. Al tener una resolucin angular mas baja, se

    hace posible tambin la reduccin del dimetro del disco. Es por esto que se utiliz un disco de 35

    mm de dimetro y 8 franjas, con lo que se obtiene una resolucin de 32 niveles por revolucin, lo

    que equivale aproximadamente a una resolucin de 1 mm en la posicin.

    Se realizaron algunos ensayos preliminares para verificar el correcto funcionamiento de los

    encoders. Se midieron las seales de salida con un osciloscopio, bajo diferentes condiciones de

    funcionamiento. Los resultados fueron completamente satisfactorios, algunos de ellos se muestran

    en las figuras 2.10 y 2.11.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    26/142

    Captulo 2 Diseo del Pndulo Invertido

    12

    Figura 2.10: Pndulo girando a 232RPM Figura 2.11: Motor girando a 5640 RPM

    2.2.3. Arquitectura Maestro-Esclavo

    Debido a que los encoders usados son del tipo incremental, estos requieren constante atencin por

    parte del microcontrolador. Es necesario que las seales provenientes del encoder sean actualizadas

    por lo menos una vez cada 10us para evitar que el disco avance dos niveles y perder as el valor de

    referencia. El microcontrolador maneja la comunicacin USB mediante interrupciones, es decir que

    puede ser retirado de sus tareas habituales para atender tareas correspondientes a la comunicacin.

    Se hace imposible entonces garantizar la adecuada atencin a los encoders usando un solo

    microcontrolador.

    Para resolver este inconveniente se decidi utilizar dos microcontroladores en configuracin

    Maestro-Esclavo. El microcontrolador Maestro se encarga de todas las tareas necesarias para el

    funcionamiento del sistema excepto la de atender peridicamente a los encoders. Esta funcin se

    delega al microcontrolador Esclavo el cual se encarga de leer peridicamente las seales de los

    encoders, actualizar los contadores segn la Tabla 1 y de entregarle la informacin correspondiente

    al microcontrolador Maestro cuando ste la solicite.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    27/142

    Captulo 2 Diseo del Pndulo Invertido

    13

    2.2.4. Protocolo Paralelo

    Para establecer una comunicacin rpida y segura entre los microcontroladores maestro y esclavo,

    se decidi disear un protocolo paralelo especial, interconectando los pines de los puertos B y D de

    ambos microcontroladores (ver ANEXO V). De esta forma el microcontrolador maestro puede leer

    los datos desde los puertos, simulando ser un registro de memoria interno.

    Se incluyeron dos pines (RC6 y RC7) para actuar como banderas en la comunicacin. Una bandera

    solicita el envi del datox (posicin del carro), mientras la otra solicita el envo del datof (ngulo

    de desviacin del pndulo). En caso de que las dos banderas se encuentren bajas, el esclavo no

    escribe datos nuevos en los puertos, lo que permite una lectura segura por parte del maestro.

    En la Figura 2.12 se observan las conexiones fsicas entre los pines de ambos microcontroladores.

    Los pines de datos se encuentran cruzados para evitar puentes en el circuito impreso (PCB). La

    reinversin de los datos se realiza mediante software en el microcontrolador maestro.

    Figura 2.12: Conexiones fsicas entre los pines de los microcontroladores Maestro y Esclavo

    La secuencia de eventos que ocurren durante una transferencia de datos se observa en la figura 2.13.

    Inicialmente el microcontrolador maestro solicita el envi del dato x levantando la bandera 1. El

    microcontrolador esclavo responde en un tiempo de hasta 5 us, escribiendo los datos en el puerto.

    Luego de 8 us de levantada la bandera 1 el microcontrolador maestro la baja y lee los datos del

    puerto. La secuencia se repite idnticamente para leer el datofcon la Bandera 2.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    28/142

    Captulo 2 Diseo del Pndulo Invertido

    14

    Figura 2.13: Secuencia de eventos durante una trasferencia de datos entre el microcontrolador Maestro y Esclavo

    La lectura de ambos datos se completa 24 us luego de iniciada la transferencia.

    2.2.5. Lmites de Carrera

    Para evitar que el carro, en su movimiento horizontal, colisione con alguno de los extremos del riel,

    se aadieron lmites de carrera pticos a ambos lados del mismo. Los mismos consisten

    simplemente de un diodo LED infrarrojo enfrentado con un fototransistor y la seal del mismo se

    conecta a dos pines (RB6 y RB7) del microcontrolador.

    Una subrutina especial dentro del microcontrolador Maestro se encarga de revisar peridicamente el

    estado de los lmites de carrera y desactivar el motor en caso de que sea necesario.

    Estos lmites de carrera se usan, adems, para determinar la posicin absoluta del carro al momento

    de encender el equipo (ver seccin 2.2.11.).

    2.2.6. Comunicacin USB

    Se decidi utilizar el Bus USB para la comunicacin entre el microcontrolador maestro y la PC

    debido a su gran aceptacin y masivo uso. De esta forma se puede controlar el pndulo y realizar

    experimentos desde cualquier PC de escritorio o notebook.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    29/142

    Captulo 2 Diseo del Pndulo Invertido

    15

    Este protocolo permite el envo de paquetes de datos desde la PC, y permite, a continuacin, recibir

    una respuesta desde el microcontrolador. De esta forma se puede enviar, en un paquete, la seal de

    control en un instante dado, y recibir luego las lecturas de los sensores. Desde la PC, todo el

    conjunto electrnico-mecnico que conforma el pndulo, es visto como un sistema dinmico de una

    entrada y dos salidas.

    El modo de operacin escogido es el de BULK TRANSFER debido a su capacidad para transmitir

    paquetes de datos a altas velocidades. Para la programacin del microcontrolador se utilizaron las

    libreras provedas por CCS (Custom Computer Services Inc.) [10] para trabajar en conjunto con la

    librera mpusbapi.dll de MICROCHIP [11]. Estas libreras fueron modificadas de acuerdo a las

    necesidades de la aplicacin, cambiando los tamaos de los buffer y los descriptores del dispositivo

    ( VID 0x04D8 PID 0x1011 ). Para la programacin de la interfaz de PC se utiliz la librera

    _mpusbapi.h provista por MICROCHIP, la cual permite acceder al puerto USB desde el cdigo de

    programacin en MATLAB[12].

    En la figura 2.14 se observa un esquema de la trama de 8 bytes utilizada en la comunicacin USB.

    Figura 2.14: Trama USB

    Variable Tamao Descripcin Valores

    us 1 byte Signo de la seal de control de 0 a 1

    u1-u0 2 bytes Amplitud de seal de control de 0 a 1024

    f1-f0 2 bytes ngulo de desviacin del pndulo de 0 a 1024

    x1-x0 2 bytes Posicin del carro de 0 a 1024

    lim 1 byte Estado de los limites de carrera de 0 a 2

    Tabla 2: Descripcin de los Bytes de la trama USB

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    30/142

    Captulo 2 Diseo del Pndulo Invertido

    16

    2.2.7. Puente H

    Una vez recibida la seal de control desde la PC, es necesario aplicarla al motor. Una forma de

    hacer esto es a travs de un puente H, utilizando una seal PWM. La figura 2.15 muestra la

    disposicin adoptada. La misma consiste de 4 MOSFET canal-N (IRF540) [13] (Q1 Q2 Q3 Q4) y 2

    MOSFET canal-P (IRF9530) [14] (Q5 Q6).

    Figura 2.15: Circuito esquemtico del Puente H

    El sentido de giro positivo se habilita aplicando 5V sobre el borne G4 y la seal PWM sobre el

    borne G1. El sentido de giro negativo se habilita aplicando 5V sobre el borne G3 y la seal PWM

    sobre el borne G2. En ambos casos, los bornes restantes se ponen a masa para evitar cortocircuitos.

    La seal PWM se genera utilizando los mdulos especiales que incorpora el microcontrolador a tal

    fin. La frecuencia base escogida es de 11,7 khz y el ciclo de trabajo se establece a partir del valor

    absoluto de la seal de control.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    31/142

    Captulo 2 Diseo del Pndulo Invertido

    17

    2.2.8. Fuente de alimentacin

    Por razones de simplicidad y conveniencia, se decidi utilizar una fuente de PC estndar. La misma

    provee los 5V necesarios para la alimentacin de toda la electrnica y los 12V para la alimentacin

    del motor.

    2.2.9. Placa de Circuito Impreso

    Para la implementacin fsica del circuito se fabric una placa de circuito impreso (PCB), en la cual

    se incluyen los dos microcontroladores, el puente H, los conectores de alimentacin y el Puerto

    USB. La misma puede verse en la figura 2.16. Se aadieron dos conectores ICSP para poder

    programar los microcontroladores. Por una cuestin de reduccin de ruido, los circuitos

    amplificadores de los encoders se ubican en placas separadas, junto con los fotodiodos, y se

    conectan a la placa principal por medio de dos conectores IDC-10.

    Figura 2.16: Placa de Circuito Impreso

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    32/142

    Captulo 2 Diseo del Pndulo Invertido

    18

    2.2.10. Software

    La estructura del software implementado en el microcontrolador se muestra en la figura 2.17.

    Figura 2.17: Estructura del software implementado en el microcontrolador Maestro

    A continuacin se describen brevemente cada una de las funciones y subrutinas que aparecen en la

    figura anterior:

    inicializacion: se encarga de configurar, los puertos, los pines, los contadores y todas las

    variables necesarias para el funcionamiento del equipo.

    usb_task: es una rutina que debe ejecutarse peridicamente, incluye tareas necesarias para

    la operacin del puerto USB.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    33/142

    Captulo 2 Diseo del Pndulo Invertido

    19

    usb_kbhit: es una funcin que verifica si se envi un paquete de datos desde la PC.

    usb_get_packet: es una funcin que recibe la trama de datos desde la PC y la almacena en

    variables internas del microcontrolador.

    datos: es una subrutina que se encarga de realizar la comunicacin con el microcontrolador

    esclavo, obtiene las lecturas de los encoders y las almacena en variables internas del

    microcontrolador

    usb_put_packet: es una subrutina que enva los datos ledos de los encoders por el puesto

    USB, contestando el mensaje transmitido por la PC.

    pwm: es una subrutina que se encarga de aplicar la seal de control sobre el motor,

    actualizando el ciclo de trabajo de los mdulos PWM.

    limites: es una subrutina que se encarga de revisar el estado de los lmites de carrera y

    detener el motor en caso de que sea necesario, para evitar una colisin del carro con los

    lmites del riel.

    El cdigo fuente del bucle principal y de las subrutinas puede verse en el ANEXO III.

    2.2.11. Rutinas de inicializacin

    Debido a la configuracin incremental de los encoders es necesario conocer el valor inicial de los

    parmetros del ngulo y la posicin.

    En el caso del ngulo, si el equipo se pone en funcionamiento mientras se encuentra detenido, esfactible suponer que el pndulo se encuentra en la posicin vertical inferior. El valor inicial

    escogido ser entonces depi radianes, pudiendo determinar luego el valor del ngulo en cualquier

    momento a partir de los incrementos detectados.

    En el caso de la posicin del carro, en cambio, es imposible conocer directamente la posicin inicial

    del mismo en el momento de la puesta en funcionamiento del equipo. Para resolver este problema,

    se incluy una rutina especial a tal fin en las rutinas de inicializacin. La misma aplica una seal de

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    34/142

    Captulo 2 Diseo del Pndulo Invertido

    20

    control constante sobre el motor haciendo que el mismo se desplace hacia uno de los extremos de su

    recorrido. El carro contina este movimiento hasta accionar el lmite de carrera correspondiente, en

    ese momento el carro se encontrar en uno de los extremos de su recorrido y se asigna entonces el

    valor inicial -1 en la posicin.

    Figura 2.18: Rutina de inicializacin para determinar la posicin inicial del carro

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    35/142

    Captulo 2 Diseo del Pndulo Invertido

    21

    2.3. Interfaz en MATLAB

    La interfaz de PC consiste simplemente de un programa principal y una serie de subrutinas,

    implementadas en el editor de MATLAB. El mismo, como se mencion anteriormente, permite

    acceder al puerto USB mediante el uso de la librera _mpusbapi.h, provista por MICROCHIP [11].

    2.3.1. Subrutinas

    Para simplificar la programacin y operacin de la interfaz se agrup el cdigo necesario en tres

    subrutinas.

    usb_start.m incluye todo el cdigo necesario para cargar las libreras, declarar e inicializarlas variables, e iniciar la comunicacin USB,

    usb_com.m incluye todo el cdigo para enviar la seal de control al microcontrolador,recibir su respuesta y normalizar las variables. Tambin se encarga de realizar una pausa de

    h segundos.

    usb_stop.m incluye todo el cdigo para finalizar la comunicacin, descargar las libreras yliberar la memoria.

    2.3.2. Estructura

    Con las subrutinas antes descriptas, se arm una estructura de cdigo, simple y efectiva, en la cual

    se puede insertar cualquier cdigo de control.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    36/142

    Captulo 2 Diseo del Pndulo Invertido

    22

    Figura 2.19: Diagrama de Flujo y Cdigo Fuente de la estructura principal

    2.3.3. Normalizacin de las Variables

    Para trabajar de forma ms cmoda, se normalizaron las variables del sistema a valores

    adimensionales dentro de los siguientes rangos:

    1)(1 ku

    1)(1 kx

    )(k

    2.3.4. Perodo de muestreo

    Para averiguar la frecuencia de muestreo mxima admisible, se realizaron ensayos para determinar

    los tiempos demora en la comunicacin USB, es decir, cuanto tiempo se tarda en enviar una trama

    de 8 bytes al microcontrolador y recibir su respuesta. Los resultados se muestran en la Figura 2.20,

    en la cual se observa un histograma de los tiempos de demora para 1000 iteraciones.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    37/142

    Captulo 2 Diseo del Pndulo Invertido

    23

    Figura 2.20: Histograma de Tiempos de demora en la comunicacin USB

    Se realiz un anlisis estadstico que revel una media de 1.2ms y una desviacin estndar de

    0.6ms, aunque con valores pico de hasta 16ms.

    Para que la frecuencia de muestreo sea estable, es necesario incluir una demora en el bucle principal

    del programa, de forma que dicho bucle se ejecute una vez por cada perodo de muestreo. Para esto

    se hizo uso de los comandostic ytoc. El comandotoc simplemente devuelve el tiempo transcurrido

    a partir del ltimo comando tic. En la figura 2.21 se muestra el diagrama de flujo del segmento de

    cdigo utilizado para realizar la demora. Esta demora se incluy en la subrutina usb_com.m. De

    esta forma, siempre transcurre un perodo de tiempo h entre cada comunicacin con el

    microcontrolador.

    Figura 2.21: Diagrama de flujo del cdigo de demora

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    38/142

    Captulo 2 Diseo del Pndulo Invertido

    24

    Para que los tiempos de demora de la comunicacin USB no influyan negativamente en la

    estabilidad de la frecuencia de muestreo, el tiempo h debe ser mayor que el valor pico de dichos

    tiempos de demora. Es por esto que se eligi un tiempo h de 0.02 s. Este es el perodo de muestreo

    utilizado siempre, de ahora en adelante.

    2.3.5. Linealizacin del motor

    Se detect un comportamiento no lineal del motor, presentando una zona muerta para valores bajos

    de la seal de control. Se realizaron ensayos adicionales para determinar la respuesta del motor en

    funcin de la seal de control. Para esto se inyectaron pulsos de 200 ms de duracin, y amplitud

    variable, a la entrada del sistema, y se midi el desplazamiento total del carro para cada pulso.

    Figura 2.22: Respuesta no lineal del motor

    Luego se elabor un algoritmo que reduce la alinealidad, aplicando una funcin lineal a trozos

    especialmente definida. La funcin tiene tres tramos y diferentes pendientes para cada uno de ellos.

    El cdigo implementado es el siguiente

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    39/142

    Captulo 2 Diseo del Pndulo Invertido

    25

    donde u0 es la seal deseada, proveniente del controlador y u1 es la seal linealizada que se habr

    de aplicar al motor. En la figura 2.23 se observa una grfica de dicha funcin y en la figura 2.24 se

    muestra la respuesta que se obtiene luego de aplicar la funcin linealizadora a la seal de control. Se

    ve claramente una respuesta ms lineal.

    Figura 2.23: Funcin linealizadora a trozos Figura 2.24: Respuesta linealizada

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    40/142

    Captulo 2 Diseo del Pndulo Invertido

    26

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    41/142

    Captulo 3 Modelado e Identificacin

    27

    Captulo 3 - Modelado e Identificacin

    Este capitulo estar dedicado a la determinacin de un modelo matemtico para el pndulo

    invertido, y a la determinacin de sus parmetros, los cuales sern luego necesarios para el diseo

    del controlador en el Captulo 4.

    3.1. Modelado

    Se considerar para el anlisis, un modelo simplificado en el cual, el pndulo es representado por un

    cuerpo rgido, montado sobre una articulacin sin rozamiento. Se desprecia tambin el rozamiento

    del pndulo con el aire.

    Debido a que la masa del motor y del carro es mucho mayor que la masa del pndulo,

    consideraremos despreciables los efectos del movimiento del pndulo sobre el carro. De esta forma

    se simplifica el trabajo de modelado, ya que podemos modelar el pndulo y el carro por separado,

    para luego acoplarlos como dos sistemas en serie.

    Figura 3.1: Modelo en Cascada

    Esta simplificacin se verifica de una forma sencilla, ya que si le damos un impulso al pndulo y lo

    hacemos girar libremente, no se observa movimiento en el carro.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    42/142

    Captulo 3 Modelado e Identificacin

    28

    3.1.1. Modelado del pndulo invertido

    En la figura 3.2 vemos el modelo del pndulo simplificado en donde las nicas fuerzas que actan

    sobre el mismo son las correspondientes a la gravedad y a la aceleracin horizontal del carro.

    Figura 3.2: Modelo Simplificado del Pndulo Invertido

    Aplicando las leyes de la mecnica clsica [15] obtenemos

    cosxmsenmgJ

    Haciendo las aproximaciones sen y 1cos llegamos a

    J mg mx

    Estas ltimas aproximaciones son validas nicamente cuando el pndulo se encuentra muy cerca de

    su posicin vertical superior. Luego, aplicando transformada de Laplace, puede obtenerse la funcin

    de transferencia entre la aceleracin horizontal y el ngulo de desviacin del pndulo.

    2 2s J mg s mx

    J

    mgs

    J

    m

    sx

    2

    2

    Escrito en forma compacta

    2

    2

    s dc

    x s c

    Donde c y d son parmetros a determinar mediante la identificacin.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    43/142

    Captulo 3 Modelado e Identificacin

    29

    3.1.2. Modelado del pndulo no invertido

    Cuando el pndulo se encuentra en la posicin vertical inferior, ya no son validas las

    aproximaciones hechas anteriormente. Es necesario entonces recalcular el modelo, cambiando el

    origen de medicin del ngulo . La nueva variable cuyo origen es el eje vertical inferior, la

    llamaremos *.

    Figura 3.3: Modelo Simplificado del Pndulo No Invertido

    Aplicando nuevamente las leyes de la mecnica clsica, obtenemos

    * * cos * J mg sen mx

    Se puede demostrar que la funcin de transferencia resulta

    2

    2

    * s dc

    x s c

    La diferencia entre ambos sistemas corresponde a una inversin en el signo del parmetro c . Esto

    es equivalente a una rotacin de 90 en la ubicacin de los polos y una inversin del signo en la

    ganancia.

    Figura 3.4: Ubicacin de polos y ceros para el pndulo invertido (izq.) y el pndulo no invertido (der.)

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    44/142

    Captulo 3 Modelado e Identificacin

    30

    3.1.3. Modelado del Motor

    El circuito equivalente de un motor de corriente continua consiste de una fuente electromotriz,

    proporcional a la velocidad de giro del motor, en serie con la resistencia interna del devanado.

    Figura 3.5: Modelo Simplificado del motor de CC

    De aqu tenemos que

    R

    kVi i

    1

    Tambin sabemos que la cupla motora es proporcional a la corriente y que la aceleracin angular es

    proporcional a la cupla motora menos el rozamiento (que se considera proporcional a la velocidad

    angular).

    ikm 2 3kr rmJ

    remplazando obtenemos

    3122 k

    R

    kkV

    R

    kJ i

    aplicando transformada de Laplace

    iVskR

    kksJs

    k

    R

    3

    122

    2

    312

    2

    kR

    kksJRs

    k

    Vi

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    45/142

    Captulo 3 Modelado e Identificacin

    31

    Como el ngulo del motor es proporcional a la posicin del carro y la tensin de entrada es

    proporcional a la seal de control, resulta

    312

    24

    kR

    kksJRs

    kk

    u

    x

    o en forma compacta

    x ba

    u s s a

    Donde a y b son parmetros a determinar mediante la identificacin.

    3.1.4. Modelo Completo

    A partir de estas funciones de transferencia podemos armar un sistema multi-variable, con una

    entrada y dos salidas. En la figura 3.6 se observan dos posibles formas de representacin del sistema

    en diagramas de bloques.

    Figura 3.6: Posibles representaciones del sistema en diagramas de bloques

    Tambin es posible expresar el sistema como un sistema de cuarto orden en variables de estado

    ( ) 0 0 0 ( )

    ( ) 1 0 0 0 ( ) 0( )

    ( ) 0 0 ( )

    ( ) 0 0 1 0 ( ) 0

    x t a x t ba

    x t x t u t

    t dca c t badc

    t t

    )()(

    )(

    )(

    1000

    0010)(

    tt

    tx

    tx

    ty

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    46/142

    Captulo 3 Modelado e Identificacin

    32

    o en forma compacta

    )()()( tuBtXAtX

    )()( tXCty

    donde )(ty representa el vector de salidas

    )(

    )(

    t

    tx

    3.1.5. Discretizacin

    Visto desde la computadora, debido a la forma discreta de medir y aplicar la seal de control, el

    sistema se ve como un sistema discreto. Existen varias tcnicas para derivar un modelo discreto del

    sistema a partir del modelo continuo de forma analtica [16], pero debido al alto grado de

    complejidad, inherente a un sistema de cuarto orden, la discretizacin se realiz en forma numrica

    mediante la funcin c2d de MATLAB.

    El tipo de discretizacin utilizado es la discretizacin con mantenedor de orden cero, la cual

    consiste en suponer que la entrada se mantiene constante durante todo el perodo de muestreo (lo

    cual es cierto en esta aplicacin). La misma es exacta en el sentido de que todas las variables de

    estado de ambos sistemas (continuo y discreto) coinciden en el instante de muestreo. De esta forma

    se obtiene un sistema discreto equivalente al continuo.

    )(

    )(

    )(

    )(

    )(

    )1(

    )1(

    )1(

    )1(

    4

    3

    2

    1

    44434241

    34333231

    24232221

    14131211

    ku

    k

    k

    kx

    kx

    k

    k

    kx

    kx

    )(

    )(

    )(

    )(

    1000

    0010)(

    k

    k

    kx

    kx

    ky

    o en forma compacta

    )()()1( kukXkX

    )()( kXCky

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    47/142

    Captulo 3 Modelado e Identificacin

    33

    3.2. Identificacin Mediante Simulacin

    Para la identificacin de los parmetros del sistema se implement un algoritmo en MATLAB para

    simular respuestas de sistemas y compararlas, mediante una funcin de costo cuadrtico, con la

    respuesta del sistema real. En la Figura 3.7 se puede ver un diagrama en bloques del algoritmo.

    Figura 3.7: Diagrama en bloques del algoritmo de Identificacin por Simulacin

    Existen muchos algoritmos de minimizacin basados en este criterio, como por ejemplo los que se

    describen en [17]. En este trabajo se utiliz el mtodo de la grilla que, si bien tiene un alto costo

    computacional, nos garantiza encontrar la solucin con una precisin arbitraria. El mismo se

    describe a continuacin.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    48/142

    Captulo 3 Modelado e Identificacin

    34

    3.2.1. Identificacin de la Funcin de Transferencia del Motor

    Para empezar, se defini una entrada arbitraria )(ku y se ejecut el equipo para obtener la respuesta

    real del sistema a dicha entrada.

    Figura 3.8: Respuesta real del sistema ante una entrada pulso

    Luego, se defini arbitrariamente una grilla inicial de valores para los parmetros a y b, cubriendo

    una regin de inters

    Figura 3.9: Grilla de valores para los parmetros a y b

    Posteriormente se utiliz la funcin filter de MATLAB para simular un conjunto de respuestas )( kx

    de sistemas del tipo

    ba

    s s apara cada par de valores (a, b) dentro de la grilla.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    49/142

    Captulo 3 Modelado e Identificacin

    35

    A continuacin se calcul, para cada par de valores (a, b), el valor de la sumatoria del error

    cuadrtico entre la respuesta real y la respuesta simulada.

    22 )()(),( kxkxbae

    Finalmente de se seleccion el par (a, b) que produce el error mnimo utilizando la funcin min de

    MATAB.

    Debido a que este es un problema cuadrtico lineal, est garantizado que es convexo y por lo tanto

    tiene un solo mnimo. Consecuentemente, si el error mnimo se encuentra en el interior de la grilla,

    esta asegurado que el mismo es la solucin del problema. El algoritmo puede luego repetirse

    reduciendo el rango de variacin de la grilla, para obtener estimaciones de mayor exactitud.

    Por otro lado, si el mnimo se encuentra sobre el borde de la grilla, significa que la solucin puede

    encontrarse fuera de la misma, por lo tanto habr que redefinir la grilla con rangos de variacin ms

    amplios para repetir los clculos.

    Algunos de los resultados obtenidos pueden verse en las Figuras 3.10 y 3.11

    Figura 3.10: Error cuadrtico en

    funcin de los parmetros a y b

    Figura 3.11: Contornos de la funcin de error

    cuadrtico alrededor del punto mnimo

    El par de parmetros que produjeron el error mas bajo fueron 3.25a y 98.5b

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    50/142

    Captulo 3 Modelado e Identificacin

    36

    3.2.2. Identificacin de la Funcin de Transferencia del pndulo

    Una vez identificados los parmetros del motor, se procedi con la identificacin de los parmetros

    del pndulo. Debido a que resulta demasiado complicada la identificacin del pndulo en la

    posicin superior (ya que es un sistema inestable), se realiz la identificacin del pndulo en la

    posicin inferior (pndulo no invertido). Luego, ya que los parmetros son los mismos, se puede

    obtener la funcin de transferencia del pndulo invertido realizando los correspondientes cambios

    de signo. Debido a que

    2

    2

    * s dc

    x s c

    y x ba

    u s s a

    la funcin de transferencia entere la seal de control y el ngulo de desviacin del pndulo resulta

    2* s abcd

    u s c s a

    Luego, se procedi de la misma forma que en el caso anterior, esta vez para determinar los

    parmetros c y d, con una funcin de transferencia de tercer orden

    Figura 3.12: Respuesta real del Pndulo ante una entrada Pulso

    En este caso, los parmetros obtenidos fueron 2.80c y 017.0d

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    51/142

    Captulo 3 Modelado e Identificacin

    37

    3.3. Identificacin Mediante Clculo Matricial

    Otra forma de aplicar el mtodo de mnimos cuadrados, a la identificacin de los parmetros del

    sistema, es mediante el clculo matricial [16] [17].

    Supongamos que queremos identificar los parmetros de una funcin de transferencia discreta de

    segundo orden

    1 02

    1 0

    b z bx u

    z a z a

    A partir de una secuencia de entradas conocida u(k) y una secuencia de mediciones x(k) afectadas

    por ruido.

    La funcin de transferencia puede reescribirse en forma de ecuacin en diferencias, para calcular la

    prediccin de x(k+1) dados los datos hasta el instante k

    1 0 1 0( 1) ( ) ( 1) ( ) ( 1)x k a x k a x k b u k b u k

    O en forma matricial

    1

    0

    1

    0

    ( 1) ( ) ( 1) ( ) ( 1)

    a

    ax k x k x k u k u k

    b

    b

    Repitiendo recursivamente, obtenemos

    1

    0

    1

    0

    (2) (1) (0) (1) (0)(3) (2) (1) (2) (1)

    (4) (3) (2) (3) (2)

    a x x x u ua x x x u u

    b x x x u u

    b

    Y

    El conjunto de parmetros que mejor se ajusta a los datos, es el que minimiza la sumatoria del

    cuadrado del error de prediccin

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    52/142

    Captulo 3 Modelado e Identificacin

    38

    2 2 ( ) ( ( ) ( )) ( ) ( ) ( ) ( )T Tk

    e x k x k Y Y Y Y Y Y

    El mnimo se obtiene igualando a cero la expresin de la derivada del error

    2 ( ) ( ) ( ) 0T Te Y Y

    ( ) 0T Y

    1 ( )T TY

    Usando esta expresin es posible calcular una estimacin de los parmetros del sistema discreto a

    partir de los datos experimentales u(k) y x(k).

    3.3.1. Identificacin de la Funcin de Transferencia del motor

    El proceso de identificacin de la funcin de transferencia del motor comienza inyectando una seal

    de prueba al equipo, en este caso una seal binaria pseudo-aleatoria, y registrndose los datos de

    salida.

    Figura 3.13: Entradas u(k) y salidas x(k) para una seal de prueba binaria pseudo-aleatoria

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    53/142

    Captulo 3 Modelado e Identificacin

    39

    A continuacin se ensamblan las matrices Y y siguiendo la forma

    (3) (2) (1) (2) (1)

    (4) (3) (2) (3) (2)(5) (4) (3) (4) (3)

    x x x u u

    x x x u uY

    x x x u u

    El vector de parmetros se calcula como

    1

    1.2024

    0.20240.0391

    0.0299

    T TY

    20.0391 0.0299

    1.202 0.202

    zx u

    z z

    A partir de estos resultados es posible calcular el modelo continuo equivalente utilizando la funcin

    d2c de MATLAB, con lo cual se obtiene

    0.423 816.6

    79.89 0.003

    sx u

    s s

    Haciendo algunas simplificaciones llegamos a

    345.4

    79.89x u

    s s

    79.9 4.32a b

    3.3.2. Identificacin de la Funcin de Transferencia del Pndulo

    El mismo procedimiento puede aplicarse para la identificacin de la funcin de transferencia delpndulo, esta vez con una funcin de transferencia de tercer orden. Al igual que en la seccin 3.2.2.

    la identificacin se realiza con el pndulo en la posicin inferior, por lo que se trabajar con la

    variable de salida *( )k .

    Se inicia el experimento con el pndulo en la posicin inferior y se aplica la seal de prueba binaria

    pseudo-aleatoria. En la Figura 3.14 vemos el comportamiento de *( )k al aplicar la seal de

    prueba.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    54/142

    Captulo 3 Modelado e Identificacin

    40

    Figura 3.14: Entradas u(k) y salidas *(k) para una seal de prueba binaria pseudo-aleatoria

    A continuacin se ensamblan las matrices Y y siguiendo la forma

    *(4) *(3) *(2) *(1) (3) (2) (1)

    *(5) *(4) *(3) *(2) (4) (3) (2)

    *(6) *(5) *(4) *(3) (5) (4) (3)

    u u u

    u u uY

    u u u

    Y se calcula vector de parmetros como

    1 T TY

    Obteniendo as

    2.099

    1.266

    0.1380.051

    0.0005

    0.0471

    2

    3 20.051 0.0005 0.047*

    2.099 1.267 0.138z z u

    z z z

    A partir de estos resultados se calcula el modelo continuo equivalente utilizando la funcind2c de

    MATLAB, con lo cual se obtiene

    21.58 355.5 1.716* 98.6 0.296 85.03s s us s s

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    55/142

    Captulo 3 Modelado e Identificacin

    41

    Despreciando algunos trminos de menor valor, llegamos a

    2561.7

    *98.6 85.03

    su

    s s

    De donde pueden extraerse los valores de los parmetros

    98.6 85.03 0.016a c d

    3.3.3. Identificacin del Sistema en Variables de Estado

    El mtodo de Mnimos Cuadrados mediante Clculo Matricial puede extenderse a la identificacin

    de sistemas en variables de estado.

    A partir del modelo del sistema en Variables de Estado

    )()()1( kukXkX

    Podemos expresar la prediccin de x(k+1) a partir de los datos hasta el instante k, de la siguiente

    forma

    ( 1) ( ) ( )T

    T T T

    T X k X k u k

    Luego, repitiendo recursivamente, tenemos que

    (1) (0) (0) (1) (1)(2)

    (2) (2)(3)

    T T T

    T T TT

    T T TT

    X X u

    X uX

    X uX

    Y

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    56/142

    Captulo 3 Modelado e Identificacin

    42

    A partir de ahora, es posible aplicar el mtodo de Mnimos Cuadrados, de la misma forma que en

    los casos anteriores. Suponiendo que todos los estados y las entradas son conocidos, la matriz de

    parmetros puede estimarse mediante

    1 T TY

    De donde pueden extraerse la estimacin de la matriz de transicin y del vector de entadas del

    sistema bajo identificacin.

    T

    T

    Las variables de estado ( )x k y ( )k son directamente medibles y sus valores son conocidos. Por

    otro lado ( )x k y ( )k no lo son, pero pueden ser estimadas mediante un operador de derivacin,

    por ejemplo:

    ( 1) ( 1)( )

    2

    x k x k x k

    h

    ( 1) ( 1)( )

    2

    k kk

    h

    Al igual que en los casos anteriores, la identificacin se realiza con el pndulo en la posicin

    inferior, por lo que se trabajar con la variable *( )k en lugar de ( )k . Se comienza inyectando

    una seal de prueba pseudo-aleatoria u(k) al sistema, y registrando las salidas ( )x k y *( )k . Luego

    se estiman los valores de ( )x k y * ( )k utilizando los operadores de derivacin. En la Figura 3.15

    se muestran algunos de los valores registrados para ( )u k , ( )x k , ( )x k , *( )k y * ( )k durante un

    ensayo de identificacin.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    57/142

    Captulo 3 Modelado e Identificacin

    43

    Figura 3.15: Entradas y salidas del sistema para una seal de prueba binaria pseudo-aleatoria

    A continuacin se ensamblan las matrices Y y siguiendo la forma

    (1) (0) (0)

    (2) (1) (1)

    (3) (2) (2)

    T T T

    T T T

    T T T

    X X u

    X X uY

    X X u

    Y se calcula la matriz de parmetros como

    1 T TY

    Obteniendo as

    0.375 0.014 0.846 0.007

    0.013 1.000 0.008 0.000

    0.000 0.000 0.981 0.020

    0.013 0.000 1.659 0.9831.978 0.027 2.809 0.037

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    58/142

    Captulo 3 Modelado e Identificacin

    44

    Luego

    0.375 0.013 0.000 0.013

    0.014 1.000 0.000 0.000

    0.846 0.008 0.981 1.659

    0.007 0.000 0.020 0.983

    1.978

    0.027

    2.808

    0.037

    A partir de estos resultados se calcula el modelo continuo equivalente utilizando la funcind2c de

    MATLAB, con lo cual se obtiene

    49.01 0.985 0.058 0.963

    1.126 0.006 0.000 0.008

    66.69 0.918 0.062 83.99

    0.204 0.007 1.006 0.012

    A

    155.07

    0.078

    218.2

    0.019

    B

    Luego de hacer algunas simplificaciones, obtenemos

    49.01 0 0 0

    1 0 0 0

    66.69 0 0 83.99

    0 0 1 0

    A

    155.07

    0

    218.2

    0

    B

    De donde, por comparacin con el modelo terico

    ( ) 0 0 0 ( )

    ( ) 1 0 0 0 ( ) 0( )

    * ( ) 0 0 * ( )

    * ( ) 0 0 1 0 * ( ) 0

    x t a x t ba

    x t x t u t

    t dca c t badc

    t t

    Podemos extraer

    49 3.16 84 0.016a b c d

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    59/142

    Captulo 3 Modelado e Identificacin

    45

    3.4. Identificacin Mediante Ensayo

    Una vez conocidos los valores aproximados de los parmetros, es posible realizar una identificacin

    ms fina realizando ensayos con el equipo.

    Para esto, se asigna un valor al parmetro que se quiere determinar, se calcula el modelo y el

    controlador (ver Captulo 4) en base a dicho valor, y luego se realiza el ensayo. Calculando la

    varianza de x(k), es posible obtener una medida de en cuanto se ajusta el modelo al sistema real.

    Repitiendo el ensayo para valores sucesivos del parmetro, es posible trazar una curva. El punto de

    varianza mnima corresponder entonces al valor verdadero del parmetro en cuestin.

    Figura 3.16: Varianza de x(k) en funcin de los parmetros a, b, c y d

    Los parmetros obtenidos con este mtodo fueron

    60a 4b 85c y 0.016d

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    60/142

    Captulo 3 Modelado e Identificacin

    46

    3.5. Comparacin de los Mtodos de Identificacin

    En esta seccin se presentan los resultados obtenidos por los diferentes mtodos de identificacin y

    se realiza una breve comparacin en base a los errores obtenidos con cada mtodo.

    Si bien es posible calcular una cota de error para los parmetros discretos obtenidos mediante los

    mtodos de identificacin por mnimos cuadrados [16], debido a la gran cantidad de clculos

    involucrados, resulta prcticamente imposible realizar la propagacin de dicho error a los valores de

    los parmetros continuos (a, b, c y d). Las cotas de error de dichos parmetros resultan entonces ser

    desconocidas.

    Por esta razn, se elige uno de los mtodos de identificacin (el de mejor desempeo) como mtodo

    de referencia. Luego, la comparacin entre los diferentes mtodos de identificacin, se realiza

    contrastando los resultados obtenidos contra los valores del mtodo de referencia.

    El mtodo de Identificacin Mediante Ensayo (Seccin 3.4.) fue el que mostr el mejor desempeo

    (minima varianza), por lo que los valores obtenidos con este mtodo se toman como valores de

    referencia y se presumen como verdaderos.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    61/142

    Captulo 3 Modelado e Identificacin

    47

    A continuacin se muestran resumidos en la Tabla 3, los resultados obtenidos con los diferentes

    mtodos de identificacin. Al lado del valor de cada parmetro se presenta el error porcentual con

    respecto al valor verdadero presunto.

    a b c d

    valor e% valor e% valor e% valor e%

    Identificacin MedianteSimulacin

    25.3 -58% 5.98 +49% 80.2 -4% 0.017 +6%

    Clculo Matricial en

    Funcin de Transferencia79.9 +33% 4.32 +8% 79.9 -4% 0.016 0%

    Clculo Matricial en

    Variables de Estado49 -18% 3.16 -21% 84 -1% 0.016 0%

    Valor Verdadero Presunto 60 4 85 0.016

    Tabla 3: Comparacin de los mtodos de identificacin

    Podemos observar que el mtodo de Clculo Matricial en Variables de Estado presenta los menores

    errores porcentuales, frente a los otros dos mtodos.

    Vemos que los valores de los parmetros c y d fueron identificados prcticamente sin error por los

    tres mtodos. Por otro lado, existe gran incertidumbre con respecto a los valores de los parmetros a

    y b. Ensayos posteriores demostraron que existe una fuerte dependencia de estos dos parmetros

    con el tipo de seal de prueba utilizada, lo que evidencia la persistencia de un comportamiento no

    lineal en el motor. Se propone para trabajos futuros, la implementacin de un lazo de

    realimentacin local, para reducir los efectos no lineales indeseados del motor.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    62/142

    Captulo 3 Modelado e Identificacin

    48

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    63/142

    Captulo 4 Control del Pndulo Invertido

    49

    Captulo 4 - Control del Pndulo Invertido

    Este captulo estar dedicado al diseo e implementacin de diferentes controladores para el

    pndulo invertido, as como tambin, del anlisis de su desempeo.

    4.1. Control en Variables de Estado

    4.1.1. Vector de Realimentacin

    Dado un sistema discreto del tipo

    )()()1( kukXkX

    si aplicamos una realimentacin de la forma

    )()( kXLku

    donde L es un vector, obtenemos un sistema nuevo sistema, de lazo cerrado, sin entradas

    )()()1( kXLkX

    La matriz de transicin de este nuevo sistema es )( L . Escogiendo adecuadamente el vector L

    se pueden ubicar arbitrariamente los autovalores de )( L y por lo tanto los polos del sistema de

    lazo cerrado. Para esto es necesario que el sistema sea controlable.

    Si los polos de lazo cerrado se ubican dentro del crculo unitario, el vector de estados converger a

    cero, lo que implica que el pndulo tender a moverse hacia su posicin de equilibrio vertical

    superior.

    Existen muchos mtodos para calcular el vector de realimentacin L, algunos de ellos se describen

    en la bibliografa citada [16]. Debido al alto grado de complejidad, inherente a un sistema de cuarto

    orden, el calculo del vector L se realiz en forma numrica mediante la funcin place de

    MATLAB.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    64/142

    Captulo 4 Control del Pndulo Invertido

    50

    Para la implementacin de la realimentacin en variables de estado, primero es necesario conocer,

    en tiempo real, el vector de estados del sistema. Como no todos los estados del sistema son

    medibles, se hace necesaria la estimacin de los mismos mediante un Observador de Estados.

    4.1.2 Observador de Estados

    Un Observador de Estados es un algoritmo que estima los valores del vector de estados a partir de

    los valores de las entradas y las mediciones de las salidas del sistema.

    Un observador dinmico es un algoritmo que genera un sistema simulado, idntico al sistema real.

    Si el sistema real y su simulacin son sometidos a la misma entrada, y tienen las mismas

    condiciones iniciales, se puede esperar que, en todo momento, sus variables de estado sean las

    mismas. De este modo, el estado interno de la simulacin se puede usar como una aproximacin del

    estado interno del sistema real.

    Figura 4.1: Observador de Estados Libre

    En caso de que los dos sistemas no tengan las mismas condiciones iniciales (ya que estas

    generalmente son desconocidas) si el sistema es estable, la influencia de las condiciones iniciales ir

    disminuyendo a medida que pase el tiempo. Por lo tanto, si bien al principio tendrn valores

    diferentes, las variables de estado de ambos sistemas terminarn convergiendo asintticamente a

    medida que transcurra el tiempo.

    Para acelerar la convergencia del estado del sistema simulado al estado del sistema real, se puede

    estimular a la simulacin con una realimentacin del error entre la salida de los dos sistemas. Deeste modo, se logra modificar la dinmica del error de modo que converja ms rpido. Otra ventaja

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    65/142

    Captulo 4 Control del Pndulo Invertido

    51

    de esta configuracin es que hace posible estimaciones de estados en sistemas inestables, como es el

    caso del pndulo invertido.

    Figura 4.2: Observador de Estados Realimentado

    Supongamos que se tiene un observador de la forma:

    ( 1) ( ) ( )X k X k u k K y k C X k

    )( kX es la estimacin de )(kX y su diferencia es el error de estimacin:

    )()()(~

    kXkXkX

    Restando la ecuacin del observador de la ecuacin del sistema

    ( 1) ( 1) ( ) ( ) ( ) ( )X k X k X k u k X k u k K y k C X k

    Obtenemos

    )(~)1(~ kXKCkX

    Vemos que si se escoge K de forma que los polos de KC sean estables, el error de estimacin

    siempre converger a cero sin importar sus condiciones iniciales. Para esto es necesario que el

    sistema sea observable.

    Los mtodos para el clculo del vector K son similares a los utilizados para el clculo del vector L,

    algunos de ellos se describen tambin en la bibliografa citada [16]. Al igual que en el caso anterior,

    el clculo del vector K se realiz en forma numrica mediante la funcinplace de MATLAB.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    66/142

    Captulo 4 Control del Pndulo Invertido

    52

    Si en la ley de realimentacin, ahora se reemplaza los valores del vector de estados por su

    estimacin, tenemos:

    ( ) ( )u k L X k

    ( ) ( ) ( )u k L X k X k

    El sistema ahora incluye la dinmica del error. El sistema resultante puede expresarse como:

    ( 1) ( )

    ( 1) 0 ( )

    X k L L X k

    X k KC X k

    4.1.3. Controlabilidad y observabilidad del sistema

    La controlabilidad del sistema se verific calculando el rango de la matriz de controlabilidad.

    2 3CW

    4Crango W

    Ya que el rango de dicha matriz es igual al orden del sistema, significa que el sistema es

    completamente controlable, lo que permite ubicar arbitrariamente los polos de lazo cerrado.

    De forma similar, se verific la observabilidad del sistema, calculando el rango de la matriz de

    observabilidad.

    2

    3

    O

    C

    CW

    C

    C

    4Orango W

    Ya que el rango de dicha matriz es igual al orden del sistema, significa que el sistema es

    completamente observable, lo que permite ubicar arbitrariamente los polos del observador.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    67/142

    Captulo 4 Control del Pndulo Invertido

    53

    4.1.4. Valor deseado

    Si en vez de alimentar el observador con los valores medidos de la posicin, se lo alimenta con una

    diferencia entre la misma y un valor de referencia, se obtiene un sistema como el de la Figura 4.3.

    Figura 4.3: Esquema de Control en Variables de Estado con Regulacin de la Posicin Deseada

    Esto resulta equivalente a desplazar el centro de coordenadas de la posicin del carro, y por lo tanto,

    el esquema de realimentacin tratar de llevar a cero la diferencia entre la posicin y la posicin

    deseada

    ( ) 0d x k x ( ) d x k x

    Es decir, que llevar la posicin del carro, a su valor deseado. Ya que la dinmica del sistema no se

    ve afectada, frente a variaciones en la posicin deseada, el sistema responder entonces, de la

    misma forma que ante la imposicin de una condicin inicial.

    4.1.5. Algoritmo de Diseo

    Para facilitar el proceso de diseo del controlador, se implement un programa en MATLAB. El

    mismo ensambla el sistema, realiza la discretizacin y calcula los vectores K y L de forma

    automtica a partir de los parmetros a, b, c, y d. (ver modelado2.m en el Anexo IV)

    Figura 4.4: Algoritmo de diseo del controlador en Variables de Estado

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    68/142

    Captulo 4 Control del Pndulo Invertido

    54

    De esta forma resulta muy fcil recalcular los vectores del controlador en caso de modificarse los

    parmetros del sistema o los valores deseados para los polos.

    4.1.6. Implementacin

    La implementacin resulta muy sencilla utilizando el esquema visto en la seccin 2.3.2.

    Simplemente se agregaron las lneas de cdigo correspondientes al control y a la estimacin del

    vector de estados, dentro del bucle principal.

    Figura 4.5: Diagrama de Flujo del Algoritmo de Control en Variables de Estado

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    69/142

    Captulo 4 Control del Pndulo Invertido

    55

    h=0.02;

    N=1000;

    usb_start;

    for (i=1:N)

    u(i)=-L*xe(:,i);

    usb_com;

    xe(:,i+1)=(F-K*C)*xe(:,i)+G*u(i)+K*[x(i);f(i)];

    end

    usb_stop;

    Figura 4.6: Cdigo fuente en MATLAB del algoritmo de control por Variables de Estado

    El algoritmo se debe iniciar con el pndulo en proximidades de la posicin vertical superior, ya que

    de lo contrario, no son vlidas las aproximaciones hechas en la deduccin del modelo y por lo tanto

    el sistema resultara ser no lineal.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    70/142

    Captulo 4 Control del Pndulo Invertido

    56

    4.1.7. Resultados

    A continuacin se presentan los resultados de algunos de los ensayos realizados con el equipo y se

    los compara con simulaciones del modelo terico del sistema. En la figura 4.7 se muestra la

    respuesta del sistema ante una condicin inicial 0.6 en la posicin del carro.

    Figura 4.7: Respuesta del sistema con control en Variables de Estado ante una condicin inicial en la posicin

    Se observa la presencia de oscilaciones de alta frecuencia de aproximadamente 10 Hz, producidas

    por la interaccin entre el ruido la dinmica del observador (ver Seccin 4.3.5 y 4.6.).

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    71/142

    Captulo 4 Control del Pndulo Invertido

    57

    En la Figura 4.8 podemos observar la simulacin y la respuesta del sistema real ante una entrada de

    onda cuadrada en la posicin deseada del carro.

    Figura 4.8: Simulacin y respuesta del sistema real ante variaciones en la posicin deseada

    Aqu vemos la presencia de oscilaciones de baja frecuencia de aproximadamente 0.5 Hz, producidas

    por la dinmica del observador (ver Seccin 4.3.5 y 4.6.).

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    72/142

    Captulo 4 Control del Pndulo Invertido

    58

    4.2. Control en Enfoque Polinomial

    Esta seccin trata el problema del control del pndulo invertido utilizando funciones de

    transferencia discreta, en transformada z.

    4.2.1. Funcin de Transferencia de la Realimentacin de Estados

    A partir del controlador basado en variables de estado desarrollado en la seccin anterior, es posible

    obtener un controlador equivalente en funcin de transferencia.

    Aplicando transformada Z a la ecuacin del observador y combinando con la ley de realimentacin

    de estados, obtenemos:

    ( 1) ( ) ( )X k X k u k K y k C X k

    zX KC X L X K y

    zI KC L X K y

    1 X zI KC L K y

    1u LX L zI KC L K y

    1u

    L zI KC L K y

    Utilizando esta funcin de transferencia es posible calcular directamente la seal de control u(k) a

    partir de las mediciones de la salida y(k). El funcionamiento y desempeo de este controlador es

    igual al del controlador de variables de estado de la seccin anterior ya que es en realidad, una

    realizacin alternativa del mismo controlador.

    4.2.2. Funcin de Transferencia de la planta

    A partir del modelo de variables de estado es posible obtener un modelo en funcin de trasferenciaaplicando transformada Z.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    73/142

    Captulo 4 Control del Pndulo Invertido

    59

    ( 1) ( ) ( ) X k X k u k

    zX X u

    ( ) zI X u

    1( ) X zI u

    1( ) y CX C zI u

    1 y BA u

    Donde

    1 1

    ( )C zI BA

    Siendo A y B matrices de polinomios en z de 1x1 y 2x1 respectivamente. La matriz polinomial A

    puede calcularse como

    det( ) A zI

    Mientras que B se calcula mediante

    1( ) B C zI A

    4.2.3. Asignacin de Polos

    Si aplicamos un controlador de la forma

    1 1cu R S y R T u

    Con R, S y T siendo matrices de polinomios en z de 1x1, 1x2 y 1x1 respectivamente, obtenemos el

    siguiente sistema de lazo cerrado:

    1 1 1cu R S BA u R T u

    1 1 11 c R SBA u R T u

    c AR SB u AT u

    1

    cu AR SB AT u

    11

    c y BA u B AR SB T u

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    74/142

    Captulo 4 Control del Pndulo Invertido

    60

    1

    c y BT AR SB u

    Las conmutaciones realizadas, son posibles debido a que A, R y SB resultan ser escalares. Podemos

    ver que los polos del sistema de lazo cerrado son las races del polinomio AR SB

    . Este resulta

    ser el polinomio caracterstico del sistema. Igualando el mismo, al polinomio caracterstico deseado,

    podemos despejar los valores de los polinomios R y S necesarios para ubicar arbitrariamente los

    polos de lazo cerrado.

    1 2( )( )...( )k AR SB z p z p z p

    4.2.4. Algoritmo de Diseo

    Al igual que en el caso del diseo en variables de estado, se implement un programa en MATLAB

    para facilitar el proceso de clculo de los coeficientes del controlador. El mismo ensambla el

    sistema, realiza la discretizacin, calcula los coeficientes de las matrices A y B, y resuelve la

    ecuacin de diseo de forma automtica a partir de los parmetros a, b, c, y d. (ver modelado7.m en

    el Anexo IV)

    Figura 4.9: Algoritmo de diseo en enfoque polinomial

    De esta forma resulta muy fcil recalcular los coeficientes del controlador en caso de modificarse

    los parmetros del sistema o los valores deseados para los polos.

    Debido a que MATLAB no presenta funciones especficas para resolver ecuaciones diofnticas

    polinomiales, como lo es la ecuacin de diseo, se hizo necesario elaborar un algoritmo propio a tal

    fin.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    75/142

    Captulo 4 Control del Pndulo Invertido

    61

    Para esto se ensambla una ecuacin matricial, que representa el sistema de ecuaciones lineales, que

    resulta de igualar los coeficientes de mismo grado a ambos lados de la igualdad. El primer paso es

    determinar el grado de los polinomios contenidos en R y S, para esto se iguala el nmero de

    ecuaciones del sistema con la cantidad de incgnitas.

    Ecuaciones Incgnitas

    1 1 2 1grA grR grR grS

    El grado mnimo de los polinomios que satisfacen esta condicin resulta

    1grR grS

    Entonces

    4 3 24 3 2 1 0 1 0AR a z a z a z a z a r z r

    3 2 3 213 12 11 10 11 10 23 22 21 20 21 20SB b z b z b z b s z s b z b z b z b s z s

    5 4 3 21 2 5 5 4 3 2 1 0( )( )...( )P z p z p z p q z q z q z q z q z q

    Expresando la ecuacin de diseo en forma matricial

    AR SB P

    4 51

    3 4 13 23 40

    2 3 12 13 22 23 311

    101 2 11 12 21 22 2

    210 1 10 11 20 21 1

    200 10 20 0

    0 0 0 0 0

    0 0

    0 0 0

    a qr

    a a b b qr

    a a b b b b qs

    sa a b b b b q

    sa a b b b b q

    sa b b q

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    76/142

    Captulo 4 Control del Pndulo Invertido

    62

    La solucin del sistema de ecuaciones se obtiene invirtiendo la matriz

    1

    4 51

    3 4 13 23 40

    2 3 12 13 22 23 311

    10 1 2 11 12 21 22 2

    21 0 1 10 11 20 21 1

    20 0 10 20 0

    0 0 0 0 0

    0 0

    0 0 0

    a qr

    a a b b qr

    a a b b b b qs

    s a a b b b b q

    s a a b b b b q

    s a b b q

    4.2.5. Implementacin

    La implementacin resulta muy sencilla agregando las lneas de cdigo correspondientes al clculo

    de la seal de control en el esquema visto en la seccin 2.3.2.

    Figura 4.10: Diagrama de Flujo del Algoritmo de Control Polinomial

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    77/142

    Captulo 4 Control del Pndulo Invertido

    63

    La implementacin de la funcin de transferencia del controlador se realiz mediante el esquema

    Directo I, multiplicando los valores presentes y pasados de las seales ( ), ( ) ( )x k k y u k por los

    respectivos coeficientes de la funcin de transferencia.

    Figura 4.11: Implementacin de la Funcin de Transferencia

    h=0.02;

    N=1000;

    usb_start;

    for (i=1:N)

    u(i)=-1*(S1(1)*x(i-1)+S1(2)*x(i-2)+S2(1)*f(i-1)+S2(2)*f(i-2))-R(2)*u(i-1);

    usb_com;

    end

    usb_stop;

    Figura 4.12: Cdigo fuente en MATLAB del algoritmo de Control Polinomial

    Al igual que en el caso del control en variables de estado y por las mismas razones, algoritmo se

    debe iniciar con el pndulo en proximidades de la posicin vertical superior.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    78/142

    Captulo 4 Control del Pndulo Invertido

    64

    4.2.6. Resultados

    En la Figura 4.13 se muestra la respuesta del sistema ante una condicin inicial de 0,6 en la

    posicin.

    Figura 4.13: Respuesta del sistema con control polinomial ante una condicin inicial en la posicin

    Se observa un mejor desempeo en comparacin con el control en Variables de Estado, presentando

    un comportamiento ms amortiguado.

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    79/142

    Captulo 4 Control del Pndulo Invertido

    65

    En la Figura 4.14 podemos observar la simulacin y la respuesta del sistema real ante una entrada

    de onda cuadrada en la posicin deseada del carro.

    Figura 4.14: Simulacin y respuesta del sistema real ante variaciones en la posicin deseada

    Vemos un mejor desempeo en comparacin con el control en Variables de Estado, oscilaciones

    ms amortiguadas y con una menor varianza en estado estacionario (ver Seccin 4.6.)

  • 8/2/2019 Diseo y Control del Pndulo Invertido

    80/142

    Captulo 4 Control del Pndulo Invertido

    66

    4.3. Filtro de Kalman

    El filtro de Kalman[18] es un algoritmo desarrollado por Rudolf E. Kalman en 1960 que sirve para

    poder identificar el vector de estados de un sistema dinmico lineal (de forma similar al observador

    de estados) cuando el sistema est sometido a ruido blanco aditivo. La ventaja que presenta el filtro

    de Kalman es que la ganancia de realimentacin del error puede ser calculada de forma ptima

    cuando se conocen las varianzas de los ruidos que afectan al sistema.

    4.3.1. Ganancia ptima

    Supongamos que modelo del si