scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

Elaboración de un prototipo de cuadricóptero con un sistema de control de estabilidad automático y comunicado vía Wi-Fi con el punto de control. Se utiliza como plataforma de control la tarjeta Raspberry Pi. La aplicación de control se ha desarrollado sobre la plataforma COSME la cual trabaja sobre el sistema operativo modificado con características de tiempo real. Alcalá Baselga, Eugenio; Blesa Gascón, Alfonso

Full text

Trabajo Fin de Grado DESARROLLO E IMPLEMENTACIÓN DE UN CUADRICÓPTERO Autor Eugenio Alcalá Baselga Director Alfonso Blesa Gascón Escuela universitaria politécnica de Teruel 2014 II DESARROLLO E IMPLEMENTACIÓN DE UN CUADRICOPTERO RESUMEN El presente trabajo constituye un proyecto de desarrollo de un prototipo de cuadricóptero haciendo uso de los conocimientos adquiridos durante los cuatro años de grado. Se ha logrado elaborar un prototipo ligero con un sistema de control de estabilidad automático que se comunica vía Wi-Fi con el punto de control remoto pudiendo ser este un Smartphone o un PC. Se ha utilizado como plataforma de control la placa Raspberry Pi. La aplicación se ha desarrollado sobre la plataforma COSME la cual trabaja sobre el sistema operativo modificado con características de tiempo real. La estructura se ha fabricado con materiales resistentes obteniendo así una rigidez importante para un primer prototipo como es este. Utilizando sensores inerciales se ha implementado un algoritmo para el cálculo de los ángulos de vuelo corrigiendo las desventajas que aportan a su vez los sensores y se han calibrado los motores obteniendo así un factor constante diferente en cada motor que nos permite igualar en potencia los cuatro motores para un óptimo funcionamiento. La regulación ha sido abordada haciendo uso de métodos para conseguir una buena fiabilidad en vuelo. III INDICE GENERAL 1. Introducción .................................................................................................................. 1 a. Objetivos ................................................................................................................... 2 i. Objetivo general .................................................................................................... 2 ii. Objetivos específicos ............................................................................................ 2 b. Cronograma del proyecto ......................................................................................... 2 2. Desarrollo teórico ......................................................................................................... 4 a. Vehículos aéreos no tripulados (UAV o VANT) ......................................................... 4 b. Cuadricóptero ........................................................................................................... 5 c. Dinámica del cuadricóptero ...................................................................................... 6 i. Rotación sobre los ejes X e Y ................................................................................. 7 ii. Rotación sobre el eje Z .......................................................................................... 8 iii. Control de altitud ............................................................................................... 10 d. Estructura ............................................................................................................... 11 i. Peso del cuadricóptero ........................................................................................ 11 e. Raspberry Pi ............................................................................................................ 12 i. Introducción ......................................................................................................... 12 ii. Hardware ............................................................................................................ 12 iii. Software ............................................................................................................. 14 iv. Entorno de programación y configuración ........................................................ 16 f. IMU .......................................................................................................................... 16 i. Acelerómetro (ADXL345) ..................................................................................... 18 ii. Giróscopo (ITG3200) ........................................................................................... 19 iii. Magnetómetro (HMC5883L).............................................................................. 20 g. Microcontrolador PCA9685 .................................................................................... 22 IV h. Actuadores .............................................................................................................. 24 i. Motores brushless ............................................................................................... 24 ii. Variadores de velocidad (ESC) ............................................................................ 26 i. Alimentación ............................................................................................................ 28 j. Comunicación .......................................................................................................... 29 k. Procesado de las señales de la IMU ........................................................................ 30 ii. Manipulación de los datos .................................................................................. 30 k. Control de estabilidad ............................................................................................. 37 i. Controlador PID ................................................................................................... 37 3. Desarrollo e implementación del COSMEcopter ........................................................ 40 a. Esquema hardware ................................................................................................. 40 b. Aplicación en COSME .............................................................................................. 41 c. Desarrollo de los bancos de pruebas ...................................................................... 45 d. Diseño de circuitos impresos .................................................................................. 48 i. Placa de alimentación .......................................................................................... 48 ii. Circuito impreso de sensado .............................................................................. 49 e. Pruebas ................................................................................................................... 52 i. Puesta en marcha y calibración de los sensores ................................................. 52 ii. Calibración de los 4 motores. Curvas de potencia ............................................. 56 iii. Calibración del control PID ................................................................................ 58 iv. Consumos del cuadricóptero ............................................................................. 60 4. Componentes y coste ................................................................................................. 62 5. Conclusiones y futuro ................................................................................................. 63 a. Conclusiones ........................................................................................................... 63 b. Trabajo futuro ......................................................................................................... 64 V 6. Agradecimientos ......................................................................................................... 65 BIBLIOGRAFÍA ................................................................................................................. 66 ANEXOS ........................................................................................................................... 68 Anexo A: Galería fotográfica....................................................................................... 68 Anexo B: Datasheet de los sensores y el microcontrolador ....................................... 72 Anexo C: Script de Matlab para la calibración de los motores .................................. 72 Anexo D: Código de la aplicación ............................................................................... 72 VI INDICE DE FIGURAS Figura 1: Diagrama de gantt del proyecto ........................................................................ 3 Figura 2: Geometría de la estructura ............................................................................... 5 Figura 3: Sentido de giro de los motores del cuadricóptero ............................................ 6 Figura 4: Comportamiento cuando varía el ángulo roll ................................................... 7 Figura 5: Comportamiento cuando varía el ángulo pitch ................................................. 8 Figura 6: Comportamiento cuando varía el ángulo yaw ................................................ 10 Figura 7: Comportamiento de los motores para subir a lo largo del eje Z..................... 10 Figura 8: Orden de ejecución de las instancias .............................................................. 15 Figura 9: Representación del bloque funcional .............................................................. 15 Figura 10: Reverso de la IMU ......................................................................................... 17 Figura 11: Definición del sistema de referencia ............................................................. 17 Figura 12: IMU ................................................................................................................ 17 Figura 13: Diagrama de bloques del acelerómetro ........................................................ 18 Figura 14: Vista en planta con cotas del acelerómetro .................................................. 19 Figura 15: Diagrama de bloques del giróscopo .............................................................. 20 Figura 16: Representación de los ejes del giróscopo ..................................................... 20 Figura 17: Diagrama de bloques y conexiones del magnetómetro ............................... 21 Figura 18: Vista en planta con cotas del magnetómetro ............................................... 21 Figura 19: Representación de la señal PWM .................................................................. 22 VII Figura 20: Diagrama de bloques del PCA9685 ............................................................... 23 Figura 21: Situación del microcontrolador PCA9685 en la expansion board ................. 23 Figura 22: Motor brushless DJI ....................................................................................... 25 Figura 23: Alzado y planta del motor con cotas ............................................................. 25 Figura 24: Funcionamiento de la hélice.......................................................................... 26 Figura 25: Variador DJI.................................................................................................... 27 Figura 26: Dongle Wi-Fi .................................................................................................. 29 Figura 27: Proyecciones de los vectores de un sistema de referencia (refs) sobre el otro sistema (refc) .................................................................................................................. 31 Figura 28: Comprobación de la simplificación ............................................................... 32 Figura 29: Obtención de los ángulos de Euler ................................................................ 35 Figura 30: Diagrama de bloques funcional del método ................................................. 36 Figura 31: Esquema del regulador PID en paralelo ........................................................ 39 Figura 32: Esquema eléctrico del hardware ................................................................... 40 Figura 33: Diagrama de bloques funcionales de la aplicación ....................................... 42 Figura 34: Instrumento para la medición del empuje .................................................... 46 Figura 35: Banco de calibración ...................................................................................... 47 Figura 36: Sistema de agarre con rodamiento ............................................................... 47 Figura 37: Fichero board de la placa distribuidora de energía....................................... 48 Figura 38: Circuito de distribución de energía ............................................................... 49 Figura 39: Fichero schematic del circuito de sensado .................................................... 50 VIII Figura 40: Fichero board del circuito de sensado .......................................................... 51 Figura 41: Circuito de sensado sin componentes ........................................................... 51 Figura 42: Circuito de sensado con componentes soldados .......................................... 52 Figura 43: Representación ángulos roll y pitch en Matlab. ............................................ 54 Figura 44: Ángulo pitch en MiniBlas. .............................................................................. 55 Figura 45: Ángulo roll en MiniBlas. ................................................................................. 55 Figura 46: Gráfica empuje frente a PWM ....................................................................... 56 Figura 47: Grafica empuje frente a PWM aplicado un factor de corrección a la curva de cada motor ..................................................................................................................... 57 Figura 48: Sistema críticamente estable en miniBlas ..................................................... 59 IX INDICE DE TABLAS Tabla 1: Pesos por componente y total del cuadricóptero ............................................ 11 Tabla 2: Tabla de Ziegler-Nichols .................................................................................... 59 Tabla 3: Tabla de consumos y potencias ........................................................................ 61 Tabla 4: Cálculo de la autonomía ................................................................................... 61 Tabla 5: Lista de componentes con sus respectivos costes ........................................... 62 4 2. Desarrollo teórico En el desarrollo teórico, se sintetizarán los temas más relevantes para el desarrollo y entendimiento de los conceptos necesarios para la implementación del prototipo del cuadricóptero. a. Vehículos aéreos no tripulados (UAV o VANT) Un vehículo aéreo no tripulado, en inglés Unmanned Aerial Vehicle, o también conocido como drone, es una aeronave que vuela sin tripulación. Existen algunos UAV de uso civil aunque la gran mayoría son usados en aplicaciones militares, donde son denominados vehículo aéreo de combate no tripulado. Históricamente los UAV eran simplemente aviones pilotados remotamente pero cada vez se está empleando más el control autónomo de estos. Existen dos variantes: algunos son controlados desde una posición remota y otros funcionan de forma autónoma. Actualmente, los UAV militares realizan tanto misiones de reconocimiento como de ataque. También son utilizados en aplicaciones civiles, como en labores de lucha contra incendios o seguridad civil, como la vigilancia de los oleoductos. Los vehículos aéreos no tripulados suelen ser preferidos para misiones que son demasiado "aburridas, sucias o peligrosas" para los aviones tripulados. 5 Los UAV se distinguen por infinidad de factores entre otros la autonomía, el tamaño, el peso, la finalidad y el tipo de ala. En función del tipo de ala podemos encontrar los aviones (ala fija) y los helicópteros y multicópteros. Estos últimos se pueden dividir en bicópteros, tricópteros, cuadricópteros, hexacópteros, octacópteros y otros multicópteros. b. Cuadricóptero A diferencia de la mayoría de los helicópteros, los cuadricópteros incorporan una hélice en cada uno de los cuatro motores, los cuales normalmente están situados simétricamente en los extremos de los brazos de la estructura (figura 2). Figura 2: Geometría de la estructura Utilizan un sistema de control electrónico y sensores electrónicos, situados sobre el eje del centro de gravedad del UAV, para estabilizar la aeronave. El control de movimiento del vehículo se consigue mediante la alteración de la velocidad de rotación (rpm) de uno o más motores, cambiando de ese modo su carga de par y las características de 6 empuje / elevación. Con su pequeño tamaño y la maniobrabilidad ágil pueden ser volados tanto en interiores como en exteriores. c. Dinámica del cuadricóptero Uno de los conceptos que surge cuando se empieza a estudiar el campo de la aerodinámica es el de la fuerza de sustentación. La sustentación es la fuerza generada sobre un cuerpo que se desplaza a través de un fluido (el aire), de dirección perpendicular a la de la velocidad de la corriente incidente. El paso del fluido por la superficie del objeto crea una fuerza con varios componentes, la fuerza de sustentación y entre otras la fuerza de arrastre, la cual es la encargada de crear un par rotacional cuya dirección va en contra del sentido de giro de las hélices. Por esta razón es que los helicópteros poseen rotores de cola que compensan este par rotacional y evita que giren sin control alrededor del eje de rotación del rotor principal. En el caso del cuadricóptero dos motores giran en el sentido de las agujas del reloj y los otros dos en sentido contrario a las agujas del reloj pudiendo así contrarrestar el par rotacional provocado por cada motor. Figura 3: Sentido de giro de los motores del cuadricóptero 7 La dinámica de los cuadricópteros cuenta con 3 tipos distintos de movimientos básicos, los cuales se pueden ejecutar en conjunto para lograr el tipo de movimiento deseado. Estos tipos de movimientos son las rotaciones sobre los propios ejes del cuadricóptero y se explican a continuación. i. Rotación sobre los ejes X e Y La dinámica de rotación es igual para ambos ejes. A la rotación sobre el eje X se le denomina roll y a la rotación sobre el eje Y se le denomina pitch. Para realizar una rotación sobre uno de los ejes es necesario aumentar la velocidad de giro de un motor y disminuir la velocidad de giro del opuesto. Figura 4: Comportamiento cuando varía el ángulo roll De este modo, si la variable que se quiere modificar es el ángulo roll (Ɵ) las velocidades angulares de los motores 1 y 3 permanecerán constantes y las velocidades angulares de los motores 2 y 4 cambiarán en función de si el ángulo roll es positivo o negativo (figura 4). 8 Por otro lado se ha de mantener en todo momento la misma variación de potencia para los dos motores, es decir, si a un motor se le aplica una variación al opuesto se le deberá aplicar para evitar aumentar el par rotacional de la estructura. La dinámica resulta análoga para el caso de la rotación en torno al eje Y (figura 5). Figura 5: Comportamiento cuando varía el ángulo pitch Como consecuencia de este ángulo de pitch o de roll el cuadricóptero experimentará un desplazamiento. Por ejemplo, si se produce una rotación positiva sobre el eje Y el cuadricóptero se desplazará en la dirección X positiva. ii. Rotación sobre el eje Z El eje Z atraviesa de forma vertical el cuadricóptero pasando por el centro de gravedad de este. Manipulando la velocidad de rotación de los distintos motores se puede llegar a un punto de operación donde el par rotacional neto del UAV sea igual a cero. 9 Tanto la fuerza de sustentación como la fuerza de arrastre son funciones que dependen del cuadrado de la velocidad angular. A continuación se muestran las ecuaciones de dichas fuerzas: Ecuación 1: Fuerza de arrastre Ecuación 2: Fuerza de sustentación , donde y son los coeficientes de arrastre y sustentación respectivamente, es la densidad del aire y es la velocidad angular de cada motor. Por lo tanto, si se mantienen constantes el tipo de fluido donde se está volando, y el tipo de hélices que se están utilizando, la única variable que queda es la velocidad angular. Llegados a este punto, como de lo que se trata es de girar en torno al eje Z lo único que se debe hacer es aplicar una velocidad angular mayor a la pareja de motores que giran en un sentido y disminuir la velocidad angular de los otros dos. Si aumenta la velocidad angular de los motores que giran en el sentido de las agujas del reloj el cuadricóptero girará hacia la derecha, en el caso contrario el cuadricóptero girará hacia la izquierda. 10 Figura 6: Comportamiento cuando varía el ángulo yaw iii. Control de altitud El control de altitud se realiza aumentando o disminuyendo la velocidad angular de todos los motores de manera equivalente. Figura 7: Comportamiento de los motores para subir a lo largo del eje Z 11 d. Estructura El esqueleto del UAV está formado por perfiles de aluminio de 15 x 15 x 1 mm formando entre ellos un ángulo de 90º. Cada brazo mide 25 cm y sobre ellos, en la intersección, se encuentra la base sobre la que van montados los componentes electrónicos, esta base es de metraquilato de 4 mm de espesor. i. Peso del cuadricóptero La siguiente tabla muestra los componentes que forman el cuadricóptero y sus respectivos pesos. Tabla 1: Pesos por componente y total del cuadricóptero Material Peso (g) Aluminio 140 Poliestireno 142 Bateria 278 Placa distribución energía 20 Placa sujección batería 6 Raspberry Pi + PCA9685 + dongle 104 3 sensores 2 ESC's 84 Motores 212 Hélices 24 Otros 55 PESO TOTAL EN GRAMOS 1067 12 e. Raspberry Pi i. Introducción Raspberry Pi es un ordenador de bajo costo, desarrollado en Reino Unido por la Fundación Raspberry Pi. El diseño no incluye un disco duro, usa una tarjeta SD para el almacenamiento permanente. La fundación da soporte para las descargas de las distribuciones para arquitectura ARM, Raspbian, RISC OS 5, Arch Linux ARM y Pidora; y promueve principalmente el aprendizaje del lenguaje de programación Python, y otros lenguajes como Tiny BASIC, C y Perl. 1 ii. Hardware El diseño incluye un System-on-a-chip (SOC) Broadcom BCM2835, que contiene un procesador central (CPU) ARM1176JZF-S a 700 MHz, un procesador gráfico (GPU) VideoCore IV, y 512 MiB de memoria RAM compartidos con la GPU. Incorpora 2 puertos USB 2.0 de los cuales uno de ellos será utilizado para la comunicación vía Wi-Fi, entrada de video que permite instalar un módulo de cámara, salida de video tanto RCA como HDMI y salida de audio. El diseño no incluye un disco duro, usa una tarjeta SD para el almacenamiento permanente e incorpora un controlador Ethernet para la conexión a red. 1 Información extraída de http://es.wikipedia.org/wiki/Raspberry_Pi 13 El puerto GPIO (General Purpose Input Output) consta de 26 pines entre los cuales tenemos los referentes a la comunicación I²C, UART y SPI, el pin de 3.3 V, el de 5V y el pin GND. 2 El consumo energético es de 3.5 W ya que necesita 700mA a 5 V, a esto hay que sumarle el consumo de periféricos como el dongle Wi-Fi. Cabe resaltar la comunicación I²C ya que ha sido la utilizada en el proyecto para la relación de los sensores con la unidad de control (Raspberry Pi). Su nombre viene de Inter-Integrated Circuit (Circuitos Inter-Integrados). La velocidad de transmisión es de 100 kbits por segundo y su principal característica es que utiliza dos líneas para transmitir la información, una para datos y otra para la señal del reloj. Una tercera línea es necesaria para la masa. El nombre que reciben las líneas son: SDA (source data), SCL (source clock) y GND (ground). Posteriormente cuando veamos la IMU se detallarán estas conexiones. Los dispositivos conectados al bus I²C tienen una dirección única para cada uno y pueden ser maestros o esclavos. El dispositivo maestro es el que inicia la transferencia de datos y además genera la señal de reloj, pero no es necesario que el maestro sea siempre el mismo dispositivo, esta característica se la pueden ir pasando los dispositivos que tengan esa capacidad. Esta característica hace que al bus I²C se le denomine bus multimaestro. 3 2 Más información en http://elinux.org/RPi_Low-level_peripherals 3 Más información en http://es.wikipedia.org/wiki/I%C2%B2C 20 Requiere un tiempo de encendido de 50 ms. 6 Figura 15: Diagrama de bloques del giróscopo Figura 16: Representación de los ejes del giróscopo iii. Magnetómetro (HMC5883L) Un magnetómetro digital hace la función de una brújula electrónica y es capaz de medir la intensidad del campo magnético en tres ejes, por lo que el UAV hará uso de sus mediciones para obtener la orientación. Los magnetómetros son capaces de medir campos magnéticos muy débiles así que para garantizar su buen funcionamiento hay que mantenerlo alejado de superficies metálicas e imanes permanentes (motores). 6 Más información en http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf 21 El HMC5883L tiene un ADC con 12 bits de resolución con lo que alcanza el grado de precisión y un rango de medida de 8 gauss. La comunicación se realiza vía I²C y su tamaño es considerablemente pequeño (3.0x3.0x0.9 mm). Su alimentación debe estar entre los 2.16 V y 3.6 V y su consumo típico en el modo de medición es de 100 μA y en el modo de espera el consumo es de 2 μA. 7 Figura 17: Diagrama de bloques y conexiones del magnetómetro Figura 18: Vista en planta con cotas del magnetómetro 7 Información adicional en https://www.seeedstudio.com/wiki/images/4/42/HMC5883.pdf 22 g. Microcontrolador PCA9685 Antes de comenzar con la explicación de este dispositivo es necesario introducir el término PWM para un correcto entendimiento. El PWM (pulse width modulation) o modulación por anchura de pulsos de una señal es una técnica en la que se modifica el ciclo de trabajo de una señal para controlar la cantidad de energía que se envía a una carga. El ciclo de trabajo (Duty Cicle) se define como un porcentaje del periodo de manera que estando al 50 % la señal PWM estará el mismo tiempo en alto que en bajo. Figura 19: Representación de la señal PWM El PCA9685 es de vital importancia en el proyecto ya que se encarga de la generación del PWM. Dispone de 16 salidas frente a las 2 salidas que aporta la Raspberry Pi y por otro lado sus 12 bits de resolución frente a los 10 bits de la Raspberry Pi son también una mejora considerable. 23 La tensión de alimentación puede variar entre 2,3 V y 5,5 V y la corriente máxima necesaria es de 10 mA. La frecuencia del PWM puede oscilar desde 40 Hz a 1000 Hz, o dicho de otra manera, podemos definir un periodo para el PWM entre 25 ms y 1 ms. Figura 20: Diagrama de bloques del PCA9685 Figura 21: Situación del microcontrolador PCA9685 en la expansion board 24 h. Actuadores i. Motores brushless Un motor eléctrico sin escobillas o motor brushless es un motor eléctrico que no emplea escobillas para realizar el cambio de polaridad en el rotor. Están compuestos por una parte móvil que es el rotor, donde se encuentran los imanes permanentes, y una parte fija, denominada estator, sobre la cual van enrollados los bobinados de hilo conductor. En este tipo de motor la corriente eléctrica pasa directamente por los bobinados del estator, por lo tanto aquí no son necesarios ni las escobillas ni el colector que se utilizan en los motores con escobillas (brushed). Esta corriente eléctrica genera un campo electromagnético que interacciona con el campo magnético creado por los imanes permanentes del rotor, haciendo que aparezca una fuerza que hace girar al rotor y por lo tanto al eje del motor. Un parámetro importante de este tipo de motores es la constante que relaciona la velocidad en RPM del motor sin carga con el valor pico de tensión en las bobinas del motor. A mayores valores para el kv, mayores valores de velocidad, pero menores valores de par y viceversa. En este caso los motores son de 920 Kv, lo que significa que si a sus bornes les aplicamos 11.1 V la velocidad que alcanzará el motor será de 10212 rpm. El sentido de giro del motor se determina por las conexiones de las fases. 25 Los motores elegidos son los Flame 2212 Motor 920Kv de la empresa DJI. Figura 22: Motor brushless DJI Figura 23: Alzado y planta del motor con cotas Las características son las siguientes:  Dimensión: 28X24mm  Potencia: 920 kv  Batería: 3S,4S  Peso: 56 gr  Corriente estándar: 15-25A , corriente máxima: 30A  Hélice recomendada: Para una beatería de 3 celdas (11.1 V) el fabricante aconseja una hélice de 10x4.5. 26 En cuanto a las hélices, es muy importante elegir bien sus dimensiones ya que de ello depende que el cuadricóptero vuele con una buena estabilidad, para este proyecto se ha escogido una hélice de 10x4.5. Las hélices de un cuadricóptero son diseñadas para baja velocidad. Una forma muy simple de entender el funcionamiento de las hélices es el siguiente: la hélice es como un tornillo contra el aire, va atornillando el aire, es decir, cada vuelta de hélice atornilla un trozo de aire. Figura 24: Funcionamiento de la hélice ii. Variadores de velocidad (ESC) Un variador de velocidad, en inglés electronic speed control, es un dispositivo, en este caso electrónico, empleado para controlar la velocidad de giro de un motor. Estas unidades se encargan de generar la secuencia de pulsos trifásicos que son requeridos para provocar el movimiento de los motores. 27 Los controladores típicos poseen 3 salidas bidireccionales, las cuales generalmente consisten en un conjunto de FETs (transistores que se basan en el campo eléctrico para controlar la conductividad) controlados por un circuito lógico. Este circuito suele ser un microcontrolador que se encarga de administrar la aceleración y controlar la velocidad de rotación a partir de la señal de control recibida. Para realizar el proceso anterior, normalmente los ESC tienen que ser configurados con los parámetros del sistema en el cual están trabajando (como por ejemplo el tipo de baterías, las tensiones mínimas de operación segura, etc). Finalmente poseen las dos conexiones de alimentación que irán conectadas a la batería o fuente de alimentación. Los ESC elegidos para el cuadricóptero son los DJI Phantom ESC los cuales no requieren previa calibración, vienen con una calibración optimizada de fábrica para los motores DJI. Figura 25: Variador DJI 28 Sus especificaciones son las siguientes:  Corriente máxima : 30A  Frecuencia compatible de la señal de control: 30Hz - 450Hz  Batería: 3S ~ 4S LiPo i. Alimentación La alimentación en un cuadricóptero es un tema delicado, ya que de ello depende entre otras cosas su autonomía. Las baterías de Polímero de Ión de Litio, también conocidas como baterías de Polímero de Litio o LiPo por su abreviatura en inglés, son un tipo de baterías recargables de alto rendimiento que suelen estar compuestas de varias celdas que se disponen tanto en serie (para aumentar la tensión de salida de la batería) como en paralelo (para aumentar la capacidad y la corriente de descarga de la batería). Este tipo de baterías se caracterizan porque admiten niveles altos de descargas de corriente eléctrica, por lo que son ideales para un cuadricóptero. La batería elegida es la Turnigy 3.0 cuyas especificaciones son las siguientes:  Capacidad: 3000mAh  Configuración: 3S1P / 11.1v / 3Cell  Constante de descarga: 30C  Pico de descarga (10sec): 40C  Peso: 269g 29 j. Comunicación La conexión del cuadricóptero con el punto de control se realiza a través del mecanismo de conexión inalámbrica llamado Wi-Fi. Este tipo de comunicación tiene un alcance de unos 20 metros en interiores y algo más en exteriores. El dispositivo seleccionado es del fabricante Edimax y soporta velocidades de más de 150 Mbps cuando se conecta con modulación 802.11n, la cual es tres veces más rápida que la 802.11g. A diferencia de las otras versiones de Wi-Fi, 802.11n puede trabajar en dos bandas de frecuencias: 2,4 GHz (la que emplean 802.11b y 802.11g) y 5 GHz (la que usa 802.11a). Figura 26: Dongle Wi-Fi Este tipo de comunicación tiene una gran ventaja y una gran desventaja. La desventaja es que frente a comunicaciones con radiofrecuencia el alcance está muy limitado, pero existe una gran ventaja y es que con una comunicación Wi-Fi estamos conectados a la red, lo que significa que podemos consultar cualquier variable del cuadricóptero en tiempo real desde cualquier posición siempre y cuando tengamos acceso a red. 36 corregir la deriva o drift que tiene el giróscopo y esto no se puede pasar por alto ya que sin duda es el sensor más relevante a la hora de calcular ángulos de vuelo. La deriva de los ejes X e Y es corregida con el acelerómetro y la deriva en el eje Z con el magnetómetro. Esta corrección se basa en un regulador PID que posteriormente es analizado. Figura 30: Diagrama de bloques funcional del método En otras palabras, lo que hace el bucle es: 1. Leer las velocidades angulares del giróscopo 2. Leer las aceleraciones del acelerómetro 3. Leer los datos del magnetómetro 4. Calcular el error entre los sensores 5. Calcular los factores Proporcional, Integral y Derivativo 6. Corregir las lecturas del giróscopo con los factores calculados 7. Actualizar la Matriz de Rotación (DCM) 8. Renormalizar DCM 9. Entregar Ángulos de Vuelo a la regulación 37 Si se ha producido deriva en el giróscopo las direcciones del acelerómetro, el cual no tiene deriva, no coincidirán con las del giróscopo, por lo que se detectará un error que el propio regulador PID corregirá. k. Control de estabilidad i. Controlador PID Los algoritmos de control PID (Proporcional integral derivativo) son los sistemas de control más utilizados en la automatización de procesos debido a su variabilidad y adaptabilidad a diversos procesos controlables. Estos reguladores funcionan con realimentación, calculando un error entre la entrada deseada y dicha realimentación y disminuyendo este error lo máximo posible y lo más rápido posible. Los algoritmos de control PID poseen 3 componentes cuya suma da como resultado el parámetro de control de la variable manipulada. Estos elementos son: la componente proporcional, la componente integral y la componente derivativa. El valor proporcional determina la reacción del error actual, si este valor es alto estaremos reduciendo el error a costa de aumentar la inestabilidad. El integral genera una corrección proporcional a la integral del error, esto nos asegura que aplicando un esfuerzo de control suficiente, el error de seguimiento se reduce a 38 cero. Un excesivo factor integral aumentará la sobreamortiguación del sistema y por lo tanto el tiempo de asentamiento. El factor derivativo determina la variación del error en cada instante de tiempo. Solo afecta mientras halla variación de error, de este modo limita la velocidad a la que se reduce el error impidiendo así que el sistema se vuelva inestable. La ecuación generalizada de los controladores PID viene dada por la siguiente expresión: ( ) ( ) ∫ ( ) Ecuación 10: Expresión general del regulador PID 8 Dónde:  t: corresponde al tiempo transcurrido, o tiempo instantáneo.  u(t): corresponde a la salida del controlador.  e(t): corresponde al error (valor deseado – salida real del sistema).  : corresponde a la ganancia proporcional del controlador.  : corresponde a la ganancia integral del controlador.  : corresponde a la ganancia derivativa del controlador. A continuación se representa gráficamente el diagrama del controlador. 8 Información extraída de http://es.wikipedia.org/wiki/PID 39 Figura 31: Esquema del regulador PID en paralelo Para el control de estabilidad se han implementado un regulador para el control de ángulo pitch y otro para el ángulo roll, de los cuales se hablará más adelante. 40 3. Desarrollo e implementación del COSMEcopter a. Esquema hardware A continuación se presenta el esquema hardware del COSMEcopter, en el aparecen todos los elementos necesarios ya mencionados y explicados antes. Figura 32: Esquema eléctrico del hardware El diagrama ha sido esbozado solo para un conjunto motor-variador (figura 32). 41 b. Aplicación en COSME La aplicación ha sido diseñada y elaborada sobre la plataforma COSME. De esta manera se puede acceder a cualquier variable del sistema en tiempo real y modificarla, lo que permite ser más eficiente. El diagrama de bloques funcional de la aplicación se presenta a continuación, siendo el orden de ejecución el siguiente: 1. I2C1 2. Acelerómetro1 3. Giróscopo1 4. Magnetómetro1 5. CorreciónPI_Acc1 6. Promediador1 7. CorrecciónPI_Mag1 8. Actualizar_Matriz1 9. Renormalizar1 10. Conversor_angulos1 11. Referencias1 12. Pid_pitch1 13. Pid_roll1 14. Cambio_magnitud1 15. MicroPWM1 42 Figura 33: Diagrama de bloques funcionales de la aplicación 43 Los bloques funcionales en verde están asociados a la adquisición de datos (sensores), los que aparecen en marrón están asociados al tratamiento de dichos datos recogidos y finalmente los bloques en naranja se asocian al control del sistema. Inicialmente se ejecutan las funciones inicializa de cada instancia en el orden correspondiente. En las instancias referentes a la adquisición de datos se inicializan los sensores con la configuración correspondiente, el giróscopo esta inicializado para que tome medidas cada 1 milisegundo, el magnetómetro cada 13,3 milisegundos entrega el promedio de 8 muestras y el acelerómetro está en modo de medición continua; en el caso de la instancia I²C se inicializa dicho bus de comunicaciones, en la instancia microPWM1 se inicializan los puertos hardware y se define el periodo de la señal PWM de 3 ms ya que es con el periodo que más rango de escala se puede aprovechar. En el resto de instancias se inicializan variables. En el segundo ciclo ya se han inicializado todas las instancias y comienzan a ejecutarse las funciones normales. En las instancias de los sensores capturamos mediciones de cada uno de ellos. En el tratamiento de datos aparecen dos bloques funcionales llamados CorrecionPI_Acc1 y CorreccionPI_Mag1, el primero consiste en la obtención del error entre los datos del acelerómetro y la matriz de rotación del sistema para sumárselo o restárselo a las mediciones del giróscopo, el segundo consiste en lo mismo pero tan solo es corregida la variable referente al eje Z (yaw). Con estas operaciones obtenemos un vector (X, Y, Z) al que le ha sido eliminada la deriva introducida por el giróscopo. 44 En la instancia Actualizar_Matriz1 se recibe el vector anterior, se multiplica por el tiempo de ciclo, para pasar de radianes / segundo a radianes, y se almacena en una matriz de 3x3, esta matriz es la que anteriormente definía como matriz de rotación instantánea. Luego se multiplica dicha matriz por la matriz de rotación del sistema, esto nos devuelve la matriz de rotación actualizada. Posteriormente se pasa a la instancia renormalizar1, cuyo funcionamiento ya ha sido explicado en el apartado del método, del cual se realimenta la matriz de rotación del sistema y finalmente al bloque funcional conversor_angulos1 donde convertiremos estos datos de la matriz de rotación en ángulos de Euler en grados. Entramos ahora en la etapa de control, donde inicialmente se consulta la referencia, es decir, la referencia es un vector de tres valores (roll, pitch y yaw) que define cómo quiero que este mi sistema. Los reguladores PID intentarán corregir lo antes posible y de la mejor manera la diferencia entre el vector referencia y los ángulos de Euler del cuadricóptero. Dicho regulador se ha implementado de manera no lineal para que su comportamiento sea más agresivo con errores grandes y más suave para errores pequeños. La expresión que gobierna el PID es la siguiente: ( ( ) ) ( ) Ecuación 11: Expresión del PID no lineal El bloque funcional cambio_magnitud1 consiste en adecuar la señal, que en este caso consiste en pasar de grados a señal PWM. Para ello se ha implementado la siguiente función: 45 ( ) Ecuación 12: Cálculo del pwm en el control de estabilidad , la variable potencia es un valor entre 1800 y 2800 el cual hace referencia a la potencia a la que vamos a trabajar, es decir, si potencia vale 2300 significa que los motores estarán trabajando al 50%; el será o será en función del motor; la variable out_PID es la salida del regulador PID y será la que este variando constantemente; la variable factor_motor es una constante propia de cada motor. Por último, en la función normal de microPWM1 escribimos el valor del PWM calculado antes en el registro adecuado para que finalmente esta señal llegue a los ESC. Dado que el tiempo de ejecución de las funciones normales de la aplicación ronda los 10 ms y que atender a las comunicaciones también supone un tiempo se ha optado por un periodo de ejecución de la aplicación de 20 ms. Durante el tiempo sobrante en cada ciclo el sistema esperará. Finalmente, al cerrar la aplicación se ejecuta la función finaliza de cada una de las instancias donde son puestos a cero los puertos hardware y cerrado el bus I²C. c. Desarrollo de los bancos de pruebas Durante el transcurso del proyecto han ido haciendo falta herramientas extra para calibrar o medir ciertas magnitudes. Estas herramientas han sido dos. 52 componentes muy pequeños como es nuestro caso, pero esa tecnología está fuera de nuestro alcance por lo que se intentó soldar los encapsulados de la forma tradicional obteniendo como resultado el siguiente: Figura 42: Circuito de sensado con componentes soldados Como se puede apreciar en la figura 42 la placa no ha podido ser realizada debido a la alta complejidad de la soldadura. e. Pruebas i. Puesta en marcha y calibración de los sensores Poner en correcto funcionamiento el conjunto de los tres sensores no ha resultado ser tarea fácil, todos ellos han sido probados en todos sus modos de configuración escogiendo como resultado final el mejor de ellos. 53 El acelerómetro ADXL345 ha sido configurado para el modo de medición continua, con una resolución de 10 bits y un rango de medición de -2 g a +2 g. 10 El giróscopo ITG3200 está configurado para que realice mediciones cada 1 ms, es decir, con una frecuencia de muestreo de 1000 Hz y tiene un rango de , pero este sensor también posee un filtro paso bajo regulable por software el cual finalmente se ha establecido en 5 Hz, esto quiere decir que movimientos bruscos y rápidos los despreciará. 11 El magnetómetro se ha modificado para que entregue la media de 8 muestras cada 13 ms midiendo en el rango de los . 12 Inicialmente se optó por el método más sencillo de implementar que es el llamado filtro complementario. Este método lo que hace es dar mayor o menor peso a los valores provenientes del giróscopo y del acelerómetro para conseguir un valor más libre de ruidos y con menor error que el que entrega el giróscopo. La ecuación es la siguiente: Ecuación 13: Expresiones para el cálculo de los ángulos de vuelo La constante suele estar comprendida entre 0.93 y 0.98 y la constante entre 0.07 y 0.02 ya que las suma ha de ser igual a la unidad. 10 Información extraída de http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf 11 Información extraída de https://www.sparkfun.com/datasheets/Sensors/Gyro/PS-ITG-3200-00-01.4.pdf 12 Información extraída de https://www.seeedstudio.com/wiki/images/4/42/HMC5883.pdf 54 Realizamos una prueba que consistía en girar a 90º y luego a -90º el ángulo roll y luego a -90º el ángulo pitch. Tras una serie de pruebas cuyo resultado no nos servía llegamos al mejor resultado, para el resultado era el siguiente: Figura 43: Representación ángulos roll y pitch en Matlab. Se puede apreciar que al cabo de una serie de muestras el ángulo roll ya no permanece en 0 grados, esto es debido a que damos mucho peso a la variable que aporta error con el tiempo. El ruido que aparece es introducido por el acelerómetro. Debido a esto me veo obligado a buscar otro método, otro algoritmo para el tratamiento de estos datos. Este nuevo método es la matriz de cosenos directores (DCM) explicado anteriormente. 0500 1000 1500 2000 2500 3000 -100 -50 0 50 100 muestras grados Muestreo con T=10ms y filtro = 5Hz angulo XZ (roll) 0500 1000 1500 2000 2500 3000 -100 -80 -60 -40 -20 0 20 muestras grados angulo YZ (pitch) 55 Como ya hemos visto, el algoritmo es relativamente más complejo pero los resultados también son más satisfactorios. Una prueba de ello es la siguiente gráfica en COSME MiniBlas en la que muevo el cuadricóptero de 90º a -90º en los ejes X e Y: Figura 44: Ángulo pitch en MiniBlas. Figura 45: Ángulo roll en MiniBlas. 56 ii. Calibración de los 4 motores. Curvas de potencia Para la puesta a punto de los motores lo primero es ver cómo se comporta cada motor por separado, para ello se ha hecho uso del instrumento fabricado. Una vez montado el sistema de medición se procede a elaborar una tabla para cada motor que muestre el porcentaje del ciclo PWM frente al empuje en gramos. Estos datos son introducidos en un script en Matlab el cual nos devolverá las gráficas de los cuatro motores. Figura 46: Gráfica empuje frente a PWM El objetivo de esta calibración es ajustar las parábolas de los motores a una parábola igual para todos con el fin de facilitar posteriormente el control. 50 55 60 65 70 75 80 85 90 95 100 150 200 250 300 350 400 450 500 550 Ciclo PWM (%) Empuje (g) motor gris 1 motor negro 1 motor gris 2 motor negro 2 57 Las parábolas se han corregido en función de la recta del motor negro 2 (parábola azul), de esta manera tan solo se ha tenido que aplicar un factor de corrección a cada curva y el resultado es el siguiente: Figura 47: Grafica empuje frente a PWM aplicado un factor de corrección a la curva de cada motor El tramo mejor ajustado estará en el rango del 73 % al 83 % del ciclo PWM lo cual es correcto ya que posteriormente el UAV trabajará en ese rango de potencia. 50 55 60 65 70 75 80 85 90 95 100 150 200 250 300 350 400 450 500 550 Ciclo PWM (%) Empuje (g) motor gris 1 motor negro 1 motor gris 2 motor negro 2 58 iii. Calibración del control PID La puesta a punto del control de estabilidad requiere dos reguladores PID, es decir, uno por cada eje, por lo que a la hora de ajustar los parámetros del regulador se han tratado por separado. Para esta calibración se ha utilizado el banco de pruebas comentado en el apartado 3.c (figura 35). El método seguido para calibrar el controlador es el de Ziegler-Nichols en lazo cerrado, el cual permite ajustar o "sintonizar" un regulador PID de forma empírica, sin necesidad de conocer las ecuaciones de la planta. Estas reglas de ajuste propuestas por Ziegler y Nichols fueron publicadas en 1942 y desde entonces es uno de los métodos de sintonización más difundido y utilizado. Este método consiste en reducir al mínimo la acción derivativa y la acción integral del regulador PID y aumentar poco a poco la ganancia proporcional hasta que el sistema oscile de forma mantenida ante cualquier perturbación. Esta oscilación debe ser lineal, sin saturaciones (figura 48). En este momento hay que medir la ganancia proporcional, llamada ganancia crítica o Kc, y el periodo de oscilación Tc en segundos. 59 Figura 48: Sistema críticamente estable en miniBlas Una vez hallados estos dos parámetros se pueden calcular los parámetros del controlador PID de la siguiente manera: Kp Ti Td P 0.50*Kc PI 0.45*Kc 0.83*Tc PID 0.59*Kc 0.50*Tc 0.125*Tc Tabla 2: Tabla de Ziegler-Nichols 60 Si los valores de tiempo Ti y Td se traducen a ganancias, se obtiene que: Ki = Kp / Ti y Kd = Kp * Td Ecuación 14: Relación entre tiempos integral y derivativo y la constante proporcional Siguiendo este método para el cuadricóptero conseguimos que el sistema sea “críticamente estable” con Kc = 0.7 y un periodo de oscilación Tc = 9 s en el eje X. Con estos datos obtenemos que Kp = 0.525, Ki = 0.0933 y Kd = 0.4725. Posteriormente el cuadricóptero se reorienta para poder calibrar ahora el eje Y ya que el cuadricóptero no tiene el mismo peso sobre un eje que otro. 13 Pero con estas constantes el sistema no está totalmente regulado, es decir, son orientativas, ahora hay que ajustarlo del todo mediante prueba y error. iv. Consumos del cuadricóptero El estudio del consumo del UAV es importante para estimar el tiempo de vuelo. En esta prueba lo que se ha hecho es medir los consumos en función del porcentaje PWM aplicado en un motor y posteriormente hallar el consumo total del cuadricóptero. La siguiente tabla muestra los resultados. 13 Información extraída de https://sites.google.com/site/picuino/ziegler-nichols 61 Tabla 3: Tabla de consumos y potencias Con estos datos podemos estimar la autonomía de vuelo de la siguiente manera: Entonces si el amperaje de la batería es de 3000mAh y sabiendo el consumo en amperios para diferentes rangos de potencia podemos estimar el tiempo de vuelo. Tabla 4: Cálculo de la autonomía Dado que el cuadricóptero trabaja en el rango entre el 70% y el 80% la autonomía será de entre 13 y 11 minutos. Ciclo PWM (%) Consumo un motor (A) Potencia un motor (W) Potencia los 4 motores (W) 20 1,08 11,988 47,952 30 1,54 17,094 68,376 40 2,02 22,422 89,688 50 2,5 27,75 111 60 3 33,3 133,2 70 3,45 38,295 153,18 80 4,1 45,51 182,04 90 5,18 57,498 229,992 100 6,5 72,15 288,6 Consumos del cuadricoptero Ciclo PWM (%) Consumo 4 motores (A) Autonomía (min) 20 4,32 42 30 6,16 29 40 8,08 22 50 10 18 60 12 15 70 13,8 13 80 16,4 11 90 20,72 9 100 26 7 68 ANEXOS Anexo A: Galería fotográfica Ilustración 1: Trabajando con miniBlas y la aplicación Java Ilustración 2: Empezando a montar el cuadricóptero 69 Ilustración 3: Montaje algo más avanzado Ilustración 4: Pruebas de control 70 Ilustración 5: Conjunto motor hélice Ilustración 6: Raspberry Pi y sensores 71 Ilustración 7: Prototipo terminado Ilustración 8: Pruebas con el prototipo Videos en http://cosmecontrol.blogspot.com.es/ 72 Anexo B: Datasheet de los sensores y el microcontrolador Adjunto en el CD. Anexo C: Script de Matlab para la calibración de los motores Adjunto en el CD. Anexo D: Código de la aplicación Adjunto en el CD.