Calibración de hélices y motores Brushless para drones


Índice:

  1. Conceptos generales sobre drones
  2. Material necesario y montaje de los componentes hardware
  3. Mando RC y receptor. Programación en Arduino
  4. MPU6050 y su programación en Arduino
  5. Batería LiPo
  6. Control de estabilidad y PID
  7. Motores, ESC y su programación en Arduino
  8. → Calibración de hélices y motores
  9. Software completo y esquema detallado
  10. Probando el Software completo antes de volar
  11. Como leer variables de Arduino en Matlab

¿Por qué es importante eliminar las vibraciones con la calibración de hélices y motores?

Como ya hemos comentado en la entrada del sensor MPU6050, si las hélices no están bien calibradas, las vibraciones producidas por el movimiento irregular de estas pueden convertirse en nuestro peor enemigo a la hora de hacer volar nuestro drone. Tened siempre presente el tema de las vibraciones, ya que si no podéis acabar frustrados y con el drone aparcado el una estantería y sin haberlo volado nunca. El 100% de las vibraciones son producidas por los motores y las hélices, de ahí la importancia de la calibración de estos componentes. Son elementos que giran a gran velocidad y que sustentan todo el peso del drone, por lo que pequeñas irregularidades en el movimiento de los mismos pueden acarrear grandes vibraciones que pueden afectar a la estimación de inclinación y hacer que nuestro drone nunca llegue a ser estable, causando gran frustración en nosotros. Yo mismo estuve a punto de abandonar el proyecto cuando ya tenía todo listo por no saber cómo identificar este problema, pero tranquilos, voy a intentar explicar cómo solucionarlo.

Es imprescindible que las hélices y los motores estén completamente equilibrados. La calibración de estos componentes es un tema vital. Cada pala de la hélice tiene que tener exactamente el mismo peso que la otra, ya que una desviación de unos poco gramos en una de las palas girando a 11000rpm genera una cantidad de vibraciones demasiado elevada para nuestro pequeño y sensible acelerómetro. El problema es que el acelerómetro es tremendamente sensible a estas vibraciones, por lo que es imprescindible reducirlas al máximo evitando que se produzcan, para lo que hay que calibrar las hélices lo mejor posible. En caso contrario, estas vibraciones captadas por el acelerómetro pasan a nuestro control produciendo lecturas erróneas en el cálculo de la inclinación que pueden llegar a ser de varios grados. Para que os hagáis una idea, cuando aun no tenía calibradas las hélices y los motores, teniendo el drone completamente horizontal en el suelo, las vibraciones producidas por las hélices que eran captadas por el acelerómetro producían un error en la estimación de la inclinación de hasta 7º. Como vemos en la siguiente ecuación, para calcular el ángulo de inclinación es necesario utilizar los datos del acelerómetro:

angulo_pitch = angulo_pitch * 0.999 + angle_pitch_acc * 0.001; 
angulo_roll = angulo_roll * 0.999 + angle_roll_acc * 0.001;

La frecuencia de estas vibración es muy fácil de estimar de forma básica. En teoría, una hélice que gira a 5000rpm, producirá vibraciones a una frecuencia de aproximadamente 83.3Hz:

Velocidad de giro (rpm)/60 = Frecuencia de vibración (Hz)

Asumiendo que los motores giran entre 3000rpm (30% de throttle) y 11000rpm (100% de throttle), tenemos que enfrentarnos a vibraciones que pueden variar entre 50Hz y 184Hz (esto es simplemente una aproximación rápida). Una de las soluciones es filtrar la salida del sensor MPU6050 configurando el filtro LPF (low pass filter) que incorpora el sensor, pero tened cuidado con filtrar demasiado la salida utilizando frecuencias de corte bajas ya que el filtrado introduce un retardo en las medidas que puede llegar a los 19ms. Tened en cuenta que el filtrado siempre nos hará perder prestaciones:

Tabla LPF MPU6050.

Calibración de hélices y motores

La mejor solución para olvidarnos de las vibraciones es atacarlas en su origen, es decir, calibrar hélices y motores. La calibración de estos componentes no es una ciencia exacta, no podemos medir el peso de cada pala por separado por lo que tenemos que recurrir a otras técnicas para estimar e identificar las vibraciones.

A continuación, vamos a ver dos métodos de calibración para hélices y motores. 

Método 1 – Equilibrador magnético

El primer método, y el más sencillo, es utilizar un equilibrador magnético como el de la siguiente figura. Con esta herramienta podremos equilibrar las hélices de forma sencilla y sin riesgos. Esta es para mi la opción preferida debido a su simplicidad:

Comprar en Amazon 

Basta con colocar las hélices entre los soportes y ver si cae en alguna dirección. Si esto sucede, utilizar cinta aislante para añadir peso en el lado contrario. Repetir el proceso con las 4 hélices. 

Calibración de hélice. Arduino drone.

Método 2 – Analizar aceleraciones 

