• No se han encontrado resultados

Diseño e implementación de una plataforma bola y plato, para la Aplicación de técnicas de control PID y LQR

N/A
N/A
Protected

Academic year: 2020

Share "Diseño e implementación de una plataforma bola y plato, para la Aplicación de técnicas de control PID y LQR"

Copied!
93
0
0

Texto completo

(1)

Diseño e implementación de una plataforma bola y plato, para la

aplicación de técnicas de control PID y LQR

Oscar Leonardo Garzón Mancera

20141383057

Yonatan Garzón Melo

20141383023

Facultad tecnológica, Ingeniería en control

Bogotá D.C

(2)

i

Diseño e implementación de una plataforma bola y plato, para la

aplicación de técnicas de control PID y LQR

Oscar Leonardo Garzón Mancera

20141383057

Yonatan Garzón Melo

20141383023

Monografía para optar al titulo de ingeniero en control

Tutor del proyecto Ing. Frank Nixon Giraldo Ramos

Facultad tecnológica, Ingeniería en control

Bogotá D.C

(3)

ii

Nota de aceptación

____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________

________________________________

Tutor

Ing. Frank Nixon Giraldo Ramos

(4)

iii

Resumen

En este trabajo de grado se plantea el diseño y la construcción de una plataforma bola y plato con dos grados de libertad el cual es un sistema no lineal y multivariable, en esta planta real se puede aplicar técnicas de control PID y LQR, ya que para la mayoría de estos sistemas solo se realizan en entornos simulados en condiciones ideales. Se realiza el diseño de los controladores a partir de la selección del sistema de sensado para la posición de la bola, actuadores y el análisis de la dinámica de la planta llegando a su moldeamiento matemático, y se desarrolla una interfaz de usuario a través de procesamiento de imágenes con una cámara web capaz de ubicar la bola en diversos puntos dentro del plato o seguir una trayectoria.

(5)

iv

Abstract

In this degree work design and building a ball platform and plate with two degrees of freedom which is the united nations system nonlinear and multivariable, were planted in this real plant you can apply techniques PID control and LQR , since paragraph most of these alone systems are carried out in simulated under ideal conditions environments. The design of the controllers is made from the selection sensing system for ball position , actuators and analysis dynamics shaping plant reaching do mathematician, and a user interface of a through Image processing with able to locate in the sphere various points within the bowl or follow a path develops Webcam.

(6)

v

Agradecimientos

(7)
(8)

Índice general

1. Introducción 3

1.1. Planteamiento del problema . . . 3

1.2. Objetivos . . . 4

1.2.1. Objetivo general . . . 4

1.2.2. Objetivos específicos . . . 4

1.3. Alternativa de solución . . . 4

2. Análisis dinámico de la plataforma bola y plato 7 2.1. Modelo dinámico . . . 7

2.2. Aproximación lineal del sistema bola y plato . . . 11

2.3. Simplificación de la aproximación lineal . . . 12

2.4. Validación del modelo . . . 13

3. Unidad de control, sensor y actuador 17 3.1. Raspberry Pi . . . 17

3.1.1. Instalación de software . . . 19

3.2. Conversor adc . . . 21

3.3. Sistema de sensado . . . 22

3.3.1. Principio de funcionamiento . . . 22

3.3.2. Implementación . . . 23

3.3.3. Tratamiento de señal . . . 25

3.4. Actuador . . . 26

3.4.1. Control PWM para servo motor . . . 27

3.4.2. Identificación del servo motor . . . 29

4. Diseño y elaboración de plataforma bola y plato con 2 grados de libertad 31 4.1. Grados de libertad . . . 31

4.2. Prototipo . . . 32

4.3. Eslabones . . . 33

4.4. Juntas o uniones . . . 34

4.5. Piezas, elementos y ensamble . . . 36

5. Diseño de interfaz de usuario, control PID y LQR 41 5.1. Interfaz de usuario . . . 41

5.1.1. Visualización del plato en 3D . . . 43

5.1.2. Procesamiento de imágenes . . . 46

5.2. Parámetros de diseño de controladores . . . 51

5.3. Diseño control PID . . . 52

5.3.1. Discretización PD . . . 53

5.3.2. Simulación control PD . . . 54

5.3.3. Implementación control PD . . . 55

5.4. Diseño de control LQR . . . 56

5.4.1. Sistemas discretos en el espacio de estados . . . 58

5.4.2. Observador de estados . . . 60

5.4.3. Calculo K . . . 62

(9)

viii ÍNDICE GENERAL

5.4.4. Calculo de Ke . . . 64

5.4.5. Ganancias LQR y feedforward . . . 64

5.4.6. Simulación control LQR . . . 66

5.4.7. Implementación control LQR . . . 67

6. Resultados y Análisis de resultados 69 6.1. Resultados . . . 69

6.1.1. Sistema de sensado . . . 69

6.1.2. Plataforma . . . 70

6.1.3. Interfaz gráfica . . . 70

6.1.4. Control PD . . . 72

6.1.5. Control LQR . . . 73

6.2. Análisis de resultados . . . 74

6.2.1. Análisis de resultados control PD . . . 74

6.2.2. Análisis de resultados control LQR . . . 76

(10)

Índice de figuras

1.1. Diagrama de bloques alternativa de solución . . . 5

2.1. Diagrama de bloques modelo no lineal para un eje . . . 14

2.2. Respuesta en lazo abierto . . . 15

3.1. Raspberry pi . . . 18

3.2. Diagrama de pines GPIO . . . 19

3.3. Bus I2C Raspberry Pi . . . 20

3.4. Conversor adc ad1115 . . . 21

3.5. Pantalla resistiva táctil 4 hilos . . . 22

3.6. Contactos pantalla resistiva de 4 hilos . . . 23

3.7. Conexión pantalla . . . 24

3.8. Diagrama de flujo obtención de coordenadas X Y . . . 24

3.9. Pseodocodigo obtención de coordenadas pantalla resistiva de 4 hilos . . . 25

3.10. Señal de coordenadas X Y . . . 25

3.11. Tratamiento de señal coordenadas X Y . . . 26

3.12. Circuito Sistema de sensado . . . 26

3.13. Diagrama de flujo micro controlador como driver PWM . . . 28

3.14. Pseudocodigo micro controlador Atmel 328 como driver PWM de 2 canales . . . 28

3.15. Función de transferencia motor DC . . . 29

4.1. Construcción prototipo de la plataforma . . . 32

4.2. Grados de libertad Plataforma bola y plato . . . 33

4.3. Diseño base y plato 3D . . . 33

4.4. Plano base y plato 2D . . . 34

4.5. Extensión eje servo motor y barrilla para plato. . . 34

4.6. Junta universal . . . 35

4.7. Acople junta completa . . . 35

4.8. Semijutas extensor del plato . . . 36

4.9. Soporte servo motor . . . 36

4.10. Acople soporte y servo motor . . . 37

4.11. Ensamble pantalla en el plato . . . 37

4.12. Balín de acero . . . 38

4.13. Diseño completo 3D . . . 38

4.14. Eslabones, juntas, piezas y elementos reales . . . 38

4.15. Estructura real . . . 39

5.1. Pseudocodigo publicación datos en un servidor local . . . 42

5.2. Pseudocodigo adquisición datos de un servidor local . . . 42

5.3. Ángulos de navegación de un objeto en tres dimensiones . . . 43

5.4. Calculo ángulo de inclinación . . . 43

5.5. Pseudocodigo lectura mpu6050 de ángulos de movimiento X Y . . . 44

5.6. Pseudocodigo diseño 3D del plato . . . 45

5.7. Gráfica 3D con movimiento real del plato . . . 45

5.8. Identificación punto verde con filtro de mascaras de tonos de color verde . . . 46

(11)

ÍNDICE DE FIGURAS 1

5.9. Pseudocodigo librería reconocimiento de imagenes . . . 47

5.10. Pseudocodigo interfaz 2D modo libre . . . 48

5.11. Interfaz de usuario Modo libre . . . 49

5.12. Pseudocodigo interfaz 2D modo control . . . 50

5.13. Interfaz de usuario Modo control . . . 50

5.14. Respuesta al paso en lazo abierto . . . 52

5.15. Polos de la planta en plano complejo . . . 53

5.16. Lugar de las raíces asignación de polos . . . 53

5.17. Diagrama de bloques control PID discreto . . . 54

5.18. Simulación PD discreto . . . 54

5.19. Respuesta control PD discreto en modelo no lineal . . . 55

5.20. Seguimiento señal cuadrada . . . 55

5.21. Pseudocodigo ecuación en diferencias PID discreto. . . 56

5.22. Trayectorias de estados . . . 57

5.23. Diagrama de bloques LQR+observador de orden completo+feedforward para seguimiento de referencia . . . 58

5.24. Diagrama de bloques observador de orden completo . . . 60

