Diseño e implementación de un control - Repositorio...

104

Transcript of Diseño e implementación de un control - Repositorio...

Diseño e implementación de un controlóptimo LQR con la tarjeta Raspberry Pi

Leidy Tatiana Poveda GalvisJosé David Martínez Velasco

Director:Ing. MsC Frank Nixon Giraldo Ramos

Trabajo de grado para optar por el título deIngeniero en Control

Bogotá, Colombia2016

La concepción y culminación de este proyecto contiene el aportede muchas personas que a su manera contribuyeron,

por lo tanto es menester dedicar este proyecto a una personaespecial, el profesor Frank Giraldo que siempre procuró educarnos

para la vida.

Agradecimientos1

Tatiana Poveda

A mi familia que siempre me apoyó y valoró mi preparación a pesar de las adversida-des, en especial a mi hermano que supo darme su apoyo cuando más necesario fue.

A los programas educativos de gobierno que permiten la inclusión social, consideran-do que hay muchas cosas por mejorar, haber sido formada por dicho sistema me llenade orgullo y satisfacción.

José Martínez

A todas la personas que en mi proceso de formación me fortalecieron intelectual yanímicamente para culminar mis estudios de pregrado.

En especial a mi Madre y mis hermanos que con sus consejos y ejemplo me prepararoncon humildad y dedicación para enfrentar la vida. A mi padre que por su forzadaausencia forjó en mi, el carácter y la convicción de seguir adelante para poder logramis objetivos y sueños.

A Tatiana Poveda mi compañera de proyecto y amiga, agradecimientos especiales porque con su ayuda y dedicación este proyecto culmina satisfactoriamente.

1Documento diseñado en LATEX versión 2.1.4.

Resumen

En este documento se describen las implicaciones prácticas y teóricas que supone lainvestigación correspondiente al diseño e implementación de un control óptimo LQR(Lineal Quadratic Regulator) en la tarjeta Raspberry Pi, esta técnica de control se aplicaa una plataforma Stewart, identificada previamente.

La planta a la cual se le implementaron las técnicas de control concernientes a esteproyecto (LQR y PID -Proporcional, Integral, derivativo-) es un sistema bola y platomontado sobre una plataforma Stewart, cuyo diseño mecánico y ensamble fue llevadoa cabo por los autores. Este dispositivo se encuentra clasificado entre los robots parale-los debido a que cuenta con seis brazos ubicados en diferentes puntos de la plataforma,estos tienen la función de soportarla y proporcionarle movilidad. Cada extremidad es-tá unida a un actuador (servomotor en este caso) dispuesto allí con el fin de proveerlos seis grados de libertad que la caracterizan y así variar su inclinación y rotación.

La plataforma Stewart se controla con 2 técnicas de control: LQR y PID, esto con el finde determinar con cuál de las dos se obtienen mejores resultados después de evaluarparámetros propios de la curva de reacción de la planta, tales como: máximo sobreim-pulso, tiempo de estabilización, error de estado estacionario y robustez (en el caso delcontrol óptimo).

Como el título del proyecto lo especifica, tanto el desarrollo de las estrategias de con-trol como la obtención de datos provenientes de la planta son ejecutados y procesadosmediante la tarjeta Raspberry pi modelo B+, manejada con el lenguaje de programa-ción Python cuyas líneas de código se ejecutan a través del sistema operativo Raspbian.Python cuenta con diferentes compiladores compatibles con Raspbian, este último seinstaló sobre la tarjeta con el fin de controlar el módulo GPIO para así generar y recibirseñales que se producen al implementar los algoritmos de control.

Palabras clave: Python, Raspberry Pi, bola y plato- Plataforma Stewart, estrategias decontrol.

Abstract

In this work we will describe the practices and theoretical implications about the cor-responding investigation for optimal control LQR design and implementation ( linealquadratic regulator) in the raspberry pi card, this technique of control for a Stewartplatform, it was previously simulated and identified. The plant which was imple-mented control techniques according to this project ( LQR and PID- proportional, in-tegral and derivate controller) it is a ball and plant system put in a stewart platform,which mecanic and assembly design was made by the authors. This device is consid-ered among the parallel robots because it has six arms located at different points ofthe platform, these have the function to support and give mobility . Each terminal isconnected to an actuator (servomotor in this case) provided there in order to providesix degrees of freedom which characterize it and vary its inclination and rotation.

The Stewart platform is controlled by two techniques LQR and PID with the purposeof deciding which one has better results evaluating own parameters of the reactioncurve plant. Such as overshoot, stabilization time, steady – state error and sturdiness(in the case of optimal control).

As the project title specified, the development of control strategies as obtaining datafrom the plant were executed and processed by the raspberry pi card model B+ throughprogramming language Python its lines of Code are executed through the raspbianoperation system.

Python has different compatible compilers With raspbian, the last one was installed onthe card in order to control the GPIO module to generate and receive signals producedby implementing control algorithms.

Keywords: Python, raspberry pi, ball and plate- Stewart platform, control Strategies.

Contenidos

CAPÍTULO 1—PRELIMINARES

1.1 INTRODUCCIÓN . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 METODOLOGÍA DE DESARROLLO . . . . . . . . . . . . . . . . . . . 4

1.4 TARJETA DE DESARROLLO: RASPBERRY PI . . . . . . . . . . . . . . . . 6

1.4.1 Lenguaje de programación Python 2.0 . . . . . . . . . . . . . . . . . 7

1.4.2 Uso del módulo GPIO . . . . . . . . . . . . . . . . . . . . . . 8

1.4.3 Módulo externo ADC . . . . . . . . . . . . . . . . . . . . . . 9

CAPÍTULO 2—PLANTA SELECCIONADA

2.1 PLATAFORMA STEWART UN ROBOT PARALELO . . . . . . . . . . . . . . 11

2.2 DISEÑO Y ENSAMBLE PLATAFORMA STEWART . . . . . . . . . . . . . . 12

2.3 CINEMÁTICA DE LA PLATAFORMA STEWART . . . . . . . . . . . . . . . 17

2.4 APLICACIÓN DE LA CINEMÁTICA DE LA PLATAFORMA STEWART . . . . . . . 28

2.5 BOLA Y PLATO . . . . . . . . . . . . . . . . . . . . . . . . . . 33

CAPÍTULO 3—CONTROL PID

3.1 GENERALIDADES . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.2 DISCRETIZACIÓN DE LA ESTRATEGIA DE CONTROL . . . . . . . . . . . . 42

3.3 ALGORITMO DE CONTROL IMPLEMENTADO . . . . . . . . . . . . . . . 43

3.4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.4.1 Experimento . . . . . . . . . . . . . . . . . . . . . . . . . 45

I

CAPÍTULO 4—CONTROL LQR

4.1 GENERALIDADES . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.1.1 Controlabilidad . . . . . . . . . . . . . . . . . . . . . . . . 53

4.1.2 Observabilidad . . . . . . . . . . . . . . . . . . . . . . . . 54

4.1.3 Selección de las matrices [Q] y [R] . . . . . . . . . . . . . . . . . . 54

4.2 OBSERVADORES DE ESTADO . . . . . . . . . . . . . . . . . . . . . 55

4.3 IMPLEMENTACIÓN LQR . . . . . . . . . . . . . . . . . . . . . . 56

4.3.1 Optimización de la ley de control . . . . . . . . . . . . . . . . . . 57

4.3.2 Formulación del observador de estados . . . . . . . . . . . . . . . . 58

4.4 CÓDIGO LQR EN PYTHON . . . . . . . . . . . . . . . . . . . . . 59

4.5 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . 61

CAPÍTULO 5—COMPARACIÓN DE RESULTADOS

5.1 ESTRATEGIAS DE CONTROL PID Y LQR . . . . . . . . . . . . . . . . 65

5.2 MEJORES RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . 66

CAPÍTULO 6—CONCLUSIONES

A. Comunicación SSH 69

A.1 CONEXIÓN SSH . . . . . . . . . . . . . . . . . . . . . . . . . 69

A.1.1 Establecer ip estática en el computador . . . . . . . . . . . . . . . . 70

A.1.2 Establecer ip estática en la Raspberry Pi . . . . . . . . . . . . . . . . 70

A.1.3 Establecer conexión entre los dispositivos . . . . . . . . . . . . . . . 71

A.2 USAR GESTOR DE ARCHIVOS CON SSH . . . . . . . . . . . . . . . . . 71

A.3 PROBLEMAS CONOCIDOS . . . . . . . . . . . . . . . . . . . . . . 73

B. Aclaraciones matemáticas 75

B.1 IDENTIDAD SUMA DE SENO Y COSENO . . . . . . . . . . . . . . . . . 75

C. Condiciones físicas de la planta 77

C.1 MEDICIÓN DE LAS PARTES DE LA PLATAFORMA . . . . . . . . . . . . . . 77

C.2 PWM NECESARIO PARA CADA SERVOMOTOR . . . . . . . . . . . . . . 77

BIBLIOGRAFÍA

II

Índice de Figuras

1.1. Diagrama de bloques para el control del sistema bola y plato montado sobreuna plataforma Stewart [Autores]. . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2. Diagrama de bloques metodología de desarrollo [Autores]. . . . . . . . . . . 4

1.3. Diagrama esquemático de la Raspberry Pi [Autores]. . . . . . . . . . . . . . 7

1.4. Diagrama esquemático del puerto GPIO Raspberry Pi modelo B [Autores]. 9

2.1. Estructura física plataforma Stewart [Autores]. . . . . . . . . . . . . . . . . . 12

2.2. Dimensiones y estructura del servo motor SG90 [Autores]. . . . . . . . . . . 13

2.3. Pares de servomotores, posición inicial [Autores]. . . . . . . . . . . . . . . . 14

2.4. Vista isométrica de la pantalla táctil resistiva [Autores]. . . . . . . . . . . . . 15

2.5. Salidas de la pantalla táctil resistiva de 4 hilos, cada punto representa unhilo [Autores]. (a) Medida de la resistencia fija. (b) Configuración para leerla coordenada y. (c) Configuración para leer la coordenada x. . . . . . . . . . 16

2.6. Diagrama de Cuerpo libre para el i−ésimo brazo [1]. . . . . . . . . . . . . . 18

2.7. Rotación. (a) Con respecto al eje z. (b) Con respecto al eje y. (C) Con respectoal eje x. Figura basada en [1] página 1. . . . . . . . . . . . . . . . . . . . . . . . 19

