116
i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi Autor: Anabel Araujo Puerta Tutor: Carlos Vivas Venegas / Ignacio Alvarado Aldea Dep. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2018

Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

i

Equation Chapter 1 Section 1

Proyecto Fin de Carrera

Ingeniería Industrial

Diseño y control de un sistema Ball and Beam con

realimentación visual con Raspberry-Pi

Autor: Anabel Araujo Puerta

Tutor: Carlos Vivas Venegas / Ignacio Alvarado Aldea

Dep. Ingeniería de Sistemas y Automática

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2018

Page 2: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial
Page 3: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

iii

Proyecto Fin de Carrera

Ingeniería Industrial

Diseño y control de un sistema Ball and Beam con

realimentación visual con Raspberry-Pi

Autor:

Anabel Araujo Puerta

Tutor:

Carlos Vivas Venegas

Ignacio Alvarado Aldea

Profesor titular

Dep. Ingeniería de Sistemas y Automática

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2018

Page 4: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial
Page 5: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

v

Proyecto Fin de Carrera: Diseño y control de un sistema Ball and Beam con realimentación visual con

Raspberry-Pi

Autor: Anabel Araujo Puerta

Tutor: Carlos Vivas Venegas / Ignacio Alvarado Aldea

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de:

Sevilla, 2018

El Secretario del Tribunal

Page 6: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial
Page 7: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

vii

A quienes se fueron, a quienes

están, a quienes vendrán

Page 8: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial
Page 9: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

ix

Resumen

El experimento de balanceo de bola en placa es uno de los sistemas de control más comunes y simples ya que

puede utilizarse para aplicar los conceptos de control, como el tiempo de asentamiento, sobreimpulso, tiempo

de subida y error de estado estacionario. Además, demuestra el sistema de bucle cerrado de retroalimentación y

cómo la entrada afecta el comportamiento de la salida. Además, muestra el efecto de las no linealidades,

discrepancias con el modelo teórico y cómo podemos tratar estas no linealidades mediante la introducción de

parámetros adicionales como el factor de integración que fuerza al error de estado estacionario a cero.

El objetivo de este experimento es responder y equilibrar la bola en la placa en un punto determinado desde

cualquier posición inicial y velocidad con un error de estado estacionario cero. Para modelar este sistema, la

detección de la posición de la pelota se realiza mediante una cámara. El plato se puede orientar a través de dos

brazos articulados gobernados cada uno por un servomotor. Como controlador se ha utilizado la placa basada

en microcontrolador Raspberry Pi. Finalmente, se ha aplicado un control PID para estabilizar la posición de la

pelota en el centro del plato.

Page 10: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial
Page 11: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

xi

Índice

Resumen ix

Índice xi

Índice de Tablas xiii

Índice de Figuras xv

1 Introducción 1 1.1. Propósito y objetivos 1 1.2. Ámbito, alcance y límites 1

2 Estado del arte 3 2.1 Plataformas comerciales 3

2.1.1 Quanser 3 2.1.2 Feedback Instruments 4

2.2 Prototipos no comercializables 5

3 Diseño mecánico 7 3.1 Planteamiento de la estructura 7

3.1.1 Descripción conjunto plataforma 7 3.1.2 Descripción conjunto cámara 10

3.2 Diseño de la estructura 11 3.2.1 Base 12 3.2.2 Plato 12 3.2.3 Eje central 13 3.2.4 Soporte de los servomotores 15 3.2.5 Brazos articulados 16 3.2.6 Uniones al plato 17 3.2.7 Estructura y soporte cámara 18

4 Modelado del sistema 21 4.1 Modelado de la planta 21

4.1.1 Ecuaciones de Lagrange-Euler 21 4.1.2 Equilibrio de fuerzas en el sistema 26

4.2 Consideraciones físicas 28 4.2.1 Cálculo de grados de libertad del sistema 28 4.2.2 Relaciones entre los ángulos de los actuadores y el plato 29 4.2.2.1 Método 1: Teorema de Pitágoras 29 4.2.2.2 Método 2: Considerando la posición inicial 31 4.2.2.3 Método 3: Mecanismo de barras 32 4.2.2.4 Método 4: Intersección de trayectorias 33

5 Diseño de controladores 37 5.1 Puntos de equilibrio naturales del sistema 37 5.2 Aproximación lineal del sistema alrededor de un punto de equilibrio 38 5.3 Simplificación del modelo de la planta 39

Page 12: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

5.4 Realimentación de estado: Regulación 40 5.5 Controladores desarrollados 41

6 Elección de componentes y conexionado 45 6.1 Sistema de detección de la pelota 45

6.1.1 Panel táctil resistivo 45 6.1.2 Cámara 46 6.1.3 Selección del sistema de detección de la pelota 46

6.2 Controlador 47 6.2.1 Arduino 47 6.2.2 Raspberry Pi 48 6.2.3 Elección de controlador 48

6.3 Actuadores 48 6.3.1 Motor DC 48 6.3.2 Servomotor 49 6.3.3 Motor paso a paso 50 6.3.4 Elección de actuador 50

7 Programación 51 7.1 Estructura del programa 51 7.2 Obtención y tratamiento de imágenes 52 7.3 Evaluación del control del sistema 62 7.4 Funcionamiento y control de los actuadores 63

8 Pruebas y Resultados 67 8.1 Pruebas realizadas con Raspberry Pi 3 67 8.2 Diseño de controladores mediante Matlab 73

8.2.1 Método Mejorado de Ajuste por Respuesta al Escalón (Approximate MIGO step response) 78 8.2.2 Método Mejorado de Ajuste por Respuesta frecuencial (Approximate MIGO frequency response) 83 8.2.3 Método de Ziegler-Nichols en base a la Respuesta en Frecuencia 87

9 Conclusiones 93

Referencias 95

Page 13: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

xiii

ÍNDICE DE TABLAS

Tabla 1. Unidades y descripción de las variables empleadas. 25

Tabla 2. Tabla de los distintos valores de HSV para diversos colores. 54

Tabla 3. Tiempos de ejecución para la librería “raspicam.h”. 61

Tabla 4. Tiempos de ejecución para la librería “RaspiCamCV.h” 62

Tabla 5. Parámetros de controladores según Ziegler-Nichols en base a la respuesta en frecuencia. 88

Page 14: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial
Page 15: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

xv

ÍNDICE DE FIGURAS

Figura 2.1. Sistema Ball and Beam de Quanser. 3

Figura 2.2. Sistema “2 DOF Ball balancer” de Quanter. 4

Figura 2.3. Digital Pendulum comercializado por Feedback Instruments. 4

Figura 2.4. Sistema Ball and Plate comercializado por Feedback Instrumets. 5

Figura 2.5. Ejemplo de un sistema Ball and Plate no comercializado. 5

Figura 3.1. Diseño del sistema bola-plato. 7

Figura 3.2. Movimiento del sistema bola-plato alrededor del eje x. 8

Figura 3.3. Ejemplo de plataforma con soportes articulados. 8

Figura 3.4. Prototipo no comercial de la plataforma con soportes articulados. 9

Figura 3.5. Sistema bola-plato con brazos articulados. 10

Figura 3.6. Prototipo no comercial del sistema bola-plato con brazos articulados. 10

Figura 3.7. Sistemas bola-plato con visión artificial. 11

Figura 3.8. Ejemplo diseño de la estructura. 11

Figura 3.9. Tablón DM. 12

Figura 3.10. Plancha de metacrilato. 12

Figura 3.11. Eje central de la plataforma. 13

Figura 3.12. Articulación esférica o rótula. 14

Figura 3.13. Articulación universal. 14

Figura 3.14. Articulaciones en la plataforma. 15

Figura 3.15. Sistema de sujeción de los servos. 15

Figura 3.16. Solución para el correcto funcionamiento del servo. 15

Figura 3.17. Esquema de los brazos articulados. 16

Figura 3.18. Brazos universales de los servos. 16

Figura 3.19. Unión brazo del servomotor y varilla articulada. 17

Figura 3.20. Unión de la rótula al plato. 17

Figura 3.21. Racor. 18

Figura 3.22. Detalle del pasante utilizado en las rótulas. 18

Figura 3.23. Ranura realizada en el soporte vertical. 19

Figura 3.24. Detalle de la escuadra utilizada. 19

Figura 3.25. Detalle de la posición de la cámara. 20

Figura 3.26. Estructura final. 20

Page 16: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Figura 4.1. Esquema mecánico sistema bola-plato. 21

Figura 4.2. Sistema de fuerzas existentes sobre la estructura. 26

Figura 4.3. Esquema del sistema utilizado. 26

Figura 4.4. Diagrama de barras. 29

Figura 4.5. Teorema de Pitágoras en el sistema. 30

Figura 4.6. Sistema bola -plato de referencia utilizado. 31

Figura 4.7. Distribución de la estructura bola-plato utilizada. 32

Figura 4.8. Situación espacial del sistema bola-plato. 33

Figura 4.9. Intersección entre trayectorias. 34

Figura 5.1. Diagrama de bloques del sistema en lazo cerrado con realimentación de estados. 41

Figura 5.2. Diagrama de bloques de un sistema con controlador PID. 42

Figura 5.3. Diagrama de bloques de un sistema realimentado con controlador PID. 42

Figura 6.1. Principio de funcionamiento del panel táctil resistivo. 45

Figura 6.2. Panel táctil. 46

Figura 6.3. Webcam/cámara. 46

Figura 6.4. Microprocesador Arduino. 47

Figura 6.5. Microprocesador Raspberry Pi 3. 48

Figura 6.6. Motor DC 49

Figura 6.7. Servomotor. 49

Figura 6.8. Motor paso a paso. 50

Figura 7.1. Estructura de programación. 51

Figura 7.2. Diagrama HSV. 52

Figura 7.3. Ventana de control de los parámetros HSV. 53

Figura 7.4. Detección del color verde. 53

Figura 7.5. Detección del color azul. 53

Figura 7.6. Detección del color magenta. 54

Figura 7.7. Detección del color amarillo. 54

Figura 7.8. Detección de la posición para el color verde. 56

Figura 7.9. Detección de la posición para el color magenta. 56

Figura 7.10. Detección de la posición para el color magenta en diferente disposiciñon. 56

Figura 7.11. Funcionamiento de los servos utilizados 64

Figura 8.1. Lazo de control realimentado. 73

Figura 8.2. Simulación de un sistema a lazo cerrado con control proporcional. 73

Figura 8.3. Simulación de un sistema a lazo cerrado con control prporcional integrador (PI). 74

Figura 8.4. Simulación de un sistema a lazo cerrado con controlador PID. 74

Figura 8.5. Comparación del efecto predictivo de la acción derivadora y su relación con la dinámica del sistema.

74

Figura 8.6. Ventana de ejecución sisotool(). 75

Page 17: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

xvii

Figura 8.7. Elección del método de ajuste automático. 76

Figura 8.8. Elección del tipo de controlador. 77

Figura 8.9. Selección del tipo estimación deseada. 78

Figura 8.10. Preferencias formato controlador. 78

Figura 8.11. Respuestas al escalón de procesos esencialmente monótonos. 79

Figura 8.12. Respuesta al escalón unitario de un proceso y procesamiento empleado para determinar los

parámetros 𝐾𝑝, 𝑇, 𝐿, 𝐾𝑣. 80

Figura 8.13. Controlador hallado (MIGO step response). 80

Figura 8.14. Controlador hallado expresado según sus polos y ceros (MIGO step response). 80

Figura 8.15. Diagrama del lugar de las raíces sin cumplir especificaciones (MIGO step response). 81

Figura 8.16. Respuesta ante escalón sin cumplir especificaciones (MIGO step response). 81

Figura 8.17. Valor de las especificaciones de la respuesta ante escalón (MIGO step response). 82

Figura 8.18. Respuesta ante escalón cumpliendo especificaciones (MIGO step response). 82

Figura 8.19. Valor de las especificaciones de la respuesta ante escalón (MIGO step response). 83

Figura 8.20. Diagrama del lugar de las raíces cumpliendo especificaciones (MIGO step response). 83

Figura 8.21. Valor del controlador con reajuste de la ganancia (MIGO step response). 83

Figura 8.22. Controlador hallado (MIGO frequency response). 84

Figura 8.23. Controlador hallado expresado según sus polos y ceros (MIGO frequency response). 84

Figura 8.24. Diagrama del lugar de las raíces si cumplir especificaciones (MIGO frequency response). 84

Figura 8.25. Respuesta ante escalón sin cumplir especificaciones (MIGO frequency response). 85

Figura 8.26. Valor de las especificaciones de la respuesta ante escalón (MIGO frequency response). 85

Figura 8.27. Respuesta ante escalón cumpliendo especificaciones (MIGO frequency response). 86

Figura 8.28. Valor de las especificaciones de la respuesta ante escalón (MIGO frequency response). 86

Figura 8.29. Diagrama del lugar de las raíces cumpliendo especificaciones (MIGO frequency response). 87

Figura 8.30. Valor del controlador con reajuste de la ganancia (MIGO frequency response). 87

Figura 8.31. Caracterización de la respuesta en frecuencia según Ziegler-Nichols. 87

Figura 8.32. Controlador hallado (Método de Ziegler-Nichols). 88

Figura 8.33. Diagrama del lugar de las raíces si cumplir especificaciones (Método de Ziegler-Nichols). 88

Figura 8.34. Respuesta ante escalón sin cumplir especificaciones (Método de Ziegler-Nichols). 89

Figura 8.35. Valor de las especificaciones de la respuesta ante escalón (Método de Ziegler-Nichols). 89

Figura 8.36. Diagrama del lugar de las raíces cumpliendo especificaciones (Método de Ziegler-Nichols). 90

Figura 8.37. Respuesta ante escalón cumpliendo especificaciones (Método de Ziegler-Nichols). 90

Figura 8.38. Valor de las especificaciones de la respuesta ante escalón (Método de Ziegler-Nichols). 91

Figura 8.39. Valor del controlador con reajuste de la ganancia (Método de Ziegler-Nichols). 91

Figura 9.1. Estructura final del sistema Ball and Plate. 93

Page 18: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial
Page 19: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

1 INTRODUCCIÓN

n el presente proyecto se lleva a cabo la implementación y el control del sistema mecatrónico denominado

“Ball and Plate”. Dicho conjunto de bola y plataforma se caracteriza por ser un sistema electromecánico

hoy en día se encuentra presente en muchas universidades para el estudio de las técnicas básicas y

avanzadas de control impartidas en las mismas.

El sistema formado por una plataforma cuadrada únicamente apoyada en su centro geométrico, por la cual la

bola es capaz de rodar libremente, recrea perfectamente el concepto de sistema inestable en lazo abierto,

demostrando con ello, el carácter no lineal en el funcionamiento del mismo.

Asimismo, al inicio del presente proyecto se realizará un análisis del estado actual sobre las diferentes técnicas

empleadas para realizar el diseño y desarrollo de diversos prototipos para estudiar la respuesta de los sistemas

estudiados.

1.1. Propósito y objetivos

Para poder conceptualizar la evolución de todo el proceso diseñado y desarrollado durante el transcurso del

presente proyecto, es necesaria la definición de los diferentes objetivos que alcanzar a lo largo del mismo. Es

por lo cual, que seguidamente se enumeran los principales conceptos a implementar según su orden de aparición

en el proyecto:

• Análisis conceptual del sistema bola-plato y su correspondiente modelado. Estado del arte.

• Diseño y desarrollo del dispositivo físico para la implementación del sistema de control desarrollado.

• Estudio de los diferentes microprocesadores óptimos a utilizar en el desarrollo (Arduino, LabView,

Raspberry Pi, etc.).

• Pruebas de tiempo de simulación de diferentes lenguajes de programación.

• Programación e implementación de varios softwares de control mediante el microprocesador elegido

(C, C++, Python).

• Implementación de los programas desarrollados en la estructura física.

El diseño y desarrollo del presente proyecto pretende aportar una solución de bajo coste para la experimentación

y estudio de diversas técnicas de control automático. Con la consecución de dicho trabajo, estudiantes y

profesores serán capaces de llevar a cabo diversas técnicas de control que se pueden aplicar para estabilizar un

sistema no lineal.

1.2. Ámbito, alcance y límites

Como se ha mencionado previamente, el presente proyecto pretende dar soporte a la parte teórica

correspondiente a la teoría de control impartida en los centros de enseñanza, de una manera económica y sencilla.

Es por lo cual que se plantea la posibilidad de fabricar una estructura física en la cual se puedan implementar e

instaurar todos los conceptos asimilados.

Básicamente, el sistema “Ball and Plate” desarrollado se constituye de una plataforma con un único punto de

E

Page 20: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Introducción

2

apoyo en su centro geométrico, gobernada por dos servomotores que dirigen el movimiento de la misma a lo

largo de los ejes X e Y. Asimismo, se incorpora la visión artificial en tiempo real como entrada del sistema de

control gracias a la incorporación de una cámara.

Paralelamente, después del estudio y análisis de las características de diversos microprocesadores, se determina

que el más adecuado para las prestaciones buscadas es el famoso Raspberry Pi, e igualmente, se incorpora su

módulo de cámara, supliendo la necesidad anteriormente citada.

Dicho microprocesador posee diferentes lenguajes de programación, como puede ser Python (en diferentes

versiones), C o C++. Razonablemente, se analizan los tiempos de ejecución de cada uno de los mismos para la

misma tipología de programa, decidiendo el más adecuado para la aplicación en cuestión.

Por otro lado, como punto de partida es fundamental conocer el estado actual de la técnica, las posibilidades que

aporta el mercado y los ámbitos de aplicación de las tecnologías empleadas. Consecuentemente, el avance del

presente proyecto estará ligado a las limitaciones encontradas durante el progreso del mismo, habiendo analizado

todas las posibles soluciones para el alcance de los objetivos marcados.

Page 21: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

2 ESTADO DEL ARTE

ctuamente en el mercado se dispone de gran variedad de productos que implementan las técnicas de

control analizadas, pero cabe destacar la necesaria diferenciación debido a la finalidad de la aplicación.

Es posible realizar una catalogación según dichos criterios, plataformas comercializadas por parte de

empresas privadas, y por el contrario, prototipos diseñados y desarrollados por universidades, estudiantes o

simplemente personal sin ningún fin económico.

2.1 Plataformas comerciales

Hoy en día, varias empresas disponen entre sus productos comercializados prototipos o maquetas que

implementan el sistema Ball and Plate. Éstas están diseñadas principalmente para el estudio por parte del usuario

de las diferentes técnicas para poder controlar un sistema y poderlas aplicar en un sistema real.

Dada la finalidad de dichas plataformas, es lógico pensar que estos prototipos estén dirigidos a estudiantes y/o

profesores interesados por la técnica de control. El principal inconveniente es el elevado precio que conlleva la

adquisición de una plataforma de estas características, por lo que cobra más fuerza la idea de realizar una

plataforma de bajo coste para el estudio de las técnicas de control en sistemas reales.

A continuación, se describen las plataformas comercializadas por las principales empresas del sector en el

mercado.

2.1.1 Quanser

Si el sistema Ball and Plate se remonta a sus orígenes, se llega al sistema más primitivo denominado Ball and