5.25. Diagrama de bloques sistema LTI controlado con observador de estados con ganancia negativa de re alimentación del vector de estados. . . 60

5.26. Solución Ricatti sistema bola y plato . . . 65

5.27. Gananciaskk del control LQR . . . 65

5.28. Simulación LQR discreto . . . 66

5.29. Respuesta control PD discreto en modelo no lineal . . . 66

5.30. Seguimiento señal cuadrada LQR . . . 67

5.31. Pseudocodigo para la control LQR discreto. . . 68

6.1. Identificación punto verde con filtro de mascaras de tonos de color verde . . . 71

6.2. Recorrido del laberinto modo control . . . 71

6.3. Pruebas control PD . . . 72

6.4. Pruebas control LQR . . . 73

6.5. Respuesta PD ideal . . . 74

(12)
(13)

Capítulo 1

Introducción

Índice

1.1. Planteamiento del problema . . . 3

1.2. Objetivos . . . 4

1.2.1. Objetivo general . . . 4

1.2.2. Objetivos específicos . . . 4

1.3. Alternativa de solución . . . 4

Los métodos de control clásicos PID y sus derivaciones se usan ampliamente en la industria por su bajo costo y alta funcionalidad, sin embargo para procesos de múltiples variables de entrada y de salida no son la mejor solución[1], para ello se utilizan mejor, técnicas de control óptimo o modernas como RVE (reali-mentacion de variables de estados), LQR (regulador lineal cuadrático) y LQG (controlador lineal cuadrático gaussiano) entre otras, que pueden trabajar con todas las variables de una manera óptima dependiendo del grado de interacción de las variables. Los sistemas físicos que proporcionan este tipo de características para el desarrollo y aplicación de este tipo de controladores usualmente presentan dos variables de entrada y salida, como el caso del sistema de vuelo de un helicóptero y más robustos como plataformas de simulación de vuelo de 6 variables de entrada y salida, la construcción de estos sistemas es dispendiosa y por tanto la aplicación de los métodos de control de múltiple variable se aplican en entornos de simulación a través de software, en los cuales no se pueden establecer y analizar los problemas que se pueden presentar como, por ejemplo, respuesta de los actuadores, los sensores y perturbaciones de un sistema real. Tener un planta física donde se puedan aplicar estas técnicas de control antes mencionadas, mejora la comprensión de la teoría y se puede llevar a la practica este tipo de conceptos[2].Por este motivo este trabajo plantea diseñar y construir un sistema bola y plato multivariable con 2 GDL, un sistema de sensado para la posición de la bola dentro del plato y por supuesto desarrollar un control PID y LQR partiendo del análisis dinámico y modelo matemático de la plataforma. También se plantea integrar procesamiento de imágenes en la interfaz de usuario para ubicar la esfera en diferentes puntos dentro del plato o realizar una trayectoria con el reconocimiento de un punto a través de una cámara web.

1.1.

Planteamiento del problema

El desarrollo de plataformas para la aplicación de los conocimientos teóricos en las técnicas de control son una herramienta importante para el desarrollo del conocimiento en los estudiantes en el área de control, aunque el mayor número de problemas de la industria se solucionen con controladores PID y sus derivaciones, esta no es la solución más eficiente para problemas de múltiples variables de entrada y salida, las cuales presentan un fenómeno denominado interacción el cual hace que el desempeño de un lazo de control afecte al de otros y viceversa, por tanto los controles modernos como RVE, LQR y LQG entre otros que tienen en cuenta para su diseño múltiples variables de entrada y salida pueden desempeñar un mejor funcionamiento en la solución de estos problemas, sin embargo son limitados los sistemas físicos que tienen los laboratorios de la universidad que proporcionen este tipo de características para el aprendizaje y la aplicación de estas técnicas de control, la construcción de estos sistemas es dispendiosa y por tanto su estudio es en entornos de simulación por software y no en una planta física donde se evidencia los problemas reales de la implementación de un control, como el tiempo de respuesta de actuadores y sensores, ruido en las señales en los lazos de control.

(14)

4 CAPÍTULO 1. INTRODUCCIÓN

1.2.

Objetivos

1.2.1.

Objetivo general

Diseñar una plataforma bola y plato con dos grados de libertad para aplicar métodos de control PID y LQR.

1.2.2.

Objetivos específicos

1. Diseñar y construir una plataforma con dos grados de libertad.

2. Realizar la identificación y el modelo matemático de la plata.

3. Implementar un sistema de sensado para determinar la posición de la bola dentro del plato

4. Deducir los controladores PID Y LQR para la posición de la bola dentro del plato por medio del movimiento angular de la plataforma en los ejes x, y.

1.3.

Alternativa de solución

(15)

1.3. ALTERNATIVA DE SOLUCIÓN 5

(16)
(17)

Capítulo 2

Análisis dinámico de la plataforma bola

y plato

Índice

2.1. Modelo dinámico . . . 7

2.2. Aproximación lineal del sistema bola y plato . . . 11

2.3. Simplificación de la aproximación lineal . . . 12

2.4. Validación del modelo . . . 13

En este capítulo se desarrolla el modelo dinámico de la plataforma bola y plato, se usa el método de Lagrange para describir las ecuaciones físicas del movimiento de la bola sobre el plato con rotación en los ejes X, Y. Se obtienen las ecuaciones diferenciales que modelan el sistema y su representación en el espacio de estados, se realiza una aproximación lineal del modelo aplicando el teorema de método indirecto de Lyapunov, su simplificación para que la señal de control sea por angulo y no por aceleración angular del plato y su validación.

2.1.

Modelo dinámico

Se realiza el modelo matemático de planta de una manera precisa que permita predecir el comportamiento de la bola dentro del plato y de esta manera poder diseñar los controladores PID y LQR para que tengan el mejor funcionamiento sobre el sistema. Para realizar el modelo se utilizo el método de Lagrange con el cual se obtienen las ecuaciones físicas que describen el comportamiento de la bola sobre el plato.

La mecánica lagrangiana es una reformulación de la mecánica clásica, donde la trayectoria de un objeto es obtenida encontrando la trayectoria que minimiza la acción aplicando la integral del lagrangiano en el tiempo, siendo esta la energía cinética del objeto menos la energía potencial del mismo ecuación (2.1).

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

DondeEc(t)corresponde a la energía cinética yEp(t)es la energía potencial del sistema, para el análisis

de energías se han omitido la fricción entre el plato y la bola. Los movimientos que experimenta la bola al rodar son: movimiento de rodamiento suave de cuerpo rígido uniforme y partícula en movimiento que sigue una trayectoria circular.

La energía cinética de un sistema ver ecuación (2.2) se puede expresar como la sumatoria de la energía cinética rotacional y energía cinética traslacional para los dos tipos de movimiento[3].

EC(t) =Erot1(t) +Etransl1(t) +Erot2(t) +Etransl2(t) (2.2)

Donde cada energía particular se describe como:

Erot1(t) =

1 2Ieω

2

b(t) =

1 2Ie

r.(t)

R

2

(18)

8 CAPÍTULO 2. ANÁLISIS DINÁMICO DE LA PLATAFORMA BOLA Y PLATO

Etransl1(t) =

1 2m

.

r2(t)

Erot2(t) =

1 2Ie

.

θ

2

(t)

Etransl2(t) =

1 2m

.

s2(t)

La energía potencial del sistema ver ecuación (2.3) se expresa tomando como punto de referencia el plato.

EP(t) =−mgh (2.3)

De esta manera la ecuación de Lagrange del sistema se describe.

L(t) = 1 2Ie

"

.

θ2(t) +

r.(t)

R

2#

+1 2m

h.

r2(t) +s.2(t)i+mgh

Al tener dos grados de libertad el sistema en los ejes X, Y en términos de coordenadas, se expresa como en la ecuación (2.4):

L(t) =1 2Ie

.

θx

2

(t) +

.

θy

2

(t) +

.

x R2 +

. y R2 +1 2m .

x2+y.2+

.

xθx(t) + .

yθy

2

+mg(xsenθx+ysenθy) (2.4)

Se utiliza la ecuación de Lagrange-Euler ecuación (2.5) mediante la cual se obtienen las ecuaciones para definir el movimiento de la bola y la inclinación del plato

d dt

δL

δq.j

δL

δqj

= Qj (2.5)

Aplicando para cada una de las coordenadas de movimientoxey, que describen la posición de la bola y el angulo de inclinación del plato se tiene:

d dt

δL

δx.

δL

δx

= 0 (2.6)

d dt

δL

δy.

δL

δy

= 0 (2.7)

d dt δL δ . θx ! − δL δθx

= Tx (2.8)

d dt δL δ . θy ! − δL δθy

= Ty (2.9)

Evaluando la ecuación (2.6) se obtiene la aceleración lineal de la bola sobre la coordenada X, que permite, a su vez, obtener la posición sobre este mismo eje.

