Simulación y Control de un Péndulo Físico Invertido / Simulation and Control of an Inverted...

download Simulación y Control de un Péndulo Físico Invertido / Simulation and Control of an Inverted Physical Pendulum

of 28

description

Trabajo fin de grado realizado por Alonso Guerreo Llorente en la facultad de Ciencias Físicas de la Universidad Complutense de Madrid.El péndulo es uno de los sistemas más estudiados en física, así como el péndulo invertido lo es en el área de la teoría del control. En este trabajo se modela y diseña un péndulo invertido situado sobre una plataforma móvil capaz de realizar movimientos de traslación y rotación. El péndulo se mantiene erguido por mediode un sistema de control. También se ha construido un mando que nos permite manejar el movimiento del aparato en un modelo 3D, usando un Arduino para tomar tomar las se~nales y correr la simulación.The pendulum is one of the best known systems in physics, as the inverted pendulum is in control theory. In this project we will model and control a pendulum over a platform which can translate and rotate. A control system keeps the pendulum upright. Also, a joystick has been built in order to manage the motion of the robot during the simulation in a 3D model, it is based on an Arduino board which receive the signals from the joystick and run the simulation.

Transcript of Simulación y Control de un Péndulo Físico Invertido / Simulation and Control of an Inverted...

  • Simulacion y Control de un Pendulo Fsico InvertidoSimulation and Control of an Inverted Physical Pendulum

    Alonso Guerrero Llorente

    Dirigido por: Daniel Chaver Martnez y Juan Manuel Velasco Cabo

    30 de Junio de 2015

    1

  • Resumen

    El pendulo es uno de los sistemas mas estudiados en fsica, as como el penduloinvertido lo es en el area de la teora del control. En este trabajo se modela ydisena un pendulo invertido situado sobre una plataforma movil capaz de realizarmovimientos de traslacion y rotacion. El pendulo se mantiene erguido por mediode un sistema de control. Tambien se ha construido un mando que nos permitemanejar el movimiento del aparato en un modelo 3D, usando un Arduino paratomar tomar las senales y correr la simulacion.

    Abstract

    The pendulum is one of the best known systems in physics, as the inverted pen-dulum is in control theory. In this project we will model and control a pendulumover a platform which can translate and rotate. A control system keeps the pen-dulum upright. Also, a joystick has been built in order to manage the motion ofthe robot during the simulation in a 3D model, it is based on an Arduino boardwhich receive the signals from the joystick and run the simulation.

    2

  • Indice

    1. Introduccion 41.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2. Metodologa 52.1. Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    3. Modelado y caractersticas del sistema 63.1. Modelado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2. Puntos de equilibrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.3. Linealizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.4. Analisis de la inestabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . 113.5. Datos del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    4. Control 124.1. Controlabilidad y observabilidad . . . . . . . . . . . . . . . . . . . . . . . 134.2. Diseno del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    4.2.1. Control del subsistema r . . . . . . . . . . . . . . . . . . . . . 144.2.2. Control del subsistema . . . . . . . . . . . . . . . . . . . . . . . 15

    4.3. Dominio de atraccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.4. Manipulacion de la senal de referencia . . . . . . . . . . . . . . . . . . . 17

    5. Animacion 18

    6. Resultados 19

    7. Conclusiones 197.1. Perspectivas de futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    A. Anexo: Modelo Simulink 22A.1. Mando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22A.2. Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    A.2.1. Control de r . . . . . . . . . . . . . . . . . . . . . . . . . . . 23A.2.2. Control de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    A.3. Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24A.3.1. Subsistema r- . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24A.3.2. Subsistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    A.4. Perturbaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25A.5. Animacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    B. Anexo: Funcion ctrKIFO 26

    3

  • 1. Introduccion

    El pendulo es, posiblemente, uno de los primeros sistemas que se analizan cuando unocomienza a estudiar fsica. Detras de su aparente sencillez, para el caso de oscilacionespequenas, se esconde un sistema que carece de solucion exacta para el caso general.

    Al or hablar de un pendulo la imagen que viene a la mente es la del pendulo de unreloj o el de Foucault. Sin embargo, en la vida cotidiana podemos observar el penduloen mas lugares: el deposito de agua transportado por un helicoptero que va a apagar unincendio o una bolsa de la compra que transportamos en la mano.

    Tambien es comun observar un pendulo en su posicion invertida o, dicho de otra forma,un pendulo que es controlado para permanecer en su posicion de equilibrio inestable.Un saltador de pertiga debe mantener su pendulo fsico, la pertiga, vertical mientras seaproxima a realizar el salto. Un gimnasta que esta haciendo el pino sobre una barra debecontrolar su cuerpo para mantenerlo en posicion invertida, de lo contrario realizara unmovimiento oscilatorio hasta alcanzar el equilibrio estable. Un transbordador espacialantes del despegue tambien hay que mantenerlo invertido, incluso para su traslado hastala lanzadera hay que controlar su posicion para que no caiga hacia el equilibrio estable.

    (a) (b) (c)

    Figura 1: ejemplos de pendulos invertidos: a) Segway, b) persona haciendo el pino, c)plataforma de transporte de un transbordador espacial.

    1.1. Objetivos

    Son muchos los trabajos que se pueden encontrar en internet sobre el pendulo inverti-do. Incluso algunos como Arduway o Balanduino que construyen pequenos robots cuyocomportamiento fsico es el que se estudia en este trabajo. Cada uno tiene unas carac-tersticas distintas: unos se mueven sobre ruedas, otros sobre railes, se usan distintastecnicas de control...

    En este trabajo el objetivo es la creacion de un simulador de un pendulo fsico inverti-do, para ello disenaremos un modelo matematico y un control que nos permitan simularel sistema, as como construir un entorno 3D y un mando que nos permita definir las

    4

  • senales de entrada de forma externa. Podremos as visualizar en la pantalla del ordena-dor, a tiempo real, como reacciona el sistema ante las senales que le enviamos. Ademas,se pueden cambiar las caractersticas del aparato, como tamano o masa, con el objetivode simular el comportamiento en el caso que se desee.

    La estructura final del proyecto debe contar con la simulacion del sistema, un con-trol por realimentacion, las entradas del sistema (senales del mando) y la animacion(representacion 3D de la salida):

    Figura 2: Esquema del proyecto.

    2. Metodologa

    2.1. Herramientas

    La realizacion de este trabajo se ha desarrollado, principalmente, en MATLAB ySimulink [1]. La gran cantidad de paquetes de MATLAB as como la facilidad que nosproporciona Simulink a la hora de simular sistemas han sido las razones por las que noshemos decantado por utilizar este software.

    El diseno de los controladores se ha hecho ntegramente en scipts de MATLAB mien-tras que la simulacion se ha realizado con Simulink. Para poder usar los datos recogidospor el Arduino1 [2] se ha usado el paquete de Simulink Arduino Support from Simulinkque nos permite usar los datos analogicos y digitales tomados por el Arduino, as comoenviar senales digitales o PWM. Ademas, con este paquete tambien se consigue obteneruna simulacion en tiempo real, es decir, podemos ver en la pantalla del ordenador elsistema que estamos controlando con un mando externo.

    Para el modelado 3D del sistema se ha usado vrbuild2, un programa con el que sepueden construir modelos 3D sencillos de forma rapida para despues animarlos con elpaquete de Simulink Simulink 3D Animation.

    1Los datos recogidos por el Arduino son los que usaremos como entrada del sistema y los introduciremosdesde un mando externo al ordenador.

    5

  • 2.2. Metodologa

    La realizacion de este trabajo se puede dividir en fases bien diferenciadas entre s. Encada una de ellas se ha actuado de la misma forma: realizar y verificar. Es decir, despuesde realizar cada seccion se comprueba su correcto funcionamiento; as como tambien sehacen pruebas despues de cada paso crtico o dudoso, para as encontrar el fallo lo masrapido posible. El orden seguido ha sido:

    1. Modelado del sistema

    Obtenemos un modelo matematico que describa el movimiento del sistema, usan-do el formalismo de Lagrange. Para verificar que el modelo obtenido es correctose comprueba que cuando sustituimos el momento de inercia, que caracteriza elpendulo fsico, por una masa M puntual se obtiene el mismo resultado que en eltrabajo de Marco Triverio [3]. Es decir, transformamos el sistema en un penduloideal. Tras esto realizamos una simulacion para comprobar que no hay ningun erroren la implementacion del sistema.

    2. Diseno del control

    Se disena el control y se estudia el seguimiento del sistema a senales de referencia;as se van probando controladores distintos hasta encontrar cual es el que mejorse adapta a nuestras necesidades.

    3. Diseno del mando con el que manejamos la simulacion

    La construccion del mando se realiza en primer lugar sobre una protoboard, paraas poder testar cada elemento del mando. Utilizando el paquete Matlab SupportPackage for Arduino Hardware verificamos el correcto funcionamiento de cadacomponente.

    4. Creacion y animacion del modelo 3D

    A la hora de aprender como construir y animar modelos 3D con simulink se hanrealizado algunos ejercicios previos a la creacion de nuestro sistema. Como porejemplo la animacion de un pendulo o un bloque que se desplaza. Ademas, en eltest del modelo 3D se ha usado el mando creado en el paso 3 para mover el aparato.

    5. Crear un modelo simulink que contenga sistema, control, mando y animacion.

    Finalmente juntamos todas las partes en un solo modelo simulink, en el cual yapodemos comprobar visualmente (en el modelo 3D) la respuesta del sistema ma-nejandolo desde el mando.

    3. Modelado y caractersticas del sistema

    El sistema del pendulo fsico sera modelado considerando un cuerpo solido (una ta-bla rectangular), de masa M , altura l, anchura W y grosor w (figura 3). Este sistema

    6

  • lo podemos ver como un pendulo fsico situado sobre una plataforma movil capaz detrasladarse y rotar, de forma que el movimiento pendular esta limitado a un plano, noes un pendulo esferico, y el desplazamiento se produce segun las coordenadas polares ry . Es decir, ademas de la oscilacion, el sistema puede moverse hacia delante y atras,as como rotar sobre s mismo. El movimiento de la plataforma se consigue por mediode un motor conectado a las 2 ruedas de la plataforma. Su cinematica se incluye en laseccion 5. Consideramos que la plataforma esta formada, unicamente, por la base delaparato, las ruedas y aquellos elementos presentes en el eje que las une y la masa totales m.

    (a) (b)

    Figura 3: a) esquema del sistema, b) vista en 3D del sistema.

    3.1. Modelado

    Para poder realizar una simulacion del sistema necesitamos conocer sus ecuacionesde movimiento. Para la obtencion de dichas ecuaciones utilizamos el formalismo deLagrange:

    L T U (1)

    d

    dt(L

    qj) ( L

    qj) = Qj (2)

    las coordenadas generalizadas qj del problema seran , r y (fig. 4). La variable caracteriza la posicion del pendulo ( = 0 pendulo invertido) y {r, } representan elmovimiento del aparato en coordenadas polares planas. Las fuerzas Qj seran aquellas queprovocan el movimiento del aparato, es decir, seran fuerzas en el sentido del movimiento:Fr y M

    2.Para la obtencion de T , energa cinetica, y U , energa potencial, dividimos el sistema

    en dos partes: el solido y las ruedas. De esta forma la parte del solido estara caracterizadapor un momento de inercia IS (para el giro del angulo ), I

    S (para ) y masa M , y las

    ruedas tendran momento IR y masa m, donde la masa m involucra todos los objetos cuyo

    2Es un momento de fuerza, pues lo que crea es un giro del sistema siguiendo el angulo .

    7

  • Figura 4: Coordenadas generalizadas a partir de las cuales construiremos el modelo ma-tematico.

    centro de masas estan en el eje de las ruedas y su tamano es suficientemente pequenocomo para no contribuir a IS. Tambien hacemos las aproximaciones:

    Las ruedas giran sin deslizar.

    La unica fuerza de rozamiento es del tipo bx.

    De esta forma obtenemos:

    T = TS + TR = TS,rot + TS,trans + TR,rot + TR,trans =

    =1

    2IS

    2 +1

    2I S

    2 +M

    2(r2 + l22 + 2lrcos) +

    1

    2(IRR

    +m)r2 (3)

    U = US + UR = Mglcos +mgR (4)

    Con esto obtenemos el lagrangiano3:

    L T U = 12IS

    2 +1

    2I S

    2 +M

    2(r2 + l22 + 2lrcos) +

    m

    2r2 MglcosmgR (5)

    Ecuaciones del movimiento:ddt

    (L

    ) L

    = (IS +Ml2) +Mlrcos Mglsin = 0

    ddt

    (Lr

    ) Lr

    = (M +m)r +Mlcos l2sin = Fr brddt

    (L

    ) L

    = I S = M(6)

    Es conveniente reescribir el sistema usando un vector de estados x:

    x = [r, r, , , , ]T (7)

    y la senal de entrada, o de control:

    u = [Fr,M]T (8)

    3Hemos hecho las aproximaciones: 1) m >> IRR y 2) l >> R.

    8

  • Podemos escribir x a partir del sistema 6 de forma que nos quedara:

    f(x, u) = x =

    r = r

    r =Frbr+Ml2sin gMl sincos

    M+mMlcos2

    =

    = g(M+m)sinFrcos+bcosrMl2sincos

    M+mMlcos2 =

    = FIS

    (9)

    donde = IS+Ml2

    Ml.

    De esta forma tenemos una ecuacion para cada variable del vector de estado. Aunquelas ecuaciones esten acopladas, esto facilitara la implementacion del sistema para susimulacion as como la linealizacion en torno a un punto de equilibrio.

    En 9 podemos distinguir dos subsistemas, uno con r y y otro para , que sonindependientes entre s. De forma que los podemos tratar como sistemas independientesuno con vector de estados xr, = [r, r, , ]

    T y otro con x = [, ]T .

    3.2. Puntos de equilibrio

    Los puntos de equilibrio que nos interesan, para linealizar el sistema, son aquellos entorno a los cuales = 0 y = 0. En las ecuaciones del movimiento (6) vemos que paraque esto se cumpla se debe cumplir, al menos, que el aparato este quieto, r = 0. Comola posicion r en la que se encuentra el sistema no afecta al equilibrio, y tanto como tampoco, las unicas condiciones que me faltara determinar son las de y las puedoobtener de la energa potencial, ecuacion 4 (representacion grafica en la figura 5).

    En = 0 hay un maximo, por tanto el punto x = [r, r = 0, = 0, = 0] es unequilibrio inestable. Por el contrario, el punto x = [r, r = 0, = pi, = 0] sera estable,pues es un mnimo de potencial.

    3.3. Linealizacion

    De la misma forma que en el estudio del pendulo simple se realiza una linealizacionen torno a = pi en este caso la haremos en torno a = 0. Este resultado sera utilizadopara el diseno del control.

    En un punto de equilibrio inestable, 0, por lo que se pueden hacer las aproxi-maciones cos = 1 y sin = y as tener un sistema lineal en torno al punto = 0. laforma usual de expresar el sistema linealizado es:

    x = A x+B uy = C x (10)

    donde x es el vector de estados, y la salida y u la senal de control.Para la obtencion de las matrices A y B hacemos el jacobiano de f respecto de x,

    para A, y de u, para B.

    9

  • 4 3 2 1 0 1 2 3 460

    40

    20

    0

    20

    40

    60

    (rad)

    U (en

    ergy)

    Energa potencial en funcin del ngulo

    Figura 5: En la grafica de la energa potencial podemos localizar facilmente que lospuntos = pi son equilibrios estables, mnimos, y en = 0 tenemos equilibrioinestable.

    A =[f(x,u)x

    ]x=xeq ,u=ueq ,

    , , B =[f(x,u)u

    ]x=xeq ,u=ueq

    (11)

    La matriz C determina que variables del vector de estados x tomamos como salidadel sistema, por lo que su eleccion la hacemos a mano.

    Como vimos en el apartado 3.1 que podemos dividir el sistema en dos subsistemas,haremos la linealizacion de los dos sistemas de forma independiente.

    Subsistema para r-Debemos hacer la linealizacion del sistema en torno al punto de equilibrio inestable

    [r, r = 0, = 0, = 0].rr

    =

    0 1 0 0

    0 bM+mMl

    Mlg(M+mMl

    )

    0

    0 0 0 1

    0 bMMl+m

    g(M+m)MlM+m 0

    rr

    +

    01

    M+mMl

    01

    MlM+m

    Fr

    yr =[1 0 0 0

    ] r

    = r(12)

    Subsistema para Este sistema es ya lineal y corresponde a un doble integrador con senal de control

    M:

    10

  • [

    ]=

    [0 10 0

    ] [

    ]+

    [0

    1/I S

    ]M

    y =[1 0

    ] [

    ]=

    (13)

    3.4. Analisis de la inestabilidad

    Nuestro objetivo es que el pendulo permanezca en la posicion de equilibrio inestable,para conseguirlo hay distribuciones de masa mas convenientes que otras. Es decir, estu-diaremos la energa potencial del sistema para distintos valores de M y m en funcion de buscando que la curvatura en = 0 sea lo menor posible.

    4 3 2 1 0 1 2 3 480

    60

    40

    20

    0

    20

    40

    60

    80

    100

    (rad)

    U (en

    ergy)

    U para distintas distribuciones de masa

    M = 2, m = 8M = 4, m = 6M = 6, m = 4M = 8, m = 2

    2 1.5 1 0.5 0 0.5 1 1.5 280

    60

    40

    20

    0

    20

    40

    60

    80

    (rad)

    U (en

    ergy/a

    ngle)

    U para distintas distribuciones de masa

    Figura 6: Analisis del punto de equilibrio inestable = 0 a partir del estudio de lacurvatura de la energa potencial U .

    Como observamos en la figura 6 cuanta mas masa colocamos en la parte inferior delaparato menor es la diferencia de energa potencial entre los puntos de equilibrio = piy = 0. Esto equivaldra a que la derivada U/ es, en valor absoluto, menor cuantamas masa coloquemos en la base del aparato. Si nos fijamos en la ecuacion 4 vemos quelo que realmente afecta a la disminucion de |U/| es la disminucion de la masa delsolido M , sin importar ni m ni el valor del radio.

    Un descenso de masa en el solido tambien conllevara un descenso de los momentosde inercia IS e I

    S, lo cual facilitara las rotaciones, facilitando as el control.

    En la practica esta distribucion de la masa habra que tenerla en cuenta a horade realizar el diseno de la maquina, colocando en el eje de las ruedas todos aquelloscomponentes pesados, como las bateras, y en la parte que corresponde al solido lossensores y demas componentes livianos. Ademas, como hemos visto en la ecuacion 4, elanadir peso en m casi no afectara.

    11

  • 3.5. Datos del sistema

    Tras las observaciones hechas anteriormente podemos escoger datos de M , m, l yR de forma que el sistema a controlar sea lo mas realista posible y cumpla con lasaproximaciones realizadas en el modelo, y a partir de estos datos obtener los momentosde inercia IS e I

    S.

    Los datos que daremos seran los propios de un pequeno robot en el que las ruedasson movidas por motores paso a paso (o servomotores) y en la parte superior tiene launidad de calculo (ej: un Arduino o Raspberry pi) y los sensores.

    M = msensores +mArduino 200gm = 2 mmotor +mbateria 500g

    l = 10cmW = 8cmw = 2cmIs =

    13Ml

    I s =13MW 2 M(W

    2)2 = 1

    12MW 2

    Suponemos que no hay rozamiento, b = 0, dado que la fuerza br contribuye, prin-cipalmente, a que el pendulo vaya perdiendo energa hasta pararse en una posicion deequilibrio estable al cabo de un tiempo t. Como el pendulo esta en posicion invertida estafuerza no es de gran relevancia. Aunque no consideremos este termino es conveniente serconscientes de su presencia, pues podra ser de ayuda para tener en cuenta rozamientosprovocados por el funcionamiento de los motores.

    4. Control

    El objetivo del control del sistema sera conseguir que el pendulo permanezca de formaestable en la posicion invertida a la vez que es capaz de seguir senales de referencia de r y. Tambien debemos introducir estimadores de estados para hacer una reconstruccion deaquellos estados para los cuales no es facil realizar una medida. Por tanto, el sistema debeser controlable y observable. Todo este estudio lo realizamos con la funcion ctrKIFO4,la cual ha sido expresamente disenada para esta labor.

    El diseno del control se hace para el sistema lineal, es decir, la linealizacion del sistemaque se hizo en la seccion 3.3. Al anadir al sistema, no lineal, un control disenado parael sistema linealizado en torno a = 0 hara que solamente en un entorno de = 0 elsistema podra ser controlado de forma que tienda a la posicion de equilibrio inestable.Tendremos un sistema lineal que, con el controlador, tiene un punto asintoticamenteestable que es = 0 y segun el primer metodo de Lyapunov: si la linealizacion de unsistema no lineal es asintoticamente estable, el sistema no lineal es astintoticmaneteestable. As que podemos usar el control lineal para controlar el sistema no lineal. Dado

    4Se puede ver el codigo de la funcion en el apendice B.

    12

  • esto, el sistema tendra dos puntos de equilibrio, cada uno con un dominio de atraccion: = 0 (asintoticamente estable) y = pi (marginalmente estable).

    4.1. Controlabilidad y observabilidad

    Antes de disenar un control debemos asegurarnos de que el sistema es controlable.Para ello ambos subsistemas deben cumplir la condicion:

    rank(Co) = rank[B AB A2B . . . An1B

    ]= n (14)

    Tambien debemos asegurar que, al menos, el sistema para es observable:

    rank(Ob) = rank

    CCACA2

    . . .CAn1

    = n (15)Ambos subsistemas son controlables y observables, cumplen las dos condiciones an-

    teriores.

    4.2. Diseno del controlador

    La estructura del controlador sera:

    u = K x+ F xref ki

    (y xref )dt (16)

    donde K es la realimentacion del vector de estados, F la accion feedforward y ki laaccion integral, la cual es proporcional a la integral de la senal de error.

    En este controlador la funcion de K es que el sistema tienda a la posicion de equilibrioinestable, pues se disena a partir del sistema linealizado en torno a dicho punto. La accionfeedforward F permite el seguimiento de una senal de referencia y la accion integral kiel rechazo a las perturbaciones. Tomando F = 0 y ki 6= 0 tambien conseguiriamos unseguimiento de una senal de referencia, pero de una forma mas lenta de como se consiguecon F .

    Ademas del controlador tambien es importante tener un metodo para poder estimaraquellos estados que, en la practica, no sean faciles de medir. Con la funcion ctrKIFOpodemos obtener una matriz L que nos permite estimar los estados:

    xen+1 =

    dt[A xen +B u+ L (y ye)] (17)

    Para establecer los autovalores que necesitamos introducir a la funcion ctrKIFO, lacual nos devuelve los parametros K, F , ki y L habiendolos calculado mediante el metodode Ackerman, usaremos el comando de matlab lqr (fig. 7). Este comando nos permitefijar los autovalores a partir de dos matrices Q y R. Son dos matices diagonales en las

    13

  • que la relacion entre los elementos representan cuanto puede variar la correspondientevariable de x frente a otro. R la podemos establecer como un numero, en lugar de unamatriz, para establecer as la magnitud de dicha variacion.

    Figura 7: Esquema de como se realiza el diseno del control.

    Al incluir la accion integral ki debemos ampliar el vector de estados, de forma queen Q anadimos una componente que da cuenta de la rapidez con la que el sistema serecupera de una perturbacion. Para incluir esto hay que ampliar las matrices A, B y C yasegurarse de que el sistema sigue siendo controlable y observable, que en nuestro casolo es.

    4.2.1. Control del subsistema r El subsistema linealizado de r y es contolable, incluyendo la accion integral. Por

    tanto podemos disenar un control que nos permita seguir senales de referencia de r (lasalida) sin alterar la condicion 0. La senal de referencia de r sera una funcion rampacuya pendiente es la velocidad a seguir por el aparato. No necesitamos que la velocidadsea muy alta, pues el aparato es de dimensiones reducidas, una velocidad de 2 o 3 m/ssera suficiente.

    Tenemos que ajustar Q de forma que le demos mas margen de variacion al elementocorrespondiente a la accion integral, para as conseguir un mejor seguimiento de la senalde referencia y rechazo de las perturbaciones.

    Qr =

    1 0 0 00 1 0 00 0 1 00 0 0 5

    Rr = 1 (18)

    En la figura 8 podemos comprobar como para el caso sin accion feedforward F = 0tenemos una senal de control mas pequena. Es cierto que se sigue la senal de referenciacon cierto error, pero el objetivo no es que alcance la posicion final sino que lo haga sinnecesitar grandes esfuerzos en el control. Al quitar F conseguimos la misma velocidadque tiene la senal de referencia y ademas evitamos la sobre-elongacion.

    14

  • 0 5 10 15 202

    0

    2

    4

    6

    8

    10

    12

    t (s)

    r (m

    )

    0 5 10 15 202

    1.5

    1

    0.5

    0

    0.5

    1

    1.5

    2

    2.5

    3

    t (s)

    F r (N

    )

    0 5 10 15 2015

    10

    5

    0

    5

    10

    15

    t(s)

    ()

    F 0F = 0referencia

    Figura 8: Comparacion del controlador de r usando accion feedforward y sin usarla, conuna perturbacion en t = 14s de 1,5N .

    4.2.2. Control del subsistema

    Al igual que en el caso de r aqu nuestro interes tambien sera que siga una senalde referencia del tipo rampa. Esta vez no tenemos ninguna variable (como en el casoanterior) que tenga que tender a 0 lo mas rapido posible, por tanto, podemos prescindirde la accion feedforward. De esta forma la senal de salida seguira a la referencia conun cierto retraso pero con la misma pendiente y evitando sobre-elongacion cuando seproduce un cambio en la referencia.

    Q =

    1 0 00 1 00 0 1

    R = 1/I S (19)

    0 5 10 15 2020

    0

    20

    40

    60

    80

    100

    120

    140

    160

    180

    200

    t (s)

    ()

    0 5 10 15 203

    2

    1

    0

    1

    2

    3

    4x 104

    t (s)

    M (N

    m)

    F 0F = 0referencia

    Figura 9: Comparacion del controlador de usando accion feedforward y sin usarla, conuna perturbacion en t = 14s de 0,2mN m.

    En la figura 9, de la comparacion entre F = 0 y F 6= 0 obtenemos las mismasconclusiones que para el caso anterior. Aunque s deberamos destacar que en este caso

    15

  • estamos usando un estimador de estados.

    4.3. Dominio de atraccion

    El hecho de que el sistema presente dos puntos de equilibrio estable hace que tengamosque buscar cuales son aquellos valores de [, ] para los cuales el sistema tiende a [ =0, = 0]. Para realizar este estudio hacemos simulaciones para distintos valores inicialesde [, ] y estudiamos para que valores el sistema tiende a [ = 0, = 0] y para cualeshay una oscilacion en torno a = pi.

    Para tener en cuenta el comporamiento de los motores se ha introducido la condicionde que |ur| = |Fr| < 2,5N . Esta limitacion de la senal de control hace que el dominio deatraccion de = 0 se vea reducido, respecto al caso sin limitacion.

    25 20 15 10 5 0 5 10 15 20 25200

    150

    100

    50

    0

    50

    100

    150

    200

    ()

    d (/

    s)

    Simulaciones para distintos valores iniciales de y d

    0 pi

    Figura 10: Simulaciones realizadas para distintos valores iniciales de y . En azul estanrepresentados aquellos puntos iniciales para los cuales 0 y en negro pi. Las dos lneas rojas son una aproximacion del dominio de atracciondel punto = 0.

    En la figura 10 podemos ver cuales son los puntos iniciales correspondientes al dominiode atraccion de cada uno de los dos puntos de equilibrio. Vemos que si tenemos un < 0siempre se puede encontrar un valor de > 0 para el cual se controle el sistema. En lapractica no tendremos grandes valores de por lo que el resultado mas interesante esque cuando 0, para poder atraer al pendulo hacia la posicion invertida, debemostener || < 17o.

    16

  • 4.4. Manipulacion de la senal de referencia

    Para poder hacer cambios de la senal de referencia o, lo que es lo mismo, tener uncontrol sobre el movimiento del aparato se ha construido un mando (fig. 13a) que nospermite manipular la rampa de las senales de referencia y r. El mando consta dedos botones, que nos permiten indicar si gira en sentido horario o antihorario, unpotenciometro, que nos permite establecer la velocidad de variacion de la referencia der y dos botones secundarios para introducir perturbaciones.

    El mando esta conectado a un Arduino MEGA (fig. 13b), de forma que podemossaber cual es el estado de los pulsadores o la resistencia del potenciometro mientras lasimulacion esta corriendo. Es decir, manipulamos las senales de referencia a tiempo real,pudiendo as visualizar en la pantalla del ordenador la respuesta que tiene el sistema.

    La manipulacion de r esta basada en un divisor de tension constituido por un poten-ciometro lineal y una resistencia (figura 11) . De esta forma podemos tomar medidas deVout y obtener una variable lineal Rpotenciometro:

    Rpotenciometro =5V RVout

    R (20)

    Figura 11: divisor de tension para los cambios de rref .

    A cada valor de Rpotenciometro se le asocia una velocidad, de la forma:

    0 2000 4000 6000 8000 100002

    1.5

    1

    0.5

    0

    0.5

    1

    1.5

    2

    Resistencia ()

    velo

    cida

    d (m

    /s)

    Relacin entre posicin del potencimetro y velocidad

    Figura 12: correspondencia entre la resistencia del potenciometro y rref , estableciendouna velocidad maxima de 2m/s.

    La asignacion para la variacion de ref se establece con el algoritmo:

    if (boton 1 = 0) and (boton 2 = 0) thenv = 0

    17

  • else if (boton 1 = 1) and (boton 2 = 1) thenv = 0

    else if (boton 1 = 1) and (boton 2 = 0) thenv = +1

    else if (boton 1 = 0) and (boton 2 = 1) thenv = 1

    end if

    Con esta dinamica no toma esta velocidad inmediatamente sino que, como vemosen la figura 9 la senal vara hasta alcanzar la pendiente deseada, no se produce unaaceleracion infinita.

    (a) (b)

    Figura 13: a) Mando con el que se controla el movimiento del aparato, con los botonespara , potenciometro para r, perturbaciones e indicadores de pulsado y velo-cidad. b) Arduino MEGA al cual conectamos el mando para tomar medidasy realizar la simulacion.

    5. Animacion

    Para verifcar que el comportamiento del sistema controlado es natural, no realizamovimientos extranos, se ha creado un modelo en 3D (figuras figuras 3b y 14). De estaforma podemos visualizar el comportamiento del sistema de una forma mas clara a lasgrafcas, la informacioon cualitativa que obtenemos es mas facil de interpretar.

    En este modelo se incluye tanto la dinamica del solido como el movimiento de lasruedas:

    rueda =r

    R W

    2R(21)

    El movimiento de las ruedas sera tal que la velocidad de rotacion de ambas sera igualpara el caso r 6= 0 y = 0. Mientras que cuando hay giros del aparato, 6= 0, tendremos

    18

  • que las dos ruedas giraran con distinta velocidad, aparecera el momento de fuerza M.En el caso r = 0 y 6= 0 tendremos que ambas ruedas giran a la misma velocidad perosentido contrario. Este comportamiento puede ser usado para modelar el comportamientoque deben tener los motores para fabricar el aparato.

    6. Resultados

    Tras la realizacion de este proyecto tenemos un modelo 3D que podemos controlar conun mando y as observar los resultados de la simulacion (fig. 14). As podemos comprobarcomo:

    Al variar la velocidad de r hay una fuerza que inclina el pendulo y cambia ,mientras que cuando r es constante el pendulo esta vertical.

    no se inclina hacia el mismo lado en aceleraciones que en deceleraciones.

    Al introducir perturbaciones se observa como hay una oscilacion de en torno ala vertical hasta que alcanza el equilibrio, viendo tambien como hay un pequenodesplazamiento de la base del pendulo, con un movimiento de las ruedas, paraequilibrar el sistema.

    Podemos introducir cambios bruscos en rref y dar perturbaciones para que elaparato pierda el equilibrio y llevarlo hasta el dominio de atraccion de = 0, dondeobservaramos que el sistema empieza a girar en torno al equilibrio marginalmenteestable de = pi.

    Si observamos nos damos cuenta inmediatamente de que se produce una aceleracionhasta alcanzar la velocidad de giro que le introducimos como referencia. As como al in-troducir una perturbacion vuelve hacia la posicion pre-perturbacion sin realizar ningunasobre-elongacion, pues tomamos F = 0 (accion feedforward).

    7. Conclusiones

    Tras la realizacion de este proyecto hemos visto la facilidad que nos aporta la ani-macion del modelo 3D para interpretar los resultados. Tambien, el poder introducirmanualmente senales de referencia con el mando nos permite estudiar de forma rapidael comporamiento del aparato para distintas entradas, haciendo falta una sola ejecuciondel programa. En cuanto al control, hemos visto que es conveniente anular la accionfeedforward, F = 0.

    Se puede utilizar el programa creado para este proyecto usando distintos valores delas masas M y m, as como distintos tamanos. De esta forma podemos usar este proyectopara simular el sitema antes de su construccion, teniendo en cuenta las caractersticasque tendra (masa de los motores, masa de las bateras, tamano del solido, ...). El controlesta disenado de forma que no se necesite una gran modificacion cada vez que se cambian

    19

  • Figura 14: Resultado final del proyecto. Se puede ver tanto el modelo 3D como el mandoen uso y un grafico con la trayectoria seguida por el aparato. En https://youtu.be/xbRvnQqu24A esta disponible la grabacion de una prueba delsistema.

    los parametros del sistema (ecuaciones 18 y 19), aunque s sera conveniente realizarpequenas modificaciones para aprovechar al maximo la potencia de los motores.

    7.1. Perspectivas de futuro

    Tras la realizacion de este trabajo queda abierta la posibilidad de la construcciondel sistema. Previo a la construccion habra que estudiar el comportamiento de motorespaso a paso o servomotores para incluirlos en la simulacion, pues la senal de control laproporcionan ellos.

    Figura 15: Propuesta de obtencion del vector de estados xr mediante un giroscopo yun acelerometro.

    Tambien deberamos obtener de forma experimental el vector de estados, para as co-

    20

  • nocer la posicion del aparato (fig. 15). Con un acelerometro, colocado en el eje de lasruedas para que as la medida no este influida por las oscilaciones del solido, podemosobtener la aceleracion r del aparato y mediante integracion llegamos a r y r. Para laobtencion del angulo se podra usar un giroscopo, que nos proporciona velocidad an-gular, y tendramos una medida de y, mediante integracion, . El vector de estadosx lo podemos estimar, como ya hemos hecho en este trabajo, o tambien lo podramosmedir con el giroscopo.

    Algunos de los problemas que habra que resolver para conseguir el funcionamientodel sistema real son:

    Como para obtener algunas de las variables hay que integrar necesitamos que losvalores iniciales de la integracion sean los correctos, para poder tomar como = 0la vertical y r el reposo.

    Problemas de ruido en la medida y sensibilidad de los sensores. La senal quemidamos siempre tendra un margen de ruido y no tendremos infinita precision,por lo que debemos ser conscientes de ello.

    Tiempo de muestreo e intervalo de integracion. La frecuencia con la que se tomanlos datos, as como la velocidad a la que se realizan las operaciones para el calculode la senal de control, deben tenerse en cuenta para introducir un controladordiscreto adecuado.

    21

  • A. Anexo: Modelo Simulink

    En este anexo se muestran los elementos principales que componen el modelo simulinkrealizado en este trabajo. En dicho modelo estan presentes las partes correspondientesa la simulacion, control, mando y animacion.

    Figura 16: Estructura general del modelo Simulink. Equivalente al diagrama de la figura2, donde los bloques mando y perturbaciones son las entradas del sistema.

    A.1. Mando

    Figura 17: Modelo Simulink del mando con el que obtenemos las senales de referencia.Los bloques velocidad phi y velocidad r establecen la relacion entre la senalque llega del Arduino (estado de los interruptores y potenciometro) y unavelocidad de referencia, esta relacion esta hecha tal y como se explica en laseccion 4.4. El bloque medida >R tiene implementada la ecuacion 20.

    22

  • A.2. Control

    Figura 18: Como vimos en la ecuacion 9 podemos diferenciar el sistema en dos subsiste-mas, uno para r y otro para , por lo que disenamos un control distintopara cada uno.

    A.2.1. Control de r

    Figura 19: Implementamos un controlador como el descrito por la ecuacion 16.

    A.2.2. Control de

    Figura 20: Implementamos un controlador como el descrito por la ecuacion 16 y anadi-mos una estimacion del vector de estados del sistema realizada a partir de lamatriz L, tambien mencionada en la seccion 4.2.

    23

  • A.3. Sistema

    Figura 21: Como vimos en la ecuacion 9 podemos diferenciar el sistema en dos subsis-temas, uno para r y otro para . Por tanto podemos implementar lasecuaciones para la simulacion de cada uno de los subsistemas por separado,pues no estan acoplados entre s.

    A.3.1. Subsistema r-

    Figura 22: Como imput de este bloque tengo la senal de control y las perturbacionesque introduzca al sistema. En derivadas segundas se implementan r y de 9y por integracion obtenemos el vector de estados de este subsistema: xr =[r, r, , ].

    A.3.2. Subsistema

    Figura 23: Como vimos en el subsistema para es un sistema linal, por lo que lo podemossimular directamente como tal.

    24

  • A.4. Perturbaciones

    Figura 24: Las perturbaciones las introducimos pulsando un boton, cuando este pulsadotendremos un 1 y cuando no un 0. Este valor se multiplicara por 1,5 paraque el valor de la perturbacion sea comparable a la senal de control y as po-damos observar como el sistema se desestabiliza y se vuelve a estabilidar. Laperturbacion de tiene exactamente la misma estructura.

    A.5. Animacion

    Figura 25: El objetivo de esta parte del modelo Simulink es reproducir de la maneramas fiel posible los resultados de la simulacion en el modelo 3D. Para ellonecesito el vector de estados [r, r, , , , ] pues represento tanto la posiciondel solido r, , como la dinamica de las ruedas dada por la ecuacion 21 eimplementada en RUEDAS ROTACION.

    25

  • B. Anexo: Funcion ctrKIFO

    function [K,Ki,L,F,Gc,Glc] = ctrKIFO(A,B,C,pc,po,pi)

    % Diseno de un controlador por realimentacion del vector de estado

    % con integracion, accion directa y observador.

    % Par\ametros de entrada:

    % * A, B, C: matrices del sistema (se supone D=0)

    % * pc: autovalores para diseno del controlador (vector columna)

    % * po: autovalores para diseno del observador (vector columna)

    % * pi: autovalores para diseno del integrador (vector columna)

    % si pi no se especifica, o es el conjunto vacio, no se

    % introduce accion integral.

    % Parametros de salida son:

    % * K: ganancia de realimentacion del vector de estado

    % * Ki:ganancia del integrador

    % * L: ganancia del observador

    % * F: accion directa

    % * Gc: control de realimentacion con dos entradas Y, Xr

    % en variables de estado

    % * Glc: sistema en lazo cerrado $$ Glc = Y/R $

    D = 0;

    % CASO 1, sin accion integral

    if isempty(pi) == 1 % No hay accion integral

    co = ctrb( A, B); % Matriz de controlabilidad

    ob = obsv( A, C); % Matriz de obserabilidad

    n = size( A, 1);

    if (rank(co) == n) && (rank(ob) == n)

    fprintf(Sistema Controlable y Observable\n)

    K = acker( A, B, pc );

    F = 1/( C*inv( - A + B*K )*B );

    L = acker(A, C, po);

    Ki = 0;

    Gc = ss([A-B*K-L*C,-B*Ki;0*C,0],[L,B*F;1,-1],[K,Ki],[0,F]);

    Glc = ss([A-B*K,-B*Ki;C,0],[B*F;-1],[C,0],0);

    Gc = tf(Gc); Glc = tf(Glc);

    Ki = [];

    elseif (rank(co) ~= n) && (rank(ob) == n)

    fprintf(Sistema NO Controlable pero Observable\n)

    K = []; Ki = []; L = []; F = []; Gc = []; Glc = [];

    elseif (rank(co) == n) && (rank(ob) ~= n)

    fprintf(Sistema Controlable pero NO Observable\n)

    K = []; Ki = []; L = []; F = []; Gc = []; Glc = [];

    26

  • elseif (rank(co) ~= n) && (rank(ob) ~= n)

    fprintf(Sistema NO Controlable y NO Observable\n)

    K = []; Ki = []; L = []; F = []; Gc = []; Glc = [];

    end

    end

    % CASO 2, con accion integral

    if isempty(pi) == 0 % Hay accion integral

    Ab = [ A, zeros(size(A,1),1); C, 0];

    Bb = [B; 0];

    co = ctrb( Ab, Bb);

    ob = obsv( A, C); % Matriz de obserabilidad

    n_co = size( Ab, 1); n_ob = size( A, 1);

    if (rank(co) == n_co) && (rank(ob) == n_ob)

    fprintf(Sistema Controlable y Observable\n)

    Kb = acker( Ab, Bb, [ pc, pi] ); % La ultima componente es Ki.

    K = Kb( 1, 1:n_co-1);

    Ki = Kb( 1, n_co);

    F = 1/( C*inv( - A + B*K )*B );

    L = acker(A, C, po);

    Glc = tf( ss( [ A, -B*K, -B*Ki; L*C, A - B*K - L*C, -B*Ki; C, 0*C, 0],...

    [ B*F; B*F; -1], [ C, 0*C, 0], D) );

    Glc = minreal(Glc);

    Gcr = ss( [A - B*K - L*C, -B*Ki; 0*C, 0 ], [L, B*F; 1, -1], [ K, Ki],...

    [ 0, F]);

    Gc = tf( Gcr(1) );

    elseif (rank(co) ~= n_co) && (rank(ob) == n_ob)

    fprintf(Sistema NO controlable \n)

    K = []; Ki = []; L = []; F = []; Gc = []; Glc = [];

    elseif (rank(co) == n_co) && (rank(ob) ~= n_ob)

    fprintf(Sistema NO observable \n)

    K = []; Ki = []; L = []; F = []; Gc = []; Glc = [];

    else

    fprintf(Sistema NO Controlable y NO Observable\n)

    K = []; Ki = []; L = []; F = []; Gc = []; Glc = [];

    end

    end

    27

  • Referencias

    [1] MATLAB, the language of thecnical computing. Disponible en http://es.mathworks.com.

    [2] Arduino Website. Disponible en http://www.arduino.cc.

    [3] Marco Triverio. Progetto e Implementazione del Sistema di Controllo per un PendoloInverso. Tesi di Laurea. Politecnico di Milano, 2008.

    [4] A. Hacar Gonzalez, F. Revuelta Pena, I. Saeta Perez, P. Garca Corzo y E. Ma-cia Barber. Mecanica Lagrangiana. Alqua. Version 0.10.1, Disponible en http://alqua.tiddlyspace.com/.

    [5] K. J. Astrom y R. M. Murray. Feedback systems: an introduction for scientists andengineers. Princeton University Press, 2010.

    [6] E. Aranda Escolastico. The Inverted Pendulum: Control and Sampling Strategies.Trabajo Fin de Master. UNED, 2014.

    [7] A. Hernandez Largacha, M. Legaspi Martnez y J. Pelaez Martn. Control Inte-ligente de un Pendulo Invertido. Proyecto de Sistemas Informaticos. UniversidadComplutense de Madrid, 2012.

    [8] N. Khaled. Virtual Reality and Animation for MATLAB R and Simulink R Users:Visualization of Dynamic Models and Control Simulations. Springer Science & Bu-siness Media, 2012.

    [9] J. M. de la Cruz. Lecciones sobre Sistemas Dinamicos y Realimentacion. Universi-dad Complutense de Madrid, 2014

    28

    IntroduccinObjetivosMetodologaHerramientasMetodologa

    Modelado y caractersticas del sistemaModeladoPuntos de equilibrioLinealizacinAnlisis de la inestabilidadDatos del sistema

    ControlControlabilidad y observabilidadDiseo del controladorControl del subsistema r-Control del subsistema

    Dominio de atraccinManipulacin de la seal de referencia

    AnimacinResultados

    ConclusionesPerspectivas de futuro

    Anexo: Modelo SimulinkMandoControlControl de r-Control de

    SistemaSubsistema r-Subsistema

    PerturbacionesAnimacinAnexo: Funcin ctrKIFO