Este segundo método es más complejo ya que requiere montar las hélices. Consiste en hacer girar los motores con sus correspondientes hélices y analizar el ruido o la distorsión que se produce en la aceleración (registrada utilizando el sensor MPU6050). Después, siguiente el mismo proceso que en el método anterior, ir colocando cinta aislante hasta que el rizado de la aceleración producida por el giro de los motores esté comprendida n un rango determinado.

Todo el software que utilizaremos a lo largo de este apartado está subido a GitHub:

Descargar ficheros en GitHub

Para poder continuar con este método es imprescindible haber validado antes los motores como hemos visto en la correspondiente entrada. Antes de colocar las hélices, es imprescindible validar también el software de calibración de motores que vamos a utilizar a continuación, para comprobar que funciona correctamente en vuestro entorno de pruebas. Una vez que somos capaces de girar los motores de forma controlada usando el mando, solo entonces pondremos las hélices.

⊗ Esta es la primera vez que vamos a poner en marcha los motores con las hélices puestas. MUCHO CUIDADO. Aseguraos de que el drone esta firmemente sujeto al suelo y de que no hay peligro de tocar las hélices 

Hecho esto, podemos colocar las hélices. Antes de continuar, acordaos de que cada motor tiene que girar en un sentido concreto como hemos visto en la entrada dedicada a los motores. Conviene hacer el calibrado de hélices y motores con los motores girando en el sentido correcto:

Sentido de giro de los motores. Arduino drone.

Os habréis fijado en que el fabricante nos provee con dos hélices diferentes además de con el motor. Esto es debido a que dependiendo del sentido de giro del motor tendremos que utilizar una u otra para que el empuje sea siempre hacia abajo (recordad que tenemos dos motores girando en sentido horario y dos girando en sentido anti-horario). Para saber que hélice corresponde con cada sentido de giro tenéis que fijaos en la forma de la propia hélice, donde la ‘parte lisa’ siempre tiene que estar de cara al movimiento, y la ‘muesca’ detrás:

Dirección de giro de hélices. Arduino drone.

Comprobad también que no las estáis poniendo boca abajo. La serigrafía con el tipo de hélice (en mi caso 10×4.5R), siempre hacia arriba. Una vez instaladas hacedlas girar a baja velocidad. En seguida os daréis cuanta de hacia donde empuja el motor, tenéis que sentir que el aire sale hacia abajo.

Una vez identificadas que hélices corresponden con cada motor, es hora de que empezáis con los test de vibraciones y el proceso calibración. Recordad amarrar bien el drone para que no despegue y tomad todas las precauciones necesarias para no tocar las hélices cuando estas se encuentren en movimiento

El software que vamos a utilizar el es mismo que hemos utilizado para mover los motores, pero integrando también las lecturas del sensor MPU6050 para visualizar la aceleración de los 3 ejes. La calibración tiene que realizarse motor a motor. Simplemente escogemos el motor que queremos analizar, subimos el Throttle, visualizamos las lecturas del acelerómetro y analizamos los resultados para ver si están o no fuera de rango. Si alguno de los motores produce vibraciones que estén fuera de rango, tenemos que intentar equilibrar las palas. La calibración es muy sencilla. Simplemente ponemos un cacho de cinta aislante en una de las palas y volvemos a hacerlo girar, si las vibraciones se han reducido, podemos ajustar la cantidad de cinta hasta reducir las vibraciones al mínimo posible. Si por el contrario las vibraciones aumentan, retiramos la cinta aislante de esa pala y la ponemos en la otra, repitiendo la prueba y comprobando que efectivamente las vibraciones se han reducido. También podemos repetir este proceso con los cuatro motores:

Calibración de motor. Arduino drone.

La web de ArduPilot recomienda que las vibraciones no superen los ±3m/s² en los X e Y, y que estén comprendidas entre ±5m/s² y ±15m/s² para el eje Z:

Rangos aceptables de vibración de nuestro drone.

A continuación muestro los resultados de la calibración realizada por mi, donde se puede ver como las vibraciones nos superan los limites marcados (mis resultados están en ‘g‘, pero la relación es de 9.8 para compararlos con los resultados de arriba. 1g = 9.8m/s². Mas información en la entrada dedicada al sensor MPU6050):

Proceso de calibración de los motores y las hélices. Análisis de vibraciones.


Continuar con la siguiente entrada:

  1. Conceptos generales sobre drones
  2. Material necesario y montaje de los componentes hardware
  3. Mando RC y receptor. Programación en Arduino
  4. MPU6050 y su programación en Arduino
  5. Batería LiPo
  6. Control de estabilidad y PID
  7. Motores, ESC y su programación en Arduino
  8. Calibración de hélices y motores
  9. → Software completo y esquema detallado
  10. Como leer variables de Arduino en Matlab
5/5 - (2 votos)
6 Comentarios

Añadir un comentario

Tu dirección de correo electrónico no será publicada.