δL (t)

δx (t) = 1 2m

h

2x

.

θx2+2y ˙θ2xθ˙2yi+ mgsinθx

δL (t)

δx (t). = 1 2Ie

2x. R2 +

1 2m2 . x d dt

δL (t)

δx (t). = Ie

R2¨x + m¨x

¨ x

I

e

R2 + m

(19)

2.1. MODELO DINÁMICO 9

Evaluando la ecuación (5.6) se obtiene la aceleración lineal de la bola sobre la coordenada Y, que permite, a su vez, obtener la posición sobre este mismo eje.

δL (t)

δy (t) = 1 2m

h

2y

.

θ2y+2x ˙θ2xθ˙2yi+ mgsinθy

δL (t)

δy (t). = 1 2Ie

2y. R2 +

1 2m2 . y d dt

δL (t)

δy (t). = Ie

R2¨y + m¨y

¨ y

Ie

R2 + m

−my ˙θy2−mx ˙θxθ˙y−mgsinθy= 0 (2.11)

Evaluando la ecuación (2.8) la aceleración angular del plato sobre el eje X, que permite, a su vez, obtener el angulo de giro sobre este mismo eje .

δL (t)

δθx(t)

= mgxcosθx

δL (t)

δθ˙x(t)

= 1 2Ie2 ˙θx+

1 2m

h

2x2θ˙x+ 2xy ˙θy

i

= Ieθ˙x+ mx2θ˙x+ mxy ˙θy

d dt

δL (t)

δ

.

θx(t)

=Ieθ¨x+ m

x2θ¨x+ 2x ˙x ˙θx

+ m˙xy ˙θy+ x ˙y ˙θy+ xy ¨θy

Ieθ¨x+ m

x2θ¨x+ 2x ˙x ˙θx

+ m˙xy ˙θy+ x ˙y ˙θy+ xy ¨θy

−mgxcosθx = Tx (2.12)

Evaluando la ecuación (5.10) se obtiene la aceleración angular del plato sobre el eje Y, que permite, a su vez, obtener el angulo de giro sobre este mismo eje .

δL (t)

δθy(t)

= mgycosθy

δL (t)

δθ˙y(t)

= 1 2Ie2 ˙θy+

1 2m

h

2y2θ˙y+ 2xy ˙θx

i

= Ieθ˙y+ my2θ˙y+ mxy ˙θx

d dt

δL (t)

δ

.

θy(t)

=Ieθ¨y+ m

y2θ¨y+ 2x ˙y ˙θy

+ m˙xy ˙θx+ x ˙y ˙θx+ xy ¨θx

Ieθ¨y+ m

y2θ¨y+ 2y ˙y ˙θy

+ m˙xy ˙θx+ x ˙y ˙θx+ xy ¨θx

−mgycosθy = Ty (2.13)

De las ecuaciones 2.10,2.11,2.12 y 2.13 se pueden despejar las aceleraciones lineales de la bola y las aceleraciones angulares del plato en los ejes de rotación, de esta manera se obtienen el conjunto de ecuaciones 2.14,2.15,2.16 y 2.17 que describe el comportamiento dinámico del sistema[4, 5].

¨

x= I m

e

R2 +m

h

xθ˙2x+yθ˙xθ˙y+gsinθx

i

(2.14)

¨

y= I m

e

R2 +m

h

yθ˙2y+xθ˙xθ˙y+gsinθy

i

(2.15)

¨

θx=

1

Ie+mx2

h

Tx−m

2xx˙θ˙x+ ˙xyθ˙y+xy˙θ˙y+xyθ¨y−gxcosθx

i

(2.16)

¨

θy=

1

Ie+my2

h

Ty−m

2yy˙θ˙+ ˙xyθ˙x+xy˙θ˙x+xyθ¨x−gycosθy

i

(2.17) Se toman como variables de estado:

x1=x x2= ˙x x3=θx x4= ˙θx

(20)

10 CAPÍTULO 2. ANÁLISIS DINÁMICO DE LA PLATAFORMA BOLA Y PLATO

Y las ecuaciones que describen la dinámica del sistema en el espacio de estados se muestra en la ecuación (2.18) y su organización matricial en la ecuación (2.19), se evidencia que el sistema tiene una no linealidad y presenta un acoplamiento en las componentes de la velocidad angular del plato y la velocidad lineal de la bola[6], por tanto la velocidad lineal de la bola en el eje X depende de la velocidad angular del plato sobre el eje Y, la velocidad lineal de la bola en el eje Y depende de la velocidad angular del plato sobre el eje X. También se observa que la dinámica del sistema no depende de los parámetros de la bola (masa y radio), ya que al evaluar el momento de inerciaIe se simplifican[7].

˙

x1= ˙x=x2 x˙2= ¨x= 57 x1x24+x5x4x8+gsinx3 x˙3= ˙θx=x4

˙

x6= ˙y=x6 x˙6= ¨y=57 x5x28+x1x4x8+gsinx7

˙

x7= ˙θy=x8

(2.18)             ˙ x1 ˙ x2 ˙ x3 ˙ x4 ˙ x5 ˙ x6 ˙ x7 ˙ x8             =             x2 5

7 x1x 2

4+x5x4x8+gsinx3

x4

0

x6 5

7 x5x28+x1x4x8+gsinx7

x8 0             +             0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1             UA UB (2.19)

Para eliminar el acoplamiento entre las velocidades angulares de los ejes se asume que la bola no patina y siempre se mantiene en contacto con la superficie del plato, lo que implica que la aceleración angular del plato sera baja afectando de la misma manera su velocidad angular considerándolas unas variables de magnitud pequeña, por tal motivo se omite el termino de acople entre coordenadas[8, 9].

|θ˙x|u0y|θ˙y|u0→|x4|u0y|x8|u0

De esta manera se tiene el sistema desacoplado ecuación (2.20) con respecto a los estadosx4y x8.

            ˙ x1 ˙ x2 ˙ x3 ˙ x4 ˙ x5 ˙ x6 ˙ x7 ˙ x8             =             x2 5

7 x1x 2

4+gsinx3

x4

0

x6 5

7 x5x28+gsinx7

x8 0             +             0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1             UA UB (2.20)

(21)

2.2. APROXIMACIÓN LINEAL DEL SISTEMA BOLA Y PLATO 11

Variable Unidad Descripción

x [m] desplazamiento de la bola a lo largo del eje “x”

˙

x [m/s] velocidad de la bola a lo largo del eje “x”

¨

x

m/s2

aceleramiento de la bola a lo largo del eje “x”

y [m] desplazamiento de la bola a lo largo del eje “y”

˙

y [m/s] velocidad de la bola a lo largo del eje “y”

¨

y

m/s2

aceleramiento de la bola a lo largo del eje “y”

θx [rad] ángulo entre el eje “x” del plato y el plano horizontal

θy [rad] ángulo entre el eje “y” del plato y el plano horizontal

m [kg] masa de la bola

R [m] radio de la bola

Ie kg·m2 momento de inercia esfera macizaIe= 25mR2

˙

s [m/s] velocidad lineal debido a la rotacións˙2=xθ˙x+yθ˙y

2

˙

r [m/s] velocidad lineal de la esferar˙2= ˙x2+ ˙y2

ωb [rad/s] velocidad angular de la bola ω=Rr

˙

θ [rad/s] velocidad angular del platoθ˙2= ˙θ2

x+ ˙θ2y

h [m] altura de la bola h=xsinθx+ysinθy

g m/s2 gravedad g=9.81m/s2

Cuadro 2.2: Parámetros y variables físicas del sistema bola y plato

2.2.

Aproximación lineal del sistema bola y plato

Para obtener una aproximación lineal de un sistema no lineal lo primero es realizar una linealización en torno a un punto de equilibrio. Para esto se utiliza el teorema de método indirecto de Lyapunov[10].

Teorema (Método indirecto de Lyapunov):

Seax= 0un punto de equilibrio del sistema no lineal dado porx˙ =f(x)dondef :D→ <n, conD⊂ <n,

es continuamente diferenciable yD es un entorno del origen. Sea la matriz jacobiana

A= ∂f

∂x(x)|x=0 (2.21)

Entonces, notando con λi a los auto valores deA(i= 1, . . . , n).

El origen es asintóticamente estable si< {λi}<0, para todoλi.

El origen es inestable si< {λi}>0, para uno o mas auto valores de A.

Se dice que para un puntox=xeen el espacio de estados, es un punto autónomo de equilibrio del sistema

˙

x=f(x)

si tiene la propiedad de que cada vez que el estado del sistema comienza en xese mantiene para todo

tiempo futuro enxe.

Acorde con esta definición, los puntos de equilibrio son las raíces reales dondef(xe) = 0 se define como

˙

x= ∂f

∂xe

(xe) = 0 (2.22)