Beam, consistente en una barra de acero conectada en paralelo a una resistencia bobinada construyendo una guía

por donde rueda libremente una pelota. Por consiguiente, se determina que la propia guía se trata de un

potenciómetro el cual proporciona un voltaje proporcional a la posición de la bola.

Asimismo, la guía permanece fija en uno de sus extremos, mientras el otro tiene acoplado el brazo de un

servomotor que permite rotar a la guía respecto al eje fijo anteriormente nombrado. Para realizar el control de

dicho sistema, la empresa ha dispuesto la posibilidad de utilizar Matlab/Simulink y NI LabVIEW.

Figura 2.1. Sistema Ball and Beam de Quanser.

Fuente: https://www.quanser.com/products/ball-and-beam/

Por otro lado, Quanser también dispone de un modelo llamado “2 DOF Ball balancer”. Este modelo es

controlado mediante visión artificial, determinando la posición de la bola gracias a la captura de imágenes. El

A

Page 22: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Estado del arte

4

plato está montado sobre un eje central articulado por una junta universal o de cardán, la cual permite rotar el

plato sobre dos ejes, por otro lado, la rotación sobre cada eje está controlada por un servomotor respectivamente.

Similarmente al caso anterior, se dispone la opción de controlar al sistema mediante Matlab/Simulink o NI

LabVIEW.

Figura 2.2. Sistema “2 DOF Ball balancer” de Quanter.

Fuente: https://www.quanser.com/products/2-dof-ball-balancer/

2.1.2 Feedback Instruments

La empresa Feedback Instruments también ofrece a sus usuarios varias soluciones para la investigación y

análisis de la teoría de control. Un claro ejemplo es el péndulo invertido denominado “Digital Pendulum”. Se

caracteriza por ser un péndulo doble, aunque se especifica que los dos péndulos son solidarios entre sí, lo cual

de cara a controlar el sistema no varía en exceso. El control se puede realizar como en casos anteriores con

Matlab/Simulink.

Figura 2.3. Digital Pendulum comercializado por Feedback Instruments.

Fuente: https://es.mathworks.com/products/connections/product_detail/feedback-instruments-digital-pendulum.html

Por otro lado, y más relacionado con el presente proyecto, se expone el sistema Ball and Plate comercializado

por la empresa. De manera similar a lo citado por parte de la empresa Quanser, la posición de la pelota viene

determinada por una cámara, monitorizada a través de una pantalla de ordenador en tiempo real. Como novedad

sustancial, el movimiento del plato está gobernado por unos campos electromagnéticos. En cada esquina del

Page 23: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

5 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

plato cuadrado se dispone de un actuador magnético que posibilita varias la posición en el eje z, de tal manera

que, controlando las cuatro esquinas del plato, es posible alcanzar el ángulo deseado en el mismo. En este caso,

el control se lleva a cabo a través de NI LabVIEW.

Figura 2.4. Sistema Ball and Plate comercializado por Feedback Instrumets.

Fuente: http://imex.co.uk/epages/20249b99-f30f-43a5-8f50-a5e2562eae4e.sf/en_GB/?ObjectPath=/Shops/20249b99-

f30f-43a5-8f50-a5e2562eae4e/Products/FB-33-052

2.2 Prototipos no comercializables

Paralelamente a las plataformas comercializadas por empresas privadas, existen prototipos realizados por

universidades y alumnos, o incluso simples aficionados a la automática. Normalmente se basan en los ejemplos

anteriormente nombrados, pero hay casos donde los diferentes prototipos de los usuarios sirven de inspiración

para lograr sistemas de control más elaborados y posteriormente comercializados.

Figura 2.5. Ejemplo de un sistema Ball and Plate no comercializado.

Fuente: https://www.youtube.com/watch?v=K-F_T59ZDPw

Page 24: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Estado del arte

6

Page 25: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

3 DISEÑO MECÁNICO

n este capítulo se detallan cada uno de los pasos llevados a cabo para la fabricación de la plataforma física,

es decir, el diseño mecánico del sistema Ball and Plate. Para ello, inicialmente se analizan las posibles

estructuras y distribuciones existentes, así como sus puntos críticos, inconvenientes y ventajas. En función

de las mismas, se toma una decisión para la ejecución del presente proyecto.

Seguidamente, se especifican y detallan cada uno de los componentes empleados en la fabricación del sistema

final, incurriendo en los materiales que los conforman.

Cabe destacar la importancia del sistema de detección de la pelota y los actuadores incorporados, ya que

desempeñarán el papel principal en la plataforma fabricada. De este modo, en el presente capítulo es necesario

la mención a los mismos, siendo imprescindible el uso de una cámara para el sistema de detección de la bola y

dos servomotores como actuadores, correspondiéndose cada uno a los ejes X e Y. Finalmente, en la consecución

de capítulos posteriores, se puntualiza el por qué de dicha decisión tomada.

3.1 Planteamiento de la estructura

Inicialmente, es necesario el estudio y análisis de las principales partes que conforman la estructura. En primer

lugar, se encuentra el conjunto plataforma, constituido por el propio plato y los elementos que le permiten rotar

sobre sí misma (soportes, articulaciones, actuadores, etc.). Por otro lado, cabe destacar la necesidad de un soporte

adicional para la sujeción de la cámara en el lugar adecuado, de tal manera que se capten todos los posibles

movimientos realizados por el anterior conjunto nombrado.

3.1.1 Descripción conjunto plataforma

Una vez determinada la diferenciación entre las principales partes que forman la estructura global, se define en

primer lugar el conjunto de la plataforma. Éste debe ser capaz de permitir la rotación del plato sobre los ejes X

e Y, logrando así abarcar todos los movimientos posibles. Como se puede observar en la siguiente imagen,

dichos ejes se encuentran ligados solidariamente al plato y, a su vez, perpendiculares entre sí, formando un eje

de coordenadas, factor importantísimo para los cálculos futuros desarrollados en el presente proyecto.

Figura 3.1. Diseño del sistema bola-plato.

Consecuentemente a lo apuntado en el párrafo previo, el simple hecho que los ejes elegidos sean perpendiculares

entre sí, aporta una notoria facilidad a la hora de implementar la estrategia de control elegida. Dicho de otro

E

Page 26: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño mecánico

8

modo, además de simplificar el análisis del sistema, cada eje solo influye en cada coordenada de la posición de

la pelota, convirtiéndolas totalmente en variables independientes. Para poder mover la bola a través del eje X, el

plato debe rotar sobre sí mismo a lo largo del eje Y, y viceversa. Para realizar una conceptualización visual de

lo explicado, se adjunta el siguiente esquema de movimiento del conjunto:

Figura 3.2. Movimiento del sistema bola-plato alrededor del eje x.

Seguidamente, habiendo especificado el principal requisito a cumplir por el conjunto, se comienza a estudiar las

diversas posibilidades de fabricación del mismo. Es por lo cual, que se procede a investigar sobre las diferentes

configuraciones de estructuras Ball and Plate ofertadas en el mercado, considerando la viabilidad de las mismas

manteniendo el concepto de bajo coste planteado al inicio del proyecto.

En primer lugar, se halla en realizar la plataforma con soportes articulados, es decir, el plato se mueve gracias al

movimiento de un soporte ligado a ella. Dicho soporte está diseñado para que el plato pueda rotar libremente

sobre un eje.

Figura 3.3. Ejemplo de plataforma con soportes articulados.

Fuente: https://www.gunt.de/en/products/mechatronics/automation-and-process-control-engineering/fuzzy-control/fuzzy-

control-ball-on-plate/080.12300/rt123/glct-1:pa-148:ca-86:pr-1052

Como se advierte en la imagen previa, la estructura consta de un marco exterior gobernado por un actuador que

será el encargado de hacer rotar a la plataforma en el eje X. Asimismo, el plato se encuentra incrustado en un

marco interior dirigido por el otro actuador, que lo hace rotar a lo largo del eje Y. De este modo quedan definidos

todos los grados de libertad de la estructura, asegurando la perpendicularidad de los ejes de coordenadas y su

independencia de movimiento.

En la siguiente imagen se muestra un prototipo no comercial de la maqueta, habiéndose incorporado una

webcam para el control del sistema:

Page 27: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

9 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 3.4. Prototipo no comercial de la plataforma con soportes articulados.

Fuente: http://kyb.fei.tuke.sk/laben/modely/gnk.php

Aunque afortunadamente dicha configuración cumple con los objetivos buscados, destacan varios

inconvenientes a tener en cuenta a la hora de realizar la construcción de la estructura. El principal de éstos

aparece con el planteamiento de la disposición de los servomotores, ya que deben permitir el movimiento

descrito anteriormente.

Como se ha descrito, la solución comúnmente realizada es la colocación de un actuador sobre la plataforma para

dirigir el giro del plato, y por otro lado, un segundo actuador localizado en el marco exterior para gobernar el

movimiento del conjunto de plataforma y plato.

Por otra parte, otra solución posible sería la colocación de los actuadores en el marco exterior y diseñar un

sistema de traslación para poder orientar el conjunto completo. Los principales inconvenientes que presenta

dicha solución es un aumento de la dificultad en montaje, así como en el coste incurrido. De manera

independiente de la disposición de los actuadores, éstos tienen que tener la suficiente potencia para mover el

conjunto plataforma y plato. Finalmente, en dicho sistema es necesario modelar la base, la plataforma y el

previamente nombrado sistema de traslación de movimiento de los servomotores.

Consecutivamente, se sigue en la investigación de las posibles configuraciones existentes. De esta forma, se

localiza la opción de utilizar brazos articulados, vertiente más utilizada en la fabricación del presente proyecto.

El plato se sitúa sobre un eje central gobernado por una articulación pasiva, permitiendo a éste obtener los dos

grados de libertad ineludibles para rotar sobre los ejes X e Y.

En este caso, el brazo articulado desempeña el papel fundamental del movimiento. En un extremo se encuentra

conectado al actuador, el cual se sitúa en la base de la estructura; y en el otro extremo se encuentra el plato. En

el siguiente esquema se representa la configuración explicada:

Page 28: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño mecánico

10

Figura 3.5. Sistema bola-plato con brazos articulados.

A continuación, se realiza un estudio más exhaustivo de la estructura completa. Es importante destacar la

perpendicularidad mostrada entre los brazos articulados y los actuadores, ya que gracias a la rotación de estos

últimos, es posible la variación de la posición de la unión del plato con el brazo. Debido a la invariabilidad de la

posición del punto de unión del plato con el eje central, se alcanza el giro deseado sobre el eje correspondiente.

Analizando las ventajas e inconvenientes de dicha distribución, hay que hacer hincapié en que los actuadores

serán los encargados de mover el conjunto brazo articulado y plato, pero teniendo en cuenta que en este caso el

plato está apoyado en su centro geométrico, reduciendo así el peso a mover. Dicho decremento, influye

directamente en la potencia de los actuadores, no siendo unos servomotores tan potentes como en el caso

anterior.

Por otro lado, la elección de las articulaciones pasivas entre plato, eje central y los propios brazos se debe realizar

con especial cuidado, ya que se debe garantizar la correcta libertad de movimiento en el plato. Asimismo, se

debe ratificar la fluidez en el movimiento de los actuadores, evitando incurrir en sobreesfuerzos en los mismos

debidos a movimientos incongruentes.

Figura 3.6. Prototipo no comercial del sistema bola-plato con brazos articulados.

Fuente: http://www.hobbyprojects.com/projects/ball-on-plate-control.html

Finalmente, comprobadas las ventajas e inconvenientes de ambas soluciones, se decide optar por la segunda,

debido a la mayor facilidad de montaje de la estructura, así como su menor coste.

3.1.2 Descripción conjunto cámara

Otro de los conceptos fundamentales a desarrollar en el presente proyecto es la localización de la cámara, ya que

será la única entrada de control en todo el sistema. Se pretende diseñar y fabricar un soporte que permita la

colocación de la cámara sobre el plato, capturando toda la superficie del plato y controlándose cada movimiento

de la bola.

A lo largo de todos los trabajos analizados, el objetivo común es obvio: la cámara debe captar la superficie

completa del plato. Para ello se consideran varias posibilidades de soporte, como se pueden advertir en las

siguientes fotografías de prototipos comercializados.

Page 29: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

11 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 3.7. Sistemas bola-plato con visión artificial.

Fuente : http://www.googoltech.com/web/eng/product_details_frame.jsp?gid=1326&module=Educational%20Products

En el presente proyecto, para aportar un mayor rango de operación, se decide realizar dicho soporte con

variabilidad en la posición. Dicho concepto consiste en la disponer de una holgura en la situación de la cámara,

pudiendo variar su posición en el eje vertical como horizontal gracias a un tornillo sin fin. Por otro lado, cabe

destacar que la altura de la estructura viene determinada por la altura a la que se sitúa el plato, regulando la

distancia entre éste y la propia cámara.

3.2 Diseño de la estructura

Una vez analizadas y contempladas las posibles soluciones a llevar a cabo para el desarrollo de la estructura, se

procede al diseño, parametrización y elección de los elementos mecánicos que conforman el sistema Ball and

Plate.

Consecuentemente a la manera que se ha trabajado anteriormente, se irán exponiendo cada uno de los

componentes que conciertan la estructura fabricada, detallando el por qué de las elecciones tomadas. Asimismo,

se toma como referencia el siguiente diseño para la ejecución de los trabajos, mostrando dichos elementos: plato,

brazos articulados, actuadores y base.

Figura 3.8. Ejemplo diseño de la estructura.

Fuente:http://www.instructables.com/id/Ball-and-Plate-Arduino-PID-Control/

Page 30: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño mecánico

12

3.2.1 Base

La base es uno de los primeros elementos seleccionado en la fabricación de la estructura, ya que es donde van

montados el resto de los componentes que conforman el Ball and Plate. Además, es imprescindible decidir de

manera correcta el tamaño de la misma, debido a que la distribución de los componentes en la misma debe ser

adecuada a las prestaciones deseadas.

Figura 3.9. Tablón DM.

Fuente:https://www.bricomart.es/moldura-jamba-dm-crudo-2550-x-70-x-10-mm.html

Por otro lado, cabe destacar la importancia del grosor del tablero empleada, ya que se realizan taladros para la

fijación de los distintos elementos, como puede ser por ejemplo el eje central.

Planteado todo lo anterior, se decide utilizar un table de DM, aglomerado elaborado con fibras de madera

aglutinadas con resinas sintéticas mediante fuerte presión y calor, en seco, hasta alcanzar una densidad media.

Las medidas del mismo serán de 400x400x15mm, asegurando la integridad del mismo después de los trabajos

realizados sobre ella.

3.2.2 Plato

En primer lugar, se decide que el plato sea de metacrilato, debido a sus principales propiedades físicas: ligereza

y dureza. Al tratarse de un factor determinante el peso total de la estructura, ya que se relaciona directamente

con la potencia de los servomotores (a mayor potencia, mayor costo), el metacrilato aporta la solución idónea

para el presente proyecto.

Figura 3.10. Plancha de metacrilato.

Fuente: https://www.bricomart.es/metacrilato-transparente-200-x-100-x-0-5-cm.html

Es de vital importancia que la superficie del plato sea lo suficientemente grande como para que la bola pueda

rodar libremente a lo largo de la misma. Sin embargo, hay que tener presente que cuanto mayor sea la superficie

Page 31: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

13 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

de la misma, implica un aumento de peso, por lo que hay que considerar la potencia que pueden suministrar los

actuadores.

Finalmente, se decide que las medidas adecuadas para que la plataforma sean 300x300x2 mm. Igualmente, el

material deseado solo se consiguió en color blanco, así que para facilitar la detección de la bola por parte del

sistema de control implementado creando un mayor contraste, se elige una bola de un color adecuado.

3.2.3 Eje central

El eje central del sistema Ball and Plate compone uno de los pilares fundamentales para la correcta rotación del

plato debido al movimiento de los actuadores. Asimismo, debe soportar el peso del plato.

Cabe destacar que la prestación más relevante que debe realizar dicho soporte es dotar al giro del plato sobre

dicho eje de dos grados de libertad, por lo que es una necesidad inamovible que la unión entre el plato y el eje

debe disponer de dichos grados de libertad.

En consecuencia, con la idea de realizar una plataforma de bajo coste, el eje central se trata de una aguja de tejer

cortada a la medida deseada mediante una radial. Dicha varilla tiene dimensiones de 5 mm de radio y 100 mm

de altura.

Figura 3.11. Eje central de la plataforma.

Del mismo modo, para poder fijar dicho eje a la base de la estructura, se realiza un taladro de un diámetro algo

inferior al radio del mismo, para poder incorporarlo mediante presión, asegurando de esta manera tanto la

verticalidad como su posición. Además, previamente se rellena dicho taladro con pegamento, y acto seguido se

incorpora la varilla, dando una mayor estabilidad al eje.

Paralelamente, se incurre en la búsqueda del elemento que desempeñe la unión entre el eje central con el plato,

hallándose dos tipos de articulación pasiva que encaja perfectamente en desarrollo del presente proyecto:

articulación esférica o rótula y articulación universal.

• Articulación esférica o rótula

Gracias a la rótula, es posible la unión entre dos sólidos con un movimiento relativo de rotación entre todos los

planos ligados a los mismos. Se debe hacer hincapié en que siempre existe un punto de unión entre ambos

sólidos, por lo que se determina que, si uno de estos sólidos es fijo, el otro será incapaz de realizar un movimiento

de traslación respecto al primero. Este tipo de articulación posee tres grados de libertad, o tres ángulos de

rotación; sin embargo, dos de los mismos ostentan limitaciones.

Page 32: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño mecánico

14

Figura 3.12. Articulación esférica o rótula.

Fuente:http://www.directindustry.es/prod/ganter/product-15596-411368.html

• Articulación universal

Se trata de un elemento mecánico capaz de realizar la unión de dos ejes no colineales, transmitiendo el

movimiento de rotación de un eje al otro. Aunque al igual que el caso anterior de la rótula, a pesar de poseer tres

grados de libertad, tiene limitado el movimiento en 2 de ellos.

Como se advierte en la siguiente fotografía, la articulación consta de una cruceta formada por dos brazos

perpendiculares, en los cuales se encuentran articuladas unas horquillas en las que terminan los ejes a unir.

Figura 3.13. Articulación universal.

Fuente: https://www.ebay.es/itm/GE2950-Articulacion-Universal-de-1-4-de-Ingenieria-Mecanica-de-la-Herramienta-

/141230151323

Seguidamente, una vez analizados los diversos tipos de articulaciones existentes en el mercado, se decide

elaborar de manera totalmente casera una articulación esférica. Dicha articulación se realiza con una pelota de

plástico, característica de los collares de bolas que se pueden encontrar en cualquier tienda de complementos. A

dicha bola, se le incorpora como soporte una tuerca macho-hembra para fijar su movimiento al plato. Por otro

lado, se le realiza un taladro para la incrustación del eje central en la misma.

La rótula fabricada de manera casera se muestra en la siguiente fotografía. Cabe destacar que la unión

posteriormente explicada entre los brazos articulados y el plato se realizan de manera similar. Habiendo realizado

dichas modificaciones, se reducen notoriamente los costes de fabricación de la plataforma.

Page 33: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

