martes, 20 de octubre de 2015

Pensando el sistema de control para nuestro Drone

Hemos avanzado mucho con la parte electrónica y estructura de nuestro Drone, pero nos esta faltando abordar un punto fundamental del diseño. La lógica de Control de Vuelo del Drone.

A pesar de que el Drone sera controlado por un control remoto, este deberá ser capaz de mantenerse en el aire de forma estable frente a variaciones de las condiciones atmosféricas, brisas o perturbaciones externas. Para esto deberá tener una lógica de control programada en el micro controlador del Arduino que compense cualquier perturbación externa.

Investigamos y descubrimos que hay muchas estrategias de control para realizar esto, con distintas prestaciones, ventajas y dificultad de programación y sintonizado.  Algunas de estas estrategias y controladores utilizados son:

  • Lazos Simples de Control
  • Lazos en Cascada
  • Controladores PID
  • Controladores Predictivos: El controlador se basa en el procedimiento denominado control de horizonte deslizante. Consiste en realizar una predicción de los estados futuros empleando un modelo del proceso y la optimización de la evolución del sistema sobre un horizonte de predicción. 
  • Control Difuso: La alternativa al control PID es la lógica borrosa o difusa, basada en lo relativo a lo observado. Este tipo de lógica toma dos valores aleatorios, pero contextualizados y referidos entre sí.
    Si bien existen DRONEs avanzados que utilizan este mecanismo de control fundamentalmente para vuelo autónomo, se utiliza cuando la complejidad del proceso es muy alta y costaría mucho esfuerzo desarrollar un control matemático. Pero no es recomendable para sistemas que dispongan de un modelo conocido y sus resultados son eficientes. Por tanto, para desarrollar el control de nuestro DRONE será mucho más eficiente y exacto el control PID que la lógica difusa.

Generalmente los DRONEs comerciales utilizan Lazos en Cascada para el control de vuelo, esto debido a que la gran ventaja que proporciona esta técnica de control es aprovechar que podemos acceder a una variable interna medible que tenga una dinámica más rápida que la del proceso. Con ésta, podremos detectar perturbaciones y actuar en rechazo de las mismas antes de que el efecto de la perturbación se propague y afecte a la variable. Ademas como controladores utilizan PID debido a que son ampliamente conocidos y mas sencillos de sintonizar.

Como lo hacen?

Cada Lazo de control consiste en la disposición de dos controladores anidados, de manera que la salida del controlador maestro es la referencia o punto de consigna que toma el controlador esclavo.


La elección de la variable interna de medida no es arbitraria y ha de cumplir ciertas características:

  • Debe existir una relación directa entre las variables de medida primaria y secundaria.
  • Las perturbaciones principales deben de actuar en el lazo interno o secundario por lo que deben ser detectadas a partir de la variable medible.
  • El lazo secundario debe ser más rápido que el lazo primario.
  • Es muy beneficioso tener una ganancia alta en el lazo secundario

Un ejemplo de esto seria donde las "variables del proceso" a controlar de los dos subsistemas son la coordenada X e Y y las variables de control son la referencias a los ángulos Pitch y Roll, la variable interna de medida de cada subsistema será cada componente de la velocidad, Vx y Vy respectivamente.

Los tipos de perturbaciones que podemos cuantificar mediante la medida de la velocidad serán: en primer lugar corrientes de aire (aunque al tratarse de vuelo en interiores no serán de gran magnitud), y en segundo lugar, el efecto suelo también producirá perturbaciones en la velocidad ya que afecta a la sustentación generada por cada motor y por ende a la orientación del cuadricóptero.

Siguiendo la corriente al desarrollo actual nuestro Drone deberá tener 6 controladores PID para controlar los 3 ejes y sus interacciones utilizando Lazos en Cascada.

Una vez implementados los PIDs sobre el arduino deberemos sintonizarlos, si bien eso corresponde a un capitulo mas avanzado de nuestro proyecto, es bueno entender como cada ganancia (Proporcional, Integral y Derivativa) afecta al vuelo de nuestro DRONE para luego poder sintonizar cada parámetro.
Hay que tener en cuenta que esta sintonización deberá idealmente realizarse en cada eje por separado.

¿Qué sucede cuando la ganancia de P es demasiado baja?

Si la ganancia P es demasiado baja, entonces no estaremos aumentando el empuje lo suficiente para nivelar el multicoptero y va a acabar dándose la vuelta.

Si la ganancia P es ligeramente baja, entonces será controlable, pero derivara excesivamente. Tardara mucho más para llegar de nuevo a nivel.

¿Qué sucede cuando la ganancia P es demasiado alta?

Si la ganancia P es demasiado alta, el multicoptero se tambaleara (oscilara), ya que compensará demasiado cuando se vaya fuera de nivel , lo que hará que intente nivelarse tan rápidamente, que se saldrá de nivel  y volverá a salirse de nivel en sentido contrario , y así sucesivamente.

Hay que tener cuidado y asegurarse de que la ganancia P no es demasiado alta, no sólo tratando de volar nivelado, sino también cuando hacemos traslaciones, cuando hay excesivo viento o cuando bajamos en vertical sobre la propia turbulencia que generan las hélices. Si la ganancia P es poco alta, se quedara clavado al volar estabilizado, pero al intentar cualquier maniobra agresiva el multicoptero se descontrolara.

¿Qué sucede cuando la ganancia I es demasiado baja?

Si la ganancia I es demasiado baja (0,0), entonces el multicoptero puede que no sea capaz de volver a nivel y si hace un poco de viento comience a derivar. Esto no es un verdadero problema ya que lo mormal es comenzar a ajustar los PID con un valor para I de 0.

¿Qué sucede cuando la ganancia I es demasiado alta?

Si la ganancia I es demasiado alta, los efectos son similares a los que tiene una ganancia P  alta, pero aún más exagerado. El multicoptero se tambaleará (oscilar), ya que compensará demasiado al salirse del nivel y al sobrepasarlo intentara volver a nivelar rápidamente, lo que hará que vuelva a salirse de nivel hacia el otro lado, y así sucesivamente.

¿Qué sucede cuando la ganancia D es demasiado baja?

Si la ganancia D es demasiado baja , entonces el multicoptero se tambaleá  siempre que las ganancias de P e I sean demasiado altas.

¿Qué sucede cuando la ganancia D es demasiado alta?

Si la ganancia D es demasiado alta, mientras se mantenga estabilizado, notara que su multicoptero tarda mucho en responder a los mandos como si tuviera retraso.

Según esto también podemos ver como afectan las ganancias al tipo de vuelo que quiera realizarse:

Vuelo acrobático :

Requiere un valor de P un poco mas alto.
Requiere un valor de I un poco mas bajo.
Aumentar D.

Vuelo estable :

Requiere un valor de P un poco mas bajo.
Requiere un valor de U un poco mas alto.
Disminuir D

Despues de mucho leer ya tenemos mas claro como desarrollar nuestro sistema de control, ahora a llevarlo a la practica sobre nuestro Arduino.

No hay comentarios.:

Publicar un comentario