2.8. Representaciones gráficas de la rotación del servomotor. (a) Hélice del i−ésimoservomotor anclada al i−ésimo brazo rígido S. (b) Representación cinemá-tica del recorrido de la hélice del servomotor anclada a S. Figura basada en[1] página 3 y [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.9. Recorrido angular de la hélice del servomotor con respecto a los tres ejescoordenados x, y y z. Figura basada en [1] páginas 4 y 5. . . . . . . . . . . . . . 23

2.10. Disposición física de cada par de servomotores [Autores]. . . . . . . . . . . . 26

2.11. Diagrama de bloques cinemática inversa plataforma Stewart [Autores]. . . . 28

III

2.12. Distribución espacial en las placas superior e inferior de la plataforma Ste-wart [Autores]. (a) Medición de los ángulos β. (b) Ubicación de los motoresen la placa base. (C) Ubicación de las junturas en la placa superior. . . . . . 30

2.13. Sistema bola y plato acoplado a plataforma Stewart [Autores]. . . . . . . . . 34

3.1. Diagrama de bloques control PID proceso [Autores]. . . . . . . . . . . . . . . 40

3.2. Caracterización grafica de los parámetros de desempeño para una curva dereacción (grafica basada en [3] capitulo 4 página 151). . . . . . . . . . . . . . 42

3.3. (a) Curva de reacción para las constantes de control kpxy = −0, 092, kixy = 0y kdxy = −0, 76. (b) Recorrido de la esfera en la superficie de la placa móvil. 46

3.4. (a) Curva de reacción para las constantes de control en x con valores kpx =−0, 04, kix = 0 y kdx = −0, 76 y las constantes de control en y de valoreskpy = −0, 1, kiy = 0, kdy = −0, 25. (b) Recorrido de la esfera en la superficiede la placa móvil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.5. (a) Curva de reacción para las constantes de control en x con valores kpx =−0, 92, kix = 0, 001 y kdx = −0, 76 y las constantes de control en y de valoreskpy = −0, 92, kiy = 0,001, kdy = −0, 76. (b) Recorrido de la esfera en lasuperficie de la placa móvil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.6. (a) Curva de reacción para las constantes de control en x con valores kpx =−0, 92, kix = −0, 001 y kdx = −0, 76 y las constantes de control en y devalores kpy = −0, 92, kiy = −0,001, kdy = −0, 76. (b) Recorrido de la esferaen la superficie de la placa móvil. . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.7. (a)Curva de reacción para las constantes de control en x con valores kpx =−0, 04, kix = 0 y kdx = 0, 74 y las constantes de control en y de valoreskpy = −0, 1, kiy = 0, kdy = 0, 0022. (b) Recorrido de la esfera en la superficiede la placa móvil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.8. Mejor respuesta del controlador PID para el proceso plataforma Stewart-bola y plato (a)Curva de reacción para las constantes de control en x convalores kpx = −0, 065, kix = −0, 001 y kdx = −0, 82 y las constantes decontrol en y de valoreskpy = −0, 065, kiy = −0, 001 y kdy = −0, 82 (b)Recorrido de la esfera en la superficie de la placa móvil. . . . . . . . . . . . . 50

4.1. Diagrama de bloques control LQR proceso [Autores]. . . . . . . . . . . . . . 51

4.2. Control LQR con realimentación de estados.(a) Topología control LQR (sinrealimentación a la salida). (b) Control LQR y observador de estados [4]. . . 56

4.3. (a) Curva de reacción para valores de la matriz de constantes de controlk11 = 1, k12 = 1, 414, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 1, k24 = 1, 414.(b) Recorrido de la esfera en la superficie de la placa móvil. . . . . . . . . . . 62

IV

4.4. (a) Curva de reacción para valores de la matriz de constantes de controlk11 = 13, 41, k12 = 5, 18, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 13, 41,k24 = 5, 18. (b) Recorrido de la esfera en la superficie de la placa móvil. . . . 62

4.5. (a) Curva de reacción para valores de la matriz de constantes de controlk11 = 38, 72, k12 = 8, 806, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 38, 72,k24 = 8, 806. (b) Recorrido de la esfera en la superficie de la placa móvil. . . 63

4.6. (a) Curva de reacción para valores de la matriz de constantes de controlk11 = 42, 42, k12 = 9, 211, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 42, 42,k24 = 9, 211. (b) Recorrido de la esfera en la superficie de la placa móvil. . . 64

A.1. Ventana de conexiones de red Ubuntu [Autores]. . . . . . . . . . . . . . . . . 70

A.2. ip estática configurada [Autores]. . . . . . . . . . . . . . . . . . . . . . . . . 71

A.3. Ventana para conectar a un servidor [Autores]. . . . . . . . . . . . . . . . . . 72

A.4. Ventana para introducir la dirección del servidor con el que se quiere esta-blecer conexión [Autores]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

A.5. Ventana para seleccionar el servidor con el que se quiere establecer conexión[Autores]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

B.1. Triángulo para deducción de la identidad [Autores]. . . . . . . . . . . . . . 75

C.1. Medidas del brazo y de la leva de la plataforma. (a) Longitud del i-ésimobrazo rígido. (b) Longitud de la leva del i-ésimo servomotor medida desdela unión leva–motor [Autores]. . . . . . . . . . . . . . . . . . . . . . . . . . . 78

C.2. Gráficas de funcionamiento de cada servomotor con respecto a la señalPWM necesaria para producir un movimiento angular específico [Autores].(a) Servomotor 1. (b) Servomotor 2. (c) Servomotor 3. (d) Servomotor 4. (e)Servomotor 5. (f) Servomotor 6 [Autores]. . . . . . . . . . . . . . . . . . . . . 79

V

Capítulo

1 Preliminares

CONTENIDOS DEL CAPÍTULO

1.1 INTRODUCCIÓN

1.2 OBJETIVOS

1.3 METODOLOGÍA DE DESARROLLO

1.4 TARJETA DE DESARROLLO: RASP-BERRY PI

En este capitulo se describen aspectos previos que son de necesaria comprensión antesde la realización de los algoritmos de control en la tarjeta de desarrollo. Así mismo esimprescindible conocer cuáles son los objetivos y enfoques del trabajo que se nombra-rán a continuación.

1.1 INTRODUCCIÓN

Dependiendo del proceso o planta que se quiera controlar puede surgir la necesidadde contar con sistemas de control robusto como lo es LQR, que constituye una exce-lente opción gracias a su aplicabilidad en casi cualquier proceso. Este tipo de controlha sido concebido para manejar procesos multivariables como lo son los SIMO (unaentrada, múltiples salidas) y los MIMO (múltiples entradas, múltiples salidas) los cua-les se caracterizan por presentar “matrices de transferencia” en lugar de “funciones detransferencia” .

Cuando se habla de control óptimo, se hace referencia al sistema de control que escapaz de llevar un proceso a la estabilización al rededor de un punto de trabajo de-terminado mientras minimiza el coste que implica la operación dinámica de la plantacontrolada; esto es precisamente el control LQR, ajustar un controlador proporcional

1

1. PRELIMINARES

mediante algoritmos matemáticos para minimizar la función de costo, es decir se en-cuentran los ajustes que atenúan las desviaciones no deseadas ya que la función decoste está definida por la suma de las desviaciones de las mediciones de salida delproceso con respecto a los valores deseados [5].

En muchos casos se requiere control óptimo y robusto, razón por la cual se hace ne-cesario disponer de soluciones que no afecten de manera significativa la rentabilidad,eficiencia o algún otro parámetro propio de un proceso, la alternativa llevada a caboconsiste en un algoritmo de control LQR el cual es ejecutado por la tarjeta de desa-rrollo Raspberry Pi. Debido a que dicha tarjeta programable es de uso libre, se perfilacomo una opción que puede implementarse con software libre y con la cual es posibleefectuar estudios y experimentos en diferentes plantas.

Además la experimentación con tecnologías emergentes como lo es la plataforma Rasp-berry Pi para la aplicación del control moderno, es imprescindible en cuanto al avancede las alternativas de solución que se dan cuando se pretende controlar un proceso.

El licenciamiento del software comercial puede suponer un elevado costo y una ata-dura del usuario con su proveedor, adicional a esta desventaja del software privativofrente al software libre, los códigos fuente no están disponibles para su modificación ytener acceso a dichos códigos en algunos casos implica poder suplir necesidades espe-cíficas o adaptarse a nuevos cambios [6].

Para control moderno la utilización de tarjetas como lo es la Raspberry Pi es muy pococomún, razón por la cual no se emplea con mucha frecuencia el control implementadosobre estas tarjetas en aplicaciones que requieren robustez ; la mayoría de aplicacionesde estas tarjetas de desarrollo corresponden a la utilización de esta como ordenadorpara funciones muy específicas o control de procesos simples [7].

Con el objetivo de obtener puntos de comparación que permitan conocer qué tan óp-tima es la estrategia LQR con respecto a una acción de control clásico como lo es elPID, se controló un sistema bola y plato integrado a una pantalla táctil resistiva mon-tado sobre una plataforma Stewart, con la cual se localiza la posición de una esfera queposteriormente se estabiliza mediante el movimiento angular que proporcionan 6 ser-vomotores, el diagrama de bloques del control aplicado a la plataforma Stewart puedeverse en la Figura 1.1.

Figura 1.1: Diagrama de blo-ques para el control del sistemabola y plato montado sobre unaplataforma Stewart [Autores].

Control+-

error x, y, zψ, θ, ϕ

Procesoxpre f , ypre f

ref

Detecciónxp, yp

Analizando la respuesta de la planta anteriormente descrita a través de la experimen-tación con diferentes constantes de control, se demuestra que con la estrategia LQR

2

1.2. Objetivos

se logra un desplazamiento de la bola que no presenta trayectos innecesarios desdesu posición inicial hasta el punto de referencia. Lo cual es un indicativo muy claro deque la estrategia de control óptimo aplicada presenta parámetros de desempeño mássatisfactorios que cuando se aplica el control PID.

Los problemas que se resuelven con la implementación del control LQR en una tarjetaRaspberry Pi son: ausencia de un algoritmo de control LQR de fácil implementaciónen procesos reales, la no utilización del software open source en la academia para apli-caciones de control robusto con la posibilidad de dar soluciones a nivel industrial, lafalta de exploración de tecnologías emergentes para la puesta en marcha de estrategiasde control moderno y una justificación que indique qué estrategia de control es másefectiva en procesos específicos si PID o LQR.

El algoritmo LQR implementado en Python y ejecutado a través del SO Raspbian quese presenta en capítulos posteriores de este libro proporciona un importante puntode partida para su implementación en cualquier proceso; teniendo en cuenta conside-raciones prácticas ya que se aplica al sistema dinámico real plato y bola- PlataformaStewart.

1.2 OBJETIVOS

1.2.1 General

Diseñar un algoritmo de control óptimo LQR sobre la tarjeta de desarrollo Raspberry Pipara su posterior implementación.

1.2.2 Específicos

Efectuar la identificación de un proceso experimental para emular su comporta-miento dinámico.

Evaluar el desempeño de la estrategia de control LQR mediante la observaciónde los parámetros de control clásico.

Validar la estrategia del control propuesto comparándolo con un control PIDcuando son implementados en un mismo proceso.

Implementar la estrategia de control moderno LQR en una de las plataformasemergentes como lo es la Raspberry Pi.

3

1. PRELIMINARES

Diseño y ensamble

Stewartde la plataforma Modelamiento

matemáticoDeterminación

a controlarde las variables

Cálculo deparámetros Validación

Estructuración del algoritmo decontrol LQR en la tarjeta Raspberry Pi

Comprobación de controlabilidady observabilidad

Aplicación de algoritmo decontrol LQR en la plataforma

Determinación

[Q] y [R]de matrices

Cálculo

constantesde matriz de

Proceso

Estructuración del

PID en latarjeta dealgoritmo de control

desarrollo Raspberry Pi

Aplicación

control PID ende algoritmo de

la plataforma

Determinación

de controlde las constantes

Diseño del control LQRDiseño del control PID

Cálculo deparametros dedesempeño

Comparaciónentre parametrosde desempeño

Selección depuntos de trabajo

Observación dede curva reaccióndel proceso

Figura 1.2: Diagrama de bloques metodología de desarrollo [Autores].

1.3 METODOLOGÍA DE DESARROLLO

A continuación se describen los pasos que se siguen para la estructuración e imple-mentación del algoritmo de control LQR y su validación mediante la comparación conel desempeño de un control PID igualmente concebido. Tanto el algoritmo PID comoel algoritmo LQR son implementados en la tarjeta de desarrollo Raspberry pi, los algo-ritmos del control se diseñaron de tal manera que las constantes de control puedanser determinadas mediante el funcionamiento experimental de una plataforma Stewartpreviamente ensamblada.

En la Figura 1.2 se ven tres bloques con línea continua en los cuales se incluyen sub-bloques con linaeas punteadas que nombran instrucciones necesarias para el cumpli-miento de los objetivos planteados.

Proceso

Se estructura todo lo referente al sistema plato y bola montado sobre una plataformaStewart, tanto su diseño y ensamble físico como su análisis matemático el cual hace

4

1.3. Metodología de desarrollo

posible la implementación de una estrategia de control que permita estabilizarla enpuntos de trabajo específicos.

Después de efectuar el modelamiento matemático de la plataforma se procede a de-terminar constantes inmersas en su funcionamiento, determinar magnitudes tanto deentrada como de salida, definir cuales serán las variables de control y de proceso.

En el punto de validación ya debe disponerse de un modelo matemático del procesopara que sea posible simularlo usando señales estímulo y evaluar qué tan acertada esla matemática empleada en la identificación de la dinámica de la plataforma Stewart, yasí mejorar el cálculo de magnitudes específicas. De la realización de la validación seobtiene información acerca de los puntos de trabajo en los cuales la plataforma puedeoperar de manera estable y su grado de no linealidad, entonces se conocen las condi-ciones para el diseño de las acciones de control.

Diseño del control LQR

Se inicia con la comprobación de observabilidad y controlabilidad para determinar sies viable la aplicación del control LQR a la plataforma, si alguno de los dos parámetrosno se cumple no será posible controlar la planta mediante un control LQR. La determi-nación de observabilidad y controlabilidad se efectúa a partir del teorema de CayleyHamilton tal y como se explicará más adelante.

El planteamiento del algoritmo de control LQR que ejecuta y procesa la tarjeta de desa-rrollo Raspberry Pi se hace con código python por lo tanto el control LQR diseñado eimplementado es discreto, luego se hace la selección de las matrices [Q] y [R] la cualdepende del diseño de la estrategia de control.

[Q] y [R] son matrices necesarias para determinar la función de coste descrita que im-plica la operación de la plataforma. Los componentes de estas matrices pueden sercalculados utilizando varios métodos, en este caso el método que se usó fue el RVE(Realimentación de variables de estado).

Diseño del control PID

La dificultad se encuentra en la estructuración de un algoritmo que permita la reali-zación de un control que pueda manejar múltiples entradas y salidas, adicional a estoes necesario determinar las constantes de control que sean las más apropiadas para ladinámica del proceso.

De la misma manera que el LQR, el control PID también se aplica en su forma discre-tizada cuyas constantes de control se hallan a partir de la función de transferencia delproceso en el dominio de Z.

5

1. PRELIMINARES

Observación curva de reacción de proceso

Cuando se le aplica una acción de control al sistema bola y plato montado sobre laplataforma Stewart, el objetivo es estabilizar una bola que recorre un plato oscilante;entonces en este caso la curva de reacción del proceso es la gráfica de las diferentesposiciones que recorre la bola antes de llegar al punto de referencia de manera esta-ble, cuando la estabilización ocurre tanto el plato como la bola entran en movimientotraslacional y rotacional nulo.

Ya que la esfera tiene movimiento en los ejes coordenados x y y son dos las curvasde reacción del proceso puestas en observación, el análisis de estas curvas de reacciónpermitirán saber la efectividad tanto de la deducción matemática del sistema dinámicocomo del control aplicado.

Cálculo de parámetros de desempeño

Tanto para el control LQR como para el PID a partir de la curva de reacción obtenidacuando se controla el proceso deben calcularse los parámetros de desempeño que per-miten evaluar cuál de las dos estrategias de control funciona “mejor” para controlar elproceso propuesto; dichos parámetros corresponden a: Máximo sobreimpulso, tiempode estabilización, error de estado estacionario y robustez. Para la estrategia de controlLQR también hay otros parámetros que indican el desempeño del mismo como lo son:Medida de la desviación de los estados con respecto a los estados deseados, medidadel esfuerzo del control, entre otros.

Comparación de parámetros de desempeño

En este caso la comparación entre parámetros de desempeño solo puede hacerse entreaquellos que corresponden al control clásico, por lo tanto es importante precisar queno solo la comparación entre estos parámetros es determinante para conocer cuál es laestrategia de control que mejores resultados presenta, también deben tenerse en cuentalos parámetros de desempeño adicionales que pueden ser calculados del control LQR.

1.4 TARJETA DE DESARROLLO: RASPBERRY PI

El dispositivo que procesa los datos y ejecuta los algoritmos realizados en este trabajoes la tarjeta Raspberry pi modelo B que se muestra en la Figura 1.3. Cuenta con unacapacidad de memoria RAM (Random Access Memory -memoria de acceso aleatorio-)de 512 MB, puerto ethernet, arquitectura ARM, puerto HDMI, puertos USB y 17 pinesdel GPIO que pueden ser usados como entradas o salidas digitales a 3,3V a 20mA.

6

1.4. Tarjeta de desarrollo: Raspberry pi

Ethernet

USB 2.0

audioVídeoConector

RCA

Alimentaciónmicro USB

Tarjeta SD

HDMI

ConectoresGPIO

estadoLedes de

Broadcom BCM2835ARM11 700MHz

Figura 1.3: Diagramaesquemático de la Rasp-berry Pi [Autores].

En la Figura 1.4 se puede ver la descripción de cada uno de los pines que se puedenutilizar para salida o entrada de datos, existen pines para propósitos especificos comolo es la comunicación RS232 o I2C. La nomenclatura de cada uno de ellos no tienerelación con el orden específico en el que se encuentran dispuestos; por ejemplo el pinque corresponde al GPIO14 es el que está en el lugar número 8.

Para poner en marcha a la Rasberry Pi, es necesario instalar un sistema operativo en lamemoria SD, la cual será utilizada como disco duro de este mini computador.

Raspbian es un sistema operativo (SO) libre basado en Debian optimizado para el hard-ware de Raspberry Pi. Raspbian ofrece más que un SO puro, viene con más de 35000paquetes, programas precompilados en un formato que hace más fácil su instalaciónen la Raspberry Pi [8].

Posterior a la instalación del SO esta tarjeta puede usarse como un computador, soloes cuestión de conectar periféricos como mouse, teclado (ambos mediante vía USB) yun monitor con conexión VGA.

En el Apéndice A sección A.1 se explica de que manera puede usarse la Raspberry Pidesde un computador sin tener la necesidad de conectarla a periféricos usando un tipode conexión llamada SSH.

1.4.1 Lenguaje de programación Python 2.0

Este lenguaje no necesita compilador, es de alto nivel y solo requiere un interprete porlo tanto cuando se ejecutan las lineas de código se hace directamente y sin necesidadde generar ejecutables [9]. Otra característica importante es que Python es orientado aobjetos, cuenta con elementos como :

7

1. PRELIMINARES

Clase: Modelo sobre el cual se crean y estructuran los objetos.

Propiedad: Características de un objeto que se manejan como variables.

Método: Función que contiene acciones que deben realizar los objetos, su sintaxises Def nombre_metodo():

Objeto: Cualquier sustantivo cuyas características puedan describirse como cua-lidades o atributos, algunos tipos de objetos son: String, entero, float, char, etc;algunos de estos objetos pueden caracterizarse nombrando otros objetos. Cuan-do se programa en python no es necesario especificar el tipo del objeto, solo se leasigna un nombre y valor especifico.

Herencia: Una clase puede heredar a otra si los objetos comparten propiedadesy/o métodos.

Para crear un objeto no es necesario declarar su tipo solo basta con asignarle un nombrey un valor, al momento de ejecutarlo el interprete le asignará un tipo de acuerdo a losvalores a los que el nombre del objeto haya sido igualado.

Cualquier código que se quiera ejecutar con python debe ser guardado con la extensión.py.

1.4.2 Uso del módulo GPIO

Cuando se instala el sistema operativo Raspbian se tiene python instalado por defecto,con simples lineas de código puede seleccionarse un pin del GPIO y determinar si esde salida o entrada. Como se ve en la Figura 1.4 hay diferentes funcionalidades decada pin del GPIO y de acuerdo a esto pueden agruparse en tres definiciones: Pines dealimentación que ofrecen voltajes de 5 V y de 3,3 V, pines GND y pines multipropósito.Los del último grupo pueden ser subdivididos en dos subgrupos: los de propósitoespecífico (SPI, I2C, Rs232 y PWM) que son 9 y los restantes 8 de salida o entradadigital reciben o transmiten 3,3 V.

Para empezar con el uso del GPIO desde python solo deben escribirse las siguienteslineas de código: import RPi.GPIO as GPIO se importa la librería que permite con-trolar los pines según su función; GPIO.setmode(GPIO.BCM) se pone el modulo GPIOen modo BCM para que la nomenclatura de cada pin pueda cumplirse como en laFigura 1.4; GPIO.setup(#pin, GPIO.Tipo_sal) esta línea de código es para especi-ficar el número del pin y definir si se configura como salida o como entrada, la palabraTipo_sal se reemplaza por IN para que funcione como entrada y OUT como salida, encaso de que el pin se configure como salida el código será GPIO.output(#pin, Nivel

) donde Nivel puede ser 1 para una salida de 3,3 V o 0 para una salida de 0 V, en elcaso de que se configure como entrada el pin solo aceptara niveles de voltaje digitales,es decir que estará solo en 1 o en 0 y para leerla se usa la línea GPIO.input(#pin).

8

1.4. Tarjeta de desarrollo: Raspberry pi

3v3GPIO2 (SDA)GPIO3 (SCL)

GPIO4Tierra

GPIO17GPIO27GPIO22

3V3GPIO10 (MOSI)

GPIO9 (MISO)GPIO9 (CLK)

Tierra

5v5vTierraGPIO14 (TXD)GPIO15 (RXD)GPIO18TierraGPIO23GPIO24TierraGPIO25GPIO8 (CE0)GPIO7 (CE1)

01

191715131109070503

212325

02040608101214161820222426

pin nombre nombre pin

I2C

Figura 1.4: Diagrama esquemático delpuerto GPIO Raspberry Pi modelo B [Au-tores].

Configuración del PWM

A pesar de que existe un pin específico para el PWM que es el GPIO18, cualquier pinmultipropósito configurado como salida puede producir una señal PWM.

Primero debe configurarse el pin deseado como salida GPIO.setup(#pin, GPIO.OUT

), luego debe crearse el objeto PWM especificando pin y frecuencia de la señal var=GPIO.PWM(#pin, Freq) donde var es el objeto, se inicia el PWM con un ciclo útil

determinado var.start(ciclo), si se requiere puede variar el ciclo útil con esta líneade código: var.ChangeDutyCycle(18) y por último se suspende la transmisión de laseñal con var.stop().

1.4.3 Módulo externo ADC

Debido a que la Raspberry modelo B no cuenta con ADC (conversor análogo- digital)ni con DAC (conversor digital- análogo) es imprescindible contar con algún móduloexterno que le permita leer o entregar niveles de voltaje que estén dentro de un rangodeterminado. Dicho módulo puede ser un integrado o una tarjeta con la capacidadde transmitirle las lecturas analógicas usando un canal de comunicación serie comopor ejemplo I2C o RS232, en este caso se maneja el primero en consecuencia de haberseleccionado un ADC de 16 bits y 4 canales.

Para este trabajo se necesitó un ADC que posibilitara la lectura de los cambios de vol-taje que presenta la pantalla táctil cuando se hace presión en algún punto de su super-ficie, entonces se eligió el integrado ADS1115 de la empresa Texas Instruments [10]. Seusan dos de sus cuatro canales para leer las dos coordenadas del punto de presión enla pantalla táctil, cada lectura es enviada vía I2C a la raspberry Pi, razón por la cual haydos hilos de conexión entre el integrado y la tarjeta que son los pines GPIO2 y GPIO3.

9

1. PRELIMINARES

Adafruit que es una empresa fabricante de kits de desarrollo con componentes electró-nicos, la compañía realizó una tarjeta que incluye el ADS1115 con el fin de disponer deuna ganancia programable y un control de la comunicación I2C mediante una libreríadenominada Adafruit_ADS1x15 que se encarga también de gestionar la lectura de uncanal determinado [11]. Dicha librería puede ser utilizada con líneas de código en pyt-hon siempre y cuando este guardada en la misma carpeta del documento con extensión.py que la invoque con la línea de código en python: from Adafruit_ADS1x15 importADS1x15 para importar la librería desarrollada por Adafruit, se especifica el valor de la

ganancia del amplificador programable PGA, las muestras leídas por segundo SPS, conadc = ADS1x15(ic=0x01) se especifica la dirección del registro de lectura y por últi-mo puede ser leído un canal específico con la instrucción adc.readADCSingleEnded(

canal, pga, sps).

El dato leído del canal del ADC se obtiene en valores de mili voltios con más de trescifras después de la coma flotante, así que son lecturas con una muy buena sensibilidady precisión numérica muy útil para hallar las coordenadas de ubicación de la esfera demanera acertada.

10

Capítulo

2 Planta seleccionada

CONTENIDOS DEL CAPÍTULO

2.1 PLATAFORMA STEWART UN RO-BOT PARALELO

2.2 DISEÑO Y ENSAMBLE PLATAFOR-MA STEWART

2.3 CINEMÁTICA DE LA PLATAFORMASTEWART

2.4 APLICACIÓN DE LA CINEMÁTICADE LA PLATAFORMA STEWART

2.5 BOLA Y PLATO

En este capitulo se describe la estructura física y geométrica de la plataforma Stewart,se especifica cada parte que la compone y también se detallan los tres grados de liber-tad traslacionales y los tres grados de libertad rotacionales que posee; como ya se hanombrado antes, esta plataforma ha sido adecuada para ejercer la función de estabili-zar una esfera que gira y se desplaza sobre la superficie de una pantalla táctil resistiva(subsistema bola y plato), la cual se encarga de enviar las coordenadas de posición dedicha esfera para que sean procesadas por la Raspberry Pi y posteriormente se deter-mine cual será el ángulo de rotación de los servomotores en cada instante de tiempo.

2.1 PLATAFORMA STEWART UN ROBOT PARALELO

Un robot paralelo es un mecanismo de lazo cerrado cuyo movimiento se origina apartir de por lo menos dos cadenas cinemáticas independientes, la plataforma Stewartes un robot paralelo que tiene seis cadenas y por lo tanto cuenta con la ventaja quecaracteriza a los robots paralelos de no acumular errores en una sola cadena cinemática[12, 13].

11

2. PLANTA SELECCIONADA

La plataforma está compuesta por dos placas, una inferior estática y una superior pro-vista de movilidad gracias a las seis cadenas cinemáticas servocontroladas, estas a suvez tienen uniones con junturas esféricas tanto con el actuador como con la placa su-perior. Con el fin de obtener seis grados de libertad de la placa superior las junturasdeben ser con uniones esféricas en los dos extremos de cada brazo, cabe aclarar queun extremo se une mediante una juntura al rotor del servomotor y el otro también estáunido con una juntura a la placa superior como se ve en la figura 2.1.

Figura 2.1: Estructura física plataformaStewart [Autores].

Rótula

Motor

Brazo

Placa móvil

Placa base

LevaRótula

La plataforma tipo Stewart tiene propiedades de rigidez porque al contar con 6 sopor-tes se reducen las deformaciones de manera significativa, si se dispone alguna masa enla placa superior de la plataforma el peso de dicha masa será repartido entre sus extre-midades, así cada una de ellas soportará un sexto del peso [14]. Al tener una tensióndistribuida, la plataforma es capaz de soportar cargas superiores a su propio peso,a raíz de esto puede moverse rápidamente debido a que cada servomotor solo debemover una fracción de la inercia total [12].

Cuando se habla de seis grados de libertad se hace referencia al movimiento tridimen-sional y la rotación de la placa superior al rededor de los tres ejes cartesianos, es decirque hay movimiento en tres direcciones lineales y tres direcciones angulares a travésdel movimiento armónico de los seis brazos.

2.2 DISEÑO Y ENSAMBLE PLATAFORMA STEWART

Se han hecho varios diseños de la plataforma Stewart, los que más destacan son en losque la movilidad de su placa superior se origina en: Brazos o extensiones hidráulicasy los brazos servocontrolados.

12

2.2. Diseño y ensamble plataforma Stewart

Los actuadores de la plataforma con brazos hidráulicos son seis cilindros hidráulicoscuyo émbolo se conecta a la placa superior de la plataforma mediante una juntura es-férica, que cuando funcionan provocan un cambio en la longitud que separa la placasuperior y la placa inferior, a diferencia de esta los actuadores de la plataforma servo-controlada son servomotores que con movimiento rotacional hacen que los brazos delongitud fija se desplacen de manera tridimensional [13].

Estos dos tipos de diseño mecánico tienen en común que los extremos de cada brazoestán unidos con la plataforma mediante junturas esféricas, en este caso se manejaronrótulas 2M (de dos milímetros de diámetro). Por cada brazo se utilizan 2 rótulas, unaque lo une a la placa superior y otra lo une al rotor del servomotor.

Adecuación de los servomotores

En la plataforma Stewart ensamblada se dispuso de seis servomotores iguales los cualesson los actuadores de las dimensiones y características que se muestran en la Figura 2.2,convierten la energía eléctrica en energía mecánica para proporcionar fuerza rotatoriay así mover la placa superior de la plataforma, se alimentan de 5 voltios y son capacesmover 9g de masa cada uno.

32 mm

23 mmtierra

PWM12 mm

19,5 mm28,5 mm

32 mm

Vcc Figura 2.2: Dimensiones y estructura delservo motor SG90 [Autores].

Este tipo de motor fue implementado en la planta debido a que es posible controlarsu ángulo de rotación mediante una señal de control PWM la cual es recibida por elmotor a través del hilo indicado en la figura 2.2 y entre más ancho sea el pulso, elrotor hará un desplazamiento angular más largo en el sentido de las manecillas delreloj. En el interior de este tipo de motores hay una caja reductora y un multiplicadorde fuerza además de un circuito electrónico que responde a una señal de control paradefinir la cantidad de movimiento angular del motor, dicha señal debe ser un pulsode amplitud constante y frecuencia determinada en forma de tren de pulsos segúnlas especificaciones técnicas del fabricante [15]. Cuando entra la señal al servomotorprimero pasa por un conversor ancho de pulso/ voltaje, luego por un amplificadoroperacional que se encarga de calcular el error a través de la resta entre la salida delconversor y la salida del potenciómetro con acople mecánico a la caja reductora, estadiferencia será la señal que va directamente al motor.

13

2. PLANTA SELECCIONADA

Hay tres pares de servomotores acoplados a la plataforma, cada par tiene la leva ohélice enfrentada o dicho de otra forma tienen un eje de simetría vertical en la mitaddel par tal como se ve en la Figura 2.3.

Figura 2.3: Pares de servomotores, posi-ción inicial [Autores].

P1

l1

s1

B1

P2

l2

B2

s2

Impar Par

A1 A2

En cuanto a su radio de rotación el servomotor está limitado entre ±45° y por lo tantoel ancho de pulso de la señal de control también tiene un rango limitado de valores,dichos límites deben ser calculados empezando por la posición inicial de las levas en-frentadas.

r =tiempoangulo

[µseg/radian] (2.1)

En (2.2) se describe el ancho de pulso para el servomotor derecho y (2.3) para el iz-quierdo; donde W0

i es el ancho de pulso necesario para que el servomotor mantengala leva en la posición inicial, αi es el ángulo que se forma entre la leva y los ejes coor-denados, α0 corresponde al ángulo de la posición inicial de la leva y r descrito en (2.1)hace referencia a una constante que se calcula de acuerdo al tiempo de ciclo útil necesa-rio para obtener un desplazamiento rotacional de acuerdo a los límites determinados,donde tiempo son los micro segundos que debe durar el ancho de pulso para que elservomotor rote hasta angulo en grados [1].

Wi = W0i + (αi − α0) r (2.2)

Wi = W0i − (αi − α0) r (2.3)

Se dan las ecuaciones (2.2) y (2.3) porque si bien la plataforma es simétrica con respec-to al eje z, los servomotores han sido montados en pares y cada par es opuesto a suhomólogo.

Para hallar W0i y r es necesario observar las gráficas que describen el comportamiento

de cada motor referente a la cantidad de ángulos de giro con respecto al ciclo útil delPWM aplicado, dichas gráficas pueden observarse en el Apéndice C sección C.2.

14

2.2. Diseño y ensamble plataforma Stewart

Sensor de posición aplicado: pantalla táctil

Existen dos tipos de pantallas táctiles: resistivas y capacitivas, a la plataforma Stewartse le acopló una pantalla de tipo resistivo debido a que esta no es multitouch (capacidadde detectar más de un punto de presión al mismo tiempo) y para la función que debecumplir, detectar más de un punto de presión significa errores en el control de posiciónde la esfera. La pantalla táctil resistiva usada tiene cuatro hilos a través de los cualesdeben detectarse las coordenadas bidimensionales de posición de la esfera que hacepresión debido a su peso.

Físicamente la pantalla táctil elegida es de forma rectangular, tiene una dimensión dediez pulgadas y los ejes coordenados tienen valores máximos y mínimos ubicados co-mo se muestra en la figura 2.4.

xy

Vminx

12 3 4

Vmaxx

Vminy

Vmaxy

10 in

Figura 2.4: Vista isométrica de la pantallatáctil resistiva [Autores].

El primer paso que se efectúa para el reconocimiento de cada uno de los hilos de lapantalla es medir con un multímetro en qué par de hilos hay resistencia fija, es decirque no varía independientemente de que se haga presión en cualquier punto de lasuperficie de la pantalla; como se ve en la figura 2.5(a), el primer par de hilos en losque hay una resistencia fija es entre el 1 y el 3 y el segundo par es el 2 y el 4 .

Después de tener plenamente identificados los hilos entre los cuales la resistencia esfija, debe saberse que si se energiza una de ellas podrá hallarse una coordenada y si seenergiza la otra se hallará la coordenada que falta, claro está que se debe aterrizar elotro extremo de la resistencia fija que se ha energizado previamente [16]. En este puntodebe aclararse el hecho de que cuando se trabaja con una pantalla resistiva no es posi-ble hallar ambas coordenadas (x y y) de manera simultánea, entonces el procedimientocorrecto es hallar una y luego la otra.

Para leer la coordenada x primero se conectan los hilos de la pantalla como se muestraen la figura 2.5(c) y luego se lee y conectándola como se muestra en la figura 2.5(b); elhilo de lectura en cada caso son los que se referencian con A0 y A1, los cuales presentanuna variación en mili voltios con un valor máximo y mínimo a lo largo de cada ejesegún el punto de presión en la superficie de la pantalla como se muestra en la figura2.4, cuando los hilos se conectan en alguna configuración que corresponda a la figura2.5(b) o 2.5(c).

15

2. PLANTA SELECCIONADA

R f ija

1 3

2 4

R f ija

1 2 3 4

NC A0

10 kΩ

3, 3 V

1 2 3 4

NCA1

10 kΩ

3, 3 V

(b) (c)(a)

Figura 2.5: Salidas de la pantalla táctil resistiva de 4 hilos, cada punto representa un hilo [Autores].(a) Medida de la resistencia fija. (b) Configuración para leer la coordenada y. (c) Configuraciónpara leer la coordenada x.

El cambio de conexión de los cuatro hilos de la pantalla para leer cada coordenadase hace manipulando los pines I/O del GPIO de la Raspberry Pi Usando las lineas dellistado de código 2.1. Cuando se necesita que un hilo de la pantalla resistiva esté enNC (No conexión) como se ve en la imagen 2.5, se configura el pin del GPIO conectadoa él como entrada

Listado de código 2.1: Manipulación pines GPIO para lectura de coordenadas de la pantalla táctil.#Lectura del eje x

#disposición pines pantallaGPIO.setup(22, GPIO.IN) # Hilo 1 pantalla touch en No conexionGPIO.setup(17, GPIO.OUT) # Hilo 2 pantalla touchGPIO.setup(4, GPIO.OUT) # Hilo 3 pantalla touchGPIO.setup(27, GPIO.OUT) # Hilo 4 pantalla touch#salida de los pinesGPIO.output(17, 1) # nivel alto de voltaje para base de transistor,

hilo 3 a tierraGPIO.output(4, 0) # nivel bajo de voltaje para base de transistor,

hilo 2 a canal ADC 1GPIO.output(27, 1)#asignación de la lectura de la coordenadax= adc.readADCSingleEnded(0, pga, sps)

#Lectura del eje y#disposición pines pantallaGPIO.setup(22, GPIO.OUT) # Hilo 1 pantalla touchGPIO.setup(17, GPIO.OUT) # Hilo 2 pantalla touchGPIO.setup(4, GPIO.OUT) # Hilo 3 pantalla touchGPIO.setup(27, GPIO.IN) # Hilo 4 pantalla touch en no conexión#salida de los pinesGPIO.output(22, 1)GPIO.output(4, 1) # nivel alto de voltaje para base de transistor,

16

2.3. Cinemática de la plataforma Stewart

hilo 2 a tierraGPIO.output(17, 0) # nivel bajo de voltaje para base de transistor,

hilo 3 a canal ADC 0#asignación de la lectura de la coordenaday= adc.readADCSingleEnded(1, pga, sps)

Notese que para leer cualquier coordenada se necesita que uno de los hilos 2 o 3 de lapantalla esté a tierra y el otro conectado a la lectura del ADC, debido a que la lecturaanalógica se hace con un dispositivo externo (Ver capitulo 1) no se pueden instanciarlas entradas de los canales de lectura para que sean una salida y así hacer conexión deuno de los dos hilos de la pantalla con tierra. Entonces lo que se hace con el fin cumplirla disposición de los hilos de la pantalla para leer cualquier coordenada como se ve enla figura 2.5, se hace un arreglo con un transistor NPN conectando su base a un pin delGPIO de la raspberry pi de tal manera que si se envía un nivel alto de voltaje el hilo dela pantalla haga conexión con con tierra y si se envía un nivel bajo, haga conexión conel canal ADC del dispositivo externo de lectura, esto se especifica en los comentariosdel listado de código 2.1.

2.3 CINEMÁTICA DE LA PLATAFORMA STEWART

Independientemente de que modelo se aplique para deducir el comportamiento diná-mico de la plataforma, debe saberse que existe una relación de la posición y la orienta-ción de la plataforma móvil con las variables de articulación y los parámetros geomé-tricos [13].

Para deducir el modelo dinámico de la plataforma hay dos tipos de análisis, el de cine-mática inversa y el de cinemática directa. Si se quiere resolver el sistema mediante cine-mática directa se requiere del planteamiento de ecuaciones no lineales en las cuales sedescribe la posición y la orientación del manipulador paralelo cuando sus longitudesson conocidas, el problema de este tipo de análisis es que se pueden obtener múltiplessoluciones [12], más específicamente para el caso de la plataforma Stewart servocon-trolada se obtiene un sistema de 18 ecuaciones con 40 posibles soluciones [2], para estetipo de problemas la aplicación de la cinemática inversa es más sencilla con respectoa la cinemática directa porque es más fácil calcular tanto las longitudes entre la placasuperior e inferior (de los brazos que son los elementos que separan una de la otra),como los parámetros de los motores conociendo la posición deseada o los ángulos degiro de la placa superior móvil de la plataforma [13], en lugar de calcular la localiza-ción (posición y orientación) de la plataforma dados los parámetros de operación yelongación de los actuadores.

Si se deduce el modelo dinámico de la plataforma haciendo uso de la cinemática inver-sa, es necesario calcular las variaciones de las distancias que separan a la placa superiormóvil de la plataforma de la placa inferior fija y los parámetros de los motores cono-ciendo la posición deseada de la plataforma.

17

2. PLANTA SELECCIONADA

Figura 2.6: Diagrama de Cuerpo libre para eli−ésimo brazo [1].

Placa superiormóvil

Placa inferiorbase fija

z′

y′

x′

z

y

x

qili

bi

T

piO

O

Pi

Bi

El problema de la cinemática inversa puede definirse en dos etapas:

1. Tener clara la referencia de posición y orientación deseada y determinar la rota-ción de las junturas esféricas al rededor de cada eje coordenado con respecto alas placas superior e inferior.

2. Determinar los ángulos de rotación de los servomotores, teniendo en cuenta ladinámica de las junturas analizadas en el paso anterior.

Resolver la primera etapa requiere tener claros los puntos relevantes en el diagramadel cuerpo de la plataforma, tal y como se ve en la Figura 2.6, luego se calculan lasdistancias entre las junturas de la base y las junturas de la placa superior plantean-do matrices de rotación y traslación; con la ecuación (2.4) se expresa la longitud deli−ésimo brazo y en (2.5) se expresa qi que describe las coordenadas del punto de anclaPi tomando como referencia la placa base.

li = T + RPB pi − bi (2.4)

qi = T + RPB pi (2.5)

En (2.4) y (2.5) T hace referencia a la distancia que hay entre el punto central de la placainferior O y el punto central de la placa superior O’y también puede ser visto como elvector de traslación que varía conforme cambia la distancias entre las placas superiore inferior de la plataforma, esta distancia está dada por el desplazamiento de posiciónlineal entre los dos puntos centrales por lo tanto es el vector de traslación. pi es ladistancia entre el punto central O’ de la placa superior y la i−ésima juntura esférica orótula adherida a ella, la distancia pi puede ser definida como un vector en el cual sedeterminan las coordenadas del punto de ancla Pi con respecto a la placa superior. bies la distancia entre el punto central O de la placa inferior y la i−ésima juntura esféricao rótula adherida a ella, la distancia bi representa el vector que define las coordenadas

18

2.3. Cinemática de la plataforma Stewart

O Ax

BCx′y′

y

ψ

ψ

P

Ox

B

x′

z′

z

O Ky

BJy′z′

z

φ

φ

P

P

D

θ

θ

E

(b)(a) (c)

Figura 2.7: Rotación. (a) Con respecto al eje z. (b) Con respecto al eje y. (C) Con respecto al ejex. Figura basada en [1] página 1.

del punto de ancla Bi en la placa inferior. RPB (ver (2.6)) es la variación de la distancia

que hay entre los puntos Pi y Bi que son los puntos en los cuales se ubica la i−ésimarótula de las placas superior e inferior.

RPB = Rz (ψ) · Ry (θ) · Rx (φ) (2.6)

La placa base tiene los ejes ortogonales x, y y z y la placa móvil tiene los ejes ortogonalesx’, y′ y z′, para cada eje se pueden identificar 3 desplazamientos traslacionales conrespecto a la base y 3 movimientos angulares que definen la orientación de la placamóvil con respecto a la base: .

Rz (ψ): Ángulo de rotación ψ alrededor de z, el cual se deduce observando elmodelo dinámico desde “arriba” como se ve en la Figura 2.7(a).

En este caso se hallan las distancias x y y que van hasta el punto P, sabiendoque z = z′ para deducir la matriz de rotación Rz (ψ) teniendo en cuenta que x

yz

= Rz (ψ)

x′

y′

z′

. Para hallar x se mide la distancia desde el punto de

origen O hasta el punto P sobre el eje x como se ve en (2.7).

x = OA − CB (2.7)

Luego se expresa (2.7) en términos del ángulo ψ y las distancias de los ejes coor-denados x′ y y′ haciendo uso de las definiciones de las funciones trigonométricasseno y coseno como se ve en 2.8, haciendo la traslación necesaria de dicho ángulo

19

2. PLANTA SELECCIONADA

y proyectando los ejes coordenados de la Figura 2.7(a).

x = x′ cos (ψ) + y′ sin (ψ) (2.8)

Ahora se halla y que es la distancia de O a P sobre el eje y como se ve en (2.9).

y = AB + CP (2.9)

Se expresa (2.9) en términos de ψ y x′ y y′ como se ve en (2.10).

y = x′ sin (ψ) + y′ cos (ψ) (2.10)

Así se obtiene Rz (ψ) disponiendo de (2.8) y (2.10) como se ve en (2.11). xyz

=

cos (ψ) sin (ψ) 0sin (ψ) cos (ψ) 0

1 0 0

x′

y′

z′

Rz (ψ) =

cos (ψ) sin (ψ) 0sin (ψ) cos (ψ) 0

1 0 0

(2.11)

Ry (θ): Ángulo de rotación θ alrededor de y, el cual se deduce observando elmodelo dinámico “de frente” como se ve en la figura 2.7(b).

En este caso se hallan las distancias x y z que van hasta el punto P, sabiendoque y = y′ para deducir la matriz de rotación Ry (θ) teniendo en cuenta que x

yz

= Ry (θ)

x′

y′

z′

. Para hallar x se mide la distancia desde el punto de

origen O hasta el punto P sobre el eje x como se ve en (2.12).

x = OE + BD (2.12)

(2.12) en términos de θ y de los ejes coordenados x′ y z′ como se ve en (2.13)haciendo la traslación necesaria de dicho ángulo y proyectando los ejes coorde-nados de la Figura 2.7(b).

x = x’ cos (θ) + z′ sin (θ) (2.13)

Se halla z que es la distancia de O a P sobre el eje z como se ve en (2.14).

z = BE − DP (2.14)

Se expresa (2.14) en términos de θ y x′ y z′ como se ve en (2.15).

z = z′ cos (θ)− x′ sin (θ) (2.15)

20

2.3. Cinemática de la plataforma Stewart

Así se obtiene Ry (θ) disponiendo de (2.13) y (2.15) como se ve en (2.16) xyz

=

cos (θ) 0 sin (θ)0 1 0

− sin (θ) 0 cos (θ)

x′

y′

z′

Ry (θ) =

cos (θ) 0 sin (θ)0 1 0

− sin (θ) 0 cos (θ)

(2.16)

Rx (φ): Ángulo de rotación φ alrededor de x, el cual se deduce observando elmodelo dinámico “de lado” como se ve en la figura 2.7(c).

En este caso se hallan las distancias y y z que van hasta el punto P, sabiendoque x = x′ para deducir la matriz de rotación Rx (φ) teniendo en cuenta que x

yz

= Rx (φ)

x′

y′

z′

. Para hallar y se mide la distancia desde el punto de

origen O hasta el punto P sobre el eje y como se ve en (2.17).

y = OK − JB (2.17)

Se expresa (2.17) en términos de φ y de los ejes coordenados y′ y z′ como se veen (2.18) haciendo la traslación necesaria de dicho ángulo y proyectando los ejescoordenados de la Figura 2.7(c).

y = y′ cos (φ)− z′ sin (φ) (2.18)

Se halla z que es la distancia de O a P sobre el eje z como se ve en (2.19).

z = KB + JP (2.19)

Se expresa (2.19) en términos de φ y y′ y z′ como se ve en (2.20).

z = y′ sin (φ) + z′ cos (φ) (2.20)

Así se obtiene Rx (φ) disponiendo de (2.18) y (2.20) como se ve en (2.21). xyz

=

1 0 00 cos (φ) − sin (φ)0 sin (φ) cos (φ)

x′

y′

z′

Rx (φ) =

1 0 00 cos (φ) − sin (φ)0 sin (φ) cos (φ)

(2.21)

21

2. PLANTA SELECCIONADA

Teniendo las matrices de rotación que corresponden a los ejes coordenados (2.11), (2.16)y (2.21) puede hallarse (2.6).

RPB =

cos (ψ) sin (ψ) 0sin (ψ) cos (ψ) 0

1 0 0

·

cos (θ) 0 sin (θ)0 1 0

− sin (θ) 0 cos (θ)

·

1 0 00 cos (φ) − sin (φ)0 sin (φ) cos (φ)

RPB =

cos (ψ) cos (θ) − sin (ψ) cos (φ) + cos (ψ) sin (θ) sin (φ)sin (ψ) cos (θ) cos (ψ) cos (φ) + sin (ψ) sin (θ) sin (φ)

− sin (θ) cos (θ) sin (φ)

sin (ψ) sin (φ) + cos (ψ) sin (θ) cos (φ)− cos (ψ) sin (φ) + sin (ψ) sin (θ) cos (φ)

cos (θ) cos (φ)

(2.22)

Teniendo (2.22) se puede hallar la matriz de translación T para como se muestra en2.23.

T = RAB

x′

y′

z′

(2.23)

Concluida la primera etapa se procede a calcular el ángulo de rotación de cada ser-vomotor, cuyo rotor está unido a los brazos de la plataforma como se ve en la Figura2.8(a). Esto se realiza debido a la necesidad de saber cuánta variación de la longitud decada unión brazo/hélice se produce con el movimiento angular del correspondientemotor anclado a dicha unión, para saberlo se hace el modelo cinemático que se ve enFigura 2.8(b).

Figura 2.8: Representaciones gráficas de la ro-tación del servomotor. (a) Hélice del i−ésimoservomotor anclada al i−ésimo brazo rígido S.(b) Representación cinemática del recorrido dela hélice del servomotor anclada a S.Figura ba-sada en [1] página 3 y [2]

Pi

lis

Bi

sz

y

x

α

β

Ai

Pi

li

Bi

(a) (b)

x

Donde Ai es el punto de ancla del i−ésimo brazo con la hélice del rotor de su corres-pondiente servomotor, Bi es el punto de unión de la hélice del servomotor con el rotor,S es la longitud del i−ésimo brazo rígido de la plataforma, li como se ve en (2.4) es ladistancia variable que existe entre el punto de ancla Pi del brazo con la placa superior y

22

2.3. Cinemática de la plataforma Stewart

la juntura Bi, a es la longitud de la hélice del servo, w es un vector con coordenadas x yy cuyo origen está en Bi y sirve de referencia para hallar las coordenadas del punto deancla Ai y el elipse punteado representa el recorrido rotacional de la hélice del servoque forma los ángulos: β con respecto a x y y y el ángulo α con respecto a x, y y z.

La posición de los puntos Ai y Pi varía conforme se mueve el servomotor, en cambioel punto Bi es fijo; con el fin de encontrar las coordenadas de Ai en cada instante detiempo, se grafican los ángulos α y β como se ve en la Figura 2.9.

z

y

x

α

βBi

(i = par)

π + β

π − α

Ai(i = impar)

Ai

z

y

x

α

β

ω

Ai

za

xa

ya

barrido dela leva

Figura 2.9: Recorrido angularde la hélice del servomotor conrespecto a los tres ejes coorde-nados x, y y z. Figura basadaen [1] páginas 4 y 5.

Las coordenadas de Ai se especifican en (2.24) y se hallan usando las definiciones fun-ciones trigonométricas proyectando vectores y trasladando los ángulos α y β.

Ai =

xayaza

(2.24)

Bi =

xbybzb

(2.25)

Pi =

xpypzp

A cada coordenada se le suma la correspondiente componente de Bi como se ve en(2.25) debido a que este punto no es (0,0,0), hay una distancia fija entre el origen y elcentro de anclaje de la hélice con el rotor, a continuación se hallan las coordenadas deAi para el servomotor par al cual le corresponden los ángulos α y β.

xa Como se ve en la Figura 2.9 se pueden obtener las equivalencias w = xa/ cos (β)y w = a cos (α) que luego se igualan para obtener (2.26).

xa = a cos (α) cos (β) + xb (2.26)

23

2. PLANTA SELECCIONADA

ya Las equivalencias trigonométricas según se ve en la Figura 2.9 para esta coor-denada son: w = s cos (α) y w = ya/ sin (β) las cuales se igualan para obtener2.27.

ya = a cos (α) sin (β) + yb (2.27)

za Se forma un solo equivalente trigonométrico sin (α) = za/a, a es la longitudde la hélice del servomotor. Despejando dicha expresión se obtiene.

za = a sin (α) + zb (2.28)

Conociendo las coordenadas del punto Ai se procede a determinar el ángulo α que seforma entre la hélice del servomotor y los ejes coordenados, por lo tanto se halla lamagnitud de los vectores a, S y l teniendo en cuenta los puntos de cada uno como seve en la Figura 2.8(b), cabe aclarar que xb, yb y zb son coordenadas fijas.

a2 = (xa − xb)2 + (ya − yb)

2 + (za − zb)2

a2 = x2a − 2xaxb + x2

b + y2a − 2yayb + y2

b + z2a − 2zazb + z2

b

a2 =

x2a + y2

a + z2a− 2 (xaxb + yayb + zazb) +

x2

b + y2b + z2

b

(2.29)

l2 =

xp − xb2

+yp − yb

2+zp − zb

2

l2 = x2p − 2xpxb + x2

b + y2p − 2ypyb + y2

b + z2p − 2zpzb + z2

b

l2 =

x2p + y2

p + z2p

− 2

xpxb + ypyb + zpzb

+x2

b + y2b + z2

b

(2.30)

S2 =xp − xa

2+yp − ya

2+zp − za

2

S2 = x2p − 2xpxa + x2

a + y2p − 2ypya + y2

a + z2p − 2zpza + z2

a

S2 =

x2p + y2

p + z2p

− 2

xpxa + ypya + zpza

+x2

a + y2a + z2

a

(2.31)

De (2.29) y (2.30) se despejan las expresiones que se ven en (2.32) y (2.33) respectiva-mente.

x2a + y2

a + z2a= −a2 − 2 (xaxb + yayb + zazb) +

x2

b + y2b + z2

b

(2.32)x2

p + y2p + z2

p

= −l2 − 2

xpxb + ypyb + zpzb

+x2

b + y2b + z2

b

(2.33)

Se reemplaza (2.32) y (2.33) en (2.31) y se obtiene (2.34).

S2 − l2 − a2 = −x2

b + y2b + z2

b+ 2

xpxb + ypyb + zpzb

− 2

xpxa + ypya + zpza

x2b + y2

b + z2b− 2 (xaxb + yayb + zazb) (2.34)

Se multiplicando toda la expresión (2.34) por -1 y reorganizando términos se obtiene(2.35).

24

2.3. Cinemática de la plataforma Stewart

l2 −s2 − a2 = 2

x2

b + y2b + z2

b− 2

xpxb + ypyb + zpzb

+ 2xa

xp − xb

+

2yayp − yb

+ 2za

zp − zb

(2.35)

Anteriormente se había hallado cada coordenada del punto Ai entonces se reemplaza(2.26), (2.27) y (2.28) en (2.35).

l2 −s2 − a2 = 2

x2

b + y2b + z2

b− 2

xpxb + ypyb + zpzb

+

2 (a cos (α) cos (β) + xb)xp − xb

+ 2 (a cos (α) sin (β) + yb)

yp − yb

+

2 (a sin (α) + zb)zp − zb

l2 −

s2 − a2 = 2a sin (α)

zp − zb

+ 2a cos (α)

cos (β)

xp − xb

+ sin (β)

yp − yb

(2.36)

Se hace sustitución de variables para simplificar la expresión (2.36).

M = 2azp − zb

(2.37)

N = 2acos (β)

xp − xb

+ sin (β)

yp − yb

(2.38)

L = l2 −S2 − a2 (2.39)

Se reemplaza (2.37), (2.38) y (2.39) en (2.36).

L = M sin (α) + N cos (α) (2.40)

En la sección (B.1) del apéndice B se explica con detalle el procedimiento seguido parahallar (2.41) a partir de (2.40).

α = arcsin

L√M2 + N2

− arctan

NM

(2.41)

Ahora puede calcularse la longitud entre las placas superior e inferior asociada al án-gulo α de rotación del servomotor; antes de hacerlo es necesario saber cual es la posi-ción inicial de los motores que dan la longitud inicial ho que separa ambas placas, en(2.42) q0 representa las coordenadas del punto de ancla Pi (situado en la placa superior)con respecto a la placa inferior para h0.

q0 = T + RPB pi

q0 =

00h0

+

1 0 00 1 00 0 1

xpypzp

q0 =

00h0

+

xpypzp

25

2. PLANTA SELECCIONADA

q0 =

xpyp

h0 + zp

(2.42)

Notese que el vector T de traslación para la posición inicial solo considera la distanciainicial h0 la cual se da con respecto al eje z y la matriz de rotación RP

B para la posicióninicial es una matriz identidad.

Figura 2.10: Disposición fí-sica de cada par de servomo-tores [Autores].

P1

l1

s1

B1

P2

l2

B2

s2

Impar Par

A1 A2

Se considera que la posición inicial del brazo del servo impar está enfrentada comoespejo con respecto al brazo del servo par, como se ve en la Figura 2.10. Cuando elservo está en su posición inicial se forma un ángulo de 90° entre S y a entonces esposible calcular la distancia l inicial que está entre los puntos P y B usando el teoremade Pitágoras como se ve en (2.43).

l2 = S2 + a2 (2.43)

Teniendo en cuenta la equivalencia de l hallada en (2.30) se tiene la ecuación (2.44).

l2 =

xp − xb2

+yp − yb

2+zp − zb

2 (2.44)

Si se igualan (2.30) y (2.44) y se despeja h0 se obtiene (2.45).

S2 + a2 =

xp − xb2

+yp − yb

2+zp − zb

2

S2 + a2 =xp − xb

2+yp − yb

2+h0 + zp

2

h0 + zp

=

S2 + a2 −

xp − xb

2 −yp − yb

2

h0 =

S2 + a2 −

xp − xb

2 −yp − yb

2 − zp (2.45)

El cálculo de h0 se determina de la misma manera para los seis brazos de la plataformadado que está construida simétricamente con respecto al eje z; Así también existe un

26

2.3. Cinemática de la plataforma Stewart

ángulo α0 que se define igual que α con la diferencia de que el primero se da cuando laplataforma esta en sus condiciones iniciales el cual se deduce de (2.4).

li = T + RPB (pi − bi)

l0 =

00h0

+

1 0 00 1 00 0 1

xpypzp

xbybzb

l0 =

00h0

+

xp − xbyp − ybzp − 0

l0 =

xp − xbyp − ybh0 + zp

(2.46)

Haciendo uso de (2.43) y de (2.46) se halla l0 como se ve en (2.47).

l20 =

xp − xb

2+yp − yb

2+h0 + zp

2 (2.47)

Para encontrar α0 se reescribe (2.41) como se ve en (2.48).

α0 = arcsin

L0M2

0 + N20

− arctan

N0

M0

(2.48)

Se especifican las equivalencias de M0, N0 y L0 según las ecuaciones (2.37), (2.38) y(2.39), en el caso de L0 se tiene en cuenta (2.43) por lo tanto se reemplaza l y se obtiene(2.49).

L0 = l2 −S2 − a2

L0 =S2 + a2− S2 − a2

L0 = 2a2 (2.49)

Para M0 se tiene en cuenta (2.47) y para N0 se asume que β es 0° (situación que nopodría verse en la realidad ya que si β variara seria necesario romper la leva del motor),entonces se obtiene (2.50) y (2.51).

M0 = 2ah0 + zp

(2.50)

N0 = 2acos (0)

xp − xb

+ sin (0)

yp − yb

N0 = 2a

xp − xb

(2.51)

27

2. PLANTA SELECCIONADA

T

RPiBi= [3X3]

li = T + RPiBi(pi − bi)

αi = arcsin

L√M2+N2

− arctan

NM

h0 α0 Wi Salida

xyz

ψθϕ

Cinemáticainversa proceso

Figura 2.11: Diagrama de bloques cinemática inversa plataforma Stewart [Autores].

2.4 APLICACIÓN DE LA CINEMÁTICA DE LA PLATAFORMA STEWART

En la Figura 2.11 se puede ver un resumen de lo que es la aplicación de la cinemáticaa la plataforma, en primera instancia se tienen los parámetros requeridos para que laplaca superior se mueva de acuerdo a la traslación y rotación deseada, es decir x, y,z, ψ, θ, y ϕ son el punto de partida de la cinemática inversa, con x, y y z se calculala matriz de traslación T y con ψ, θ, y ϕ se calcula la matriz de rotación RPi

Bi, luego se

calculan li y αi para finalmente obtener el ciclo útil Wi.

Al pretender aplicar la cinemática del sistema anteriormente descrita debe disponersede los parámetros que corresponden a sus condiciones iniciales y constantes, son losque se nombran en el Cuadro 2.1.

Para medir los ángulos βi cuyos valores se requieren para calcular el ángulo αi, es ne-cesario tener definida la ubicación y orientación de los ejes coordenados que en estecaso son x y y, en la Figura 2.12 (a) se muestra la ubicación de los ejes coordenadoscon respecto a las levas de cada servomotor (en color rosa) y la medición de su corres-pondiente β. Por otro lado para calcular las coordenadas xp, yp, zp, xb, yb y zb de lospuntos p y b (ver Figura 2.6) es indispensable tener establecida la distribución espacialtanto de los servomotores en la placa inferior como de las junturas esféricas en la placasuperior como se ve en las Figuras 2.12 (b) y 2.12 (c). Esto con el fin de calcular h0 y α0que también son constantes propias de las condiciones iniciales del sistema las cualesse hallan con (2.48) y (2.45).

A partir de los ángulos especificados tanto para la distribución de los servomotorescomo de las junturas se hallan las coordenadas de los puntos p y b cuyos valores se cal-culan con ayuda de trigonometría básica para las uniones con cada servomotor tantocon la placa superior como para la placa inferior, como se ve en el Listado de código2.2.

28

2.4. Aplicación de la cinemática de la plataforma Stewart

Cuadro 2.1: Constantes propias de la estructura física de la plataforma.

Indicador Equivalentenumérico

Descripción

bi 71mm Distancia entre el punto medio de la placa inferior yla unión leva/rotor del i−ésimo servomotor.

pi 56.8mm Distancia entre el punto medio de la placa superior yla juntura del i−ésimo brazo rígido de la plataforma.

Si 129mm Longitud del i−ésimo brazo rígido.ai 12.5mm Longitud de la leva del i−ésimo servomotor, medida

desde la unión leva/rotor.

βi β1 = 90°β2 = 270°β3 = 210°β4 = 30°β5 = 330°β6 = 150°

Ángulo fijo que forma la leva del i−ésimoservomotor con respecto a los ejes coordenados x y y.

W0i W0

1 = 1398W0

2 = 1106W0

3 = 1430W0

4 = 1202W0

5 = 1576W0

6 = 1086

Ciclo útil requerido para que el i−ésimo servomotormueva la leva a su posición inicial, dado enµsegundos/radian.

r r1 = 1650/135r2 = 800/45r3 = 1700/135r4 = 930/45r5 = 1850/135r6 = 780/45

Ciclo útil requerido para que el i−ésimo servomotormueva la leva al máximo grado de rotacióndeterminado previamente, dado enµsegundos/grado.Estos valores se obtienen mediante la utilización dela ecuación deducida de la recta del ciclo útil vsgrado de la hélice de cada servo con respecto a lahorizontal. Para el motor impar son 135° y para elpar son 45° (ver Anexo 3, sección C.2).

Listado de código 2.2: Código python para hallar las coordenadas del punto p y el punto b.1 # d e f i n i c i o n de l o s a n g u l o s de u b i c a c i o n de l o s m o t o r e s2 ang_base = ( 3 4 4 , 1 6 , 1 0 4 , 1 3 6 , 2 2 4 , 2 5 6 )3 # d e f i n i c i o n de l o s a n g u l o s de u b i c a c i o n de l a s j u n t u r a s4 ang_plamov = ( 3 1 5 . 3 , 4 4 . 7 , 7 5 . 3 , 1 6 4 . 7 , 1 9 5 . 3 , 2 8 4 . 7 )5 # m a t r i z b i d i m e n s i o n a l de 6x3 u b i c a c i o n j u n t a s b a s e

29

2. PLANTA SELECCIONADA

y

y

xβ5

y

xβ6

y

xβ1

y

xβ2

β3

y

xβ4

(a)

servo 1servo 2

servo 3

servo 4 servo5

servo 6

x

y

32°

120°

344°16°

104°

136° 224°

356°

(b)

(c)

x

y

junta 1junta 2

junta 3

junta 4 junta 5

junta 6

315,3°49,7°

75,3°

164,7° 195,3°

284,7°

Figura 2.12: Distribución espacial en las placas superior e inferior de la plataforma Stewart [Autores].(a) Medición de los ángulos β. (b) Ubicación de los motores en la placa base. (C) Ubicación de lasjunturas en la placa superior.

6 uniones_ba = numpy . zeros ( ( 6 , 3 ) )7 # m a t r i z b i d i m e n s i o n a l de 6x3 u b i c a c i o n j u n t a s p l a c a mov i l8 uniones_pla = numpy . zeros ( ( 6 , 3 ) )9

10 for i in range ( 6 ) :11 # en e s t e metodo s e c a l c u l a n xb yb para cada s e r v o12 bx=rad_bas * math . cos ( math . radians ( ang_base [ i ] ) )13 by=rad_bas * math . s i n ( math . radians ( ang_base [ i ] ) )14 uniones_ba [ i ] [ 0 ] =bx15 uniones_ba [ i ] [ 1 ] =by16 uniones_ba [ i ] [ 2 ] =017 # en e s t e metodo s e c a l c u l a n xp yp para cada s e r v o18 px=rad_plac * math . cos ( math . radians ( ang_plamov [ i ] ) )19 py=rad_plac * math . s in ( math . radians ( ang_plamov [ i ] ) )20 uniones_pla [ i ] [ 0 ] =px21 uniones_pla [ i ] [ 1 ] =py22 uniones_pla [ i ] [ 2 ] =0

30

2.4. Aplicación de la cinemática de la plataforma Stewart

Teniendo las anteriores coordenadas guardadas en las matrices uniones_ba [6][3]

y uniones_pla [6][3] se procede a aplicar la ecuación (2.5) calculando simultánea-mente la matriz de rotación y usando la matriz de traslación como se muestra en elListado de código 2.3.

Listado de código 2.3: Código python para calcular qi y li para cada brazo rígido de la plataformaStewart.

1 # m e d i c i o n e s r e a l e s2 rad_bas =713 rad_plac =56.84 s =1295 a =12.56 hi =124.367 # m a t r i z b i d i m e n s i o n a l de 6x3 q l o n g i t u d e n t r e e l c e n t r o de l a p l a c a

b a s e y p i8 q = numpy . zeros ( ( 6 , 3 ) )9 # m a t r i z b i d i m e n s i o n a l de 6x3 l o n g i t u d e n t r e b i y p i

10 l = numpy . zeros ( ( 6 , 3 ) )11 ps i =012 t h e t a =013 phi=014 x=015 y=016 z=017 T=[x , y , z+hi ]18 # a s i g n a c i o n de t e r m i n o s para s i m p l i f i c a r e l c a l c u l o de l a m a t r i z de

r o t a c i o n19 E=math . s in ( math . radians ( phi ) )20 F=math . s in ( math . radians ( t h e t a ) )21 G=math . s in ( math . radians ( ps i ) )22 H=math . cos ( math . radians ( phi ) )23 I =math . cos ( math . radians ( t h e t a ) )24 J =math . cos ( math . radians ( ps i ) )25 m=uniones_ba26 n=uniones_pla27 for i in range ( 6 ) :28 q [ i ] [ 0 ] = ( ( J * I *n [ i ] [ 0 ] ) +(((−G*H) +( J * F *E ) ) *n [ i ] [ 1 ] ) + ( ( (G*E ) +( J * F *H) )

*n [ i ] [ 2 ] ) ) +T [ 0 ]29 q [ i ] [ 1 ] = ( (G* I *n [ i ] [ 0 ] ) + ( ( ( J *H) +(G* F *E ) ) *n [ i ] [ 1 ] ) +((− J *E ) + ( (G* F *H) )

*n [ i ] [ 2 ] ) ) +T [ 1 ]30 q [ i ] [2 ]=( ( −F *n [ i ] [ 0 ] ) +( I *E*n [ i ] [ 1 ] ) +( I *H*n [ i ] [ 2 ] ) ) +T [ 2 ]31 l [ i ] [ 0 ] = q [ i ][0] −m[ i ] [ 0 ]32 l [ i ] [ 1 ] = q [ i ][1] −m[ i ] [ 1 ]33 l [ i ] [ 2 ] = q [ i ][2] −m[ i ] [ 2 ]

Con qi y li calculados se aplica la ecuación (2.41) para hallar α que es el ángulo de ro-tación para cada hélice del servo según las coordenadas de traslación y rotación dadascomo se ve en la Lista de código 2.4.

31

2. PLANTA SELECCIONADA

Listado de código 2.4: Código python para calcular el ángulo α de cada hélice de los servomotores.1 # d e f i n i c i o n de l o s a n g u l o s b e t h a l e v a con r e s p e c t o xy2 ang_betas = ( 9 0 , 2 7 0 , 2 1 0 , 3 0 , 3 3 0 , 1 5 0 )3 # m a t r i z b i d i m e n s i o n a l de 6x1 a n g u l o s a l f a4 ang_al fa = numpy . zeros ( ( 6 , 1 ) )5 c =q6 d = l7 m=uniones_ba8 n=uniones_pla9 # m a t r i z b i d i m e n s i o n a l de 6x1

10 h0 = numpy . zeros ( ( 6 , 1 ) )11 ang_al fa0 = numpy . zeros ( ( 6 , 1 ) )12 for i in range ( 6 ) :13 L = ( ( d [ i ] [ 0 ] * * 2 ) +(d [ i ] [ 1 ] * * 2 ) +(d [ i ] [ 2 ] * * 2 ) ) +( a * * 2 )−(s * * 2 )14 M=2* a * ( c [ i ][2] −m[ i ] [ 2 ] )15 N=2* a * ( ( ( math . cos ( math . radians ( ang_betas [ i ] ) ) ) * ( c [ i ][0] −m[ i ] [ 0 ] ) ) + ( (

math . s in ( math . radians ( ang_betas [ i ] ) ) ) * ( c [ i ][1] −m[ i ] [ 1 ] ) ) )16 H=math . degrees ( math . as in ( L/(math . s q r t (M**2+N* * 2 ) ) ) )17 J =(math . degrees ( math . atan2 (N,M) ) )18 ang_al fa [ i ]=H−J19 h0 [ i ] = ( math . s q r t ( ( s * * 2 ) +( a * * 2 ) −(( c [ i ][0] −m[ i ] [ 0 ] ) * * 2 ) −(( c [ i ][1] −m

[ i ] [ 1 ] ) * * 2 ) ) )−c [ i ] [ 2 ]20 L0 =2*( a * * 2 )21 M0=2* a * ( h0 [ i ]+ c [ i ] [ 2 ] )22 ang_al fa0 [ i ] = ( math . degrees ( math . as in ( L0/(math . s q r t (M0**2+N* * 2 ) ) ) )

)−(math . degrees ( math . atan2 (N, M0) ) )

Por ultimo se procede a calcular el ancho de pulso introducido como señal de controlpara los servomotores necesario para que roten αi grados, este pulso Wi se obtiene co-mo se ve en la Lista de Código 2.5. Es necesario aclarar que las constantes de r y W0 seobtienen a través de la aplicación de las curvas del comportamiento de los servomoto-res las cuales se especifican en el apéndice C sección C.2.

Listado de código 2.5: Código python para calcular el ancho de pulso Wi necesario en cadaservomotor.

1 # c o n s t a n t e s r para l o s s e r v o s , p u l s o r e q u e r i d o para que e ls e r v o r o t e a l a max p o s i c i o n

2 r =(1650/135 ,800/45 ,1700/135 ,930/45 ,1850/135 ,780/45)3 # p u l s o a c t u a l d e l s e r v o4 W = numpy . zeros ( ( 6 , 1 ) )5 # p u l s o en micro s e g r e q u e r i d o para que l o s s e r v o s r o t e n a l a

p o s i c i o n i n i c i a l6 W0 = ( 1 3 9 8 , 1 1 0 6 , 1 4 3 0 , 1 2 0 2 , 1 5 7 6 , 1 0 8 6 )7 v=ang_al fa8 o=ang_al fa09 for i in range ( 6 ) :

32

2.5. Bola y plato

10 # c o n d i c i o n para motor impar11 i f ( i %2)==0:12 #W en micro s e g13 micro1 =(W0[ i ] ) −((v [ i ]−o [ i ] ) * r [ i ] )14 # c i c l o u t i l en p o r c e n t a j e15 W[ i ]= ( micro1 ) /10016 # motor par17 e lse :18 micro1= (W0[ i ] ) + ( ( v [ i ]−o [ i ] ) * r [ i ] )19 W[ i ] = ( micro1 ) /100

Como se ve en la Figura 2.11 cuando ya se tiene determinado el modelo cinemáticosolo resta definir las variables de entrada en cada instante de tiempo que son las derotación y traslación, para precisarlas es necesario partir de un punto de referencia yen este caso se obtiene gracias al balance que se le debe proporcionar a la esfera quegira sobre la placa oscilante.

2.5 BOLA Y PLATO

Ya se ha analizado la dinámica de la plataforma Stewart, ahora corresponde la observa-ción del subsistema bola y plato acoplado a dicha plataforma como se ve en la Figura2.13, con el fin tener la información necesaria para realizar el control del sistema com-pleto que como se ha dicho se compone de dos subsistemas: bola y plato y plataformaStewart.

Mantener en equilibrio el desplazamiento de una esfera maciza al rededor de un puntosobre un plato que oscila, es el objetivo del sistema [17] y para lograrlo se debe aplicaruna acción de control que satisfaga la dinámica de la bola y el plato [18] [19].

Mediante la ecuación de Lagrange (2.52) se puede simplificar el análisis matemático dela interacción dinámica entre la bola y el plato hallando la energía cinética Ec (t) y laenergía potencial Ep (t) [20].

L (t) = Ec (t)− Ep (t) (2.52)

La energía cinética del sistema puede dividirse entre la rotacional y la traslacional (gra-cias a los grados de libertad), a su vez cada una de estas puede ser analizada como doscomponentes, una para el plato y otra para la esfera [17] y por lo tanto existen cuatrocomponentes con los cuales se expresa la energía cinética del sistema como se ve en(2.53).

Ec (t) = Erot bola + Etras bola + Erot pla + Etras pla (2.53)

Para continuar con el análisis dinámico del sistema bola y plato es necesario tenerclaros los supuestos que constituyen la base de la aplicación de los principios físicosplanteados [21]:

33

2. PLANTA SELECCIONADA

Pantalla

Esfera metálica

Figura 2.13: Sistema bola y plato acoplado a plataforma Stewart [Autores].

Cuando la esfera se desplaza sobre el plato, rueda no se desliza.

La esfera es maciza, totalmente homogénea y simétrica.

La fricción entre el plato y la esfera es despreciable.

Durante la toda dinámica la esfera está en continuo contacto con el plato.

Aclaradas las condiciones físicas del sistema en las que se basa el análisis, se procede ahallar la equivalencia de los términos en (2.53).

La energía cinética rotacional de un cuerpo rígido que gira en torno a un eje fijo de-pende del momento de inercia y de la velocidad angular del cuerpo, se define comoEcr = 1

2 Iω2 donde I y es el momento de inercia y ω es la velocidad angular que parauna esfera de masa m, radio R y velocidad de movimiento a lo largo de un sistemacoordenado horizontal v = x2 + y2, corresponden a Ibola =

25 mR2 y ωbola =

vR [17].

En el caso del plato su velocidad angular θ se expresa como θ2 = θ2x + θ2

y y su velocidadlineal debido a la rotación está dada por S2 = xθx + yθy.

Erot bola =12 Ibolaω2

bola =12 Ibola

vR

2 Etras bola =12 mv2 (t)

Erot pla =12 Ibola θ2 (t) Etras pla =

12 ms2 (t)

34

2.5. Bola y plato

Sumando todos los componentes de la energía cinética traslacional y rotacional delsistema se obtiene (2.54).

Ec =12

Ibola

vR

2+

12

mv2 (t) +12

Ibola θ2 (t) +12

ms2 (t) (2.54)

Para terminar con las expresiones que componen (2.52) se halla la energía potencial delsistema, sabiendo que por definición esta corresponde a Ep = −mgh donde la alturah se expresa como h = x sin (θx) + y sin

θy

[17] y m y g representan la masa y lagravedad respectivamente, reemplazando estos términos y (2.54) en (2.52) se halla laecuación de Lagrange (ver (2.55)).

L (t) =12

Ibola

vR

2+

12

mv2 (t) +12

Ibola θ2 (t) +12

ms2 (t) + mgx sin (θx) + y sin

θy

L (t) =12

Ibola

θ2

x + θ2y +

x2

R2 +y2

R2

+

12

m

x2 + y2 +xθx + yθy

2+mg

x sin (θx) + y sin

θy

(2.55)

Con el método de Lagrange se simplifica el modelo matemático del sistema, sin em-bargo es necesario aplicar las ecuaciones de Euler- Lagrange (ver (2.56) donde L es laecuación de Lagrange, qi es la posición en la dirección i y Qi es la componente de fuerza[18]) para determinar las ecuaciones diferenciales del sistema y así hallar una repre-sentación de estado[19].

ddt

∂L∂qi

− ∂L

∂qi= Qi (2.56)

Se ecuaciones de Euler-Lagrange en este caso se aplican para: La posición de la bola enx (ver (2.57)), posición de la bola en y (ver (2.58)).

ddt

∂L∂x

− ∂L

∂x= 0

ddt

∂L∂x

= Ibola

R2 x + mx ∂L∂x = mxθ2

x + mθxyθy + mg sin (θx)

x =mxθ2

x + θxyθy + g sin (θx)

IbolaR2 + m

(2.57)

ddt

∂L∂y

− ∂L

∂y= 0

∂L∂y = Ibola

R2 y + my ∂L∂y = mxθx θy + myθ2

y + mg sinθy

35

2. PLANTA SELECCIONADA

y =m

xθx θy + yθ2y + g sin

θy

IbolaR2 + m

(2.58)

Si se asume que el rango de rotación del plato es pequeño se pueden hacer las si-guientes aproximaciones que llevan a la linealización del sistema [18]: sin (θx) ≃ θx,sinθy

≃ θy, myθx θy ≃ 0, mxθ2x ≃ 0, m ˙xθx θy ≃ 0 y myθ2

y ≃ 0[19]. Si se reem-plazan estas aproximaciones en (2.57) y (2.58) se obtiene (2.59) y (2.60) sabiendo queIbola =

25 mR2 y g ≃ 9, 8 [20].

x =mgθx

IbolaR2 + m

→ x =57

gθx (2.59)

y =mgθy

IbolaR2 + m

→ y =57

gθy (2.60)

Haciendo la transformada de Laplace de (2.59) y (2.60) se obtiene (2.61) y (2.62).

Gx (s) =θx (s)X (s)

=7s2 (2.61)

Gy (s) =θy (s)Y (s)

=7s2 (2.62)

Para aplicar la función de transferencia encontrada, es necesario discretizar el procesohaciendo uso de la técnica del retenedor de orden 0 como se ve a continuación.

G (s) =7s2

G (z) =

1 − z−1

Z

G (s)

s

G (z) =

1 − z−1

Z

7s3

(2.63)

Resolver (2.63) requiere saber que Z

2/s3 equivale a T2z(z+1)(z−1)3 donde T es el tiempo

de muestreo, y a partir de ello se obtiene (2.64) como se muestra a continuación.

G (z) =

z − 1z

Z

3,5

2s3

G (z) = 3,5

z − 1

z

T2z (z + 1)

(z − 1)3

G (z) = 3,5

T2 (z + 1)

(z − 1)2

36

2.5. Bola y plato

G (z) = 3,5T2 (z + 1)

z2 − 2z + 1(2.64)

La discretización obtenida se aplica para el movimiento de la esfera en ambos ejescoordenados, por lo tanto (2.64) puede ser usada para describir el movimiento de laesfera a lo largo de los ejes x y y.

Nótese que el peso de la esfera no tiene ninguna incidencia en la dinámica del sistemadebido a que su masa no es un factor que esté presente en su función de transferencia,sin embargo m si es un factor que modifica la lectura de posición de la esfera gracias aque el sensor de posición es una pantalla táctil resistiva, entre más presión se ejerza enalguno de sus puntos más grande es la variación en resistencia y por lo tanto el voltajeentregado es mayor.

37

Capítulo

3 Control PID

CONTENIDOS DEL CAPÍTULO

3.1 GENERALIDADES

3.2 DISCRETIZACIÓN DE LA ESTRA-TEGIA DE CONTROL

3.3 ALGORITMO DE CONTROL IM-PLEMENTADO

3.4 RESULTADOS

La estrategia de control clásico aplicada a la planta bola y plato- plataforma Stewart,se documenta en el presente capitulo. Se nombran algunos conceptos básicos que seimplementan en la práctica y se adiciona el código python empleado para controlar elsistema.

3.1 GENERALIDADES

En la Figura 3.1 se puede observar que para controlar la planta seleccionada es nece-sario aplicar un PID para controlar la posición de la esfera en cada eje, es decir un PIDpara la posición en x y otro para y.

Las señales tratadas en el desarrollo del control aplicado al sistema Plataforma Stewart-Bola y plato que se illustran en la Figura 3.1 se definen y se explican a continuación:

Referencia xbre f , ybre f : Es un punto conocido en la superficie de la pantalla táctil,en el cual se pretende ubicar la esfera mediante la aplicación del control sin im-portar la posición actual en la cual se encuentre. Se deduce a partir de la lecturaen mili-voltios obtenida del sensor de posición para un punto específico, se dauna para la posición en x (máximo 200 y mínimo 15) y otra para la posición en y(máximo 90 y mínimo 15).

39

3. CONTROL PID

PIDx

+-

θx Proceso

ybre f

ref

Detecciónxb, yb

PIDy

PlataformaStewart

Bolaθy

+-

xbre f

ref

xerror

yerror

x, yy Plato

Figura 3.1: Diagrama de bloques control PID proceso [Autores].

Error xerror, yerror: Es la diferencia entre cada referencia y la posición de la esferaen x y y sobre la pantalla en cada instante de tiempo, es la entrada del control, seobtiene a partir de la lectura del sensor de posición para cada ciclo.

Señal de control θx, θy: Es la salida del control y en este caso corresponde algrado de inclinación de las levas de cada servomotor al rededor de los ejes x o y.Esta señal es la que se ingresa a la cinemática de la plataforma y así lograr que laplaca móvil se mueva de manera adecuada para que la esfera se desplace al puntodeseado. De esta señal depende la energía que deba inyectarse al sistema, es decirque entre más grande sea el ángulo más grande será el movimiento angular delos servomotores.

Señal de salida x, y: Es la posición de la esfera que resulta inmediatamente des-pués de haber aplicado el control, con esta medida se realimenta el sistema.

PID hace referencia a la combinación de las acciones de control integral, proporcionaly derivativo [3] cuyo comportamiento presenta tanto las ventajas como las desventajasde cada acción de control como si fueran implementadas de manera individual (vertabla 3.1). En el tiempo continuo (dominio de la frecuencia) la función de transferenciade las tres acciones aplicadas en paralelo se representan como se ve en (3.1), donde kdes la constante de control derivativa, kp la proporcional y ki la integral.

c (s) =kds2 + kps + ki

s(3.1)

Siendo este un caso de implementación del control PID en una tarjeta digital la dicre-tización tanto de las acciones de control como de la función de transferencia hallada apartir del comportamiento dinámico del proceso bola y plato- plataforma Stewart.

40

3.1. Generalidades

Cuadro 3.1: Ventajas y desventajas de cada acción de control PID.

Ventajas Desventajas

Proporcional

Si aumenta kp larespuesta se hace másrápida y disminuye elerror en estadoestacionario.

Si existe ruido a lasalida, este seráamplificado gracias a alaumento del kp. Enalgunos casos provocaexcesiva oscilación.

Integral

Cuando se agregacomponente ki seasegura un error enestado estable muypequeño.Asegura robustez yminimiza la presenciade ruido

Puede que gracias a suacción la respuesta sevuelva lenta y/ooscilatoria

DerivativoCon kd el sistemaresponde másrapidamente

Puede maximizar elruido, debido a susensibilidad ante él.Nunca puede aplicarsesola porquedescontrola el sistema

El análisis de los resultados obtenidos al aplicar el control requiere de la observación deparámetros como los que se nombran a continuación, cabe aclarar su definición puedeverse de manera grafica como se ilustra en la Figura 3.2 [3]:

Velocidad de respuesta o tiempo de estabilización (ts): Es el tiempo que toma alsistema alcanzar una magnitud específica al rededor del punto de referencia yque se mantenga dentro de más o menos una ventana dentro de dicha magnitud.Según el criterio dado en [3] ts puede hallarse como se ve en (3.2), donde τ es eltiempo que transcurre cuando la señal ha llegado al 63,3 % de la amplitud finalVf in.

ts = 4τ (3.2)

Error de estado estacionario (ess): Es la diferencia entre la referencia y el valoractual de la salida después de que ha transcurrido el tiempo de estabilización,puede ser expresado matemáticamente como se ve en (3.3) donde re f es la refe-rencia del sistema, Vf in es el valor en el que se mantiene la curva en estado establey Vini es la amplitud de la curva de reacción en el tiempo t = 0.

ess =re f − Vf in

re f − Vini· 100 % (3.3)

41

3. CONTROL PID

Máximo sobreimpulso (OVS): Es el pico máximo que presenta la respuesta delsistema con respecto a la referencia, la estabilidad del sistema tiene una estrecharelación con este parámetro que debe tener un valor no superior a un porcentajeespecífico, puede darse en porcentaje y se calcula como se ve en (3.4).

OVS % =OVS − Re f

Re f· 100 % (3.4)

Figura 3.2: Caracterizacióngrafica de los parámetros dedesempeño para una curva dereacción (grafica basada en [3]capitulo 4 página 151).

ess

Re f

Vini

OVS

tp

ts

Vf in

t

También se requiere que las variables de control estén dentro de los límites admisibles(lo cual depende de la dinámica del sistema), es decir que para emular el comporta-miento de una planta es necesario tener en cuenta las condiciones de operación que setienen en la realidad.

3.2 DISCRETIZACIÓN DE LA ESTRATEGIA DE CONTROL

Partiendo de (3.1) y aplicando la equivalencia de (3.5) se efectúa el proceso de discreti-zación.

s =2T

z − 1z + 1

(3.5)

Reemplazando (3.5) en (3.1) se obtiene (3.6).

C (z) =

kp +

kiT2 + 2kd

T

z2 +

kiT − 4kd

T

z +

−kp +

kiT2 + 2kd

T

z2 − 1

(3.6)

El control PID discreto que se ve en (3.6) puede simplificarse haciendo un cambio devariable para sustituir las constantes como se ve en (3.7) donde q0, q1 y q2 tienen laequivalencia del coeficiente numérico de cada factor z que se ve en (3.6).

42

3.3. Algoritmo de control implementado

C (z) =q0z2 + q1z + q1

z2 − 1

C (z) =q2z−2 + q1z−1 + q0

1 − z−2 (3.7)

La sustitución de variables se hizo para encontrar de una manera más fácil el valor delas constantes de control en base a la función de transferencia discreta del proceso quese pretende controlar (ver (2.64)).

Teniendo en cuenta [22] la función de transferencia del control PID expresado en (3.6)puede ser escrita como se ve en (3.8), por lo tanto las equivalencias de las constantesde control pasan a ser: q0 = kp + ki + kd, q1 = −kp − 2kd y q2 = kd.

C (z) =kp + ki + kd

−kp + 2kd

z−1 + kdz−2

1 − z−1 (3.8)

3.3 ALGORITMO DE CONTROL IMPLEMENTADO

Para la implementación de una función de transferencia en el dominio de z en unalgoritmo para su procesamiento digital, debe efectuarse su conversión a ecuación endiferencias o que es lo mismo la transformada inversa de z.

Mediante el siguiente proceso se obtiene la ecuación en diferencias que se ve en (3.9).

Y (z)U (z)

=q2z−2 + q1z−1 + q0

1 − z−1

Y (z)

1 − z−1= U (z)

q2z−2 + q1z−1 + q0

Y (z)− Y (z) z−1 = U (z) q2z−2 + U (z) q1z−1 + U (z) q0

y [n] = y [n − 1] + q2u [n − 2] + q1u [n − 1] + q0U [n] (3.9)

En el listado de código 3.1 se puede ver el algoritmo PID que se implementó para con-trolar la posición de la esfera, es necesario el manejo de memorias que se denominancomo Mn en las cuales se almacenan estados anteriores tanto de la salida como deentrada del control y [n] y u [n] respectivamente como se puede ver en (3.9).

43

3. CONTROL PID

Listado de código 3.1: Algoritmo PID discreto en lenguaje de programación python.1 import time2 # i n i c i a l i z a c i o n de c o n s t a n t e s y memorias3 k = 3 . 5 , M1x=0 , M2x=0 , M3x=0 , M4x=0 , M5x=04 M1y=0 , M2y=0 , M3y=0 , M4y=0 , M5y=0 , T=05 s e t _ p o i n t x =06 entx =0 # e s t a e s l a e n t r a d a de l a pos a c t u a l de l a b o l a en x7 se t_po in ty =08 enty=0 # e s t a e s l a e n t r a d a de l a pos a c t u a l de l a b o l a en x9 while ( 1 ) :

10 # c o n t r o l de p o s i c i o n en x11 q0x=−k12 q1x=−3*k13 q2x=−k14 errorx=set_pointx−entx15 M1x=errorx16 M4x=( q2x *M3x) +( q1x *M2x) +( q0x *M1x) +M5x17 M3x=M2x18 M2x=M1x19 M5x=M4x20 # c o n t r o l de p o s i c i o n en y21 q0y=−k22 q1y=−3*k23 q2y=−k24 errory=set_pointy−enty25 M1y=errory26 M4y=( q2y *M3y) +( q1y *M2y) +( q0y *M1y) +M5y27 M3y=M2y28 M2y=M1y29 M5y=M4y30 # t i e mp o de m u e s t r e o31 time . s leep ( T )

Aplicando un control para la posición en x y otro para la posición en y se logra deter-minar cuál será el ángulo de rotación de la placa superior móvil en cualquier instantede tiempo, teniendo en cuenta la posición actual de la esfera sobre la pantalla táctilresistiva.

Haciendo una analogía con la ecuación en diferencias del control PID (3.9) y el listadode código 3.1, M4x y M4y corresponde a y [n], M5x y M5y a y [n − 1], M3x y M3y au [n − 2], M2x y M2y a u [n − 1] y M1x y M1y a u [n]. Así teniendo como entrada la po-sición de la esfera se determina mediante el cálculo del error los ángulos de rotación θxy θy del sistema bola y plato o si quiere verse en la notación descrita para la cinemáticade la plataforma Stewart pueden llamarse θ y φ.

44

3.4. Resultados

3.4 RESULTADOS

Se hace la observación de la posición de la esfera (tanto en x como en y) con respecto altiempo evaluando diversos valores de constantes del control, al graficar estos paráme-tros resulta la curva de reacción del proceso. Es claro que para realizar un experimentoen donde se evalúan diferentes constantes de control se hace necesario partir de la mis-ma señal estímulo, por lo tanto se dispuso de las mismas condiciones experimentalespara la determinación de dicha curva de reacción que se genera cuando se evalúa cadacombinación de constantes de control.

3.4.1 Experimento

En la práctica para esta planta la señal estímulo es la acción de ubicar la esfera encualquier punto de la pantalla resistiva, sin ejercer ningún tipo de fuerza ni presiónsobre ella (evitando perturbaciones apreciables), para que así se genere una lectura deposición y se ejecute el algoritmo de control para obtener una curva de reacción.

En este caso para que no exista lugar a diferencias entre las condiciones iniciales de unexperimento y otro, cada vez se ubica la esfera en el mismo punto de la superficie de lapantalla táctil (Vminx y Vminy según figura 2.4) y acto seguido se ejecuta el algoritmo dela lista de código 3.1; para luego obtener la curva de reacción del proceso, la cual no esmás que la posición de la esfera en la pantalla en cada instante de tiempo. Se extraen 2de estas curvas por cada experimento realizado, una de ellas corresponde a la posiciónen x y la otra a la posición en y.

En las figuras que muestran las curvas de reacción se puede observar la señal de color“vinotinto” que es la posición de la esfera en el eje x con respecto al tiempo y en color“rosa” la posición en y; la referencia está marcada de color gris cuya magnitud es 110 y45 para los ejes x y y respectivamente, también se indica en la grafica el máximo sobre-impulso con un circulo negro especificando el instante de tiempo en el que ocurre y sumagnitud. Por otro lado, también se grafica el recorrido de la esfera sobre la superficiede la pantalla hasta llegar a la referencia con el fin de evidenciar que el control aplicadoprovoca o no que la esfera se salga de los límites físicos de operación, es decir que nodesborde el área de la pantalla.

En las graficas de la respuesta del sistema o curvas de reacción, puede evidenciarse elefecto que ejerce sobre la dinámica de la planta la variación de las constantes de controlkp, ki y kd, a partir de estas magnitudes se calculan los parámetros q0, q1 y q2 como seve en (3.8).

Experimento 1: En la Figura 3.3 se puede observar que la curva presenta un OVSdel 11,81 % para x y del 91,11 % para y, un ts de 3,065 segundos para x y 1,22segundos para y, un ess 2,083 % para x y 22,58 % para y. La respuesta con estas

45

3. CONTROL PID

0 1 2 3 4 5 6

50

100

150

200

Tiempo [s]

Posi

ción (tp = 1.2916; x = 123)

(tp = 0.76317; y = 86)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantalla

Eje

xpa

ntal

la

(a) (b)

Figura 3.3: (a) Curva de reacción para las constantes de control kpxy = −0, 092, kixy = 0 ykdxy = −0, 76. (b) Recorrido de la esfera en la superficie de la placa móvil.

constantes presenta un sobreimpulso muy alto en especial para el control de po-sición en y, además también se observa una muy baja robustez debido a que anteuna perturbación muy grande no es capaz de llegar a la estabilidad sino que sevuelve oscilatorio.

Experimento 2: En la Figura 3.4 se puede ver que la respuesta es oscilatoria por lotanto el sistema nunca llega al estado estable, el motivo de dicho comportamientopuede atribuirse a que los valores para el control proporcional son muy altos. Eneste orden de ideas no es necesario calcular los parámetros de desempeño debidoa que la respuesta del sistema no es comparable con otras que si lo estabilizan.

Experimento 3: En la Figura 3.5 se puede evidenciar que cuando se introduce unamagnitud grande en la constante del control integral en este caso 0.001; la plantase desestabiliza, presenta movimientos bruscos y la respuesta se va al infinito taly como se ve en el recorrido de la esfera en la superficie de la pantalla, se muevey desborda.

Experimento 4: Cuando se introduce una magnitud muy pequeña en la constan-te integral, en este caso -0.001 el sistema presenta una disminución significativadel ess sin embargo también se perciben picos repentinos en estado estable lo cualpuede llegar a sacar al sistema de la cercanía con la referencia. En este caso parala Figura 3.6 se calcula un un OVS del 27,27 % para x y del 93,3 % para y, un ts de2,66 segundos para x y 1,04 segundos para y, un ess 1,075 % para x y 0 % para y.Entre más disminuya la constante integral con respecto a la proporcional y deri-

46

3.4. Resultados

0 5 10 15 20

50

100

150

200

Tiempo [s]

Posi

ción

(tp = 1.8048; x = 104)(tp = 0.53087; y = 88)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantalla

Eje

xpa

ntal

la

(a) (b)

Figura 3.4: (a) Curva de reacción para las constantes de control en x con valores kpx = −0, 04,kix = 0 y kdx = −0, 76 y las constantes de control en y de valores kpy = −0, 1, kiy = 0, kdy =−0, 25. (b) Recorrido de la esfera en la superficie de la placa móvil.

0 2 4 6 8 10 12

50

100

150

200

Tiempo [s]

Posi

ción

(tp = 1.1228; x = 106)(tp = 8.357; y = 90)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantalla

Eje

xpa

ntal

la

(a) (b)

Figura 3.5: (a) Curva de reacción para las constantes de control en x con valores kpx = −0, 92,kix = 0, 001 y kdx = −0, 76 y las constantes de control en y de valores kpy = −0, 92, kiy = 0,001,kdy = −0, 76. (b) Recorrido de la esfera en la superficie de la placa móvil.

47

3. CONTROL PID

0 2 4 6 8 10

50

100

150

200

Tiempo [s]

Posi

ción

(tp = 1.1262; x = 140)

(tp = 0.77226; y = 87)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantalla

Eje

xpa

ntal

la

(a) (b)

Figura 3.6: (a) Curva de reacción para las constantes de control en x con valores kpx = −0, 92,kix = −0, 001 y kdx = −0, 76 y las constantes de control en y de valores kpy = −0, 92, kiy = −0,001,kdy = −0, 76. (b) Recorrido de la esfera en la superficie de la placa móvil.

vativa, la placa superior de la plataforma se mueve más bruscamente oscilandoeternamente y con desborde de la esfera.

Experimento 5: Si se introduce una constante derivativa muy grande el sistemapresenta una oscilación eterna con movimientos bruscos que hacen salir a la es-fera del área de la pantalla como se ve en la Figura 3.7.

En base a las observaciones experimentales se pueden hacer las siguientes afirmacio-nes: Cuando se logra un OVS bajo mediante la disminución del control proporcionaly/o del derivativo, el error en estado estacionario aumenta y se el sistema pierde ro-bustez haciéndose más lento; cuando se aumenta mucho el control derivativo y/o elproporcional se presenta un rizado grande de la señal en estado estable y surgen picosrepentinos sin embargo el sistema estabiliza más rapidamente pero el ess aumenta asícomo el OVS; Si se aumenta el control integral el sistema converge más eficientementehacia la referencia y por lo tanto el ess disminuye pero el OVS aumenta (ver tabla 3.2).

La exploración de la respuesta del sistema ante las diferentes magnitudes de las cons-tantes de control, permite establecer un precedente para determinar en qué rangos devalores pueden estar las constantes, para lograr parámetros de desempeño admisiblesque reflejen una estabilidad del sistema y así hallar una respuesta favorable.

En la tabla 3.2 se muestran los parámetros de desempeño obtenidos para cada combi-nación de constantes de control.

48

3.4. Resultados

0 2 4 6 8 10 12 14

50

100

150

200

Tiempo [s]

Posi

ción

(tp = 10.945; x = 202)

(tp = 7.217; y = 90)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantallaEj

ex

pant

alla

(a) (b)

Figura 3.7: (a)Curva de reacción para las constantes de control en x con valores kpx = −0, 04,kix = 0 y kdx = 0, 74 y las constantes de control en y de valores kpy = −0, 1, kiy = 0, kdy = 0, 0022.(b) Recorrido de la esfera en la superficie de la placa móvil.

Cuadro 3.2: Constantes de control con las que se consigue la estabilización del sistema y su relacióncon los parámetros de desempeño para el control PID.

Constantes ess[ %] OVS[ %] ts[seg]kp = −0, 092, ki = 0, kd = −0, 76 2,083 11,81 3,065kp = −0, 043, ki = 0, kd = −0, 35 1,81 42,72 2,16kp = −0, 038, ki = 0, kd = −0, 35 4,2 14,54 2,9kp = −0, 035, ki = 0, kd = −0, 35 10,52 9,09 2,28kp = −0, 032, ki = 0, kd = −0, 4 10,41 1,81 2,709

kp = −0, 092, ki = −0, 001, kd = −0, 76 10,75 27,27 2,66kp = −0, 04, ki = 0, kd = −0, 35 4,166 20,9 0,7994

kp = −0, 095, ki = 0, 001, kd = −0, 8 31,25 14,54 3,13kp = −0, 095, ki = −0, 0008, kd = −0, 82 3,33 31,81 2,74kp = −0, 065, ki = −0, 001, kd = −0, 82 1,052 19,09 2,56

49

3. CONTROL PID

0 2 4 6 8 10

50

100

150

200

Tiempo [s]

Posi

ción

(tp = 1.1748; x = 131)

(tp = 0.99683; y = 70)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantalla

Eje

xpa

ntal

la

(a) (b)

Figura 3.8: Mejor respuesta del controlador PID para el proceso plataforma Stewart- bola y plato(a)Curva de reacción para las constantes de control en x con valores kpx = −0, 065, kix = −0, 001 ykdx = −0, 82 y las constantes de control en y de valoreskpy = −0, 065, kiy = −0, 001 y kdy = −0, 82(b) Recorrido de la esfera en la superficie de la placa móvil.

Cuanto más bajos sean los parámetros de desempeño que la dinámica de la plantapresente en relación a un conjunto de constantes de control definidas, se asume quees el control aplicado es el más apropiado. Si se observan los valores en la tabla 3.2 sepuede determinar que el mejor comportamiento dinámico ocurre en las condicionesmostradas en la Figura 3.8

Aunque hay respuestas que presentan un menor OVS con respecto a la elegida comola mejor, también se tomó en cuenta la respuesta del sistema ante perturbaciones y elruido en estado estable.

50

Capítulo

4 Control LQR

CONTENIDOS DEL CAPÍTULO

4.1 GENERALIDADES

4.2 OBSERVADORES DE ESTADO

4.3 IMPLEMENTACIÓN LQR

4.4 CÓDIGO LQR EN PYTHON

4.5 RESULTADOS

En este capitulo se da una explicación teórica de la estrategia de control LQR, tambiénse explica el procedimiento para aplicarla a la planta bola y plato- Plataforma Stewart,en la Figura 4.1 se ve la estructura de la aplicación del LQR, se incluye un observadorde estados para hacer el seguimiento de la referencia obteniendo los estados estimadosx, y y el proceso en su representación de estados.

Observador

PlataformaStewart

Bola+-ref u x, yy Plato

LQR

Representación Estados

x

y

Figura 4.1: Diagrama de bloques control LQR proceso [Autores].

51

4. CONTROL LQR

4.1 GENERALIDADES

Las siglas LQR indican control óptimo cuadrático, es una acción de control modernomultivariable que se caracteriza por su robustez tanto en tiempo discreto como entiempo continuo [23] [4].

Se dice que es una estrategia de control óptima ya que se procura la operación delsistema dinámico al menor costo, es decir que los ajustes del controlador proporcionalse encuentran usando un algoritmo matemático que minimiza la función de coste odesviaciones no deseadas.

Cuando se trata de una planta no lineal el calculo de las constantes de control debehacerse en función del punto de trabajo, por eso es necesario escogerlo previamentedentro del margen de operación de la planta. Esto ocurre en consecuencia a la no linea-lidad de la planta, dependiendo del grado de no linealidad responderá de diferentemanera al rededor de varios puntos de trabajo.

En primera instancia es necesario disponer de las ecuaciones de estado del sistemaproceso o planta que se desea controlar las cuales son de la forma (4.1) y (4.2).

.x= [A] [x] + [B] [u] (4.1)

[y] = [C] [x] + [D] [u] (4.2)

La ley control LQR responde en esencia a una acción de control proporcional como seve en (4.3), debe determinarse con cálculos matemáticos los componentes de la matriz(4.4) que representa las constantes del control proporcional.

u = − [k (t)] [x (t)] (4.3)

[k (t)] =

R−1[B]T [P (t)] (4.4)

El control LQR se calcula minimizando la función de coste J según (4.5), la cual tieneuna expresión que se suma cuando el proceso que se controla no es de régimen per-manente, es decir cuando no es controlable ni observable, sin embargo en este caso nose presenta esta expresión debido a que la planta (plataforma Stewart) es observabley controlable como más adelante se demostrará . Se habla de un proceso en régimenpermanente cuando existe una única matriz de control óptimo [k (t)] tal que puedaestabilizar al sistema en lazo cerrado con (4.3).

J =

0

[x]T [Q] [x] + [u]T [R] [u]

dt (4.5)

52

4.1. Generalidades

En (4.4) [P (t)] es la matriz de la ecuación de Ricatti que se halla según (4.6).

.P= [A]T [P] + [P] [A] + [Q]− [P] [B] [R]−1 [B]T [P] (4.6)

La ecuación de Ricatti (4.6) puede resolverse solo si el sistema es controlable y obser-vable, por lo tanto antes de aplicar la ley de control LQR, debe comprobarse que elproceso a controlar cumpla con estas dos condiciones y así también se garantiza laexistencia de la matriz (4.4) de control óptimo [23, 24].

El control LQR presenta una sensibilidad menor o igual 1 la cual es una cifra reducidaque le proporciona robustez, es óptimo para la J (ver (4.5)) definida por el diseñador,tiene amplios margenes de fase y ganancia y amplia tolerancia a la reducción de laganancia.

Una vez definidas las matrices [Q] (matriz de error ponderado) y [R] (matriz ponde-rada de control) se determina la función de coste (4.5) y luego con la técnica LQR seminimiza J a partir de las variables de control.

4.1.1 Controlabilidad

Un sistema controlable es aquel que converge a una referencia en un tiempo finito,es decir que sin importar cuál sea su estado actual en algún momento la respuesta seestabilizará en un punto definido. Si se aplica una acción de control cualquiera, estatendrá la capacidad de llevar los estados del proceso a un valor de referencia en unlapso de tiempo finito, se sabe que los estados son afectados por las entradas y por lotanto el control se efectúa manipulando las entradas.

Entonces si un proceso es controlable debe existir una función de entrada o controlcapaz de lograr que los estados del sistema cambien de un valor a otro en un tiempodeterminado, hay un acople entre las entradas y estados todos los estados deben serafectados por las entradas.

Para comprobar controlabilidad se puede establecer que el rango de la matriz de con-trolabilidad coincida con el orden del sistema como se muestra en (4.7) donde A y Bson las matrices de estado y n es el orden; con esto se garantiza que en el comporta-miento dinámico del sistema no exista un punto en el que se torne inestable.

rango

B AB A2B . . . An−1B= n (4.7)

det

B AB A2B . . . An−1B= U (4.8)

Según el criterio de Cayley-Hamilton se evalúa que la matriz (4.8) sea singular, es decirque el determinante de la matriz sea igual a 0 para asegurar que pueda ser invertible y

53

4. CONTROL LQR

así se garantizar que en el comportamiento dinámico del sistema no exista un punto enel que se torne inestable. Cabe aclarar que los conceptos controlabilidad y estabilidadson diferentes, la estabilidad es la mínima garantía de que el sistema es estable en lazocerrado, se da cuando los estados incontrolables son estables.

4.1.2 Observabilidad

Un proceso es observable cuando los estados pueden ser determinados a partir delas salidas en cada instante de tiempo, es decir hay un acople entre estados y salidas.En caso de que un proceso sea no observable, con la información de las salidas no esposible conocer de manera precisa y completa el comportamiento del sistema.

Se puede comprobar observabilidad sabiendo que el rango de la matriz (4.9) coincidecon el orden n del sistema.

rango

C

CACA2

...CAn−1

= n (4.9)

El criterio de Cayley-Hamilton se aplica de la misma manera para comprobar controla-bilidad y observabilidad, la diferencia es que en este caso se opera con la matriz (4.10),V debe ser igual a 0.

det

C

CACA2

...CAn−1

= V (4.10)

El concepto de detectabilidad no debe confundirse con el de observabilidad, un siste-ma es detectable si sus estados inestables son observables [23], lo cual es la mínimagarantía de que el sistema sea estable en lazo cerrado.

4.1.3 Selección de las matrices [Q] y [R]

Como se puede ver en las ecuaciones (4.3), (4.4), y (4.6) contienen los términos [Q] y[R] estas son matrices propias del control LQR. Hay algunos parámetros que debentomarse en cuenta para seleccionar estas matrices, sin embargo no existe una regladeterminada para hacerlo [23] además la estrategia LQR tiene la ventaja de que inde-pendientemente de la selección de [Q] y [R] sigue siendo capaz de estabilizar al sistema

54

4.2. Observadores de estado

porque es un control robusto. Algunos parámetros que suelen seguirse para seleccio-nar estas matrices son:

Los valores deben ser siempre positivos o 0.

Debe conocerse muy bien el comportamiento dinámico de la planta.

Con frecuencia se escoge [Q] y [R] diagonales asignando valores grandes a lasvariables que se quieran minimizar.

Si [Q] contiene valores grandes, la exigencia al control será mayor.

[Q] debe ser positiva semidefinida, es decir que cumpla con Q = QT ≥ 0.

[R] debe ser positiva definida, es decir que cumpla con R = RT > 0.

Si [R] contiene valores grandes, se incrementa la influencia de las acciones decontrol sobre la planta.

Si [R] corresponde a la matriz identidad, provoca que todas las variables de con-trol tengan la misma influencia sobre el sistema. Si se necesita que unas variablesde control ejerzan más influencia sobre la planta que otras, se escoge [R] comomatriz diagonal con diferente magnitud asignada a cada variable de control.

La manera más fácil de escoger [Q] es igualarla a 4.11.

[Q] = [C]T [C] (4.11)

4.2 OBSERVADORES DE ESTADO

Controlar un sistema en algunos casos puede implicar la necesidad de un vector deinformación para llevar a cabo realimentación de estados, así mismo se requiere deun observador debido a que algunos estados no son accesibles o son no medibles.En estas circunstancias se implementa un observador de estados usando el modelomatemático del sistema y de esta manera obtener estados estimados a partir de losestados disponibles, sin embargo también se puede apreciar un error del estimadorque es la diferencia entre el estado estimado y el real.

Usualmente se emplean en la estimación del estado x(t) basado en valores anterioresde la salida y. La idea es encontrar un estado estimado x(t) que sea una aproximaciónde x(t) dada una entrada u y una salida y; sabiendo que u corresponde a la señalde control y y a la salida medida [25]. La presencia de un observador en un sistemapuede significar que hay un dispositivo para detección de errores (en el cual el errores la diferencia entre el estado estimado y el estado real) o que existen estados no

55

4. CONTROL LQR

refPre

+- +-ref

B 1s C

A

K

yu x x

(a)

Pre

+- +-B 1s C

A

K

yu x x

(b)

+ + 1s C

A

L

yˆx xB + +

+-

Figura 4.2: Control LQR con realimentación de estados.(a) Topología control LQR (sin realimen-tación a la salida). (b) Control LQR y observador de estados [4].

accesibles, ya sea porque no hay un sensor para detectarlo o porque no se encuentraen realimentación.

Para el diseño de observadores se han planteado diferentes modelos como: Luenberger,Kalman, observador de entrada desconocida, observador en modo “corredizo”, entreotros. En cualquiera de estos modelos se requiere hallar ganancias del observador quese ajusten a una respuesta rápida que debe ser mayor a la del sistema.

En la practica el observador (ver 4.2(b) donde L es la matriz de ganancias del observa-dor) se implementa para la realimentación completa del sistema de control en dondese involucre la salida y, ya que la topologia del control LQR no contempla dicha reali-mentacion tal como se puede evidenciar en la Figura 4.2(a).

4.3 IMPLEMENTACIÓN LQR

Para aplicar el control LQR al proceso seleccionado es necesario tener la representaciónde estados con n estados, p entradas y q salidas, en la que se expresa su comportamien-to dinámico del sistema. Hay unas fases previas que se deben cumplir antes de aplicarla ley de control al proceso, las cuales se nombran a continuación.

La representación de estados del sistema Bola y plato- Plataforma Stewart en espaciode estados como se ve en (4.12) y (4.13) debe conocerse para implementar la topología

56

4.3. Implementación LQR

del control LQR. [19]

.x=

0 1 0 00 0 0 00 0 0 10 0 0 0

[x] +−57

g

0 01 00 00 1

[u] (4.12)

[y] =

1 0 0 00 0 1 0

[x] (4.13)

Para iniciar los experimentos del control LQR la [Q] inicial y la [R], fueron establecidascomo se ve en (4.14) y (4.15).

[Q] = CTC =

1 0 0 00 0 0 00 0 1 00 0 0 0

(4.14)

[R] =

1 00 1

(4.15)

A partir [Q] y [R] se halla la K inicial (4.16).

K =

1 1, 41 0 00 0 1 1, 41

(4.16)

De aquí en adelante se empieza con la optimización del control, cuyo resultado serefleja en el cambio de los valores de la matriz K como se explica a continuación.

4.3.1 Optimización de la ley de control

En el trabajo de optimización experimental del control LQR hay dos alternativas quepueden ser evaluadas: La observación del lugar de las raíces de A − BK (que influyedirectamente en el tiempo de respuesta) y la minimización de la función de coste (4.5).En cualquiera de estos dos casos se debe hallar la matriz de ganancias K haciendo usode la ecuación de Ricatti (4.6).En cualquier opción que se tome para optimizar y/o sintonizar el controlador, es nece-sario variar los elementos no nulos de la matriz [Q], la cual en un principio se escogede manera arbitraria [26].

1. Disponer de la representación de estados del sistema (comprobando observabili-dad y controlabilidad previamente) y determinar los valores de [Q] y [R].

2. Resolver la ecuación de Ricatti y hallar las ganancias del control LQR con (4.4)

57

4. CONTROL LQR

3. Hallar la ley de control LQR con (4.3).

4. Observar la ubicación de los eigen valores de A− BK y hallar el índice de desem-peño con (4.5).

5. Evaluar si el lugar de las raíces y el índice de desempeño son los deseados, sino es así debe haber una variación de los valores de [Q] y [R] para satisfacer loscriterios de diseño del control.

Puede incluirse un factor adicional que se denomina precompensador, es el que semultiplica por la referencia del sistema y puede hallarse usando la ecuación (4.17),el objetivo del precompensador es minimizar el error en estado estacionario como seevidenciará en los resultados.

pre = (C(I − (A + BK)−1)B)−1 (4.17)

Cuando se hallan las ganancias que cumplen con la optimización deseada se procedea desarrollar el control del proceso en lazo cerrado.

4.3.2 Formulación del observador de estados

Un observador se adiciona cuando se implementa el control LQR debido a que en sutopología existen estados que no son accesibles y por lo tanto es necesario estimarlos,como se ve en la Figura 4.2(a) la salida y no está vinculada directamente a la realimen-tación del sistema y entonces es necesario agregar el observador para que la acción decontrol pueda implementarse al proceso.

TA − FT = LC (4.18)

Con la ecuación de Lyapunov (4.18) y la representación de estados del sistema (ver (4.1))es posible determinar los estados estimados del sistema diseñando un observador deestados, como sigue [27]:

1. Establecer las dimensiones n y m, que corresponden a la dimensión de A y alnúmero de salidas del sistema respectivamente.

2. Determinar la matriz F que debe ser de dimensiones (n − m)× (n − m), cuyoseigen- valores no sean comunes a los de A, el contenido de F se selecciona demanera arbitraria cumpliendo con dicha condición.

3. La matriz L debe ser de dimensiones (n − m)× m, sus valores también se selec-cionan de manera arbitraria cumpliendo con que [F|L] sea satisfaga el criterio decontrolabilidad.

58

4.4. Código LQR en Python

4. Encontrar los valores de los componentes de la matriz T aplicando (4.18).

5. Teniendo T, se determina P como se ve en (4.19).

P =

CT

(4.19)

6. Formular (4.20).z = Fz + Ly + TBu (4.20)

7. Hallar el estado estimado como se ve en (4.21).

x = P−1

yz

(4.21)

Luego de determinar las constantes del observador, este es agregado al sistema paradeterminar los estados estimados conforme va variando la entrada en cada instante detiempo y posteriormente hacer el seguimiento del error como se ve en (4.22).

e = re f ∗ pre − Kx (4.22)

4.4 CÓDIGO LQR EN PYTHON

Siguiendo con el orden para la implementación del control LQR, primero se procedecon su optimización. Se halla la matriz de constantes K resolviendo la ecuación deRicatti, a partir de las matrices de la dinámica de la planta A, B y C y de las matrices Qy R escogidas, como se muestra en el Listado de código 4.1.

Listado de código 4.1: Código Python para hallar las ganancias LQR.1 # l i b r e r i a s pa ra e l manejo de m a t r i c e s en python2 from numpy3 import matrix from numpy4 import l i n a l g5 import numpy as np6 import sc ipy . l i n a l g78 # d e f i n i c i ó n de l a s m a t r i c e s d e l s i s t e m a9 A = matrix ( [ [ 0 , 1 , 0 , 0 ] , [ 0 , 0 , 0 , 0 ] , [ 0 , 0 , 0 , 1 ] , [ 0 , 0 , 0 , 0 ] ] )

10 B=−7*matrix ( [ [ 0 , 0 ] , [ 1 , 0 ] , [ 0 , 0 ] , [ 0 , 1 ] ] )11 C=matrix ( [ [ 1 , 0 , 0 , 0 ] , [ 0 , 0 , 1 , 0 ] ] )12 # m a t r i c e s R y Q e s c o g i d a s13 R=matrix ( [ [ 2 0 , 0 ] , [ 0 , 2 0 ] ] )14 Q=(C. T ) *C1516 # R e s o l u c i ó n de l a e c u a c i ó n de R i c a t t i

59

4. CONTROL LQR

17 P = np . matrix ( sc ipy . l i n a l g . solve_cont inuous_are (A, B , Q, R) )18 # Se h a l l a l a m a t r i z de g a n a n c i a s19 K = np . matrix ( sc ipy . l i n a l g . inv (R) * ( B . T*P ) )20 # s e o b s e r v a e l l u g a r de l a s r a í c e s21 eigVals , eigVecs = sc ipy . l i n a l g . e ig (A−B*K)

Cambiando los valores de las matrices Q y R en base a la observación de la ubica-ción de las raíces (eigVals en el Listado de código), se determina cuál es la matriz Kóptima del control LQR para la estabilización del sistema, con matrices A, B y C querepresentan los estados del proceso. Es importante recordar que A, B y C deben serobservables y controlables, estas dos condiciones se comprueban usando el criterio deCayley Hamilton como se ha explicado en la sección 4.1.

Cuando ya se han hallado las constantes L propias del observador y las ganancias Kóptimas del control LQR, se procede a realizar su implementación en la planta usandolas lineas python mostradas en el Listado de código 4.2.

Listado de código 4.2: Código Python para la implementación online del control LQR con obser-vador de estado.

1 import math2 import numpy3 from numpy import matrix4 from numpy import l i n a l g5 import numpy as np6 import sc ipy . l i n a l g7 # i n i c i a l i z a c i o n de c o n s t a n t e s y memorias8 A = matrix ( [ [ 0 , 1 , 0 , 0 ] , [ 0 , 0 , 0 , 0 ] , [ 0 , 0 , 0 , 1 ] , [ 0 , 0 , 0 , 0 ] ] )9 B=−7*matrix ( [ [ 0 , 0 ] , [ 0 , 0 ] , [ 1 , 0 ] , [ 0 , 1 ] ] )

10 C=matrix ( [ [ 1 , 0 , 0 , 0 ] , [ 0 , 0 , 1 , 0 ] ] )11 # l a r e f e r e n c i a d e l s i s t e m a d e b e s e r una m a t r i z de 2x112 r e f =matrix ( [ [ 1 1 0 ] , [ 4 5 ] ] )13 # m a t r i z de g a n a n a c i a s o p t i m a s c o n t r o l LQR14 K=matrix ( [ [ −0 . 3 1 6 2 , −0 . 3 0 4 7 , 0 , 0 ] , [ 0 , 0 , −0 . 3 1 6 2 , −0 . 3 0 4 7 ] ] )15 # g a n a n c i a s o b s e r v a d o r16 L=matrix ( [ [ 0 . 5 6 6 , 6 . 8 3 7 ] , [ − 0 . 0 1 1 , 0 . 0 9 2 ] , [ 0 . 5 6 6 , 6 . 8 3 7 ] , [ − 0 . 0 1 1 , 0 . 0 9 2 ] ] )17 #x [ n ] e s t i m a d a18 x0=numpy . zeros ( ( 4 , 1 ) )19 #x [ n−1] e s t i m a d a20 x1=numpy . zeros ( ( 4 , 1 ) )21 # m a t r i z para a l m a c e n a r l a l e c t u r a de p o s i c i o n a c t u a l22 y=numpy . zeros ( ( 2 , 1 ) )23 # s e ñ a l de c o n t r o l24 u=numpy . zeros ( ( 2 , 1 ) )25 # Matr iz d e l p r e c omp en sa do r26 K0=matrix ( [ [ − 4 . 2 9 , 0 ] , [ 0 , − 4 . 2 9 ] ] )27 # l o o p para l a e j e c u c i o n d e l c o n t r o l28 while ( 1 ) :29 # l e c t u r a de p o s i c i o n

60

4.5. Resultados

30 y [0 ]= lee_x ( )31 y [1 ]= lee_y ( )32 x1 = ( (A−L*C) * x0 ) +(B*u ) +(L* y )33 u=(−K* x1 ) +(K0* r e f )34 x0=x135 # s e a s i g n a l o s a n g u l o s de r o t a c i o n de l a p l a c a mov i l36 phi=u [ 0 ]37 t h e t a =u [ 1 ]

4.5 RESULTADOS

Al ejecutar el sistema en lazo cerrado que se ilustra en la Figura 4.1 para

La referencia de posición para el recorrido tanto en x como en y es la misma en losexperimentos del PID (Capítulo anterior) y del LQR.

En la implementación del LQR se realizaron diversas pruebas para determinar las me-jores características y condiciones que proporciona esta estrategia de control al procesoseleccionado, con los cambios de la matriz de error ponderado Q (con la dimensión de(4.14)) y la matriz ponderada de control R (con la dimensión de (4.15)). Los valoresmodificados en estas matrices se ubican en la diagonal principal cuya variación tie-ne como consecuencia un comportamiento característico en la curva de reacción de laplanta, como se evidencia cuando se observa: el tiempo de estabilización (ts), el sobreimpulso (OVS) y del error de estado estacionario (ess).

Experimento 1: En este caso todos los valores de Q son nulos excepto q11 = 1 yq33 = 1 y en R también todos son 0 a excepción de los valores r11 = 1 y r22 = 1.La curva de reacción que se ve en la Figura 4.3 es el resultado de aplicar el con-trol LQR y sin observador con las matrices Q y R descritas, los parámetros dedesempeño obtenidos son: OVS = 4,31 %, ts = 7,04s y ess = 0 %. A pesar de queesta respuesta presenta un sobreimpulso satisfactorio y sigue la referencia paraambos ejes de movimiento, el tiempo de estabilización es muy grande es decir esmuy lento.

Experimento 2: Cuando se aplica un Q con valores q11 = 180 y q33 = 180 y lamisma R, es decir que Q tiene magnitudes significativamente grandes con res-pecto a R, la respuesta obtenida no sigue la referencia y por lo tanto se observaun ess = 92 %; si se le adiciona el precompensador a este experimento la respues-ta mucho con unos parámetros de desempeño de: OVS = 4, 36 %, ts = 1, 92s yess = 0 % como se ve en la Figura 4.4.

Experimento 3: Para evidenciar la incidencia directa de la matriz Q se asigna unvalor elevado q11 = 1500 y q33 = 1500. La señal conserva un OVS = 4,3 % y

61

4. CONTROL LQR

0 2 4 6 8 10

50

100

150

200

Tiempo [s]

Posi

ción (tp = 4.44; x = 114.754)

(tp = 4.44; y = 46.945)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantallaEj

ex

pant

alla

(a) (b)

Figura 4.3: (a) Curva de reacción para valores de la matriz de constantes de control k11 = 1,k12 = 1, 414, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 1, k24 = 1, 414. (b) Recorrido de la esferaen la superficie de la placa móvil.

0 2 4 6 8 10

50

100

150

200

Tiempo [s]

Posi

ción (tp = 1.21; x = 114.753)

(tp = 1.21; y = 46.944)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantalla

Eje

xpa

ntal

la

(a) (b)

Figura 4.4: (a) Curva de reacción para valores de la matriz de constantes de control k11 = 13, 41,k12 = 5, 18, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 13, 41, k24 = 5, 18. (b) Recorrido de laesfera en la superficie de la placa móvil.

62

4.5. Resultados

0 2 4 6 8 10

50

100

150

200

Tiempo [s]

Posi

ción

(tp = 0.71; x = 39.744)(tp = 0.71; y = 16.259)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantalla

Eje

xpa

ntal

la

(a) (b)

Figura 4.5: (a) Curva de reacción para valores de la matriz de constantes de control k11 = 38, 72,k12 = 8, 806, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 38, 72, k24 = 8, 806. (b) Recorrido de laesfera en la superficie de la placa móvil.

un tiempo de respuesta de ts = 1,16s, presenta un ess = 65 %. El error en estadoestacionario indica que en estas condiciones, el sistema no sigue la referencia demanera satisfactoria, la esfera permanece en una posición muy alejada de lo quese espera como se ve en la Figura 4.5 .

Experimento 4: Se asigna el un valor de 10 en la diagonal principal de R y 1 paraq11 y q33. En la Figura 4.6 se muestra la curva de reacción del proceso en esteexperimento, evidenciando los siguientes parámetros de desempeño ess = 0 %,el OVS = 4,22 % y ts = 12,4s, haciendo muy lento el comportamiento del sistema.

El ess tiende a 0 cuando se implementa el precompensador para cualquier valor de R yde Q.

La robustez del control y el ts son inversamente proporcionales puesto que al quereraumentar la velocidad de respuesta del control se pierde robustez, por esta razón sedeben manejar valores de R pequeños y valores de Q entre 250 y 100.

En las practicas realizadas con el regulador cuadrático lineal aplicado a la planta seevidenció que se debe conservar una proporcionalidad entre los valores de Q y de Rpara tener un control dentro de los parámetros de reacción de la planta establecidos,ya que si se manejan valores altos de Q y valores altos de R o valores de Q bajos y R 10veces mas pequeña conserva estas características deseadas de la respuesta de la planta.

63

4. CONTROL LQR

0 0.5 1 1.5 2 2.5 3

50

100

150

200

Tiempo [s]

Posi

ción (tp = 0.79; x = 114.754)

(tp = 0.79; y = 46.945)

Pos x Pos y

20 40 60 80

50

100

150

Eje y pantalla

Eje

xpa

ntal

la

(a) (b)

Figura 4.6: (a) Curva de reacción para valores de la matriz de constantes de control k11 = 42, 42,k12 = 9, 211, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 42, 42, k24 = 9, 211. (b) Recorrido de laesfera en la superficie de la placa móvil.

Cuadro 4.1: Parámetros de desempeño obtenidos de la curva de reacción del proceso para el controlLQR con respecto a las variaciones de Q y R.

Constantes ess[ %] OVS[ %] ts[seg]q11 = q33 = 1; r11 = r22 = 1 0 4,3 7,04

q11 = q33 = 180; r11 = r22 = 1 0 4,27 1,92q11 = q33 = 1500; r11 = r22 = 1 -65 4,3 1,16q11 = q33 = 50; r11 = r22 = 1 0 4,36 2,64

q11 = q33 = 180; r11 = r22 = 15 0 4,27 3,76q11 = q33 = 180; r11 = r22 = 0,1 0 4,31 1,08

q11 = q33 = 1; r11 = r22 = 10 0 4,22 12,4

En la Tabla (4.1) se muestran los parámetros de desempeño obtenidos, al aplicar laestrategia de control LQR con ganancias K que permiten la estabilización del sistema.

64

Capítulo

5 Comparación de resulta-dos

CONTENIDOS DEL CAPÍTULO

5.1 ESTRATEGIAS DE CONTROL PIDY LQR

5.2 MEJORES RESULTADOS

En este capítulo se presentan los argumentos prácticos que sustentan la justificación dela premisa que indica con cual estrategia de control, LQR o PID se obtienen mejores pa-rámetros de desempeño y en consecuencia, mejor respuesta de la planta bola y plato-plataforma Stewart. Teniendo en cuenta que entre más bajos sean dichos parámetrosque corresponden a OVS, ts y ess, mejor es la respuesta del proceso. Sin embargo tam-bién se considera la resistencia a perturbaciones que presente la dinámica de la planta,razón por la cual un bajo sobreimpulso (OVS), por ejemplo no garantiza el comporta-miento dinámico más apropiado. Entonces los indicadores de desempeño además debajos, deben tener magnitudes que reflejen la mejor respuesta del sistema.

5.1 ESTRATEGIAS DE CONTROL PID Y LQR

La diferencia entre la topología del control LQR con respecto a la del control PID, sehace muy evidente al momento de implementarlos usando código python. Mientras elprimero requiere de un observador para hacer el seguimiento de la referencia, en elPID solo se necesitan las ganancias que corresponden a cada una de las acciones decontrol que lo compone.

65

5. COMPARACIÓN DE RESULTADOS

Cuadro 5.1: Parámetros de desempeño obtenidos aplicando control LQR y PID en el proceso bolay plato- Plataforma Stewart.

Estrategia de control ess[%] ts[s] OVS[ %]PID 1,052 1,1748 19LQR 0 1,08 4,31

A raíz de que el proceso es multivariado, para la aplicación del control PID se necesitala aplicación simultánea y paralela de un par de esta estrategia, con el objetivo con-trolar cada eje de desplazamiento de la bola que recorre la pantalla táctil resistiva. Sinembargo en el caso de la aplicación del control LQR no sucede lo mismo. Al hallarlas matrices que describen el sistema dinámico de la planta, se incluyen ambos ejes demovimiento; entonces a la salida y a la entrada de la misma estrategia de control LQRse obtienen vectores, cuyos valores incluyen las magnitudes necesarias para ejecutar elcontrol multivariado.

5.2 MEJORES RESULTADOS

En la Tabla 5.1 se muestran los parámetros de desempeño que se han calculado en basea la observación de la curva de reacción del proceso. Esto para la mejor respuesta en laaplicación de cada una de las dos estrategias de control al proceso seleccionado.

Los resultados que se tratan en esta sección son los mejores en la aplicación del LQRy el PID, en ambos casos se consigue una estabilización y seguimiento de la referen-cia satisfactoria. También se observa una robustez experimental del sistema, cuandose somete a perturbaciones externas, el sistema reacciona con el balance de la bolaen la posición deseada. Dichas perturbaciones se provocan cuando se empuja la bolaaplicando, una fuerza adicional a la propia inercia de la bola, la cual hace que esta semueva.

66

Capítulo

6 Conclusiones

El proceso seleccionado bola y plato- plataforma Stewart es multivariado, debido a quepara controlarlo se necesitan dos variables de entrada: coordenadas de referencia x yy, dos variables de control: θ (rotación con respecto al eje x) y φ (rotación con respectoal eje y) y dos variables de salida que son la lecturas de la posición actual de la esferasobre la placa móvil. Por lo tanto es una planta con la cual se puede evaluar plenamenteel desempeño de las estrategias de control LQR y PID, con el fin de compararlas.

Para controlar la planta seleccionada es necesario manejarla como dos subsistemasindependientes. Se aplica cinemática inversa para definir la rotación de la placa móvilal rededor de los ejes x y y, y se halla la función de transferencia del subsistema bola yplato, con el fin de determinar las constantes de control (en el caso de la estrategia PID)y hallar la representación de estados del sistema (para hallar la matriz de ganancias enel caso de la estrategia LQR).

El algoritmo en python con el cual se controla la planta identificada, contiene tanto ladinámica de la cinemática inversa como el código que corresponde a las acciones decontrol LQR y PID. Los códigos python en los cuales se implementan las estrategias decontrol, son de fácil aplicación en cualquier proceso, solo se requiere un conocimientode su dinámica; entonces las herramientas de software libre empleadas junto a la tarjetade desarrollo Raspberry pi se prestan para constituir un buen dispositivo en el controlde muchos procesos SIMO y /o MIMO.

A pesar de que la plataforma Stewart ofrece 6 grados de libertad, en este caso solo sehace uso de dos de ellos a raíz de que el subsistema bola y plato no requiere de másde estos. Sin embargo la ventaja de implementar estos dos subsistemas unidos radicaen que la rigidez de la plataforma, la cual permite movimientos muy apropiados paraestabilizar de manera satisfactoria la bola ante perturbaciones externas. Gracias al pa-ralelismo de la plataforma Stewart, cuando se implementa alguna estrategia de controlsin importar que haya un daño de algún servomotor es posible llegar a la estabiliza-ción del sistema; ya que este tipo de fallas no afecta el funcionamiento de las cadenascinemáticas independientes.

Haciendo la comparación entre los parámetros de desempeño obtenidos con las dosdiferentes estrategias de control, se obtienen mejores resultados con el LQR, se observa

67

6. CONCLUSIONES

que se reducen muy significativamente; destaca el porcentaje del sobreimpulso que esmuy alto para el recorrido en y cuando se controla la planta con el PID.

La presencia de control integral muy alto cuando se aplica el control PID causa que segeneren “saltos” en la curva de reacción cuando el proceso ya se encuentra en estadoestable, si bien esta acción de control es necesaria para hacer que el sistema converjaa la referencia, no es apropiado utilizar una magnitud muy grande en la constanteintegral.

Con el LQR la bola que recorre la placa superior de la plataforma hace un recorridomás corto desde su posición inicial hasta llegar a la referencia, lo cual implica más rapi-dez en la respuesta del sistema debido a que la bola no hace trayectorias innecesarias,cuando se requiere que alcance a una referencia determinada.

En las practicas realizadas con el regulador cuadrático lineal aplicado a la planta seevidenció que se debe conservar una proporcionalidad entre los valores de Q y de Rpara tener un control dentro de los parámetros de reacción de la planta establecidos.Si se manejan valores altos de Q y valores altos de R o valores de Q bajos y R 10 vecesmas pequeña conserva las características deseadas de la respuesta de la planta.

Sin importar los valores de R y de Q al implementar el LQR combinado con un pre-compensador se observa que el error de estado estacionario converge a 0.

La robustez del control y el tiempo de estabilización son inversamente proporcionalespuesto que al querer aumentar la velocidad de respuesta del control se pierde robustez,por esta razón se deben manejar valores de R pequeños y valores de Q entre 250 y 100.

68

Apéndice

A Comunicación SSH

CONTENIDOS DEL CAPÍTULO

A.1 CONEXIÓN SSH

A.2 USAR GESTOR DE ARCHIVOS CONSSH

A.3 PROBLEMAS CONOCIDOS

En este apéndice se explica una forma de manejar las funcionalidades del sistema ope-rativo instalado previamente en la tarjeta Raspberry Pi, desde un computador, me-diante conexión física con el cable ethernet, accediendo a la terminal de Raspbian y a lascarpetas de archivos que contiene la memoria SD (Secure Digital) que funciona como“disco duro de la tarjeta”.

A.1 CONEXIÓN SSH

Con el fin de evitar el uso de periféricos como teclado y monitor conectados a la Rasp-berry Pi, se puede establecer conexión desde un computador mediante el cable ethernetusando el protocolo SSH (Secure SHell) y así controlar la tarjeta de desarrollo usandolos periféricos del computador; este método es especialmente útil cuando no se dispo-ne de un monitor HDMI o un cable conversor HDMI-VGA para conectar a la RaspberryPi. Es necesario tener en cuenta que en la tarjeta SD de la Raspberry Pi debe estar insta-lado el sistema operativo (como el Raspbian por ejemplo), y así se pueden efectuar lospasos que siguen:

69

A. COMUNICACIÓN SSH

Figura A.1: Ventana de conexiones de red Ubuntu [Autores].

A.1.1 Establecer ip estática en el computador

Ambos dispositivos deben tener una ip estática para hacer conexión entre ellos. En uncomputador con Ubuntu se accede a “Editar las conexiones...” como se ve en la FiguraA.1 que se encuentra en el botón de redes en la parte superior derecha del escritorio

.En la ventana de “Conexiones de red” se hace clic en “Añadir” y luego se elige tipode conexión “Cableada”. En la ventana de edición se puede poner un nombre queidentifique la conexión, como Raspberry Pi. Para asignar la ip fija, se hace clic en lapestaña “Ajustes de IPv4”, se selecciona el método manual en el menú desplegable yluego con el botón “Añadir”, se añade una dirección. En este caso se usó el número192.168.200.1 para que no entre en conflicto con las direcciones ip asignadas en la redinalámbrica (ver Figura A.2).

A.1.2 Establecer ip estática en la Raspberry Pi

Con el sistema operativo instalado en la Raspberry Pi (Raspbian en este caso), se configu-ra una ip fija como se describe a continuación. Con la Raspberry Pi apagada se extrae latarjeta SD y se inserta en el computador. Normalmente se abre de forma automática lamemoria en el directorio “boot”, en el que se encuentra un archivo llamado cmdline.conf.Para evitar perder la configuración por defecto se puede hacer una copia del archivoy nombrarla cmdline.original. En la última línea del archivo cmdline.conf se adiciona lainstrucción ip=número_ip, donde número ip es el número asignado por el usuario. Eneste caso se le pone el número ip=192.168.200.2 para que pertenezca al mismo númerode red asignado al computador. Cuando se ha terminado este procedimiento se ponela tarjeta SD nuevamente en la Raspberry pi.

70

A.2. Usar gestor de archivos con SSH

Figura A.2: ip estática configurada [Autores].

A.1.3 Establecer conexión entre los dispositivos

El primer paso es instalar el servidor SSH, en Ubuntu se hace abriendo la terminal(Ctrl + Alt + t) y escribiendo la instrucción: sudo apt-get install openssh-server

Con el servidor instalado y la Raspberry pi conectada a través del puerto ethernet yfuncionando, lo único que queda por hacer es establecer la conexión.En la terminal se pone la siguiente instrucción para establecer conexión con la Raspberrypi por medio del protocolo SSH: ssh [email protected] seguido solicita aprobaciónpara conectar al dominio, a lo que solo hay que responder “yes”. Cuando solicita lacontraseña, y si no se ha modificado la que la Raspberry pi tiene por defecto, se poneRaspberry pi en minúsculas y se da “Enter”. Cuando aparezca ssh [email protected] esporque ya se ha establecido conexión.

A.2 USAR GESTOR DE ARCHIVOS CON SSH

Con el anterior procedimiento puede manejarse la terminal de la Raspberry pi desde laterminal de un computador usando la conexión LAN cableada, sin embargo también esposible mediante la misma conexión manejar los datos del sistema operactivo Raspbiansi se usa un gestor de archivos que funcione con conexión SSH.

71

A. COMUNICACIÓN SSH

Figura A.3: Ventana para conectar a un servidor [Autores].

Figura A.4: Ventana para introducir la dirección del servidor con el que se quiere establecer conexión[Autores].

El gestor de archivos de Ubuntu 14.04 con Unity se llama Nautilus, el cual permite verlos archivos de un servidor SSH directamente sin necesidad de recurrir a la terminal.El primer paso es acceder a Archivo>Conectar al servidor como se ve en la Figura A.3.

Luego en el cuadro de diálogo que se abre hay un espacio para insertar la direccióndel servidor de la forma sftp://usuario@direccion/carpeta/ y como se ve en laFigura A.4, en este caso en específico se inserta sftp://[email protected]/home/pi.

Una vez se tiene Nautilus funcionando con la conexión SSH sólo resta copiar y pegarde forma gráfica los archivos que se quieran utilizar en la tarjeta conectando al servidorcomo se muestra en la Figura A.5.

72

A.3. Problemas conocidos

Figura A.5: Ventana para seleccionar el servidor con el que se quiere establecer conexión [Autores].

A.3 PROBLEMAS CONOCIDOS

Solucionar el error “WARNING: REMOTE HOST IDENTIFICATION HAS CHAN-GED!”, este problema se presenta cuando la lista de ip segura del equipo identificaque otro dispositivo diferente al asignado en principio usa la misma ip. Es una ad-vertencia de suplantación de identidad, para solucionarlo basta con borrar la ip de lalista de conexiones seguras; de esta manera el equipo vuelve a introducir la ip comouna nueva ip asignada a un nuevo dispositivo. La instrucción para borrar la ip es ssh-keygen -f "/home/manuti/.ssh/known_hosts"-R 192.168.1.100.

73

Apéndice

B Aclaraciones matemáticas

CONTENIDOS DEL CAPÍTULO

B.1 IDENTIDAD SUMA DE SENO Y CO-SENO

B.1 IDENTIDAD SUMA DE SENO Y COSENO

Para simplificar las expresiones matemáticas que surgen en la cinemática de la planta(ver Sección 2.3) se usa la identidad (B.1).

H

v

C

JFigura B.1: Triángulo para deducciónde la identidad [Autores].

sin (x + v) = sin (x) cos (v) + cos (x) sin (v) (B.1)

Sin embargo se hacen algunos arreglos matemáticos para expresarla de otra maneracomo se ve en (B.2), sabiendo las igualdades de la Tabla B.1 deducidas de acuerdo a laFigura B.1.

sin (x + v) =JC

sin (x) +HC

cos (x)

75

B. ACLARACIONES MATEMÁTICAS

Cuadro B.1: Igualdades triángulo.

sin (v) = HC

cos (v) = JC

tan (v) = HJ → arctan

HJ

= v

C =

H2 + J2

C sin (x + v) = J sin (x) + H cos (x) (B.2)

Se hacen sustituciones de variable para expresar (2.40) del capitulo 2 Sección 2.3, conestas equivalencias: M → J, N → H, α → x, v → δ y C → C.

Se aplica (B.2) a (2.40) y se obtiene (B.3).

L = C sin (α + δ)

L =

N2 + M2 sin (α + δ)

sin (α + δ) =L√

N2 + M2

arcsin

L√N2 + M2

= α + δ (B.3)

Se sabe que δ = arctan N

M

teniendo en cuenta la Tabla B.1 y las sustituciones de

variable hechas, entonces se reemplaza δ en (B.3) y se obtiene (B.4).

arcsin

L√N2 + M2

= α + arctan

NM

(B.4)

76

Apéndice

C Condiciones físicas de laplanta

CONTENIDOS DEL CAPÍTULO

C.1 MEDICIÓN DE LAS PARTES DE LAPLATAFORMA

C.2 PWM NECESARIO PARA CADASERVOMOTOR

C.1 MEDICIÓN DE LAS PARTES DE LA PLATAFORMA

En el trabajo de asegurar simetría en el diseño mecánico de la planta, se dispone quecada parte que la compone tenga las mismas medidas. En la Figura C.1 se muestra lamedida de los brazos que unen la placa superior con la placa inferior y la medida decada leva acoplada a cada sevomotor.

C.2 PWM NECESARIO PARA CADA SERVOMOTOR

Los servomotores usados en el diseño de la plataforma Stewart son de referencia SG90,cada uno de ellos presenta sus propias características, en cuanto al ciclo útil del PWMque requieren para que la hélice tenga un desplazamiento angular de determinadamagnitud de grados. Es necesario determinar de manera experimental una ecuaciónde la gráfica lineal, que se genera con los datos del PWM requerido y el ángulo corres-pondiente de la hélice del motor con respecto a la horizontal medido con ayuda de ungoniómetro.

77

C. CONDICIONES FÍSICAS DE LA PLANTA

Si = 129 mm

ai = 1,25 mm

(a)

(b)

Figura C.1: Medidas del brazo y de la leva de la plataforma. (a) Longitud del i-ésimo brazo rígido.(b) Longitud de la leva del i-ésimo servomotor medida desde la unión leva–motor [Autores].

En la Figura C.2 se ven las gráficas que reflejan la medición anteriormente descritay en las ecuaciones (C.1), (C.2), (C.3), (C.4), (C.5), y (C.6) se expresa la aproximaciónlineal que corresponde a cada gráfica. Con la cual puede calcularse el ciclo útil que serequiere para que la hélice del servomotor se mueva a un grado deseado.

ciclo util1 = 0,09222 · grado + 12,32 (C.1)

ciclo util2 = 0,099777 · grado − 5,1 (C.2)

ciclo util3 = 0,10133 · grado + 12,48 (C.3)

ciclo util4 = 0,096222 · grado − 3,56 (C.4)

ciclo util5 = 0,096888 · grado + 14,02 (C.5)

ciclo util6 = 0,0099777 · grado − 5,3 (C.6)

Debido a la disposición enfrentada de los servomotores los impares y los pares se mi-den con los ángulos contrarios.

78

C.2. PWM necesario para cada servomotor

-100 -50 0 50 10005

10152025

Grados

%PW

M

50 100 150 200 250 30005

10152025

Grados

%PW

M

-100 -50 0 50 10005

10152025

Grados

%PW

M

50 100 150 200 250 3005

10

15

20

25

Grados

%PW

M

-100 -50 0 50 1005

10

15

20

25

Grados

%PW

M

100 150 200 250

5101520

Grados

%PW

M

(a) (b)

(c) (d)

(e) (f)

Figura C.2: Gráficas de funcionamiento de cada servomotor con respecto a la señal PWM necesariapara producir un movimiento angular específico [Autores]. (a) Servomotor 1. (b) Servomotor 2. (c)Servomotor 3. (d) Servomotor 4. (e) Servomotor 5. (f) Servomotor 6 [Autores].

79

Bibliografía

[1] Unknown. The mathematics of the stewart platform. Wokingham U3A MathGroup. [Online]. Available: https://web.archive.org/web/20130506134518/http://www.wokinghamu3a.org.uk/Maths%20of%20the%20Stewart%20Platform%20v5.pdf

[2] R. Ajna and T. Hersan. (2014, Jul.) Controlling a stewart platform.memememe. [Online]. Available: http://www.memememememememe.me/controlling-stewart-platform/

[3] K. Ogata, Ingeniería de control Moderna, 3rd ed., P. Hall, Ed. Pearson, 1998.

[4] D. S. Naidu, Optimal Control Systems, S. Richard C. Dorf, Ed. CRC Press, 2003.

[5] M. Triantafyllou and F. Hover, Maneuvering and control of marine vehi-cles. Department of Ocean Engineering, Mar. 2013, ch. 19. [On-line]. Available: http://ocw.mit.edu/courses/mechanical-engineering/2-154-maneuvering-and-control-of-surface-and-underwater-vehicles-13-49-fall-2004/lecture-notes/1349_notes.pdf

[6] J. Gómez, Beneficios del Software Libre, U. de Manizales, Ed. Ventana Informática,2003. [Online]. Available: http://issuu.com/cridumuniversidaddemanizales/docs/04-beneficios-del-software-libre

[7] M. Lemos, M. Marques, G. Botura, and F. Soares, “Una pro-puesta robusta e de bajo costo para ejecutar Robótica Educativa,”Universidad Estadual Paulista Julio de Mesquita Filho, 2014. [Online]. Availa-ble: https://www.academia.edu/14804078/Una_propuesta_robusta_e_de_bajo_costo_para_ejecutar_Rob%C3%B3tica_Educativa

[8] Bitemark. Welcome to raspbian. [Online]. Available: http://www.raspbian.org/

[9] E. Bahit, Curso: Python para Principiantes. Eugenia Bahit, 2012.

[10] T. I. Incorporated, Ultra-Small, Low-Power, 16-Bit Analog-to-Digital Converter withInternal Reference, Oct. 2009. [Online]. Available: http://www.ti.com/lit/ds/symlink/ads1115.pdf

81

BIBLIOGRAFÍA

[11] B. Earl. (2012, November) Adafruit 4-channel adc breakouts.Contributor. Adafruit. [Online]. Available: https://learn.adafruit.com/adafruit-4-channel-adc-breakouts/overview

[12] L. Sheng, L. Wan-long, D. Yan-chun, and F. Liang, “Forward kinematics of theStewart platform using hybrid immune genetic algorithm,” in Proceedings of the2006 IEEE International Conference on Mechatronics and Automation, Jun. 2006, pp.2330–2335.

[13] A. Majarena, J. Santolaria, D. Samper, and J. Aguilar, “Identificación de paráme-tros cinemáticos de una plataforma paralela pan-tilt basada en cinemática inversay directa,” XVIII Congreso Nacional de ingeniería mecánica, 2010. [Online]. Available:http://www.uclm.es/actividades/2010/CongresoIM/pdf/cdarticulos/036.pdf

[14] F. Szufnarowski, “Stewart platform with fixed rotary actuators: a low costdesign study,” Bielefeld University, 2013. [Online]. Available: http://www.techfak.uni-bielefeld.de/~fszufnar/publications/Szufnarowski2013.pdf

[15] N. González and E. Reinoso, “Estudio, diseño y construcción de una plataformarobótica didáctica tipo stewart aplicada al estudio de controladores difusos,”Ph.D. dissertation, Universidad Politécnica Salesiana, 2011. [Online]. Available:http://dspace.ups.edu.ec/bitstream/123456789/1921/14/UPS-CT002354.pdf

[16] AVR341: Four and five-wire Touch Screen Controller, Atmel Corporation, 2007.[Online]. Available: http://www.atmel.com/Images/doc8091.pdf

[17] A. Fernandez, “Diseño e implementación de sistemas de control de tiempo realmediante herramientas de generación automática de código,” Ph.D. dissertation,Universitat Politécnica de Catalunya, Escola Politécnica Superior de Ingeniería deVilanova I La Geltrú, Jun. 2013.

[18] M. Nokhbeh and D. Khashabi, “Modelling and control of ball-plate system,”Master’s thesis, Amirkabir University of Technology, 2011. [Online]. Available:http://web.engr.illinois.edu/~khashab2/files/2011_LinearControl/16.pdf

[19] A. Kassem, H. Haddad, and A. Chadi, “Commparison between differentmethods of control of ball and plate system with 6 dof stewart platform,” 1stIFAC Conference onModelling, Identification andControl of Nonlinear Systems, vol. 48,no. 11, pp. 47–52, Jun. 2015. [Online]. Available: http://www.sciencedirect.com.bdigital.udistrital.edu.co:8080/science/article/pii/S2405896315012392

[20] E. Farregas, “Plataformas interactivas de experimentación virtual y remota: Apli-caciones de control y robótica,” Ph.D. dissertation, Universidad Nacional de edu-cación a distancia Madrid, 2013.

[21] S. Awtar, B. C, B. N, A. Master, U. D, and C. Kevin, “Mechatronic design of ball onplate balancing system,” Elsevier Science- Mechatronics, no. 12, pp. 217– 228, 2002.

82

Bibliografía

[22] C. T. F. M. . simulink. Ball and beam: Digital controller design.[Online]. Available: http://ctms.engin.umich.edu/CTMS/index.php?example=BallBeam&section=ControlDigital

[23] A. Menéndez and S. Simón, Aportación al Control del Convertidor CC/CA de TresNiveles, Nov. 2004, ch. 5. [Online]. Available: http://www.tdx.cat/handle/10803/6330

[24] R. Mantz, Introducción al control óptimo, Universidad Nacional de La Plata, 2003.

[25] O. H. Bosgra, H. Kwakernaak, and G. Meinsma, Design Methods for Control Sys-tems, D. I. of Systems and Control, Eds. unknown, 2008.

[26] M. Rentsh, “Controlling a ball and plate process using computer vision,” Ph.D.dissertation, Lund Institute of Technology, Mar. 1998.

[27] B. Nath, Numerical Methods for Linear Control Systems. Department of Mathemati-cal Sciences, Northern Illinois University, 2004, ch. 12- State Estimation: Observerand The Kalman Filter, pp. 469– 518.

[28] H. Castillo, Desarrollo de una plataforma Stewart basada en microcontroladores, parasimular el comportamiento de una aeronave en tres grados de libertad, I. P. Nacional,Ed. Unidad Ticoman, Nov. 2013. [Online]. Available: http://tesis.bnct.ipn.mx/dspace/bitstream/123456789/12716/1/1948%202013.pdf

[29] G. González, “Plataforma de movimiento de seis grados de libertad aplicablea entrenador de vuelo,” Ph.D. dissertation, Universidad Ricardo Palma,2008. [Online]. Available: http://cybertesis.urp.edu.pe/bitstream/urp/62/1/gonzales_go.pdf

[30] S. Koekebakker, “Model based control of a flight simulator motion system,”Ph.D. dissertation, Universidad Técnica de Delft, Dec. 2001. [Online]. Available:http://www.dcsc.tudelft.nl/Research/PublicationFiles/publication-5738.pdf

[31] A. Koszewnik, K. Troc, and M. Stowik, “PID Controllers Design Applied toPositioning of Ball on the Stewart Platform,” Acta Mechanica et Automatica, vol. 8,no. 4, pp. 214–218, 2015. [Online]. Available: http://www.acta.mechanica.pb.edu.pl/volume/vol8no4/39_2014_016_KOSZEWNIK_TROC_SLOWIK.pdf

[32] S. Kucuk, Serial and Parallel Robot Manipulators - Kinematics, Dynamics, Controland Optimization. InTech, 2012, ch. 10, pp. 179–202. [Online]. Available:http://cdn.intechopen.com/pdfs-wm/34400.pdf

[33] (2002) Creating a stewart platform model using simmecha-nics. Technical Articles and Newsletters. MathWorks. [Onli-ne]. Available: http://www.mathworks.com/company/newsletters/articles/creating-a-stewart-platform-model-using-simmechanics.html?

83