15 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 3.14. Articulaciones en la plataforma.

3.2.4 Soporte de los servomotores

Debido al movimiento de los brazos articulados unidos a los servomotores, se halla la necesidad de elevación

de los mismos. Para dicho propósito se aprovecha los retales sobrantes de la construcción de la base, pegándolos

en el sitio adecuado sobre la misma.

Para el agarre de los servomotores, a dichos tacos de DM se le realizan unos taladros interiores por los cuales se

incorporan unas bridas de agarre hasta los actuadores, fijándolos finalmente a la base.

Figura 3.15. Sistema de sujeción de los servos.

En un momento posterior, se percata del choque entre el brazo del servomotor con la propia base, debido a la

escasa altitud aportada por el taco de DM posicionado, por lo que se realizan unos “escalones” en la base para

facilitar el movimiento, como se muestra en la siguiente imagen:

Figura 3.16. Solución para el correcto funcionamiento del servo.

Page 34: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño mecánico

16

3.2.5 Brazos articulados

A continuación, tras haber definido el eje central, y como anteriormente se ha adelantado, se realiza de manera

muy similar los brazos articulados que transmiten los movimientos de los servos al plato, tanto en el eje X como

en el Y.

Dado que el diseño de ambos brazos es exactamente igual, en el presente apartado solo se describe la realización

de uno de ellos. Para dar soporte de toda la explicación relatada, se muestra seguidamente un esquema de

funcionamiento de dichos brazos:

Figura 3.17. Esquema de los brazos articulados.

Haciendo un breve resumen del funcionamiento del mecanismo, se detalla que cada actuador gobierna la

rotación del plato a través de las dos varillas, dichas varillas en este caso son del mismo material que el eje

central. Como se aprecia en el esquema anterior, la barra L1 gira solidariamente con el eje del servomotor O1,

es decir, cuando dicho actuador gire un ángulo α, la barra girará con el mismo ángulo.

Por otra parte, la varilla L2 se encuentra unida por un extremo a L1, y por el otro al plato, siendo la encargada

de la transmisión del movimiento generado por la rotación de la barra L1.

Para la barra L1 se busca una pieza comercializada para el acople directo en el servomotor, simplificando en este

sentido la construcción de este brazo. Similarmente al eje central, la barra L2 se construye a partir de una aguja

de tejer, aplanándola y realizándole taladros para la unión entre ambas barras.

Figura 3.18. Brazos universales de los servos.

Fuente: http://www.todohobby.net/es/servos/18322-brazos-largo-servo-futaba-dubro-8-unds-2204206700254.html

Seguidamente, dichas uniones llevadas a cabo, se utilizan diversos métodos totalmente caseros para la

consecución de las mismas. Para la unión del brazo del servomotor con la varilla, se ha utilizado unos pasadores

Page 35: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

17 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

apoyados en unas arandelas para permitir el movimiento de rotación entre ellos, transmitiendo el movimiento

de forma adecuada. Dicha configuración se muestra en la siguiente fotografía:

Figura 3.19. Unión brazo del servomotor y varilla articulada.

3.2.6 Uniones al plato

Por consiguiente, manteniendo la idea de fabricar la plataforma en bajo coste, y habiendo citado la construcción

de las rótulas mediante bolas de plástico, en el presente apartado se desarrolla la idea con mayor detalle de

definición.

El eje y los brazos articulados L2 se encuentran unidos a las bolas mediante un taladro en las mismas, realizando

la unión mediante presión. Como se muestra en la fotografía, la manipulación de la bola en la realización del

taladro ha sido más complicado de lo esperado, ya que el material de la misma es más rígido y frágil de lo

inicialmente pensado.

Figura 3.20. Unión de la rótula al plato.

Por otro lado, el soporte de la bola, para la fijación al plato, es un racor macho y hembra, mecanizándolo de tal

forma que se rija a las especificaciones buscadas. Inicialmente se parte de la pieza mostrada en la siguiente

fotografía:

Page 36: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño mecánico

18

Figura 3.21. Racor.

Fuente: http://fluidwork.es/index.php?id_category=500&controller=category

Con la ayuda de una radial, se corta una de las roscas no necesarias del racor, para su posterior lijado y fijado en

el plato. Posteriormente, se introduce en la bola en la abertura restante y se fija con ayuda de una tuerca macho.

Cabe destacar el caso del brazo articulado, ya que debido al movimiento de rotación del mismo la rosca se va

aflojando progresivamente, distorsionando el movimiento que debe realizar el plato. Como solución, se realiza

un pequeño taladro que atraviesa a la tuerca por una de sus caras, a la roscas del racor y a la propia bola, y se

introduce un pequeño pasante para fijar el movimiento deseado, de esta manera, la tuerca no podrá desenroscarse

con el tiempo.

Figura 3.22. Detalle del pasante utilizado en las rótulas.

3.2.7 Estructura y soporte cámara

Finalmente, para poder colocar la cámara en el lugar pertinente, se opta por situarla sobre el plato gracias a un

listón de madera de pino. El soporte se trata de una escuadra que se puede regular según se convenga, es decir,

la cámara se puede colocar manualmente según se desee.

Para ello, el listón vertical se ancla a la base mediante unos tacos de madera incrustados en él, así como un

tornillo para mayor fijación con la base. En el otro extremo, se realiza una ranura para dar un mayor margen en

la regulación de la altura de la cámara, como se muestra a continuación:

Page 37: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

19 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 3.23. Ranura realizada en el soporte vertical.

Por otra parte, para realizar la unión entre los dos listones perpendiculares, en un extremo del listón horizontal,

se incorpora una vara roscada de radio inferior a la ranura anteriormente citada. De tal manera que la fijación se

realiza debido a dos tuercas dispuestas en cada uno de los lados del listón vertical.

Figura 3.24. Detalle de la escuadra utilizada.

Finalmente, para la fijación de la cámara y la Raspberry Pi al listón, se crea otra pequeña ranura en el extremo

contrario de éste con tal de poder pasar el conector de la cámara al microprocesador. Asimismo, gracias a los

taladros ya realizados en la placa de la cámara, se puede atornillar la misma al listón para anclar su posición.

Page 38: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño mecánico

20

Figura 3.25. Detalle de la posición de la cámara.

Finalmente, la estructura final muestra la siguiente morfología, quedando totalmente definida:

Figura 3.26. Estructura final.

Page 39: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

4 MODELADO DEL SISTEMA

n este capítulo se van a tratar las diversas maneras de afrontar el problema de modelización de un sistema

Ball and Plate. Se desarrollan diferentes maneras de abordar un mismo problema, aportando un gran rango

de soluciones. Los principales hitos por superar son el conseguir un modelo fiable y robusto del prototipo

fabricado para posteriormente poder desarrollar un sistema de control que pueda alcanzar las prestaciones

exigidas al inicio del presente proyecto.

4.1 Modelado de la planta

4.1.1 Ecuaciones de Lagrange-Euler

Una parte fundamental para el correcto control de un sistema es su modelado. Para poder diseñar un controlador

que desempeñe correctamente su función adecuadamente y realizar una predicción consecuente del

comportamiento de la pelota, es necesario un modelo del sistema lo más preciso posible. Tal es así, que en el

presente proyecto para obtener las ecuaciones necesarias para determinar el movimiento de la bola se parte del

método de Lagrange:

𝐿(𝑡) = 𝐸𝑐(𝑡) − 𝐸𝑝(𝑡) (4.1)

Donde se relaciona la energía cinética 𝐸𝑐(𝑡) y la energía potencial 𝐸𝑝(𝑡).

Figura 4.1. Esquema mecánico sistema bola-plato.

En el esquema previo se representa el diagrama de cuerpo libre del sistema, habiéndose despreciado los

siguientes factores que podrían complicar la resolución del modelado innecesariamente:

• Movimiento de rodamiento suave en el cuerpo rígido uniforme.

• Coeficiente de rozamiento entre el plato y la pelota.

• Trayectoria circular seguida por una partícula en movimiento.

E

Page 40: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Modelado del sistema

22

En primer lugar, la energía cinética de un sistema se trata de la suma de las energías de rotación y de traslación

del mismo, y a su vez, cada una de ella como el sumatorio de la cantidad de movimientos que se produzcan en

el sistema de dicho tipo:

(4.2)

Donde:

(4.3)

En segundo lugar, la otra energía que forma parte de la ecuación es la potencial. Tomándose como referencia el

plato, la energía potencial se describe de la siguiente manera:

(4.4)

Es por lo cual, que una vez sustituyendo las anteriores ecuaciones en la ecuación de Lagrange se obtiene:

(4.5)

Asimismo, si se desarrollan cada uno de los términos que forman el teorema:

(4.6)

Una vez descritas las ecuaciones involucradas en el teorema de Lagrange, es necesaria ahondar aún más en el

tratamiento del modelado del sistema. Consecuentemente, se recurren a la ecuación de Lagrange-Euler para

determinar el movimiento de la pelota y la inclinación del plato.

(4.7)

Seguidamente, sobre cada objeto de estudio del proyecto, ángulo de inclinación del plato y posición de la bola,

se aplica la ecuación de Lagrange-Euler sobre las coordenadas del eje X e Y.

(4.8)

(4.9)

(4.10)

Page 41: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

23 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

(4.11)

Partiendo de la ecuación (4.8), se halla la aceleración lineal de la pelota sobre el eje X, determinando así la

posición de la misma en dicho eje de coordenadas:

(4.12)

Exactamente igual, evaluando la ecuación (4.9), se obtiene la aceleración lineal de la pelota sobre la coordenada

Y:

(4.13)

De manera similar, a partir de la ecuación (4.10), se averigua la aceleración angular del plato sobre el eje de

coordenadas X, es decir, también se determina el ángulo de giro del plato respeto a dicho eje:

(4.14)

Igualmente, se procede sobre el eje de coordenadas Y:

(4.15)

Page 42: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Modelado del sistema

24

(4.16)

Como conclusión, a partir de las ecuaciones anteriores, se obtienen las aceleraciones angulares del plato y

lineales de la bola respecto a los ejes X e Y, quedando definido el movimiento del sistema completo:

(4.17)

(4.18)

(4.19)

(4.20)

Seguidamente, se enfoca el modelado para el control del sistema, por lo que es necesario las entradas de control

del mismo, siendo 𝑈 = [𝑈𝐴 𝑈𝐵]𝑇 , que corresponde a �̈�𝑥 y �̈�𝑦. Asimismo, se muestran las variables de espacio

de estado que determinan al sistema:

Organizando todas las ecuaciones halladas en los pasos anteriores, la dinámica de la bola y el plato en espacio

de estados se representa en (4.21). Hay que hacer especial hincapié en la existencia de acoplamiento entre las

componentes X e Y en la velocidad lineal, dicho hecho implica la dependencia entre las variables de estados,

por lo que el sistema es no lineal. Por otro lado, se determina el desprecio de la masa y el radio de la bola, ya

que una vez evaluadas la inercia (Ib) de la pelota, se simplifican.

(4.21)

Seguidamente, se realizan ciertas hipótesis para facilitar el diseño del controlador del sistema, tales que se asume

que:

• La bola no se separa del plato en ningún momento, es decir, siempre habrá contacto entre ambos sólidos.

• El movimiento de la bola se llevará a cabo mediante rotación sin deslizamiento, la bola no patina.

• La aceleración de rotación del plato y la velocidad angular del mismo, serán escasas

Dichas suposiciones dan como resultado las siguientes simplificaciones:

Page 43: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

25 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

(4.22)

Debido a esta asunción, se ha determinado el desacoplamiento de las coordenadas, siguiendo el espacio de

estados mostrado:

(4.23)

Gracias a las hipótesis y suposiciones realizadas para la simplificación del modelo, se obtienen dos espacios de

estados desacoplados para cada eje de coordenadas, permitiendo el control

• Movimiento sobre el eje X.

(4.24)

• Movimiento sobre el eje Y.

(4.25)

Tabla 1. Unidades y descripción de las variables empleadas.

Page 44: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Modelado del sistema

26

4.1.2 Equilibrio de fuerzas en el sistema

Otro método de poder definir el modelado del sistema estudiado, es el análisis de las fuerzas que actúan a lo

largo de toda la estructura fabricada. En los siguientes esquemas se representan las posibles fuerzas ejercidas

sobre la bola y el plato:

Figura 4.2. Sistema de fuerzas existentes sobre la estructura.

Fuente: https://www.semanticscholar.org/paper/Modelling-of-ball-and-plate-system-based-on-first-Dux0161ek-

Honc/5da58bb88b96aee8571d048df662c42b9af21266

Para ayudar a simplificar las ecuaciones para facilitar el modelado, se plantea la realización de un sistema de

ecuaciones gracias a la dinámica de la pelota sobre el sistema no inercial del plato.

Figura 4.3. Esquema del sistema utilizado.

Dicho esto, se desprecian la fricción y se realiza la suposición de que no ocurrirá ningún deslizamiento entre la

bola y la placa, es decir, sin patinar. Usando estas restricciones, la ecuación de fuerza centrada en el movimiento

de la pelota es:

(4.26)

Seguidamente, si se considera la hipótesis de pequeños desplazamientos para los ángulos considerados:

(4.27)

Page 45: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

27 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Además, puede ser conveniente tener el ángulo del servomotor como variable en lugar de ángulo de placa. Una

relación entre los dos está dada por:

(4.28)

Sustituyendo esta relación en la ecuación (4.48) y resolviendo para la coordenada x:

(4.29)

Ésta es una representación matemática del sistema considerando únicamente un eje de coordenadas. Dado que

se asumen pequeños movimientos de ángulo, las dos direcciones, x e y, están desacopladas. Esto significa que

el modelo anterior se aplicará a ambas direcciones de forma independiente. Por lo tanto, las ecuaciones son las

direcciones x e y son:

(4.30)

Donde αy es el ángulo del motor alrededor del eje x y αx es el ángulo del motor alrededor del eje y. Para el

sistema desarrollado, el ángulo del motor y el ángulo de la placa están en relación directa debido a una relación

1:1 utilizada en el engranaje.

Por otro lado, se debe tener en cuenta que la inercia de una bola viene dada por ecuaciones para una bola sólida

o una bola hueca.

(4.31)

Finalmente, sustituyendo esta relación en las ecuaciones anteriores y simplificando los resultados obtenidos:

(4.32)

Page 46: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Modelado del sistema

28

4.2 Consideraciones físicas

4.2.1 Cálculo de grados de libertad del sistema

El grado de libertad de un mecanismo es un parámetro que determina el número de variables independientes o

ecuaciones necesarias para obtener libertad de movimiento en el espacio que tiene un sistema, es decir, para

definir su posición. En el actual proyecto, también se puede interpretar como la cantidad de servomotores

necesarios para la correcta definición de la posición del mecanismo. Dicho parámetro va determinado por el

conjunto de barras y uniones en los diversos componentes del sistema.

La realización de este cálculo puede suponer alcanzar el éxito en el proyecto, debido que dicho cálculo supone

la comprobación del correcto diseño planteado anteriormente sobre las articulaciones pasivas que se han elegido.

Antes de iniciar la explicación de las ecuaciones a utilizar, es necesario la definición de varios conceptos

utilizados. Un claro ejemplo es el denominado eslabón, siendo cada uno de los sólidos rígidos que forman el

sistema, conectados entre sí a partir de pares cinéticos. En el presente proyecto dicho papel lo desempeñarían el

plato, las barras de los brazos articulados o el eje central.

Por otro lado, un par cinético se define como la unión entre sólidos rígidos que impide ciertos movimientos y

permite otros. Como ejemplos, se tendrían las rótulas implementadas en la plataforma.

El criterio de Grübler-Kutzbach para mecanismos espaciales es por el cual se realiza el cálculo de los grados de

libertad de un sistema:

(4.33)

Donde:

n: número de enlaces.

j: número de pares cinéticos.

∑ 𝑓𝑖𝑗𝑖=1 : sumatorio de los grados de libertad de cada par cinético.

Igualmente, expresando el criterio en su versión extendida:

𝐺 = 6(𝑛 − 1) − 𝑗5 − 2𝑗4 − 3𝑗3 − 4𝑗2 − 5𝑗1 (4.34)

Donde:

n: número de enlaces.

j1: número de pares cinéticos de un grado de libertad.

j2: número de pares cinéticos de dos grados de libertad.

j3: número de pares cinéticos de tres grados de libertad.

j4: número de pares cinéticos de cuatro grados de libertad.

j5: número de pares cinéticos de cinco grados de libertad.

En el siguiente esquema conceptual se puede advertir la distribución del acoplamiento mecánico que componen

el plato con las articulaciones a los actuadores y a la base del prototipo.

Page 47: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

29 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 4.4. Diagrama de barras.

Mèmoria.pdf

A partir de dicha imagen, se puede determinar que la estructura del sistema Ball and Plate utilizada en el presente

proyecto tiene:

n = 6

j1 = 2 (pares 1-2 y 6-1)

j2 = 1 (par 4-1)

j3 = 4 (pares 2-3, 3-4, 4-5 y 5-6)

Por otro lado, se detecta que el giro de las barras verticales 3 y 5 sobre sí mismas, aportan dos grados de libertad,

sin embargo, no tienen repercusión alguna en la orientación del plato.

Finalmente, teniendo en cuenta estos grados de libertad no esenciales, se obtienen los grados de libertad que

posee el plato:

(4.35)

(4.36)

Asimismo, el sistema global posee dos grados de libertad adicionales gracias al movimiento de la bola en los

ejes X e Y.

4.2.2 Relaciones entre los ángulos de los actuadores y el plato

Tras el análisis del modelado de la plataforma, una de las relaciones fundamentales que se debe determinar para

la correcta definición del sistema es la relación existente entre los ángulos de los actuadores y el plato. Dada las

diversas metodologías empleadas para la determinación de dicho parámetro, se realiza un pequeño estudio de

las mismas, reflejados en los próximos apartados.

4.2.2.1 Método 1: Teorema de Pitágoras

Debido a la compleja geometría de la estructura realizada, el sistema Ball and Plate presenta una desviación que

debe ser considerada a la hora de realizar los cálculos. El plato presenta un ángulo θ cuando el servomotor se

encuentra en la posición de 0º. Una posible solución es alcanzada gracias al análisis del siguiente esquema de

los enlaces entre los diversos elementos del sistema, en este caso habiendo considerado el eje X (se actúa de

manera exacta para el eje Y).

Page 48: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Modelado del sistema

30

Figura 4.5. Teorema de Pitágoras en el sistema.

Planteando el teorema de Pitágoras para la geometría analizada, representado en rojo, se pueden sacar las

relaciones trigonométricas entre las barras y enlaces que forman el prototipo, es decir, la relación entre los

ángulos αx y θ𝑥.

(4.37)

Dado que se considera que el ángulo β es aproximadamente igual a 0, las ecuaciones se pueden simplificar de

la siguiente manera:

(4.38)

Por consiguiente, se utiliza el Teorema de Pitágoras1 aplicado al triángulo anteriormente nombrado para hallar

la correspondencia entre los ángulos:

(4.39)

Realizando la hipótesis de pequeños desplazamientos sobre el ángulo θ𝑥, es decir, considerando que los