(22)

12 CAPÍTULO 2. ANÁLISIS DINÁMICO DE LA PLATAFORMA BOLA Y PLATO

˙

x1=x2= 0 x˙5=x6= 0

˙

x2= 57 x1x24+x5x4x8+gsinx3

= 0 x˙6= 57 x5x82+x1x4x8+gsinx7

= 0 ˙

x3=x4= 0 x˙7=x8= 0

˙

x4= 0 x˙8= 0

(2.23)

La matriz jacobiana [12]se representa en la ecuación (2.24) se forma por las derivadas parciales de primer orden de una función y aproxima lineal mente a la función en un punto.

Jf =

 

df1

dx1 · · ·

df1

dxn

..

. . .. ...

dfn

dx1 · · ·

dfn

dxn 

 (2.24)

De esta manera se selecciona el centro del plato como un punto de equilibrio y su respectiva matriz jacobiana se ve en la ecuación (2.25):

J x=

           

0 1 0 0 0 0 0 0

5 7x

2 4 0

5

7gcosx3 57(2x1x4+x5x8) 57x4x8 0 0 0

0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 1 0 0

5

7x4x8 0 0

5 7x1x8

5 7x

2 8 0

5 7gcosx7

5

7(x1x4+ 2x5x8)

0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0

            (2.25)

Se evalúa sobre el punto de equilibrio y se llega a la aproximación lineal en espacios de estado ecuación (2.26). ˙ x=            

0 1 0 0 0 0 0 0 0 0 0 57g 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 57g 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

            x+             0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1             U (2.26)

Se aprecia que la matriz jacobiana de la ecuación (2.26) se puede subdividir para cada uno de los ejes ya que presentan el mismo comportamiento.

Espacio de estados para el eje X de la aproximación lineal se ve en la ecuación (2.27).

˙ x1 ˙ x2 ˙ x3 ˙ x4 =    

0 1 0 0 0 0 57g 0 0 0 0 1 0 0 0 0

        x1 x2 x3 x4     +     0 0 0 1    

Ua (2.27)

Espacio de estados para el eje Y de la aproximación lineal se ve en la ecuación (2.28).

˙ x5 ˙ x6 ˙ x7 ˙ x8 =    

0 1 0 0 0 0 57g 0 0 0 0 1 0 0 0 0

        x5 x6 x7 x8     +     0 0 0 1    

Ub (2.28)

2.3.

Simplificación de la aproximación lineal

(23)

2.4. VALIDACIÓN DEL MODELO 13

nueva variable de control los ángulos de movimiento del platox3 =θxyx7 =θy, que están relacionados al

ángulo de los servo motores[13].

Otra particularidad del sistema es que presenta un doble integrador que en espacio de estados, se define como:

˙

x(t) =

0 1 0 0

(t)x+

0 1

u(t)

Se observa en la ecuación (2.27) la señal de control ingresa porx4y pasando por el doble integrador llega

ax3 según las variables que describen el espacio de estados se tiene:

˙

x4=Ua→x4=

´

˙

x4=

´

Ua

˙

x3=x4→x3=

´

x4→x3=

´ ´

Ua

Se realiza un cambio de variable para definir la nueva entrada de control x3 = Uxy x7 = Uy de esta

manera el nuevo modelo de variables de estado sera:

Para el eje X por ángulo de la aproximación lineal en la ecuación (2.29)

˙ x1 ˙ x2 = 0 1 0 0 x1 x2 + 0 5 7g

Ux (2.29)

Para el eje Y por ángulo de la aproximación lineal en la ecuación (2.30)

˙ x5 ˙ x6 = 0 1 0 0 x5 x6 + 0 5 7g

Ux (2.30)

De esta manera las matrices de estado A, B, C y D son

A= 0 1 0 0 B= 0 7 C= 1 0

D= [0] (2.31)

Aplicando la formula (2.32) se obtiene la función de transferencia a partir de las matrices de espacio de estados

G(s) =C(SI−A)−1B+D G(s) =S72

(2.32)

2.4.

Validación del modelo

(24)

14 CAPÍTULO 2. ANÁLISIS DINÁMICO DE LA PLATAFORMA BOLA Y PLATO

Figura 2.1: Diagrama de bloques modelo no lineal para un eje

(25)

2.4. VALIDACIÓN DEL MODELO 15

(26)
(27)

Capítulo 3

Unidad de control, sensor y actuador

Índice

3.1. Raspberry Pi . . . 17

3.1.1. Instalación de software . . . 19

3.2. Conversor adc . . . 21 3.3. Sistema de sensado . . . 22

3.3.1. Principio de funcionamiento . . . 22 3.3.2. Implementación . . . 23 3.3.3. Tratamiento de señal . . . 25

3.4. Actuador . . . 26

3.4.1. Control PWM para servo motor . . . 27 3.4.2. Identificación del servo motor . . . 29

En este capítulo se describe la tarjeta Raspberry Pi como unidad de control en el cual se implementan los controladores PID y LQR de modo discreto; la puesta en marcha para trabajar remotamente desde un PC sin utilizar periféricos que consta de la instalación del sistema operativo, conexión estática por cable, configuración de comunicación SSH, servidor VNC para modo gráfico. La configuración del protocolo de comunicación I2C, descripción del adc (conversor análogo digital) y el driver de PWM implementado en un micro controlador Atmel 328. De igual manera se describe el sistema de sensado para la posición de la bola dentro del plato con una pantalla resistiva táctil de cuatro hilos y los actuadores que permite el movimiento del plato.

3.1.

Raspberry Pi

La placa Raspberry Pi puede funcionar como unidad de control para diversos sistemas a bajo costo, su principal característica esta en ser multiplataforma que puede ejecutar diversos sistemas operativos como Windows, Macintosh OSX, QT Creator, Python, GNU/Linux, por tal motivo no esta limitada a uno en espe-cial, permite tener la capacidad de procesamiento de un computador y sus particularidades como la ejecución de múltiples tareas, puede cumplir las funciones de un servidor y a demás ejecutar diversos programas al mismo tiempo, la principal limitación esta su hardware ya que no tiene entradas ni salidas análogas, puede generar señales PWM por cualquier pin GPIO (entradas y salidas de propósito general) de dos maneras por software que consume memoria de procesamiento o por hardware que trabaja con un reloj independiente, sin embargo por ninguno de los dos métodos el tiempo es preciso y aplicaciones que requieran de exactitud no funcionaran correctamente, su tamaño es reducido en dimensiones de 8.5cmx5.3 cm en el modelo B+ permite un ahorro en espacio y facilidad para el diseño como elemento de control junto a otros periféricos, entre sus características técnicas se encuentra un chip integrado Broadcom BCM2835, que contiene un pro-cesador ARMv6, 512MB de memoria RAM, no tiene una unidad de disco duro pero cuenta con un lector MicroSD donde se carga el sistema operativo y almacena información, 4 puertos USB 2.0, puerto Ethernet para conexión a red, puerto HDMI, conector MIPI CSI para cámara, puertos de audio y vídeo RCA Jack y 40 pines GPIO los cuales permiten la comunicación con diversos módulos electrónicos. La Raspberry Pi tiene bibliotecas pre-instaladas para el acceso al hardware utilizando programas como Python, Co, C++. Todo

(28)

18 CAPÍTULO 3. UNIDAD DE CONTROL, SENSOR Y ACTUADOR

ello equivale en la práctica a un ordenador con unas capacidades gráficas similares a la XBOX de Microsoft con la posibilidad de reproducir vídeo en 1080p[16].

Hardware Raspberry Pi

En la figura(3.1) se ve como esta compuesta la placa en cuanto a hardware y sus principales características se describen a continuación.

Figura 3.1: Raspberry pi

Procesador de la tarjeta

Es el elemento mas importante, su ubicación esta en el centro de la placa también se le denomina SOC es un chip PCM2835 Broadcom con un procesador ARM11 a 700Mhz, memoria de 512 Mb y una GPU videocore4.

Puerto Tarjeta MicroSD

Una de las características de diseño de la tarjeta es que no tiene una unidad de disco duro, por eso utiliza una tarjeta de memoria SD como unidad de disco solido, el tamaño mínimo es de 4GB si se necesita mayor capacidad de almacenamiento para instalación de software adicional soporta hasta 8GB.

Puerto Ethernet y USB

Ambos puertos son alimentados por el chip BCM2835 para su correcto funcionamiento se sugiere una alimentación de la tarjeta de 2 amperios, para el funcionamiento de los 4 puertos USB cuenta con un hub USB que permite concentrar varios puertos, la velocidad de transferencia es de hasta 480Mbit/s; el puerto ethernet 10/100MB con un conector RJ45 tiene una tarjeta de red auto-sense que determina el tipo de conexión eliminando el tipo de cable y su configuración cruzado o punto a punto.

Pines GPIO

