Cómo se estructura el control de actitud de un dron
La mayoría de los programas de vuelo para multirrotores, entre ellos ArduPilot, PX4 y Betaflight, controlan la actitud con dos lazos anidados por eje. El lazo exterior de ángulo convierte un error de actitud en una velocidad de giro deseada. El lazo interior de velocidad convierte el error de velocidad en órdenes a los motores; usa directamente el giróscopo y funciona mucho más rápido.
Por eso el ajuste empieza desde dentro. Un lazo de velocidad bien ajustado es la base de todo lo demás, y el lazo exterior de ángulo suele ser una única ganancia proporcional. Cada término tiene una función distinta:
- P (proporcional) reacciona al error actual. Si es bajo, la respuesta es lenta; si es alto, oscila rápido.
- I (integral) elimina errores permanentes, como un centro de masas descentrado o un viento constante. Demasiado alta provoca sobreoscilación lenta y bamboleo.
- D (derivativa) amortigua la sobreoscilación reaccionando a la velocidad de cambio. También amplifica el ruido del giróscopo, por lo que el filtrado es importante.
- FF (prealimentación) responde directamente a la consigna. Mejora el seguimiento sin hacer el lazo menos estable.
Dónde están las ganancias en los programas de vuelo habituales
Los nombres de los parámetros cambian de un firmware a otro, pero la estructura es la misma. Con el alabeo como ejemplo:
| Firmware | Lazo de velocidad | Lazo de ángulo |
|---|---|---|
| ArduPilot Copter | ATC_RAT_RLL_P, _I, _D, _FF | ATC_ANG_RLL_P |
| PX4 multicóptero | MC_ROLLRATE_P, _I, _D, _FF | MC_ROLL_P |
| Betaflight | P, I, D y feedforward de alabeo | Intensidad del modo ángulo (Angle Strength) |
Por qué ajustar primero en un banco de pruebas
El vuelo libre mezcla todos los efectos a la vez: traslación, viento, caída de tensión de la batería, efecto suelo y órdenes del piloto. En un banco de 3 ejes el vehículo solo puede girar, de modo que la respuesta de actitud queda aislada, es repetible y medible, y una ganancia errónea termina en un bamboleo y no en un accidente.
El precio es que el banco pasa a formar parte del sistema. La inercia de los anillos, la fricción de los rodamientos y cualquier desplazamiento entre el centro de rotación y el centro de masas del vehículo alteran la dinámica. Las ganancias obtenidas en un banco son un buen punto de partida, no la respuesta definitiva. La guía del banco de pruebas 3-DOF explica qué propiedades del banco importan más.
Qué medir
- Velocidad deseada frente a real en cada eje, registrada a la frecuencia del lazo de velocidad. ArduPilot las guarda en su mensaje de registro RATE; PX4 registra la consigna de velocidad y la velocidad angular medida.
- Respuesta al escalón: tiempo de subida, sobreoscilación y tiempo de establecimiento tras una orden brusca.
- Frecuencia y amplitud de las oscilaciones, para distinguir una oscilación rápida causada por P de un bamboleo lento causado por I.
- Salidas de los motores, para detectar saturación y ruido que llega a los motores.
- Una referencia independiente. En un banco con encoders en los ejes, compare la estimación de actitud del controlador con el ángulo medido.
Un orden de ajuste que funciona
- Prepare el vehículo. Equilíbrelo en la fijación para que su centro de masas quede en el centro de rotación, compruebe el sentido de los motores y las hélices, y configure los filtros del giróscopo según la vibración del chasis.
- Empiece con prudencia. Baje las ganancias P y D de velocidad por debajo de los valores por defecto y ponga la I baja. Limite el acelerador y mantenga el banco protegido.
- Ajuste la P de velocidad eje por eje. Suba la P en pasos pequeños hasta que aparezca una oscilación rápida y retroceda dejando margen.
- Añada D para amortiguar la sobreoscilación. Aumente la D hasta que los escalones se asienten limpiamente. Pare si los motores se calientan o hacen ruido: la D está amplificando ruido.
- Suba la I para mantener la actitud. Aumente la I hasta que el eje se mantenga frente a un desplazamiento constante sin bamboleo lento.
- Añada la prealimentación y ajuste la P de ángulo. Use FF para afinar el seguimiento y después ajuste la ganancia exterior de ángulo para una respuesta nítida sin sobreoscilación.
- Repita en cabeceo y guiñada y pruebe el movimiento combinado. La guiñada suele necesitar menos D y más I. Termine con maniobras combinadas para comprobar el acoplamiento cruzado.
Problemas típicos y su significado
- Oscilación rápida y zumbante: P o D demasiado altas, o filtrado insuficiente.
- Bamboleo lento tras un movimiento: I o P de ángulo demasiado altas.
- Deriva que vuelve despacio: I demasiado baja, o el centro de masas está fuera del centro de rotación del banco.
- Motores calientes y salidas ruidosas: ruido del término D. Revise los filtros del giróscopo y del término D antes de subir la D.
- Ejes que se perturban entre sí: flexión del chasis, una controladora mal fijada o autoridad de guiñada limitada. Pruebe movimientos combinados.
Del banco al primer vuelo
Cuente con un breve ajuste fino en el aire: en tierra faltan el amortiguamiento aerodinámico, la traslación y la caída de tensión. ArduPilot y PX4 ofrecen funciones de autoajuste en vuelo, y un punto de partida obtenido en el banco hace esos vuelos más cortos y seguros. Vuele en un modo estabilizado, registre las mismas señales y compárelas con las del banco. Las diferencias grandes suelen apuntar al propio banco, a su inercia, fricción o desplazamiento del centro de rotación, más que al controlador.
INFINITE-HIL X1 admite los dos enfoques de banco: el funcionamiento libre, en el que el propio controlador del vehículo lo hace girar, y los escenarios HIL, en los que la plataforma aplica pares de perturbación basados en modelos. El modo de funcionamiento y las medidas de seguridad se definen en cada proyecto. Para situar el ajuste dentro de una validación completa, consulte pruebas de controladoras de vuelo, de SIL a HIL.