desplazamientos del plato serán muy pequeños, la ecuación se puede simplificar de tal manera que sinθ𝑥 ≈ θ𝑥 y cos θ𝑥 ≈ 1. Paralelamente aplicando también la identidad trigonométrica sin𝜑2 + cos𝜑2 = 1:

(4.40)

Finalmente, despejando las ecuaciones, se obtiene que la relación entre el ángulo del plato y el ángulo del

actuador para la coordenada X se rigen por la siguiente ecuación:

(4.41)

Similarmente, la ecuación hallada para la coordenada Y es la que sigue:

1 𝑎2 + 𝑏2 = ℎ2 donde h es la hipotenusa y a y b los catetos del triángulo

Page 49: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

31 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

(4.42)

4.2.2.2 Método 2: Considerando la posición inicial

De manera similar al método anterior, se tiene la siguiente distribución geométrica del sistema objeto de estudio:

Figura 4.6. Sistema bola -plato de referencia utilizado.

Las relaciones entre α y θ vienen dadas por las siguientes cadenas geométricas cerradas (despreciando el

coeficiente de elasticidad del plato de la estructura):

(4.43)

Asimismo, el ángulo γ puede ser despreciado por la hipótesis de pequeños desplazamientos, quedando la

ecuación de tal manera:

(4.44)

Por otro lado, si se considera la plataforma en el momento de equilibrio, el ángulo θ debe ser nulo, pudiendo

simplificar la ecuación (4.44) de la manera siguiente. Cabe destacar que de dicha ecuación se sacará el parámetro

α0, indicando la posición del brazo del servomotor cuando la plataforma se encuentra totalmente horizontal:

(4.45)

Volviendo a la expresión (4.44), al desarrollar los polinomios como entidades notables, se obtiene:

(4.46)

Seguidamente, se linealiza alrededor del punto de equilibrio determinado al inicio del presente desarrollo, es

decir, en el punto (𝜃, 𝛼) = (0, 𝛼0) se obtiene:

Page 50: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Modelado del sistema

32

(4.47)

Simplificando (4.53), finalmente se obtiene la relación entre los diversos ángulos del sistema, habiendo hallado

la siguiente ecuación:

(4.48)

4.2.2.3 Método 3: Mecanismo de barras

En el siguiente método para hallar la relación entre ángulos de las plataforma y el servomotor, cabe destacar la

disposición de este último, ya que el eje central del actuador se encuentra en un plano paralelo al eje central del

plato, es decir, girado 90º respecto a la distribución anterior.

En este caso, se utiliza la metodología empleada para averiguar las relaciones en un mecanismo de 4 barras,

siendo 𝛼(𝑠) y 𝛽(𝑠) los ángulos de inclinación del plato, controlados de forma indirecta por los actuadores. En el

siguiente esquema se representan las coordenadas correspondiente al eje X.

Figura 4.7. Distribución de la estructura bola-plato utilizada.

Consiguientemente, se detecta que los ángulo 𝛼(𝑠) y 𝛽(𝑠) no se corresponden con los ángulos de rotación de los

actuadores 𝜃𝑥 y 𝜃𝑦, debido a que el mecanismo de cuatro barras detectado en la estructura no es un

paralelepípedo.

Para poder llegar a definir completamente el sistema objeto de estudio, es necesario incurrir en un cálculo

adicional para averiguar los ángulos demandados en los actuadores para alcanzar los ángulos 𝛼(𝑠) y 𝛽(𝑠)

buscados. Finalmente, las ecuaciones utilizadas para el cálculo del ángulo de inclinación requerido 𝛼(𝑠), y así

hallar el ángulo de giro del actuador 𝜃𝑥:

(4.49)

(4.50)

Page 51: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

33 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

(4.51)

(4.52)

(4.53)

4.2.2.4 Método 4: Intersección de trayectorias

Como se ha detallado en métodos anteriores, a causa de la geometría del prototipo fabricado, cuando el ángulo

del actuador se encuentra en la posición de 0º, el ángulo del plato no se corresponde, ya que no se obtiene 0º de

inclinación. Es por lo cual que se analizan las posibles soluciones cinemáticas del sistema, siendo los mismos el

problema cinemático directo e inverso.

Inicialmente, en el problema cinético directo se define la inclinación del plato con respecto a un sistema de

coordenadas de referencia, partiendo del ángulo de los servomotores. Por otro lado, el problema cinemático

inverso consiste en, como bien su nombre indica, justamente lo contrario, a partir de la inclinación del plato,

cuantificar el ángulo que deben alcanzar los actuadores. En el presente capítulo se resuelve el segundo caso, ya

que será bastante provechoso para conocer que ángulo deben lograr los servomotores para que el plato se

mantenga en 0º.

De tal modo, se prosiguen los trabajos desarrollando dicho problema utilizando matrices de transformación

homogénea (MTH) o por el método geométrico, indicado en el siguiente esquema, tratándose del método elegido

dada su mayor facilidad de implementación.

El método geométrico elegido trata de averiguar las relaciones existentes que permiten hallar la situación

espacial del sistema a partir de sus coordenadas articulares.

Figura 4.8. Situación espacial del sistema bola-plato.

Si se sigue la designación mostrada en la figura anterior, el ángulo β es conocido, aportando la solución para el

hallazgo de las coordenadas del punto de unión P del brazo con el plato. Por otro lado, es relevante destacar que

las coordenadas buscadas son las de la unión J, para poder determinar el ángulo de rotación θ del actuador.

El objetivo principal es hallar las coordenadas de la anteriormente citada unión J como la intersección de la

trayectoria realizada por el brazo R1 y por el brazo R2, considerándose estas dos circunferencias de radio R1 con

centro en M, y otra circunferencia de radio R2 y centro P respectivamente.

Page 52: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Modelado del sistema

34

Figura 4.9. Intersección entre trayectorias.

Consecutivamente, considerándose los puntos 𝑀 = (𝑥𝑀 , 0) y 𝑃 = (𝑥𝑝, 𝑧𝑝) representan los centros de las

trayectorias circulares anteriormente expuestas, es posible plantear el siguiente sistema de ecuaciones:

(4.54)

(4.55)

Desarrollando y expandiendo las entidades anteriores, se obtiene:

(4.56)

(4.57)

A continuación, si se realiza la resta de las ecuaciones anteriores:

(4.58)

Donde:

(4.59)

(4.60)

Como conclusión, sustituyendo estos valores en las ecuaciones previas:

(4.61)

(4.62)

Finalmente, resolviendo para la ecuación (4.62) se halla la posición del enlace J, y por consecuencia, se cuantifica

el valor del ángulo θ. Por otro lado, se sustituyen las coordenadas de los puntos M y P.

Page 53: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

35 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

(4.63)

(4.64)

(4.65)

Para la coordenada del eje Y, se realizan los mismos cálculos, obteniendo las ecuaciones idénticas.

Page 54: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Modelado del sistema

36

Page 55: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

5 DISEÑO DE CONTROLADORES

lo largo de la presente sección, se detallan los controladores que se han diseñado para poder controlar el

movimiento del plato según la trayectoria de la bola. Por consiguiente, tras los cálculos llevados a cabo

en capítulos anteriores, los controladores se han planificado a partir de la aproximación lineal del sistema

alrededor de un punto de equilibrio.

5.1 Puntos de equilibrio naturales del sistema

El punto de equilibrio de un sistema se puede definir como aquel en el que el estado del sistema permanece

inalterado, es decir, el estado no cambia, no hay ningún tipo de variación y de mantiene estable indefinidamente.

Por otro lado, un punto de equilibrio natural se reduce a aquel en el cual la señal de control es nula. Tal es la

importancia de la determinación de dichos puntos, que el punto inicial para calcular los controladores es la

averiguación de dichos puntos de equilibrio que posee el sistema.

(5.1)

(5.2)

Con

Naturalmente, para el sistema Ball and Plate planteado, se aplica la ecuación (5.1) sobre el conjunto de

ecuaciones que determinan el sistema no lineal, partiendo del sistema (4.21) desarrollado en el capítulo previo:

(5.3)

Seguidamente, resolviendo el sistema de ecuaciones, se determinan los puntos naturales de equilibrio que posee

el sistema. En el caso objeto de estudio, siempre y cuando sean nulos los valores de la velocidad lineal de la

pelota, el ángulo de giro y la velocidad angular, el sistema tendrá infinitos puntos de equilibrio, ya que cualquier

posición sobre el plato es considerada como un punto de equilibrio.

(5.4)

A

Page 56: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño de controladores

38

5.2 Aproximación lineal del sistema alrededor de un punto de equilibrio

Dada la no linealidad del sistema, es necesario la linealización entorno a un punto de equilibrio. En ese caso, el

controlador es diseñado mediante la metodología desarrollada en el control lineal, para más adelante ser

implementada en el sistema no lineal. Consecuentemente, se aplica la linealización (5.5), donde �̂� y �̂� se

corresponden con el cambio de variable detallado en (5.6); y las constantes 𝑋0 y 𝑈0 el punto de equilibrio fijado.

(5.5)

(5.6)

Finalmente, a partir del punto de equilibrio (5.4) correspondiente al centro del plato, se realiza la siguiente

aproximación lineal del sistema. Asimismo, implementando sobre la aproximación del sistema Ball and Plate

(5.5) determinada, a falta de evaluar sobre el punto de equilibrio, se halla:

(5.7)

Seguidamente, evaluando (5.7) sobre el punto de equilibro fijado, el centro del plato, y haciendo hincapié que

dicho punto de equilibrio es 𝑃. 𝐸.= 0⃗ , el cambio de variable necesario se realiza directamente como �̂� = 𝑋 y

�̂� = 𝑈. Finalmente, se obtiene el siguiente espacio de estados para determinar el sistema:

(5.8)

Analizando detalladamente dicho espacio de estados, se detecta la independencia de las distintas coordenadas

del sistema implicadas, realizando un desacoplamiento de las mismas. Cabe destacar que dichos subsistemas

tienen el mismo comportamiento, por lo que a partir de ahora, solo será realizado el desarrollo de una de ellas.

• Movimiento sobre el eje X.

Page 57: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

39 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

(5.9)

• Movimiento sobre el eje Y.

(5.10)

5.3 Simplificación del modelo de la planta

En el prototipo diseñado hasta ahora, es evidente que como entrada de control se toma la aceleración angular del

plato, es decir, la aceleración angular de los motores que gobiernan el movimiento del mismo. Pero cabe destacar

que el ángulo del plato, y en consecuencia la posición de la bola es regido por el movimiento de los actuadores

a través de un dispositivo PWM.

Seguidamente, se representan dos dobles integradores en el modelo lineal del Ball and Plate para la coordenada

x, representados en la ecuación (5.9). Uno de ellos marcado en color naranja para las variables de estado x1 y x2,

y, por otro lado, marcado en rojo, para las variables 𝑥3 y 𝑥4. Por lo cual, el sistema en espacio de estados para

un doble integrador se expone a continuación:

(5.11)

(5.12)

Si se parte de la variable de estado 𝑥4 para la obtener la señal de control, pasando por el doble integrador

especificado anteriormente en color rojo, se alcanza la variable 𝑥3:

(5.13)

Prosiguiendo con dicho planteamiento, se puede hallar una nueva variable de control 𝑥3 = 𝑈𝑥 que alimenta al

modelo desde la variable 𝑥2:

(5.14)

Por consiguiente, se ha logrado una nueva variable de control válida para controlar la posición de los actuadores

del prototipo ya que se trata del ángulo de inclinación del plato. Representando según estas premisas en el

modelo simplificado del sistema para la coordenada x:

Page 58: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño de controladores

40

(5.15)

Rigiéndose por el mismo criterio, se determinan igualmente las ecuaciones que describen el movimiento sobre

la coordenada y:

(5.16)

De manera similar, para el sistema no lineal (4.21), se toman las nuevas entradas de control definidas (𝑥3 = 𝑈𝑥

y 𝑥7 = 𝑈𝑦):

(5.17)

(5.18)

Finalmente, como 𝑥3, 𝑥4, 𝑥7 y 𝑥8 no tienen repercusión alguna en el modelo simplificado, se obtienen las

siguientes ecuaciones en el espacio de estados del sistema:

• Modelo lineal:

(5.19)

• Modelo no lineal con acoplamiento:

(5.20)

• Modelo no lineal sin acoplamiento:

(5.21)

5.4 Realimentación de estado: Regulación

La función de transferencia del sistema puede ser hallada a partir de las matrices que describen el sistema Ball

and Plate, descritas a continuación:

Page 59: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

41 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

(5.22)

Tras el análisis de la función de transferencia, se detecta que el sistema en lazo abierto posee dos polos en 0, lo

que denota además de la no linealidad del sistema, su inestabilidad. Por lo cual es de suma importancia realizar

un controlador para poder paliar los efectos de la citada inestabilidad:

(5.23)

Los primeros pasos a seguir es determinar un controlador para regulación, o dicho de otro modo, un controlador

que conduzca al sistema bajo control a su punto de equilibrio. Dicha regulación se alcanza gracias a la

realimentación de la planta mediante una señal de control regida por la siguiente ley:

(5.24)

En el siguiente diagrama de bloques se expone el control de un sistema en lazo cerrado con realimentación de

estados.

Figura 5.1. Diagrama de bloques del sistema en lazo cerrado con realimentación de estados.

5.5 Controladores desarrollados

Como estudio concluyente a todo lo citado anteriormente, en el presente apartado se describen la metodología

del control definitivo que se va a implementar en el sistema, para en los apartados siguiente explicar su

compilación y resultados en el prototipo desarrollado.

Page 60: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño de controladores

42

Figura 5.2. Diagrama de bloques de un sistema con controlador PID.

Fuente: http://dronesdecarreras.com/pid-para-cuadricopteros-que-es/

El controlador elegido es el más extendido usualmente para el control de sistemas con lazo cerrado en los cuales

no se tiene conocimiento del proceso, el PID. El control proporcional, integral y derivativo (PID) es un

mecanismo de control por realimentación caracterizado por su gran sencillez, eficacia y robustez. Cada término

incluido en el controlador desempeña una función relevante en todo el proceso, tal es así que el término

proporcional depende del error actual, el integral de los errores pasado y el derivativo es una predicción de

errores futuros.

Figura 5.3. Diagrama de bloques de un sistema realimentado con controlador PID.

Fuente: https://upload.wikimedia.org/wikipedia/commons/d/d9/PID_es_updated_feedback.svg

El funcionamiento de dicho controlador es bastante simple en cuanto a concepto: el controlador recibe una señal

externa denominada punto de referencia, punto de consigna o set-point, la cual posee las mismas propiedades

que la señal que suministra el sensor, en el caso de estudio, la cámara.

A continuación, el controlador resta la señal del punto de referencia con la señal recibida, obteniendo así el error

cometido por el sistema, que determina la diferencia entre ambas señales. Dicha señal de error será al utilizada

por cada componente del controlador para poder alcanzar el punto deseado en el sistema.

Seguidamente, se analiza por separado cada término que compone el controlador elegido, aportando un mayor

empaque a la elección tomada:

• Término proporcional

El término proporcional basa su cálculo en el producto del error cometido 𝑒(𝑡)y una constante

proporcional ajustable 𝑘𝑝, intentando en este caso alcanzar que el error estacionario se aproxime a cero.

Este error estacionario se trata de la diferencia entre la variable a controlar con el punto de referencia cuando

el sistema se encuentra en régimen permanente.

(5.25)

Page 61: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

43 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

• Término integral

Dicho término es el encargado de disminuir y suprimir el error en régimen estacionario, compensando

las perturbaciones externas que el control proporcional no es capaz de mitigar. El control integral es el

encargado de atenuar la desviación existente entre la variable de entrada y el set-point, integrando la

desviación en el tiempo y realizando un sumatorio con la acción proporcional.

(5.26)

En la expresión teórica de la acción integral destaca el término 𝑇𝑖, siendo el tiempo integral. Se trata del

tiempo incurrido para que la acción integral surja efecto en la salida del controlador de igual manera que el

término derivativo. Asimismo, se puede definir la contante de integración como la velocidad con la que se

repite la acción proporcional 𝐾𝑖 = 𝐾𝑝 𝑇𝑖⁄ .

• Término derivativo

Se trata de la acción de control más rápida de todas las descritas, debida a su carácter de previsión. Hace su

aparición cuando hay una modificación el valor absoluto del error, es decir, si el error es contante, no actúa.

Como principal inconveniente, debido a su rapidez de actuación, es posible que amplifique el ruido y pueda

saturar a los actuadores.

(5.27)

Donde 𝑇𝑑 representa el tiempo necesario para que la acción proporcional de igual medida que la acción

derivativa en la salida del controlador. Igualmente al caso anterior, se puede definir la constante de

derivación como 𝐾𝑑 = 𝐾𝑝𝑇𝑑.

Una vez detallado cada término implicado en la acción del controlador, se procede a la suma de cada uno de

ellos, formando el controlador PID definitivo. Es por lo tanto, que la ley de control en tiempo continuo del

controlador se puede definir como:

(5.28)

Como bien se ha puntualizado anteriormente, se ha llegado a la expresión en tiempo continuo, sin embargo, para

implementar dichas expresiones en el microprocesador Raspberry Pi, dispositivo que capta las imágenes cada

tiempo determinado, es necesario trabajar en modo discreto. Para la discretización del sistema, es factor

fundamental la determinación de un tiempo de muestreo 𝑇𝑠.

Procediendo en primer lugar con el término integral aproximándolo por rectángulos y discretizando para 𝑇𝑠 se

obtiene la siguiente expresión:

(5.29)

Operando de manera similar para el término derivativo, se alcanza:

(5.30)

Finalmente, realizando el sumatorio de los términos anteriores, integral y derivativo, y sacando como factor

común la constante proporcional, se halla la sucesiva expresión que determina la ley de control del PID en modo

Page 62: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Diseño de controladores

44

discreto:

(5.31)

Una vez definido cada una de las partes del controlador diseñado, se determinan experimentalmente cada uno

de los valores de dicho controlador.

Page 63: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

6 ELECCIÓN DE COMPONENTES Y

CONEXIONADO

ara llevar a cabo el prototipo descrito en capítulos anteriores, previamente se ha realizado un estudio

preliminar de la actual tecnología ofertada en el mercado de cada uno de los componentes que conforma

la estructura final.

Por otro lado, siguiendo la filosofía de bajo costo seguida en el presente proyecto, se han elegido los elementos

que para un coste menor, pudieran aportar las soluciones buscadas sin tener que sacrificar ninguna de las

especificaciones y objetivos marcados.

6.1 Sistema de detección de la pelota

Investigando sobre la oferta actual existente en el mercado, se determina que hay dos claras vertientes en cuanto

a la detección de la posición de la bola en el plato. Una de ella se trata de que el mismo plato se trate de un panel

táctil resistivo, o de otro modo, haciendo uso de la visión artificial, utilizar una cámara como entrada de señal

del sistema desarrollado.

6.1.1 Panel táctil resistivo

La opción de utilizar un panel táctil resistivo como plato del prototipo es una de las vertientes más utilizadas en

el mercado actual. Dicho éxito se debe a su facilidad de transmitir una señal externa en una señal de control. La