(29)

3.1. RASPBERRY PI 19

Figura 3.2: Diagrama de pines GPIO

Software Raspberry Pi

Una de sus características principales es que puede ejecutar diferentes sistemas operativos, entre ellos algunos de código abierto y software libre que no es sinónimo de software gratuito, el sistema operativo que se eligió es Raspbian recomendado por el fabricante y es el mas avanzado para la versión de la tarjeta Raspberry Pi B+, es una distribución del sistema operativo GNU/Linux técnicamente es una versión de Debian Wheezy para el procesador CPU de la Raspberry Pi con soporte optimizado para cálculos en coma flotante, contiene herramientas de desarrollo como IDLE para el lenguaje de programación Python o Scratch, raspi-config que permite configurar la tarjeta sin tener que conocer los comandos correctos para su uso pero requiere permisos de administrador por lo que se debe ejecutar en un terminal.

3.1.1.

Instalación de software

Se emplea una microSD de 8GB, el OS se descarga de la pagina oficial de la fundación Rasberry PI, se crea una imagen del sistema operativo y se carga en la SD, luego se conecta la alimentación de la tarjeta con la SD y se ejecutara el sistema operativo. Para no usar periféricos como teclado, ratón y monitor se configura para trabajar directamente con los periféricos de un computador, para esto se utiliza un cable de red CAT-5 sin importar si es punto a punto o cruzado, para que la tarjeta tenga acceso a Internet por medio del PC se activa el ICS (Internet Connection Sharing) en Windows se realizan los siguientes pasos:

1. Compartir la conexión Wi-Fi o Ethernet con otros dispositivos (Centro de redes y recursos compartidos). 2. Seleccione la conexión de red de la tarjeta que se llama “Ethernet”.

3. Configurar la dirección estática en el puerto en el que se encuentra conectado la tarjeta y se asigna una dirección IPv4 192.168.137.1 con una mascara subred 255.255.255.0.

4. Configurar una IP estática en la Raspberry Pi, en el terminal se abre el archivo de interfaz de network con el comando “sudo nano /etc/network/interfaces”, se modifica la tercera linea de código “dchp” por “static” y se asigna la dirección IP 192.168.137.2, guarde las modificaciones echas al archivo y reinicie la tarjeta con el comando “sudo reboot”.

5. Verificar la IP de la tarjeta con el comando “ifconfig -a” muestra la direcccion IP que asigno en el paso 4.

(30)

20 CAPÍTULO 3. UNIDAD DE CONTROL, SENSOR Y ACTUADOR

Conexión remota utilizando SSH

El SSH es un protocolo que facilita las comunicaciones seguras entre dos sistemas usando una arquitectura cliente/servidor, a diferencia de otros protocolos como FTP o Telnet el SSH encripta la sesión de conexión, algunas características son:

Después de la conexión inicial, el cliente puede verificar que se está conectando al mismo servidor al que se conectó anteriormente

El cliente transmite su información de para autenticar al servidor usando una encriptación robusta de 128 bits.

Todos los datos enviados y recibidos durante la sesión se transfieren por medio de encriptación de 128 bits, lo cual los hacen extremamente difícil de descifrar y leer.

Este protocolo permite que la Raspberry Pi funcione como servidor y el PC como cliente donde se tendrá acceso al terminal de la tarjeta, para activar el modo gráfico remoto se instala el servidor VNC (virtual network computing) en la Raspberry Pi que en términos prácticos envía fotos del escritorio al computador varias veces por segundo. Para instalar el servidor VNC en la tarjeta se ejecuta en el terminal “sudo apt-get install tightvncserver”, luego de la instalación se asigna una clave por defecto es “raspberry”, para iniciar el servidor se ejecuta el comando donde se define la resolución que se quiere y el formato según las características del monitor que se tenga se pueden cambiar “ vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565”.

Configuración comunicación I2C

Al no tener entradas y salidas análogas y deficiencia en la generación de PWM para control de servo motor, se utiliza un conversor adc y un driver de PWM con comunicación I2C, de esta manera se integra la capacidad de procesamiento de la Raspberry Pi con hardware para tareas especificas, aunque la tarjeta trae pines específicos para este tipo de comunicación es necesario habilitar el bus de comunicaciones con los siguientes pasos:

1. Se instala las herramientas del protocolo de comunicación con el comando “ sudo apt-get install i2c-tools”

2. La configuración de la comunicación se hace utilizando la herramienta Raspi-config con el comando “sudo Raspi-confg”, se abrirá un menú seleccionar opciones avanzadas>‌>I2C confirmar y aceptar, se debe reiniciar la tarjeta.

3. Ahora se debe configurar manualmente 3 archivos y reiniciar la tarjeta.

Abrir el archivo modules “ sudo nano /etc/modules” se deben copiar dos lineas de código “I2C -bcm2708” y “I2C - dev”

Abrir el archivo raspi-blacklist.conf “sudo nano /etc/nopprobe.d/raspi-blacklist.conf” se deben agregar dos lineas de código “blacklist spi-bcm2708” y “blacklist i2c-bcm2708”

Abrir archivo config.txt “sudo nano /boot/config.txt” se agregan dos lineas de código “dtparam=i2c1=on” y “dtparam=i2c_arm=on”.

Con el comando “sudo i2cdetect –y 1” se pueden ver los dispositivos conectados ver figura(3.3) al bus I2C puede comunicar hasta 80 direcciones diferentes.

(31)

3.2. CONVERSOR ADC 21

Python

Es un lenguaje de programación de alto nivel multiparadigma para la solución de los problemas de programación por orientación a objetos, programación imperativa y programación funcional, esta desarrollado bajo una licencia de código abierto, por lo que puede ser usado en cualquier sistema con total libertad, incluso con fines comerciales y es el lenguaje por defecto incluido en Raspberry Pi. Python es un lenguaje interpretado, quiere decir que requiere de un interprete que convierta las sentencias a código maquina que lea las instrucciones y las ejecute, para Raspberry Pi se utiliza IDLE. Ademas tiene múltiples librerías (escritas en C) que proporcionan soluciones a muchos problemas de programación diaria como protocolos de comunicación serial, I2C, lectura de sensores, operaciones entre matrices etc[17].

3.2.

Conversor adc

Debido a que la Raspberry Pi no cuenta con un conversor adc se selecciono el ad1115 de Texas Insruments ver figura(3.4) por las siguientes características: protocolo de comunicación I2C (dirección del dispositivo 0x48), rango de señales lógicas entre 2v a 5v compatible con los GPIO, corriente de consumo 150uA, 4 canales de entrada y su resolución de 16 bits, puede leer señales pequeñas utilizando un amplificador interno de 2/3, 1, 2,4,8 y 16 veces, sin embargo la señal resultante no debe ser mayor a el voltaje de alimentación +0.3v.

Figura 3.4: Conversor adc ad1115

El protocolo de comunicación I2C es indispensable para integrarlo con la Raspberry Pi, cuenta una librería para el manejo del adc pero se debe instalar de la siguiente manera en el terminal:

“sudo apt-get install Python-smbus”

“sudo apt-get install build-essential python-dev python-smbus git” “cd ~”

“git clone https://github.com/adafruit/Adafruit_Python_ADS1x15.git” “cd Adafruit_Python_ADS1x15”

“sudo python setup.py install”

Se actualiza la librería con “sudo apt-get update”

“sudo apt-get install build-essential python-dev python-smbus python-pip” “sudo pip install adafruit-ads1x15”

(32)

22 CAPÍTULO 3. UNIDAD DE CONTROL, SENSOR Y ACTUADOR

Los cuatro canales permiten la lectura de las coordenadas de la esfera , el canal 0 para la posición en X y el canal 1 la posición en Y, los dos canales restantes se pueden utilizar para variar el punto de referencia para cada coordenada de esta manera se aprovechan completamente las características físicas del adc.

La resolución de 16 bits brinda una alta precisión y exactitud pero requiere que la señal sea lo mas libre de ruido de no ser así tendrá variaciones entre medidas muy altas ya que el valor mínimo que toma con una alimentación de 5v es

Vmin= 5∗2−16

Vmin= 76µV

por este motivo la señal del sensor debe tener un tratamiento previo que elimine el ruido o se pueden tener lecturas erróneas. En su implementación real el ad1115 con una ganancia de 1 la resolución es de 15 bits esto quiere decir que entrega un valor de 0 a 32767 y la señal mas pequeña que causa una variación en la salida son 125µV, el valor máximo de lectura es 4.1V por tanto su factor de conversión es ver ecuación (3.1) y la señal proveniente del sensor debe estar en ese rango ya que para valores entre 4.1V y 5V no tendrá ninguna variación.

Fconv= 327674,1

Fconv= 125,123x10−6

(3.1)

3.3.

Sistema de sensado