composición de los paneles táctiles se caracteriza por estar formada por varias capas, siendo las más

significativas dos capas compuestas por un material conductor entre las cuales se halla un pequeño espacio. El

funcionamiento es sencillo, cuando se presiona algún punto de la propia pantalla, estas dos capas entraran en

contacto creando una variación en la corriente eléctrica.

Figura 6.1. Principio de funcionamiento del panel táctil resistivo.

Fuente: https://www.informatica-hoy.com.ar/electronica-consumo-masivo/Diferencias-pantallas-resistivas-

capacitivas.php

P

Page 64: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Elección de componentes y conexionado

46

Esta señal es la utilizada por el controlador para determinar cuál es la posición de la pelota sobre el panel gracias

a la medición de la resistencia en dicho punto de contacto. Asimismo, para pantallas más sofisticadas en posible

medir la presión que se ha ejercido sobre el panel.

Figura 6.2. Panel táctil.

Fuente:http://www.matrix.es/display-touch-panel/paneles-tactiles-resistivos

6.1.2 Cámara

Seguidamente, se estudia la otra opción más utilizada, la instalación de una cámara sobre el plato, de tal manera

que se vayan captando imágenes cada un determinado espacio de tiempo o intervalo. Cada una de las imágenes

que se capturan, deben tratarse posteriormente para la determinación de la bola sobre el plato, por lo que se

detecta que evidentemente el tiempo del tratamiento de dichas imágenes dependerá de la velocidad del

microprocesador utilizado, pudiendo incurrirse en un tiempo de muestreo más alto que el caso anterior.

Figura 6.3. Webcam/cámara.

Fuente: https://www.pccomponentes.com/logitech-hd-webcam-c270

Sin embargo, el coste de las cámaras es mucho más inferior que el de los paneles táctiles, por lo que es la opción

que más fuerza entre la elección de ambas.

6.1.3 Selección del sistema de detección de la pelota

Consecuentemente a lo expuesto previamente, es evidente la rapidez superior del procesado de la posición de la

bola en el caso del panel táctil, ya que se analiza la señal directamente; sin embargo, en el caso de hacer uso de

la cámara, se han de tener en cuenta el tiempo del post-procesamiento de las imágenes para la detección de la

pelota sobre el plato.

Aunque a simple vista la opción más viable sería la utilización del panel táctil, en el presente proyecto se ha

Page 65: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

47 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

decidido hacer uso de la cámara, ya que resulta tener un coste inferior, así como más interesante a nivel

académico.

6.2 Controlador

La estrategia de control elegida para el diseño y desarrollo del sistema Ball and Plate es una de las decisiones

más relevantes que tomar, ya que es la encargada de regular la posición de la bola en el plato. El mecanismo

explicado brevemente se trata de la recepción de la señal del sensor sobre la posición real de la pelota sobre el

plato, la cual se compara con el punto de referencia o consigna deseada, hallando de este modo el error cometido

por sistema. Consecutivamente, dicho error se corrige enviando una señal a los actuadores para el movimiento

del plato, lo que hace que la pelota se dirija a la posición deseada.

Para la implementación del controlador las opciones más utilizadas se pueden llevar a cabo a través de dos

caminos diferenciados. El primero de ellos se trata de hacer uso de un ordenador, formado normalmente por

potentes hardware y software que facilitan el control del sistema, como podrían ser Matlab/Simulink o NI

LabVIEW. Por otro lado, se tiene la opción de utilizar la cámara a través de los puertos USB del ordenador, así

como también se posee un procesador lo suficientemente rápido para realizar el tratamiento de la imagen. Sin

embargo, el principal inconveniente recae en el control de los actuadores, ya que sería necesario el uso de un

hardware externo para poder controlarlos desde el ordenador, por lo que se desecha esta opción.

Paralelamente, otra opción considerada igualmente eficiente, es el uso de un microcontrolador. El

microcontrolador es un circuito integrado programable, encargado de realizar los programas almacenados en su

memoria interna, constituido por una unidad central de procesamiento (CPU), unidades de memoria (RAM y

ROM), puertos de entrada, de salida y periféricos.

Actualmente, los microprocesadores más vendidos en el mercado se tratan de Arduino y Raspberry Pi. La fama

de estos controladores recae en la facilidad de programación, así como su gran versatilidad para el uso de diversas

aplicaciones.

6.2.1 Arduino

Arduino se trata de una plataforma de hardware de código abierto. Su programación se realiza desde un

ordenador, escribiendo y cargando códigos en la placa física, gracias a un entorno de desarrollo integrado (IDE).

El hardware del microprocesador consiste en una placa donde se integra el microcontrolador, además de salidas

y entradas, tanto analógicas como digitales.

Figura 6.4. Microprocesador Arduino.

Fuente: http://www.niltech.in/product/arduino-uno-r3/

En comparación con otros microcontroladores existentes, la carga de los programas se realiza mediante un cable

USB, sin necesidad del uso de un hardware adicional. Otra característica destacable de Arduino es el lenguaje

de programación usado, ya que se trata de una versión simplificada de C++, haciendo mucho más fácil la

programación del citado microprocesador.

Page 66: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Elección de componentes y conexionado

48

6.2.2 Raspberry Pi

Por otro lado, otro microcontrolador que actualmente se encuentra en auge en el mercado es la Raspberry Pi,

siendo un ordenador de bajo coste del tamaño de una tarjeta de crédito. Fue originalmente diseñada en 2011 para

estimular la enseñanza de la informática en las escuelas, pero hasta 2012 no empezó a fabricarse. En realidad,

se trata de una diminuta placa base de 85 x 54 milímetros que aloja un chip Broadcom BCM2836 con procesador

ARM hasta 1 GHz de velocidad, GPU VideoCore IV y hasta 1 Gigabytes de memoria RAM. Por lo tanto, se

puede considerar la Raspberry Pi como un microcomputador.

Figura 6.5. Microprocesador Raspberry Pi 3.

Fuente: http://tienda.bricogeek.com/placas-raspberry-pi/811-raspberry-pi-3.html

6.2.3 Elección de controlador

Consiguientemente, se realiza una comparativa de las ventajas e inconvenientes en los que se puede incurrir

según la elección tomada entre un microprocesador u otro. En cuanto a potencia del procesador de cada uno,

Raspberry PI posee uno más potente y de más memoria RAM que Arduino, sin embargo, los pines de entrada y

salida contienen mayores limitaciones que los pines de Arduino. Dicho inconveniente es el principal de todos,

ya que en el sistema Ball and Plate es necesario el uso de señales PWM para el control correcto de los actuadores

utilizados, por lo que se debe tener en cuenta si es necesario el uso de un hardware intermedio para poder

controlarlos, o si simplemente es suficiente a partir de la programación. Arduino, en cambio, dispone de varios

pines PWM que permiten conectar y controlar simultáneamente más de un servomotor.

Paralelamente, se debe tener en consideración el tratamiento de imágenes anteriormente descrito, obteniendo la

principal restricción de Arduino, el cual no dispone de entrada para poder conectar una cámara, por lo que obliga

a hacer uso de un ordenador para el uso de la misma. Detectado dicho inconveniente, resulta indiscutible que el

microprocesador que mejor encaja con las especificaciones del sistema deseado se trata de la Raspberry Pi.

Igualmente, se detalla que se hace uso de la cámara Pi, siendo un módulo propio comercializada especialmente

para el uso con este microprocesador.

6.3 Actuadores

Los actuadores son los encargados de realizar el movimiento del plato en el sistema. Usualmente, la solución

más usada se trata de la incorporación de motores de tipo rotativo, destacando los motores DC, los motores paso

a paso y los servomotores. A continuación, se analiza cada uno de ellos para determinar cuál de ellos es el que

más se ajusta a las necesidades encontradas.

6.3.1 Motor DC

El motor de corriente continua o DC es un mecanismo capaz de convertir la energía eléctrica en energía

Page 67: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

49 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

mecánica, generando un campo magnético que induce un movimiento giratorio. El motor se constituye de dos

cables, correspondientes a alimentación y tierra, los cuales proporcionan la electricidad necesaria para el correcto

funcionamiento del motor. Una vez activada la alimentación del motor, éste empieza a girar, deteniéndose

únicamente en el momento de la retirada de dicha alimentación.

Figura 6.6. Motor DC

Fuente: http://www.directindustry.es/prod/chiaphua-components/product-61070-575565.html

Una de las características más significativas de los motores DC son las altas velocidades (revoluciones por

minuto, rpm) que les es posible alcanzar, pudiendo ser controlada mediante la modulación por ancho de pulso

(PWM).

6.3.2 Servomotor

El servomotor se caracteriza principalmente por la posibilidad de un control de la posición mucho más preciso,

poseyendo en este caso tres cables, siendo uno para la alimentación (rojo), otro para masa (marrón) y el último

para el control (amarillo). El servomotor se trata de un potente dispositivo compuesto por cuatro elementos

distintivos: un motor DC, un reductor de velocidad y multiplicador de fuerza, un circuito de control y un sensor

de posición, que generalmente es un potenciómetro.

Cabe destacar que el ángulo de giro de los servomotores normalmente está limitado a 180º, por lo que no es

posible que giren libremente. La señal de control que reciben determina la posición que debe adoptar el motor y

le aplica tensión hasta que el brazo alcanza la posición deseada.

Aquí destacan de nuevo las señales PWM, encargadas de controlar la posición del servomotor gracias a un tren

de pulso, a comparación de los motores DC donde se regulaba la velocidad. Si se describe genéricamente el

funcionamiento de un servo, se determina que con el envío de un pulso con una frecuencia de 50 Hz de 1,5 ms

el servo se sitúa en su posición central, 90º. Por otro lado, si se incrementa el pulso se tiene una rotación horaria,

y si se decrementa antihoraria.

Figura 6.7. Servomotor.

Fuente: https://www.nextiafenix.com/producto/servo-motor-mg995/

Page 68: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Elección de componentes y conexionado

50

Cuando se le envía una señal de referencia de posición a un servomotor, éste se mueve hasta esa posición y la

mantiene, incluso si una fuerza externa empuja en sentido contrario, siempre y cuando el tren de pulsos sea

enviado continuamente. El servomotor mantendrá la posición si no supera el torque máximo que puede ejercer.

6.3.3 Motor paso a paso

Un motor paso a paso (motor PaP en adelante) es comparable con un servomotor, tan solo destacando que utiliza

un mecanismo de motorización distinto. Mientras que un servomotor utiliza un motor DC controlando la

posición del giro con el circuito de control, los motores PaP poseen múltiples electroimanes dentados dispuestos

en torno a un engranaje central para determinar su posición.

Figura 6.8. Motor paso a paso.

Fuente: http://tienda.bricogeek.com/motores/75-motor-paso-a-paso-24kg-cm.html

Los motores PaP requieren un circuito de control externo o microcontrolador para alimentar individualmente

cada electroimán, para poder mover el brazo del motor. Cuando el electroimán ‘A’ es alimentado, éste atrae al

engranaje y lo alinea ligeramente desplazado del siguiente electroimán ‘B’. Cuando se desconecta el electroimán

‘A’ y se alimenta el ‘B’, el engranaje se alinea con el ‘B’, y así sucesivamente hasta completar el círculo. Cada

rotación entre un electroimán y el siguiente se denomina ‘paso’. El motor puede girar tantos ‘pasos’ estén

predefinidos a lo largo de los 360º de rotación.

6.3.4 Elección de actuador

Finalmente, recopilando lo citado para cada tipo de motor se debe tomar una decisión. En primer lugar, se

determina que los motores DC son los más rápidos, tienen rotación continua y completa en los 360º, siendo los

más utilizados normalmente para aplicaciones donde son necesarias altas revoluciones.

Por otro lado, los servomotores son rápidos, pero no tanto como los motores DC, tienen un torque elevado,

posición precisa y ángulo de rotación limitado. Comúnmente se consideran una mejor solución que los motores

PaP, aunque poseen el inconveniente de una mayor dificultad a la hora de configurarlos con la señal PWM.

Finalmente, los motores PaP son los más lentos, tienen una rotación muy precisa y son fáciles de configurar y

controlar. Los motores PaP controlan la posición a través de su naturaleza de rotación por elementos

fraccionales, es decir, por pasos, mientras que un servomotor requiere de un circuito de control y

retroalimentación.

Concluyentemente, habiendo analizado en profundidad cada motor, se determina la elección de los servomotores

gracias a su rapidez y a su mayor torque, aun teniendo los motores PaP una mayor precisión de la posición, pero

su lentitud los ha descartado. Por otro lado, los motores DC se descartan por su dificultad de control de la

posición.

Page 69: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

7 PROGRAMACIÓN

no de los principales puntos del presente proyecto es la implementación de lo estudiado teóricamente en

los capítulos anteriores, donde se desarrollan todas las ecuaciones necesarias para la consecución y

alcance de los objetivos planteados al comienzo del presente proyecto.

Asimismo, se trata de los capítulos con mayor complicación, ya que el tiempo empleado en el diseño de los

diversos programas no se puede cuantificar exactamente. Tal es así, que a la finalización del presente proyecto

no se han podido comprobar los programas desarrollados debido a un fallo de compilación en la incorporación

de las librerías explicadas posteriormente, por lo que el programa final, expuesto no se ha podido comprobar

correctamente, habiéndose hecho una estimación en todo momento según otros programas de referencias

empleados.

7.1 Estructura del programa

Uno de los primeros pasos a la hora de realizar una correcta estructura de un programa, es la realización del

diagrama de bloques que define las etapas a seguir durante la realización del mismo, así como de manera

cuantitativa cómo funcionará dicho programa. Es por lo cual, que se expone el siguiente esquema en el cual se

diferencia claramente cuál será el proceso iterativo que realizar por el mismo.

Figura 7.1. Estructura de programación.

Dado que para el control del sistema es necesaria una realimentación del mismo, ya que se parte de un punto de

referencia, al cual se obligará al sistema a tender, es decir, se intenta que la pelota siempre se encuentre en dicha

posición, es de vital importancia la determinación del tiempo de muestreo.

El tiempo de muestreo se define como el tiempo que transcurre entre la captación de una muestra y su

consecutiva en la señal medida, por lo cual, si este intervalo es excesivo se puede incurrir en una inestabilidad

del sistema.

U

Page 70: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Programación

52

Por otro lado, otro factor relevante en el control del sistema es el tiempo de cómputo del mismo, tiempo que

emplea el microprocesador en realizar un ciclo completo del programa implementado. Es decir, si el

microprocesador no es lo suficientemente rápido para incidir en un tiempo de cómputo bajo, el tiempo de

muestro también deberá ser elevado, pudiéndose llegar a un control inestable.

En los próximos apartados se realiza el estudio y análisis de la técnica existente en el mercado, eligiendo en cada

caso la mejor opción para las prestaciones y requisitos estipulados al inicio del presente proyecto, y además,

como se ha hecho hincapié, lo más rápidas posibles, con un bajo tiempo de cómputo.

7.2 Obtención y tratamiento de imágenes

En la presente sección, se toma el tema de la obtención y el tratamiento de imágenes por parte del

microprocesador a través de la cámara elegida para el proceso. Debido a estar utilizando el microprocesador

Raspberry Pi 3, se dispone de una amplia gama de lenguajes de programación, siendo los comúnmente utilizados

Python, C y C++. Con el transcurso de los trabajos realizados, se tomará la decisión de cual lenguaje es el más

adecuado para la aplicación buscada.

Consecuentemente, se procede con el lenguaje de programación Python, ya que se trata del lenguaje en auge en

el momento del desarrollo del presente proyecto. Asimismo, la mayoría de los programas desarrollados se

realizan gracias a la librería dispuesta para el tratamiento de imágenes OpenCV.

La librería OpenCV se trata de una librería de código abierto diseñada por Intel, la cual permite la visión artificial

por ordenador y el procesamiento de imágenes, gracias a una gran variedad de funciones para el dicho procesado

de imagen.

Inicialmente, se procede con la captura de imágenes y su enmascarado en tiempo real. Para ello se realiza un

programa que utiliza el modelo de color HSV (Hue, Saturation, Value – Matiz, Saturación, Valor) para la

creación de una máscara adecuada. El modelo elegido se representa como sigue en la siguiente imagen:

• Matiz: representado por una región circular.

• Saturación y Valor: gobernados por una región triangular. Usualmente, el eje vertical de dicha región se

corresponde con el valor del color, y por otro lado, el eje horizontal con la saturación.

Figura 7.2. Diagrama HSV.

Fuente: https://es.wikipedia.org/wiki/Modelo_de_color_HSV

Para una mayor facilidad en el tratamiento de imágenes y de los valores adecuados, se implementa en el

programa una ventana emergente con diversos indicadores ajustables. A continuación, se muestra el formato

que dispone dicha ventana:

Page 71: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

53 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 7.3. Ventana de control de los parámetros HSV.

Asimismo para averiguar los distintos valores de HSV de los posibles colores a hallar en programas postetiores,

se realiza un ejemplo con diferentes rotuladores de colores, obteniendo como resultado las distintas máscaras

mostradas seguidamente:

• Color verde:

Figura 7.4. Detección del color verde.

• Color azul:

Figura 7.5. Detección del color azul.

• Color magenta:

Page 72: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Programación

54

Figura 7.6. Detección del color magenta.

• Color amarillo:

Figura 7.7. Detección del color amarillo.

Dicho de otro modo, se recopilan los siguientes datos relevantes sobre los valores de HSV de los diversos colores

captados por la cámara del microprocesador:

Tabla 2. Tabla de los distintos valores de HSV para diversos colores.

Finalmente, cabe destacar que el enmascara se realiza en tiempo real en todo momento, es decir, la cámara se

sitúa en modo de video reproduciendo continuamente lo que se capta, y en la ventana de la máscara se realiza

en el instante el filtrado de la imagen recibida.

El programa implementado queda finalmente de la siguiente forma:

import serial

import cv2

import numpy as np

cap = cv2.VideoCapture(0)

def nothing(x):

pass

Máx. Mín. Máx. Mín. Máx. Mín.

Verde 0 43 77 255 45 255

Azul 80 147 35 255 42 202

Magenta 161 255 49 176 0 166

Amarillo 40 80 26 168 31 145

H S V

Page 73: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

55 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

#Creamos una ventana llamada ‘image’ en la que habra todos los

sliders

cv2.namedWindow(‘image’)

cv2.createTrackbar(‘Hue Minimo’,’image’,0,255,nothing)

cv2.createTrackbar(‘Hue Maximo’,’image’,0,255,nothing)

cv2.createTrackbar(‘Saturation Minimo’,’image’,0,255,nothing)

cv2.createTrackbar(‘Saturation Maximo’,’image’,0,255,nothing)

cv2.createTrackbar(‘Value Minimo’,’image’,0,255,nothing)

cv2.createTrackbar(‘Value Maximo’,’image’,0,255,nothing)

while(1):

_,frame = cap.read() #Leer un frame

frame = cv2.resize(frame, (0,0), fx=0.9, fy=0.9)

hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) #Convertirlo a

espacio de color HSV

#Los valores maximo y minimo de H,S y V se guardan en funcion

de la posicion de los sliders

hMin = cv2.getTrackbarPos(‘Hue Minimo’,’image’)

hMax = cv2.getTrackbarPos(‘Hue Maximo’,’image’)

sMin = cv2.getTrackbarPos(‘Saturation Minimo’,’image’)

sMax = cv2.getTrackbarPos(‘Saturation Maximo’,’image’)

vMin = cv2.getTrackbarPos(‘Value Minimo’,’image’)

vMax = cv2.getTrackbarPos(‘Value Maximo’,’image’)

#Se crea un array con las posiciones minimas y maximas

lower=np.array([hMin,sMin,vMin])

upper=np.array([hMax,sMax,vMax])

#Deteccion de colores

mask = cv2.inRange(hsv, lower, upper)

#Mostrar los resultados y salir

cv2.imshow(‘camara’,frame)

cv2.imshow(‘mask’,mask)

k = cv2.waitKey(5) & 0xFF

if k == 27:

break

cv2.destroyAllWindows()

Una vez compilado y asegurado el correcto funcionamiento dicho programa, se va un paso más allá, localizando

el centro y la posición del objeto localizado por la máscara. La metodología a seguir parte de una idea básica:

hallar el centro de la región diferenciada en la máscara, y a su vez localizar el píxel que corresponde para

determinar la posición del mismo.

Consecuentemente, ahora cobra sentido el programa realizado anteriormente para la determinación de los

valores de HSV, ya que como se muestra en las siguientes imágenes, una vez aplicado el filtro, es cuando se

realiza la detección de la distribución de píxeles, para así localizar su centro.

• Color verde:

Page 74: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Programación

56

Figura 7.8. Detección de la posición para el color verde.

• Color magenta:

Figura 7.9. Detección de la posición para el color magenta.

Como se ha remarcado anteriormente, todo el proceso se realiza en tiempo real, por lo que es posible modificar

la posición del objeto del color deseado, de tal manera que se irá recalculando en todo momento el centro del

objeto. Como ejemplo ilustrativo, se ha modificado la posición del rotulador para demostrar dicha premisa.

Figura 7.10. Detección de la posición para el color magenta en diferente disposiciñon.

De igual manera que el caso anterior, se muestra el programa utilizado para llevar a cabo el filtrado de las

imágenes, así como su posicionamiento:

import cv2

import numpy as np

#Iniciamos la camara

captura = cv2.VideoCapture(0)

while(1):

Page 75: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

57 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

#Capturamos una imagen y la convertimos de RGB -> HSV

_, imagen = captura.read()

# Para reducir la resolucion y asi que la imagen vaya mas

rapido

imagen = cv2.resize(imagen, (0,0), fx=0.5, fy=0.5)

hsv = cv2.cvtColor(imagen, cv2.COLOR_BGR2HSV)

#Establecemos el rango de colores que vamos a detectar

#En este caso de verde oscuro a verde-azulado claro

verde_bajos = np.array([0,115,110], dtype=np.uint8)

verde_altos = np.array([52, 255, 255], dtype=np.uint8)

#Crear una mascara con solo los pixeles dentro del rango de

verdes

mask = cv2.inRange(hsv, verde_bajos, verde_altos)

#Encontrar el area de los objetos que detecta la camara

moments = cv2.moments(mask)

area = moments[’m00’]

#Descomentar para ver el area por pantalla

#print area

if(area > 2000):

#Buscamos el centro x, y del objeto

x = int(moments[’m10’]/moments[’m00’])

y = int(moments[’m01’]/moments[’m00’])

#Mostramos sus coordenadas por pantalla

#print “x = “, x

#print “y = “, y

#Dibujamos una marca en el centro del objeto

cv2.rectangle(imagen, (x-5, y-5), (x+5, y+5),(0,0,255),

2)

cv2.putText(imagen, “pos:”+ str(x)+”,”+str(y),

(x+10,y+10), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255), 2)

#Mostramos la imagen original con la marca del centro y

#la mascara

cv2.imshow(‘mask’, mask)

cv2.imshow(‘Camara’, imagen)

#tecla = cv2.waitKey(5) & 0xFF

if cv2.waitKey(1) & 0xFF == ord(‘q’):

captura.release()

break

Page 76: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Programación

58

cv2.destroyAllWindows()

Definido el tratamiento de imágenes, el siguiente paso es combinar dicho proceso con el movimiento de los

servomotores. Aquí es donde se halla el primer problema en todo el planteamiento del proyecto, ya que resulta

complicada la captación de imagen en tiempo real a la vez que la realización el movimiento en los actuadores

para el control del plato. Igualmente, los tiempos de ejecución se disparan si se combinan ambos procedimientos.

Debido a lo anteriormente demostrado, se decide modificar el lenguaje de programación a C++, siendo un

lenguaje mucho más rápido que el anterior. C++ se trata de un lenguaje compilado, sin embargo; Python se

caracteriza por ser un lenguaje interpretado, lo que de antemano pronostica una mayor eficiencia en el lenguaje

C++. Aun así, se decide instaurar un programa, el cual para un mismo resultado final, se programe con los dos

lenguajes planteados.

La estructura a seguir por el programa es básica; en primer lugar se captura una imagen gracias a la cámara de

la Raspberry Pi, se le realiza un filtrado para pasar del modelo RGB al blanco y negro, y finalmente se le somete

a un filtro gaussiano.

• Python:

El programa es realizado en varias ocasiones y el tiempo de ejecución coincide en todas, 50 ms.

#Se importan librerias

from picamera.array import PiRGBArray

from picamera import PiCamera

import time

from time import time

import cv2

#Inicializar camara

camera=PiCamera()

camera.resolution=(640,480)

camera.framerate=32

rawCapture = PiRGBArray(camera, size = 640,480)

#Se toma tiempo inicial

tiempo_inicial=time()

for frame in camera.capture_continuous(rawCaputre,

format=’bgr’, use_video_port=True):

image=frame.array #Se toma un frame de la camara

image=cv2.cvtColor(image,cv2.COLOR_RGB2GRAY) #Se pasa a

escala de grises

image=cv2.GaussianBlur(image,ksize=(9,9), sigmax=0) #Filtro

gausiano

tiempo_final=time() #Se toma tiempo final

tiempo ejecucion=tiempo_final – tiempo_inicial #Se calcula

tiempo total

print ‘El tiempo de ejecucion fue: ‘, tiempo_ejecucion #Se

muestra tiempo total

break

• C++:

Compilando el programa varias veces, se alcanza un tiempo de ejecución de 30 ms.

Page 77: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

59 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

#include <stdio.h>

#include <time.h>

//Libreria camara

#include “RaspiCamCV.h”

//Librerias tratamiento imagen OpenCV

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/imgproc/imgproc_c.h>

using namespace cv;

using namespace std;

//Resolucion de la foto

int width = 640;

int height = 480;

//Declaracion de estructura camara

RaspiCamCvCapture * camara;

//Variables para calcular el tiempo

long int start_time=0;

long int time_difference=0;

struct timespec gettime_now;

//Variables de tipo imagen

Mat imagen, imagen2;

//PROGRAMA PRINCIPAL

int main(int argc, char** argv){

//Parametros de configuracion de la camara

RASPIVID_CONFIG *

config=(RASPIVID_CONFIG*)malloc(sizeof(RASPIVID_CONFIG));

config->width=width;

config->height=height;

config->bitrate=0;

config->framerate=0;

config->monochrome=1;

//Configuracion de camara

camara = raspiCamCvCreateCameraCapture2(0,config);

//Se empieza a contar tiempo

clock_gettime(CLOCK_REALTIME,&gettime_now);

start_time = gettime_now.tv_nsec / 1000000; //Obtener tiempo en

microsegundos

//Capturar imagen en gris

imagen=cv::cvarrToMat(raspiCamCvQueryFrame(camara));

//Funcion para aplicar filtro gaussiano

GaussianBlur (imagen, imagen2, Size(9,9),2 ,2);

clock_gettime(CLOCK_REALTIME,&gettime_now);

time_difference = gettime_now.tv_nsec / 1000000 - start_time;

printf( “El tiempo de ejecucion fue: %li \n” ,

time_difference);

}

Finalmente, se halla una pequeña diferencia entre tiempos de ejecución entre los dos lenguajes. Es cierto que la

Page 78: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Programación

60

variación no es notablemente significativa, pero aunado con el hecho de la inalcanzable unión entre el

movimiento de los servomotores y la detección en tiempo real de la posición de la bola, se decide definitivamente

la programación en C++.

Consecuentemente, se inicia de nuevo el proceso de implementación de un programa para el procesado de

imágenes. Para ello, se consta de la librería anteriormente nombrada OpenCV, y además, tras una búsqueda por

las diversas opciones desarrolladas en el mercado, se localiza una librería que cumple indudablemente con las

prestaciones buscadas en el presente proyecto, se trata de la librería “Raspicam”, desarrollada en la Universidad

de Córdoba. Con la incorporación de ésta a los programas desarrollados, se consigue el control de la cámara en

el lenguaje C++.

“Raspicam” dispone de un conjunto de funciones que permiten operar con la cámara según se convenga, como

puede ser el encendido y apagado de la misma, la captura de imágenes o simplemente la implementación de

varios filtros para el correcto tratamiento de la imagen captada.

Para la consecución del programa, se realizan varias etapas en el proceso, ya que como es casos anteriores, es

muy importante el tiempo de ejecución del cada una de ellas:

• Configuración de la cámara.

Esta operación se realiza a través de la función Camera.set(). En dicho proceso se determina el tamaño de

la imagen capturada, considerando que cuanto más pequeña sea la misma, menos píxeles será necesario

analizar en un futuro para el proceso de control.

• Iniciación de la cámara.

Camera.open() es la función que desempeña el encendido de la cámara para que comience a capturar

imágenes. Su valor de retorno de trata de una variable booleana, siendo 1 en caso satisfactorio, y 0 en caso

contrario.

• Captación y guardado de frames.

El siguiente paso natural del programa es capturar y guardar una imagen. Para dicho proceso se hace uso de

la función Camera.grab() para almacenar una única imagen de todas las posibles detectadas por la cámara.

Consecutivamente se utiliza la función Camera.retrieve(image) para poder asignar a la variable image dicha

imagen guardada en el paso anterior.

• Aplicación de filtros: B&N y gaussiano.

Como se vio en el desarrollo de los programas desarrollados en el entorno Python, el tratamiento de

imágenes mediante máscaras es importantísimo para un posterior procesado de la imagen, y conllevando

con ello un adecuado control. Tal es así, que se exponen las funciones cvtColor y GaussianBlur() para la

aplicación de un filtro B&N y otro gaussiano respectivamente.

• Búsqueda de la bola.

Page 79: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

61 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Una función muy útil para alcanzar el objetivo marcado al principio del proyecto, es la denominada

HoughCircles(). Ésta es la encargada de buscar circunferencia sobre una imagen pasada por parámetro,

almacenado los valores de las coordenadas X e Y del centro y el radio de la misma.

Para una determinación de dichos parámetros de manera más visual, se realiza el remarcado de la

circunferencia y su centro gracias a la función circle().

Finalmente, una vez realizados todos los pasos anteriores, habiéndose hallado satisfactoriamente la posición de

la pelota, se calcula el tiempo de ejecución de cada uno de ellos. Gracias a la función clock_gettime(), incluida

en la librería time.h, se determinan los tiempos empleados en la captura y tratamiento de la imagen guardada:

Tabla 3. Tiempos de ejecución para la librería “raspicam.h”.

A la vista de los resultados obtenidos, con los excesivamente elevados tiempos de procesamiento de la imagen,

resulta de vital importancia la búsqueda de un nuevo método de ejecución. El principal inconveniente de la

librería utilizada es causado por las funciones de tratamiento de imagen, las cuales ocupan casi las dos tercias

partes del tiempo empleado.

Consecutivamente, se prosigue en la búsqueda de una librería aún más rápida que la anterior, localizándose la

llamada “RaspiCamCV” desarrollada por Robidouille. Se trabaja de manera similar al caso anterior, iniciándose

con el encendido de la cámara.

Como factor característico, cabe destacar la posibilidad de la captura directa de la imagen en blanco y negro

gracias a la variable monochrome, eliminando así una etapa respecto al caso anterior. La cámara se inicia debido

a la función raspiCamCvCreateCameraCapture2().

Por otro lado, para ser capaces de capturar la imagen se hace uso de la función raspicamCVQueryFrame(),

obteniéndose la imagen en formato IplImage. Desgraciadamente, la librería OpenCV trabajo bajo el formato

Mat, por lo que es necesario transformar la imagen gracias a la función cv::cvarrToMat().

Similarmente al caso anterior, se determinan los tiempos de ejecución de cada una de las fases desarrolladas en

la captura y procesado de imágenes según diversos ejemplos encontrados:

Tiempo (ms)

Captura de la imagen 100

RGB --> B&N 10

B&N --> Gaussiano 17

Posición de la bola 34

TOTAL 161

Page 80: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Programación

62

Tabla 4. Tiempos de ejecución para la librería “RaspiCamCV.h”

Como conclusión y dados los resultados obtenidos, no cabe duda en utilizar la última librería explicada.

7.3 Evaluación del control del sistema

Una vez determinado todo el proceso de modelado computacional del sistema Ball and Plate, dada la captación

y el tratamiento de imágenes, se procede a la implementación del sistema de control en tiempo discreto expuesto

en la ecuación (5.31).

En primer lugar, es necesario la determinación del punto de referencia o consigna del sistema objeto de estudio.

De manera lógica, se toma el centro del plato para dicho propósito, ya que se buscará que la pelota se mantenga

siempre en dicho lugar.

Asimismo, para la definir el error cometido en la posición de la pelota respecto al centro del plato, se hace uso

de la función anteriormente descrita HoughCircles() que devuelve como variables las coordenadas x e y de la

posición de la pelota. El error viene determinado por la diferencia entre el valor de referencia y el valor medido

por dicha función:

Seguidamente, se aplica la ley de control del PID en modo discreto a partir de los errores calculados. Resaltar el

hecho que en las próximas demostraciones solo se tendrá en cuenta la coordenada x, ya que el procedimiento

para la variable y es exactamente igual.

Para realizar una estructura de control lo más limpia y legible posible, se decide desarrollar una función

denominada PIDX(float inputX) la cual recibe como parámetro el error medido según el punto de referencia, y

determina qué posición debe alcanzar el actuador que gobierna la coordenada x (servoX).

Consecuentemente al proceso detallado, el primer paso que llevar a cabo es el cálculo de los términos que

conforman el controlador según la ley de control (5.31).

La acción proporcional se halla como el producto entre el error medido inputX y la constante de proporcionalidad

PX:

A continuación, para la acción integral se realiza el sumatorio de la acción integral de la etapa previa y el error

cometido multiplicado por la constante de integración IX, así como por el tiempo de muestreo T, como se muestra

en la siguiente expresión:

En último lugar, se calcula el término correspondiente a la acción derivativa, cuantificado como la diferencia

entre el error medido y el error cometido en la etapa previa, multiplicado por la constante derivativa DX y

finalmente dividido entre el tiempo de muestreo T estipulado:

Tiempo (ms)

Captura de la imagen 2

Filtro Gaussiano 17

Posición de la bola 34

TOTAL 53

Page 81: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

63 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Gracias al uso de bucles iterativos, se pueden determinar las variables necesarias de las etapas previas para

realizar los cálculos necesarios en la definición de cada término. Estos valores son los almacenados en sus

correspondientes variables:

Consecuentemente, para determinar la salida del controlador, es decir, el ángulo que debe ser enviado al

actuador, se realiza el sumatorio de los términos proporcional, integral y derivativo:

Paralelamente, se detecta que es posible dañar los servomotores si el valor de la salida excede un valor máximo

o mínimo, ya que podrían forzar un ángulo inalcanzable por los servomotores. Para solucionar dicho

inconveniente, se limita la salida según un rango de valores, sobrescribiendo sobre la variable si se produce el

caso:

Como conclusión, se retorna el ángulo que debe gobernar al actuador:

Cabe destacar, que el ángulo que se produce tras esta acción está referenciado según la posición inicial, por lo

que para realizar el correcto control de los actuadores se debe restar la acción de control calculada a la posición

de referencia inicial anguloX y anguloY.

7.4 Funcionamiento y control de los actuadores

El servomotor se trata de un motor eléctrico donde es posible controlar tanto la velocidad como el giro del motor.

Para nuestra aplicación, se fijará la velocidad de movimiento de los servos en todo momento y se tomará como

variable de control de salida el ángulo de dicho actuador.

El funcionamiento del servomotor se caracteriza por ser regido por un tren de pulsos, es decir, el ángulo de salida

depende únicamente de la duración del pulso que recibe como señal de entrada. Ciertamente, se sabe que cada

servomotor tiene sus propios valores de pulso máximo y mínimo, pero los usualmente usados son los expuestos

en el siguiente esquema de operación:

Page 82: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Programación

64

Figura 7.11. Funcionamiento de los servos utilizados

Fuente: http://www.areatecnologia.com/electricidad/servomotor.html

Para un pulso de 1 ms de duración, el servomotor se mantendrá en 0º, en cambio, para un pulso de 2 ms, cambiará

su posición hasta los 180º. Las posiciones intermedias se realizan mediante una extrapolación de esta relación,

como, por ejemplo, para un pulso de 1,25 ms el servomotor fijará su posición en 45º. Cabe destacar que es

necesario mandar continuamente el tren de pulsos con la longitud deseada, ya que una vez que deje de tomar

como señal de entrada dicho pulso, se volverá a la posición de reposo. Asimismo, si existiese una fuerza externa

que pretendiese modificar la posición de dicho servo, él mismo opondría resistencia al cambio gracias a la

continuada orden de estar en dicha posición.

Una vez explicado brevemente el funcionamiento de los actuadores, se requiere el análisis de su programación

con el microprocesador Raspberry Pi. Al igual que en casos anteriores, se realiza una extensa búsqueda en la

red para localizar la librería de generación de señales PWM más adecuada para las prestaciones del prototipo

desarrollado, hallando la denominada Pigpio.

La librería Pigpio aporta un sinfín de funciones capaces de configurar los pines GPIO para ser usados como una

salida de PWM. En primer lugar, se deben definir cuales pines desempeñarán dichas salidas PWM, que cotejando

el diagrama de los diversos pines del microcontrolador se determina que serán los pines GPIO4 y GPIO17.

Seguidamente, gracias a la función gpioInitialise() es posible inicializar los pines elegidos como pines de PWM.

Simplemente destacar el hecho que si se encontrase algún error, la función devuelve el valor -1.

Una vez inicializados los pines como pines PWM, se procede a la generación de la señal, gracias a la función

gpioServo(). Las señales PWM generadas se caracterizan por tener una frecuencia de 50 Hz, la cual es la misma

a la que trabajan los actuadores, suprimiendo el hecho de tener que cambiarla, consiguiendo el correcto

funcionamiento de los mismos. Para poder invocar a la función, es necesario pasar como parámetro el pin GPIO

donde se quiere generar la señal, servoX y servoY, y el tiempo del pulso en microsegundos, posx y posy

respectivamente.

Paralelamente, se debe tener en cuenta que el plato tiene que estar en posición inicial, por lo que dicho de otra

manera, los ángulos medidos con referencia al sistema de coordenadas considerado, eje x e y, deben ser nulos.