El sistema de sensado es de gran importancia en la plataforma bola y plato, ya que por medio de este se determina la posición de la esfera, por tal motivo el sensor seleccionado debe cumplir con buena resolución, exactitud y tiempo de respuesta, ya que la posición cambiara tan rápido como la aceleración de la esfera y de ser lento el controlador no podrá ejercer su función de manera precisa.

Se tomo como sensor una pantalla táctil resistiva de 4 hilos, respuesta lineal con un error≤1.5 % , fuerza de accionamiento de 20 a 100 gramos, exactitud táctil 1.15mm a 2.5mm, tiempo de respuesta < 10ms, estas características se adecuan a los parámetros necesarios de funcionamiento para la plataforma.

Figura 3.5: Pantalla resistiva táctil 4 hilos

3.3.1.

Principio de funcionamiento

(33)

3.3. SISTEMA DE SENSADO 23

detecta la variación de dicha resistencia. Estos táctiles funcionan de forma matricial leyendo la posición donde se presionó comparando el valor de la coordenada X y coordenada Y de forma separada que luego el sistema micro controlado interpreta y procesa para saber en qué posición fue presionada.

Al presionar el táctil (cualquier tipo de objeto dedo, puntero, esfera.), se unen dos capas metálicas resistivas lo cual permite la variación de la resistividad del componente ver figura(3.6). La resistencia de estas capas no excede normalmente 1K ohm. Los lados opuestos de las láminas disponen de contactos para acceder a un cable plano. El procedimiento para determinar las coordenadas de la posición del panel que ha sido presionado puede dividirse en dos pasos. El primero es la determinación de la coordenada X y el segundo el de la coordenada Y del punto. Para determinar la coordenada X, es preciso que el contacto izquierdo de la superficie X se conecte a masa y el contacto derecho a la fuente de alimentación, esto permite obtener un divisor de tensión presionando el panel táctil, el valor de la tensión obtenida en el divisor se puede leer en el contacto inferior de la superficie Y. La tensión variará en el rango de 0 V a la tensión suministrada por la fuente de alimentación y depende de la coordenada X, si el punto está próximo al contacto izquierdo de la superficie X la tensión estará próxima a 0 V. Para la determinación de la coordenada Y, es preciso que el contacto inferior de la superficie Y se conecte a masa, mientras que el contacto alto a la fuente de alimentación, en este caso la lectura de la tensión se hará en el contacto izquierdo de la superficie X. La tensión variará en el rango de 0 V a la tensión suministrada por la fuente de alimentación y depende de la coordenada Y, si el punto está próximo al contacto inferior de la superficie Y la tensión estará próxima a 0 V[18].

Figura 3.6: Contactos pantalla resistiva de 4 hilos

3.3.2.

Implementación

(34)

24 CAPÍTULO 3. UNIDAD DE CONTROL, SENSOR Y ACTUADOR

Figura 3.7: Conexión pantalla

El control de activación de cada coordenada se realiza con dos pines del GPIO, #18 para el contacto bajo Y y #24 para el contacto izquierdo X, y los pines de alimentación #22 y #23, la secuencia lógica para este proceso se ve en el diagrama de flujo de la figura(3.8), el tiempo de retardo entre la lectura de cada coordenada se tomo de 3mS, ya que con valores menores el tiempo de respuesta de la pantalla genera un valor erróneo correspondiente a la coordenada, como la función principal es detectar la posición de la esfera en cual quier instante de tiempo la señal de salida tendrá que ser continua por este motivo se debe realizar un tratamiento a la señal.

Figura 3.8: Diagrama de flujo obtención de coordenadas X Y

(35)

3.3. SISTEMA DE SENSADO 25

Figura 3.9: Pseodocodigo obtención de coordenadas pantalla resistiva de 4 hilos

3.3.3.

Tratamiento de señal

La señal de salida es una onda cuadrada con frecuencia de 150hz debido al suicheo de los pines GPIO con una variación de amplitud de 40mV a 680mV para la coordenada X y de 48mV a 460mV para la coordenada Y ver figura(3.10) ,las medidas varían según la presión ejercida sobre la pantalla, la mejor respuesta se logro con una presión mayor a 90 gramos, la señal presenta ruido y niveles de tensión bajos que ocasionan una lectura errónea para el adc (conversor análogo digital), esto se soluciona con un amplificador operacional en modo inversor que reduce el ruido de la señal y la amplifica.

Figura 3.10: Señal de coordenadas X Y

(36)

26 CAPÍTULO 3. UNIDAD DE CONTROL, SENSOR Y ACTUADOR

Figura 3.11: Tratamiento de señal coordenadas X Y

Las entradas del adc no cuentan con ningún tipo de protección, para evitar sobre tensiones y el daño de este dispositivo se coloca un diodo zenner de 5.1v asegurando que la tensión nunca sobrepase los rangos de operación del adc, el circuito completo del sistema de sensado se ve en la figura(3.12).

Figura 3.12: Circuito Sistema de sensado

3.4.

Actuador

(37)

3.4. ACTUADOR 27

Se encontraron dos servo motores que cumplen con las especificaciones mencionadas de la marca Tower pro, el primero es el SG 90 de piñoneria plástica, torque de 1.8kg/cm, giro de 0 a 180 grados, banda muerta de 10us y el Mg995 de piñoneria metálica con un cojinete de doble balín, torque de 9.4Kg/cm, giro de 0 a 180 grados, banda muerta de 4 us, se implementa el SG 90 presentando un problema en sostenimiento del peso de la plataforma con la bola ya que el eje presenta un ligero movimiento, por tal motivo se eligió el servo motor Mg995 como actuador.

3.4.1.

Control PWM para servo motor

El control de posición de ángulo del servo motor se realiza a través de una señal PWM, aunque la Raspberry Pi puede generar señales de este tipo por software o semi-hardware tiene dos inconvenientes, la generación por software consume muchos recursos del CPU y al realizar otras operaciones adicionales la señal pierde las características definidas como frecuencia y ancho de pulso, la opción por semi-hardware libera al CPU y usa el DMA con circuito de modulación PWM con precisión de 1uS, sin embargo en su implementación real presenta un reajuste de la frecuencia y ocasiona una variación de mili segundos en el ciclo útil que para el manejo de servo motores se hace critico ocasionando vibración y para la plataforma bola y plato es una perturbación que proviene del actuador que lleva a la bola a un punto de equilibro pero la vibración la saca de dicho punto, por tal motivo se utilizo un driver para generar las dos señales PWM para cada servo motor.

Al tener en cuenta las características de la señal PWM de ser estable y precisa para evitar vibraciones en los servo motores, se analizan dos posibilidades, la primera es el controlador PCA9685 de 12 bits para la generación de PWM que da una resolución de 4uS a 60Hz ideal para el manejo de servo motores, comunicación por I2C para el manejo de 16 salidas, voltaje de funcionamiento de 3.3v a 5v y cuenta con librerías de comandos para el bus I2C en Rapsberry Pi; la segunda es usar un micro controlador Atmel 328 de 8 bits configurable a 16 bits para la generación de PWM que da una alta resolución a la señal a bajas frecuencias, comunicación I2C para el manejo de 6 salidas, voltaje de funcionamiento de 3.3v a 5v y librerías para el bus I2C para el micro controlador. Se elige el mico controlador Atmel 328 por un costo de mas del 60 % y por no subutilizar sus características en relación con el PCA9684 ya que solo se requiere el uso de 2 señales PWM, sin embargo es necesario definir los comandos de control de dirección y set instrucciones para el dispositivo.

(38)

28 CAPÍTULO 3. UNIDAD DE CONTROL, SENSOR Y ACTUADOR

Figura 3.13: Diagrama de flujo micro controlador como driver PWM

El buffer de lectura y escritura es de 8bits por esta razón los valores de 0 a 130 son para la señal PWM1 y del 131 a 255 para la señal PWM2, en la figura(3.14) se ve el pseudocodigo para su implementación.

(39)

3.4. ACTUADOR 29

3.4.2.

Identificación del servo motor

Debido a que el servo motor tienen un control interno, es complejo realizar el moldeamiento correctamente y esto necesita de gran cantidad de tiempo y esfuerzo en desmantelar el motor[19]. Para simplificar el modelo se realiza la observación del motor a través del la respuesta, para esto se utiliza el modelo de un motor dc, el cual se asume con una la función de transferencia de primer orden ver figura(3.15).

Figura 3.15: Función de transferencia motor DC

El único valor que se tiene para determinar en este caso es el tao o constante de tiempo, para hallar el tao se aplica al motor un paso de entrada del ciclo del trabajo PWM para diferentes cargas de peso e identificar el tiempo de estabilización cuando llega al ángulo (en nuestro caso de 0 a 60 grados), en el cuadro (3.1) se ve los resultados para cuatro pesos diferentes, teniendo el valor promedio del tao que es 200.15 ms y sabiendo que ganancia del motor es la alimentación, la función de transferencia se presenta en la ecuación (3.2).