Dichos valores se toman empíricamente resultando ser los siguientes:

Una vez desarrollada la estructura principal del programa que gobierna el movimiento de los actuadores, hay

Page 83: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

65 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

que hacer hincapié en un hecho que se descubre en la implementación del mismo. Cuando se realizan variaciones

pequeñas de los ángulos de entrada, aproximadamente menores de 15º, los servomotores no son capaces de

asumirlas debido a que la librería Pigpio genera las señales PWM por programa.

La Raspberry Pi realiza la normal compilación y ejecución del programa línea por línea, generando la señal

PWM. Dicha metodología no incurriría en problema si no se estuviese tratando con un sistema multitasking, ya

que se producen interrupciones y otras operaciones que es preciso atender, lo que provoca que los tiempos de la

señal PWM puedan verse afectados y así incurrir en un leve ruido.

Consiguientemente, se busca una solución para poder imputar todo el rango de ángulos deseados como entradas

al servomotor. Se determina que para que el actuador sea capaz de lograr alcanzar el ángulo requerido,

inicialmente se le enviará un ángulo mayor del final, en el caso del programa implementado sería ampliar el

pulso unos 30 µs, para posteriormente poder rectificar y enviar de nuevo el ángulo deseado.

Finalmente, cabe puntualizar el hecho de la incorporación de la función time_sleep(), que hace un pausado en la

ejecución del programa. Dicha pausa permite al actuador alcanzar la posición demandada desde cualquier punto

en que se encuentre. Asimismo, posteriormente se demuestra que el tiempo en exceso que se le incorpora al

programa, es totalmente asumible por el control de sistema.

Page 84: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Programación

66

Page 85: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

8 PRUEBAS Y RESULTADOS

inalmente para la comprobación de todos los trabajos llevados a cabo a lo largo del proyecto, se realizan

diversas pruebas en cuando a la programación realizada, así como la aplicación de la teoría de control para

el diseño de los controladores mostrados en el capítulo 5 del presente documento.

Cabe destacar el inconveniente de la implementación del programa desarrollado para su prueba en el prototipo

real, debido a la imposibilidad de instalación de una librería necesaria para todo el proceso. Es por lo cual, que

se decide realizar un estudio teórico de la respuesta del sistema ante escalón unitario una vez controlado por

diferentes métodos que ofrece la herramienta Matlab.

8.1 Pruebas realizadas con Raspberry Pi 3

En el presente proyecto se han llevado a cabo diversos lenguajes de programación para la implementación de

los programas desarrollados a lo largo de todo el desarrollo, resultando finalmente el siguiente programa para

concluir el perfecto desarrollo de todos los trabajos desarrollados:

// -I/home/pi/git/robidouille/raspicam_cv

// -L/home/pi/git/robidouille/raspicam_cv -lraspicamcv

// -L/home/pi/git/raspberrypi/userland/build/lib -lmmal_core -lmmal -l

mmal_util -lvcos -lbcm_host

#include <opencv/cv.h>

#include <opencv/highgui.h>

#include <stdio.h>

#include <unistd.h>

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

#include <signal.h>

#include <vector>

#include <unistd.h>

#include <time.h>

#include <fstream>

//Libreria camara

#include “RaspiCamCV.h”

//Librerias tratamiento imagen OpenCV

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/imgproc/imgproc_c.h>

//Librerias servomotor

#include <pigpio.h>

F

Page 86: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

68

using namespace cv;

using namespace std;

//Resolucion de la foto

int width=480;

int height=360;

//Declaracion de estructura camara

RaspiCamCvCapture*camara;

int run=1; //Variable para bucle infinito

int ciclo=0; //Contador de ciclos dentro del reacuadro consigna

//Variables para calcular el tiempo

long int start_time=0;

long int time_difference=0;

struct timespec gettime_now;

//Numero total de ciculos en imagen

int numcirculos=0;

//Pines de los servomotores

int servoX=17, servoY=4;

int controlX=0, controlY=0;

//Error en X y en Y

float eX=0.0, eY=0.0;

//Posicion de la pelota

float medida_1X=0, medida_2X=0, medida_1Y=0,medida_2Y=0;

//Varables PID en X

float PX=0.45, IX=0.2, DX=0.47, T=0.1, maxOutputX=100.0, minOutputX=-100.0;

float proporcionalX=0, integralX=0, derivativoX=0, lastInputX=0,

integralSumX=0, salidaX=0;

//Varables PID en Y

float PY=0.47, IY=0.2, DY=0.5, maxOutputY=100.0, minOutputY=-100.0;

float proporcionalY=0, integralY=0, derivativoY=0, lastInputY=0,

integralSumY=0, salidaY=0;

//Posicion consigna

const float consignaX=220, consignaY=180;

//Angulos de posicion 0

const int anguloX=1755;

const int anguloY=1760;

//Funcion para detener el bucle principal del programa al pulsar Ctrl+C

void stop(int signum){

run=0;

}

//Cabecera funciones

void iniciar_camara(); //Funciones para iniciar la camara

void posicion_bola(); //Funcion para obtener posicion pelota

bool iniciar_servos(); //Funcion para iniciar servomotores

void posicion_servos(int posx, int posy); //Funcion para colocar los servos

en posicion deseada

Page 87: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

69 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

void desconectar(); //Funcion para desconectar camara y servomotores

float PIDX(float inputX); //Calculo control PID de la posicion X

float PIDY(float inputY); //Calculo control PID de la posicion y

//Variables de tipo imagen

Mat imagen, imagen2;

//PROGRAMA PRINCIPAL

int main(int argc, char** argv){

iniciar_camara(); //LLamada a funcion de inicializar camara

iniciar_servos(); //Llamada a funcion de inicializar motores

while(run){

//Se empieza a contar tiempo

clock_gettime(CLOCK_REALTIME,&gettime_now);

start_time=gettime_now.tv_nsec / 1000000; //Obtener tiempo en

microsegundos

//Funcion para tomar una imagen y obtener coordenadas X e Y de la

bola

posicion_bola();

//Caso 1: Hay pelota en el plato

if (numcirculos>0){

//Calculo del error

eX=consignaX-medida_2X;

eY=consignaY-medida_2Y;

cout<<”Error en x: “ <<” || Error en y : “<<eY<<endl;

//Control PID

controlX=anguloX-PIDX(eX);

controlY=anguloY+PIDY(eY);

//Si la pelota esta situada dentro del recuadro consigna durante

25 ciclos seguidos, se asume que la pelota esta

// quieta y se coloca el plato en posicion 0

if((eX<15)&&(eX>-15)&&(eY<15)&&(eY>-15)){

ciclo=ciclo+1; //El plato esta dentro del recuadro y se

cuenta 1 ciclo

if (ciclo>25) ciclo=25;

}else ciclo=0; //Si se sale del recuadro se pone el contador a 0

if(ciclo==24){

Page 88: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

70

posicion_servos(anguloX,anguloY);

}

//Si no se han contado 25 ciclos seguidos dentro del recuadro, se

aplica control

if(ciclo<24){

//Se aplica la posicion calculada por los servomotores

posicion_servos(controlX,controlY);

}

}

//Caso 2: No hay pelota

if(numcirculos==0){

//Plato con angulos 0

posicion_servos(anguloX,anguloY);

integralSumX=0;

integralY=0;

cout<<”****NO SE DETECTA PELOTA****”<<endl;

}

//Obtener tiempo al finalizar todas las operaciones en milisegundos

clock_gettime(CLOCK_REALTIME,&gettime_now);

//Se calcula el tiempo que ha pasado desde que se empieza a contar

time_difference=gettime_now.tv_nsec/1000000-start_time;

cout<<”Tiempo: “<<time_difference<<” ms”<<endl;

}//Fin del bucle

desconectar(); //Funcion para desconectar motores

}// Fin del main

void iniciar_camara(){

//Parametros de configuracion de la camara

RASPIVID_CONFIG*config=(RASPIVID_CONFIG*)malloc(sizeof(RASPIVID_CONFIG))

;

config->width=width;

config->height=height;

config->bitrate=0;

config->framerate=0;

config->monochrome=1;

//Configuracion de camara

camara = raspiCamCvCreateCameraCapture2(0,config);

}

void posicion_bola(){

//Capturar imagen en gris

imagen=cv::cvarrToMat(raspiCamCvQueryFrame(camara));

//Funcion para aplicar filtro Gaussiano

GaussianBlur(imagen,imagen2,Size(9,9),2,2);

Page 89: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

71 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

//Parametro donde se guarda las coordenadas del centro y el radio de la

pelota

vector<Vec3f>circles;

//Funcion para encontrar la pelota

HoughCircles(imagen2, circles, CV_HOUGH_GRADIENT, 2, 100, 100, 75, 0,

40);

//Número de circulos encontrados en la imagen, solo deberia encontrar uno

numcirculos=circles.size();

//Para cada circulo que encuentra en la imagen

for(size_t i=0; i<circles.size();i++){

//Obtener coordenadas del centro del circulo y guardarlas en la

variable circles

Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));

//Obtener posicion del centro de la pelota

medida_2X=circles[i][0];

medida_2Y=circles[i][1];

cout<<”Posicion pelota [x,y]:

[”<<circles[i][0]<<”,”<<circles[i][1]<<”]”<<endl;

}

}

//Funcion para inicializar los servomotores

bool iniciar_servos(){

//Preparacion de los pines GPIO

if (gpioInitialise()<0) return -1;

//Funcion que permite terminar el bucle principal cuando se pulsa Ctrl+C

gpioSetSignalFunc(SIGINT, stop);

printf(“Enviando señal PWM al puerto GPIO”);

printf(“\nPulsar control+C para detener.\n”);

//Servomotores en posicion inicial

posicion_servos(anguloX,anguloY);

return 0;

}

//Funcion para colocar los motores en la posicion deseada

void posicion_servos(int posx, int posy){

gpioServo(servoX, posx+30);

gpioServo(servoY, posy+30);

time_sleep(0.025);

gpioServo(servoX,posx);

gpioServo(servoY,posy);

}

//Funcion para desconectar camara y servomotores

Page 90: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

72

void desconectar(){

printf(“\nDesconectando\n”);

//Se desconectan los servomotores

gpioServo(servoX,0);

gpioServo(servoY,0);

//Sedesconectan los pines GPIO

gpioTerminate();

}

//Control PID en variable X

float PIDX(float inputX){

proporcionalX=PX*inputX; //Calculo parte proporcional

integralX=integralSumX+IX*inputX*T; //Calculo parte integral

derivativoX=DX*(inputX-lastInputX)/T; //Calculo parte derivativa

integralSumX=integralX; //Se acumula valor integral

lastInputX=inputX; //Se guarda el valor del error anterior

salidaX=proporcionalX+integralX+derivativoX; //Suma de las tres partes

if(salidaX>maxOutputX) salidaX=maxOutputX; //Limite maximo

if(salidaX<minOutputX) salidaX=minOutputX; //Limite minimo

return(salidaX); //Se devuelve valor de control

}

//Control PID en variable Y

float PIDY(float inputY){

proporcionalY=PY*inputY; //Calculo parte proporcional

integralY=integralSumY+IY*inputY*T; //Calculo parte integral

derivativoY=DY*(inputY-lastInputY)/T; //Calculo parte derivativa

integralSumY=integralY; //Se acumula valor integral

lastInputY=inputY; //Se guarda el valor del error anterior

salidaY=proporcionalY+integralY+derivativoY; //Suma de las tres partes

if(salidaY>maxOutputY) salidaY=maxOutputY; //Limite maximo

if(salidaY<minOutputY) salidaY=minOutputY; //Limite minimo

return(salidaY); //Se devuelve valor de control

}

Una vez diseñada la estructura del programa, indicando parámetros de las variables del controlador

aleatoriamente, ya que se pretenden hallar experimentalmente, se hallan diversos problemas con la instalación

de la librería de control “RaspiCamVC.h”, siendo posible su instalación y por lo tanto el correcto desarrollo del

programa, siendo imposible su correcta verificación de funcionamiento. Para suplir los problemas surgidos en

la misma, se pretende que al menos se pueda calcular la ley de control teóricamente, por lo que se procede a

Page 91: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

73 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

realizar el trabajo de los próximos capítulos.

8.2 Diseño de controladores mediante Matlab

El presente apartado se comienza retomando la expresión teórica correspondiente al controlador PID, cuyas

variables se ven representadas en el diagrama de bloques expuesto a continuación:

(8.1)

De dicha expresión resulta la señal de control, viniendo determinada por el sumatorio de tres términos:

- El término proporcional P, siendo proporcional al error cometido y relacionada con la ganancia proporcional

K.

- El término integral I, proporcional a la integral del error y relacionado con el tiempo de integración 𝑇𝑖.

- El término derivativo D, proporcional a la derivada del error y relacionada con el tiempo de derivación 𝑇𝑑.

Figura 8.1. Lazo de control realimentado.

Asimismo, para poder demostrar los efectos de las acciones que dota el controlador al sistema se representan las

siguientes gráficas, donde se ha considerado la respuesta temporal 𝑦(𝑡) de un sistema de tercer orden para una

variación en escalón unitario de la variable de referencia o punto de referencia.

Figura 8.2. Simulación de un sistema a lazo cerrado con control proporcional.

Si se analiza la respuesta del sistema ante la acción únicamente proporcional, se ve que el aumento de la

sobreoscilación del sistema se encuentra directamente relacionado con el aumento de la constante proporcional

K, es decir, al aumentar K el sistema se hace más oscilatorio.

Page 92: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

74

Figura 8.3. Simulación de un sistema a lazo cerrado con control prporcional integrador (PI).

Por otro lado, al incluir la acción del término integral, se denota que el sistema tiene tendencia a la oscilación de

modo que el tiempo de integración se va reduciendo. Igualmente, a medida que dicho tiempo disminuye se

incrementa el efecto de dicha componente, desapareciendo progresivamente el error en régimen permanente.

Figura 8.4. Simulación de un sistema a lazo cerrado con controlador PID.

Finalmente, en el esquema anterior se muestra el efecto derivador. Cabe destacar que en el ejemplo observado,

tras la elección de los parámetros K y 𝑇𝑖 hacen del sistema posea una sobreoscilación cuando se analiza en lazo

cerrado. Por otro lado, al añadir la acción derivativa, se ratifica que a medida que crece el término derivativo 𝑇𝑑,

aumenta el amortiguamiento, teniendo en cuenta que si el valor del mismo se ve excedido, el amortiguamiento

vuelve a decrecer.

Seguidamente, si se considera que la acción derivadora es posible interpretarse como una predicción basada en

una extrapolación lineal durante el tiempo 𝑇𝑑, como se ha puntualizado previamente, la predicción resulta

inservible si dicho tiempo derivativo se aumente excesivamente respecto del período de oscilación no

amortiguado. A continuación, se muestra la dinámica del sistema relacionada con el 𝑇𝑑 .

Figura 8.5. Comparación del efecto predictivo de la acción derivadora y su relación con la dinámica del sistema.

Consiguientemente, dada la casuística de la imposible instalación de las librerías adecuadas para el correcto

Page 93: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

75 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

funcionamiento del sistema Ball and Plate, se opta por desarrollar los controladores de manera teórica gracias a

la herramienta de Matlab para el estudio y análisis de sistemas lineales según el lugar de las raíces SISOTOOL().

Partiendo de la función de transferencia (5.23) calculada en el capítulo 5 del presente proyecto, se puede empezar

a trabajar la respuesta del sistema ante un escalón unitario, para así poder determinar la estabilidad del mismo.

Asimismo, se toman como especificaciones del sistema las siguientes:

𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑠𝑡𝑎𝑏𝑙𝑒𝑐𝑖𝑚𝑖𝑒𝑛𝑡𝑜 → 𝑡𝑠 = 0.7 𝑠 𝑆𝑜𝑏𝑟𝑒𝑜𝑠𝑐𝑖𝑙𝑎𝑚𝑖𝑒𝑛𝑡𝑜 → 𝑆𝑂(%) ≤ 31%

(8.2)

La morfología de dicha función es la mostrada en la siguiente imagen, representando el diagrama de bloques de

la planta a controlar:

Figura 8.6. Ventana de ejecución sisotool().

Analizando las diversas posibilidades que ofrece la citada función, se decide utilizar el subprograma “Automated

Tuning”, permitiendo la creación de diversos controladores según el sistema implementado.

De este modo, se entiende como ajuste automático de parámetros un método que posibilita el ajuste de las

variables de un controlador de forma automática de tal manera que desee el usuario. Cabe destacar entonces la

gran diferencia entre las técnicas adaptativas, ya que gracias a las mismas se somete a las variables a una

modificación permanente para adecuarlos a las variaciones del proceso controlado.

Page 94: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

76

Figura 8.7. Elección del método de ajuste automático.

La ventana de utilización de dicha función es la mostrada en la imagen anterior. Como se aprecia, permite la

elección de diversas metodologías de control, como puede ser la optimización de los controladores diseñados

manualmente, indicando las especificaciones deseadas, hasta por ejemplo un controlador LQG. En el presente

proyecto se hace uso de la opción “PID Tuning” que da la opción de elección entre el simple controlador

proporcional P, hasta el controlador PID con filtro derivativo.

Page 95: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

77 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 8.8. Elección del tipo de controlador.

El siguiente paso una vez determinado el método elegido, es seleccionar la fórmula a utilizar el “autotuning” del

controlador, siendo los llevados a cabo en el presente proyecto los citados a continuación:

- Approximate MIGO frequency response: calcula los parámetros del controlador en bucle cerrado, dominio

de la frecuencia y utilizando la optimización de ganancia integral restringida en M de bucle cerrado (“M-

constrained integral gain optimization”).

- Approximate MIGO step response: calcula los parámetros del controlador usando la optimización de

ganancia integral restringida de M de bucle abierto, dominio de tiempo.

- Ziegler-Nichols frequency response: calcula los parámetros del controlador desde una tabla de búsqueda de

Ziegler-Nichols, en función de la ganancia final y la frecuencia del sistema.

Page 96: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

78

Figura 8.9. Selección del tipo estimación deseada.

Cabe destacar que la representación del controlador se puede determinar según los siguientes criterios elegidos:

Figura 8.10. Preferencias formato controlador.

En los siguientes capítulos se muestran los resultados de cada uno de los métodos utilizados descritos

anteriormente en la función SISOTOOL() de Matlab.

8.2.1 Método Mejorado de Ajuste por Respuesta al Escalón (Approximate MIGO step response)

Como el propio nombre del mismo controlador describe, el procedimiento llevado a cabo por el mismo define

mediante tres parámetros distintivos la respuesta ante escalón del proceso. Haciendo uso de diversas

consideraciones de robustez, se considera recomendable utilizar dicho método de control para sistemas

monótonos, cuya respuesta característica ante escalón se ve representada por las diferentes salidas mostradas en

Page 97: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

79 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

la siguiente imagen:

Figura 8.11. Respuestas al escalón de procesos esencialmente monótonos.

Consecuentemente, resulta evidente la necesidad de la descripción de lo que resulta ser el concepto de

monotonicidad, para determinar claramente si un sistema posee o no dicha propiedad ante la respuesta al escalón.

Asimismo, sea 𝑔(𝑡) la respuesta impulsiva de un proceso estable, el término monotonicidad 𝑚 se describe

como:

(8.3)

Describiendo brevemente las cualidades del parámetro, el mismo puede tomar valores entre 0 y 1, es decir, si

𝑚 = 1 la respuesta ante escalón resulta ser estrictamente monótona. Por lo tanto, se especifica el valor 𝑚 = 0.8

como valor a partir del cual se trata de un proceso estrictamente monótono.

Asimismo, otro parámetro a tener en cuenta es el módulo máximo de la función de sensibilidad 𝑀𝑠. Gracias al

mismo se realiza una restricción de robustez, por la cual está sujeta la maximización de la ganancia de integración

del controlador 𝑃𝐼, objetivo principal del método descrito. Por consiguiente, se determina que un rango aceptable

tal que 𝑀𝑠 ∈ [1.2 , 2.0], determinando una dependencia indirectamente proporcional, es decir, para menores

valores se produce una mejora en la robustez, penalizada por una disminución de la tasa de rechazo de

perturbaciones de carga.

Por otro lado, asumiendo varias hipótesis para sistemas esencialmente monótonos dados por un conjunto de

funciones de transferencia analizando su respuesta ante escalón, se rigieron unas pautas de ajustes para

controladores 𝑃𝐼 nombradas como MIGO (Approximated MS-constrained Integral Gain Optimization). Como

se pronosticaba inicialmente, dichas reglas o pautas vienen determinadas por tres parámetros obtenidos gracias

a la respuesta al escalón:

• KP: ganancia estática,

• T: constante de tiempo aparente.

Page 98: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

80

• L: tiempo muerto o retardo aparente

Representando gráficamente dichos parámetros determinantes, se obtiene el siguiente esquema del sistema

analizado:

Figura 8.12. Respuesta al escalón unitario de un proceso y procesamiento empleado para determinar los parámetros

𝐾𝑝, 𝑇, 𝐿, 𝐾𝑣.

Consecuentemente, una vez explicado el método teórico utilizado en el diseño de dichos controladores, se

procede a la ejecución del comando de Matlab, aportando la siguiente función de transferencia:

Figura 8.13. Controlador hallado (MIGO step response).

Igualmente, expresando el controlador de otra manera diferente como se especifica en la Figura 8.10.

Preferencias formato controlador. se obtiene:

Figura 8.14. Controlador hallado expresado según sus polos y ceros (MIGO step response).

Se puede observar que el controlador definido por la función posee dos polos reales y un integrador,

caracterizado por una ganancia negativa, compensado la propia ganancia negativa del sistema sin controlador.

Asimismo, se representa el lugar de las raíces del sistema, así como su Bode, con la ganancia y la fase

correspondientes:

Page 99: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

81 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 8.15. Diagrama del lugar de las raíces sin cumplir especificaciones (MIGO step response).

Seguidamente, se representa la respuesta ante escalón del sistema controlado, notándose una ligera

sobreoscilación al principio de la respuesta:

Figura 8.16. Respuesta ante escalón sin cumplir especificaciones (MIGO step response).

De manera más específica, se muestran los valores del sistema correspondientes al tiempo de subida, la

sobreoscilación y el tiempo de establecimiento. Comparándolos con los valores inicialmente requeridos, se

detecta unos tiempos excesivamente altos para las prestaciones que se buscan en el sistema, siendo necesario

que responda rápidamente ante cualquier perturbación surgida.

Page 100: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

82

Figura 8.17. Valor de las especificaciones de la respuesta ante escalón (MIGO step response).

Ajustando la ganancia del controlador en el lugar de las raíces para llegar a un sistema con las especificaciones

marcadas al principio del presente capítulo. Para el ajuste de dicha ganancia se hace uso de gráfica de la respuesta

antes escalón del sistema, donde modificando la ganancia en el lugar de las raíces se va modificando la respuesta

de dicho sistema hasta llegar a las especificaciones deseadas:

Figura 8.18. Respuesta ante escalón cumpliendo especificaciones (MIGO step response).

Mostrando el valor de dichas especificaciones, se obtiene:

Page 101: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

83 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 8.19. Valor de las especificaciones de la respuesta ante escalón (MIGO step response).

Paralelamente, una vez habiendo realizado las modificaciones en la ganancia del sistema en el lugar de las raíces,

queda de la siguiente manera:

Figura 8.20. Diagrama del lugar de las raíces cumpliendo especificaciones (MIGO step response).

Concluyentemente, el controlador hallado muestra la siguiente estructura, aportando un tiempo de

establecimiento de 0,7 segundo y una sobreoscilación menor del 31%:

Figura 8.21. Valor del controlador con reajuste de la ganancia (MIGO step response).

8.2.2 Método Mejorado de Ajuste por Respuesta frecuencial (Approximate MIGO frequency response)

De manera similar al caso anterior, la simulación calcula los parámetros del controlador en bucle cerrado, pero

en este caso en el domino de la frecuencia y utilizando la optimización de ganancia integral restringida en M de

bucle cerrado (“M-constrained integral gain optimization”).

Si se realiza el cálculo del controlador se llega a la siguiente expresión, obteniendo un integrador y dos polos en

Page 102: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

84

el controlador, así como lógicamente una constante proporcional negativa:

Figura 8.22. Controlador hallado (MIGO frequency response).

O lo que expresado de otra manera:

Figura 8.23. Controlador hallado expresado según sus polos y ceros (MIGO frequency response).

Como se observa, tanto en la expresión del controlador, como en la siguiente representación del lugar de las

raíces, el controlador posee un polo doble y un integrador, repitiéndose el caso de una ganancia negativa:

Figura 8.24. Diagrama del lugar de las raíces si cumplir especificaciones (MIGO frequency response).

Consiguientemente, se analiza la respuesta ante escalón del sistema, mostrándose un sistema oscilatorio con una

respuesta la cual posee una excesiva sobreoscilación, así como unos valores elevados de tiempo de

establecimiento para los requisitos buscados inicialmente para el sistema, tal y como se aprecia en la siguiente

simulación:

Page 103: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

85 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 8.25. Respuesta ante escalón sin cumplir especificaciones (MIGO frequency response).

Concretamente, resaltando los valores de las especificaciones buscadas del sistema:

Figura 8.26. Valor de las especificaciones de la respuesta ante escalón (MIGO frequency response).

Tal es así, que se cree en la necesidad de rediseñar el controlador para poder cumplir al menos la especificación

de tiempo de establecimiento, teniendo así un sistema con una respuesta más rápida ante escalón. Similarmente

al caso previo, se hace uso de la respuesta antes escalón y el lugar de las raíces para ir modificando la ganancia

del controlador, obteniendo la respuesta deseada.

Una vez realizado el ajuste necesario, se obtiene la siguiente respuesta frente a escalón:

Page 104: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

86

Figura 8.27. Respuesta ante escalón cumpliendo especificaciones (MIGO frequency response).

Asimismo, si se exponen los valores de las especificaciones alcanzadas, se detecta una sobreoscilación del 7.15%

y un tiempo de establecimiento de 0,7 segundos:

Figura 8.28. Valor de las especificaciones de la respuesta ante escalón (MIGO frequency response).

Igualmente, el lugar de las raíces del sistema finalmente controlado queda la siguiente forma:

Page 105: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

87 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 8.29. Diagrama del lugar de las raíces cumpliendo especificaciones (MIGO frequency response).

Finalmente, se ha obtenido el siguiente controlador, aumentando la ganancia del mismo significativamente para

una respuesta antes escalón mucho más rápida:

Figura 8.30. Valor del controlador con reajuste de la ganancia (MIGO frequency response).

8.2.3 Método de Ziegler-Nichols en base a la Respuesta en Frecuencia

Por último, pero no por ello menos importante, se expone un método basado en una básica caracterización de la

respuesta en frecuencia del sistema controlado, el método desarrollado por Ziegler y Nichols. El diseño del

controlador se caracteriza por localizar un solo punto del lugar de Nyquist del proceso, siendo éste el punto

donde 𝑃(𝑗𝜔) corta por primera vez al eje real negativo, correspondiente a la frecuencia 𝜔180.

Los valores de los parámetros del citado punto es posible determinarlos experimentalmente procediendo de la

siguiente manera: se diseña y conecta al sistema un controlador puramente proporcional cerrando el lazo del

proceso y aumentando de manera gradual la ganancia del controlador hasta que el sistema empieza a oscilar. Es

así, como se halla la ganancia 𝐾0, siendo el periodo de oscilación 𝑇0.

Figura 8.31. Caracterización de la respuesta en frecuencia según Ziegler-Nichols.

Asimismo, los parámetros sugeridos por el método de Ziegler y Nichols que determinan al controlador son los

Page 106: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

88

expuestos en la siguiente tabla, donde además se muestra un valor orientativo del periodo 𝑇𝑝 del modo dominante

de la respuesta a lazo cerrado.

Tabla 5. Parámetros de controladores según Ziegler-Nichols en base a la respuesta en frecuencia.

Seguidamente, una vez determinado el método teórico, se procede a realizar la simulación gracias a la

herramienta sisotool(), determinando un controlador con ganancia negativa, un polo real doble y un integrador,

como se muestra a continuación:

Figura 8.32. Controlador hallado (Método de Ziegler-Nichols).

Representando el sistema con la incorporación del controlador en el lugar de las raíces y su bode

correspondiente:

Figura 8.33. Diagrama del lugar de las raíces si cumplir especificaciones (Método de Ziegler-Nichols).

Consiguientemente, como se ha venido procediendo, se analiza la respuesta ante un escalón unitario del sistema

controlado. Como se observa, se obtiene un sistema oscilatorio no encajando en las especificaciones deseadas:

Page 107: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

89 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 8.34. Respuesta ante escalón sin cumplir especificaciones (Método de Ziegler-Nichols).

Exponiendo los valores de dichos parámetros característicos:

Figura 8.35. Valor de las especificaciones de la respuesta ante escalón (Método de Ziegler-Nichols).

Finalmente, actuando de la misma manera que en casos previos, se va incrementando suavemente el valor de la

ganancia en el lugar de las raíces hasta encontrar el valor de la que más se ajusta a las especificaciones deseadas:

Page 108: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

90

Figura 8.36. Diagrama del lugar de las raíces cumpliendo especificaciones (Método de Ziegler-Nichols).

Consecuentemente, el sistema finalmente controlado con la ganancia ajustada muestra la siguiente respuesta

ante un escalón unitario:

Figura 8.37. Respuesta ante escalón cumpliendo especificaciones (Método de Ziegler-Nichols).

Determinando y detallando las diferentes especificaciones del sistema se denotan en la siguiente gráfica del

sistema controlado:

Page 109: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

91 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

Figura 8.38. Valor de las especificaciones de la respuesta ante escalón (Método de Ziegler-Nichols).

Finalmente, el controlador elegido se muestra a continuación, habiéndose incrementado su ganancia para poder

apaliar de dicho modo el grado de sobreoscilamiento del sistema controlado inicialmente en lazo cerrado:

Figura 8.39. Valor del controlador con reajuste de la ganancia (Método de Ziegler-Nichols).

Page 110: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Pruebas y Resultados

92

Page 111: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

9 CONCLUSIONES

omo conclusión para el presente proyecto, se puede concluir que no se han alcanzado los objetivos

estipulados al inicio del presente proyecto en cuando al sistema de control establecido, ya que no se ha

podido llevar a cabo la implementación de los programas desarrollados para la correcta utilización de la

cámara del microprocesador Raspberry Pi.

Por otro lado, y desde un punto de vista más optimista, se ha desarrollado completamente el prototipo físico de

la plataforma, conservando como premisa principal el bajo costo de todos los elementos utilizados para la

correcta consecución del prototipo final.

Figura 9.1. Estructura final del sistema Ball and Plate.

Por otro lado, es usual encontrar un ruido característico en las señales PWM de los servomotores, hecho por el

cual se debe incurrir en un tiempo de espera de 25 milisegundos que podría penalizar la rapidez del sistema. Para

ello, se ha investigado sobre diferentes soluciones ofertadas actualmente y se ha llegado a la conclusión que la

medida más adecuada para el caso que nos compete sería incorporar al sistema una extensión de la Raspberry

Pi denominada “16-Channel PWM Servo Hat”. Gracias a dicha extensión las señales se generan por hardware,

reduciendo notablemente el ruido que conlleva una señal generada por la propia Raspberry Pi. Por lo tanto, se

podría eliminar el tiempo de pausa implementado en el programa.

A nivel de programación, es evidente que se podrían realizar mejoras para optimizar el programa, siendo la

principal de ellas la elección de otra librería para el uso de la cámara. Una de ella podría ser la extendida OpenCV,

diseñada especialmente para la obtención y el tratamiento de imágenes; sin embargo, hay que tener en cuenta

que debido a la gran cantidad de funciones que porta, se podría incurrir en tiempo de muestreo excesivamente

elevados, por lo que la mejor opción sería la generación de una propia librería a partir de las funciones deseadas

de la misma.

C

Page 112: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Conclusiones

94

Finalmente, como un avance más allá del presente proyecto, se podría crear una interfaz gráfica en la cual el

usuario pudiera seguir en tiempo real el movimiento de la pelota sobre el plato. Hacer hincapié que dicho hecho

aumentaría el tiempo de ejecución del programa, pudiendo poner en peligro la correcta consecución del propio

programa.

Page 113: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

REFERENCIAS

[ 1 ] Quanser – Real time control experiments for education and research.

Disponible en:

http://www.quanser.com. [Último acceso junio 2018].

[ 2 ] Feedback Instruments.

Disponible en:

http://www.feed-backinstruments.com. [Último acceso junio 2018].

[ 3 ] Quanser – Ball and Beam.

Disponible en:

http://www.quanser.com/Products/ball_beam. [Último acceso junio 2018].

[ 4 ] Quanser – Linear Servo Base Unit with Inverted Pendulum.

Disponible en:

http://www.quanser.com/Products/linear_servo_IP02. [Último acceso junio 2018].

[ 5 ] Quanser – 2 DOF Ball and Plate.

Disponible en:

http://www.quanser.com/Products/2dof_ball_balancer [Último acceso junio 2018].

[ 6 ] Feedback Instruments – Digital Pendulum.

Disponible en:

http://www.feedback-instruments.com/products/education/control_instrumentation/digital_pendulum. [Último

acceso junio 2018].

[ 7 ] Feedback Instruments – Ball & Plate Control System.

Disponible en:

http://www.feedbackinstruments.com/products/education/control_instrumentation/ball_plate_control_system

[Último acceso junio 2018].

[ 8 ] DávidH344, proyecto “Ball and Plate Arduino PID control” desarrollado en instructables.

Disponible en:

http:// http://www.instructables.com/id/Ball-and-Plate-Arduino-PID-Control/. [Último acceso junio 2018].

[ 9 ] Análisis y síntesis estructural. Conceptos Generales, Ingeniería Mecánica Aplicada y Computacional

(IMAC).

Disponible en:

http://www.imac.unavarra.es/web_imac/pages/docencia/asignaturas/tm/pdfdoc_th/apuntes/apuntes_tema2.pdf.

[Último acceso junio 2018].

[ 10 ] Vivas Venegas, Carlos. Geometría y Cinemática: Control y Programación de Robots. Escuela Superior de

Page 114: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Referencias

96

Ingenieros de Sevilla.

Disponible en:

http://www.esi2.us.es/~vivas/ayr2iaei/CIN_ROB.pdf [Último acceso junio 2018].

[ 11 ] Lucas Pastor Duran y Hector Rubio Gracia. Diseño e implementación de un sistema de levitación

magnética. Trabajo de final de grado, UPC junio 2015.

Disponible en:

http://docplayer.es/58494819-Indice-memoria-capitulo-1-introduccion-5-capitulo-2-ingenieria-de-la-

concepcion-capitulo-3-ingenieria-del-desarrollo.html [Último acceso junio 2018].

[ 12 ] RS-Online.

Disponible en:

http://es.rs-online.com/web/ [Último acceso junio 2018].

[ 13 ] Arduino.

Disponible en:

http://www.arduino.cc [Último acceso junio 2018].

[ 14 ] Raspberry Pi.

Disponible en:

https://www.raspberrypi.org/ [Último acceso junio 2018].

[ 15 ] Ronald Roa, Diseño de fuentes conmutadas.

Disponible en:

http://disenodefuentesclasedelenguaje.blogspot.com.es/2012_10_01_archive.html [Último acceso junio 2018].

[ 16 ] Tienda on-line BricoGeek.

Disponible en:

http://tienda.bricogeek.com [Último acceso junio 2018].

[ 17 ] OpenCv library.

Disponible en:

http://www.code.open.cv.org [Último acceso junio 2018].

[ 18 ] Valkov, E. Raspberry Pi Camera with OpenCV. Robot taming Services, 2014.

Disponible en:

https://robidouille.wordpress.com/2013/10/19/raspberry-pi-camera-with-opencv/ [Último acceso junio 2018].

[ 19 ] Abyz. “The pigpio library”.

Disponible en:

http://abyz.co.uk/rpi/pigpio/index.html [Último acceso junio 2018].

[ 20 ] Muñoz Salinas, Rafael. Raspicam: c++ API for using Raspberry camera with/without OpenCV.

Disponible en:

https://www.uco.es/investiga/grupos/ava/node/40 [Último acceso junio 2018].

[ 21 ] Solarian Programmer, “Raspberry Pi – Install GCC 4.9 and compile C++14 programs”. Solarian

Programmer, 2015.

Disponible en:

https://solarianprogrammer.com/2015/01/13/raspberry-pi-rapsbian-install-gcc-compile-cpp-14-programs/

Page 115: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

97 Diseño y control de un sistema Ball and Beam con realimentación visual con Raspberry-Pi

[Último acceso junio 2018].

[ 22 ] Oneleggedredoc. “C++ Tutorial – Hello Raspberry Pi”, Code Exchange, 2013.

Disponible en:

http://www.element14.com/community/community/code_exchange/blog/2013/01/02/c-tutorial--hello--

raspberry-pi [Último acceso junio 2018].

[ 23 ] Ing. Walter J. D. Cova, “Control pid, un enfoque descriptivo” Universidad Tecnológica Nacional, Facultad

Regional La Rioja, Departamento de Electrónica, Diciembre 2005

Disponible en:

http://www.frlr.utn.edu.ar/archivos/alumnos/electronica/catedras/38-sistemas-de-control-

aplicado/Publicaciones/Control_PID_Enfoque_Descriptivo.pdf [Último acceso junio 2018].

[ 24 ] Design Compensator Using Automated Tuning Methods Disponible en:

https://es.mathworks.com/help/control/ug/design-compensator-using-automated-tuning-

methods.html#bu8qz8x-2 [Último acceso junio 2018].

[ 25 ] Daniel Rodríguez Ramírez, Carlos Bordóns Alba, “Apuntes de ingeniería de control” Disponible en:

http://www.esi2.us.es/~danirr/apuntesIC4.pdf [Último acceso junio 2018].

Page 116: Proyecto Fin de Carrera - bibing.us.esbibing.us.es/proyectos/abreproy/5936/fichero/PFC-5936-ARAUJO.pdf · i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial

Referencias

98