5

0,20015S+ 1 (3.2)

Objeto Peso (g) Tiempo (ms)

Sin carga o 199,8

Plato 350 203,3

Libro y plato 800 200,5 Pesa y plato 1000 200

Promedio 537,5 200,15

(40)
(41)

Capítulo 4

Diseño y elaboración de plataforma bola

y plato con 2 grados de libertad

Índice

4.1. Grados de libertad . . . 31 4.2. Prototipo . . . 32 4.3. Eslabones . . . 33 4.4. Juntas o uniones . . . 34 4.5. Piezas, elementos y ensamble . . . 36

En este capítulo se trata el diseño de la plataforma bola y plato que se realizo en Sketcup que es un programa de software libre de diseño gráfico y modelado en tres dimensiones desarrollado por la empresa Last Software perteneciente a Google, se realiza un prototipo para el análisis de grados de libertad de la plataforma donde se aplica la formula de Kutzbach-Gruebler para mecanismos para la cual se requieren unos conceptos básicos de cinemática, se describen los eslabones, juntas, piezas y elementos requeridos en el diseño, y se presenta la estructura real.

4.1.

Grados de libertad

Para el diseño de la estructura se tiene en cuenta los GDL (grados de libertad) del plato, para ello se definen unos conceptos de cinemática: eslabón, par cinemático y pares cinemáticos de bajo par.

Un eslabón es un cuerpo rígido que forman una cadena cinemática y que posee al menos dos nodos El Par cinemático es la conexión entre dos eslabones de un mecanismo, se clasifica según sus tipos de juntas de bajo par,alto par y par envolvente.

Los pares cinemáticos de bajo par teóricamente tienen una superficie de contacto, existen 7 tipos según el tipo de movimiento. Revoluta permite solamente rotación (1 GDL), prismática movimiento relativo de deslizamiento(1 GDL), hélice rotación relacionada con el ángulo de la hélice (1 GDL), cilíndrica permite rotación y deslizamiento (2 GDL), esférico rotación angular sobre tres ejes (3 GDL), plano puede girar y trasladarse sobre un plano (3 GDL), junta universal combina dos pares revoluta. Se utiliza la modificación de Kutzbach para la ecuación de Gruebler para el calculo de grados de libertad[20].

M = 3(L−1)−2J1−J2 (4.1)

Donde:

M: grados de libertad o movilidad L:número de eslabones

J1: número de juntas completas de 1 GDL

J2:número de semijuntas de 2 GDL.

Las juntas múltiples cuentan en una unidad menos que el número de eslabones conectados en tal junta y se agregan a la categoría completas y las semijuntas cuentan solo como 0.5.

(42)

32CAPÍTULO 4. DISEÑO Y ELABORACIÓN DE PLATAFORMA BOLA Y PLATO CON 2 GRADOS DE LIBERTAD

4.2.

Prototipo

Se realiza la construcción de un prototipo en madera para verificar el movimiento de los tipos de juntas seleccionadas, en este prototipo se eligió una junta esférica como pivote central ya que era mas simple en su elaboración, sin embargo agrega mas grados de libertad a la plataforma, por tal motivo se coloco una junta universal, en la figura(4.1) se puede ver el desarrollo del prototipo[21, 22].

Figura 4.1: Construcción prototipo de la plataforma

(43)

4.3. ESLABONES 33

Figura 4.2: Grados de libertad Plataforma bola y plato

Aplicando la ecuación (4.1) se tiene que la plataforma cuenta con 2 grados de libertad con los eslabones y tipos de juntas seleccionados.

M = 3(6−1)−2(6)−1

M = 15−12−1

M = 2

4.3.

Eslabones

Como eslabones principales que dan el soporte a la estructura son la base y el plato ver figura (4.3), que se fabricaron en acrílico traslucido de 4mm de espesor, la base es un rectángulo plano donde se ubica los soportes de los motores y el eje central para el movimiento del plato, el diseño del plato ver figura (4.4) es un marco con una profundidad de 15mm que sirve como barrera para que la bola no se salga, el peso completo del plato es de 215 gramos.

(44)

34CAPÍTULO 4. DISEÑO Y ELABORACIÓN DE PLATAFORMA BOLA Y PLATO CON 2 GRADOS DE LIBERTAD

Figura 4.4: Plano base y plato 2D

Ítem Especificaciones

Dimensiones base (largo, ancho, espesor) 240mmx200mmx4mm

Dimensiones marco externas(largo, ancho, espesor) 225mmx185mmx4mm Dimensiones marco internas (largo, ancho, profundo) 185mmx145mmx4mm

Dimensiones plato (largo, ancho, espesor) 185mmx145mmx4mm

Dimensiones Unión Superior E Inferior Del Plato(Largo, Ancho, Espesor) 193mmx15mmx4mm Dimensiones unión lateral derecho e izquierdo del plato(largo, ancho, espesor) 145mmx15mmx4mm

Material plato Acrílico traslucido

Peso del plato 215g

Eje central (largo,diamtro) 80mmx8mm

Material eje central Hierro

Cuadro 4.1: Características base y plato

Los 4 eslabones restantes corresponden a las extensiones del eje del servo motor y los extensores para el plato ver figura(4.5), la extensión del eje del motor esta echa en plástico y el centro esta demarcado con los dientes del piñón del eje central y no presenta ningún movimiento, el extensor para el plato es una varilla de 3mm de diámetro en sus puntas termina con una rosca fina de 2mm.

Figura 4.5: Extensión eje servo motor y barrilla para plato.

4.4.

Juntas o uniones

(45)

4.4. JUNTAS O UNIONES 35

plato giraba sobre su propio eje añadiendo un grado de libertad con el análisis de GDL se determino que esta juntura universal era la ideal para la aplicación en la figura(4.6) se ve su diseño y dimensiones, se elaboro en acrílico traslucido en forma de u y sus ejes de rotación se acoplan en un cubo.

Figura 4.6: Junta universal

La junta completa que permite el movimiento entre la extensión del eje del servo motor y el extensor para el plato presenta un acople en acrílico de 2mm de espesor que permite unir ambas piezas en la figura(4.7) se ve la forma en que se realiza y sus medidas.

Figura 4.7: Acople junta completa

(46)

36CAPÍTULO 4. DISEÑO Y ELABORACIÓN DE PLATAFORMA BOLA Y PLATO CON 2 GRADOS DE LIBERTAD

Figura 4.8: Semijutas extensor del plato

4.5.

Piezas, elementos y ensamble

Las piezas y elementos que completan el diseño de la plataforma se componen de los soportes para los servo motores, los motores, la pantalla y la esfera esta ultima se elige acorde a las caracterizas de presión que requiere la pantalla.

El soporte para el servo motor se diseño con ángulo de aluminio de 3/4 de pulgada con tres piezas un

soporte para la base y dos laterales para enclavar el servo motor, se ensambla con 6 tornillos de1/4de pulgada

roscados y se fija a la base con 2 tornillos avellanados de1/4de pulgada roscados en la imagen (4.9) se ve su

diseño y dimensiones.

Figura 4.9: Soporte servo motor

(47)

4.5. PIEZAS, ELEMENTOS Y ENSAMBLE 37

Figura 4.10: Acople soporte y servo motor

De igual forma se tomo el diseño de la pantalla táctil resistiva seleccionada como sensor en la figura (4.11) se ven las medidas y el acoplamiento en el plato.

Figura 4.11: Ensamble pantalla en el plato

(48)

38CAPÍTULO 4. DISEÑO Y ELABORACIÓN DE PLATAFORMA BOLA Y PLATO CON 2 GRADOS DE LIBERTAD

Figura 4.12: Balín de acero

El diseño completo se ve el la figura (4.13) y a partir de los diseños se elaboran las piezas reales que se ven en la figura (4.14) y la construcción real se ve en la figura(4.15) que cumple con las características de grados de libertad y diseño realizados, se adicionan cuatro tornillos roscados en la base para calibrar el punto de equilibrio la plataforma y la construcción de un laberinto sobre el plato.

Figura 4.13: Diseño completo 3D

(49)

4.5. PIEZAS, ELEMENTOS Y ENSAMBLE 39

(50)
(51)

Capítulo 5

Diseño de interfaz de usuario, control

PID y LQR

Índice

5.1. Interfaz de usuario . . . 41

5.1.1. Visualización del plato en 3D . . . 43 5.1.2. Procesamiento de imágenes . . . 46

5.2. Parámetros de diseño de controladores . . . 51 5.3. Diseño control PID . . . 52

5.3.1. Discretización PD . . . 53 5.3.2. Simulación control PD . . . 54 5.3.3. Implementación control PD . . . 55

5.4. Diseño de control LQR . . . 56

5.4.1. Sistemas discretos en el espacio de estados . . . 58 5.4.2. Observador de estados . . . 60 5.4.3. Calculo K . . . 62 5.4.4. Calculo de Ke . . . 64 5.4.5. Ganancias LQR y feedforward . . . 64 5.4.6. Simulación control LQR . . . 66 5.4.7. Implementación control LQR . . . 67

En este capítulo se describe el diseño de la interfaz de usuario a través de procesamiento de imágenes, para el reconocimiento de un punto de color verde por medio de una cámara web, el cual representa la posición de la bola dentro del plato y describe una trayectoria que la bola seguirá, se plantea la solución de un laberinto de manera interactiva, se presentan los pseudocodigos para su implementación. A demás el diseño del control PID a través de la función de transferencia y el análisis de lugar de las raíces con Sisotool de Matlab donde se obtiene las ganancias correspondientes, se realiza la ecuación en diferencias del control PID discreto, la simulación y se presenta el pseudocodigo para su implementación, de igual manera para el control LQR se obtienen las matrices de estados en tiempo discreto, se realiza un observador de estados completo y un seguimiento de referencia por feedforward, la solución de Ricatti en tiempo discreto para obtener las ganancias de optimización del LQR, la simulación y se presenta el pseudocodigo para su implementación.

5.1.

Interfaz de usuario

La interfaz de usuario se divide en dos partes, la primera corresponde a la visualización del movimiento del plato en 3D por medio de una unidad de movimiento inercial compuesta de un acelerometro y giroscopo; la segunda es un procesamiento de imágenes con una cámara web en la que se captura la imagen de un punto de color verde que representa la referencia en las coordenadas (X, Y) de la bola en el plato se diseñan dos modos, el primero para variación libre de la referencia y el segundo en modo de control para seguimiento de una trayectoria capaz de resolver un laberinto, para esto se utiliza la librería OpenCV de procesamiento de

(52)

42 CAPÍTULO 5. DISEÑO DE INTERFAZ DE USUARIO, CONTROL PID Y LQR

imágenes, OpenGl para gráficar en 3D y Pygame para el desarrollo de juegos en 2D, todas de código abierto para Python. En ambos casos la publicación y adquisición de los datos se hace en un servidor local web para lo cual se crearon dos programas que permiten publicar los datos en el servidor, su pseudocodigo para su implementación se ve en la figura (5.1) y para la adquisición se accede al servidor y se almacena los datos, en la figura (5.2) se ve su pseudocodigo para su implementación.

Figura 5.1: Pseudocodigo publicación datos en un servidor local

(53)

5.1. INTERFAZ DE USUARIO 43

5.1.1.

Visualización del plato en 3D

Para poder ver el movimiento del plato en 3D se requiere de un sensor que permita obtener el ángulo de giro de un objeto, para esto se utiliza una unidad de movimiento inercial que se compone de un acelerometro que permite medir la aceleración de un objeto y de un giroscopo que mide la velocidad angular, el sensor utilizado es el mpu 6050, capaz tomar estas medidas en los tres ejes en los que se puede mover un objeto en el espacio (x, y, z) ver figura (5.3), al tomar la gravedad de la tierra como aceleración constante para el eje Z, se define el eje horizontal, para luego formar el sistema de referencia aplicando la ley de la mano derecha del electromagnetismo se ubica el eje X y el eje Y respectivamente. Una vez se oriente el sensor con la variación de la aceleración de los ejes (x,y) y aplicando trigonométrica se calcula el ángulo de inclinación de cada eje, se debe conocer la aceleración del eje contrario que forma el cateto opuesto del ángulo y la distancia del eje correspondiente con respecto al eje z ver figura (5.4) y aplicando arcotanente de estos valores se obtiene el ángulo correspondiente[23].

Figura 5.3: Ángulos de navegación de un objeto en tres dimensiones

Figura 5.4: Calculo ángulo de inclinación

(54)

44 CAPÍTULO 5. DISEÑO DE INTERFAZ DE USUARIO, CONTROL PID Y LQR

Figura 5.5: Pseudocodigo lectura mpu6050 de ángulos de movimiento X Y

(55)

5.1. INTERFAZ DE USUARIO 45

Figura 5.6: Pseudocodigo diseño 3D del plato

(56)

46 CAPÍTULO 5. DISEÑO DE INTERFAZ DE USUARIO, CONTROL PID Y LQR

5.1.2.

Procesamiento de imágenes

La interfaz de usuario principal consiste en un aplicativo que permita cambiar el punto de referencia de la bola dentro del plato por medio del procesamiento de imágenes para la identificación de un circulo verde de 7 cm de diámetro cuyo centro sera la referencia que debe tomar el control y posicionar la bola en dicho punto.Se crearon dos modos de variación de referencia, el primero un modo libre que permite ubicar la bola el cualquier parte sobre el plato y el segundo un modo control que permite crear una trayectoria para que la bola la siga de manera gradual capaz de realizar un recorrido dentro de un laberinto.

Para el procesamiento de imágenes se utiliza la librería OpenCv que define el acceso al dispositivo de captura que es una cámara web y permite la manipulación de los atributos de la imagen capturada, como la matriz RGB, de contraste, blanco y negro, umbral etc; con estas herramientas se diseña una librería que realiza la captura de la imagen define una mascara entre los valores de tonalidades de verde, para filtrar todo lo diferente a esa gama de color ver figura (5.8), define el área del objeto encontrado y ubica el centro con un punto rojo que da una par de coordenadas (x, y) que serán la referencia que seguirá el controlador[24], el la figura (5.9) se ve el pseudocodigo para su implementación.

(57)

5.1. INTERFAZ DE USUARIO 47

Figura 5.9: Pseudocodigo librería reconocimiento de imagenes

(58)

48 CAPÍTULO 5. DISEÑO DE INTERFAZ DE USUARIO, CONTROL PID Y LQR

(59)

5.1. INTERFAZ DE USUARIO 49

Figura 5.11: Interfaz de usuario Modo libre

(60)

50 CAPÍTULO 5. DISEÑO DE INTERFAZ DE USUARIO, CONTROL PID Y LQR

Figura 5.12: Pseudocodigo interfaz 2D modo control

(61)

5.2. PARÁMETROS DE DISEÑO DE CONTROLADORES 51

5.2.

Parámetros de diseño de controladores

Para realizar los controles PID y LQR en tiempo discreto se definen unos parámetros de diseño propios del sistema, como el tiempo de muestro, que esta directamente relacionado con la ubicación de los polos deseados que se obtienen del análisis de la función de transferencia del sistema ver ecuación (5.1) se ve que tiene dos polos en el origen lo cual indica que es inestable por tanto se debe desarrollar un controlador para estabilizarlo en cualquiera de sus múltiples puntos de equilibrio en el plato[25].

G(s) = 7

S2 (5.1)

La asignación de los polos para el sistema de control se eligen de acuerdo a las características de la respuesta transitoria, como el grado del denominador es dos, se debe aplicar para un sistema de segundo orden el máximo sobre impulso M p, tiempo de asentamiento ts con un criterio del 2 %, el factor de amortiguamientoξdebe estar entre 0.4 y 0.8, valores menores de ξ <0,4 producen un valor excesivo de sobre elongación y valores mayores deξ >0,8responde con lentitud[26]. Para el criterio del 2 % se tiene que eltses 4 veces la constante de tiempo del sistema que es inversamente el producto del factor de amortiguamiento y la frecuencia natural no amortiguada del sistemaωn, el valor mínimo para el tiempo de asentamiento seda conξ= 0,76[15].

M p=e

− ξ q

1−ξ2π

·100 % (5.2)

ts= 4T

ts= ξω4

n

(5.3)

Para un tiempo de asentamiento dets= 0,7 segundos se tiene

ωn= 0,7640,7

ωn= 7,52

El M pesta directamente relacionado con la elección de ξcon lo cual se obtiene

M p=e

− 0,76

q

1−0,762

π ·100 %

M p= 31 %

Los polos conjugados se expresan bajo los parámetros deξyωnde la forma (5.4), los polos deseados para

el sistema se muestran en (5.5).

S1,2=−ξωn±jωn

p

1−ξ2 (5.4)

S1,2=−0,76∗7,52±j7,52

p

1−0,762

S1,2=−5,72±j4,89

(5.5)

Ahora se calcula el periodo de muestreoT que se requiere para los polos asignados aplicando la ecuación (5.5) se ve que el periodo de muestreo mínimo para N = 15 muestras por oscilación es 85ms como se ve en la ecuación (5.6) sin embargo en el momento de la implementación se debe tener en cuenta el tiempo de procesamiento de la lectura del conversor adc y los cálculos para realizar el control no sobrepasen este tiempo.

T = 2π

N·ωn·

p

1−ξ2 (5.6)

T =1524π,89

T = 0,08566s

Referencias

Documento similar